Professional Documents
Culture Documents
ad 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 problemtica asociada a la modificacin de datos a travs de vistas Conocer los lenguajes formales lgebra relacional y clculo relacional de tuplas, as como el lenguaje relacional estndar SQL-92
Tema 2. Modelo relacional de datos
Contenidos 2.1 Presentacin y orgenes del modelo relacional 2.2 Estructura de datos relacional 2.3 Caractersticas generales de integridad de datos
Bibliografa
[EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de Bases de Datos. 3 Edicin. Addison-Wesley. (Cap. 7, 8 y 9) [EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos. Conceptos fundamentales. 2 Edicin. Addison-Wesley Iberoamericana. (Cap. 6 y 7)
[D 2001] [SKS 1998] ... Date, C.J.: Introduccin a los sistemas de bases de datos. 7 Edicin. Prentice-Hall. (Cap. 3 al 9) Korth, H; Silberschatz, A., Sudarshan, S.: Fundamentos de bases de datos. 3 Edicin. McGraw-Hill. (Cap. 3 y 4)
Gneros
Ciencia-ficcin, Drama,Thriller, Comedia...
Aos
2002, 1997, 1999, 2001, 1994, 1972...
Pases
Italia,Argentina, Espaa, EEUU, Francia,Japn..
Nombres
--- ----- ---
Tiempo
--- ----- ---
ttulo
director
gnero
Amelie
Los lunes al sol
J. P. Jeunet
F. Len
Comedia
Drama
atributos
2001
2002
Francia
Espaa
122
117
grado
Tema 2. Modelo relacional de datos
Columna
=
Campo de registro
=
=
{ (A1:D1), (A2:D2) ... (An:Dn) } Cada Aj tiene asociado slo un Dj Los Di no tienen por qu ser distintos entre s Estado, Cuerpo o Instancia
Conjunto de tuplas que contiene en un instante concreto tupla = conjunto de pares Atributo:Valor
i=1..m
{ { (titulo:Torrente), (duracion:110), (director:S.Segura), (estreno:1997) } { (titulo:The Matrix), (duracion:138), (director:A.Wachowski), (estreno:1999) } ... } El estado de una relacin es variable en el tiempo nuevas tuplas, modificacin o borrado de existentes 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)
Tema 2. Modelo relacional de datos
Representacin muy sencilla (tabla) del elemento abstracto bsico (relacin) del Modelo Relacional
Fcil de utilizar, entender, razonar... Inconveniente
Las relaciones (tablas) son la estructura lgica de la BD Niveles externo y conceptual ANSI/X3/SPARC Toda BDR cumple el Principio de Informacin: Todo contenido de informacin de la BD est representado de una y slo una forma: como valores explcitos dentro de posiciones de columnas dentro de filas dentro de tablas
Visin del contenido de la base de datos en cierto instante Conjunto de estados de relacin
Tema 2. Modelo relacional de datos
2 personas distintas con el mismo DNI Un empleado sin NSS Un alumno con -29 aos Una pelcula sin director Definicin de la BD (esquema) necesita incluir
REGLAS DE INTEGRIDAD
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} }
Tema 2. Modelo relacional de datos
Conjunto de atributos de una relacin que hace referencia a la clave primaria de otra relacin (o la misma)
PELICULA (ttulo, gnero, duracin, director, ...) DIRECTOR (nombre, nacionalidad, ...) EMPLEADO (codEmp, nombre, jefe, nss, ...) LIBRO (ttulo, isbn, autor, editorial, edicin, ao, ...) ESCRITOR (dni, nombre, ...) ARTICULO (ttulo, tema, autor, revista, pgina, ...)
Tema 2. Modelo relacional de datos
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, direccin, ...) HISTORIAL (nss, especialidad, fechaApert, ...) VISITA (nss, especialidad, numVisita, fecha, ...)
505
821 ... ciudad Murcia cuenta 200
40000
50000
Vnculo ClienteCuenta
Lpez, B
Azorn, C Prez, C ...
Ronda Norte, 3
Plaza Mayor, 2
Murcia
Valencia
821
505 505
Restriccin 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 relacin hace referencia a otra relacin, debe referirse a una tupla existente en esa relacin
ARTICULO FK ESCRITOR
Camino Referencial
LIBRO ESCRITOR ARTICULO ttulo isbn autor editorial ... dni nombre ... editorial ttulo tema autor revista pg ... EMPL codEmp ... dep DEPTO codDep ... dire EDITORIAL nombre direccin ...
Ciclo Referencial
Camino que empieza y acaba en la misma relacin Caso especial: Autorreferencia EMPLEADO codEmp ... jefe
Tema 2. Modelo relacional de datos
CLI04 CLI02
100 420
I I D D I D
CLI05
CLI10
115
100
501
R2 R1 Operacin: Eliminar una tupla t de R1 que es referenciada por otras de R2 Ejemplo: Eliminar la tupla (100, D, ...) de HABITACIN Acciones posibles:
1. Rechazar la operacin (accin por defecto) Slo permite borrar t si ninguna otra tupla hace referencia a t 2. Cascada. Propagar la eliminacin 1 Borrar todas las tuplas de R2 que referencian a t 2 Eliminar t 3. Establecer nulos (* se ver despus *)
Tema 2. Modelo relacional de datos
R2 R1 Operacin: Modificar el valor de una FK a un valor no existente en la PK de R1 Ejemplo: Modificar (CLI02, 420,...) a (CLI02, 900,...) en OCUPACIN Accin:
1. Rechazar la operacin (SIEMPRE)
Operacin: 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 HABITACIN Acciones posibles:
1. Rechazar la operacin (accin por defecto) Slo permite modificar la PK de t si ninguna tupla referencia a t 2. Cascada. Propagar la modificacin - 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 despus *)
Tema 2. Modelo relacional de datos
R2 R1 Operacin: Insercin de una tupla t en R2 cuyo valor de FK no se corresponde con ningn valor de la PK en ninguna tupla de R1 Ejemplo: Insertar una tupla (CLI03, 555, ...) en OCUPACIN Acciones posibles:
- Rechazar la operacin (SIEMPRE)
Las operaciones de actualizacin en una BD son siempre atmicas: se realiza TODO o NADA
PROFESOR REA DEPARTAMENTO ASIGNATURA TITULACIN UNIVERSIDAD
Tema 2. Modelo relacional de datos
Nulo y Claves Ajenas El Modelo Relacional permite nulo como valor de clave ajena
depto = null empleados no asignados a ningn departamento jefe = null empleados sin jefe
Tema 2. Modelo relacional de datos
Restriccin de Integridad Referencial La Base de Datos no debe contener valores no nulos de clave ajena sin correspondencia
Tema 2. Modelo relacional de datos
Hay que extender algunas acciones de mantenimiento de la Integridad Referencial: R2 R1 Operacin: Eliminar una tupla t de R1 que es referenciada por otras de R2 Acciones posibles:
1. Rechazar la operacin (accin por defecto) 2. Cascada. Propagar la eliminacin
3. Establecer nulos Slo 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
Tema 2. Modelo relacional de datos
R2 R1 Operacin: 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 operacin (accin por defecto) 2. Cascada. Propagar la modificacin
3. Establecer nulos
Slo si la FK de R2 permite NULO - Toda tupla de R2 que referencia a t pasa a contener NULL en FK - Modificar el valor de la PK de t
Dominio
CODPEL CODGUI CODDIR CODDIS CODACT CODAGE SEXOS TEXTO PORCENT DINERO NIF TITULOS GENEROS PAISES AOS FECHAS NOMBRES APELLIDOS DOMICILIOS TELEFONOS TIPO_PAPEL