Modelo relacional de datos. Modelo relacional de datos. Presentación y orígenes del MR. Modelo relacional de datos

Documentos relacionados
MODELO RELACIONAL BASE DE DATOS RELACIONALES

2. Modelo relacional de datos

Modelo relacional. El modelo relacional

Modelo Relacional de Datos

Modelo Relacional. El modelo relacional...1 El modelo entidad relación (que vimos ayer) es un modelo conceptual que sirve

id_trabajador nombre tarifa_hr tipo_de_oficio id_supv 1235 F. Aguilera 12,50 Electricista A. Calvo 13,75 Fontanero N.

Modelo Relacional I. Nos encontramos en la FASE 2: REGLAS DE TRANSFORMACIÓN del Modelo Entidad Relación (MER) al Modelo Relacional (MR).

Diseño Lógico Modelo Relacional. Ges3ón y Modelación de Datos María Constanza Pabón

Bases de Datos OTROS ASPECTOS MODELO E-R

Ing. Yim Isaias Apestegui Florentino

El Modelo Relacional. Carlos A. Olarte BDI

BASES DE DATOS (IG18 Semipresencial) El Modelo Relacional Fundamentos del Modelo Relacional de Datos

Restricciones de Integridad

INTEGRIDAD REFERENCIAL

Carlos A. Olarte Ligaduras de Integridad y Restricciones sobre la BD

Notaciones de Entidad Relación ER

Tema 2: Diseño de Bases de Datos (Diseño Lógico)

Programación de la asignatura BDA ( )

Asignatura: Bases de datos Código: Año académico: Centro: Escuela Politécnica Superior Departamento: Lenguajes y Computación Área:

Modelo de Datos Relacional. Tecnólogo en Informática, sede Paysandú Bases de Datos 1

BASES DE DATOS (IG18 Semipresencial) El Modelo Relacional Reglas de Integridad

- Bases de Datos (2012/2013) Tema 2: Diseño lógico. Modelo Relacional

BASES DE DATOS DSIC. Curso

EL MODELO DE DATOS RELACIONAL

Diseño lógico El modelo Relacional. José Muñoz Jimeno Febrero 2015

Modelo Relacional: Conceptos

Diseño de base de datos: Modelo Entidad Relación (I)

Modelos de Datos. Modelo Entidad-Relación

Tema 3: Diseño lógico de Bases de Datos. El Modelo Relacional

Guía del Curso Curso de Bases de Datos Relacionales

Introducción a las Bases de Datos y al Modelo Relacional

BASES DE DATOS DSIC. Curso

Modelo Relacional. Temas:

BASES DE DATOS (curso 2003/2004)

Bases de Datos. Laboratorio III, L106/L111. Profesor: Goyo Celada

INDICE Parte I. Conceptos Básicos Capitulo 1. Sistema de información y Bases de Datos Capitulo 2. El Sistema de Gestión de la Base de Datos

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN

Tema 3: Diseño lógico de Bases de Datos: el Modelo Relacional

Ítems/Entidades/Objetos [sustantivos]: Objetos que existen en el mundo y que son

Fundamentos de Bases de Datos Facultad de Ciencias UNAM

Base de Datos. Docente: Ing. Francisco Rodríguez BASE DATOS. Resultados. Internet. Requerimientos

Gestión base de datos : Modelo Relacional (II)

Introducción a las bases de datos relacionales (2010/2011)

Conocimiento de las Bases de Datos relacionales.

Unidad 2. Bases de Datos Relacionales

Esquema Lógico FOROFO. EQUIPO (nombre:cadena, ciudad:cadena, país:cadena) CP (nombre) CAj (ciudad, país) CIUDAD

1. Estructura de datos. Se refiere a todos los elementos necesarios para modelar una Base de Datos Relacional.

UNIDAD 3 MODELO RELACIONAL

Diseño Lógico Estándar. Diseño Lógico Tema 12

BASES DE DATOS. Fundamentos de Informática Grado en Ing. Química. Jesús Alcalá y David Pelta

El modelo relacional y el álgebra relacional

Introducción al Álgebra Relacional

Modelo Relacional. Modelo Relacional. Temas: Referencia:

Tema 2. DISEÑO LÓGICO DE BASES DE DATOS Parte 2

