You are on page 1of 51

Modelo Relacional

E. F. Codd - modelo relacional en1970.


Antes: punteros fsicos (direcciones de disco) relacionaban
registros de distintos archivos.
Relacionar registro A con registro B -> aadir a registro A un
campo conteniendo la direccin en disco de registro B.
Este campo siempre sealara desde el registro A al registro B.
Vulnerabilidad: aadir un nuevo disco y mover los datos de una
localizacin fsica a otra ->conversin de los archivos de datos.
Sistemas basados en modelo de red y modelo jerrquico,
primera generacin de los SGBD.

Modelo relacional: segunda generacin de los SGBD.


Datos estructurados a nivel lgico como tablas formadas por
filas y columnas.
A nivel fsico pueden tener una estructura completamente
distinta.
Tablas pueden ser construidas:
Crear conjunto de tablas iniciales y aplicar ciertas operaciones
hasta conseguir el esquema ms ptimo.
Convertir diagrama MER a tablas y posteriormente aplicar
tambin estas operaciones hasta conseguir el esquema ptimo.

Primera tcnica: de las primeras en existir.


Segunda, ms reciente, mucho ms conveniente:
Partir de un diagrama visual es muy til para apreciar los detalles (modelo
conceptual).
Crear tablas es mucho ms simple a travs de las reglas de conversin
(MER-Relacional).
En ambos casos hay que aplicar operaciones a las tablas; al partir del MER
stas son mnimas.
An con normalizacion deficiente, se garantiza un esquema aceptable, no
as en la primera tcnica.

Modelo relacional ve tres aspectos de los datos:


Estructura de datos. (Aqu estamos)
Integridad de datos.
Manejo de datos.

id _ c lie n t e
n o m b r e _ c lie n t e
c a lle _ c lie n t e
c iu d a d _ c lie n t e

C li e n te

( 1 ,n )

t ie n e

(1 ,n )

C u e n ta

n m e r o _ c u e n ta
s a ld o

Estructura
La relacin es el elemento bsico del modelo relacional y se
representa por una tabla.
Tablas se representan grficamente como una estructura
rectangular formada por filas y columnas.
Cada columna almacena informacin sobre una propiedad
determinada de la tabla (atributo): nombre, carnet, apellidos,
edad,....
Cada fila posee una ocurrencia o ejemplar de la instancia
representada por la tabla (tuplas).

Relacin

Tabla

Tupla

Fila

Atributo

Columna

Numero de
tuplas

Cardinalidad

Numero de
atributos

Grado

Dominio

Coleccin de valores, de los cuales uno o ms


atributos obtienen sus valores reales.

Clave primaria Identificador nico para la tabla: una columna o


combinacin de columnas con la propiedad de que
nunca existen 2 filas de la tabla con el mismo valor
en esa columna o combinacin de columnas.

Pelicula
ttulo

ao

duracin

Tipo

Star Wars

1977

124

color

Mighty Ducks

1991

104

color

Wayne's World

1992

95

color

Oficina
Onum

Calle

Area

Poblacin

Telfono

Fax

O5

Enmedio, 8

Centro

Castelln

964 201 240

964 201 340

O7

Moyano, s/n

Centro

Castelln

964 215 760

964 215 670

O3

San Miguel, 1

Villarreal

964 520 250

964 520 255

O4

Trafalgar, 23

Castelln

964 284 440

964 284 420

O2

Cedre, 26

Villarreal

964 525 810

964 252 811

Grao

Plantilla
Enum

Nombre

Apellido

Direccin

Telfono

Puesto

Fecha_na
c

Salario

DNI

EL21

Amelia

Pastor

Magallanes, 15
Castelln

964 284
560

Director

12/10/62

30000

39432212

O5

EG37

Pedro

Cubedo

Bayarri, 11
Villarreal

964 535
690

Superviso
r

24/3/57

18000

38766623

O3

EG14

