Professional Documents
Culture Documents
Fases
Diseo Lgico Estndar (DLS)
Se elige el modelo de datos de representacin, an no el SGBD
Transformacin independiente del SGBD especfico
Esquema Conceptual Esquema Lgico eStndar (ELS)
Fases (y 2)
Diseo Lgico Especfico (DLE)
Se elige el SGBD especfico
Adaptacin del esquema lgico a un SGBD comercial
concreto
Esquema Lgico Estndar Esquema Lgico Especfico
(ELE)
Uso del Modelo Lgico de datos particular del SGBD
elegido
Oracle, Informix, DB2, Interbase, Postgress, Sybase ...
Se describe el ELE mediante el LDD propio del SGBD
especfico
SQL de Oracle, ...
RESUMEN
MR (SQL-92)
Tabla (relacin)
Tabla
Propagacin de clave o tabla
Dominio
MERE
ESTADO_CIVIL: {S, C, V, D}
MR
CREATE DOMAIN Estado_civil AS CHAR(1)
CHECK VALUE IN (S, C, V, D) ;
Tipo de entidad
Se traduce a una tabla (relacin)
Se recomienda usar el mismo nombre o uno
MERE
PERSONA
similar
MR
CREATE TABLE Persona
(
...
);
MERE
MR
numSS
nombre
dni
direccion
telefono
PERSONA
nacionalidad
fechaNacim
altura
MERE
MR (DED)
Cundo ser ms
adecuado utilizar
una opcin u otra?
MERE
MR
dni
nombre
fechaNac
direccion (1,n)
PERSONA
MR (DED)
PERSONA
tiene
DIRECC_
PERSONA
MERE
dni
PERSONA
MR
nombre
fechaNac
edad
ACTOR
papel
Actua
(1,m) en (1,n)
cach
[MPM 1999]
paga
cdigo
PELICULA
ttulo
codAutor
AUTOR
nomAutor
isbn
derechosAutor
Escribe
(1,n)
LIBRO
(1,4)
numPaginas
titulo
FK
12
Especificacin 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)
autor
libro
derAutor
numPag
NULL
0-201-65370-2
...
...
A001
NULL
...
...
Especificacin de restricciones
b) Cardinalidad mnima 1: todo libro tiene al menos un autor
c) Cardinalidad mxima 4: evitar que un libro haya sido escrito por
ms 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
Especificacin de restricciones
d) Cardinalidad mnima 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
1) Caso general
Propagacin de clave
E1
R1
E2
R2
PROVINCIA
(1,1)
CIUDAD
(1,n)
...
nomProv
CIUDAD( nomCiudad, provincia, ... )
FK: NULOS NO PERMITIDOS
PROVINCIA( codProv, nomProv, ... )
16
PINACOTECA
(0,1)
ciudad
CUADRO
(1,n)
titulo
pintor
sala
NULOS PERMITIDOS
17
(0,1)
1:N
matricula
modelo
Propietario_de
(0,n)
COCHE
FK NN
18
PACIENTE
Tiene
(1,1)
nombre
HISTORIAL
MEDICO
(1,1)
...
...
numHistoria
fechaApertura
centroSalud
AK, NN
19
Propagacin de clave
E2
R2
numDep
(0,1)
(1,1)
EMPLEADO
DEPARTAMENTO
Dirige
Un empleado puede no
dirigir ningn departamento,
fechaInic
nomEmp
nomDep
o bien ser el gerente de uno
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
FK
DEPARTAMENTO(numDep, nomDep,...)
21
nif
dni
HOMBRE
Matrimonio
(0,1) a la antigua (0,1)
fecha
MUJER
HOMBRE(dni, ...)
FK
FK
AK, NN
NN
NN
E1
E2
R1
R2
o 1:N con propagacin de clave
y participacin total de E2
Si V es 1:1 caso 2.1 ; Si V es 1:N caso 1.1
La clave ajena FK en R2 hacia R1 no permite NULL
La clave primaria de R2 depende del tipo de dependencia:
en Existencia
clave primaria propia de R2 (identificador principal de E2)
en Identificacin
combinacin de atributos: FK y clave de R2
Las actualizaciones y borrados en la tabla R1 deben transmitirse en
cascada hacia R2 (CASCADE)
24
1:N
EMPLEADO
(0,n)
FAMILIAR
Tiene
(1,1)
NOT NULL
ON DELETE CASCADE
ON UPDATE CASCADE
fecha
historial
nombre
1:N
PACIENTE
(1,n)
Acude
nifFam
(1,1)
hora
VISITA
MEDICA
observ
NOT NULL
ON DELETE CASCADE
ON UPDATE CASCADE
25
nifEmp
nomEmp
Es jefe de
EMPLEADO
subordinado
Caso 1:N
solucin problemtica si
puede haber muchos
empleados sin jefe
( demasiados nulos )
FK
26
E1
E2
que incluye...
R1
R2
E3
claves ajenas hacia cada clave
R3
primaria de R1, R2, R3, etc.
columnas para los atributos de la relacin V
(simples o componentes simples de atributos
compuestos)
la clave primaria de R
En general, es la combinacin de todas las claves
externas hacia R1, R2, R3, etc.
Pero es posible que sea un subconjunto de dicha
clave
27
[EN 2002]
COCHE
fechaVenta
(0,1)
CLIENTE
Venta
(0,n)
VENDEDOR
nifVendedor
(0,m)
(0,p)
BANCO
cifBanco
PROFESOR
(0,n)
(0,n)
ALUMNO
(1,n)
(1,n)
CREATE TABLE Alumno_Estudia_Titulacion (
alu ... REFERENCES Alumno (numExp)
estudia
cursa
ON DELETE CASCADE ON UPDATE CASCADE ,
titu ... REFERENCES Titulacion (idTit)
(0,n)
(0,n)
ON DELETE NO ACTION ON UPDATE CASCADE ,
PRIMARY KEY (alu, titu),
TITULACIN
MASTER
CONSTRAINT titulacion_xor_master
CHECK ( alu NOT IN (SELECT alum FROM Alumno_Cursa_Master) ) );
[MPM 1999]
30
31
nombre
EMPLEADO
UNIVERSIDAD
d
PROFESOR
BECARIO
categora
tipoBeca
[MPM 1999]
tipo
nif
... PRIMARY KEY,
nombre ... ,
tipo
... NOT NULL CHECK tipo IN (pro, bec, pas),
categ ... NULL,
tipoBeca ... NULL,
activ
... NULL,
...
PAS
Alternativa 1:
Alternativa 2:
Un solo atributo discriminante, tratado como atributo multivalorado
CREATE TABLE Individuo (
nif
... PRIMARY KEY,
nombre
... ,
fechanac ... ,
titulacin ... NULL,
nss
... NULL UNIQUE,
salario
... NULL,
... );
UNIVERSITARIO
o
ESTUDIANTE
titulacion
tipo
CURRANTE
nss
titulacion
salario
salario
Otras opciones:
Una sola columna discriminante
Tratar discriminante como un
atributo multivalorado
36
P
d
B1
B2
38
idioma
DOCUMENTO
titulo
tipo
d
ARTICULO
revista
fecha
LIBRO
edicion
editorial
El atributo discriminante
no aparece en ninguna de
las tablas resultado de la
traduccin
39
40
41
idioma
DOCUMENTO
titulo
tipo
d
ARTICULO
revista
fecha
LIBRO
edicion
editorial
El atributo discriminante
no aparece en ninguna de
las tablas resultado de la
traduccin
42
La mayor parte del ELS sirve como ELE, as que slo algunos
aspectos que necesitan transformaciones adicionales
44