Diseño de Bases de Datos. Normalización

Introducción a las Bases de Datos

Catedra de Base de Datos

T07 Opciones de integridad referencial

Diseño y Creación de BD. 3 Etapas propuestas

Diseño de Bases de Datos. Normalización

[3.3] Restricciones. Unidad 3) Modelo Relacional Gestión de Bases de Datos, ciclo de ASIR

Tema 3: Diseño lógico de Bases de Datos. El Modelo Relacional

Bases de datos 1. Teórico: Modelo Relacional

CC BASES DE DATOS OTOÑO 2018

El Modelo Relacional de Bases de Datos

Diseño conceptual Diseño de bases de datos

Carlos Castillo UPF 2008

[Unidad 3] El Modelo Relacional

INFORMÁTICA MÉDICA. Profesor: MsC. Liz Armenteros Chávez

TEMA 6: LENGUAJE DE DEFINICIÓN DE DATOS (LDD)

Modelo Entidad Relación.MER.

Qué es SGBD? Mencionar 4 tipos de SGBD. SGBD de red. Román Gutiérrez Sosa. SGBD jerárquicos. Modelo de datos relacionales.

UNIVERSIDAD ALONSO DE OJEDA FACULTAD DE INGENIERÍA BASE DE DATOS I. Profesora: Dennís Chirinos

Catedra de Base de Datos

Transformación ER Relacional para el diseño de bases de datos relacionales

4. FUNDAMENTOS DEL MODELO RELACIONAL

Diseño Lógico Específico. Diseño Lógico Tema 13

El Modelo Relacional (5 de 5)

CC BASES DE DATOS OTOÑO Clase 6: Actualizaciones, Restricciones, Formas Normales. Aidan Hogan

BASES DE DATOS AVANZADAS. Facultad de Estadística e Informática

Laboratorio de Base de Datos Práctica Nro. 3, Modelo Relacional y Transformaciones

Técnico Especialista TIC en Bases de Datos y Lenguajes Estructurales

Unidad 3. Álgebra Relacional y Cálculo Relacional

Diseño de Bases de Datos

Grado en Ingeniero en Informática Ingeniero en Computadores Sistemas de Información

Diseño lógico Diseño de bases de datos relacionales

Informática. Introducción a las bases de datos relacionales. Diseño conceptual. Carmen Graciani Díaz Luis Valencia Cabrera

Creación y administración de Bases de datos.

1.Introducción al Modelo Relacional.

Definición de Bases de datos

TAREA No. 2 MODELO ENTIDAD RELACIÓN FANNY MILEISIS DIAZ PINTO

TEMA 0 REPASO DE CONCEPTOS BÁSICOS TEST PARA AUTOEVALUACIÓN DEL ALUMNO

Fundamentos de Bases de Datos. Práctica 8.

Introducción al Modelo Relacional

Curso 1º SMR Módulo: AO Actividades 3 (2) Bases de datos:creamos Foreing Keys en BASE

Transcripción:

