Anda di halaman 1dari 109

3.

Modelo Entidad-Relación

Objetivos:
– Conocer los conceptos y notación del modelo
conceptual de datos entidad-relación extendido.
– Comprender los significados del concepto de
“nulo” en el modelo entidad-relación extendido.
Contenidos:
1. Introducción e historia del modelo
2. Conceptos básicos del modelo
3. Extensiones del modelo
1
3.1. Introducción e historia del modelo Entidad-
Relación

• 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 semántico, surge por la necesidad de
tener un modelo más cercano al usuario
• Describe el “mundo real” como un conjunto de
ENTIDADES y de RELACIONES entre ellas
• Gran difusión
– Muy extendido en los métodos de diseño de bases de datos
– Soportado por herramientas software de diseño (CASE)
2
3.1. Introducción e historia del modelo
Entidad-Relación
Esquema conceptual
• Descripción concisa de los requisitos de
información de los usuarios
– Descripciones detalladas de
• TIPOS DE DATOS
• RELACIONES ENTRE DATOS
• RESTRICCIONES que los DATOS deben cumplir

• Sin detalles de implementación


– Más fácil de entender
– Comunicación con el usuario no técnico

3
3.2. Conceptos básicos del modelo

• Entidad ( entity )
• Atributo ( attribute )
• Dominio ( values set )
• Relación ( relationship )

4
3.2. Conceptos básicos del modelo

ENTIDAD
• Cosa u objeto del mundo real con existencia
propia y distinguible del resto

• Objeto con existencia...


– física 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 interés para la empresa” (ANSI, 1977)

5
3.2. Conceptos básicos del modelo

ATRIBUTO
• Propiedad o característica de una entidad
• Una entidad particular es descrita por los
valores de sus atributos:
titulo = El alquimista impaciente
genero = Thriller
p1
nacionalidad = España
añoestreno = 2002
...
dni = 87654321
e1 nss = 1122334455
nombre = Cristina Aliaga Gil
nacionalidad = España
... 6
3.2. Conceptos básicos del modelo

TIPO DE ENTIDAD (entity set)


• Define un conjunto de entidades que poseen
los mismos atributos
PELICULA: titulo, genero, nacionalidad, añoestreno,numcopias
EMPLEADO: dni, nss, nombre, fechanacim, direccion, telefono,
altura, nacionalidad, edad

• Notación
EMPLEADO PELICULA DIRECTOR

LOCAL ACTOR
CLIENTE
VIDEOCLUB
7
3.2. Conceptos básicos del modelo
Instancia de un tipo de entidad
• También... PELICULA
– Ocurrencia
– Realización titulo = El señor de los anillos
genero = Fantasía
– Ejemplar p2 nacionalidad = EEUU
– Entidad concreta o añoestreno = 2001
individual ...

titulo = Amores perros titulo = Amelie


genero = Drama genero = Comedia
p3 nacionalidad = Méjico p4 nacionalidad = Francia
añoestreno = 1999 añoestreno = 2001
... ...
8
3.2. Conceptos básicos del modelo

Intensión y Extensión
• Un tipo de entidad describe el esquema o
intensión para un conjunto de entidades que
poseen la misma estructura
EMPLEADO: dni, nss, nombre, dirección, telefono, altura,
fechanacim, nacionalidad, edad
• Las instancias del tipo de entidad se agrupan
en un conjunto de entidades o extensión
e1  (87654321, 1122334455, “Cristina Aliaga Gil”, “Libertad, 2. Yecla.
Murcia. 30510”, 968100200, 1’60, 28/07/1979, España, 23)
e2  (12345678, 6677889900, “Antonio Gil Sánchez”, “Paz, 5. Murcia.
Murcia.30012”, 968111222, 1’76, 14/04/1944, España, 58)
e3  (11223344, 1234567890, “Julia Sauce”, “Justicia, 20. Yecla. Murcia.
30510”, 968000222, 1’59, 23/05/1947, España, 55)
... 9
3.2. Conceptos básicos del modelo

Tipos de atributos
• Simples o Compuestos
• Almacenados o Derivados
• Monovalorados o Multivalorados
• Opcionales

10
3.2. Conceptos básicos del modelo
Atributos Simples o Compuestos
• Atributos compuestos
– Pueden dividirse en otros con significado propio
fechanacim direccion
dia mes año calle ciudad provincia codpostal

– Valor compuesto = concatenación de valores de


componentes

• Atributos simples
genero
– No divisibles. Atómicos
11
Atributos Almacenados o Derivados
• Atributos derivados
– Valor calculado a partir de otra información ya
existente (atributos, entidades relacionadas)
– Son información redundante...
edad [de EMPLEADO], cálculo a partir de fechanacim
» atributo derivado del valor de otro atributo
numcopias [de una PELICULA], cuenta del número de
entidades COPIA relacionadas con cada película concreta
» atributo derivado de entidades relacionadas

• Atributos almacenados
fechanacim [de cada EMPLEADO]
nacionalidad [de una PELICULA]
12
Atributos Monovalorados o Multivalorados
• Atributos monovalorados (monovaluados)
– sólo un valor para cada entidad
fechanacim [de un EMPLEADO particular]
añoestreno [de cada PELICULA concreta]

• Atributos multivalorados (multivaluados)


– más de un valor para la misma entidad
nacionalidad [ PELICULA coproducida por varios países ]
telefono [ EMPLEADO con varios teléfonos de contacto]
– pueden tener límites superior e inferior
del número 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 ningún valor aplicable para


el atributo:
fechaalquiler [PELICULA sólo en vídeo-venta (no alquiler)]
14
Notación para atributos
[EN2002]
ciudad provincia
calle
codpostal
dirección
fechanacim telefono
(0,3)
(0,1)
nombre EMPLEADO altura
(1,2)

nss nacionalidad
dni edad

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
• Notación
EMPLEADO

dni

[EN2002]
16
Atributos Clave (ii)
• Una clave puede estar formada por
varios atributos  clave compuesta
– Combinación de valores distinta para cada
instancia
(nombre, fechanacim) en el tipo de entidad EMPLEADO
– Una clave compuesta debe ser mínima

• Un tipo de entidad puede tener