Luis

Collado

Borriol, 35
Villarreal

964 522
230

Administ.

9/5/70

12000

24391223

O3

EA9

Rita

Renal

Casalduch, 32
Castelln

964 257
550

Superviso
r

19/5/60

18000

39233190

O7

EG5

Julio

Prats

Melilla, 23
Villarreal

964 524
590

Director

19/12/50

24000

25644309

O3

EL41

Carlos

Baeza

Herrero, 51
Castelln

964 247
250

Superviso
r

29/2/67

18000

39552133

O5

Onum

Dominio
Cada atributo de una base de datos relacional se define sobre un dominio.
Varios atributos pueden estar definidos sobre el mismo dominio.
Permiten especificar los posibles valores vlidos para uno o varios
atributos.
Un dominio D es un conjunto finito de valores homogneos y atmicos
caracterizados por un nombre.
Homogneo significa que los valores son todos del mismo tipo y atmicos
significa que son indivisibles.
El dominio "Nacionalidades" tiene valores: Espaa, Francia, Chile,
Argentina...
Si descompusiramos Espaa en E,s,p,... perdera la semntica. (indivisible)

Ejemplos:
Colores: Es el conjunto de los colores D={rojo, verde, azul}
Nmeros de DNI: Es conjunto de nmeros del DNI vlidos (0-9),
formados por ocho dgitos.
Edad: Edades posibles de los empleados entre 18 y 80 aos.
Cada domino debe tener un tipo de datos.
El tipo de datos del dominio "nacionalidades" es un conjunto de
caracteres de longitud 10.
Se considera que los dominios no incluyen nulos, ya que nulo
(NULL) no es un valor.

Atributo

Nombre del
Dominio

Descripcin

Definicin

Onum

NUM_OFICINA

Posibles valores de
nmero de oficina

3 digitos; rango O1O99

Calle

NOM_CALLE

Nombres de calles de
Espaa

25 caracteres

Area

NOM_AREA

Nombres de reas de
las poblaciones de
Espaa

20 caracteres

Poblacin

NOM_POBLACIO
N

Nombres de las
poblaciones de
Espaa

15 caracteres

Telfono

NUM_TEL_FAX

Nmeros de telfono
de Espaa

9 digitos

Fax

NUM_TEL_FAX

Nmeros de telfono
de Espaa

9 dgitos

Tipos de Datos
Cada dominio debe definirse sobre algn tipo de dato:

Entero (Integer)

Nmeros enteros sin parte decimal.

Carcter (Char)

Caracteres del cdigo ASCII, de 0-255

Boleano (Boolean)

Pueden contener los valores de falso o verdadero

Real

Nmeros que pueden incluir una parte decimal

Cadena (String)

En una secuencia de caracteres que se trata como


un solo dato.

Enteros

Reales

Tipo
Integer (Entero)
Word

(Palabra)

ShortInt (Entero
corto)
Byte
LongInt (Entero
largo)

Rango de valores
que acepta

Tipo

Rango de valores que


acepta

-32,768 a 32,767

Real

2.9E-39 a 1.7E38

0 a 65535

Single

1.5E-45 a 3.4E38

-128 a 127

Double

5.0E-324 a 1.7E308

0 a 255
-2,147,483,648 a
2,147,483,648

Extended
Comp

1.9E-4851 a 1.1E4932
-9.2E18 a 9.2E18

Cul utilizar depender del problema: qu valores se desea


almacenar.
Los tipos de datos a utilizar dependern del SGBD.
Otros:
Fecha/Hora: para introducir datos en formato fecha u hora

Nulos (NULL)
Un nulo no representa el valor cero ni la cadena vaca.
El nulo implica ausencia de informacin.
Necesidad de valores nulos cuando:
Tuplas con atributos desconocidos en ese momento.
Aadir un nuevo atributo a una tabla ya existente; atributo que en el
momento de introducirse no tendr ningn valor para las tuplas de la
relacin.
Posibilidad de atributos inaplicables a ciertas tuplas, como la editorial
para un artculo.
En claves forneas indican que el registro actual no est
relacionado con ninguna tabla.