Modelo relacional de datos Modelo relacional de datos Objetivos Comprender los principios estructurales del modelo de datos relacional formal Entender los conceptos integridad de entidad e integridad referencial, y apreciar su importancia Entender los significados e implicaciones del concepto nulo en el modelo relacional Comprender el concepto vista relacional, y la problemática asociada a la modificación de datos a través de vistas Conocer los lenguajes formales álgebra relacional y cálculo relacional de tuplas, así como el lenguaje relacional estándar SQL-92 Contenidos 2.1 Presentación y orígenes del modelo relacional 2.2 2.3 2.4 Manipulación de datos: lenguajes relacionales 2.4.1 Álgebra relacional 2.4.2 Cálculo relacional de tuplas 2.4.3 SQL-92 1 2 Modelo relacional de datos Presentación y orígenes del MR Bibliografía Introducido por Codd, 1970 [EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de Bases de Datos. 3ª Edición. Addison-Wesley. (Cap. 7, 8 y 9) [EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos. Conceptos fundamentales. 2ª Edición. Addison-Wesley Iberoamericana. (Cap. 6 y 7) [D 2001] Date, C.J.: Introducción a los sistemas de bases de datos. 7ª Edición. Prentice-Hall. (Cap. 3 al 9) [SKS 1998] Korth, H; Silberschatz, A., Sudarshan, S.: Fundamentos de bases de datos. 3ª Edición. McGraw-Hill. (Cap. 3 y 4) Es un Modelo de Datos Lógico - de Representación - (basado en registros) El modelo más usado en las aplicaciones comerciales de procesamiento de datos convencional Dividido en 3 partes: 1. Estructura de Datos 2. Integridad de Datos (características generales) 3. Manipulación de Datos 3 4

Base de Datos = Conjunto de Relaciones Relación Estructura de datos fundamental del modelo Tiene un nombre y representa una entidad genérica Conjunto de tuplas Cada tupla representa una entidad concreta Compuesta de atributos con nombre (y dominio) Cada atributo representa un atributo de la entidad Representada mediante una tabla con filas y columnas Modelo basado en Teoría matemática Analogía entre Relación (concepto matemático) y Tabla Teoría de Conjuntos y Lógica de Predicados de 1 er orden» Sólida Base Formal La relación PELICULA dominios cardinalidad Títulos título Amores Perros The Matrix Torrente Nos miran Amelie Los lunes al sol Nombres director A. González A. Wachowsky S. Segura N. López J. P. Jeunet F. León Géneros Años Países Ciencia-ficción, Drama,Thriller, Comedia género Drama Ciencia-ficción Comedia Policiaco Comedia Drama atributos 2002, 1997, 1999, 2001, 1994, 1972 rodaje 2000 1999 1997 2001 2001 2002 grado nacionalidad México EEUU España España Francia España Italia,Argentina, España, EEUU, Francia,Japón.. duración 145 138 110 118 122 117 Tiempo tuplas 5 6 Términos básicos Definiciones formales: DOMINIO Formal Relación Tupla Atributo Modelo Relacional Si la tupla t está en la relación R, entonces t R Debe tener un nombre único dentro de cada relación SQL-92 Tabla Fila cabecera de Columna Procesamiento de Archivos Archivos Registro concreto Nombre de Campo de registro Conjunto de valores atómicos del mismo tipo, de donde toman su valor los atributos La definición de dominios forma parte de la definición de la BD Cada atributo definido sobre un ÚNICO dominio OBLIGATORIO Si A, B representan un mismo concepto, A y B con mismo dominio Dominio D puede contener valores no tomados por ningún atributo {valores de A} Dominio(A) Cardinalidad nº de tuplas en una relación = Grado Dominio nº atributos en una relación colección de valores permitidos para ciertos atributos = = Comparaciones Restringidas a Dominio La comparación de dos atributos sólo tiene sentido si ambos toman valores del mismo dominio Si el SGBD soporta dominios, podrá detectar este tipo de errores 7 8

Definiciones formales: RELACIÓN (1) Definiciones formales: RELACIÓN (2) Una relación R, sobre conjunto de dominios D 1, D 2 D n se compone de dos partes: Un esquema de relación: PELICULA (titulo:titulos, duracion:tiempo, director:nombres, estreno:fechas) Esquema o Cabecera Conjunto de pares Atributo:Dominio { (A 1 :D 1 ), (A 2 :D 2 ) (A n :D n ) } Un estado de la relación: { { (titulo:torrente), (duracion:110), (director:s.segura), (estreno:1997) } { (titulo:the Matrix), (duracion:138), (director:a.wachowski), (estreno:1999) } } Cada A j tiene asociado sólo un D j LosD i no tienen por qué ser distintos entre sí El estado de una relación es variable en el tiempo nuevas tuplas, modificación o borrado de existentes Estado, Cuerpo o Instancia Conjunto de tuplas que contiene en un instante concreto tupla = conjunto de pares Atributo:Valor { { (A 1 :v i1 ), (A 2 :v i2 ) (A n :v in ) } }, donde i=1..m El esquema no suele variar costoso: reescritura de miles de tuplas valores de nuevos atributos para tuplas ya existentes? Suele incluir un conjunto de Reglas de Integridad (se verá) 9 10 Definiciones formales: RELACIÓN (3) Definiciones formales: RELACIÓN (4) Propiedades de una Relación FORMAS NORMALES 1. No existen tuplas repetidas 2. Las tuplas no están ordenadas R está en <determinada> FN si cumple <cierto> conjunto de condiciones o restricciones necesarias para estar bien diseñada 3. Los atributos no están ordenados de acuerdo con el modelo relacional de datos. esquema = conjunto de pares Atributo:Dominio 4. Los valores de atributos son Atómicos Toda relación ha de estar en 1FN (estructura de datos simple) dominio = conjunto de valores atómicos Intersección fila/columna = un solo valor (no lista de valores) Si R cumple esta propiedad, R está en 1FN 11 12

Definiciones formales: RELACIÓN (5) Relación vs. Tabla Relación: Representación abstracta de un elemento de datos Tabla: Representación concreta de tal elemento abstracto Ventajas Representación muy sencilla (tabla) del elemento abstracto básico (relación) del Modelo Relacional Fácil de utilizar, entender, razonar Inconveniente Aparente orden entre filas y entre columnas de la tabla Definiciones formales: BD RELACIONAL (1) Percibida por usuarios como una colección de relaciones de diversos grados (nº de atributos) que varían con el tiempo (nº de tuplas, estado) Las relaciones (tablas) son la estructura lógica de la BD Niveles externo y conceptual ANSI/X3/SPARC Toda BDR cumple el Principio de Información: Todo contenido de información de la BD está representado de una y sólo una forma: como valores explícitos dentro de posiciones de columnas dentro de filas dentro de tablas Conexión lógica entre Relaciones (vínculo o interrelación) Representada mediante valores No existen punteros (visibles al usuario) 13 14 Definiciones formales: BD RELACIONAL (2) En una BDR distinguimos Esquema de base de datos Descripción de la base de datos Conjunto de esquemas de relación PELICULA ( titulo:títulos, director:nombres, género:géneros, rodaje:años, nacionalidad:países, duración:tiempo ) ACTOR ( nombre:nombres, nombreartistico: Nombres, agente:nombres, cache:dinero ) DIRECTOR ( nombre:nombres, nacionalidad:países, operaprima:títulos ) Estado o instancia de base de datos Visión del contenido de la base de datos en cierto instante Conjunto de estados de relación Todo estado de BD refleja la realidad es un modelo de una porción del mundo real (minimundo) Algunas configuraciones de valores NO tienen SENTIDO pues no representan ningún estado posible del minimundo 2 personas distintas con el mismo DNI Un empleado sin NSS Un alumno con -29 años Una película sin director Definición de la BD (esquema) necesita incluir REGLAS DE INTEGRIDAD 15 16

Reglas de integridad Superclave y Clave de una relación Informan al SGBD de restricciones del mundo real Así, el SGBD evita configuraciones de datos imposibles Aumentan la capacidad expresiva del modelo relacional Cumplen que: Forman parte de la base de datos Se cumplen para cualquier estado de la BD No varían con el tiempo Son específicas de cada BD particular, pero el Modelo Relacional incluye características generales de integridad importantes y necesarias en toda BD Claves Candidatas y Primarias Claves Ajenas (o foráneas o externas) 17 Sea R una relación R(A 1 :D 1, A 2 :D 2, A n :D n ) Una superclave de R es un subconjunto SK de atributos tal que cumple la restricción de Unicidad: No existen dos tuplas distintas con la misma combinación de valores para SK Una clave de R es una superclave tal que cumple la restricción de Irreductibilidad: Ningún subconjunto de CK cumple la r. Unicidad Clave Simple (1 atributo) o Compuesta (varios atributos) Cada clave es una restricción de integridad 18 Superclave y Clave: Ejemplos Claves como restricción de integridad CLIENTE (codcliente, nombre, ciudad, telefono,) Qué implicaciones tiene establecer como clave a) CK = {codcliente, ciudad} b) CK = {codcliente}? Varias claves en una relación «Relación para registrar las visitas de pacientes a sus médicos de familia. Un mismo paciente puede visitar a su médico varias veces en un mismo día» VISITAMEDICA (nsspaciente, historial, fecha, hora, numvisita, medico, observ) Claves (VISITAMEDICA)={ {nsspaciente, numvisita}, {nsspaciente, fecha, hora}, {historial, numvisita}, {historial, fecha, hora} } Clave Candidata, Primaria y Alternativa Si R tiene varias claves Claves Candidatas Claves (ACTOR) = { {nombre}, {nombreartistico} } Claves (EMPLEADO) = { {dni}, {nombre, fechanac}, {nss} } La Clave Primaria (Primary Key, PK ) es la clave candidata elegida para identificar las tuplas de R Clave Primaria (ACTOR) = {nombreartistico} Clave Primaria (EMPLEADO) = {nss} Las Claves Alternativas (Alternative Keys, AK) son el resto de claves candidatas Claves Alternativas (ACTOR) = {nombre} Claves Alternativas (EMPLEADO) = { {dni}, {nombre, fechanac} } 19 20