más 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 diseñador) de entre los
identificadores candidatos (IC), para ser
el medio principal de identificación de
las instancias del tipo de entidad
– dni en EMPLEADO
• Atributos identificadores alternativos (IA)
– Claves Alternativas
– El resto de IC’s
– nss y (nombre, fechanacim) en EMPLEADO
18
Notación para atributos clave
[EN2002]

ciudad provincia
calle
codpostal
dirección
fechanacim telefono
(0,3)
(0,1)
n-f EMPLEADO altura
(1,2)
nombre IP nacionalidad
nss
dni 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 válidos
Atributo Dominio Descripción Dominio
nombre NOMBRES cadenas de hasta 30 caracteres alfabéticos
telefono TELEFONOS cadenas de hasta 9 caracteres numéricos
altura MEDIDAS números reales entre 0 y 2’5 (metros)
... ... ...

 No suele representarse,
nombre NOMBRES
aunque una forma de
telefono
hacerlo sería: EMPLEADO TELEFONOS
altura
[MPM1999] MEDIDAS 20
RELACIÓN (relationship)
• También “interrelación”
• Asociación, vínculo o correspondencia
entre instancias de entidades relacionadas
de alguna manera en el “mundo real”
– el director “Alejandro Amenábar” ha rodado la película
“Mar adentro”
– el empleado 87654321 trabaja en el local de
videoclub “principal”
– la película “El imperio contraataca” es una continuación
de la película “La guerra de las galaxias”

21
DIRECTOR HA_RODADO PELICULA
Instancia
del tipo de
relación
 Vacas

J. Médem   Tesis

C. Saura   Belle Epoque

F. Trueba   Torrente

S. Segura   Tierra

A. Amenábar   Abre los ojos

 Los otros

Tipo de Entidad:
Tipo de Relación:
conjunto de instancias
conjunto de instancias
22
TIPO DE RELACIÓN
(relationship set)
• Estructura genérica o abstracción del conjunto
de relaciones existentes entre dos o más
tipos de entidad
un DIRECTOR ha rodado PELICULA’s

• Notación

DIRECTOR HA_RODADO PELICULA

23
Grado de un tipo de relación
• Número de tipos de entidad que participan
en el tipo de relación
– Binaria: grado 2 (el más frecuente)
– Ternaria: grado 3
– Reflexiva (o recursiva): grado 1

ACTOR ACTUA_EN PELICULA

CLIENTE ALQUILA PELICULA

CONTINUACION PELICULA
DE LOCAL_VIDEOCLUB
24
Nombres de Rol (papel)
• Todo tipo de entidad que participa en un tipo de
relación juega un papel específico en la relación

DIRECTOR HA_RODADO PELICULA


realizador film
• Los nombres de rol se deben usar, sobre todo,
en los tipos de relación reflexivos, para evitar
ambigüedad

original

VERSION_DE PELICULA
versión
25
Restricciones estructurales sobre tipos de
relación

• Limitan las posibles combinaciones de


entidades que pueden participar en las
relaciones
• Extraídas de la situación real que se modela
“Una película debe haber sido dirigida por uno y sólo un
director”
“Un director ha dirigido al menos una película y puede haber
dirigido muchas”
• Clases de restricciones estructurales:
– Razón de cardinalidad (o tipo de correspondencia)
– Razón de participación
26
Razón de Cardinalidad
Notación [EN2002]
• Número máximo de instancias de tipo de
relación 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
• Notación 1
– etiqueta en la línea que HA_RODADO
une entidad y relación N
– Ojo: da la sensación de PELICULA
que se representa “al revés”
27
Razón de Cardinalidad (ii)[EN2002]
• Razones de cardinalidad más comunes:
– 1:1 (“uno a uno”)
– 1:N (“uno a muchos”)
– M:N (“muchos a muchos”)

trabajador ACTOR
EMPLEADO
1 encargado 1 personaje M

TRABAJA_EN SUPERVISA ACTUA_EN

sucursal N N
1 film
LOCAL_VIDEOCLUB PELICULA
lugar trabajo
28
Razón de Participación
Notación [EN2002]
• Especifica si toda la extensión de un tipo de
entidad participa en un tipo de relación, o
sólo parte de la extensión
• Indica si hay dependencia en existencia de
un tipo de entidad respecto de un tipo de
relación

• Clases de participación:
– Participación total (dependencia en existencia)
– Participación parcial
29
Razón de Participación (ii)[EN2002]
• Notación DIRECTOR ACTOR
1 personaje M
– Líneas
dobles o HA_ RODADO ACTUA_EN

simples N N
film
PELICULA
PELICULA
trabajador
EMPLEADO
1 encargado 1

TRABAJA_EN SUPERVISA

sucursal N
1
lugar trabajo LOCAL_VIDEOCLUB
30
Cardinalidad de tipo de entidad
• Otra forma de expresar las razones de
cardinalidad y participación
PERSONA USA EDIFICIO

POSEE

PERSONA EDIFICIO PERSONA EDIFICIO


USA POSEE
p1   e1 p1   e1

 e2  e2
p2  p2 
 e3  e3

p3   e4 p3   e4
31
Cardinalidad de tipo de entidad (ii)
Notación [EN2002]
• Números mínimo y máximo de instancias del
tipo de relación en las que puede intervenir
una instancia del tipo de entidad

• Notación
– (min, max) en la línea que une entidad y relación
(1,n) (0,m)
PERSONA USA EDIFICIO

(0,n) (1,1)
POSEE

32
Cardinalidad de tipo de entidad
(iii) EMPLEADO
[EN2002]
ACTOR
1 1 M
TRABAJA_EN SUPERVISA ACTUA_EN

N N
1
PELICULA
LOCAL_VIDEOCLUB

EMPLEADO ACTOR
(1,1) (0,n)
(1,n)
TRABAJA_EN SUPERVISA ACTUA_EN

(1,1) (1,1) (0,m)


LOCAL_VIDEOCLUB PELICULA
33
Cardinalidad de tipo de entidad (vii)
• Cardinalidad de tipos de entidad recursivos

[EN2002]

superior (0,n) 1
subalterno
EMPLEADO (0,1) JEFE DE
N

34
Atributos de tipos de relación
• Similares a los atributos de tipos de entidad

[EN2002] EMPLEADO
1 1

horas TRABAJA_EN SUPERVISA fechainicio

N
1
LOCAL_VIDEOCLUB

