Bases de Datos - Parte 5/10 Modelo relacional

download Bases de Datos - Parte 5/10 Modelo relacional

If you can't read please download the document

Transcript of Bases de Datos - Parte 5/10 Modelo relacional

EmpleadoNombreApellidoID_empFechaNacID_emp_jefeSalarioID_depto

???Page ??? (???)01/03/2007, 12:34:23Page / DepartamentoNombreID_deptoID_emp_directDireccin

???Page ??? (???)01/03/2007, 12:34:23Page / ProyectoNombreID_proyDeptoPresupuesto

???Page ??? (???)01/03/2007, 12:34:23Page / Trabaja_EnID_empID_proy

???Page ??? (???)01/03/2007, 12:34:23Page / DueoIDvIDp

???Page ??? (???)01/03/2007, 12:34:23Page / BusIDvMatrculaPasajeros

???Page ??? (???)01/03/2007, 12:34:23Page / CaminIDvMatrculaEjes

???Page ??? (???)01/03/2007, 12:34:23Page / CocheIDvMatrcula

???Page ??? (???)01/03/2007, 12:34:24Page / PropietarioIDpNombre

???Page ??? (???)01/03/2007, 12:34:24Page / VehculoIDvMatrcula

???Page ??? (???)01/03/2007, 12:34:24Page / Sistemas de Informacin II
Tema 5. El modelo relacional

Carlos Castillo

UPF 2007

Bibliografa:

Elmasri y Navathe: Fundamentos de Sistemas de Bases de Datos

3 edicin, 2002 (Captulo 7).

Garcia-Molina, Ullman y Widom: Database systems: the complete book. Prentice-Hall (Captulo 3).

Temas de esta clase

Conceptos del modelo relacional

Convertir E-R a modelo relacional

Relacin

Relacin tabla de datos

Por eso se llaman bases de datos relacionales

Conceptos

Atributos

Tuplas

Dominio=Textos

Dominio=Enteros

Pelcula(ttulo,ao,duracin)

Esquema

Notacin

AtributosAi

Relacin RR(A1, A2, A3, ..., AN)

Dominio de Aidom(Ai)

Relacin son algunas de todas las combinaciones posibles

Relacin es un conjunto

Por lo tanto, no est ordenado

Notacin para las tuplas

t = Pelcula

Notacin para subconjunto de tupla

t[ao,duracin] =

Dominios

Restriccin de dominio

t[A] = x dom(A)

En algunos casos ...

NULL dom(A)

En tal caso diremos que la relacin acepta valores nulos

Claves candidatas y primarias

Claves candidatas

La eleccin de una clave primaria es arbitraria

Se escoge una que tenga pocos atributos

Restricciones de claves

Restriccin de claves nicas

K claves(Relacin)

t1, t2 Relacin, t1[K] t2[K]

NULL|K| K

Una clave puede ser

Un atributo

Varios atributos (clave compuesta)

Incluso toda la tupla en algunos casos (evitarlo)

Llaves forneas

Integridad referencial

Mejor nombre: ID_XXX[_rol]
Mejor dominio: numrico

Mantener integridad referencial

Al insertar

Insertar clave fornea en la otra tabla

Rechazar la insercin

Al eliminar

Eliminar tuplas que apuntan a esta tupla

Cascada

Actualizar valores en tuplas que apuntan a esta tupla

Convertir Entidad-Relacin
en
Modelo Relacional

Convertir Entidad-Relacin

Se comienza con un modelo E-R

Porque es ms fcil de disear

Tiene dos conceptos: entidad y relacin

Traducir E-R a relacional, versin simple:

Cada entidad se transforma en una tabla con los mismos atributos

Se agregan claves donde sea necesario

Cada relacin se transforma en una tabla en que los atributos son las claves de cada entidad participante

Traduccin simple, paso 0

ActaPelculaNombreAoProduceEstudioNombreActorNombreApellido

Traduccin simple, paso 1

ActaPelculaNombreAoProduceEstudioNombreActorNombreApellido

ID_PelculaID_ActorID_Estudio

Traduccin simple, paso 2

ActaPelculaNombreAoProduceEstudioNombreActorNombreApellido

ID_PelculaID_ActorID_Estudio

Traduccin simple, paso 3

ActaPelculaNombreAoProduceEstudioNombreActorNombreApellido

ID_PelculaID_ActorID_Estudio