Clave Ajena (Externa o Foránea) Clave Ajena (Externa o Foránea) (2) Conjunto de atributos FK de una relación R2, tal que: 1. Existe otra relación R1 con clave primaria PK, y 2. Cada valor de FK en R2 es idéntico al de PK en alguna tupla de R1 Conjunto de atributos de una relación que hace referencia a la clave primaria de otra relación (o la misma) PELICULA (título, género, duración, director, ) DIRECTOR (nombre, nacionalidad, ) Cada componente de una FK debe estar definido sobre el mismo dominio que el correspondiente atributo de la PK a la que referencia PACIENTE (nss, nombre, dirección, ) HISTORIAL (nss, especialidad, fechaapert, ) VISITA (nss, especialidad, numvisita, fecha, ) Clave Ajena Simple o Compuesta EMPLEADO (codemp, nombre, jefe, nss, ) LIBRO (título, isbn, autor, editorial, edición, año, ) ESCRITOR (dni, nombre, ) ARTICULO (título, tema, autor, revista, página, ) El uso de Claves Ajenas facilita Eliminación de la Redundancia: Integridad entre archivos Mecanismo del Modelo Relacional de datos para establecer VÍNCULOS ENTRE RELACIONES 21 22 Clave Ajena (Externa o Foránea) (3) Clave Ajena (Externa o Foránea) (4) Cada cliente sólo puede tener una cuenta a su nombre. Una cuenta puede tener más de un cliente como titular. CLIENTE nombre García, A López, B Azorín, C Pérez, C dirección Gran Vía, 6 Ronda Norte, 3 Paseo Nuevo, 9 Plaza Mayor, 2 CUENTA ciudad Murcia Murcia Valencia Valencia número 200 505 821 cuenta 200 821 505 505 saldo 35000 40000 50000 Vínculo Cliente-Cuenta Restricción de Integridad Referencial Todo valor de una FK debe coincidir con un valor en la correspondiente PK La BD no debe contener claves ajenas sin correspondencia: Si una tupla en una relación hace referencia a otra relación, debe referirse a una tupla existente en esa relación ARTICULO FK ESCRITOR Puede existir algún valor de PK al que NO haga referencia ningún valor de la FK ESCRITOR que no haya escrito artículos: ninguna tupla de ARTICULO hará referencia a la tupla correspondiente a dicho escritor 23 24