35
Atributos de tipos de relación (ii)
• Conceptualmente pertenecen a la relación
– Un atributo de una M:N es propio de la relación
– Un atributo de una 1:1 o 1:N “se puede llevar” a
uno de los tipos de entidad participantes

EMPLEADO horas
1 1

horas TRABAJA_EN SUPERVISA fechainicio

N
1
LOCAL_VIDEOCLUB fechainicio
[EN2002]
horas
36
Tipo de Entidad Débil
Notación [EN2002]
• No tiene atributos clave propios
• Una instancia se identifica por su relación
con una instancia de otro tipo de entidad
– Tipo de relación identificador
• Relaciona un tipo de entidad débil y un tipo de entidad
regular (fuerte, dominante, padre, propietaria)
– Clave parcial (o discriminante)
• Atributos de la entidad débil, 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)
• Notación COPIA
37
Tipo de entidad débil
Tipo de
(ii) [EN2002]
Entidad
PELICULA titulo
nss PACIENTE Regular
1 1
Tipo de
Relación TIENE
ACUDE
Identificador
N N
numcopia
VISITA_MEDICA diahora COPIA
N
Clave parcial o
ASISTIDA
POR Discriminante
1
MEDICO ncolegiado
Dependencia
especialidad nombre en existencia
38
Tipo de entidad débil (iii) [EN2002]
• No toda participación total (o dependencia en
existencia) implica un tipo de entidad débil
EMPLEADO dni
1

POSEE

N
numlicencia
PERMISO
CONDUCCION tipo

PERMISO_CONDUCCIÓN no es débil: depende en existencia de


EMPLEADO, pero tiene clave primaria propia
39
Tipos de relación con grado superior a dos
• Tipo de relación ternaria

[EN2002]
CLIENTE
(0,n)
(0,1)
ALQUILA CINTA
VIDEO
fecha (0,m)
LOCAL
VIDEOCLUB

• Cardinalidad de los tipos de entidad


40
Tipos de relación con grado superior a dos (ii)
• Equivalencia ternaria – varias binarias

[EN2002]
fecha

(0,n)
CLIENTE CLIENTE ALQUILA
(0,n) (1,m) (0,1)
(0,1)
ALQUILA CINTA CINTA
ALQUILA_EN
VIDEO VIDEO
fecha (0,m) (1,n) (1,1)
LOCAL LOCAL
VIDEOCLUB CONTIENE
VIDEOCLUB
(1,n)
41
Tipos de relación con grado superior a dos (iii)
• Ternaria no equivalente a varias binarias
[EN2002]
idprov (1,n) PUEDE
PROVEEDOR PROVEEDOR SUMINISTRAR
codpr
cantidad (1,n) (1,m)
(0,m) (1,m)
SUMINISTRA PRODUCTO PROVEE PRODUCTO
fecha (1,p) (1,n) (0,n)
TIENDA TIENDA VENDE
(1,m)
nombre

• Pérdida de semántica... 42
Modelo Entidad-Relación Extendido, MERE
Enhanced Entity-Relationship model, EER

• Aportaciones de diversos autores al modelo


Entidad-Relación «básico».
• Permiten representar...
– Relaciones exclusivas entre sí
– Jerarquías de Especialización/Generalización

43
3.3. Extensiones del modelo
Relaciones Exclusivas
• Dos (o más) tipos de relación son exclusivos,
respecto de un tipo de entidad que participa en
ambos, si cada instancia del tipo de entidad sólo
puede participar en uno de los tipos de relación
VEHÍCULO

CONSUME GASTA

GASOIL GASOLINA

• CONSUME y GASTA son exclusivas respecto del tipo de


entidad VEHICULO 44
3.3. Extensiones del modelo
Especialización/Generalización (E/G)

• Caso especial de relación entre un tipo de entidad y


varios otros tipos de entidad

• La jerarquía o relación que se establece entre uno y


otros corresponde a la noción de “es_un” o de
“es_un_tipo_de”

• Estas jerarquías pueden formarse por


especialización o bien por generalización

45
3.3. Extensiones del modelo
E/G: Subtipo de un tipo de entidad
• Agrupación de instancias dentro de un tipo de
entidad, que debe representarse explícitamente
debido a su importancia para el diseño o aplicación
– Subtipos del tipo de entidad VEHÍCULO:
• CAMIÓN
• TURISMO
• AUTOBÚS
• 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: Relación Supertipo/Subtipo
• Es la relación que se establece entre un supertipo y
cada uno de sus subtipos (noción es_un o es_un_tipo_de)
• Notación:

EMPLEADO [EN2002]

SECRETARIO GERENTE COMERCIAL

47
3.3. Extensiones del modelo
E/G: Relación Supertipo/Subtipo (ii)
• La extensión de un subtipo es un subconjunto de la
extensión del supertipo
– Una instancia de subtipo también es instancia del supertipo y es
la misma instancia, pero con un papel específico distinto
– Una instancia no puede existir sólo por ser miembro de un
subtipo: también debe ser miembro del supertipo
– Una instancia del supertipo puede no ser miembro de ningún
subtipo
VEHÍCULO

CAMIÓN TURISMO CICLOMOTOR

48
3.3. Extensiones del modelo
E/G: Herencia de tipo
• Un subtipo puede tener atributos propios (específicos)
y participar en relaciones por separado
• Un subtipo hereda todos los atributos del supertipo,
y toda relación en la que participa el supertipo
– Un subtipo, con sus atributos y relaciones específicos, más
los atributos y relaciones que hereda del supertipo, es un
tipo de entidad por derecho propio
numBastidor
VEHÍCULO FABRICA FABRICANTE
precio (1,1) (1,n)
N:1

(0,1) (1,1)
tonelaje LLEVA
CAMIÓN TURISMO MOTOCICLETA SIDECAR

numEjes numPuer numPlazas cilindrada


1:1
49
3.3. Extensiones del modelo
E/G: Especialización
• Proceso de definición de un conjunto de subtipos
de un tipo de entidad (» supertipo)
• Subtipos suelen estar definidos según característica
distintiva de las entidades del supertipo
– Discriminante de la especialización

EMPLEADO

actividad

SECRETARIO GERENTE COMERCIAL

50
3.3. Extensiones del modelo
E/G: Especialización (ii)

• Varias especializaciones de un tipo de entidad,


con base en diferentes discriminantes

PELÍCULA
color
[EN2002]
género

