DD 9 1 Esp
DD 9 1 Esp
DD 9 1 Esp
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.
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;
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
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;
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;
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
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
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
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
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
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.
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
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