Clave Ajena (Externa o Foránea) (y 5) Diagrama Referencial Expresión de la existencia de Claves Ajenas Camino Referencial LIBRO ESCRITOR ARTICULO título dni título isbn nombre tema autor editorial editorial autor revista pág EDITORIAL nombre EMPL codemp dep DEPTO Ciclo Referencial Camino que empieza y acaba en la misma relación Caso especial: Autorreferencia EMPLEADO codemp coddep dirección jefe dire 25 Mantenimiento de la Integridad Referencial Las operaciones que no satisfacen violan la Integridad Referencial, dejan la BD en un estado incorrecto Ejemplo de un Hotel: Qué pasaría si se eliminara la tupla (501, D, ) en HABITACIÓN? Y si se eliminara la tupla (100, D, )? Y si se anotara la ocupación de la habitación 900? OCUPACIÓN codclie CLI04 CLI02 CLI05 CLI10 habit 100 420 115 100 HABITACIÓN numhabit tipo 115 420 100 304 405 501 I I D D I D 26 Mantenimiento de la Integridad Referencial (2) Cómo evita el SGBD esos estados incorrectos? El SGBD puede Rechazar toda operación que pueda provocar un estado ilegal, o Aceptar (y ejecutar) tales operaciones, pero realizar acciones que restauren la integridad de los datos Diseñador de la BD puede especificar al SGBD Acciones de Mantenimiento de la Integridad Referencial para que la BD SIEMPRE alcance un estado final legal Mantenimiento de la Integridad Referencial (3) R2 R1 Operación: Eliminar una tupla t de R1 que es referenciada por otras de R2 Ejemplo: Eliminar la tupla (100, D, ) de HABITACIÓN Acciones posibles: 1. Rechazar la operación (acción por defecto) Sólo permite borrar t si ninguna otra tupla hace referencia a t 2. Cascada. Propagar la eliminación 1º Borrar todas las tuplas de R2 que referencian a t 2º Eliminar t 3. Establecer nulos (* se verá después *) 27 28

