Académique Documents
Professionnel Documents
Culture Documents
Modelo Entidad-Relacin
Objetivos:
Conocer los conceptos y notacin del modelo
conceptual de datos entidad-relacin extendido.
Comprender los significados del concepto de
nulo en el modelo entidad-relacin extendido.
Contenidos:
1. Introduccin e historia del modelo
2. Conceptos bsicos del modelo
3. Extensiones del modelo
1
Esquema conceptual
Entidad ( entity )
Atributo ( attribute )
Dominio ( values set )
Relacin ( relationship )
ENTIDAD
Cosa u objeto del mundo real con existencia
propia y distinguible del resto
Objeto con existencia...
fsica o real (una persona, un libro, un empleado)
abstracta o conceptual (una asignatura, un viaje)
ATRIBUTO
Propiedad o caracterstica de una entidad
Una entidad particular es descrita por los
valores de sus atributos:
p1
e1
Notacin
EMPLEADO
PELICULA
CLIENTE
LOCAL
VIDEOCLUB
DIRECTOR
ACTOR
7
Ocurrencia
Realizacin
Ejemplar
Entidad concreta o
individual
p3
PELICULA
p2
p4
titulo = Amelie
genero = Comedia
nacionalidad = Francia
aoestreno = 2001
...
8
Intensin y Extensin
Un tipo de entidad describe el esquema o
intensin para un conjunto de entidades que
poseen la misma estructura
EMPLEADO: dni, nss, nombre, direccin, telefono, altura,
fechanacim, nacionalidad, edad
Tipos de atributos
Simples o Compuestos
Almacenados o Derivados
Monovalorados o Multivalorados
Opcionales
10
dia mes
ao
Atributos simples
No divisibles. Atmicos
genero
11
Atributos almacenados
fechanacim [de cada EMPLEADO]
nacionalidad [de una PELICULA]
12
provincia
calle
codpostal
direccin
fechanacim
EMPLEADO
nombre
telefono
(0,3)
(0,1)
altura
(1,2)
nss
dni
edad
nacionalidad
15
Atributos Clave
Atributo con valor distinto para cada instancia
de un tipo de entidad
dni en EMPLEADO
[EN2002]
16
EMPLEADO:
dni
nss
(nombre, fechanacim)
17
codpostal
direccin
fechanacim
n-f
nombre
provincia
ciudad
(0,3)
(0,1)
EMPLEADO
nss
(1,2)
IP
dni
telefono
altura
nacionalidad
edad
19
Dominio
nombre NOMBRES
Descripcin Dominio
cadenas de hasta 30 caracteres alfabticos
altura
MEDIDAS
...
...
...
No suele representarse,
aunque una forma de
EMPLEADO
hacerlo sera:
[MPM1999]
nombre
telefono
altura
NOMBRES
TELEFONOS
MEDIDAS
20
RELACIN (relationship)
Tambin interrelacin
Asociacin, vnculo o correspondencia
entre instancias de entidades relacionadas
de alguna manera en el mundo real
el director Alejandro Amenbar ha rodado la pelcula
Mar adentro
el empleado 87654321 trabaja en el local de
videoclub principal
la pelcula El imperio contraataca es una continuacin
de la pelcula La guerra de las galaxias
21
DIRECTOR
HA_RODADO
Instancia
del tipo de
relacin
J. Mdem
C. Saura
F. Trueba
S. Segura
A. Amenbar
PELICULA
Vacas
Tesis
Belle Epoque
Torrente
Tierra
Abre los ojos
Los otros
Tipo de Entidad:
conjunto de instancias
Tipo de Relacin:
conjunto de instancias
22
TIPO DE RELACIN
(relationship set)
Estructura genrica o abstraccin del conjunto
de relaciones existentes entre dos o ms
tipos de entidad
un DIRECTOR ha rodado PELICULAs
Notacin
DIRECTOR
HA_RODADO
PELICULA
23
ACTUA_EN
CLIENTE
CONTINUACION
DE
PELICULA
PELICULA
ALQUILA
PELICULA
LOCAL_VIDEOCLUB
24
realizador
HA_RODADO
film
PELICULA
versin
PELICULA
25
Razn de Cardinalidad
Notacin [EN2002]
Nmero mximo de instancias de tipo de
relacin en las que puede participar una
misma instancia de tipo de entidad
la cardinalidad de HA_RODADO es 1 a N
HA_RODADO es de tipo 1 a N
DIRECTOR
Notacin
etiqueta en la lnea que
une entidad y relacin
Ojo: da la sensacin de
que se representa al revs
1
HA_RODADO
N
PELICULA
27
EMPLEADO
encargado 1
SUPERVISA
sucursal N
LOCAL_VIDEOCLUB
ACTOR
personaje M
ACTUA_EN
N
film
PELICULA
28
Razn de Participacin
Notacin [EN2002]
Especifica si toda la extensin de un tipo de
entidad participa en un tipo de relacin, o
slo parte de la extensin
Indica si hay dependencia en existencia de
un tipo de entidad respecto de un tipo de
relacin
Clases de participacin:
Participacin total (dependencia en existencia)
Participacin parcial
29
DIRECTOR
1
Lneas dobles
o simples
HA_ RODADO
N
PELICULA
ACTOR
personaje M
ACTUA_EN
N
film
PELICULA
trabajador
1
TRABAJA_EN
1
lugar trabajo
EMPLEADO
encargado 1
SUPERVISA
sucursal N
LOCAL_VIDEOCLUB
30
EDIFICIO
USA
POSEE
PERSONA
EDIFICIO
PERSONA
USA
p1
POSEE
e1
p1
p2
e1
e2
e2
p2
e3
p3
EDIFICIO
e4
e3
p3
e4
31
USA
POSEE
(0,m)
EDIFICIO
(1,1)
32
1
TRABAJA_EN
1
SUPERVISA
N
LOCAL_VIDEOCLUB
(1,1)
TRABAJA_EN
(1,1)
M
ACTUA_EN
N
PELICULA
EMPLEADO
(0,n)
ACTOR
SUPERVISA
ACTUA_EN
(1,1)
LOCAL_VIDEOCLUB
(1,n)
(0,m)
PELICULA
33
[EN2002]
superior (0,n)
subalterno
EMPLEADO (0,1)
N
1
JEFE DE
34
1
TRABAJA_EN
1
EMPLEADO
1
SUPERVISA
fechainicio
N
LOCAL_VIDEOCLUB
35
1
horas
TRABAJA_EN
EMPLEADO
1
SUPERVISA
fechainicio
[EN2002]
horas
LOCAL_VIDEOCLUB
horas
fechainicio
36
37
PACIENTE
1
ACUDE
Entidad
Regular
PELICULA
Tipo de
Relacin
Identificador
TIENE
N
diahora
VISITA_MEDICA
titulo
COPIA
numcopia
N
Clave parcial o
Discriminante
ASISTIDA
POR
1
MEDICO
especialidad
ncolegiado
nombre
Dependencia
en existencia
38
dni
1
POSEE
N
PERMISO
CONDUCCION
numlicencia
tipo
39
(0,n)
ALQUILA
fecha (0,m)
(0,1)
CINTA
VIDEO
LOCAL
VIDEOCLUB
fecha
(0,n)
CLIENTE
(0,n)
ALQUILA
fecha
(0,m)
LOCAL
VIDEOCLUB
CLIENTE
(0,1)
(0,1)
(1,m)
CINTA
VIDEO
CINTA
VIDEO
ALQUILA_EN
(1,n)
LOCAL
VIDEOCLUB
ALQUILA
(1,1)
(1,n)
CONTIENE
41
(1,n)
SUMINISTRA
fecha
idprov
(1,n)
codpr
(0,m)
PRODUCTO
(1,p)
TIENDA
PROVEEDOR
PUEDE
SUMINISTRAR
(1,m)
(1,m)
PROVEE
PRODUCTO
(1,n)
(0,n)
TIENDA
VENDE
(1,m)
nombre
Prdida de semntica...
42
43
CONSUME
GASTA
GASOIL
GASOLINA
CAMIN
TURISMO
AUTOBS
CICLOMOTOR
46
SECRETARIO
GERENTE
[EN2002]
COMERCIAL
47
CAMIN
TURISMO
CICLOMOTOR
48
VEHCULO
precio
tonelaje
numEjes
FABRICA
(1,1)
N:1
FABRICANTE
(1,n)
(1,1)
(0,1)
CAMIN
TURISMO
numPuer
MOTOCICLETA
numPlazas
LLEVA
cilindrada
1:1
SIDECAR
49
actividad
SECRETARIO
GERENTE
COMERCIAL
50
gnero
DRAMA TERROR
PELCULA
COMEDIA
color
BLANCO_Y_NEGRO
[EN2002]
COLOR
51
(1,1)
SUPERVISA
(1,1)
SECCIN_HOSPITAL
52
CAMIN
numEjes
numBastidor
precio
numBastidor
fechaFab
VEHCULO
precio
tonelaje
CAMIN
fechaFab
TURISMO
fechaFab
numEjes
TURISMO
numPuer
tonelaje
numPuer
[EN2002]
53
Generalizacin
Especializacin
nfasis en las diferencias
Alguna instancia del supertipo puede no ser
instancia de ningn subtipo
54
Disyuncin/Solapamiento
A cuntos subtipos puede pertenecer (a la vez) una instancia del supertipo?
Completitud/Parcialidad
Debe toda instancia del supertipo pertenecer a algn subtipo?
55
estadoLaboral=en_activo
EMPLEADO
[EN2002]
matriculado=true
ESTUDIANTE
56
PERSONA
estadoLaboral
en_activo
EMPLEADO
en_paro
claseTrabajo
mdico
PARADO
MDICO
celador
enfermero
CELADOR
limpiador
ENFERMERO
LIMPIADOR
[EN2002]
57
TITULAR
AYUDANTE
ASOCIADO
58
Disyuncin/Solapamiento
Subtipos disjuntos si una
instancia del supertipo
puede ser miembro de,
como mximo, uno de los
subtipos
VEHCULO
PERSONA
d
TURISMO
o
CAMIN
[EN2002]
EMPLEADO
ESTUDIANTE
59
MACHO
ANIMAL
ALIMENTO
HEMBRA
HERMAFRODITA
LACTEO
FRUTA
VERDURA
60
61
d
DOCENTE
ESTUDIANTE
claseTrabajo
ADMON_Y_SERV BECARIO
d
BECARIO
tipo
NO_BECARIO
d
AYUDANTE
TITULAR
cuerpoDocente
CATEDRTICO
62
O
EMPLEADO
ocupacin
ESTUDIANTE
O
INVESTIGADOR
63
65
66
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)
67
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, ...
68
RESUMEN
MER
MR (SQL-92)
Tipo de Entidad
Tabla (relacin)
Tabla
69
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
(
...
);
70
Atributo identificador
Id. principal
Id. alternativo
Clave alternativa (UNIQUE)
Podr contener NULL si no se indica lo contrario
MERE
MR
numSS
nombre
direccion
telefono
fechaNacim
dni
PERSONA
nacionalidad
altura
71
MERE
MR (DED)
Cundo ser ms
adecuado utilizar
una opcin u otra?
72
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 combinacin (F, A)
MERE
MR
dni
nombre
fechaNa
c
direccion (1,n)
PERSONA
MR (DED)
PERSONA
tiene
DIRECC_
PERSONA
73
MR
MERE
dni
PERSONA
nombre
fechaNa
c
edad
74
V
E1
E2
claves ajenas hacia las
claves primarias de R1 y de R2
R1
R2
R
Su combinacin (concatenacin) forma
la clave primaria de R
columnas correspondientes a los atributos de la relacin V (simples o
componentes simples de atributos compuestos)
nombre
ACTOR
papel
Actua
(1,m) en (1,n)
cach
[MPM 1999]
paga
cdigo
PELICULA
ttulo
75
codAutor
AUTOR
nomAutor
isbn
derechosAutor
(1,n)
Escribe
LIBRO
(1,4)
numPaginas
titulo
76
77
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
...
...
78
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))
);
79
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))
);
80
E1
R1
E2
R2
contiene
(1,1)
(1,n)
CIUDAD
...
nomProv
CIUDAD( nomCiudad, provincia, ... )
FK: NULOS NO PERMITIDOS
PROVINCIA( codProv, nomProv, ... )
81
Expone
(0,1)
(1,n)
CUADRO
titulo
pintor
sala
NULOS PERMITIDOS
82
nif
ESTUDIANTE
nombre
(0,n)
1:N
Propietario_de
(0,1)
matricula
COCHE
FK NN
83
nss
nombre
PACIENTE
(1,1)
Tiene
HISTORIAL
MEDICO
(1,1)
...
...
numHistoria
fechaApertura
centroSalud
AK, NN
84
E2
R1
Propagacin de clave
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
85
FK
DEPARTAMENTO(numDep, nomDep,...)
86
87
nif
HOMBRE
Matrimonio
(0,1) a la antigua (0,1)
MUJER
HOMBRE(nif, ...)
FK
fecha
AK, NN
NN
NN
MUJER(nif, ...)
Y...
qu
acciones
de
mantenimiento de la integridad
referencial debemos imponer para
(todos los casos de) transformacin
de relaciones 1:1?
88
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)
89
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
90
nifEmp
nomEmp
Es jefe de
EMPLEADO
subordinado
Caso 1:N
EMPLEADO ( nifEmp, nomEmp, ..., jefe, ... )
FK
NULL
solucin problemtica
si puede haber muchos
empleados sin jefe
( demasiados nulos )
Caso M:N
EMPLEADO ( nifEmp, nomEmp, ... )
FK
FK
FK
91
V
Tabla R correspondiente a V,
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
92
[EN 2002]
COCHE
fechaVenta
(0,1)
(0,n)
Venta
(0,m)
VENDEDOR
nifVendedor
(0,p)
BANCO
cifBanco
93
PROFESOR
(0,n)
(0,n)
94
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)
ON DELETE NO ACTION ON UPDATE CASCADE , (0,n)
PRIMARY KEY (alu, titu),
TITULACIN
MASTER
CONSTRAINT titulacion_xor_master
CHECK ( alu NOT IN (SELECT alum FROM Alumno_Cursa_Master) ) );
[MPM 1999]
95
96
nombre
EMPLEADO
UNIVERSIDAD
d
PROFESOR
BECARIO
categora
tipoBeca
[MPM 1999]
tipo
PAS
97
disjunta PARCIAL: PERMITE NULL EN TIPO
Alternativa
1:nif
INDIVIDUO
nombre
fechanac
actividad
ESTUDIANTE
titulacion
CURRANTE
nss
salario
Otra posibilidad:
Slo una columna
discriminante y valor extra
para solapamiento:
actividad ... NULL CHECK (actividad
IN (estudia, trabaja, est_trab))
98
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,
... );
Alternativa
(cont.) Restricciones de Integridad necesarias
1.-2:Si es estudiante, titulacion no debe ser NULL
UNIVERSITARIO
o
ESTUDIANTE
titulacion
tipo
CURRANTE
nss
titulacion
salario
salario
Otras opciones:
Una sola columna
discriminante
Tratar discriminante como
un atributo multivalorado
101
102
P
d
B1
B2
103
codigo
DOCUMENTO
tipo
d
ARTICULO
revista
fecha
idioma
titulo
LIBRO
edicion
editorial
El atributo
discriminante no
aparece en ninguna de
las tablas resultado de
la traduccin
104
105
106
DOCUMENTO
tipo
d
ARTICULO
revista
fecha
idioma
titulo
LIBRO
edicion
editorial
El atributo
discriminante no
aparece en ninguna de
las tablas resultado de
la traduccin
107
108