Atributo
Un atributo A es el papel que tiene un determinado dominio en una
relacin.
D es el dominio de A y se denota dom(A).
Es muy usual dar mismo nombre al atributo y al dominio.
Si varios atributos de una misma tabla estn definidos sobre el
mismo dominio, hay que darles nombres distintos:
una tabla no puede tener dos atributos con el mismo nombre.
Atributos edad_fsica y edad_mental pueden estar definidos sobre el
mismo dominio edad; atributos precio_compra y precio_venta
pueden estar definidos sobre el mismo dominio precio, enteros de
longitud 5 mayores que 0.

Relacin
Una relacin se compone de una cabecera y un cuerpo.
Cabecera: formada por un conjunto de atributos, cada uno corresponde a un
nico dominio.
No hay dos atributos que se llamen igual.
Cuerpo: formado por un conjunto de tuplas que vara en el tiempo; conjunto de
pares atributo:valor.
Cantidad de atributos: grado
Cantidad de tuplas: cardinalidad.
Cabecera de relacin OFICINA:
{ (Onum:NUM_OFICINA), (Calle:NOM_CALLE), (Area:NOM_AREA), (Poblacin:NOM_POBLACION),
(Telfono:NUM_TEL_FAX), Fax:NUM_TEL_FAX)}.

Una tupla:
{ (Onum:O5), (Calle:Enmedio,8), (Area:Centro), (Poblacin:Castelln), (Telfono:964 201 240), (Fax:964
201 340)}.

Claves
Clave candidata: conjunto no vaco de atributos que identifican
univoca y mnimamente a una tupla. Toda relacin siempre tendr
una.
Clave primaria: clave candidata escogida para identificar a las
tuplas de una relacin.
Clave alternativa: claves candidatas no elegidas como primarias.
Clave ajena o fornea de una relacin R2: conjunto no vaco de
atributos cuyos valores han de coincidir con los valores de la clave
primaria de otra relacin R1. Clave fornea y clave primaria han de
estar definidas sobre los mismos dominios.
Ningn componente de la clave primaria puede en algn momento
no tener valor (aceptar nulos).

Transformacin MER-Relacional
Se transformar el esquema conceptual (MER) a un
esquema relacional.
Este esquema sigue siendo independiente de SGBD.
El paso del esquema MER al relacional se basa en los
siguientes principios:

1. Todo tipo de entidad se convierte en relacin.


Cada entidad del MER da lugar a una nueva relacin.
Identificador principal: atributo(s) que forman la clave primaria
de la nueva relacin. Se subrayan.
Cada atributo de una entidad se transforma en un atributo de esta
relacin. Tomar en cuenta:
Atributos obligatorios: atributos que deben contar con un valor
en la tabla, no debe aceptar valores nulos. (restriccin NOT NULL.)
Atributos opcionales: atributos que pueden tomar valores nulos
(no se conoce el valor, etc, NULL)
Identificador alternativo: atributo alternativo en la entidad que
debe ser nico en la relacin (restriccin UNIQUE).
Atributos monovaluados: dan lugar a un atributo de la relacin.

id _ c lie n t e
n o m b r e _ c lie n t e
c a lle _ c lie n t e
c iu d a d _ c lie n t e

C li e n t e

Cliente (id_cliente, nombre_cliente, calle_cliente,


ciudad_cliente) PK: id_cliente
(PK: primary key->clave primaria)

Atributos multivaluados: dan lugar a una nueva relacin cuya


clave primaria es la concatenacin de la clave primaria de la
entidad en la que est el atributo multivaluado mas el nombre
del atributo multivaluado.
i d _ c li e n t e
n o m b r e _ c li e n t e
d i r e c c i o n _ c li e n t e
t e le f o n o _ c li e n t e