Mantenimiento de la Integridad Referencial (4) R2 R1 Operación: Modificar el valor de una FK a un valor no existente en la PK de R1 Ejemplo: Modificar (CLI02, 420,) a (CLI02, 900,) en OCUPACIÓN Acción: 1. Rechazar la operación (SIEMPRE) Intento de violación de la restricción de Integridad Referencial Mantenimiento de la Integridad Referencial (5) Operación: Modificar el valor de la PK de una tupla t de R1 que es referenciada por otras tuplas de R2 Ejemplo: Modificar la tupla (100, D,) a (130, D,) en HABITACIÓN Acciones posibles: 1. Rechazar la operación (acción por defecto) Sólo permite modificar la PK de t si ninguna tupla referencia a t 2. Cascada. Propagar la modificación - Toda tupla de R2 que referencia a t seguirá haciendolo: modificar su valor de FK al nuevo valor de la PK de t - Modificar el valor de la clave primaria de t 3. Establecer nulos (* se verá después *) 29 30 Mantenimiento de la Integridad Referencial (6) R2 R1 Operación: Inserción de una tupla t en R2 cuyo valor de FK no se corresponde con ningún valor de la PK en ninguna tupla de R1 Ejemplo: Insertar una tupla (CLI03, 555, ) en OCUPACIÓN Acciones posibles: - Rechazar la operación (SIEMPRE) Intento de violación de la restricción de Integridad Referencial Mantenimiento de la Integridad Referencial (y 7) Encadenamiento de eliminaciones (análogo para Modificación) R2 R1, Acción de Eliminación en Cascada R3 R2 R1 R3 R2, Acción de Eliminación X - Eliminar una tupla de R1 eliminar tuplas de R2 que la referencian - Pero existen tuplas en R3 que referencian esas tuplas de R2 cómo afecta la Acción de Eliminación X en esta operación? Si X = en CASCADA, no-problem! eliminar esas tuplas de R3 Si X = RECHAZAR La operación completa fallará Las operaciones de actualización en una BD son siempre atómicas: se realiza TODO o NADA PROFESOR ÁREA DEPARTAMENTO ASIGNATURA TITULACIÓN UNIVERSIDAD 31 32

Nulos En el mundo real existe información perdida fechanacimiento desconocida ausencia de información tiene teléfono? valores no aplicables a ciertos atributos fechjubilac a empleado activo Para representar estas situaciones en los sistemas de BD se utiliza el NULO (null) Si una tupla tiene un atributo que contiene un nulo, significa que el valor real de tal atributo es desconocido Es posible especificar si un atributo puede o no contener nulo nulo no es un valor en sí mismo, sino un indicador de ausencia de información No hay dos nulos iguales (num_telefono NULL edad NULL) Implicaciones de los nulos en la integridad Nulo y Claves Primarias Restricción de Integridad de Entidad: Ningún atributo componente de una clave primaria puede contener nulo EMPLEADO (codemp, nss, nombre, telefono, depto, jefe) Qué pasaría si codemp pudiera contener NULO? Nulo y Claves Ajenas El Modelo Relacional permite nulo como valor de clave ajena depto = null empleados no asignados a ningún departamento jefe = null empleados sin jefe 33 34 Implicaciones de los nulos en la integridad (2) Implicaciones de los nulos en la integridad (3) Hemos de extender la definición de clave ajena Sea R2 una relación. FK es una clave ajena en R2 si es un subconjunto de sus atributos tal que: 1. Existe otra relación R1 con clave primaria PK y 2. En todo momento, cada valor de FK en R2 a) es NULO, o b) es idéntico a un valor de PK en alguna tupla de R1 Hay que extender algunas acciones de mantenimiento de la Integridad Referencial: R2 R1 Operación: Eliminar una tupla t de R1 que es referenciada por otras de R2 Acciones posibles: 1. Rechazar la operación (acción por defecto) 2. Cascada. Propagar la eliminación Restricción de Integridad Referencial La Base de Datos no debe contener valores no nulos de clave ajena sin correspondencia 3. Establecer nulos Sólo si la FK de R2 permite NULO - Toda tupla de R2 que referencia a t pasa a contener NULL en FK - Eliminar la tupla t 35 36

