Basesdatos Teo5 Modelo Relacional

  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Basesdatos Teo5 Modelo Relacional as PDF for free.

More details

  • Words: 1,333
  • Pages: 32
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 La guerra de las galaxias El señor de los anillos 1 Mar Adentro El viaje de Chihiro

Año

Duración

1977 2001 2004 2001

123 178 125 125

3

Conceptos Esquema Película(título,año,duración)

Atributos Tuplas

Título La guerra de las galaxias El señor de los anillos 1 Mar Adentro El viaje de Chihiro

Dominio=Textos

Año

Duración

1977 2001 2004 2001

123 178 125 125

Dominio=Enteros 4

Notación Atributos Relación R Dominio de Ai

Ai R(A1, A2, A3, ..., AN) dom(Ai)

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 CCA-341 OFG-851 XTV-657 WGB-959

NMotor

Marca

Modelo ...

91234908123 53489787679 30752312386 50934187123

Toyota Fiat Ford Toyota

Yaris Fiorino Mustang 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)

∀ t1, t2 ∈ Relación, t1[K] ≠ t2[K] |K|

NULL

∉ K

Una clave puede ser Un atributo Varios atributos (clave compuesta) Incluso toda la tupla en algunos casos (evitarlo) 9

Llaves foráneas Empleado Nombre Apellido

DNI

FechaNac

DNI_Jefe Salario NumDept

Departamento Nombre Número

DNI_Jefe

Dirección

Trabaja_En DNI NúmProy

Proyecto Nombre

Número

Depto

Presupuesto 10

Integridad referencial Empleado Nombre Apellido

DNI

FechaNac

DNI_Jefe Salario NumDept

Departamento Nombre Número

DNI_Jefe

Dirección

Trabaja_En DNI NúmProy

Proyecto Nombre

Número

Depto

Presupuesto 11

Mejor nombre: ID_XXX[_rol] Mejor dominio: numérico Empleado Nombre Apellido ID_emp FechaNac ID_emp_jefe Salario ID_depto

Departamento Nombre ID_depto ID_emp_direct Dirección

Trabaja_En ID_emp ID_proy

Proyecto Nombre

ID_proy

Depto

Presupuesto 12

Mantener integridad referencial Al insertar 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

Nombre Película

Apellido

Nombre Actúa

Actor

Produce

Estudio

Nombre

16

Traducción simple, paso 1 Año

Nombre Película

Apellido

Nombre Actor

Actúa

ID_Película

ID_Actor ID_Estudio Produce

Estudio

Nombre

17

Traducción simple, paso 2 Año

Nombre Película

Apellido

Nombre Actúa

ID_Película

Actor ID_Actor ID_Estudio

Película ID_Película 1 2 3 4

Actor ID_Actor 1 2 3 4

Estudio ID_Estudio 1 2 3 4

Produce

Nombre

La guerra de las galaxias El señor de los anillos 1 Mar Adentro El viaje de Chihiro

Nombre

Mark Cristopher Javier Hugo

Año

1977 2001 2004 2001

Estudio

Nombre

Apellido Hamill Lee Bardem Weaving

Nombre

Ghibli New Line Cinema Lucasfilms Sogecine

18

Traducción simple, paso 3 Año

Nombre Película

Apellido

Nombre Actúa

ID_Película

Actor ID_Actor ID_Estudio

Película ID_Película 1 2 3 4

Actor ID_Actor 1 2 3 4

Estudio ID_Estudio 1 2 3 4

Nombre

La guerra de las galaxias El señor de los anillos 1 Mar Adentro El viaje de Chihiro

Nombre

Mark Cristopher Javier Hugo

Nombre

Ghibli New Line Cinema Lucasfilms Sogecine

Apellido Hamill Lee Bardem Weaving

Año

Produce

1977 2001 2004 2001

Estudio

Nombre

Actúa ID_Actor 1 2 3 4

1 2 3 2

ID_Película

Produce ID_Película 1 2 3 4

3 2 4 1

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

Nombre

N

Película

Apellido

Nombre Actúa

ID_Película

N

Actor

ID_Actor ID_Estudio

N