Combinar relaciones

A veces es posible combinar relaciones

El caso tpico son las relaciones 1-N

Relaciones 1-1 deberan descartarse antes

ActaPelculaNombreAoProduceEstudioNombreActorNombreApellido

NN

1

ID_PelculaID_ActorID_Estudio

N

Combinando relacin 1-N (a)

ActaPelculaNombreAoProduceEstudioNombreActorNombreApellido

NN

N1

ID_PelculaID_ActorID_Estudio

Combinando relacin 1-N (b)

ActaPelculaNombreAoProduceEstudioNombreActorNombreApellido

NN

N1

ID_PelculaID_ActorID_Estudio

Combinando relacin 1-N (c)

ActaPelculaNombreAoProduceEstudioNombreActorNombreApellido

NN

N1

ID_PelculaID_ActorID_Estudio

Traduccin cuando hay subclases

E-R a relacional con subclases

Vehculo

d

IDvMatrcula

BusCaminCoche

Ejes

PasajerosPropietarioIDpNombre

DueoN1

Opcin 1: directo E-R

Vehculo

d

IDvMatrcula

BusCaminCoche

Ejes

PasajerosPropietarioIDpNombre

DueoN1

Opcin 2: orientado a objetos

Vehculo

d

IDvMatrcula

BusCaminCoche

Ejes

PasajerosPropietarioIDpNombre

DueoN1Nota:La tabla vehculo existe eneste caso s y slo si hayespecializacin parcial

Opcin 3: valores nulos

Vehculo

d

IDvMatrcula

BusCaminCoche

Ejes

PasajerosPropietarioIDpNombre

DueoN1

Desventaja opcin
orientado a objetos

Queremos pocas entidades

Cuando hay entidades overlapped podramos tener que generar todas las combinaciones posibles

Barco

oPasajerosCarga

NPaxTons

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';

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 opcin Directo E-R es una buena solucin intermedia entre ambas

Resumen

Modelo relacional

Formalizacin de esquemas de tablas

Traduccin E-R a relacional es directa en muchos casos

DueoIDvIDp

???Page ??? (???)01/03/2007, 12:34:24Page / VehculoIDvMatrculaPasajerosEjes

???Page ??? (???)01/03/2007, 12:34:24Page / PropietarioIDpNombre

???Page ??? (???)01/03/2007, 12:34:24Page / DueoIDvIDp

???Page ??? (???)01/03/2007, 12:34:24Page / Barco_PasajerosIDbNPax

???Page ??? (???)01/03/2007, 12:34:24Page / Barco_CargaIDbTons

???Page ??? (???)01/03/2007, 12:34:24Page / Barco_Pasajeros_CargaIDbNPaxTons

???Page ??? (???)01/03/2007, 12:34:25Page / EstudioID_EstudioNombre1Ghibli2New Line Cinema3Lucasfilms4Sogecine

???Page ??? (???)01/03/2007, 12:34:25Page / ActaID_ActorID_Pelcula12342

???Page ??? (???)01/03/2007, 12:34:25Page / ProduceID_Pelcula (1)ID_Estudio (N)1323441

???Page ??? (???)01/03/2007, 12:34:25Page / CocheIDv

???Page ??? (???)01/03/2007, 12:34:25Page / PelculaID_PelculaNombreAo1La guerra de las galaxias19772El seor de los anillos 120013Mar Adentro 20044El viaje de Chihiro2001

???Page ??? (???)01/03/2007, 12:34:25Page / Sistemas de Informacin II

Dr. Carlos CastilloUniversitat Pompeu Fabra - 2005

Click to edit the title text format

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline Level

ActorID_ActorNombreApellido1MarkHamill2CristopherLee3JavierBardem4HugoWeaving

???Page ??? (???)01/03/2007, 12:34:25Page / EstudioID_EstudioNombre1Ghibli2New Line Cinema3Lucasfilms4Sogecine

???Page ??? (???)01/03/2007, 12:34:25Page / ActaID_ActorID_Pelcula12342

???Page ??? (???)01/03/2007, 12:34:26Page / ProduceID_PelculaID_Estudio1323441

???Page ??? (???)01/03/2007, 12:34:26Page / PelculaID_PelculaNombreAoID_Estudio1La guerra de las galaxias197732El seor de los anillos 1200123Mar Adentro 200444El viaje de Chihiro20011

