Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

DD 9 1 Esp

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 22

Diseño de base de datos

9-1
Introducción a los conceptos de la base de datos relacional

Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados.
Objetivos
• En esta lección se abordan los siguientes objetivos:
−Definir una clave primaria
−Definir una clave ajena
−Definir una regla de integridad de columna
−Identificar elementos de fila, columna, clave primaria, clave
única y clave ajena en un diagrama de una tabla que
contenga estos elementos
−Identificar violaciones de las reglas de integridad de datos

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 3
Finalidad
• El modelo de datos conceptual se va a transformar en
un diseño de base de datos relacional.
• Por lo tanto, nuestras entidades, atributos, relaciones e
identificadores únicos se convertirán en objetos de una
base de datos relacional.
• Podemos comparar esta situación con la de un
diseñador de ropa que crea una prenda a partir de un
boceto en papel.
• Es necesario que el diseñador sepa interpretar los
patrones de costura de la misma forma que usted
deberá comprender la estructura de los objetos de la
base de datos relacional.

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 4
Bases de datos relacionales ilustradas
• Una base de datos relacional es una base de datos que el
usuario percibe como una recopilación de tablas
bidimensionales, que contienen cada una filas y columnas.
• En la tabla siguiente se muestran datos de empleados.

EMPLOYEES (nombre de la tabla)


EMPLOYEE_ID FIRST_NAME LAST_NAME DEPARTMENT_ID
100 Steven King 90
Fila
101 Neena Kochhar 90
102 Lex De Haan 90
200 Jennifer Whalen 10
205 Shelley Higgins 110

Columna
DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 5
El lenguaje para acceder a los datos
• El lenguaje de consulta estructurado (SQL) nos permite
acceder a los datos de una base de datos relacional de
manera eficaz.
• En lugar de buscar manualmente entre todas las filas para
encontrar el registro del empleado número 200,
utilizaremos la siguiente sentencia SQL:
SELECT last_name, department_id
FROM employees
WHERE employee_id = 200;

• Puede consultar el resultado de esta sentencia en la


siguiente diapositiva.

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 6
Consultas SQL ilustradas
EMPLOYEES (nombre de la tabla)
EMPLOYEE_ID FIRST_NAME LAST_NAME DEPARTMENT_ID
100 Steven King 90
101 Neena Kochhar 90
102 Lex De Haan 90
200 Jennifer Whalen 10
205 Shelley Higgins 110

SELECT last_name, department_id


FROM employees
WHERE employee_id = 200;

LAST_NAME DEPARTMENT_ID
Whalen 10

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 7
Consultas SQL específicas
• Para buscar todos los empleados del departamento
número 90, escribiremos una sentencia SQL diferente:
SELECT *
FROM employees
WHERE department_id = 90;

• De nuevo, puede consultar el resultado en la siguiente


diapositiva.

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 8
Consultas SQL específicas
EMPLOYEES (nombre de la tabla)
EMPLOYEE_ID FIRST_NAME LAST_NAME …. DEPARTMENT_ID
100 Steven King …. 90
101 Neena Kochhar …. 90
102 Lex De Haan …. 90
200 Jennifer Whalen …. 10
205 Shelley Higgins …. 110
SELECT *
FROM employees
WHERE department_id = 90;

EMPLOYEE_ID FIRST_NAME LAST_NAME …. DEPARTMENT_ID


100 Steven King …. 90
101 Neena Kochhar …. 90
102 Lex De Haan …. 90

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 9
Clave primaria
ACCOUNTS
• La clave primaria (CP) BANK_NO ACCT_NO BALANCE DATE_OPENED
104 75 760 120 050,00 21-OCT-89
es una columna o un
104 77 956 100,10
juego de columnas que 105 89 570 55 775,00 15-ENE-85
identifica de forma única 103 55 890 15 001,85 10-MAR-91

cada fila de una tabla. 105 75 760 5,00 22-SEP-03

EMPLOYEES Clave primaria de varias columnas


EMPLOYEE_ID FIRST_NAME LAST_NAME …. DEPARTMENT_ID
100 Steven King …. 90
101 Neena Kochhar …. 90
102 Lex De Haan …. 90
200 Jennifer Whalen …. 10
205 Shelley Higgins …. 110
Clave primaria de una sola columna

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 10
Clave primaria ACCOUNTS
• Cada tabla debe tener BANK_NO ACCT_NO BALANCE DATE_OPENED

una clave primaria, 104 75 760 120 050,00 21-OCT-89


104 77 956 100,10
y cada clave primaria 105 89 570 55 775,00 15-ENE-85
debe ser única. 103 55 890 15 001,85 10-MAR-91
105 75 760 5,00 22-SEP-03

EMPLOYEES Clave primaria de varias columnas


EMPLOYEE_ID FIRST_NAME LAST_NAME …. DEPARTMENT_ID
100 Steven King …. 90
101 Neena Kochhar …. 90
102 Lex De Haan …. 90
200 Jennifer Whalen …. 10
205 Shelley Higgins …. 110
Clave primaria de una sola columna

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 11
Clave primaria ACCOUNTS
• Ninguna de las partes BANK_NO ACCT_NO BALANCE DATE_OPENED

de la clave primaria 104 75 760 120 050,00 21-OCT-89

puede ser nula. 104 77 956 100,10


105 89 570 55 775,00 15-ENE-85
103 55 890 15 001,85 10-MAR-91
105 75 760 5,00 22-SEP-03

EMPLOYEES Clave primaria de varias columnas


