Sistemas de Información II Tema 5. El modelo relacional Bibliografía: Elmasri y Navathe: Fundamentos de Sistemas de Bases de Datos 3ª edición, 2002 (Capítulo 7). Garcia-Molina, Ullman y Widom: Database systems: the complete book. Prentice-Hall (Capítulo 3). Carlos Castillo UPF 2008 1
Temas de esta clase Conceptos del modelo relacional Convertir E-R a modelo relacional 2
Relación Relación tabla de datos Por eso se llaman bases de datos relacionales Título Año Duración La guerra de las galaxias 1977 123 El señor de los anillos 1 2001 178 Mar Adentro 2004 125 El viaje de Chihiro 2001 125 3
Conceptos Esquema Película(título,año,duración) Atributos Tuplas Título Año Duración La guerra de las galaxias 1977 123 El señor de los anillos 1 2001 178 Mar Adentro 2004 125 El viaje de Chihiro 2001 125 Dominio=Textos Dominio=Enteros 4
Notación Atributos A i Relación R R(A 1, A 2, A 3,..., A N ) Dominio de Ai dom(a i ) R A 1, A 2,..., A N dom A 1 dom A 2... dom A N Relación son algunas de todas las combinaciones posibles 5
Relación es un conjunto Por lo tanto, no está ordenado Notación para las tuplas t = <Mar Adentro, 2004, 125> Película Notación para subconjunto de tupla t[año,duración] = <2004, 125> 6
Dominios Restricción de dominio t[a] = <x> x dom(a) En algunos casos... NULL dom(a) En tal caso diremos que la relación acepta valores nulos 7
Claves candidatas y primarias Claves candidatas Coche NMatrícula NMotor Marca Modelo... CCA-341 91234908123 Toyota Yaris OFG-851 53489787679 Fiat Fiorino XTV-657 30752312386 Ford Mustang WGB-959 50934187123 Toyota Avensis La elección de una clave primaria es arbitraria Se escoge una que tenga pocos atributos 8
Restricciones de claves Restricción de claves únicas K claves(relación) t 1, t 2 Relación, t 1 [K] t 2 [K] NULL K K Una clave puede ser Un atributo Varios atributos (clave compuesta) Incluso toda la tupla en algunos casos (evitarlo) 9
Llaves foráneas Empleado Apellido DNI FechaNac DNI_Jefe Salario NumDept Departamento Número DNI_Jefe Dirección Trabaja_En DNI NúmProy Proyecto Número Depto Presupuesto 10
Integridad referencial Empleado Apellido DNI FechaNac DNI_Jefe Salario NumDept Departamento Número DNI_Jefe Dirección Trabaja_En DNI NúmProy Proyecto Número Depto Presupuesto 11
Mejor nombre: ID_XXX[_rol] Mejor dominio: numérico Empleado Apellido ID_emp FechaNac ID_emp_jefe Salario ID_depto Departamento ID_depto ID_emp_direct Dirección Trabaja_En ID_emp ID_proy Proyecto ID_proy Depto Presupuesto 12
Al insertar Mantener integridad referencial Insertar clave foránea en la otra tabla Rechazar la inserción Al eliminar Eliminar tuplas que apuntan a esta tupla Cascada Actualizar valores en tuplas que apuntan a esta tupla 13
Convertir Entidad-Relación en Modelo Relacional 14
Convertir Entidad-Relación Se comienza con un modelo E-R Porque es más fácil de diseñar Tiene dos conceptos: entidad y relación Traducir E-R a relacional, versión simple: 1)Cada entidad se transforma en una tabla con los mismos atributos 2)Se agregan claves donde sea necesario 3)Cada relación se transforma en una tabla en que los atributos son las claves de cada entidad participante 15
Traducción simple, paso 0 Año Apellido Película Actúa Actor Produce Estudio 16
Traducción simple, paso 1 Año Apellido Película Actúa Actor ID_Película ID_Actor ID_Estudio Produce Estudio 17
Traducción simple, paso 2 Año Apellido Película Actúa Actor ID_Película ID_Actor ID_Estudio Película ID_Película Año 1 La guerra de las galaxias 1977 2 El señor de los anillos 1 2001 3 Mar Adentro 2004 4 El viaje de Chihiro 2001 Produce Estudio Actor ID_Actor Apellido 1 Mark Hamill 2 Cristopher Lee 3 Javier Bardem 4 Hugo Weaving Estudio ID_Estudio 1 Ghibli 2 New Line Cinema 3 Lucasfilms 4 Sogecine 18
Traducción simple, paso 3 Año Apellido Película Actúa Actor ID_Película ID_Actor ID_Estudio Película ID_Película Año 1 La guerra de las galaxias 1977 2 El señor de los anillos 1 2001 3 Mar Adentro 2004 4 El viaje de Chihiro 2001 Produce Estudio Actor ID_Actor Apellido 1 Mark Hamill 2 Cristopher Lee 3 Javier Bardem 4 Hugo Weaving Estudio ID_Estudio 1 Ghibli 2 New Line Cinema 3 Lucasfilms 4 Sogecine Actúa ID_Actor 1 1 2 2 3 3 4 2 Produce ID_Película 1 3 2 2 3 4 4 1 ID_Película ID_Estudio 19
Combinar relaciones A veces es posible combinar relaciones El caso típico son las relaciones 1-N Relaciones 1-1 deberían descartarse antes Año Apellido Película N Actúa N Actor ID_Película ID_Actor ID_Estudio N Produce 1 Estudio 20
Combinando relación 1-N (a) Año Apellido Película N Actúa N Actor ID_Película N ID_Actor ID_Estudio Produce 1 Estudio Película ID_Película Año 1 La guerra de las galaxias 1977 2 El señor de los anillos 1 2001 3 Mar Adentro 2004 4 El viaje de Chihiro 2001 Actor ID_Actor Apellido 1 Mark Hamill 2 Cristopher Lee 3 Javier Bardem 4 Hugo Weaving Estudio ID_Estudio 1 Ghibli 2 New Line Cinema 3 Lucasfilms 4 Sogecine Actúa ID_Actor 1 1 2 2 3 3 4 2 ID_Película Produce ID_Película (1) ID_Estudio (N) 1 3 2 2 3 4 4 1 21
Combinando relación 1-N (b) Estudio ID_Estudio 1 Ghibli 2 New Line Cinema 3 Lucasfilms 4 Sogecine Actor ID_Actor Apellido 1 Mark Hamill 2 Cristopher Lee 3 Javier Bardem 4 Hugo Weaving Año Apellido Película N Actúa N Actor ID_Película N ID_Actor ID_Estudio Produce 1 Estudio Actúa ID_Actor 1 1 2 2 3 3 4 2 ID_Película Película ID_Película Año ID_Estudio 1 La guerra de las galaxias 1977 3 2 El señor de los anillos 1 2001 2 3 Mar Adentro 2004 4 4 El viaje de Chihiro 2001 1 Produce ID_Película (1) ID_Estudio (N) 1 3 2 2 3 4 4 1 22
Combinando relación 1-N (c) Estudio ID_Estudio 1 Ghibli 2 New Line Cinema 3 Lucasfilms 4 Sogecine Actor ID_Actor Apellido 1 Mark Hamill 2 Cristopher Lee 3 Javier Bardem 4 Hugo Weaving Año Apellido Película N Actúa N Actor ID_Película N ID_Actor ID_Estudio Produce 1 Estudio Actúa ID_Actor 1 1 2 2 3 3 4 2 ID_Película Película ID_Película Año ID_Estudio 1 La guerra de las galaxias 1977 3 2 El señor de los anillos 1 2001 2 3 Mar Adentro 2004 4 4 El viaje de Chihiro 2001 1 23
Traducción cuando hay subclases 24
E-R a relacional con subclases IDv IDp Matrícula Vehículo N Dueño 1 Propietario d Bus Camión Coche Pasajeros Ejes 25
Opción 1: directo E-R IDv Matrícula Vehículo d Bus Camión Coche N Dueño 1 Propietario Propietario IDp IDp Pasajeros Ejes Vehículo IDv Matrícula Dueño IDv IDp Bus IDv Pasajeros Camión IDv Ejes Coche IDv 26
Opción 2: orientado a objetos IDv Matrícula Vehículo d Bus Camión Coche N Dueño 1 Propietario IDp Propietario IDp Pasajeros Ejes Vehículo IDv Matrícula Bus IDv Matrícula Pasajeros Dueño IDv IDp Camión IDv Matrícula Ejes Coche IDv Matrícula Nota: La tabla vehículo existe en este caso sí y sólo si hay especialización parcial 27
Opción 3: valores nulos IDv Vehículo N Dueño 1 Propietario IDp Matrícula d Bus Camión Coche Propietario IDp Pasajeros Ejes Dueño IDv IDp Vehículo IDv Matrícula Pasajeros Ejes 28
Desventaja opción orientado a objetos Queremos pocas entidades Cuando hay entidades overlapped podríamos tener que generar todas las combinaciones posibles Barco o Barco_Pasajeros IDb NPax Barco_Carga IDb Tons NPax Pasajeros Carga Tons Barco_Pasajeros_Carga IDb NPax Tons 29
Ventaja de usar valores nulos Puede acelerar ciertas consultas, al evitar consultar varias tablas SELECT ejes FROM vehiculo,camion WHERE camion.idv=vehiculo.idv AND vehiculo.matricula='xxx-xxx'; SELECT ejes FROM camion WHERE camion.matricula='xxx-xxx'; 30
Uso de espacio extra Directo E-R Se repiten las claves primarias Orientado a objetos No se repite nada Valores nulos Se repiten todos los atributos La opción Directo E-R es una buena solución intermedia entre ambas 31
Resumen Modelo relacional Formalización de esquemas de tablas Traducción E-R a relacional es directa en muchos casos 32