???Page ??? (???)01/03/2007, 12:34:26Page / ActorID_ActorNombreApellido1MarkHamill2CristopherLee3JavierBardem4HugoWeaving

???Page ??? (???)01/03/2007, 12:34:26Page / EstudioID_EstudioNombre1Ghibli2New Line Cinema3Lucasfilms4Sogecine

???Page ??? (???)01/03/2007, 12:34:26Page / ActaID_ActorID_Pelcula12342

???Page ??? (???)01/03/2007, 12:34:26Page / ProduceID_Pelcula (1)ID_Estudio (N)1323441

???Page ??? (???)01/03/2007, 12:34:26Page / PelculaID_PelculaNombreAoID_Estudio1La guerra de las galaxias197732El seor de los anillos 1200123Mar Adentro 200444El viaje de Chihiro20011

???Page ??? (???)01/03/2007, 12:34:26Page / ActorID_ActorNombreApellido1MarkHamill2CristopherLee3JavierBardem4HugoWeaving

???Page ??? (???)01/03/2007, 12:34:27Page / EstudioID_EstudioNombre1Ghibli2New Line Cinema3Lucasfilms4Sogecine

???Page ??? (???)01/03/2007, 12:34:27Page / ActaID_ActorID_Pelcula12342

???Page ??? (???)01/03/2007, 12:34:27Page / PropietarioIDpNombre

???Page ??? (???)01/03/2007, 12:34:27Page / BusIDvPasajeros

???Page ??? (???)01/03/2007, 12:34:27Page / CaminIDvEjes

???Page ??? (???)01/03/2007, 12:34:27Page / TtuloAoDuracin

La guerra de las galaxias1977123

El seor de los anillos 12001178

Mar Adentro 2004125

El viaje de Chihiro2001125

???Page ??? (???)01/03/2007, 12:34:27Page / TtuloAoDuracin

La guerra de las galaxias1977123

El seor de los anillos 12001178

Mar Adentro 2004125

El viaje de Chihiro2001125

???Page ??? (???)01/03/2007, 12:34:27Page / PelculaID_PelculaNombreAo1La guerra de las galaxias19772El seor de los anillos 120013Mar Adentro 20044El viaje de Chihiro2001

???Page ??? (???)01/03/2007, 12:34:27Page / ActorID_ActorNombreApellido1MarkHamill2CristopherLee3JavierBardem4HugoWeaving

???Page ??? (???)01/03/2007, 12:34:28Page / EstudioID_EstudioNombre1Ghibli2New Line Cinema3Lucasfilms4Sogecine

???Page ??? (???)01/03/2007, 12:34:28Page / PelculaID_PelculaNombreAo1La guerra de las galaxias19772El seor de los anillos 120013Mar Adentro 20044El viaje de Chihiro2001

???Page ??? (???)01/03/2007, 12:34:28Page / ActorID_ActorNombreApellido1MarkHamill2CristopherLee3JavierBardem4HugoWeaving

???Page ??? (???)01/03/2007, 12:34:28Page / VehculoIDvMatrcula

???Page ??? (???)01/03/2007, 12:34:28Page / CocheNMatrculaNMotorMarcaModelo...CCA-34191234908123ToyotaYarisOFG-85153489787679FiatFiorinoXTV-65730752312386FordMustangWGB-95950934187123ToyotaAvensis

???Page ??? (???)01/03/2007, 12:34:28Page / EmpleadoNombreApellidoDNIFechaNacDNI_JefeSalarioNumDept

???Page ??? (???)01/03/2007, 12:34:28Page / DepartamentoNombreNmeroDNI_JefeDireccin

???Page ??? (???)01/03/2007, 12:34:28Page / ProyectoNombreNmeroDeptoPresupuesto

???Page ??? (???)01/03/2007, 12:34:29Page / Trabaja_EnDNINmProy

???Page ??? (???)01/03/2007, 12:34:29Page / EmpleadoNombreApellidoDNIFechaNacDNI_JefeSalarioNumDept

???Page ??? (???)01/03/2007, 12:34:29Page / DepartamentoNombreNmeroDNI_JefeDireccin

???Page ??? (???)01/03/2007, 12:34:29Page / ProyectoNombreNmeroDeptoPresupuesto

???Page ??? (???)01/03/2007, 12:34:29Page / Trabaja_EnDNINmProy

???Page ??? (???)01/03/2007, 12:34:29Page /