Académique Documents
Professionnel Documents
Culture Documents
1
3.4.1 Objetivos y fases del diseño lógico
Fases
Diseño Lógico Estándar (DLS)
– Se elige el modelo de datos de representación, aún no el SGBD
– Transformación independiente del SGBD específico
Esquema Conceptual Esquema Lógico eStándar (ELS)
MER MR (SQL-92)
Tipo de Entidad Tabla (relación)
Tipo de Relación M:N Tabla
Tipo de Relación 1:1, 1:N, N:1 Propagación de clave o tabla
• Dominio
MR
CREATE DOMAIN Estado_civil AS CHAR(1)
MERE CHECK VALUE IN (‘S’, ‘C’, ‘V’, ‘D’) ;
ESTADO_CIVIL: {S, C, V, D}
• Tipo de entidad
– Se traduce a una tabla (relación)
– Se recomienda usar el mismo nombre o uno similar
MERE MR
CREATE TABLE Persona
PERSONA (
...
); 5
3.4.2 Diseño lógico estándar
Traducción de un atributo
• Atributo simple y monovaluado Columna
• Atributo identificador
– Id. principal Clave primaria (PRIMARY KEY)
– Id. alternativo Clave alternativa (UNIQUE)
Podrá contener NULL si no se indica lo contrario
MERE MR
numSS
dni nombre CREATE TABLE Persona
direccion ( dni PRIMARY KEY,
telefono numSS UNIQUE NULL,
PERSONA nombre ...,
fechaNacim
direccion ...,
nacionalidad altura telefono ...,
fechaNacim ...,
nacionalidad ...,
altura ... ) ; 6
3.4.2 Diseño lógico estándar
Traducción de un atributo (2)
• Atributo compuesto.- Dos alternativas:
a) «Eliminar» atributo compuesto y considerar todos sus
componentes como columnas simples de la tabla resultante
b) «Eliminar» los componentes y considerar el atributo compuesto
como una sola columna de la tabla
MERE
MR (DED)
7
3.4.2 Diseño lógico estándar
Traducción de un atributo (3)
• Atributo multivalorado
– Nueva tabla S, en la que el atributo multivalorado se representa
como una columna simple A
– S contendrá una nueva columna F, clave ajena a la clave primaria
de la tabla correspondiente a la entidad
– La clave primaria de S es la combinación (F, A)
MERE MR
dni nombre PERSONA (dni, nombre, fechaNac, edad)
fechaNac
PERSONA edad
9
3.4.2 Diseño lógico estándar
Traducción de una relación binaria M:N
[MPM 1999]
10
3.4.2 Diseño lógico estándar
Traducción de una relación binaria M:N (3)
Especificación de restricciones
a) Datos coherentes: evitar que ESCRIBE contenga un libro con autor
desconocido (fila con autor NULL) o un autor de un libro inexistente (fila
con libro NULL)
Especificación de restricciones
b) Cardinalidad mínima 1: todo libro tiene al menos un autor
c) Cardinalidad máxima 4: evitar que un libro haya sido escrito por
más de 4 autores
– CREATE ASSERTION autores_de_libro
CHECK (
(NOT EXISTS (SELECT * FROM LIBRO
WHERE isbn NOT IN (SELECT libro
FROM ESCRIBE)))
AND
(4 >= (SELECT MAX(COUNT(*))
FROM ESCRIBE
GROUP BY libro))
);
14
3.4.2 Diseño lógico estándar
Traducción de una relación binaria M:N (y 7)
Especificación de restricciones
d) Cardinalidad mínima 1: todo autor ha escrito al menos un
libro
– Evitar que en AUTOR exista una fila tal que NO haya ninguna
tupla en ESCRIBE que le haga referencia (autor sin libros).
– Es necesario crear una RI General o Aserto:
CREATE ASSERTION libros_de_autor
CHECK (
NOT EXISTS (SELECT * FROM AUTOR
WHERE codAutor NOT IN (SELECT autor
FROM ESCRIBE))
);
15
3.4.2 Diseño lógico estándar
Traducción de una relación binaria 1:N
1) Caso general E1
1
V
N
E2
Propagación de clave R1 R2
– En R2 se incluyen nuevas columnas...
clave externa hacia la clave primaria de R1
columnas para los atributos de la relación V (simples o
componentes simples de atributos compuestos)
nomMuseo
codCuadro
PINACOTECA Expone CUADRO
(1,n)
titulo
(0,1)
pintor
ciudad
sala
NULOS PERMITIDOS
R1 R2
Propagación de clave
– La clave de la entidad con participación parcial «se propaga»
hacia la entidad con participación total clave ajena
– Los atributos de la relación V «siguen» a la clave propagada
codEmp numDep
(0,1) (1,1)
Un empleado puede no EMPLEADO Dirige DEPARTAMENTO
dirigir ningún departamento,
o bien ser el gerente de uno nomEmp fechaInic nomDep
de ellos (desde cierta fecha, EMPLEADO(codEmp, nomEmp, ...)
en la que fue nombrado FK
como tal) DEPARTAMENTO(numDep,nomDep, codDir, fechInicDir...)
AK, NN NN
20
3.4.2 Diseño lógico estándar
Traducción de una relación binaria 1:1 (3)
DEPARTAMENTO(numDep, nomDep,...)
21
3.4.2 Diseño lógico estándar
Traducción de una relación binaria 1:1 (4)
lugar
nif HOMBRE(dni, ...)
dni
FK
Matrimonio
HOMBRE MUJER MATRIMONIO(esposa, esposo, fecha, lugar)
(0,1) a la antigua (0,1)
AK, NN NN NN
FK
fecha MUJER(nif, ...)
Y... ¿qué acciones de mantenimiento
de la integridad referencial debemos
imponer para (todos los casos de)
transformación de relaciones 1:1?
23
3.4.2 Diseño lógico estándar
Traducción de dependencia en existencia y
en identificación
1:N
nifEmp nifFam
EMPLEADO Tiene FAMILIAR
nomEmp (0,n) (1,1)
fecha hora
1:N observ
historial VISITA
nombre PACIENTE Acude
(1,n) (1,1) MEDICA
(0,p)
cifBanco
BANCO
31
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (2)
Alternativa 2:
– Un solo atributo discriminante, tratado como atributo multivalorado
Otras opciones:
– Una sola columna discriminante
– Tratar discriminante como un
atributo multivalorado 36
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (8)
Inconvenientes
– Aparición de nulos en columnas correspondientes a atributos que
proceden de subtipos, para aquellas instancias que no pertenecen
a tales subtipos
– Una operación aplicada sólo sobre subtipos debe «buscar» las
instancias de dichos subtipos en el conjunto completo de instancias
(supertipo): acceso a toda la tabla con base en el valor de la
columna correspondiente al discriminante
37
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (9)
2. Transformación total
• Los subtipos se diferencian en muchos P
atributos
d
• Se desea mantener los atributos comunes
en una tabla separada
B1 B2
Una tabla para cada entidad
– una tabla R para el supertipo P, que incluye...
columnas para los atributos de P
la clave primaria es el identificador principal del supertipo
– una tabla Ri para cada subtipo Bi, que incluye...
columnas para los atributos del subtipo Bi
columna clave ajena hacia la clave primaria de R
( propagación en cascada)
la clave primaria es dicha clave ajena
38
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (10)
Transformación total
Ventajas
– Es válida para E/G de todo tipo (parcial/total – disjunta/solapada)
– Quizá es «la mejor» desde el punto de vista semántico
– Conviene si las operaciones son estrictamente «locales» a los subtipos o
bien al supertipo, es decir, si casi nunca se accede a la vez a atributos de
subtipos y supertipo
Inconvenientes
– Menos eficiente en el acceso a todos los atributos (propios y heredados)
de las instancias de un subtipo (¿Por qué?)
40
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (12)
41
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (13)
43
3.4.3 Diseño lógico específico
• Conocer el SGBD elegido para la implementación
¿Soporta el Modelo de Datos de Representación? ¿Hasta qué
punto?
¿Cómo escribir el ELS con la sintaxis propia del modelo de datos
particular del SGBD comercial elegido?
• La mayor parte del ELS «sirve» como ELE, así que sólo algunos
aspectos que necesitan transformaciones adicionales 44