DRAMA TERROR COMEDIA BLANCO_Y_NEGRO COLOR

51
3.3. Extensiones del modelo
E/G: Especialización (iii)
• Conviene incluir relaciones subtipo/supertipo si hay...
– Atributos que sólo tienen sentido para algunas instancias de
un tipo y no para todas (atributos específicos)
especialidadMédica «no es aplicable» a CELADOR

– Tipos de relación en los que sólo participan algunas


entidades de un tipo y no todas (relaciones específicas)
Relación SUPERVISA entre CELADOR y SECCIÓN_HOSPITAL

CELADOR SUPERVISA SECCIÓN_HOSPITAL


(1,1) (1,1)

52
3.3. Extensiones del modelo
E/G: Generalización
• Proceso inverso de la especialización
• Suprimir diferencias entre varios tipos de entidad:
identificar atributos y relaciones comunes, y formar
un supertipo que los incluya
numBastidor numBastidor
fechaFab VEHÍCULO
precio CAMIÓN fechaFab
precio

numEjes tonelaje
G CAMIÓN TURISMO
fechaFab
numBastidor
numEjes tonelaje numPuer

precio TURISMO numPuer


[EN2002]
53
3.3. Extensiones del modelo
E/G: Generalización vs. Especialización
 Generalización
• Énfasis en las similitudes
• Cada instancia del supertipo es también una
instancia de alguno de los subtipos

 Especialización
• Énfasis en las diferencias
• Alguna instancia del supertipo puede no ser
instancia de ningún subtipo

54
3.3. Extensiones del modelo
Restricciones sobre la E/G

• Definición
¿Qué instancias del supertipo pertenecen a cada subtipo?

• Disyunción/Solapamiento
¿A cuántos subtipos puede pertenecer (a la vez) una instancia del
supertipo?

• Completitud/Parcialidad
¿Debe toda instancia del supertipo pertenecer a algún subtipo?

55
3.3. Extensiones del modelo
Restricciones sobre la E/G: Definición

• Subtipos definidos por predicado o condición


– Condición de pertenencia a cada subtipo
con base en el valor de algún atributo del supertipo
– Restricción que especifica que...
• Las instancias del subtipo deben satisfacer la condición
• Todas las instancias del supertipo que cumplen la
condición, deben pertenecer al subtipo
PERSONA [EN2002]

estadoLaboral=en_activo matriculado=true

EMPLEADO ESTUDIANTE

56
3.3. Extensiones del modelo
Restricciones sobre la E/G: Definición (ii)

• Subtipos definidos por atributo


– Todas las subclases definen la condición de pertenencia en
términos del mismo atributo
– ... es el discriminante de la especialización
PERSONA EMPLEADO_HOSPITAL

estadoLaboral
claseTrabajo

en_activo en_paro
médico celador
EMPLEADO PARADO enfermero limpiador
MÉDICO CELADOR ENFERMERO LIMPIADOR

[EN2002]
57
3.3. Extensiones del modelo
Restricciones sobre la E/G: Definición (iii)

• Subtipos definidos por el usuario


– No existe (o no interesa definir) ninguna condición 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:
Disyunción/Solapamiento
• Subtipos disjuntos si una • Subtipos solapados si
instancia del supertipo una instancia del
puede ser miembro de, supertipo puede ser, a
como máximo, uno de los la vez, miembro de
subtipos más de un subtipo
• Es la opción «por
defecto»
VEHÍCULO
PERSONA

d o
TURISMO CAMIÓN
EMPLEADO ESTUDIANTE
[EN2002] 59
3.3. Extensiones del modelo
Restricciones sobre la E/G: Completitud/Parcialidad
• Especialización total •Especialización parcial indica que
(completa) indica que es posible que alguna instancia del
toda instancia del supertipo no pertenezca a ninguno
supertipo también debe de los subtipos
ser instancia de algún •Es la opción «por defecto»
subtipo •La unión de las extensiones de los
subtipos no es la extensión del
supertipo en su totalidad
ANIMAL ALIMENTO

d d

MACHO HEMBRA HERMAFRODITA LACTEO FRUTA VERDURA 60


3.3. Extensiones del modelo
E/G: Tipos de Especialización
• Las restricciones de disyunción y completitud son
independientes entre sí

• Dan lugar a 4 tipos de especialización:


– 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: Especialización Disjunta y Total
EMPLEADO ESTUDIANTE

claseTrabajo tipo
d d

DOCENTE ADMON_Y_SERV BECARIO BECARIO NO_BECARIO

Especialización Disjunta y Parcial


DOCENTE

cuerpoDocente
d

AYUDANTE TITULAR CATEDRÁTICO


62
3.3. Extensiones del modelo
E/G: Especialización Solapada y Total
PERSONA

ocupación
O

EMPLEADO ESTUDIANTE

Especialización Solapada y Parcial


EMPLEADO

dedicación O

DOCENTE INVESTIGADOR
63
3.3. Extensiones del modelo
E/G: Reglas de inserción y eliminación
• Deben aplicarse a la Especialización y la
Generalización, 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
definición

 Insertar una instancia en un supertipo de una