C li e n t e

Cliente (id_cliente, nombre_cliente, direccion_cliente) PK:


id_cliente
Telfonos_cliente (id_cliente, telefono_cliente) PK: id_cliente,
telefono_cliente; FK: id_cliente referencia a Cliente.
FK: foreign key->clave foranea)

Atributos compuestos: se pueden transformar segn las


siguientes alternativas:
Eliminar el atributo compuesto considerando todos sus
componentes como atributos individuales.
c a lle
n u m e ro
c iu d a d

i d _ c li e n t e
n o m b r e _ c li e n t e
d i r e c c i o n _ c li e n t e
t e le f o n o _ c li e n t e

C li e n t e

Cliente (id_cliente, nombre_cliente, calle, numero, ciudad,


telefono_cliente) PK: id_cliente
Eliminar los componentes individuales y considerar el atributo
compuesto entero como un slo atributo.
Cliente (id_cliente, nombre_cliente, direccion_cliente,
telefono_cliente) PK: id_cliente

Atributos derivados: atributos que se obtienen como


resultado de un calculo sobre otros atributos.
No existe para los atributos derivados una representacin
directa y concreta en el modelo relacional y sus SGBD.
En este caso, los atributos se tratan de la forma usual.
Se calcula el valor del atributo derivado cada vez que se
inserten o borren las ocurrencias de los atributos que
intervienen en el clculo de este.
Para esto se implementan los procedimientos del caso y se
aaden las restricciones correspondientes.

Atributos de Interrelaciones
Si la interrelacin se transforma en una relacin, todos sus
atributos pasan a ser columnas de la relacin.
En caso de que la relacin se transforme mediante
propagacin de clave, sus atributos migran junto con la
clave a la relacin que corresponda

Dependencia por identidad.


Una interrelacin 1:N de dependencia en identificacin da lugar a una
propagacin de clave desde la entidad fuerte a la entidad dbil. La
entidad dbil requiere de la clave de la entidad fuerte para su
identificacin. La clave queda formada por la concatenacin de la
clave fornea y la clave de la entidad dbil.

C d ig o
N o m b re
N r _ h o ja s
E d it o r ia l

( 1 ,1 )

(1 , N )

Nm ero
E st a d o
P o s ic i n

L ib r o
E jeje m p la r
ti e n e
Libro (codigo, nombre,
nr_hojas, editorial)
PK: codigo
Ejemplar (codigo, numero, estado, posicin) PK: codigo, numero FK:
codigo referencia a Libro.

2.Todo tipo de interrelacin N:M se transforma


en relacin.
Las interrelaciones N:M dan lugar a una nueva relacin
cuya clave sern las claves primarias de las entidades que
enlaza la interrelacin.
Los atributos que forman la clave primaria de esta nueva
relacin son claves forneas respecto a las tablas en
donde son claves primarias.

id _ c lie n t e
n o m b r e _ c lie n t e
c a lle _ c lie n t e
c iu d a d _ c lie n t e

C li e n te

(1 ,n )

t ie n e

(1 ,n )

C u e n ta

Cliente (id_cliente, nombre_cliente, calle_cliente,


ciudad_cliente) PK: id_cliente
Cuenta (numero_cuenta, saldo) PK: numero_cuenta
Tiene (id_cliente, numero_cuenta) PK. Id_cliente,
numero_cuenta FK: id_cliente referencia a Cliente,
numero_cuenta referencia a Cuenta.

n m e r o _ c u e n ta
s a ld o

p r iv ile g io
id _ c lie n t e
n o m b r e _ c lie n t e
c a lle _ c lie n t e
c iu d a d _ c lie n t e

C li e n te

(1 ,n )

t ie n e

(1 ,n )

C u e n ta

n m e ro _ c u e n ta
s a ld o

