3.
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
3.1. Introduccin e historia del modelo EntidadRelacin
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
Esquema conceptual
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
3
3.2. Conceptos bsicos del modelo
Entidad ( entity )
Atributo ( attribute )
Dominio ( values set )
Relacin ( relationship )
3.2. Conceptos bsicos del modelo
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)
5
3.2. Conceptos bsicos del modelo
ATRIBUTO
Propiedad o caracterstica de una entidad
Una entidad particular es descrita por los
valores de sus atributos:
p1
e1
titulo = El alquimista impaciente
genero = Thriller
nacionalidad = Espaa
aoestreno = 2002
...
dni = 87654321
nss = 1122334455
nombre = Cristina Aliaga Gil
nacionalidad = Espaa
...
3.2. Conceptos bsicos del modelo
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
PELICULA
CLIENTE
LOCAL
VIDEOCLUB
DIRECTOR
ACTOR
7
3.2. Conceptos bsicos del modelo
Instancia de un tipo de entidad
Tambin...
Ocurrencia
Realizacin
Ejemplar
Entidad concreta o
individual
p3
PELICULA
p2
titulo = Amores perros
genero = Drama
nacionalidad = Mjico
aoestreno = 1999
...
titulo = El seor de los anillos
genero = Fantasa
nacionalidad = EEUU
aoestreno = 2001
...
p4
titulo = Amelie
genero = Comedia
nacionalidad = Francia
aoestreno = 2001
...
8
3.2. Conceptos bsicos del modelo
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)
...
9
3.2. Conceptos bsicos del modelo
Tipos de atributos
Simples o Compuestos
Almacenados o Derivados
Monovalorados o Multivalorados
Opcionales
10
3.2. Conceptos bsicos del modelo
Atributos Simples o Compuestos
Atributos compuestos
Pueden dividirse en otros con significado propio
fechanacim
direccion
dia mes
ao
calle ciudad provincia codpostal
Valor compuesto = concatenacin de valores de
componentes
Atributos simples
No divisibles. Atmicos
genero
11
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 derivado del valor de otro atributo
numcopias [de una PELICULA], cuenta del nmero de
entidades COPIA relacionadas con cada pelcula concreta
atributo derivado de entidades relacionadas
Atributos almacenados
fechanacim [de cada EMPLEADO]
nacionalidad [de una PELICULA]
12
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)
13
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)]
14
Notacin para atributos
[EN2002]
ciudad
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
Una clave identifica de forma nica cada entidad
concreta atributo identificador
Notacin
EMPLEADO
dni
[EN2002]
16
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)
17
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
nss y (nombre, fechanacim) en EMPLEADO
18
Notacin para atributos clave
[EN2002]
calle
codpostal
direccin
fechanacim
n-f
nombre
provincia
ciudad
(0,3)
(0,1)
EMPLEADO
nss
(1,2)
IP
dni
telefono
altura
nacionalidad
edad
En el MER es obligatorio que todo tipo de
entidad tenga un identificador
19
DOMINIO (values set)
Conjunto de valores
Cada atributo simple est asociado a un
dominio, que especifica sus valores vlidos
Atributo
Dominio
nombre NOMBRES
Descripcin Dominio
cadenas de hasta 30 caracteres alfabticos
telefono TELEFONOS cadenas de hasta 9 caracteres numricos
altura
MEDIDAS
nmeros reales entre 0 y 25 (metros)
...
...
...
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
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
ACTOR
ACTUA_EN
CLIENTE
CONTINUACION
DE
PELICULA
PELICULA
ALQUILA
PELICULA
LOCAL_VIDEOCLUB
24
Nombres de Rol (papel)
Todo tipo de entidad que participa en un tipo de
relacin juega un papel especfico en la relacin
DIRECTOR
realizador
HA_RODADO
film
PELICULA
Los nombres de rol se deben usar, sobre todo,
en los tipos de relacin reflexivos, para evitar
ambigedad
original
VERSION_DE
versin
PELICULA
25
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 una pelcula y puede haber
dirigido muchas
Clases de restricciones estructurales:
Razn de cardinalidad (o tipo de correspondencia)
Razn de participacin
26
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
Razn de Cardinalidad (ii)[EN2002]
Razones de cardinalidad ms comunes:
1:1 (uno a uno)
1:N (uno a muchos)
M:N (muchos a muchos)
trabajador
1
TRABAJA_EN
1
lugar trabajo
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
Razn de Participacin (ii)[EN2002]
Notacin
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
Cardinalidad de tipo de entidad
Otra forma de expresar las razones de
cardinalidad y participacin
PERSONA
EDIFICIO
USA
POSEE
PERSONA
EDIFICIO
PERSONA
USA
p1
POSEE
e1
p1
p2
e1
e2
e2
p2
e3
p3
EDIFICIO
e4
e3
p3
e4
31
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
(1,n)
PERSONA
(0,n)
USA
POSEE
(0,m)
EDIFICIO
(1,1)
32
Cardinalidad de tipo de entidad
(iii)
[EN2002]
EMPLEADO
ACTOR
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
Cardinalidad de tipo de entidad (vii)
Cardinalidad de tipos de entidad recursivos
[EN2002]
superior (0,n)
subalterno
EMPLEADO (0,1)
N
1
JEFE DE
34
Atributos de tipos de relacin
Similares a los atributos de tipos de entidad
[EN2002]
horas
1
TRABAJA_EN
1
EMPLEADO
1
SUPERVISA
fechainicio
N
LOCAL_VIDEOCLUB
35
Atributos de tipos de relacin (ii)
Conceptualmente pertenecen a la relacin
Un atributo de una M:N es propio de la relacin
Un atributo de una 1:1 o 1:N se puede llevar a
uno de los tipos de entidad participantes
1
horas
TRABAJA_EN
EMPLEADO
1
SUPERVISA
fechainicio
[EN2002]
horas
LOCAL_VIDEOCLUB
horas
fechainicio
36
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)
COPIA
Notacin
37
Tipo de entidad dbil
(ii)
[EN2002]
Tipo de
nss
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
Tipo de entidad dbil (iii) [EN2002]
No toda participacin total (o dependencia en
existencia) implica un tipo de entidad dbil
EMPLEADO
dni
1
POSEE
N
PERMISO
CONDUCCION
numlicencia
tipo
PERMISO_CONDUCCIN no es dbil: depende en existencia de
EMPLEADO, pero tiene clave primaria propia
39
Tipos de relacin con grado superior a dos
Tipo de relacin ternaria
[EN2002]
CLIENTE
(0,n)
ALQUILA
fecha (0,m)
(0,1)
CINTA
VIDEO
LOCAL
VIDEOCLUB
Cardinalidad de los tipos de entidad
40
Tipos de relacin con grado superior a dos (ii)
Equivalencia ternaria varias binarias
[EN2002]
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
Tipos de relacin con grado superior a dos (iii)
Ternaria no equivalente a varias binarias
[EN2002]
PROVEEDOR
cantidad
(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
Modelo Entidad-Relacin Extendido, MERE
Enhanced Entity-Relationship model, EER
Aportaciones de diversos autores al modelo
Entidad-Relacin bsico.
Permiten representar...
Relaciones exclusivas entre s
Jerarquas de Especializacin/Generalizacin
43
3.3. Extensiones del modelo
Relaciones Exclusivas
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
VEHCULO
CONSUME
GASTA
GASOIL
GASOLINA
CONSUME y GASTA son exclusivas respecto del tipo de
entidad VEHICULO
44
3.3. Extensiones del modelo
Especializacin/Generalizacin (E/G)
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
45
3.3. Extensiones del modelo
E/G: Subtipo de un tipo de entidad
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 )
46
3.3. Extensiones del modelo
E/G: Relacin Supertipo/Subtipo
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
SECRETARIO
GERENTE
[EN2002]
COMERCIAL
47
3.3. Extensiones del modelo
E/G: Relacin Supertipo/Subtipo (ii)
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
VEHCULO
CAMIN
TURISMO
CICLOMOTOR
48
3.3. Extensiones del modelo
E/G: Herencia de tipo
Un subtipo puede tener atributos propios (especficos)
y participar 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
numBastidor
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
3.3. Extensiones del modelo
E/G: Especializacin
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
EMPLEADO
actividad
SECRETARIO
GERENTE
COMERCIAL
50
3.3. Extensiones del modelo
E/G: Especializacin (ii)
Varias especializaciones de un tipo de entidad,
con base en diferentes discriminantes
gnero
DRAMA TERROR
PELCULA
COMEDIA
color
BLANCO_Y_NEGRO
[EN2002]
COLOR
51
3.3. Extensiones del modelo
E/G: Especializacin (iii)
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 a CELADOR
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
CELADOR
(1,1)
SUPERVISA
(1,1)
SECCIN_HOSPITAL
52
3.3. Extensiones del modelo
E/G: Generalizacin
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
CAMIN
numEjes
numBastidor
precio
numBastidor
fechaFab
VEHCULO
precio
tonelaje
CAMIN
fechaFab
TURISMO
fechaFab
numEjes
TURISMO
numPuer
tonelaje
numPuer
[EN2002]
53
3.3. Extensiones del modelo
E/G: Generalizacin vs. Especializacin
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
54
3.3. Extensiones del modelo
Restricciones sobre la E/G
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?
55
3.3. Extensiones del modelo
Restricciones sobre la E/G: Definicin
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
estadoLaboral=en_activo
EMPLEADO
[EN2002]
matriculado=true
ESTUDIANTE
56
3.3. Extensiones del modelo
Restricciones sobre la E/G: Definicin (ii)
Subtipos definidos por atributo
Todas las subclases definen la condicin de pertenencia en
trminos del mismo atributo
... es el discriminante de la especializacin
EMPLEADO_HOSPITAL
PERSONA
estadoLaboral
en_activo
EMPLEADO
en_paro
claseTrabajo
mdico
PARADO
MDICO
celador
enfermero
CELADOR
limpiador
ENFERMERO
LIMPIADOR
[EN2002]
57
3.3. Extensiones del modelo
Restricciones sobre la E/G: Definicin (iii)
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
PROFESOR
TITULAR
AYUDANTE
ASOCIADO
58
3.3. Extensiones del modelo
Restricciones sobre la E/G:
Disyuncin/Solapamiento
Subtipos disjuntos si una
instancia del supertipo
puede ser miembro de,
como mximo, uno de los
subtipos
Subtipos solapados si una
instancia del supertipo puede
ser, a la vez, miembro de
ms de un subtipo
Es la opcin por defecto
VEHCULO
PERSONA
d
TURISMO
o
CAMIN
[EN2002]
EMPLEADO
ESTUDIANTE
59
3.3. Extensiones del modelo
Restricciones sobre la E/G: Completitud/Parcialidad
Especializacin parcial indica que
Especializacin total
es posible que alguna instancia del
(completa) indica que
supertipo no pertenezca a ninguno
toda instancia del
supertipo tambin debe de los subtipos
Es la opcin por defecto
ser instancia de algn
La unin de las extensiones de los
subtipo
subtipos no es la extensin del
supertipo en su totalidad
MACHO
ANIMAL
ALIMENTO
HEMBRA
HERMAFRODITA
LACTEO
FRUTA
VERDURA
60
3.3. Extensiones del modelo
E/G: Tipos de Especializacin
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
61
3.3. Extensiones del modelo
E/G: Especializacin Disjunta y Total
EMPLEADO
d
DOCENTE
ESTUDIANTE
claseTrabajo
ADMON_Y_SERV BECARIO
d
BECARIO
tipo
NO_BECARIO
Especializacin Disjunta y Parcial
DOCENTE
d
AYUDANTE
TITULAR
cuerpoDocente
CATEDRTICO
62
3.3. Extensiones del modelo
E/G: Especializacin Solapada y Total
PERSONA
O
EMPLEADO
ocupacin
ESTUDIANTE
Especializacin Solapada y Parcial
EMPLEADO
dedicacin
DOCENTE
O
INVESTIGADOR
63
3.3. Extensiones del modelo
E/G: Reglas de insercin y eliminacin
Deben aplicarse a la Especializacin y la
Generalizacin, debido a las restricciones definidas
Insertar 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
Insertar 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
64
3.3. Extensiones del modelo
E/G: Reglas de insercin y eliminacin (ii)
Eliminar una instancia de un supertipo implica
eliminarla de todos los subtipos a los que pertenece
Eliminar 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 ( lo hara el usuario, si fuese necesario)
65
3.4.1 Objetivos y fases del diseo lgico
El objetivo principal es transformar el esquema conceptual de
datos en el 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
66
3.4.1 Objetivos y fases del diseo lgico
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)
Uso de un Modelo Lgico de datos eStndar (MLS)
Relacional
Red
Jerrquico
Orientado a Objetos
Se describe el ELS mediante los elementos del modelo de datos
LDD de SQL-92 en el Modelo Relacional
Diagrama de Estructura de Datos
67
3.4.1 Objetivos y fases del diseo lgico
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
3.4.2 Diseo lgico estndar
Reglas de traduccin MERE MR
Reglas para el modelo bsico
Dominios
Atributos
Tipos de entidad
Tipos de relacin
RESUMEN
MER
MR (SQL-92)
Tipo de Entidad
Tabla (relacin)
Tipo de Relacin M:N
Tabla
Tipo de Relacin 1:1, 1:N, N:1 Propagacin de clave o tabla
Reglas para las extensiones del modelo
Relaciones exclusivas
Jerarquas de Especializacin/Generalizacin
69
3.4.2 Diseo lgico estndar
Traduccin de un dominio y un tipo de entidad
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
(
...
);
70
3.4.2 Diseo lgico estndar
Traduccin
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
nombre
direccion
telefono
fechaNacim
dni
PERSONA
nacionalidad
altura
CREATE TABLE Persona
( dni
PRIMARY KEY,
numSS
UNIQUE NULL,
nombre ...,
direccion ...,
telefono ...,
fechaNacim ...,
nacionalidad ...,
altura ... ) ;
71
3.4.2 Diseo lgico estndar
Traduccin 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)
Cundo ser ms
adecuado utilizar
una opcin u otra?
72
3.4.2 Diseo lgico estndar
Traduccin 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 combinacin (F, A)
MERE
MR
dni
nombre
fechaNa
c
direccion (1,n)
PERSONA
MR (DED)
PERSONA
tiene
DIRECC_
PERSONA
PERSONA (dni, nombre, fechaNac)
FK
DIRECC_PERSONA (dni, direccion)
CREATE TABLE Direcc_Persona (
dni ...
direccion ...
PRIMARY KEY (dni, direccion)
FOREIGN KEY (dni) REFERENCES Persona(dni)
ON DELETE CASCADE
ON UPDATE CASCADE );
73
3.4.2 Diseo lgico estndar
Traduccin de un atributo (y 4)
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
MR
MERE
dni
PERSONA
nombre
fechaNa
c
edad
PERSONA (dni, nombre, fechaNac, edad)
74
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria M:N
Nueva tabla R, que incluye...
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
ACTOR(nombre, ..., cach, ...)
FK
ACTUA_EN (actor, pelicula, papel, paga)
FK
ttulo
PELICULA(cdigo, ttulo, ...)
75
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria M:N (3)
codAutor
AUTOR
nomAutor
isbn
derechosAutor
(1,n)
Escribe
LIBRO
(1,4)
numPaginas
AUTOR(codAutor, nomAutor, ...)
FK
ESCRIBE (autor, libro, derAutor, numPag)
FK
titulo
LIBRO(isbn, titulo, ...)
Pero la traduccin, aunque lo parezca, no est completa...
... pues falta especificar ciertos aspectos que tienen que ver con las
reglas de integridad
76
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria M:N (4)
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
);
77
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria M:N (5)
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
...
...
Ambas cosas ya quedan aseguradas por la propia definicin de la clave
primaria de ESCRIBE:
PRIMARY KEY(autor, libro)
78
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria M:N (6)
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
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria M:N (y 7)
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
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:N
1) Caso general
Propagacin de clave
E1
R1
E2
R2
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 E2 en V
codProv
nombreCiudad
PROVINCIA
contiene
(1,1)
(1,n)
CIUDAD
...
nomProv
CIUDAD( nomCiudad, provincia, ... )
FK: NULOS NO PERMITIDOS
PROVINCIA( codProv, nomProv, ... )
81
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:N (2)
1.2) Participacin parcial de E2 en V
nomMuseo
codCuadro
PINACOTECA
ciudad
Expone
(0,1)
(1,n)
CUADRO
titulo
pintor
sala
NULOS PERMITIDOS
CUADRO(codCuadro, titulo, pintor, museo, sala...)
FK
PINACOTECA(nomMuseo, ciudad, ...)
82
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:N (3)
2) Se cumple uno o varios de estos supuestos:
La relacin V tiene varios atributos propios
Hay pocas ocurrencias de la relacin V
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 R1 y 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)
nif
ESTUDIANTE
nombre
(0,n)
1:N
Propietario_de
(0,1)
matricula
COCHE
ESTUDIANTE( nif, nombre, ... )
PROPIEDAD( coche, estudiante)
FK
FK NN
COCHE( matricula, modelo, ... )
83
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:1
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 ( si es distinta) ser alternativa (UNIQUE) y adems NOT NULL
columnas para atributos de la relacin V (simples o componentes simples
de atributos compuestos)
nss
nombre
PACIENTE
(1,1)
Tiene
HISTORIAL
MEDICO
(1,1)
...
...
numHistoria
fechaApertura
centroSalud
PACIENTE ( nss, nombre, numHisto, fechaApert, centroSalud,... )
PK
AK, NN
84
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:1 (2)
2) Participacin total de una entidad y parcial de la otra
2.1) Caso general
E1
E2
R1
Propagacin de clave
R2
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
codEmp
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
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:1 (3)
2.2) Hay pocas instancias del tipo de relacin
Aadir una nueva tabla R que incluye...
claves ajenas hacia las claves primarias de R1 y 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, ...)
FK
DIRIGE (emp, dep, fechInic)
AK,NN
FK
DEPARTAMENTO(numDep, nomDep,...)
86
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:1 (4)
2.3) Hay muchas instancias del tipo de relacin
Una nica relacin R que incluye...
todos los atributos de las entidades y de la relacin
la clave primaria es la de la entidad con participacin parcial
debe permitirse NULL en los atributos procedentes de la entidad con
participacin total y de la relacin
CREATE TABLE Empleado(
codEmp ... PRIMARY KEY,
Atributos
de
nomEmp ... ,
EMPLEADO
...,
Atributos de numDepDir ... NULL UNIQUE,
DEPARTAMENTO nomDepDir ... NULL,
...,
fechInicDir ... NULL,
Atributos
de DIRIGE
... );
NULL permite representar empleados
que no dirigen ningn
departamento
UNIQUE asegura que un
departamento slo es dirigido por
un empleado
Los atributos monovalorados
aseguran que un empleado pueda
dirigir como mucho un
departamento
87
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria 1:1 (y 5)
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))
lugar
nif
nif
HOMBRE
Matrimonio
(0,1) a la antigua (0,1)
MUJER
HOMBRE(nif, ...)
FK
MATRIMONIO(esposa, esposo, fecha, lugar)
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
3.4.2 Diseo lgico estndar
Traduccin de dependencia en existencia y
en identificacin
Caso particular de relacin 1:1
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
3.4.2 Diseo lgico estndar
Traduccin de dependencia en existencia y
en identificacin (y 2)
nifEmp
nomEmp
1:N
EMPLEADO
(0,n)
FAMILIAR
Tiene
(1,1)
EMPLEADO ( nifEmp, nomEmp, ...)
FK
FAMILIAR ( nifFam, emp, ... )
NOT NULL
ON DELETE CASCADE
ON UPDATE CASCADE
fecha
historial
nombre
1:N
PACIENTE
(1,n)
Acude
nifFam
(1,1)
PACIENTE ( historial, nombre, ... )
FK
VISITA_MEDICA ( historial, fecha, hora, ... )
hora
VISITA
MEDICA
observ
NOT NULL
ON DELETE CASCADE
ON UPDATE CASCADE
90
3.4.2 Diseo lgico estndar
Traduccin de una relacin binaria reflexiva
jefe
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 )
tabla que 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
Caso M:N
EMPLEADO ( nifEmp, nomEmp, ... )
FK
FK
JEFE_EMP ( jefe, subordinado, ... )
Otra posibilidad en el Caso 1:N
EMPLEADO ( nifEmp, nomEmp, ...)
FK
FK
JEFE_EMP ( jefe, subordinado, ... )
NN
91
3.4.2 Diseo lgico estndar
Traduccin de una relacin n-aria
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
3.4.2 Diseo lgico estndar
Traduccin de una relacin n-aria (y 2)
matricula
nifCliente
CLIENTE
[EN 2002]
COCHE
fechaVenta
(0,1)
(0,n)
Venta
(0,m)
VENDEDOR
nifVendedor
(0,p)
BANCO
cifBanco
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 ventas sin cliente, sin coche, sin
vendedor?
4. Puede reflejarse la existencia de ventas directas (sin banco)?
93
3.4.2 Diseo lgico estndar
Traduccin de exclusividad de relaciones
Aadir restricciones de tipo CHECK
Ejemplo para relaciones de tipo 1:N
PROFESOR
(0,n)
(0,n)
CREATE TABLE Curso (
codcurso
... PRIMARY KEY,
ORGANIZA
IMPARTE
nomcurso ...,
...
(1,1)
(1,1)
director ... REFERENCES Profesor (idProf)
CURSO
ON UPDATE CASCADE ,
profesor
... REFERENCES Profesor (idProf)
ON UPDATE CASCADE ,
CONSTRAINT organiza_xor_imparte
CHECK ( ( director NOT IN (SELECT profesor FROM Curso) )
AND ( profesor NOT IN (SELECT director FROM Curso) ) )
...
);
94
3.4.2 Diseo lgico estndar
Traduccin de exclusividad de relaciones (2)
Ejemplo para relaciones de tipo M: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)
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]
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 ( alum NOT IN (SELECT alu FROM Alumno_Estudia_Titulacion) ) );
95
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin
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 R que contiene...
columnas para los atributos del supertipo P y los subtipos B1 y B2
columna para el atributo discriminante d de la jerarqua E/G
(posibles) nuevas restricciones semnticas
la clave primaria de R es el identificador principal del supertipo
96
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (2)
Transformacin guiada por el supertipo: Jerarqua disjunta total
nif
nombre
EMPLEADO
UNIVERSIDAD
d
PROFESOR
BECARIO
categora
tipoBeca
[MPM 1999]
tipo
CREATE TABLE Empleado_Universidad (
nif
... PRIMARY KEY,
nombre ... ,
tipo
... NOT NULL CHECK tipo IN (pro, bec, pas),
categ ... NULL,
tipoBeca ... NULL,
activ
... NULL,
...
PAS
CHECK ( ( tipo = pro AND categ IS NOT NULL
AND tipoBeca IS NULL AND activ IS NULL )
actividad
OR ( tipo = bec AND tipoBeca IS NOT NULL
AND categ IS NULL AND activ IS NULL )
restricciones OR ( tipo = pas AND activ IS NOT NULL
AND categ IS NULL AND tipoBeca IS NULL ) )
semnticas
);
97
disjunta PARCIAL: PERMITE NULL EN TIPO
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (3)
Transformacin guiada por el supertipo: Jerarqua solapada parcial
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))
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
... NULL UNIQUE,
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) )
);
98
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (4)
Transformacin guiada por el supertipo: Jerarqua solapada parcial
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,
... );
CREATE TABLE Actividad_Individuo (
nifIndiv
... REFERENCES Individuo( nif )
ON DELETE CASCADE
ON UPDATE CASCADE,
nomActiv
... ,
CHECK (nomActiv IN (estudiar, trabajar)),
PRIMARY KEY ( nifIndiv, nomActiv )
);
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
99
los asertos correspondientes
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (6)
Transformacin guiada por el supertipo: Jerarqua solapada parcial
Alternativa
(cont.) Restricciones de Integridad necesarias
1.-2:Si es estudiante, titulacion no 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)));
2.- Si es trabajador, nss y salario no 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, titulacion debe ser NULL;
ni que si es estudiante, nss y salario deben 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
100
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (7)
Transformacin guiada por el supertipo: Jerarqua solapada total
nombre
UNIVERSITARIO
o
ESTUDIANTE
titulacion
tipo
CURRANTE
nss
titulacion
salario
salario
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 ) )
);
Otras opciones:
Una sola columna
discriminante
Tratar discriminante como
un atributo multivalorado
101
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (8)
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
102
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (9)
2. Transformacin total
Los subtipos se diferencian en muchos
atributos
Se desea mantener los atributos comunes
en una tabla separada
P
d
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
( propagacin en cascada)
la clave primaria es dicha clave ajena
103
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (10)
Ejemplo de transformacin total con jerarqua disjunta y parcial
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
CREATE TABLE Documento (
codigo ... PRIMARY KEY,
idioma ... ,
titulo ... ) ;
CREATE TABLE Articulo (
codigo ... PRIMARY KEY
REFERENCES Documento (codigo)
ON DELETE CASCADE
ON UPDATE CASCADE
revista ... ,
fecha ... ) ;
CREATE TABLE Libro (
codigo ... PRIMARY KEY
REFERENCES Documento (codigo)
ON DELETE CASCADE
ON UPDATE CASCADE,
edicion ... ,
editorial ... );
104
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (11)
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?)
105
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (12)
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 Ri para cada subtipo que contiene...
columnas para los atributos del subtipo Bi y
columnas para los atributos comunes (del supertipo)
la clave primaria de Ri es el identificador principal del supertipo
106
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (13)
Ejemplo de transformacin guiada por los subtipos
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
CREATE TABLE Articulo (
codigo ... PRIMARY KEY
titulo ...,
idioma ...,
revista ... ,
fecha ...
);
CREATE TABLE Libro (
codigo ... PRIMARY KEY
titulo ...,
idioma ...,
edicion ...
editorial ...
);
107
3.4.2 Diseo lgico estndar
Traduccin de especializacin/generalizacin (y 14)
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
108
3.4.3 Diseo lgico especfico
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
109