especialización total implica insertarla en, al menos,
un subtipo
Y si la especialización es disjunta, entonces la
instancia se insertará en un único subtipo 64
3.3. Extensiones del modelo
E/G: Reglas de inserción y eliminación (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 especialización es ...
– disjunta y total, o bien
– solapada y total, y la instancia ya sólo pertenece
al subtipo (se eliminó del resto)
En el resto de casos, la instancia sólo se elimina del
subtipo
– No del supertipo ( lo haría el usuario, si fuese necesario)
65
3.4.1 Objetivos y fases del diseño lógico

• El objetivo principal es transformar el esquema conceptual de datos


en el esquema lógico de datos
• Otros objetivos del diseño lógico son ...
– Eliminar redundancias
– Conseguir máxima simplicidad
– Evitar cargas suplementarias de programación
para conseguir ...
– una estructura lógica adecuada
– un equilibrio entre los requisitos de usuario y la eficiencia

• Diseño lógico con la máxima portabilidad


 Introducción “tardía” del SGBD específico
 Implementación del esquema lógico en distintos SGBD comerciales
 Migración entre diferentes versiones de un mismo SGBD

66
3.4.1 Objetivos y fases del diseño lógico

Fases
 Diseño Lógico Estándar (DLS)
– Se elige el modelo de datos de representación, aún no el SGBD
– Transformación independiente del SGBD específico
Esquema Conceptual  Esquema Lógico eStándar (ELS)

 Uso de un Modelo Lógico de datos eStándar (MLS)


• Relacional 
• Red
• Jerárquico
• 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 diseño lógico
Fases (y 2)
 Diseño Lógico Específico (DLE)
– Se elige el SGBD específico
– Adaptación del esquema lógico a un SGBD comercial
concreto
Esquema Lógico Estándar  Esquema Lógico Específico
(ELE)

Uso del Modelo Lógico de datos particular del SGBD


elegido
• Oracle, Informix, DB2, Interbase, Postgress, Sybase ...

Se describe el ELE mediante el LDD propio del SGBD


específico
• SQL de Oracle, ...
68
3.4.2 Diseño lógico estándar
Reglas de traducción MERE  MR
 Reglas para el modelo básico
• Dominios
• Atributos RESUMEN
• Tipos de entidad
• Tipos de relación

MER MR (SQL-92)
Tipo de Entidad Tabla (relación)
Tipo de Relación M:N Tabla
Tipo de Relación 1:1, 1:N, N:1 Propagación de clave o tabla

 Reglas para las extensiones del modelo


• Relaciones exclusivas
• Jerarquías de Especialización/Generalización 69
3.4.2 Diseño lógico estándar
Traducción de un dominio y un tipo de entidad

• Dominio
MR
CREATE DOMAIN Estado_civil AS CHAR(1)
MERE CHECK VALUE IN (‘S’, ‘C’, ‘V’, ‘D’) ;
ESTADO_CIVIL: {S, C, V, D}

• Tipo de entidad
– Se traduce a una tabla (relación)
– Se recomienda usar el mismo nombre o uno similar

MERE MR
CREATE TABLE Persona
PERSONA (
...
); 70
3.4.2 Diseño lógico estándar
Traducción de un atributo
• Atributo simple y monovaluado  Columna
• Atributo identificador
– Id. principal  Clave primaria (PRIMARY KEY)
– Id. alternativo  Clave alternativa (UNIQUE)
 Podrá contener NULL si no se indica lo contrario
MERE MR
numSS
dni nombre CREATE TABLE Persona
direccion ( dni PRIMARY KEY,
telefono numSS UNIQUE NULL,
PERSONA nombre ...,
fechaNacim
direccion ...,
nacionalidad altura telefono ...,
fechaNacim ...,
nacionalidad ...,
altura ... ) ; 71
3.4.2 Diseño lógico estándar
Traducción de un atributo (2)
• Atributo compuesto.- Dos alternativas:
a) «Eliminar» atributo compuesto y considerar todos sus
componentes como columnas simples de la tabla resultante
b) «Eliminar» los componentes y considerar el atributo compuesto
como una sola columna de la tabla

MERE
MR (DED)

¿Cuándo será más


adecuado utilizar
una opción u otra?

72
3.4.2 Diseño lógico estándar
Traducción de un atributo (3)
• Atributo multivalorado
– Nueva tabla S, en la que el atributo multivalorado se representa
como una columna simple A
– S contendrá una nueva columna F, clave ajena a la clave primaria
de la tabla correspondiente a la entidad
– La clave primaria de S es la combinación (F, A)

MERE MR PERSONA (dni, nombre, fechaNac)


FK
dni nombre
fechaNac DIRECC_PERSONA (dni, direccion)

PERSONA direccion (1,n) CREATE TABLE Direcc_Persona (


dni ...
direccion ...
PRIMARY KEY (dni, direccion)
MR (DED) FOREIGN KEY (dni) REFERENCES Persona(dni)
tiene DIRECC_ ON DELETE CASCADE
PERSONA
PERSONA ON UPDATE CASCADE ); 73
3.4.2 Diseño lógico estándar
Traducción 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

MERE MR
dni nombre PERSONA (dni, nombre, fechaNac, edad)
fechaNac

PERSONA edad

74
3.4.2 Diseño lógico estándar
Traducción de una relación binaria M:N

 Nueva tabla R, que incluye...


– claves ajenas hacia las E1 V E2
claves primarias de R1 y de R2 R1 R2
 Su combinación (concatenación) forma R
la clave primaria de R
– columnas correspondientes a los atributos de la relación V (simples o
componentes simples de atributos compuestos)
nombre papel código
ACTOR(nombre, ..., caché, ...)
FK
ACTOR Actua PELICULA
(1,m) en (1,n) ACTUA_EN (actor, pelicula, papel, paga)
FK
caché paga título PELICULA(código, título, ...)

[MPM 1999]
75
3.4.2 Diseño lógico estándar
Traducción de una relación binaria M:N (3)

codAutor derechosAutor isbn


AUTOR(codAutor, nomAutor, ...)
FK
AUTOR Escribe LIBRO
(1,n) (1,4)
ESCRIBE (autor, libro, derAutor, numPag)
FK
nomAutor numPaginas titulo LIBRO(isbn, titulo, ...)

– Pero la traducción, aunque lo parezca, no está


completa...
– ... pues falta especificar ciertos aspectos que tienen
que ver con las reglas de integridad 76
3.4.2 Diseño lógico estándar
Traducción de una relación binaria M:N (4)

– Especificación 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 (derAutor≥0 AND derAutor<100),
numPag NUMERIC(2) NOT NULL CHECK (numPag≥0),
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 Diseño lógico estándar
Traducción de una relación binaria M:N (5)

Especificación de restricciones
a) Datos coherentes: evitar que ESCRIBE contenga un libro con autor
desconocido (fila con autor NULL) o un autor de un libro inexistente (fila
con libro NULL)

autor libro derAutor numPag


NULL 0-201-65370-2 ... ...
A001 NULL ... ...

– Ambas cosas ya quedan aseguradas por la propia definición de la


clave primaria de ESCRIBE:
PRIMARY KEY(autor, libro)
78
3.4.2 Diseño lógico estándar
Traducción de una relación binaria M:N (6)