Cliente (id_cliente, nombre_cliente, calle_cliente,


ciudad_cliente) PK: id_cliente
Cuenta (numero_cuenta, saldo) PK: numero_cuenta
Tiene (id_cliente, numero_cuenta, privilegio) PK. Id_cliente,
numero_cuenta FK: id_cliente referencia a Cliente,
numero_cuenta referencia a Cuenta.

3. Todo tipo de interrelacin 1:N se traduce en el


fenmeno de propagacin de la clave.
Se propaga la clave primaria de la entidad que se encuentra en el
lado 1 a la entidad que se encuentra en el lado N.

n o m b r e _ c iu d a d
h a b i ta n te s _ c i u d a d

C iu d a d

(1 ,n )

e s ta

(1 ,1 )

R e g io n

n u m e r o _ r e g io n
n o m b r e _ r e g io n
h a b i ta n t e s _ r e g i o n

Region (numero_region, nombre_region, habitantes_region) PK:


numero_region
Ciudad (nombre_ciudad, habitantes_ciudad, numero_region) PK:
nombre_ciudad, FK: numero_region referencia a Region.

fe c h a
c d ig o
n o m b re
d ir e c c io n

P ro ve e d o r

(1 ,1 )

s u m in is t r a

(1 ,n )

P r o d u c to

c d ig o
n o m b re
p r e c io _ u n it a r io

Proveedor (codigo, nombre, direccion) PK: codigo


Vendedor (codigo, nombre, precio_unitario, codigo_prov,
fecha) PK: codigo, FK: codigo_prov referencia a Proveedor

Un aspecto importante en estas interrelaciones tiene que


ver con las cardinalidades mnimas.
Si la cardinalidad mnima de la entidad que se propaga es
1, significa que no pueden admitirse valores nulos en la
clave fornea (clave propagada).
En cambio, si es 0, si se admiten valores nulos.

Si en la parte de cardinalidad minima hay una participacin parcial:


ta s a _ d e s c u e n to
n u m e r o _ p e d id o
fe c h a

n o m b re _ v e n d e d o r

P e d id o

(1 ,n )

s u m in is t r a

(0 ,1 )

Vendedor

fo n o

Vendedor (nombre_vendedor, fono_vendedor) PK:


nombre_vendedor
Pedido (numero_pedido, fecha, tasa_descuento, nombre_vendedor)
PK: numero_pedido, FK: nombre_vendedor referencia a Vendedor
En este caso puede ocurrir que tasa_descuento y nombre_vendedor
tomen valores nulos.

Si el nmero relativo de esos pedidos es grande, y no se puede


admitir valores nulos, una mejor alternativa:
ta s a _ d e s c u e n to
n u m e r o _ p e d id o
fe c h a

n o m b re _ v e n d e d o r

P e d id o

(1 ,n )

s u m in is t r a

( 0 ,1 )

Vendedor

fo n o

Se crea una nueva relacin para la interrelacin cuyo tratamiento


seria igual que el de las interrelaciones N:M con la salvedad de que la
clave primaria de la nueva relacin constara de la clave primaria de la
entidad que se encuentra en el lado N de la interrelacin.
Vendedor (nombre_vendedor, fono_vendedor) PK: nombre_vendedor
Pedido (numero_pedido, fecha) PK: numero_pedido
Pedido_Ventas (numero_pedido, nombre_vendedor, tasa_descuento)
PK: numero_pedido, FK: numero_pedido referencia a Pedido,
nombre_vendedor referencia a Vendedor

Si en la parte de cardinalidad maxima hay una participacin parcial se


necesitan tres tablas:

p a te n te _ a u to
m a r c a _ a u to

A u to

(0 ,n )

e s_ p ro p

(1 ,1 )

P e rso n a

C I_ p e rs o n a
n o m b re _ p e rso n a
d ir e c c io n _ p e r s o n a

Auto (patente_auto, marca_auto) PK: patente_auto


