Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 8: Diseo lgico de bases de datos relacionales (IG18) Ser capaz de distinguir si las relaciones estn en tercera forma
normal
ndice Bibliografa
1. Introduccin 5 T. Connolly, C. Begg, A. Strachan. Database Systems.
Addison-Wesley Ed. 1997. [QA76.9.D26 C66].
2. Metodologa de diseo lgico en el modelo relacional 8
2.1. Refinar el esquema conceptual . . . . . . . . . . . . . . 9 C. Batini, S. Ceri, S.B. Navathe. Diseo Conceptual de Bases de
2.2. Derivar un conjunto de relaciones (tablas) . . . . . . . . . 11 Datos. Un enfoque de entidades-interrelaciones. Addison-Wesley /
3. Normalizacin 39
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 4
1 Introduccin 1 Introduccin
Fases en el diseo de BBDD Obviamente, si se utiliza el modelo relacional, el objetivo ser obtener un esquema lgico
relacional
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 5 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 7
Diseo lgico: conversin del esquema conceptual de datos en un esquema lgico. 1. Refinar el esquema conceptual.
Objetivo: obtener una representacin que use de la manera ms eficiente posible los recursos para
la estructuracin de datos y el modelado de restricciones disponibles en el modelo lgico. 2. Derivar un conjunto de relaciones (tablas).
Informacin de la carga
(a) Sustituir cada relacin entre tres o ms entidades por una entidad intermedia. La cardinalidad En el modelo relacional slo se pueden representar tablas.
de las nuevas relaciones binarias depender de su significado . Si la relacin sustituida tiene
atributos, stos sern los atributos de la nueva entidad. Todos los elementos del esquema conceptual se deben transformar
en tablas:
Entidades
Clasificaciones (jerarquas de generalizacin)
Relaciones: de uno a uno, de uno a muchos y de muchos a
muchos.
Nota: Existen metodologas que no realizan este paso, conservan este tipo de relaciones en el
esquema conceptual y realizan la transformacin directa al modelo relacional.
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 9 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 11
(b) Eliminar las relaciones redundantes. Cada entidad del esquema conceptual se transforma en una relacin base (tabla).
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 10 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 12
2.2.1 Entidades 2.2.1 Entidades
Tambin es posible transformar el atributo compuesto en uno solo que contenga todos los isbn editorial AUTOR idioma titulo_ppal subtitulo EDICIN
atributos simples (por ejemplo el atributo compuesto direccin formado por calle, nmero autor
nmero ao
y piso se puede transformar en uno slo (de tipo cadena de caracteres) que incluya a los 1234543 Ediciones DFX
Juan H.
castellano las BBDD relacionales un enfoque 1 1995
Gema P.
tres. prctico 2 2002
Sara M.
Por cada atributo con cardinalidad mxima mayor que uno se incluye una tabla dentro de la autor
nmero ao
11223CDA Trumpets castellano las BBDD Aprenda en 1 1999
tabla, como un atributo ms. Ferran P. objeto-relacionales y solitario 2 2000
orientadas a objetos
autor nmero ao
11223CDA Casd and Fert ingls DataBase Systems Relational model
Mike G. 1 2001
nmero ao
autor 1 1991
1412SCD-X Casd and Fert Mike R. ingls Computer Systems Hardware and 2 1993
Rose k. Software 3 1999
EMPLEADO(dni, nombre, TTULO(ttulo)) ttulo acepta NULOS? 4 2003
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 13 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 15
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 14 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 16
2.2.2 Clasificaciones (jerarquas de generalizacin) 2.2.2 Clasificaciones (jerarquas de generalizacin)
(1) Una tabla por cada entidad y subentidad. Sirve para cualquier tipo de jerarqua (t/p, (3) Integrar todas las entidades en una tabla. Sirve para cualquier tipo de jerarqua (t/p,
e/s). e/s).
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 17 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 19
(2) Una tabla por cada subentidad. Slo sirve para jerarquas totales y exclusivas. Ejercicio: Se ha modelado las personas de la universidad segn el siguiente esquema conceptual:
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 18 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 20
2.2.2 Clasificaciones (jerarquas de generalizacin) 2.2.3 Relaciones binarias (1:1)
Se ha decidido mantener las 4 entidades. Rellena las siguientes tablas con los datos anteriores Por cada relacin binaria (1:1), incluir la clave primaria de la tabla correspondiente a la
entidad padre en la tabla de la entidad hijo como una clave ajena. Y los atributos de la
relacin?
Ejemplo 1: Una empresa desea almacenar informacin sobre sus empleados y sobre
los coches que conducen. Slo algunos empleados conducen coches. Todos los coches
estn asignados a un (y slo un) empleado.
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 21 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 23
Contesta a las siguientes preguntas: Ejercicio: A paritr del esquema conceptual que se muestra, se han tomado dos opciones para modelarlo ...
1. Escribe una sentencia SQL para obtener los datos de los estudiantes de II !!
"#$ % !!
2. Escribe una sentencia SQL para obtener los datos de las personas que no son estudiantes, ni
! & '
son PAS, ni son PDI ( ) ( )
$*# +( , -./#(
3. Escribe una sentencia SQL para obtener el DNI y el nombre de las personas que estudian en
la universidad y que tambin trabajan en ella (ya sea como PAS o como PDI o como ambos)
4. La LOU no permite que una persona sea PAS y PDI al mismo tiempo cmo podras
representar esto en el esquema conceptual?
, -./#( $*# +(
& ) 0. 1 2 0 '3 2
4 # .5 6 ' 6 '3 7
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 22 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 24
2.2.3 Relaciones binarias (1:1) 2.2.3 Relaciones binarias (1:1)
EMPLEADO(codemp, nombre)
VEHICULO(matricula, modelo, codemp, fecha_ini)
codemp Nulos Borrado Modificacin
VEHICULO ------------> EMPLEADO
ENVO es una entidad dbil porque no tiene atributos que le sirvan como identificador .
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 25 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 27
Ejemplo 2: Una empresa desea almacenar informacin sobre sus empleados y sobre Las relaciones de una entidad consigo misma se tratan del mismo modoque las binarias.
los coches que conducen. Todos los empleados conducen coches. Los coches pueden
estar asignados a un (y slo un) empleado o no estar asignados a ninguno.
VEHICULO(matricula, modelo)
EMPLEADO(codemp, nombre, matricula, fecha_ini)
matricula Nulos Borrado Modificacin
EMPLEADO ------------> VEHICULO
fecha_ini acepta nulos?
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 26 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 28
2.2.3 Relaciones binarias (1:1) 2.2.4 Relaciones binaria (1:n)
Una pequea diferencia entre los dos ejemplos da lugar a dos esquemas lgicos con Ejemplo 2:
diferencias notables.
Otra posibilidad es sustituir la interrelacin por una tabla que hereda las claves primarias
de las dos entidades. La clave primaria de la nueva tabla depender del significado de
HABITACIN(numhab, edificio)
los datos y de las cardinalidades de las entidades.
ESTUDIANTE(codest, nombre, numhab, fecha)
Ejercicio: Reescribe los cuatro ejemplos utilizando una tabla para cada entidad y una
tercera para la interrelacin numhab Nulos Borrado Modificacin
ESTUDIANTE -----------> HABITACIN
fecha acepta nulos?
Y si hay muy pocos estudiantes que viven en una habitacin del campus?
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 29 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 31
Por cada relacin binaria (1:n), incluir la clave primaria de la tabla correspondiente a la Cul es la cardinalidad de la entidad CITA?
entidad padre en la tabla de la entidad hijo (ser una clave ajena). Y los atributos de la
Cmo transformaras los dos ejemplos?
relacin?
Ejemplo 1:
PROFESOR(codpro, nombre)
ESTUDIANTE(codest, nombre, codpro, fecha)
codpro Nulos Borrado Modificacin
ESTUDIANTE ------------> PROFESOR
fecha acepta nulos?
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 30 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 32
2.2.5 Relaciones binarias (m:n) 2.2.5 Relaciones binarias (m:n)
Por cada relacin binaria (m:n), incluir una nueva tabla con una clave ajena a cada una Ejemplo 2:
de las tablas correspondientes a las entidades participantes.
PACIENTE(codpac, nombre)
MDICO(codmed, nombre)
CITA(codmed,fecha,hora, codpac)
codpac Nulos Borrado Modificacin
CITA ------------> PACIENTE
codmed Nulos Borrado Modificacin
CITA ------------> MDICO
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 33 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 35
Ejemplo 1: Ejercicio: Se desea almacenar informacin sobre los cines de una ciudad:
(1) A partir de los datos que aparecen en el peridico (consulta alguno), introduce en las tablas de la base de datos la informacin
ASIGNATURA(codasi, nombre) relativa a dos cines. Para cada uno de estos cines, introduce la informacin de dos de las pelculas que pasa (al menos dos pases
de cada pelcula).
ESTUDIANTE(codest, nombre)
(2) Escoge la clave primaria de cada una de las tablas de la base de datos (subryala):
CURSA(codest,codasi)
CINE(nombre,calle,poblacin,telfono,web,venta_telf,venta_web)
codest Nulos Borrado Modificacin PELCULA(ttulo,gnero,ao,pas,director,resumen,clasificacin)
CARTELERA(nombre_cine,ttulo_pelcula,hora)
CURSA ------------> ESTUDIANTE
(3) Discute con tu compaero qu informacin se dejar de poder almacenar en la tabla CARTELERA si se escoge una clave
codasi Nulos Borrado Modificacin primaria distinta a la escogida en (2).
CURSA ------------> ASIGNATURA (4) Escribid una sentencia SELECT que obtenga los datos de las pelculas para todos los pblicos que se pasan en cines de
Castelln a partir de las 16:30.
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 34 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 36
2.2.5 Relaciones binarias (m:n)
(5) Cmo habr que modificar la estructura de la base de datos para poder introducir los datos de los intrpretes de cada pelcula?
Hay que tener en cuenta que se debe poder guardar informacin de hasta cinco intrpretes.
(6) Escribid una sentencia SELECT que muestre el nombre y la poblacin de los cines que no tienen pgina web.
Para determinar la regla de borrado de CARTELERA.nombre_cine qu pregunta hay que hacerse? : qu pasa si se borra
.....................?
Escoge la/s posible/s respuesta/s (tacha la/s que no sean vlida/s): Anular/Propagar/Restringir
Para determinar la regla de borrado de CARTELERA.ttulo_pelcula qu pregunta hay que hacerse? : qu pasa si se borra
.....................?
Escoge la/s posible/s respuesta/s (tacha la/s que no sean vlida/s): Anular/Propagar/Restringir
CINE
nombre calle poblacin telfono web venta_telf venta_web
PELCULA
ttulo gnero ao pas director resumen clasificacin
gnero
{thriller,comedia,terror,animacin,drama,biografa,aventuras}
clasificacin
{nrm 7 aos,nrm 13 aos,nrm 18 aos,todos los pblicos}
CARTELERA
nombre_cine ttulo_pelcula hora nombre_cine
CARTELERA CINE
ttulo_pelcula
CARTELERA PELCULA