Vous êtes sur la page 1sur 109

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

Vous aimerez peut-être aussi