Especificación de restricciones
b) Cardinalidad mínima 1: todo libro tiene al menos un autor
c) Cardinalidad máxima 4: evitar que un libro haya sido escrito por
más de 4 autores
– CREATE ASSERTION autores_de_libro
CHECK (
(NOT EXISTS (SELECT * FROM LIBRO
WHERE isbn NOT IN (SELECT libro
FROM ESCRIBE)))
AND
(4 >= (SELECT MAX(COUNT(*))
FROM ESCRIBE
GROUP BY libro))
);
79
3.4.2 Diseño lógico estándar
Traducción de una relación binaria M:N (y 7)

Especificación de restricciones
d) Cardinalidad mínima 1: todo autor ha escrito al menos un
libro
– Evitar que en AUTOR exista una fila tal que NO haya ninguna
tupla en ESCRIBE que le haga referencia (autor sin libros).
– Es necesario crear una RI General o Aserto:
CREATE ASSERTION libros_de_autor
CHECK (
NOT EXISTS (SELECT * FROM AUTOR
WHERE codAutor NOT IN (SELECT autor
FROM ESCRIBE))
);
80
3.4.2 Diseño lógico estándar
Traducción de una relación binaria 1:N
1) Caso general E1
1
V
N
E2

 Propagación de clave R1 R2
– En R2 se incluyen nuevas columnas...
 clave externa hacia la clave primaria de R1
 columnas para los atributos de la relación V (simples o
componentes simples de atributos compuestos)

1.1) Participación total de E2 en V


codProv
nombreCiudad
PROVINCIA contiene CIUDAD
(1,n) (1,1) ...

nomProv
CIUDAD( nomCiudad, provincia, ... )
FK: NULOS NO PERMITIDOS

PROVINCIA( codProv, nomProv, ... ) 81


3.4.2 Diseño lógico estándar
Traducción de una relación binaria 1:N (2)

1.2) Participación parcial de E2 en V

nomMuseo
codCuadro
PINACOTECA Expone CUADRO
(1,n) (0,1) titulo
pintor
ciudad
sala

NULOS PERMITIDOS

CUADRO(codCuadro, titulo, pintor, museo, sala...)


FK

PINACOTECA(nomMuseo, ciudad, ...)


82
3.4.2 Diseño lógico estándar
Traducción de una relación binaria 1:N (3)

2) Se cumple uno o varios de estos supuestos:


 La relación V tiene varios atributos propios
 Hay pocas ocurrencias de la relación V
 Es probable que en el futuro V se transforme en una M:N
 Añadir 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 relación V
• columnas para los atributos de V (simples o componentes
simples de atributos compuestos)
nif
ESTUDIANTE
ESTUDIANTE( nif, nombre, ... )
nombre
(0,n)
1:N Propietario_de PROPIEDAD( coche, estudiante)
FK FK NN
(0,1)
matricula COCHE( matricula, modelo, ... )
COCHE 83
modelo
3.4.2 Diseño lógico estándar
Traducción de una relación binaria 1:1
1) Participación 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 además NOT
NULL
– columnas para atributos de la relación V (simples o componentes
simples de atributos compuestos)
nss numHistoria
PACIENTE Tiene HISTORIAL
MEDICO fechaApertura
(1,1) (1,1)

nombre ... ... centroSalud

PACIENTE ( nss, nombre, numHisto, fechaApert, centroSalud,... )


PK AK, NN 84
3.4.2 Diseño lógico estándar
Traducción de una relación binaria 1:1 (2)

2) Participación total de una entidad y parcial de la otra


2.1) Caso general E1 V E2

R1 R2
 Propagación de clave
– La clave de la entidad con participación parcial «se propaga»
hacia la entidad con participación total  clave ajena
– Los atributos de la relación V «siguen» a la clave propagada
codEmp numDep
(0,1) (1,1)
Un empleado puede no EMPLEADO Dirige DEPARTAMENTO
dirigir ningún departamento,
o bien ser el gerente de uno nomEmp fechaInic nomDep
de ellos (desde cierta fecha, EMPLEADO(codEmp, nomEmp, ...)
en la que fue nombrado FK
como tal) DEPARTAMENTO(numDep,nomDep, codDir, fechInicDir...)
AK, NN NN
85
3.4.2 Diseño lógico estándar
Traducción de una relación binaria 1:1 (3)

2.2) Hay pocas instancias del tipo de relación


 Añadir 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 participación total, si existe)
 la otra será clave alternativa en R (UNIQUE) y además 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 Diseño lógico estándar
Traducción de una relación binaria 1:1 (4)

2.3) Hay muchas instancias del tipo de relación


 Una única relación R que incluye...
– todos los atributos de las entidades y de la relación
– la clave primaria es la de la entidad con participación parcial
– debe permitirse NULL en los atributos procedentes de la entidad con
participación total y de la relación
CREATE TABLE Empleado(
Atributos de codEmp ... PRIMARY KEY, NULL permite representar empleados
EMPLEADO nomEmp ... , que no dirigen ningún
..., departamento
UNIQUE asegura que un
Atributos de numDepDir ... NULL UNIQUE, departamento sólo es dirigido por
DEPARTAMENTO nomDepDir ... NULL,
un empleado
..., Los atributos monovalorados
Atributos de fechInicDir ... NULL, aseguran que un empleado pueda
DIRIGE ... ); dirigir como mucho un
departamento 87
3.4.2 Diseño lógico estándar
Traducción de una relación binaria 1:1 (y 5)

3) Participación parcial de ambas entidades


 Añadir una nueva tabla R
• La tabla R se construye exactamente igual que en el caso (2.2)
• Evita los NULL que aparecerían si se propagara la clave de R1 a R2
o viceversa (caso general (2.1))

lugar
nif HOMBRE(nif, ...)
nif
FK
Matrimonio
HOMBRE MUJER MATRIMONIO(esposa, esposo, fecha, lugar)
(0,1) a la antigua (0,1)
AK, NN NN NN
FK
fecha MUJER(nif, ...)
Y... ¿qué acciones de mantenimiento
de la integridad referencial debemos
imponer para (todos los casos de)
transformación de relaciones 1:1?
88
3.4.2 Diseño lógico estándar
Traducción de dependencia en existencia y
en identificación

 Caso particular de relación 1:1 E1 V E2

o 1:N con propagación de clave R1 R2


y participación 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 Identificación
– combinación 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 Diseño lógico estándar
Traducción de dependencia en existencia y
en identificación (y 2)

1:N
nifEmp nifFam
EMPLEADO Tiene FAMILIAR
nomEmp (0,n) (1,1)

