Sunteți pe pagina 1din 55

1

1
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
3. Modelo Entidad-Relacin
2
Modelo de datos conceptual de alto nivel
Propuesto por Peter P. Chen en 1976
Extensiones/aportaciones de muchos otros autores
No existe un nico MER, sino una FAMILIA DE MODELOS
Es un modelo semntico, surge por la necesidad de
tener un modelo ms cercano al usuario
Describe el mundo real como un conjunto de
ENTIDADES y de RELACIONES entre ellas
Gran difusin
Muy extendido en los mtodos de diseo de bases de datos
Soportado por herramientas software de diseo (CASE)
3.1. Introduccin e historia del modelo Entidad-
Relacin
2
3
Descripcin concisa de los requisitos de
informacin de los usuarios
Descripciones detalladas de
TIPOS DE DATOS
RELACIONES ENTRE DATOS
RESTRICCIONES que los DATOS deben cumplir
Sin detalles de implementacin
Ms fcil de entender
Comunicacin con el usuario no tcnico
Esquema conceptual
3.1. Introduccin e historia del modelo
Entidad-Relacin
4
3.2. Conceptos bsicos del modelo
Entidad ( entity )
Atributo ( attribute )
Dominio ( values set )
Relacin ( relationship )
3
5
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)
Persona, lugar, cosa, concepto o suceso, real o
abstracto, de inters para la empresa (ANSI, 1977)
3.2. Conceptos bsicos del modelo
6
ATRIBUTO
Propiedad o caracterstica de una entidad
Una entidad particular es descrita por los
valores de sus atributos:
titulo=El alquimista impaciente
genero=Thriller
nacionalidad=Espaa
aoestreno=2002
p1
...
nss=1122334455
dni =87654321
nombre=Cristina Aliaga Gil
nacionalidad=Espaa
e1
...
3.2. Conceptos bsicos del modelo
4
7
TIPO DE ENTIDAD (entity set)
Define un conjunto de entidades que poseen
los mismos atributos
PELICULA: titulo, genero, nacionalidad, aoestreno,numcopias
EMPLEADO: dni, nss, nombre, fechanacim, direccion, telefono,
altura, nacionalidad, edad
Notacin
EMPLEADO
LOCAL
VIDEOCLUB
PELICULA DIRECTOR
ACTOR
CLIENTE
3.2. Conceptos bsicos del modelo
8
Instancia de un tipo de entidad
Tambin...
Ocurrencia
Realizacin
Ejemplar
Entidad concreta o
individual
PELICULA
titulo =El seor de los anillos
genero =Fantasa
nacionalidad =EEUU
aoestreno =2001
p2
...
titulo =Amelie
genero =Comedia
nacionalidad =Francia
aoestreno =2001
p4
...
titulo =Amores perros
genero =Drama
nacionalidad =Mjico
aoestreno =1999
p3
...
3.2. Conceptos bsicos del modelo
5
9
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
Las instancias del tipo de entidad se agrupan
en un conjunto de entidades o extensin
e1 (87654321, 1122334455, Cristina Aliaga Gil, Libertad, 2. Yecla.
Murcia. 30510, 968100200, 160, 28/07/1979, Espaa, 23)
e2 (12345678, 6677889900, Antonio Gil Snchez, Paz, 5. Murcia.
Murcia.30012, 968111222, 176, 14/04/1944, Espaa, 58)
e3 (11223344, 1234567890, Julia Sauce, Justicia, 20. Yecla. Murcia.
30510, 968000222, 159, 23/05/1947, Espaa, 55)
...
3.2. Conceptos bsicos del modelo
10
Tipos de atributos
Simples o Compuestos
Almacenados o Derivados
Monovalorados o Multivalorados
Opcionales
3.2. Conceptos bsicos del modelo
6
11
Atributos Simples o Compuestos
Atributos compuestos
Pueden dividirse en otros con significado propio
Valor compuesto =concatenacin de valores de
componentes
Atributos simples
No divisibles. Atmicos
fechanacim
dia mes ao
direccion
calle ciudadprovinciacodpostal
genero
3.2. Conceptos bsicos del modelo
12
Atributos Almacenados o Derivados
Atributos derivados
Valor calculado a partir de otra informacin ya
existente (atributos, entidades relacionadas)
Son informacin redundante...
edad[de EMPLEADO], clculo a partir de fechanacim
atributo deri vado del valor de otro atributo
numcopias[de una PELICULA], cuenta del nmero de
entidades COPIA relacionadas con cada pelcula concreta
atributo deri vado de entidades relacionadas
Atributos almacenados
fechanacim[de cada EMPLEADO]
nacionalidad[de una PELICULA]
7
13
Atributos Monovalorados o Multivalorados
Atributos monovalorados (monovaluados)
slo un valor para cada entidad
fechanacim[de un EMPLEADO particular]
aoestreno[de cada PELICULA concreta]
Atributos multivalorados (multivaluados)
ms de un valor para la misma entidad
nacionalidad[ PELICULA coproducida por varios pases ]
telefono[ EMPLEADO con varios telfonos de contacto]
pueden tener lmites superior e inferior
del nmero de valores por entidad
nacionalidad (1-2)
telefono(0-3)
14
Atributos Opcionales (nulos)
El nulo (null value) es usado cuando...
Se desconoce el valor de un atributo para cierta
entidad
El valor existe pero falta
altura[de un EMPLEADO]
No se sabe si el valor existe o no
telefono[de un EMPLEADO]
La entidad no tiene ningn valor aplicable para
el atributo:
fechaalquiler[PELICULA slo en vdeo-venta (no alquiler)]
8
15
Notacin para atributos
[EN2002]
(0,3)
direccin
(1,2)
(0,1)
EMPLEADO
nombre
fechanacim
telefono
calle
provincia ciudad
codpostal
edad
nss
dni
altura
nacionalidad
16
Atributos Clave
Atributo con valor distinto para cada instancia
de un tipo de entidad
dni en EMPLEADO
Una clave identifica de forma nica cada entidad
concreta = atributo identificador
Notacin
EMPLEADO
[EN2002]
dni
9
17
Atributos Clave (ii)
Una clave puede estar formada por
varios atributos = clave compuesta
Combinacin de valores distinta para cada
instancia
(nombre, fechanacim)en el tipo de entidad EMPLEADO
Una clave compuesta debe ser mnima
Un tipo de entidad puede tener
ms de una clave = claves candidatas
Claves o Identificadores Candidatos de EMPLEADO:
dni
nss
(nombre, fechanacim)
18
Atributos Clave (iii)
Atributo identificador principal (IP)
Clave Principal
Elegido (por el diseador) de entre los
identificadores candidatos (IC), para ser
el medio principal de identificacin de
las instancias del tipo de entidad
dni en EMPLEADO
Atributos identificadores alternativos (IA)
Claves Alternativas
El resto de ICs
nssy (nombre, fechanacim)en EMPLEADO
10
19
Notacin para atributos clave
[EN2002]
En el MER es obligatorio que todo tipo de
entidad tenga un identificador
(0,3)
(1,2)
(0,1)
EMPLEADO
nombre
fechanacim
telefono
calle
provincia
ciudad
codpostal
edad
nss
dni
altura
nacionalidad
n-f
direccin
IP
20
No suele representarse,
aunque una forma de
hacerlo sera:
[MPM1999]
DOMINIO (values set)
Conjunto de valores
Cada atributo simple est asociado a un
dominio, que especifica sus valores vlidos
... ... ...
nmeros reales entre 0 y 25 (metros)
cadenas de hasta 9 caracteres numricos
cadenas de hasta 30 caracteres alfabticos
Descripcin Dominio
MEDIDAS altura
TELEFONOS
telefono
NOMBRES
nombre
Dominio Atributo
TELEFONOS
NOMBRES
telefono
nombre
MEDIDAS
altura
EMPLEADO
11
21
RELACIN (relationship)
Tambin interrelacin
Asociacin, vnculo o correspondencia
entre instancias de entidades relacionadas
de alguna manera en el mundo real
el director Alejandro Amenbarha rodadola pelcula
Mar adentro
el empleado 87654321 trabaja enel local de
videoclub principal
la pelcula El imperio contraatacaes una continuacin
dela pelcula La guerra de las galaxias
22
DIRECTOR HA_RODADO PELICULA
J. Mdem
C. Saura
F. Trueba
S. Segura
A. Amenbar

