Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduccin
Diseo lgico: conversin del esquema conceptual de datos en un esquema lgico.
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.
esquema conceptual
informacin de la carga
criterios de rendimiento
DISEO
LGICO
esquema lgico
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 7. Diseo lgico de bases de datos relacionales
(0,n)
viaje
AVIN
(0,n)
codpil
nombre
codavi
matrcula
fecha
TRIPULACIN
PILOTO
codtrip nombre
codpil
(0,n)
(1,1)
viaje
(1,n)
AVIN
(1,1)
nombre
(0,n)
codavi
matrcula
(0,n)
TRIPULACIN
codtrip
nombre
edicin
LIBRO
editorial
(1,n)
nmero
ao
ttulo
ttulo_ppal
autor
idioma
subttulo
E
( p/t, e/s )
E1
E2
a3
opcin
(1)
a1
a2
E
(0,1)
(1,1)
E3
a3
E3
E2
E1
a2
a4
a1
a2
a5
a4
opcin
(2)
a1
(1,1)
E2
E1
a3
(0,1)
(0,1)
(1,1)
a5
E3
a4
a5
a1
a2
a3
(0,1)
a4
(0,1)
a5
(0,1)
opcin
(3)
a1
a2
(0/1,1/n)
AD
(1) Una tabla por cada entidad. Sirve para cualquier tipo de jerarqua (t/p, e/s).
E(a1, a2) , E1(a1, a3) , E2(a1, a4) , E3(a1, a5)
Nulos
Borrado
(2) Una tabla por cada subentidad. Slo sirve para jerarquas totales y exclusivas.
E1(a1, a2, a3) , E2(a1, a2, a4) , E3(a1, a2, a5)
(3) Integrar todas las entidades en una tabla. Sirve para cualquier tipo de jerarqua (t/p, e/s).
E(a1, a2, a3, a4, a5, tipo) si es exclusiva;
a3, a4, a5 aceptan nulos;
tipo acepta nulos si es parcial.
E(a1, a2, a3, a4, a5, AD(tipo) ) si es superpuesta;
a3, a4, a5 aceptan nulos;
Tema 7. Diseo lgico de bases de datos relacionales
hijo
(0,1)
EMPLEADO
codemp nombre
(1,1)
VEHCULO
conduce
fecha_ini
matrcula
modelo
EMPLEADO(codemp, nombre )
nulos?
hijo
(1,1)
EMPLEADO
codemp nombre
(0,1)
conduce
fecha_ini
VEHCULO
matrcula
modelo
VEHCULO(matrcula, modelo)
nulos?
Y si las dos entidades participan con cardinalidad (0,1)? Y si son ambas (1,1)?
Tema 7. Diseo lgico de bases de datos relacionales
10
Ojo: Si las entidades relacionadas son sinnimos, integrarlas en una sola tabla.
codcli
(0,1)
(1,1)
CLIENTE
direccin
son sinnimos!!
ENVO
nombre
direccin
nulos?
Ejercicio
codper
nombre
(0,1)
PERSONA
(1,1)
es_acompaada_por
11
(d) Por cada relacin binaria (1:n), incluir la clave primaria de la tabla correspondiente a la
entidad padre en la tabla de la entidad hijo (ser una clave ajena). Y los atributos de la
relacin?
padre
(0/1,n)
PROFESOR
codpro
(1,1)
ESTUDIANTE
tutor
nombre
fecha
codest
nombre
padre
(0/1,n)
HABITACIN
numhab
edificio
ocupa
fecha
(0,1)
ESTUDIANTE
codest nombre
12
nulos?
padre
(0/1,n)
PROFESOR
codpro
ESTUDIANTE
tutor
nombre
PROFESOR(codpro, nombre)
(1,1)
fecha
codest
nombre
codpro
Nulos
PROFESOR
nulos?
padre
(0/1,n)
HABITACIN
numhab
Borrado
edificio
ocupa
fecha
HABITACIN(numhab, edificio)
(0,1)
ESTUDIANTE
codest nombre
numhab
Nulos
Borrado
HABITACION
13
(0,n)
ASIGNATURA
codasi
cursa
ASIGNATURA(codasi, nombre)
ESTUDIANTE
codest
nombre
(1,n)
PACIENTE
codpac
(1,n)
(0,n)
MDICO
cita
nombre
fecha
nombre
codmed
nombre
hora
ESTUDIANTE(codest, nombre)
CURSA(codest, codasi)
codest
CURSA
ESTUDIANTE
codasi
CURSA
ASIGNATURA
Nulos Borrado
PACIENTE(codpac, nombre)
MDICO(codmed, nombre)
CITA(codmed, fecha, hora, codpac)
codmed
CITA
MDICO
codpac
CITA
PACIENTE
Nulos Borrado
16
18
19
3. Normalizacin
Tcnica para disear bases de datos relacionales.
Se debe a Codd (1972).
No se utiliza como una estrategia de diseo de bases de datos.
Se utiliza para verificar esquemas relacionales.
Ventajas
9 Evita anomalas en inserciones, modificaciones y borrados.
9 Mejora la independencia de datos.
20
Fecha: 16/2/99
123456
9876
Productos Surtidos
Borriol, Castelln
Pedido n:
Proveedor n:
Nombre del proveedor:
Direccin del proveedor:
Deseamos enven:
Nmero
producto
Descripcin
Precio
unitario
Cantidad
Total
511246
Televisin
70.000
70.000
124456
Clavija antena
100
10
1.000
124763
Enchufe
150
10
1.500
21
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
22
npedido
PEDIDO
24
npedido
PEDIDO
LNEA
nproducto
PRODUCTO
25
PEDIDO
LNEA
LNEA
nprov
npedido
nproducto
PROVEEDOR
PEDIDO
PRODUCTO
26
Dependencia funcional
Y es funcionalmente dependiente de X, si X determina el valor de Y: X
Ejemplo:
poblacin
Observaciones
La dependencia funcional es una nocin semntica.
Cada dependencia funcional es una clase especial de regla de integridad.
Cada dependencia funcional representa una relacin de uno a muchos.
27
LP7
nombre
Ladrillo hueco
Ladrillo perforado
VERSIN
nmero
fecha
ventas
1/3/1996
30.000
1/8/1998
50.000
1/2/2000
13.000
1/6/1996
70.000
1/12/2000
Se descompone en:
grupos repetitivos
(valores no atmicos)
1FN
VERSIN
codprod
Nulos
Borrado
PRODUCTO
28
precio
estudiante
actividad
precio
100
Tenis
1500
100
Yoga
1500
200
Tenis
1500
300
Escalada
5000
estudiante
precio
actividad
INSCRIPCIN
Tema 7. Diseo lgico de bases de datos relacionales
Nulos
Borrado
ACTIVIDAD
29
3FN
inquilino
alquiler
inquilino
edificio
alquiler
100
E04
50.000
200
E13
50.000
300
E09
65.000
400
E04
50.000
edificio
alquiler
INQUILINO
Tema 7. Diseo lgico de bases de datos relacionales
Nulos
Borrado
EDIFICIO
30
Ejercicio de normalizacin
estudiante
0123
7636
7636
7636
0123
9516
0123
9516
0123
3361
...
nombre
Carlos
Paula
Paula
Paula
Carlos
Andrs
Carlos
Andrs
Carlos
Luca
...
apellido
Gil
Tena
Tena
Tena
Gil
Calpe
Gil
Calpe
Gil
Porcar
...
DNI
direccin
codbeca
159357
913752
913752
913752
159357
682432
159357
682432
159357
243115
...
C/ Paz, 23
C/ Ro Po, 1
C/ Ro Po, 1
C/ Ro Po, 1
C/ Paz, 23
Plz. Sol, 40
C/ Paz, 23
Plz. Sol, 40
C/ Paz, 23
Plz. Sol, 26
...
A223
B567
A223
G654
G654
G654
B567
B567
A223
A223
...
nombeca
requisito
EEUU
ERASMUS
EEUU
DRAC
DRAC
DRAC
ERASMUS
ERASMUS
EEUU
EEUU
...
Ing. Sup.
Ing. Tc.
Ing. Sup.
Ing. Sup.
Ing. Sup.
Ing. Sup.
Ing. Tc.
Ing. Tc.
Ing. Sup.
Ing. Sup.
...
fecha
10/10/98
12/11/98
14/10/98
15/09/99
17/09/98
12/09/99
12/11/98
23/11/99
12/10/99
12/10/99
...
SOLICITUD (estudiante, codbeca, fecha, nombre, apellido, DNI, direccin, nombeca, requisito)
31
32
Desnormalizacin
Por ejemplo, se pueden fusionar las relaciones:
CLIENTE(codcli, nombre, codpostal) y CODPOSTAL(codpostal, codpueblo)
en una sola relacin: CLIENTE(codcli, nombre, codpostal, codpueblo)
As se mejora el funcionamiento frente a la necesidad de hacer el JOIN de las dos
tablas. Se notar ms la mejora cuanto ms frecuentes sean los accesos. Pero
mucho OJO: se han introducido redundancias que ahora ser necesario controlar
alguna idea sobre cmo hacerlo?
33
Particin de tablas
Por ejemplo, se puede descomponer la siguiente relacin:
EMPLEADO(codemp, nombre, telfono, fecha_eval, aspecto1, aspecto2)
en las relaciones:
EMPLEADO(codemp, nombre, telfono)
EVALUACION(codemp, fecha_eval, aspecto1, aspecto2)
porque no se accede con frecuencia a los datos de la evaluacin de los empleados, o
bien porque se quiere preservar la seguridad de los mismos. Y qu hacemos para el
usuario que necesita ver la tabla tal y como estaba?
34
Optimizacin
UNIVERSIDAD(universidad, director, vicedirector)
Cada universidad tiene un director y de uno a tres vicedirectores clave primaria?
Hay una dependencia funcional no deseada:
universidad
director
nulos?
nulos?
35