EMPLEADO ( nifEmp, nomEmp, ...)


NOT NULL
FK ON DELETE CASCADE
FAMILIAR ( nifFam, emp, ... ) ON UPDATE CASCADE

fecha hora

1:N observ
historial VISITA
nombre PACIENTE Acude
(1,n) (1,1) MEDICA

PACIENTE ( historial, nombre, ... ) NOT NULL


FK
ON DELETE CASCADE
VISITA_MEDICA ( historial, fecha, hora, ... ) ON UPDATE CASCADE
90
3.4.2 Diseño lógico estándar
Traducción de una relación binaria reflexiva
jefe
nifEmp
EMPLEADO Es jefe de
nomEmp
subordinado

Caso 1:N solución problemática si


puede haber muchos
EMPLEADO ( nifEmp, nomEmp, ..., jefe, ... ) empleados sin jefe
FK
( demasiados nulos )
NULL

 tabla que contiene dos claves externas hacia la clave primaria de la


tabla correspondiente a la entidad
– Nombradas según los roles de la entidad en la relación

Caso M:N Otra posibilidad en el Caso 1:N


EMPLEADO ( nifEmp, nomEmp, ... ) EMPLEADO ( nifEmp, nomEmp, ...)
FK FK FK
FK
JEFE_EMP ( jefe, subordinado, ... ) JEFE_EMP ( jefe, subordinado, ... )
NN 91
3.4.2 Diseño lógico estándar
Traducción de una relación n-aria
 Tabla R correspondiente a V, E1 V E2
que incluye...
R1 E3 R2
– claves ajenas hacia cada clave
primaria de R1, R2, R3, etc. R3

– columnas para los atributos de la relación V


(simples o componentes simples de atributos
compuestos)
– la clave primaria de R
 En general, es la combinación de todas las claves
externas hacia R1, R2, R3, etc.
 Pero es posible que sea un subconjunto de dicha
clave
92
3.4.2 Diseño lógico estándar
Traducción de una relación n-aria (y 2)

matricula [EN 2002]


COCHE
nifCliente (0,1) fechaVenta
nifVendedor
CLIENTE Venta VENDEDOR
(0,n) (0,m)

(0,p)
cifBanco
BANCO

VENTA ( matricula, vendedor, cliente, banco, fechaVenta )


1. ¿Cuál es la superclave de esta relación?
2. ¿y cuál es su clave primaria?
3. ¿Cómo 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 Diseño lógico estándar
Traducción de exclusividad de relaciones

 Añadir restricciones de tipo CHECK


Ejemplo para relaciones de tipo 1:N PROFESOR
(0,n) (0,n)