Vacas
Tesis
Belle Epoque
Torrente
Tierra
Abre los ojos
Los otros
Tipo de Relacin:
conjunto de instancias
Tipo de Entidad:
conjunto de instancias
Instancia
del tipo de
relacin
12
23
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 PELICULA HA_RODADO
24
ACTOR PELICULA
ACTUA_EN
CLIENTE PELICULA
LOCAL_VIDEOCLUB
ALQUILA
Grado de un tipo de relacin
Nmero de tipos de entidad que participan
en el tipo de relacin
Binaria: grado 2 (el ms frecuente)
Ternaria: grado 3
Reflexiva (o recursiva): grado 1
PELICULA CONTINUACION
DE
13
25
Nombres de Rol (papel)
Todo tipo de entidad que participa en un tipo de
relacin juega un papel especfico en la relacin
Los nombres de rol se deben usar, sobre todo,
en los tipos de relacin reflexivos, para evitar
ambigedad
original
versin
PELICULA VERSION_DE
DIRECTOR
PELICULA
HA_RODADO
realizador film
26
Restricciones estructurales sobre tipos de
relacin
Limitan las posibles combinaciones de
entidades que pueden participar en las
relaciones
Extradas de la situacin real que se modela
Una pelcula debe haber sido dirigida por uno y slo un
director
Un director ha dirigido al menos unapelcula y puede haber
dirigido muchas
Clases de restricciones estructurales:
Razn de cardinalidad (o tipo de correspondencia)
Razn de participacin
14
27
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
Notacin
etiqueta en la lnea que
une entidad y relacin
Ojo: da la sensacin de
que se representa al revs
1
N
DIRECTOR
PELICULA
HA_RODADO
28
Razones de cardinalidad ms comunes:
1:1 (uno a uno)
1:N (uno a muchos)
M:N (muchos a muchos)
Razn de Cardinalidad (ii)[EN2002]
ACTOR
PELICULA
personaje
film
M
ACTUA_EN
N
EMPLEADO
LOCAL_VIDEOCLUB
encargado
sucursal
1
trabajador
lugar trabajo
1
TRABAJA_EN SUPERVISA
N
1
15
29
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
30
Razn de Participacin (ii)[EN2002]
Notacin
Lneas
dobles o
simples
EMPLEADO
LOCAL_VIDEOCLUB
encargado
sucursal
1
trabajador
lugar trabajo
1
TRABAJA_EN SUPERVISA
N
1
DIRECTOR
PELICULA
HA_ RODADO
1
N
PELICULA
personaje
film
M
ACTUA_EN
N
ACTOR
16
31
Cardinalidad de tipo de entidad
Otra forma de expresar las razones de
cardinalidad y participacin
PERSONA EDIFICIO
p1
p2
p3
e1
e2
e3
e4
USA
p1
p2
p3
e1
e2
e3
e4
POSEE
PERSONA EDIFICIO
POSEE
PERSONA USA EDIFICIO
32
Cardinalidad de tipo de entidad (ii)
Notacin [EN2002]
Nmeros mnimo y mximo de instancias del
tipo de relacin en las que puede intervenir
una instancia del tipo de entidad
Notacin
(min, max)en la lnea que une entidad y relacin
POSEE
PERSONA
USA EDIFICIO
(1,n) (0,m)
(1,1) (0,n)
17
33
Cardinalidad de tipo de entidad
(iii) [EN2002]
EMPLEADO
LOCAL_VIDEOCLUB
1 1
TRABAJA_EN SUPERVISA
N
1
(0,n)
(1,1)
(1,1)
(1,1)
EMPLEADO
LOCAL_VIDEOCLUB
TRABAJA_EN SUPERVISA
PELICULA
M
ACTUA_EN
N
ACTOR
PELICULA
(1,n)
ACTUA_EN
(0,m)
ACTOR
34
Cardinalidad de tipo de entidad (vii)
[EN2002]
N
1
subalterno
superior
(0,1)
(0,n)
EMPLEADO
JEFE DE
Cardinalidad de tipos de entidad recursivos
18
35
Atributos de tipos de relacin
Similares a los atributos de tipos de entidad
[EN2002]
EMPLEADO
LOCAL_VIDEOCLUB
1 1
TRABAJA_EN SUPERVISA
N
1
horas fechainicio
36
Atributos de tipos de relacin (ii)
Conceptualmente pertenecen a la relacin
Un atributo de una M:Nes propio de la relacin
Un atributo de una 1:1o 1:Nse puede llevara
uno de los tipos de entidad participantes
horas fechainicio
[EN2002]
horas
horas
fechainicio
EMPLEADO
1 1
TRABAJA_EN SUPERVISA
N
1
LOCAL_VIDEOCLUB
19
37
Tipo de Entidad Dbil
Notacin [EN2002]
No tiene atributos clave propios
Una instancia se identifica por su relacin
con una instancia de otro tipo de entidad
Tipo de relacin identificador
Relaciona un tipo de entidad dbil y un tipo de entidad
regular (fuerte, dominante, padre, propietaria)
Clave parcial (o discriminante)
Atributos de la entidad dbil, que identifican de forma
nica cada instancia, siempre que est relacionada
con una instancia del tipo de entidad regular
Clave =(clave_entidad_regular, clave_parcial)
Notacin
COPIA
38
Tipo de entidad dbil (ii) [EN2002]
PELICULA
numcopia
titulo
1
N
COPIA
TIENE
PACIENTE
VISITA_MEDICA diahora
1
nss
N
MEDICO
ncolegiado
nombre
N
1
especialidad
ACUDE
ASISTIDA
POR
Tipo de
Relacin
Identificador
Clave parcial o
Discriminante
Tipo de
Entidad
Regular
Dependencia
en existencia
20
39
EMPLEADO
numlicencia
dni
1
N
PERMISO
CONDUCCION
POSEE
tipo
Tipo de entidad dbil (iii) [EN2002]
No toda participacin total (o dependencia en
existencia) implica un tipo de entidad dbil
PERMISO_CONDUCCIN no es dbil: depende en existencia de
EMPLEADO, pero tiene clave primaria propia
40
Tipos de relacin con grado superior a dos
Tipo de relacin ternaria
[EN2002]
CLIENTE
CINTA
VIDEO
LOCAL
VIDEOCLUB
ALQUILA
(0,1)
(0,n)
(0,m)
Cardinalidad de los tipos de entidad
fecha
21
41
Tipos de relacin con grado superior a dos (ii)
Equivalencia ternaria varias binarias
[EN2002]
CLIENTE
CINTA
VIDEO
LOCAL
VIDEOCLUB
ALQUILA
(0,1)
(0,n)
(0,m)
fecha
LOCAL
VIDEOCLUB
ALQUILA
(1,m)
(0,1)
(1,n)
(0,n)
(1,1)
(1,n)
CONTIENE
fecha
ALQUILA_EN
CINTA
VIDEO
CLIENTE
42
Tipos de relacin con grado superior a dos (iii)
Ternaria no equivalente a varias binarias
[EN2002]
TIENDA
(1,m)
(1,m)
(1,n)
(1,n)
(0,n)
(1,m)
VENDE
PROVEE
PUEDE
SUMINISTRAR
PRODUCTO
PROVEEDOR
PRODUCTO
TIENDA
(0,m)
(1,n)
(1,p)
SUMINISTRA
idprov
codpr
nombre
cantidad
fecha
PROVEEDOR
Prdida de semntica...
22
43
Aportaciones de diversos autores al modelo
Entidad-Relacin bsico.
Permiten representar...
Relaciones exclusivas entre s
J erarquas de Especializacin/Generalizacin
Modelo Entidad-Relacin Extendido, MERE
Enhanced Entity-Relationship model, EER
44
Dos (o ms) tipos de relacin son exclusivos,
respecto de un tipo de entidad que participa en
ambos, si cada instancia del tipo de entidad slo
puede participar en uno de los tipos de relacin
GASOLINA
GASTA CONSUME
GASOIL
Relaciones Exclusivas
3.3. Extensiones del modelo
CONSUME y GASTA son exclusivas respecto del tipo
de entidad VEHICULO
VEHCULO
23
45
Caso especial de relacin entre un tipo de entidad y
varios otros tipos de entidad
La jerarqua o relacin que se establece entre uno y
otros corresponde a la nocin de es_un o de
es_un_tipo_de
Estas jerarquas pueden formarse por
especializacin o bien por generalizacin
Especializacin/Generalizacin (E/G)
3.3. Extensiones del modelo
46
Agrupacin de instancias dentro de un tipo de
entidad, que debe representarse explcitamente
debido a su importancia para el diseo o aplicacin
Subtipos del tipo de entidad VEHCULO:
CAMIN
TURISMO
AUTOBS
CICLOMOTOR
Subtipos del tipo de entidad EMPLEADO:
SECRETARIO
GERENTE
COMERCIAL
El tipo de entidad que se especializa en otros se
llama supertipo ( VEHICULO, EMPLEADO )
E/G: Subtipo de un tipo de entidad
3.3. Extensiones del modelo
24
47
Es la relacin que se establece entre un supertipo y
cada uno de sus subtipos (nocin es_un o es_un_tipo_de)
Notacin:
EMPLEADO [EN2002]
E/G: Relacin Supertipo/Subtipo
3.3. Extensiones del modelo
SECRETARIO GERENTE COMERCIAL
48
La extensin de un subtipo es un subconjunto de la
extensin del supertipo
Una instancia de subtipo tambin es instancia del supertipo y es
la misma instancia, pero con un papel especfico distinto
Una instancia no puede existir slo por ser miembro de un
subtipo: tambin debe ser miembro del supertipo
Una instancia del supertipo puede no ser miembro de ningn
subtipo
E/G: Relacin Supertipo/Subtipo (ii)
3.3. Extensiones del modelo
VEHCULO
CICLOMOTOR CAMIN TURISMO
25
49
Un subtipo puede tener atributos propios (especficos)
yparticipar en relaciones por separado
Un subtipo hereda todos los atributos del supertipo,
y toda relacin en la que participa el supertipo
Un subtipo, con sus atributos y relaciones especficos, ms
los atributos y relaciones que hereda del supertipo, es un
tipo de entidad por derecho propio
VEHCULO
CAMIN
FABRICANTE
SIDECAR
FABRICA
LLEVA
numBastidor
precio
numEjes
tonelaje
numPuer
numPlazas cilindrada
(1,1) (1,n)
(1,1)
(0,1)
TURISMO
N:1
1:1
MOTOCICLETA
E/G: Herencia de tipo
3.3. Extensiones del modelo
50
Proceso de definicin de un conjunto de subtipos
de un tipo de entidad ( supertipo)
Subtipos suelen estar definidos segn caracterstica
distintiva de las entidades del supertipo
Discriminante de la especializacin
E/G: Especializacin
3.3. Extensiones del modelo
EMPLEADO
actividad
SECRETARIO GERENTE COMERCIAL
26
51
Varias especializaciones de un tipo de entidad,
con base en diferentes discriminantes
PELCULA
color
gnero
[EN2002]
E/G: Especializacin (ii)
3.3. Extensiones del modelo
COLOR BLANCO_Y_NEGRO COMEDIA DRAMA TERROR
52
Conviene incluir relaciones subtipo/supertipo si hay...
Atributos que slo tienen sentido para algunas instancias de
un tipo y no para todas (atributos especficos)
especialidadMdica no es aplicable aCELADOR
Tipos de relacin en los que slo participan algunas
entidades de un tipo y no todas (relaciones especficas)
Relacin SUPERVISA entre CELADOR y SECCIN_HOSPITAL
SUPERVISA
(1,1) (1,1)
E/G: Especializacin (iii)
3.3. Extensiones del modelo
CELADOR SECCIN_HOSPITAL
27
53
Proceso inverso de la especializacin
Suprimir diferencias entre varios tipos de entidad:
identificar atributos y relaciones comunes, y formar
un supertipo que los incluya
numBastidor
precio
numEjes
TURISMO
fechaFab
numBastidor
precio
numEjes tonelaje
numPuer
fechaFab
numBastidor
precio
fechaFab
CAMIN
TURISMO
CAMIN
numPuer tonelaje
VEHCULO
[EN2002]
G
E/G: Generalizacin
3.3. Extensiones del modelo
54
^ Generalizacin
nfasis en las similitudes
Cada instancia del supertipo es tambin una
instancia de alguno de los subtipos
-Especializacin
nfasis en las diferencias
Alguna instancia del supertipo puede no ser
instancia de ningn subtipo
E/G: Generalizacin vs. Especializacin
3.3. Extensiones del modelo
28
55
Definicin
Qu instancias del supertipo pertenecen a cada subtipo?
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?
Restricciones sobre la E/G
3.3. Extensiones del modelo
56
Subtipos definidos por predicado o condicin
Condicin de pertenencia a cada subtipo
con base en el valor de algn atributo del supertipo
Restriccin que especifica que...
Las instancias del subtipo deben satisfacer la condicin
Todas las instancias del supertipo que cumplen la
condicin, deben pertenecer al subtipo
PERSONA
EMPLEADO ESTUDIANTE
estadoLaboral=en_activo
matriculado=true
[EN2002]
Restricciones sobre la E/G: Definicin
3.3. Extensiones del modelo
29
57
Subtipos definidos por atributo
Todas las subclases definen la condicin de pertenencia en
trminos del mismo atributo
... es el discriminante de la especializacin
en_activo
en_paro
estadoLaboral
claseTrabajo
mdico
celador
limpiador enfermero
[EN2002]
Restricciones sobre la E/G: Definicin (ii)
3.3. Extensiones del modelo
PERSONA
EMPLEADO PARADO
EMPLEADO_HOSPITAL
ENFERMERO MDICO CELADOR LIMPIADOR
58
Subtipos definidos por el usuario
No existe (o no interesa definir) ninguna condicin de
pertenencia a los subtipos
El usuario, al insertar una instancia, elige a qu subtipo
pertenece
Restricciones sobre la E/G: Definicin (iii)
3.3. Extensiones del modelo
PROFESOR
TITULAR AYUDANTE ASOCIADO
30
59
Subtipos disjuntos si una
instancia del supertipo
puede ser miembro de,
como mximo, uno de los
subtipos
VEHCULO
TURISMO CAMIN
d
[EN2002]
Restricciones sobre la E/G:
Disyuncin/Solapamiento
3.3. Extensiones del modelo
Subtipos solapados si
una instancia del
supertipo puede ser, a
la vez, miembro de
ms de un subtipo
Es la opcin por
defecto
PERSONA
EMPLEADO ESTUDIANTE
o
60
Especializacin total
(completa) indica que
toda instancia del
supertipo tambin debe
ser instancia de algn
subtipo
ANIMAL
d
Restricciones sobre la E/G: Completitud/Parcialidad
3.3. Extensiones del modelo
MACHO HEMBRA HERMAFRODITA
Especializacin parcial indica que
es posible que alguna instancia del
supertipo no pertenezca a ninguno
de los subtipos
Es la opcin por defecto
La unin de las extensiones de los
subtipos noes la extensin del
supertipo en su totalidad
ALIMENTO
d
LACTEO FRUTA VERDURA
31
61
Las restricciones de disyuncin y completitud son
independientes entre s
Dan lugar a 4 tipos de especializacin:
Disjunta y Total
Disjunta y Parcial
Solapada y Total
Solapada y Parcial
Lo veremos con un ejemplo de una base de datos de
una Universidad
3.3. Extensiones del modelo
E/G: Tipos de Especializacin
62
EMPLEADO
claseTrabajo
ESTUDIANTE
tipo
3.3. Extensiones del modelo
E/G: Especializacin Disjunta y Total
DOCENTE BECARIO BECARIO NO_BECARIO ADMON_Y_SERV
Especializacin Disjunta y Parcial
DOCENTE
TITULAR AYUDANTE CATEDRTICO
cuerpoDocente
d
d
d
32
63
3.3. Extensiones del modelo
E/G: Especializacin Solapada y Total
Especializacin Solapada y Parcial
EMPLEADO
ocupacin
ESTUDIANTE
PERSONA
EMPLEADO
DOCENTE INVESTIGADOR
dedicacin
O
O
64
Deben aplicarse a la Especializacin y la
Generalizacin, debido a las restricciones definidas
OInsertar una instancia en un supertipo implica
insertarla en todos los subtipos definidos por predicado
o por atributo, para los cuales satisface el predicado de
definicin
OInsertar una instancia en un supertipo de una
especializacin total implica insertarla en, al menos,
un subtipo
Y si la especializacin es disjunta, entonces la
instancia se insertar en un nico subtipo
3.3. Extensiones del modelo
E/G: Reglas de insercin y eliminacin
33
65
O Eliminar una instancia de un supertipo implica
eliminarla de todos los subtipos a los que pertenece
OEliminar una instancia de un subtipo implica
eliminarla del supertipo si la especializacin es ...
disjunta y total, o bien
solapada y total, y la instancia ya slo pertenece
al subtipo (se elimin del resto)
En el resto de casos, la instancia slo se elimina del
subtipo
No del supertipo (Llo hara el usuario, si fuese necesario)
3.3. Extensiones del modelo
E/G: Reglas de insercin y eliminacin (ii)
66
El objetivo principal es transformar el esquema conceptual de datos
enel esquema lgico de datos
Otros objetivos del diseo lgico son ...
Eliminar redundancias
Conseguir mxima simplicidad
Evitar cargas suplementarias de programacin
para conseguir ...
una estructura lgica adecuada
un equilibrio entre los requisitos de usuario y la eficiencia
Diseo lgico con la mxima portabilidad
Introduccin tarda del SGBD especfico
Implementacin del esquema lgico en distintos SGBD comerciales
Migracin entre diferentes versiones de un mismo SGBD
3.4.1 Objetivos y fases del diseo lgico
34
67
C 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)
Uso de un Modelo Lgico de datos eStndar (MLS)
Relacional
Red
J errquico
Orientado a Objetos
Se describe el ELSmediante los elementos del modelo de datos
LDD de SQL-92 en el Modelo Relacional
Diagrama de Estructura de Datos
3.4.1 Objetivos y fases del diseo lgico
Fases
68
C 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 ELEmediante el LDD propio del SGBD
especfico
SQL de Oracle, ...
3.4.1 Objetivos y fases del diseo lgico
Fases (y 2)
35
69
Reglas de traduccin MERE = MR
O Reglas para el modelo bsico
Dominios
Atributos
Tipos de entidad
Tipos de relacin
O Reglas para las extensiones del modelo
Relaciones exclusivas
J erarquas de Especializacin/Generalizacin
3.4.2 Diseo lgico estndar
MR (SQL-92) MER
Propagacin de clave o tabla Tipo de Relacin 1:1, 1:N, N:1
Tabla Tipo de Relacin M:N
Tabla (relacin) Tipo de Entidad
RESUMEN
70
Dominio
Tipo de entidad
Se traduce a una tabla (relacin)
Se recomienda usar el mismo nombre o uno similar
PERSONA
CREATE TABLEPersona
(
...
) ;
MERE
MR
3.4.2 Diseo lgico estndar
Traduccin de un dominio y un tipo de entidad
MERE
ESTADO_CIVIL: {S, C, V, D}
MR
CREATE DOMAINEstado_civil AS CHAR(1)
CHECK VALUE IN (S, C, V, D) ;
36
71
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
3.4.2 Diseo lgico estndar
Traduccin de un atributo
PERSONA
direccion
telefono
dni
numSS
fechaNacim
nombre
nacionalidad
altura
CREATE TABLE Persona
( dni PRIMARY KEY,
numSS UNIQUENULL,
nombre ...,
direccion ...,
telefono ...,
fechaNacim ...,
nacionalidad ...,
altura ... ) ;
MERE
MR
72
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
Cundo ser ms
adecuado utilizar
una opcin u otra?
3.4.2 Diseo lgico estndar
Traduccin de un atributo (2)
MERE
MR (DED)
37
73
DIRECC_
PERSONA
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)
PERSONA (dni, nombre, fechaNac)
DIRECC_PERSONA(dni, direccion)
FK
3.4.2 Diseo lgico estndar
Traduccin de un atributo (3)
PERSONA
MR (DED)
tiene
PERSONA
fechaNac
dni
direccion(1,n)
nombre
MERE
MR
CREATE TABLE Direcc_Persona(
dni ...
direccion...
PRIMARY KEY (dni, direccion)
FOREIGNKEY (dni)REFERENCES Persona(dni)
ON DELETE CASCADE
ON UPDATE CASCADE );
74
Atributo derivado
Es necesario decidir si se almacena o no
1. Si se almacena, ser una columna de la tabla que corresponda y
deber crearse un disparador que calcule su valor y lo mantenga
actualizado
2. Si no se almacena, deber crearse un procedimiento que calcule su
valor cada vez que se solicita
PERSONA (dni, nombre, fechaNac, edad)
3.4.2 Diseo lgico estndar
Traduccin de un atributo (y 4)
MERE MR
PERSONA
fechaNac
dni
edad
nombre
38
75
= Nueva tabla R, que incluye...
claves ajenas hacia las
claves primarias de R1 y de R2
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)
ACTOR(nombre, ..., cach, ...)
ACTUA_EN(actor, pelicula, papel, paga)
PELICULA(cdigo, ttulo, ...)
FK
FK
E1 E2 V
R1 R2
R
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria M:N
ACTOR PELICULA
paga
(1,m) (1,n)
ttulo
cach
nombre
cdigo
papel
Actua
en
[MPM 1999]
76
AUTOR(codAutor, nomAutor, ...)
ESCRIBE(autor, libro, derAutor, numPag)
LIBRO(isbn, titulo, ...)
FK
FK
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria M:N (3)
AUTOR LIBRO
numPaginas
(1,4)
(1,n)
titulo
nomAutor
codAutor
isbn
derechosAutor
Escribe
Pero la traduccin, aunque lo parezca, no est
completa...
... pues falta especificar ciertos aspectos que tienen
que ver con las reglas de integridad
39
77
Especificacin de acciones de mantenimiento de la integridad
referencial (NO ACTION, CASCADE, SET NULL, SET DEFAULT)
CREATE TABLE Escribe
( autor Autores,
libro Codigos,
derAutor NUMERIC(2) DEFAULT 20 NOT NULL
CHECK (derAutor0 AND derAutor<100),
numPag NUMERIC(2) NOT NULL CHECK (numPag0),
PRIMARY KEY (autor, libro),
FOREIGN KEY (autor) REFERENCES AUTOR(codAutor)
ON DELETE NO ACTION
ON UPDATE CASCADE,
FOREIGN KEY (libro) REFERENCES LIBRO(isbn)
ON DELETE CASCADE
ON UPDATE CASCADE
);
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria M:N (4)
78
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)
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria M:N (5)
Especificacin de restricciones
...
...
numPag
...
...
derAutor
NULL A001
0-201-65370-2 NULL
libro autor
Ambas cosas ya quedan aseguradas por la propia definicin de la
clave primaria de ESCRIBE:
PRIMARY KEY(autor, libro)
40
79
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))
);
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria M:N (6)
Especificacin de restricciones
80
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))
);
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria M:N (y 7)
Especificacin de restricciones
41
81
1) Caso general
= Propagacin de clave
En R2 se incluyen nuevas columnas...
clave externa hacia la clave primaria de R1
columnas para los atributos de la relacin V(simples o
componentes simples de atributos compuestos)
1.1) Participacin total de E2en V
CIUDAD( nomCiudad, provincia, ... )
PROVINCIA( codProv, nomProv, ... )
FK: NULOS NO PERMITIDOS
E1 E2 V
R1 R2
1 N
PROVINCIA CIUDAD
(1,1)
(1,n)
nomProv
codProv
nombreCiudad
contiene
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:N
...
82
1.2) Participacin parcial de E2en V
CUADRO(codCuadro, titulo, pintor, museo, sala...)
PINACOTECA(nomMuseo, ciudad, ...)
FK
NULOS PERMITIDOS
PINACOTECA CUADRO
(0,1)
(1,n)
nomMuseo
codCuadro
Expone
titulo
pintor
ciudad
sala
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:N (2)
42
83
2) Se cumple uno o varios de estos supuestos:
O La relacin V tiene varios atributos propios
O Hay pocas ocurrencias de la relacin V
O Es probable que en el futuro V se transforme en una M:N
= Aadir una nueva tabla R, que incluye...
claves ajenas hacia las claves primarias de R1y de R2
una ser clave primaria de R: la propagada desde la entidad
cuyas instancias participan como mucho una vez en la relacin V
columnas para los atributos de V(simples o componentes
simples de atributos compuestos)
ESTUDIANTE
COCHE
(0,1)
(0,n)
nif
matricula
Propietario_de
modelo
nombre
1 : N
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:N (3)
ESTUDIANTE( nif, nombre, ... )
PROPIEDAD( coche, estudiante)
COCHE( matricula, modelo, ... )
FK
FK NN
84
1) Participacin total de ambas entidades
Si las entidades no participan en otras relaciones...
= una nica tabla R, que incluye...
columnas para todos los atributos de ambas entidades
claves de R:
Clave primaria =clave primaria de R1 o de R2 (es indiferente)
La otra (1si es distinta) ser alternativa (UNIQUE) y adems NOT
NULL
columnas para atributos de la relacin V(simples o componentes
simples de atributos compuestos)
PACIENTE( nss, nombre, numHisto, fechaApert, centroSalud,... )
AK, NN PK
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:1
nombre
centroSalud
(1,1) (1,1)
fechaApertura
nss
numHistoria
...
MEDICO
HISTORIAL
PACIENTE
...
Tiene
43
85
2) Participacin total de una entidad y parcial de la otra
2.1) Caso general
= Propagacin de clave
La clave de la entidad con participacin parcial se propaga
hacia la entidad con participacin total clave ajena
Los atributos de la relacin V siguen a la clave propagada
Un empleado puede no
dirigir ningn departamento,
o bien ser el gerente de uno
de ellos (desde cierta fecha,
en la que fue nombrado
como tal)
E1 E2 V
R1 R2
EMPLEADO(codEmp, nomEmp, ...)
DEPARTAMENTO(numDep,nomDep, codDir, fechInicDir...)
FK
AK, NN
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:1 (2)
(1,1) (0,1)
DEPARTAMENTO EMPLEADO
codEmp
nomEmp nomDep
numDep
Dirige
fechaInic
NN
86
2.2) Hay pocas instancias del tipo de relacin
= Aadir una nueva tabla Rque incluye...
claves ajenas hacia las claves primarias de R1y de R2
una ser clave primaria de R (la de participacin total, si existe)
la otra ser clave alternativa en R (UNIQUE) y adems NOT NULL
columnas para los atributos de V (simples o componentes simples
de atributos compuestos)
EMPLEADO(codEmp, nomEmp, ...)
DIRIGE (emp, dep, fechInic)
DEPARTAMENTO(numDep, nomDep,...)
FK
FK
AK,NN
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:1 (3)
44
87
2.3) Hay muchas instancias del tipo de relacin
= Una nica relacin Rque incluye...
todos los atributos de las entidades y de la relacin
la clave primaria es la de la entidad con participacin parcial
debe permitirse NULLen los atributos procedentes de la entidad con
participacin total y de la relacin
CREATE TABLE Empleado(
codEmp ... PRIMARY KEY,
nomEmp ... ,
...,
numDepDir ... NULLUNIQUE,
nomDepDir ... NULL,
...,
fechInicDir ... NULL,
... );
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:1 (4)
NULL permite representar empleados
que nodirigen ningn
departamento
UNIQUE asegura que un
departamento slo es dirigido por
unempleado
Los atributos monovalorados
aseguran que un empleado pueda
dirigir como mucho un
departamento
Atributos de
EMPLEADO
Atributos de
DEPARTAMENTO
Atributos de
DIRIGE
88
3) Participacin parcial de ambas entidades
= Aadir una nueva tabla R
La tabla R se construye exactamente igual que en el caso (2.2)
Evita los NULL que apareceran si se propagara la clave de R1 a R2
o viceversa (caso general (2.1))
(0,1) (0,1)
MUJER HOMBRE
nif
nif
Matrimonio
a la antigua
fecha
lugar
HOMBRE(nif, ...)
MATRIMONIO(esposa, esposo, fecha, lugar)
MUJER(nif, ...)
FK
FK
AK, NN
Y... qu acciones de mantenimiento
de la integridad referencial debemos
imponer para (todos los casos de)
transformacin de relaciones 1:1?
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:1 (y 5)
NN NN
45
89
=Caso particular de relacin 1:1
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: FKy clave de R2
Las actualizaciones y borrados en la tabla R1deben transmitirse en
cascada hacia R2(CASCADE)
E1 E2 V
R1 R2
3.4.2 Diseo lgico estndar
Traduccin de dependencia en existencia y
en identificacin
90
EMPLEADO ( nifEmp, nomEmp, ...)
FAMILIAR ( nifFam, emp, ... )
FK
NOTNULL
ONDELETE CASCADE
ONUPDATE CASCADE
1:N
FAMILIAR EMPLEADO
(1,1)
(0,n)
nifFam nifEmp
nomEmp
Tiene
3.4.2 Diseo lgico estndar
Traduccin de dependencia en existencia y
en identificacin (y 2)
PACIENTE ( historial, nombre, ... )
VISITA_MEDICA ( historial, fecha, hora, ... )
FK
NOTNULL
ONDELETE CASCADE
ONUPDATE CASCADE
VISITA
MEDICA
PACIENTE
1:N
(1,1) (1,n)
fecha
historial
nombre
observ
Acude
hora
46
91
EMPLEADO
Es jefe de
subordinado
jefe
nifEmp
nomEmp
= tablaque contiene dos claves externas hacia la clave primaria de la
tabla correspondiente a la entidad
Nombradas segn los roles de la entidad en la relacin
EMPLEADO ( nifEmp, nomEmp, ...)
JEFE_EMP( jefe, subordinado, ... )
Otra posibilidad en el Caso 1:N
NN
FK
FK
EMPLEADO ( nifEmp, nomEmp, ... )
JEFE_EMP( jefe, subordinado, ... )
Caso M:N
FK
FK
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria reflexiva
EMPLEADO( nifEmp, nomEmp, ..., jefe, ... )
NULL
FK
Caso 1:N solucin problemtica si
puede haber muchos
empleados sin jefe
( demasiados nulos)
92
= Tabla Rcorrespondiente a V,
que incluye...
claves ajenas hacia cada clave
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
E1 E2
V
R1 R2 E3
R3
3.4.2 Diseo lgico estndar
Traduccin de una relacin n-aria
47
93
VENTA( matricula, vendedor, cliente, banco, fechaVenta )
1. Cul es la superclave de esta relacin?
2. y cul es su clave primaria?
3. Cmo asegurar que no haya ventassin cliente, sin coche, sin vendedor?
4. Puede reflejarse la existencia de ventas directas(sin banco)?
3.4.2 Diseo lgico estndar
Traduccin de una relacin n-aria (y 2)
CLIENTE VENDEDOR
(0,n) (0,m)
nifCliente
nifVendedor
Venta
BANCO
cifBanco
COCHE
matricula
(0,1)
(0,p)
fechaVenta
[EN 2002]
94
= Aadir restricciones de tipo CHECK
Ejemplo para relaciones de tipo 1:N
CREATE TABLE Curso (
codcurso... PRIMARY KEY,
nomcurso ...,
...
director ... REFERENCES Profesor (idProf)
ON UPDATE CASCADE ,
profesor ... REFERENCES Profesor (idProf)
ON UPDATE CASCADE ,
CONSTRAINT organiza_xor_imparte
CHECK ( ( director NOT IN (SELECT profesor FROMCurso) )
AND ( profesor NOT IN (SELECT director FROMCurso) ) )
3.4.2 Diseo lgico estndar
Traduccin de exclusividad de relaciones
CURSO
IMPARTE ORGANIZA
PROFESOR
(0,n)
(0,n)
(1,1)
(1,1)
48
95
Ejemplo para relaciones de tipo M:N
CREATE TABLE Alumno_Estudia_Titulacion (
alu ... REFERENCES Alumno (numExp)
ON DELETE CASCADE ON UPDATE CASCADE ,
titu ... REFERENCES Titulacion (idTit)
ON DELETE NO ACTION ON UPDATE CASCADE ,
PRIMARY KEY (alu, titu),
CONSTRAINT titulacion_xor_master
CHECK ( aluNOT IN(SELECT alumFROMAlumno_Cursa_Master) ) );
CREATE TABLE Alumno_Cursa_Master (
alum ... REFERENCES Alumno (numExp)
ON DELETE CASCADE ON UPDATE CASCADE ,
mast ... REFERENCES Master (codMast)
ON DELETE NO ACTION ON UPDATE CASCADE ,
PRIMARY KEY (alum, mast),
CONSTRAINT master_xor_titulacion
CHECK ( alumNOT IN(SELECT aluFROMAlumno_Estudia_Titulacion) ));
3.4.2 Diseo lgico estndar
Traduccin de exclusividad de relaciones (2)
[MPM 1999]
cursa estudia
ALUMNO
(0,n) (0,n)
(1,n)
(1,n)
TITULACIN MASTER
96
1. Transformacin guiada por el supertipo
Los subtipos se diferencian en pocos atributos,
Las relaciones con otras entidades estn
establecidas con el supertipo, o
Las relaciones con otras entidades son
las mismas para todos (o casi) los subtipos
= Una nica tabla Rque contiene...
columnas para los atributos del supertipo Py los subtipos B1y B2
columna para el atributo discriminante dde la jerarqua E/G
(posibles) nuevas restricciones semnticas
la clave primaria deR es el identificador principal del supertipo
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin
49
97
CREATE TABLE Empleado_Universidad(
nif ... PRIMARY KEY,
nombre ... ,
tipo ... NOT NULLCHECK tipo IN (pro, bec, pas),
categ ... NULL,
tipoBeca ... NULL,
activ ... NULL,
...
);
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (2)
[MPM 1999]
Transformacin guiada por el supertipo: Jerarqua
disjunta total
EMPLEADO
UNIVERSIDAD
nif
PAS PROFESOR
nombre
tipoBeca actividad
tipo
categora
BECARIO
CHECK ( ( tipo = pro AND categ IS NOT NULL
AND tipoBeca IS NULL AND activ IS NULL )
OR ( tipo = bec AND tipoBeca IS NOT NULL
AND categ IS NULL AND activ IS NULL )
OR ( tipo = pas AND activ IS NOT NULL
AND categ IS NULL AND tipoBeca IS NULL ) )
restricciones
semnticas
disjunta PARCIAL: PERMITE NULL EN TIPO
d
98
CREATE TABLE Individuo(
nif ... PRIMARY KEY,
nombre ... ,
fechanac ... ,
estudia ... NOT NULL CHECK (estudia IN (T, F)),
curra ... NOT NULL CHECK (curra IN (T, F)),
titulacion ... NULL,
nss ... NULLUNIQUE,
salario ... NULL,
...
CHECK ( (estudia = T AND titulacion IS NOT NULL)
OR (estudia = F AND titulacion IS NULL) ) ,
CHECK ( (curra = T AND nss IS NOT NULL
AND salario IS NOT NULL)
OR (curra = F AND nss IS NULL
AND salario IS NULL) )
);
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (3)
Transformacin guiada por el supertipo: Jerarqua solapada parcial
Otra posibilidad:
Slo una columna discriminante y
valor extra para solapamiento:
actividad ... NULL CHECK (actividad
IN (estudia, trabaja, est_trab))
Alternativa 1:
INDIVIDUO
nif
CURRANTE ESTUDIANTE
fechanac
nombre
nss salario
actividad
titulacion
50
99
CREATE TABLE Actividad_Individuo(
nifIndiv ... REFERENCES Individuo( nif)
ON DELETE CASCADE
ON UPDATE CASCADE,
nomActiv ... ,
CHECK (nomActiv IN (estudiar, trabajar)),
PRIMARY KEY ( nifIndiv, nomActiv)
);
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (4)
Transformacin guiada por el supertipo: Jerarqua solapada parcial
Un solo atributo discriminante, tratado como atributo multivalorado
CREATE TABLE Individuo(
nif ... PRIMARY KEY,
nombre ... ,
fechanac ... ,
titulacin ... NULL,
nss ... NULLUNIQUE,
salario ... NULL,
... );
Las restricciones semnticas son algo ms complejas (asertos), como
veremos a continuacin
Es ms extensible que la Alternativa 1: introducir un nuevo subtipo no
requiere alterar la tabla INDIVIDUO para aadir una columna, sino ajustar
el CHECK de ACTIVIDAD_INDIVIDUO y aadir los asertos correspondientes
Alternativa 2:
100
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (6)
Transformacin guiada por el supertipo: Jerarqua solapada parcial
1.- Si es estudiante, titulacionno debe ser NULL
CREATE ASSERTION Individuo_Estudiante_Ok CHECK
(NOT EXISTS (SELECT * FROM Individuo
WHERE titulacion IS NULL
AND nif IN (SELECT nifIndiv FROM Actividad_Individuo WHERE nomActiv=estudiar)));
(cont.) Restricciones de Integridad necesarias
2.- Si es trabajador, nssy salariono deben ser NULL
CREATE ASSERTION Individuo_Trabajador_Ok CHECK
(NOT EXISTS (SELECT * FROM Individuo
WHERE nss IS NULL OR salario IS NULL
AND nif IN (SELECT nifIndiv FROM Actividad_Individuo WHERE nomActiv=trabajar)));
3.- Puesto que la jerarqua es solapada, no hacen falta asertos que
aseguren que si es trabajador, titulaciondebe ser NULL; ni que si es
estudiante, nssy salariodeben ser NULL
3.4.- Puesto que la jerarqua es parcial, no hace falta un aserto que
asegure que todo individuo tiene actividad, es decir, que todo nif
de INDIVIDUO aparece en la tabla ACTIVIDAD_INDIVIDUO
Alternativa 2:
51
101
CREATE TABLE Universitario (
nif ... PRIMARY KEY,
nombre ... ,
estudia ... NOT NULL CHECK estudia IN (T, F),
trabaja ... NOT NULL CHECK trabaja IN (T, F),
titulacin ... NULL,
salario ... NULL,
...
CHECK ( ( estudia = T AND titulacion IS NOT NULL )
OR ( trabaja = T AND salario IS NOT NULL ) )
);
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (7)
Transformacin guiada por el supertipo: Jerarqua solapada total
salario titulacion
Otras opciones:
Una sola columna discriminante
Tratar discriminante como un
atributo multivalorado
UNIVERSITARIO
nombre
CURRANTE ESTUDIANTE
nss salario
tipo
titulacion
o
102
Transformacin guiada por el supertipo
Ventajas
Acceso eficiente a toda la informacin sobre instancias de una
entidad concreta: acceso a una sola tabla
Inconvenientes
Aparicin de nulos en columnas correspondientes a atributos que
proceden de subtipos, para aquellas instancias que no pertenecen
a tales subtipos
Una operacin aplicada slo 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
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (8)
52
103
2. Transformacin total
Los subtipos se diferencian en muchos
atributos
Se desea mantener los atributos comunes
en una tabla separada
= 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 R
i
para cada subtipo B
i
, que incluye...
columnas para los atributos del subtipo B
i
columna clave ajena hacia la clave primaria de R
(1propagacin en cascada)
la clave primaria es dicha clave ajena
P
B2 B1
d
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (9)
104
CREATE TABLE Documento(
codigo... PRIMARY KEY,
idioma ... ,
titulo ... ) ;
CREATE TABLE Articulo(
codigo... PRIMARY KEY
REFERENCESDocumento (codigo)
ON DELETE CASCADE
ON UPDATE CASCADE
revista ... ,
fecha ... ) ;
CREATE TABLE Libro(
codigo... PRIMARY KEY
REFERENCESDocumento (codigo)
ON DELETE CASCADE
ON UPDATE CASCADE,
edicion ... ,
editorial ... );
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (10)
Ejemplo de transformacin total con jerarqua
disjunta y parcial
LEl atributo discriminante
no aparece en ninguna de
las tablas resultado de la
traduccin
codigo
LIBRO ARTICULO
titulo
idioma
editorial
tipo
DOCUMENTO
d
fecha
revista
edicion
53
105
Transformacin total
Ventajas
Es vlida para E/G de todo tipo (parcial/total disjunta/solapada)
Quiz es la mejor desde el punto de vista semntico
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?)
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (11)
106
3. Transformacin guiada por los subtipos
Hay muchos atributos no comunes (en subtipos)
Existen pocos atributos comunes (en supertipo)
Las operaciones que acceden a atributos de
subtipos siempre afectan tambin a datos
comunes
= Una tabla R
i
para cada subtipo que contiene...
columnas para los atributos del subtipo B
i
y
columnas para los atributos comunes (del supertipo)
la clave primaria de R
i
es el identificador principal del supertipo
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (12)
54
107
CREATE TABLE Articulo(
codigo... PRIMARY KEY
titulo...,
idioma...,
revista... ,
fecha...
) ;
CREATE TABLE Libro(
codigo... PRIMARY KEY
titulo...,
idioma...,
edicion...
editorial ...
);
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (13)
Ejemplo de transformacin guiada por los
subtipos
LEl atributo discriminante
no aparece en ninguna de
las tablas resultado de la
traduccin
codigo
LIBRO ARTICULO
titulo
idioma
editorial
tipo
DOCUMENTO
d
fecha
revista
edicion
108
Transformacin guiada por los subtipos
Ventajas
Conviene si el concepto que representa el supertipo no se requiere
en el esquema lgico de la base de datos
Acceso muy eficiente a toda la informacin de un subtipo: el
esquema ya incluye la reunin de las tablas correspondientes a
supertipo y subtipo
Vlida para jerarquas E/G totales y exclusivas
Inconvenientes
Con jerarquas solapadas aparecen repeticiones
Con jerarquas parciales surgen problemas de falta de
representacin
Para obtener cierta instancia del supertipo, hay que buscar en
todas las tablas correspondientes a los subtipos
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (y 14)
55
109
Conocer el SGBD elegido para la implementacin
Soporta el Modelo de Datos de Representacin? Hasta qu
punto?
Cmo escribir el ELS con la sintaxis propia del modelo de datos
particular del SGBD comercial elegido?
Estudiar la correspondencia entre los conceptos de los Modelos de
Datos de Representacin y del SGBD
Pueden darse dos casos:
SGBD con soporte total del MLS sin restricciones
Transformacin (casi) directa al SQL propio del SGBD
SGBD no soporta algunos conceptos o s lo hace pero con
limitaciones
Uso de conceptos distintos alternativos
Programacin complementaria
La mayor parte del ELS sirve como ELE, as que slo algunos
aspectos que necesitan transformaciones adicionales
3.4.3 Diseo lgico especfico

S-ar putea să vă placă și