Modelo relacional. El modelo relacional

Modelo relacional El modelo relacional Representa la BD como una colección de relaciones „ En términos informales, cada relación semeja una tabla T...
54 downloads 2 Views 174KB Size
Modelo relacional

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 „

14

7