basesdatos teo5 modelo_relacional

32
1 Sistemas de Información II Tema 5. El modelo relacional Carlos Castillo UPF – 2008 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).

Upload: companirris-company-sa-de-cv-copyright

Post on 13-Dec-2014

1.026 views

Category:

Technology


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Basesdatos teo5 modelo_relacional

1

Sistemas de Información II

Tema 5. El modelo relacional

Carlos Castillo

UPF – 2008

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).

Page 2: Basesdatos teo5 modelo_relacional

2

Temas de esta clase

Conceptos del modelo relacional

Convertir E-R a modelo relacional

Page 3: Basesdatos teo5 modelo_relacional

3

Relación

Relación ≃ tabla de datos

Por eso se llaman bases de datos relacionales

Título Año DuraciónLa guerra de las galaxias 1977 123El señor de los anillos 1 2001 178Mar Adentro 2004 125El viaje de Chihiro 2001 125

Page 4: Basesdatos teo5 modelo_relacional

4

Conceptos

Título Año DuraciónLa guerra de las galaxias 1977 123El señor de los anillos 1 2001 178Mar Adentro 2004 125El viaje de Chihiro 2001 125

Atributos

Tuplas

Dominio=Textos Dominio=Enteros

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

Page 5: Basesdatos teo5 modelo_relacional

5

Notación

Atributos Ai

Relación R R(A1, A

2, A

3, ..., A

N)

Dominio de Ai dom(Ai)

R A1,A2, ... , AN⊆dom A1×domA2×...×dom AN

Relación son algunas de todas las combinaciones posibles

Page 6: Basesdatos teo5 modelo_relacional

6

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>

Page 7: Basesdatos teo5 modelo_relacional

7

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

Page 8: Basesdatos teo5 modelo_relacional

8

Claves candidatas y primarias

CocheNMatrícula NMotor Marca Modelo ...CCA-341 91234908123 Toyota YarisOFG-851 53489787679 Fiat FiorinoXTV-657 30752312386 Ford MustangWGB-959 50934187123 Toyota Avensis

Claves candidatas

La elección de una clave primaria es arbitrariaSe escoge una que tenga pocos atributos

Page 9: Basesdatos teo5 modelo_relacional

9

Restricciones de claves

Restricción de claves únicas

K ⊆ claves(Relación)

∀ t1, t

2 ∈ Relación, t

1[K] ≠ t

2[K]

NULL|K| ∉ KUna clave puede ser

Un atributo

Varios atributos (clave compuesta)Incluso toda la tupla en algunos casos (evitarlo)

Page 10: Basesdatos teo5 modelo_relacional

10

Llaves foráneas

EmpleadoNombre Apellido DNI FechaNac DNI_Jefe Salario NumDept

DepartamentoNombre Número DNI_Jefe Dirección

ProyectoNombre Número Depto Presupuesto

Trabaja_EnDNI NúmProy

Page 11: Basesdatos teo5 modelo_relacional

11

Integridad referencial

EmpleadoNombre Apellido DNI FechaNac DNI_Jefe Salario NumDept

DepartamentoNombre Número DNI_Jefe Dirección

ProyectoNombre Número Depto Presupuesto

Trabaja_EnDNI NúmProy

Page 12: Basesdatos teo5 modelo_relacional

12

Mejor nombre: ID_XXX[_rol]Mejor dominio: numérico

EmpleadoNombre Apellido ID_emp FechaNac ID_emp_jefe Salario ID_depto

DepartamentoNombre ID_depto ID_emp_direct Dirección

ProyectoNombre ID_proy Depto Presupuesto

Trabaja_EnID_emp ID_proy

Page 13: Basesdatos teo5 modelo_relacional

13

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

Page 14: Basesdatos teo5 modelo_relacional

14

Convertir Entidad-Relaciónen

Modelo Relacional

Page 15: Basesdatos teo5 modelo_relacional

15

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

Page 16: Basesdatos teo5 modelo_relacional

16

Traducción simple, paso 0

ActúaPelícula

Nombre Año

Produce Estudio

Nombre

Actor

Nombre Apellido

Page 17: Basesdatos teo5 modelo_relacional

17

Traducción simple, paso 1

ActúaPelícula

Nombre Año

Produce Estudio

Nombre

Actor

Nombre Apellido

ID_Película ID_Actor

ID_Estudio

Page 18: Basesdatos teo5 modelo_relacional

18

Traducción simple, paso 2

ActúaPelícula

Nombre Año

Produce Estudio

Nombre

Actor

Nombre Apellido

ID_Película ID_Actor

ID_Estudio

PelículaID_Película Nombre Año

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

ActorID_Actor Nombre Apellido

1 Mark Hamill2 Cristopher Lee3 Javier Bardem4 Hugo Weaving

EstudioID_Estudio Nombre1 Ghibli2 New Line Cinema3 Lucasfilms4 Sogecine

Page 19: Basesdatos teo5 modelo_relacional

19

Traducción simple, paso 3

ActúaPelícula

Nombre Año

Produce Estudio

Nombre

Actor

Nombre Apellido

ID_Película ID_Actor

ID_Estudio

PelículaID_Película Nombre Año

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

ActorID_Actor Nombre Apellido

1 Mark Hamill2 Cristopher Lee3 Javier Bardem4 Hugo Weaving

EstudioID_Estudio Nombre1 Ghibli2 New Line Cinema3 Lucasfilms4 Sogecine

