El modelo relacional Representa la BD como una colección de relaciones
En términos informales, cada relación semeja una tabla
Tupla
Cada fila de la tabla Representa una colección de datos relacionados entre sí Cada tupla es una lista ordenada de valores
Atributo
Cada cabecera de columna
2
1
Dominios Describen los tipos de valores que pueden aparecer en una columna Un dominio D es un conjunto de valores atómicos Debe tener
Nombre Definición lógica Tipo de datos Formato Ejemplo: números telefónicos
Definición lógica: conjunto de números de teléfono de 9 dígitos válidos en Madrid Tipo de datos: cadena de enteros Formato: 91-ddd dd dd 3
Esquema y ejemplar Esquema de relación
Sirve para describir una relación Se compone de nombre de relación y lista de atributos R(A1,A2, ...., An) Ejemplo ESTUDIANTE(dni,nombre,tfno,direccion,email)
Grado de una relación
Número de atributos de su esquema de relación Ejemplo – ESTUDIANTE – grado 5
Ejemplar de relación r del esquema de relación R(A1,A2, ...., An)
Conjunto de tuplas Lo representamos en forma de tabla
4
2
Esquema y ejemplar de BD Esquema de una base de datos S
Conjunto de esquemas de relaciones y un conjunto de restricciones de integridad RI S = {R1,R2, ...., Rn}
Ejemplar de base de datos relacional
Conjunto de ejemplares de relaciones BD={r1,r2, ...., rn} tal que cada ri es un ejemplar de Ri y tal que las relaciones ri satisfacen las restricciones de integridad RI 5
Valores nulos Un valor “nulo” para un atributo quiere decir Que se desconoce el valor del atributo para esa tupla, o Que ese atributo no es aplicable a esa tupla (por ejemplo, un empleado puede no tener supervisor)
6
3
Claves Superclave
Conjunto de atributos que identifican de forma única cada tupla de la relación
Clave
Conjunto mínimo de atributos que identifican de forma única cada tupla de la relación
Mínimo – ningún subconjunto de la clave identifica de forma única cada fila de la relación
Clave primaria
Puede haber varias claves candidatas – la que se elige se llama clave primaria 7
Claves (II) Clave externa o extranjera (foreign key) Conjunto de atributos de una relación que forman parte de la clave de otra relación Puede haber claves externas recursivas que referencian su propia relación
Ejemplo: supervisor
8
4
Ejemplo EMPLEADO
dni nombree dirección sexo salario fecha_nac dni_super numerod DEPARTAMENTO
numerod nombred dni_dir fecha_ini LUGARES
numerod lugar PROYECTO
numerop nombrep lugar numerod TRABAJA_EN
dni numerop horas FAMILIAR
dni nombref sexo fecha_nac parentesco
9
Restricciones
1.
Una restricción es una regla que restringe los valores que pueden aparecer en una base de datos Restricciones de dominio
2.
Restricciones de clave
3.
Especifican que el valor de cada atributo A debe ser un valor atómico del dominio(A) El valor de la clave debe ser único para cada tupla
Restricciones de integridad de entidades
Ningún valor de clave primaria puede ser nulo (si dos o mas tuplas tuvieran nulo en su clave, tal vez no podríamos distinguirlas) 10
5
Restricciones (II) 4.
Restricciones de integridad referencial
5.
El valor de una clave externa debe corresponder a un valor existente en la tabla correspondiente (sirve para mantener la consistencia entre las dos relaciones)
Restricciones de integridad semántica
Ejemplos
El salario de un empleado no debe exceder el salario de su supervisor El número máximo de horas que un empleado puede trabajar por semana en todos los proyectos es 56
11
Operaciones de actualización INSERTAR
Se pueden violar los cuatro tipos de restricciones
Dominio Clave – insertar empleado con dni que ya existe Integridad de entidades – nulo en dni Integridad referencial empleado con un nd que no está en la tabla DEPARTAMENTO
Si una inserción viola una o más restricciones – dos opciones
Rechazar la inserción Corregir la razón por la que se violan las restricciones y aceptar la inserción
12
6
Operaciones de actualización (II) ELIMINAR
Sólo se puede violar la integridad referencial si las claves externas de otras tuplas hacen referencia a la tupla que se va a eliminar
Ejemplo: eliminar empleado ⇒ TRABAJA_EN
Tres opciones Rechazar la eliminación Tratar de propagar la eliminación eliminando las tuplas a que hace referencia Modificar los valores del atributo de referencia (por ejemplo, poner a NULL. Cuidado si es clave primaria)
13
Operaciones de actualización (III) MODIFICAR
Si el atributo no es clave primaria ni clave externa, no hay problema
Sólo comprobar restricciones de dominio
Si clave primaria ⇒ equivale a eliminar + insertar ⇒ problemas ya vistos Si clave externa ⇒ comprobar restricciones de integridad referencial