Está en la página 1de 10

Objetivos

Ser capaz de obtener un esquema lgico relacional a partir del


esquema conceptual

Tema 8: Diseo lgico de bases de datos relacionales (IG18) Ser capaz de distinguir si las relaciones estn en tercera forma
normal

Ser capaz de transformar a tercera forma normal las relaciones que


http://www.unoweb-s.uji.es/IG18
no lo estn.

Miguel Prez Francisco

Tema 8: Diseo lgico de bases de datos relacionales (IG18) 3

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 /

2.2.1. Entidades . . . . . . . . . . . . . . . . . . . . . . 12 Daz de Santos. 1994. [QA76.9.D26 B3818]

2.2.2. Clasificaciones (jerarquas de generalizacin) . . . 16


2.2.3. Relaciones binarias (1:1) . . . . . . . . . . . . . . 23
2.2.4. Relaciones binaria (1:n) . . . . . . . . . . . . . . 30
2.2.5. Relaciones binarias (m:n) . . . . . . . . . . . . . 33

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

Dicho esquema estar formado por:


Un conjunto de relaciones o tablas (en tercera forma normal).
Claves primarias de cada tabla
Claves ajenas de las distintas tablas y sus reglas de borrado y modificacin
Reglas de integridad necesarias

Tema 8: Diseo lgico de bases de datos relacionales (IG18) 5 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 7

1 Introduccin 2 Metodologa de diseo lgico en el modelo relacional

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

3. Validar cada esquema mediante la normalizacin.

Informacin de la carga

Volumen de la base de datos.


Conocimiento de consultas y transacciones a realizar, y su frecuencia.
Criterios de rendimiento

Tiempo de respuesta medio o mximo.


Espacio de almacenamiento ocupado por la base de datos.
Utilizacin de CPU o tiempo de E/S.
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 6 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 8
2.1 Refinar el esquema conceptual 2.2 Derivar un conjunto de relaciones (tablas)

(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

2.1 Refinar el esquema conceptual 2.2.1 Entidades

(b) Eliminar las relaciones redundantes. Cada entidad del esquema conceptual se transforma en una relacin base (tabla).

Los atributos de la entidad se convierten en los atributos de la tabla.


De entre los identificadores de la entidad se debe escoger uno como clave primaria de la
tabla.

CIUDAD(nombre, num_habitantes, altitud) altitud acepta NULOS

Cada componente de un atributo compuesto se convierte en un atributo de la tabla.

ASUNTO(numero_expediente, estado, fecha_inicio, fecha_fin) fecha_fin acepta NULOS

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

2.2.1 Entidades 2.2.2 Clasificaciones (jerarquas de generalizacin)

El modelo relacional no puede representar clasificaciones


Por ello hay que modificar el esquema entidad/relacin
Existen tres posibles alternativas:
1. No eliminar ninguna de las entidades, transformando las subentidades en
entidades que se relacionan con la entidad padre
2. Eliminacin de la entidad genrica, las subentidades heredan sus
LIBRO(isbn, editorial, AUTOR(autor), idioma, ttulo_ppal, subttulo, EDICIN(nmero, ao)) caractersticas
3. Integracin de las subentidades en la entidad padre

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

E(a1, a2, a3, a4, a5, tipo) si es exclusiva


E(a1, a2) E1(a1, a3) a3, a4, a5 aceptan nulos
E2(a1, a4) E3(a1, a5) tipo acepta nulos si es parcial.
Nulos Borr. Mod.
E1.a1, E2.a1, E3.a1 son claves ajenas a E No Prop. Prop. E(a1, a2, a3, a4, a5, AD(tipo)) si es superpuesta
a3, a4, a5 aceptan nulos

Tema 8: Diseo lgico de bases de datos relacionales (IG18) 17 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 19

2.2.2 Clasificaciones (jerarquas de generalizacin) 2.2.2 Clasificaciones (jerarquas de generalizacin)

(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:

Luis G. es de Borriol, estudia Ingeniera Informtica y trabaja como operador en el Servei


dnformtica. Su DNI es D1.
Ana P. es una profesora del departamento de Matemticas, es de Castelln y est haciendo
E1(a1, a2, a3) el Doctorado. Su DNI es D2.
E2(a1, a2, a4) B.P. es una entidad que colabora con la UJI acogiendo estudiantes de estancias en prcticas.
Est en el Grao de Castelln y su DNI es D3.
E3(a1, a2, a5)
Julia F. es de Nules y trabaja en la Biblioteca. Su DNI es D4.
Pedro L. es de Castelln y tambin estudia Ingeniera Informtica. Su DNI es D5.

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

2.2.2 Clasificaciones (jerarquas de generalizacin) 2.2.3 Relaciones binarias (1:1)

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)

Solucin: Los identificadores externospueden tratarse de dos formas.

EMPLEADO(codemp, nombre)
VEHICULO(matricula, modelo, codemp, fecha_ini)
codemp Nulos Borrado Modificacin
VEHICULO ------------> EMPLEADO

fecha_ini acepta nulos? Juntar las dos entidades en una sla

Crear dos entidades aadindole a la que tiene el identificado r externo el


identificador de la otra entidad (que ser una clave ajena a sta)

Segn la primera opcin:

CLIENTE(codcli, direccin, nombre, direccin_envo)

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

2.2.3 Relaciones binarias (1:1) 2.2.3 Relaciones binarias (1:1)

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.

Escribe cul sera el esquema relacional:

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.

Y si las dos entidades participan con cardinalidad (0,1)?

Y si son ambas (1,1)?

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

2.2.4 Relaciones binaria (1:n) 2.2.4 Relaciones binaria (1:n)

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.

La clave primaria de la nueva tabla depender del significado de los datos

Y los atributos de la relacin?

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

2.2.5 Relaciones binarias (m:n) 2.2.5 Relaciones binarias (m:n)

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.

(7) Estableced en grupo las reglas de comportamiento de cada clave ajena:

Acepta nulos CARTELERA.nombre_cine?

Acepta nulos CARTELERA.ttulo_pelcula?

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

Tema 8: Diseo lgico de bases de datos relacionales (IG18) 37

2.2.5 Relaciones binarias (m:n)

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

hora : cualquier hora del da (00:00 a 23:59)


Tema 8: Diseo lgico de bases de datos relacionales (IG18) 38

También podría gustarte