Persona (CI_persona, nombre_persona, direccion_persona) PK CI_persona
Auto_persona (CI_persona, patente_auto) PK: patente_auto, CI_persona,
FK: patente_auto referencia a Auto, CI_persona referencia a Persona
Se podra propagar tambin la clave de la entidad que tiene la cardinalidad
minima a la que tiene mximo N:
Auto (patente_auto, marca_auto, CI_persona) PK: patente_auto, FK
CI_persona referencia a Persona
Persona (CI_persona, nombre_persona, direccion_persona) PK CI_persona

Interrelaciones 1:1
Si la relacin es del tipo 1:1 y es obligatorio (total), cada entidad
se transforma en una tabla con clave principal el identificador de
la entidad correspondiente y cada tabla tendr como clave ajena
el identificador de la otra tabla con la cual est relacionada.

c o d ig o _ e m p r e s a
d ir e c c io n _ e m p r e s a

C I_ d ir e c t o r

E m p re sa

(1 ,1 )

t ie n e

(1 ,1 )

D i r e c to r

n o m b re

Empresa (codigo_empresa, direccion_empresa, CI_director) PK


codigo_empresa, FK CI_director referencia a Director
Director (CI_director, nombre, codigo_empresa) PK CI_director,
FK codigo_empresa referencia a Empresa

Una de las entidades tiene cardinalidad (0,1) y la otra (1,1),


conviene propagar la clave de la entidad con cardinalidad
(1,1) a la tabla resultante de la entidad de cardinalidad (0,1).
Esta clave fornea no debe aceptar valores nulos.
c o d i g o _ e m p le a d o
n o m b r e _ e m p le a d o

c o d ig o _ d e p t o

E m p le a d o

(1 ,1 )

re sp o n sa b l
e

(0 ,1 )

D e p to

n o m b r e _ d e p to

Empleado (codigo_empleado, nombre_empleado) PK:


codigo_empleado
Depto (codigo_depto, nombre_depto, codigo_empleado) PK:
codigo_depto, FK: codigo_empleado referencia a Empleado.

Si las entidades que se asocian tienen ambas cardinalidades (0,1)


se generan tres tablas, una para cada entidad y otra para la
relacin que deber contener como atributos las claves primarias
de las entidades que participan en la relacin.
Se evitan los valores nulos que aparecerian en caso de propagar
una de las claves primarias.
fe c h a
C I_ p e r s o n a
n o m b re _ p e rs o n a

( 0 ,1 )

( 0 ,1 )

c o d ig o _ a n im a l
n o m b r e _ a n im a l

posee
P e rso n a
A n im a l
Persona (codigo_persona,
nombre_persona)
PK: codigo_persona
Animal (codigo_animal, nombre_animal) PK: codigo_animal
Persona_Animal (codigo_persona, codigo_animal, fecha) PK:
codigo_persona, codigo_animal FK: codigo_persona referencia a
Persona, codigo_animal referencia a Animal.

Relaciones reflexivas
Para transformarlas se debe suponer que se trata de una relacin
binaria con la particularidad que las dos entidades son iguales y aplicar
las reglas vistas.

a p a d r in a
( 1 ,n )
C I_ p e r s o n a
n o m b re _ p e rs o n a

P e rso n a

(1 ,1 )

Persona (CI_persona, nombre_persona, CI_o_persona) PK:


CI_persona FK: CI_o_persona referencia a Persona
La clave fornea no puede aceptar nulos (todas las personas tienen un
padrino).
Todas las personas de la base son padrinos de al menos una persona.

El siguiente caso es igual que el anterior, con la


diferencia que la clave fornea si puede aceptar nulos
(una persona puede o no tener padrino).

a p a d r in a
(1 ,n )
C I_ p e r s o n a
n o m b re _ p e rs o n a

P e rso n a

(0 ,1 )

Los mismos esquemas se darn para los siguientes