CREATE TABLE Curso (


ORGANIZA IMPARTE
codcurso... PRIMARY KEY,
nomcurso ..., (1,1) (1,1)
... CURSO
director ... REFERENCES Profesor (idProf)
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 Diseño lógico estándar
Traducción de exclusividad de relaciones (2)

Ejemplo para relaciones de tipo M:N ALUMNO


CREATE TABLE Alumno_Estudia_Titulacion ( (1,n) (1,n)
alu ... REFERENCES Alumno (numExp)
ON DELETE CASCADE ON UPDATE CASCADE , estudia cursa
titu ... REFERENCES Titulacion (idTit)
ON DELETE NO ACTION ON UPDATE CASCADE , (0,n) (0,n)
PRIMARY KEY (alu, titu), TITULACIÓN 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 Diseño lógico estándar
Traducción de especialización/generalización

1. Transformación guiada por el supertipo


• Los subtipos se diferencian en pocos atributos,
• Las relaciones con otras entidades están
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 jerarquía E/G
– (posibles) nuevas restricciones semánticas
– la clave primaria de R es el identificador principal del supertipo

96
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (2)

Transformación guiada por el supertipo: Jerarquía


disjunta total CREATE TABLE Empleado_Universidad (
nif nombre nif ... PRIMARY KEY,
EMPLEADO
UNIVERSIDAD nombre ... ,
tipo ... NOT NULL CHECK tipo IN (‘pro’, ‘bec’, ‘pas’),
tipo categ ... NULL,
d tipoBeca ... NULL,
activ ... NULL,
...
PROFESOR BECARIO PAS CHECK ( ( tipo = ‘pro’ AND categ IS NOT NULL
AND tipoBeca IS NULL AND activ IS NULL )
categoría tipoBeca actividad
OR ( tipo = ‘bec’ AND tipoBeca IS NOT NULL
AND categ IS NULL AND activ IS NULL )
[MPM 1999] OR ( tipo = ‘pas’ AND activ IS NOT NULL
restricciones
semánticas AND categ IS NULL AND tipoBeca IS NULL ) )
);
97
disjunta PARCIAL: PERMITE NULL EN TIPO
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (3)
Transformación guiada por el supertipo: Jerarquía solapada parcial

Alternativa 1: CREATE TABLE Individuo (


nif nif ... PRIMARY KEY,
INDIVIDUO nombre
nombre ... ,
fechanac fechanac ... ,
actividad estudia ... NOT NULL CHECK (estudia IN (‘T’, ‘F’)),
curra ... NOT NULL CHECK (curra IN (‘T’, ‘F’)),
titulacion ... NULL,
ESTUDIANTE CURRANTE nss ... NULL UNIQUE,
salario ... NULL,
titulacion ...
nss salario
CHECK ( (estudia = ‘T’ AND titulacion IS NOT NULL)
OR (estudia = ‘F’ AND titulacion IS NULL) ) ,
Otra posibilidad: CHECK ( (curra = ‘T’ AND nss IS NOT NULL
– Sólo una columna discriminante y AND salario IS NOT NULL)
valor extra para solapamiento: OR (curra = ‘F’ AND nss IS NULL
actividad ... NULL CHECK (actividad AND salario IS NULL) )
IN (‘estudia’, ‘trabaja’, ‘est_trab’)) );
98
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (4)
Transformación guiada por el supertipo: Jerarquía solapada parcial

Alternativa 2:
– Un solo atributo discriminante, tratado como atributo multivalorado

CREATE TABLE Individuo ( CREATE TABLE Actividad_Individuo (


nif ... PRIMARY KEY, nifIndiv ... REFERENCES Individuo( nif )
nombre ... , ON DELETE CASCADE
fechanac ... , ON UPDATE CASCADE,
titulación ... NULL, nomActiv ... ,
nss ... NULL UNIQUE, CHECK (nomActiv IN (‘estudiar’, ‘trabajar’)),
salario ... NULL, PRIMARY KEY ( nifIndiv, nomActiv )
... ); );

 Las restricciones semánticas son algo más complejas (asertos), como


veremos a continuación
 Es más extensible que la Alternativa 1: introducir un nuevo subtipo no
requiere alterar la tabla INDIVIDUO para añadir una columna, sino ajustar
el CHECK de ACTIVIDAD_INDIVIDUO y añadir los asertos correspondientes
99
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (6)
Transformación guiada por el supertipo: Jerarquía solapada parcial

Alternativa 2: (cont.) Restricciones de Integridad necesarias


1.- 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 jerarquía 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 jerarquía 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 Diseño lógico estándar
Traducción de especialización/generalización (7)
Transformación guiada por el supertipo: Jerarquía solapada total

CREATE TABLE Universitario (


nombre UNIVERSITARIO nif ... PRIMARY KEY,
nombre ... ,
estudia ... NOT NULL CHECK estudia IN (‘T’, ‘F’),
o tipo trabaja ... NOT NULL CHECK trabaja IN (‘T’, ‘F’),
titulación ... NULL,
salario ... NULL,
ESTUDIANTE CURRANTE
...
titulacion
CHECK ( ( estudia = ‘T’ AND titulacion IS NOT NULL )
nss salario
OR ( trabaja = ‘T’ AND salario IS NOT NULL ) )
);
titulacion salario

Otras opciones:
– Una sola columna discriminante
– Tratar discriminante como un
atributo multivalorado 101
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (8)

Transformación guiada por el supertipo


 Ventajas
– Acceso eficiente a toda la información sobre instancias de una
entidad concreta: acceso a una sola tabla

 Inconvenientes
– Aparición de nulos en columnas correspondientes a atributos que
proceden de subtipos, para aquellas instancias que no pertenecen
a tales subtipos
– Una operación aplicada sólo sobre subtipos debe «buscar» las
instancias de dichos subtipos en el conjunto completo de instancias
(supertipo): acceso a toda la tabla con base en el valor de la
columna correspondiente al discriminante

102
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (9)
2. Transformación total
• Los subtipos se diferencian en muchos P
atributos
d
• Se desea mantener los atributos comunes
en una tabla separada
B1 B2
 Una tabla para cada entidad
– una tabla R para el supertipo P, que incluye...
 columnas para los atributos de P
 la clave primaria es el identificador principal del supertipo
– una tabla Ri para cada subtipo Bi, que incluye...
 columnas para los atributos del subtipo Bi
 columna clave ajena hacia la clave primaria de R
( propagación en cascada)
 la clave primaria es dicha clave ajena

103
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (10)

Ejemplo de transformación total con jerarquía


disjunta y parcial CREATE TABLE Documento (
codigo ... PRIMARY KEY,
codigo idioma idioma ... ,
DOCUMENTO titulo ... ) ;
titulo
CREATE TABLE Articulo (
d tipo codigo ... PRIMARY KEY
REFERENCES Documento (codigo)
ON DELETE CASCADE
ARTICULO LIBRO ON UPDATE CASCADE
revista ... ,
revista edicion editorial
fecha ... ) ;
fecha
CREATE TABLE Libro (
codigo ... PRIMARY KEY
 El atributo discriminante REFERENCES Documento (codigo)
no aparece en ninguna de ON DELETE CASCADE
las tablas resultado de la ON UPDATE CASCADE,
traducción edicion ... ,
editorial ... ); 104
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (11)

Transformación total
 Ventajas
– Es válida para E/G de todo tipo (parcial/total – disjunta/solapada)
– Quizá es «la mejor» desde el punto de vista semántico
– Conviene si las operaciones son estrictamente «locales» a los subtipos o
bien al supertipo, es decir, si casi nunca se accede a la vez a atributos de
subtipos y supertipo

 Inconvenientes
– Menos eficiente en el acceso a todos los atributos (propios y heredados)
de las instancias de un subtipo (¿Por qué?)

105
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (12)

3. Transformación 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 también 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 Diseño lógico estándar
Traducción de especialización/generalización (13)

Ejemplo de transformación guiada por los


subtipos
CREATE TABLE Articulo (
codigo idioma codigo ... PRIMARY KEY
DOCUMENTO titulo ...,
titulo idioma ...,
d tipo revista ... ,
fecha ...
);
ARTICULO LIBRO CREATE TABLE Libro (
edicion
codigo ... PRIMARY KEY
revista fecha editorial
titulo ...,
idioma ...,
edicion ...
 El atributo discriminante
no aparece en ninguna de editorial ...
las tablas resultado de la );
traducción
107
3.4.2 Diseño lógico estándar
Traducción de especialización/generalización (y 14)

Transformación guiada por los subtipos


 Ventajas
– Conviene si el concepto que representa el supertipo no se requiere
en el esquema lógico de la base de datos
– Acceso muy eficiente a toda la información de un subtipo: el
esquema ya incluye la «reunión» de las tablas correspondientes a
supertipo y subtipo
– Válida para jerarquías E/G totales y exclusivas
 Inconvenientes
– Con jerarquías solapadas aparecen «repeticiones»
– Con jerarquías parciales surgen problemas de «falta de
representación»
– Para obtener cierta instancia del supertipo, hay que buscar en
todas las tablas correspondientes a los subtipos

108
3.4.3 Diseño lógico específico
• Conocer el SGBD elegido para la implementación
¿Soporta el Modelo de Datos de Representación? ¿Hasta qué
punto?
¿Cómo escribir el ELS con la sintaxis propia del modelo de datos
particular del SGBD comercial elegido?

• Estudiar la correspondencia entre los conceptos de los Modelos de


Datos de Representación y del SGBD
Pueden darse dos casos:
– SGBD con soporte total del MLS sin restricciones
 Transformación (casi) directa al SQL propio del SGBD
– SGBD no soporta algunos conceptos o sí lo hace pero con
limitaciones
 Uso de conceptos distintos alternativos
 Programación complementaria

• La mayor parte del ELS «sirve» como ELE, así que sólo algunos
aspectos que necesitan transformaciones adicionales 109

Anda mungkin juga menyukai