ActúaID_Actor ID_Película

1 12 23 34 2

ProduceID_Película ID_Estudio

1 32 23 44 1

Page 20: Basesdatos teo5 modelo_relacional

20

Combinar relaciones

A veces es posible combinar relaciones

El caso típico son las relaciones 1-N

Relaciones 1-1 deberían descartarse antes

ActúaPelícula

Nombre Año

Produce Estudio

Nombre

Actor

Nombre Apellido

N N

1

ID_Película ID_Actor

ID_Estudio

N

Page 21: Basesdatos teo5 modelo_relacional

21

Combinando relación 1-N (a)

ActúaPelícula

Nombre Año

Produce Estudio

Nombre

Actor

Nombre Apellido

N N

N

1

ID_Película ID_Actor ID_Estudio

PelículaID_Película Nombre Año

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

ActorID_Actor Nombre Apellido

1 Mark Hamill2 Cristopher Lee3 Javier Bardem4 Hugo Weaving

EstudioID_Estudio Nombre1 Ghibli2 New Line Cinema3 Lucasfilms4 Sogecine

ActúaID_Actor ID_Película

1 12 23 34 2

ProduceID_Película (1) ID_Estudio (N)

1 32 23 44 1

Page 22: Basesdatos teo5 modelo_relacional

22

Combinando relación 1-N (b)

ActúaPelícula

Nombre Año

Produce Estudio

Nombre

Actor

Nombre Apellido

N N

N

1

ID_Película ID_Actor ID_Estudio

PelículaID_Película Nombre Año ID_Estudio

1 La guerra de las galaxias 1977 32 El señor de los anillos 1 2001 23 Mar Adentro 2004 44 El viaje de Chihiro 2001 1

ActorID_Actor Nombre Apellido

1 Mark Hamill2 Cristopher Lee3 Javier Bardem4 Hugo Weaving

EstudioID_Estudio Nombre1 Ghibli2 New Line Cinema3 Lucasfilms4 Sogecine

ActúaID_Actor ID_Película

1 12 23 34 2

ProduceID_Película (1) ID_Estudio (N)

1 32 23 44 1

Page 23: Basesdatos teo5 modelo_relacional

23

Combinando relación 1-N (c)

ActúaPelícula

Nombre Año

Produce Estudio

Nombre

Actor

Nombre Apellido

N N

N

1

ID_Película ID_Actor ID_Estudio

PelículaID_Película Nombre Año ID_Estudio

1 La guerra de las galaxias 1977 32 El señor de los anillos 1 2001 23 Mar Adentro 2004 44 El viaje de Chihiro 2001 1

ActorID_Actor Nombre Apellido

1 Mark Hamill2 Cristopher Lee3 Javier Bardem4 Hugo Weaving

EstudioID_Estudio Nombre1 Ghibli2 New Line Cinema3 Lucasfilms4 Sogecine

ActúaID_Actor ID_Película

1 12 23 34 2

Page 24: Basesdatos teo5 modelo_relacional

24

Traducción cuando hay subclases

Page 25: Basesdatos teo5 modelo_relacional

25

E-R a relacional con subclases

Vehículo

d

IDv

Matrícula

Bus Camión Coche

EjesPasajeros

Propietario

IDp

NombreDueñoN 1

Page 26: Basesdatos teo5 modelo_relacional

26

Opción 1: directo E-R

Vehículo

d

IDv

Matrícula

Bus Camión Coche

EjesPasajeros

PropietarioIDp

Nombre

DueñoN 1

BusIDv Pasajeros

CamiónIDv Ejes

CocheIDv

PropietarioIDp Nombre

VehículoIDv Matrícula

DueñoIDv IDp

Page 27: Basesdatos teo5 modelo_relacional

27

Opción 2: orientado a objetos

Vehículo

d

IDv

Matrícula

Bus Camión Coche

EjesPasajeros

PropietarioIDp

Nombre

DueñoN 1

BusIDv Matrícula Pasajeros

CamiónIDv Matrícula Ejes

CocheIDv Matrícula

PropietarioIDp Nombre

VehículoIDv Matrícula

DueñoIDv IDp

Nota:La tabla vehículo existe eneste caso sí y sólo si hayespecialización parcial

Page 28: Basesdatos teo5 modelo_relacional

28

Opción 3: valores nulos

Vehículo

d

IDv

Matrícula

Bus Camión Coche

EjesPasajeros

PropietarioIDp

Nombre

DueñoN 1

VehículoIDv Matrícula Pasajeros Ejes

PropietarioIDp Nombre

DueñoIDv IDp

Page 29: Basesdatos teo5 modelo_relacional

29

Desventaja opciónorientado a objetos

Queremos pocas entidades

Cuando hay entidades “overlapped” podríamos tener que generar todas las combinaciones posibles

Barco

o

Pasajeros CargaNPax Tons

Barco_PasajerosIDb NPax

Barco_CargaIDb Tons

Barco_Pasajeros_CargaIDb NPax Tons

Page 30: Basesdatos teo5 modelo_relacional

30

Ventaja de usarvalores 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';

Page 31: Basesdatos teo5 modelo_relacional

31

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

Page 32: Basesdatos teo5 modelo_relacional

32

Resumen

Modelo relacional

Formalización de esquemas de tablas

Traducción E-R a relacional es directa en muchos casos