casos. Aqu la diferencia es que una persona de la base
puede no aparecer como padrino de alguien (0,n). (No
todas las personas de la base son padrinos)

a p a d r in a
(0 ,n )
C I_ p e r s o n a
n o m b re _ p e rs o n a

P e rso n a

(1 ,1 )

En el siguiente caso una persona de la base puede no


aparecer como padrino y una persona puede no tener
padrino, por lo que debe aceptar valor nulo en la clave
fornea.
a p a d r in a
(0 ,n )
C I_ p e r s o n a
n o m b re _ p e rso n a

P e rso n a

( 0 ,1 )

Casos N:M
Se tendria una tabla por entidad persona, y una tabla
representando la relacin apadrina:
Persona (CI_persona, nombre_persona) PK: CI_persona
Apadrina (CI_persona, CI_o_persona) PK: CI_persona,
CI_o_persona FK: CI:persona, CI_o_persona referencia a
Persona

Generalizaciones
Las generalizaciones no son objetos que puedan
representarse directamente en el modelo relacional.
Ante una entidad y sus subtipos caben varias soluciones
de transformacin, con la consiguiente prdida de
semntica dependiendo de la estrategia elegida, las cuales
son 3:

Integrar la jerarqua de generalizacin en una sola entidad


uniendo los atributos de las subentidades y aadiendo
estos atributos a los de la superentidad.
Se aade un atributo discriminativo para indicar el caso al
cual pertenece la entidad en consideracin.
Es aplicable a todos los casos, con todas las coberturas.
El problema es tener que manejar en algunos casos
demasiados valores nulos.
Las operaciones que slo actuaban sobre una subentidad
tendrn que buscar ahora los casos correspondientes
dentro del conjunto completo de casos.

m a t r i c u la _ e s t u d i a n t e
n o m b r e _ e s tu d ia n te

c a rre ra

t i t u lo _ t e s i s

Estudiante (matricula_estudiante, nombre_estudiante,


carrera, titulo_tesis, tipo) PK: matricula_estudiante

Eliminar la superentidad reteniendo las subentidades.


Aqu los atributos heredados deben propagarse entre las
subentidades.
No es prctica para generalizaciones superpuestas o
parciales; slo lo es para jerarquas totales y exclusivas.
Si el nmero de atributos de la superentidad (comunes a
toda las subentidades) es excesivo, su duplicacin en el
esquema de cada subentidad no se justifica.

r u t _ e m p le a d o
n o m b r e _ e m p le a d o

e s p e c i a li d a d

n r _ s u p e r v is a d o s

Ingeniero (rut_empleado, nombre_empleado, especialidad) PK:


rut_empleado
Gerente (rut_empleado, nombre_empleado, nr_supervisados) PK:
rut_empleado

Retener todas las entidades y establecer explcitamente las


interrelaciones entre la superentidad y las subentidades.
Esta alternativa se puede considerar como la ms general
de las tres, ya que siempre es posible.
Las desventajas de este enfoque son que el esquema
resultante es bastante complejo y hay una redundancia
inherente al representar cada eslabn ES-UN en la
jerarqua original a travs de una relacin explcita.
Las ventajas, por otra parte, son que modela todos los
casos, lo que la hace ms flexible ante cambios de
requerimientos
Es conveniente si la mayora de las operaciones son
estrictamente locales respecto a la superentidad o a una de
las subentidades.

n r _ p r o y e c to
n o m b r e _ p r o y e c to

n r _ m o d u lo s

c o n tr a tis ta p r in c ip a l

Proyecto (nr_proyecto, nombre_proyecto) PK: nr_proyecto


Desarrollo_Sw (nr_proyecto, nr_mdulos) PK:
nr_proyecto FK: nr_proyecto referencia a Proyecto
Subcontrato (nr_proyecto, contratista_principal) PK:
nr_proyecto FK: nr_proyecto referencia a Proyecto

You might also like