EMPLOYEE_ID FIRST_NAME LAST_NAME …. DEPARTMENT_ID
100 Steven King …. 90
101 Neena Kochhar …. 90
102 Lex De Haan …. 90
200 Jennifer Whalen …. 10
205 Shelley Higgins …. 110
Clave primaria de una sola columna

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 12
Candidatos de clave primaria
• Una tabla puede tener más de una columna o
combinaciones de columnas que se pueden utilizar como
clave primaria.
• Cada columna o combinación de columnas se denomina
clave "candidata" porque se podría seleccionar para ser la
clave primaria.
MEMBERS
MEMBER_ID LAST_NAME FIRST_NAME PAYROLL_ID
100 SMITH DANA 21 215
310 ADAMS TYLER 59 877
210 CHEN LAWRENCE 1101
405 GOMEZ CARLOS 52
378 LOUNGANI NEIL 90 386

Clave candidata Clave candidata

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 13
Elección de una clave candidata
• Seleccione una clave candidata para que sea la clave
primaria de la tabla.
• El resto de candidatas serán claves alternativas (o
claves únicas). MEMBERS
MEMBER_ID LAST_NAME FIRST_NAME PAYROLL_ID
100 SMITH DANA 21 215
310 ADAMS TYLER 59 877
210 CHEN LAWRENCE 1101
405 GOMEZ CARLOS 52
378 LOUNGANI NEIL 90 386

Clave primaria Clave alternativa o única (CU)

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 14
Clave ajena
Clave ajena
• Una clave ajena (CA) EMPLOYEES
es una columna o EMPLOYEE_ID FIRST_NAME LAST_NAME …. DEPARTMENT_ID
una combinación 100 Steven King …. 90
de columnas de 101 Neena Kochhar …. 90
una tabla que 102 Lex De Haan …. 90
contiene valores 200 Jennifer Whalen …. 10
que coinciden con 205 Shelley Higgins …. 110
el valor de la clave
primaria de otra tabla. DEPARTMENTS hace referencia a
DEPARTMENT_ID DEPARTMENT_NAME
10 Administrasi
20 Pemasaran
50 Pengiriman

Clave primaria

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 15
Reglas de claves ajenas
• Si una clave primaria se compone de una o varias
claves ajenas, el valor de CA no puede ser nulo.

Clave primaria Clave primaria

SHELF_NO BOOK_NO SHELF_NO BOOK_NAME


A6 106 Administrasi LITTLE WOMEN
A8 15 Pemasaran TALE OF TWO CITIES
B24 7897 Pengiriman HARRY POTTER
Q35 15 Q35 LEARN TO SPEAK SPANISH
SHELVES BOOKS

CP vinculada a su CA

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 16
Integridad de columna
• Una columna debe ACCOUNTS
contener solo valores
BANK_NO ACCT_NO BALANCE DATE_OPENED
que sean coherentes
104 75 760 120 050,00 21-OCT-89
con el formato de datos
definido en la 104 77 956 100,10
columna. 105 89 570 55 775,00 15-ENE-85
103 55 890 15 001,85 10-MAR-91
105 75 760 5,00 22-SEP-03

Definición de la tabla ACCOUNTS


Nombre de Tipo de datos Opcionalidad
columna

BANK_NO Número (5) No nula

ACCT_NO Número (8) No nula

BALANCE Número (12,2) No nula

DATE_OPENED Fecha
DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 17
Resumen de las reglas de integridad de datos
• Las reglas de integridad de datos (o restricciones)
definen el estado relacional correcto para una base de
datos.
• Las reglas de integridad de datos aseguran que los
usuarios puedan realizar solo las operaciones que
dejen la base de datos en un estado coherente y
adecuado.

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 18
Resumen de las reglas de integridad de datos
Tipo de restricción Explicación Ejemplo
Una clave primaria debe ser única y
La columna emp_no de la tabla
Integridad de entidad ninguna de sus partes puede ser
EMPLOYEES no puede ser nula.
nula.
Una clave ajena debe coincidir con El valor de la columna dept_no de
un valor de la clave primaria la tabla EMPLOYEES debe coincidir
Integridad referencial existente (o, en su defecto, ser nula con un valor de la columna dept_no
si se permiten los valores nulos). en la tabla DEPARTMENTS.
Una columna debe contener solo
El valor de la columna BALANCE de
valores que sean coherentes con el
Integridad de columna formato de datos definido en la
la tabla ACCOUNTS debe ser
numérico.
columna.
Si el valor de la columna BALANCE
de la tabla ACCOUNTS es menor
Los datos almacenados en una base
Integridad definida por que 1,00, habrá que enviar una
de datos deben cumplir las reglas
el usuario del negocio.
carta al titular de la cuenta (esta
acción requiere programación
adicional para llevarse a cabo).

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 19
Terminología
• Entre los términos clave utilizados en esta lección se
incluyen:
−Clave candidata
−Columna
−Clave ajena
−Clave primaria
−Base de datos relacional
−Fila
−Clave única

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 20
Resumen
• En esta lección, debe haber aprendido lo siguiente:
−Definir una clave primaria
−Definir una clave ajena
−Definir una regla de integridad de columna
−Identificar elementos de fila, columna, clave primaria, clave
única y clave ajena en un diagrama de una tabla que
contenga estos elementos
−Identificar violaciones de las reglas de integridad de datos

DDS9L1
Introducción a los conceptos de la base de datos relacional Copyright © 2020, Oracle y/o sus filiales. Todos los derechos reservados. 21

También podría gustarte