Produce

1 Nombre

Estudio

20

Combinando relación 1-N (a) Año

Nombre Película

N

Actúa

N

ID_Película

1 2 3 4

Actor ID_Actor 1 2 3 4

Estudio ID_Estudio 1 2 3 4

Nombre

La guerra de las galaxias El señor de los anillos 1 Mar Adentro El viaje de Chihiro

Nombre

Mark Cristopher Javier Hugo

Nombre

Ghibli New Line Cinema Lucasfilms Sogecine

N

Actor

ID_Actor Produce

Película ID_Película

Apellido

Nombre

Año

1

ID_Estudio Estudio

Nombre

1977 2001 2004 2001

Actúa ID_Actor

Apellido

1 2 3 4

Hamill Lee Bardem Weaving

1 2 3 2

Produce ID_Película (1) 1 2 3 4

ID_Película

3 2 4 1

ID_Estudio (N)

21

Combinando relación 1-N (b) Estudio ID_Estudio 1 2 3 4

Año

Nombre

Nombre

Película

Ghibli New Line Cinema Lucasfilms Sogecine

ID_Película

N

Actúa

N

Nombre

1 2 3 4

Actúa ID_Actor 1 2 3 4

Mark Cristopher Javier Hugo

1 2 3 2

Película ID_Película 1 2 3 4

N ID_Actor

Produce

Actor ID_Actor

Apellido

Nombre

Apellido

1

Actor ID_Estudio Estudio

Nombre

Hamill Lee Bardem Weaving

ID_Película

Nombre

La guerra de las galaxias El señor de los anillos 1 Mar Adentro El viaje de Chihiro

Año

1977 2001 2004 2001

ID_Estudio 3 2 4 1

Produce ID_Película (1) 1 2 3 4

3 2 4 1

ID_Estudio (N)

22

Combinando relación 1-N (c) Estudio ID_Estudio 1 2 3 4

Nombre

Ghibli New Line Cinema Lucasfilms Sogecine

Año

Nombre

Actor ID_Actor

Nombre

1 2 3 4

Actúa ID_Actor 1 2 3 4

Mark Cristopher Javier Hugo

1 2 3 2

Película ID_Película 1 2 3 4

Apellido

Película

Hamill Lee Bardem Weaving

ID_Película

Nombre

N

Actúa

N

N ID_Actor

Produce

1

Actor ID_Estudio Estudio

Nombre

ID_Película

La guerra de las galaxias El señor de los anillos 1 Mar Adentro El viaje de Chihiro

Apellido

Nombre

Año

1977 2001 2004 2001

ID_Estudio 3 2 4 1

23

Traducción cuando hay subclases

24

E-R a relacional con subclases IDv Matrícula

IDp Vehículo

N

Dueño

1 Propietario

Nombre

d

Bus Pasajeros

Camión

Coche

Ejes

25

Opción 1: directo E-R IDv

Vehículo

N

Dueño

IDp

1 Propietario

Nombre

Matrícula d Bus Pasajeros

Bus IDv

Camión

Coche

Ejes

Pasajeros

Camión IDv

Propietario IDp Nombre Vehículo IDv

Matrícula

Dueño IDv

IDp

Ejes

Coche IDv 26

Opción 2: orientado a objetos IDv

Vehículo

N

Dueño

1 Propietario

IDp Nombre

Matrícula d Bus Pasajeros

Camión

Coche

Ejes

Bus IDv

Matrícula Pasajeros

Camión IDv

Matrícula

Coche IDv

Matrícula

Ejes

Propietario IDp Nombre Vehículo IDv

Matrícula

Dueño IDv

IDp

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 Nombre

Matrícula d Bus Pasajeros

Vehículo IDv

Camión

Propietario IDp Nombre

Coche

Ejes

Matrícula Pasajeros

Dueño IDv

IDp

Ejes

28

Desventaja opción orientado a objetos Queremos pocas entidades Cuando hay entidades “overlapped” podríamos tener que generar todas las combinaciones posibles

NPax

Barco

Barco_Pasajeros IDb NPax

o

Barco_Carga IDb Tons

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

Related Documents