Implicaciones de los nulos en la integridad (y 4) Resumiendo, el SGBD se encarga de R2 R1 Operación: Modificar el valor de la PK de una tupla t de R1 que es referenciada por otras tuplas de R2 Acciones posibles: 1. Rechazar la operación (acción por defecto) 2. Cascada. Propagar la modificación 3. Establecer nulos Sólo si la FK de R2 permite NULO - Toda tupla de R2 que referencia a t pasa a contener NULL en FK Comprobar las claves candidatas (primaria y alternativas): No existen dos tuplas distintas con igual valor para una clave Definición de BD : indicar los Atributos Componentes de las Claves Candidatas Comprobar la restricción de Integridad de entidad Ningún atributo componente de una clave primaria contiene nulo Definición de BD : indicar los Atributos Componentes de la Clave Primaria Comprobar la restricción de Integridad Referencial El valor de la clave ajena en cualquier tupla, o es nulo, o coincide con un valor de clave primaria de alguna tupla en la relación referenciada Definición de BD : indicar los Atributos Componentes de las Claves Ajenas - Modificar el valor de la PK de t y mantenerla frente operaciones que puedan violar la integridad Definición de BD : indicar Acciones de Mantenimiento de la Integridad Referencial 37 38 Esquema PRODUCTORA Ejemplo de una Base de Datos y Definición de algunos dominios PELICULA DIRECTOR DIREC_FOTOG GUION (codp:codpel, titulo:titulos, año:año, genero:generos, guion:codgui, director:coddir, directorfotog:coddir, distrib:coddis, nacio:paises, estreno:fecha, numoscar:enteros(2), taquilla:dinero) (coddir:coddir, nombre:nombres, apellidos:apellidos, nacio:paises, fechanacim:fecha, operaprima:codpel) (coddf:coddir, nombre:nombres, apellidos:apellidos, nacionalidad:paises, fechanacim:fecha, ulttrabajo:codpel) (codg:codgui, titulo: TITULOS, resumen: TEXTO, nomautorppal:nombres, fechafin:fecha, fechaentrega:fecha) DISTRIBUIDORA (coddis:coddis, nombre:nombres, cif:nif, direccion:domicilio, telefono:telefonos, porcentaje:porcent) ACTOR AGENCIA ACTUA_EN (coda:codact, nombre:nombres, nomreal:nombres, nacionalidad:paises, fechanacim:fecha, sexo:sexos, agencia:codage, cache:dinero) (codag:codage, nombre:nombres, direccion:domicilio, telefono:telefonos) (actor:codact, film:codpel, papel:tipo_papel, paga:dinero) 39 40

Dominio Definición del Dominio CODPEL enteros(3) CODGUI enteros(3) CODDIR enteros(3) CODDIS enteros(2) CODACT enteros(4) CODAGE enteros(2) SEXOS { M, F } TEXTO cadena caracteres variable (500) PORCENT enteros (2) DINERO enteros(9) NIF cadena caracteres fija (12) TITULOS cadena caracteres variable (120) GENEROS {comedia,drama,terror,suspense,accion,romantica,gore,pulp,roadmovie} PAISES {españa,francia,gran_bretaña,eeuu,australia,alemania,la_india,argentina} AÑOS AÑO FECHAS FECHA NOMBRES cadena caracteres variable (35) APELLIDOS cadena caracteres variable (80) DOMICILIOS cadena caracteres variable (50) TELEFONOS cadena caracteres variable (15) TIPO_PAPEL {protagonista, secundario, reparto, figuracion} 41