Вы находитесь на странице: 1из 25

DISEÑO DE BASES DE

DATOS

Francisco Moreno

04/11/2018 Curso Bases de Datos 1


Convenciones
CP = Clave Primaria.
NN = No Nulo.
CA = Clave Alternativa.
CF = Clave Foránea.

Nota: Si hay varias claves alternativas o foráneas


se les coloca un subíndice numérico para
diferenciarlas, ver ejemplos a continuación.

04/11/2018 Curso Bases de Datos 2


el jefe mandado
de por
EMPLEADO DEPTO
#código adscrito #código
a
*ced *nombre
*nombre
el lugar de
trabajo de
*salario

04/11/2018 Curso Bases de Datos 3


Conversión E-R a Relacional
Cuadro de especificaciones:
Relación EMPLEADO
Nombre código ced nombre salario jefe dpto
columna
Tipo de CP CA CF1 CF2
clave (EMPLEADO) (DEPTO)

Nulos NN NN NN NN NN

Ejemplos 1 71721 Jimmy 1000 NULL 5


2 43214 Nia 2500 1 5
7 71234 Candy 6000 1 6
4 43125 Brandy 5500 7 8

Aunque se sobreentiende por la regla de integridad de la CP.


04/11/2018 Curso Bases de Datos 4
MECÁNICO En este ejemplo:
#cédula - Un automóvil solo
puede tener una
*nombre revisión por día.
*salario - La placa de los autos
está descompuesta en
el ejecutor de el receptor de letras y números.

ejecutada por recibida por


REVISIÓN
AUTOMÓVIL
#fecha
#letras
°valor
sujeto #números
para de *marca
*modelo
04/11/2018 Curso Bases de Datos
La relación* REVISIÓN tendrá tres claves
foráneas:

• Dos hacia MECÁNICO


• Una hacia AUTOMÓVIL. Además esta clave
foránea:
– hace parte de la clave primaria de REVISIÓN
(esto lo indica la rayita azul en el modelo entidad
relación) junto con la fecha.
– es compuesta, ya que la clave primaria de la
relación* AUTOMÓVIL está conformada por
{letras, números}.
* Relación en el sentido del modelo relacional.
04/11/2018 Curso Bases de Datos 6
Conversión E-R a Relacional
Cuadro de especificaciones:
Relación REVISIÓN

Nombre fecha valor ccejecuta ccrecibe placalet placanu


columna ras meros
Tipo de CP CF1 CF2 CP, CF3 CP, CF3
clave (MECÁNICO) (MECÁNICO) (AUTOMÓ (AUTOMÓ
VIL) VIL)

Nulos NN NN NN NN

Ejemplos 30/01/99 100 1 8 ABK 234


15/02/99 NULL 1 1 ABK 234
30/01/99 200 NULL 9 ITA 123
30/01/99 NULL 9 8 ITA 231

04/11/2018 Curso Bases de Datos 7


Conversión E-R a Relacional

RX Supóngase que la entidad


#a RX tiene los siguientes
#b identificadores únicos
*c alternativos:
*d
{b, c}
{c, d}

04/11/2018 Curso Bases de Datos 8


Conversión E-R a Relacional
Cuadro de especificaciones:
Relación RX

Nombre a b c d
columna
Tipo de CP CP, CA1, CA2
clave CA1 CA2

Nulos NN NN NN NN

Ejemplos 10 20 30 22
10 45 30 97
20 20 31 97

04/11/2018 Curso Bases de Datos 9


Conversión E-R a Relacional
• Obtener datos ejemplo de las tuplas mediante: entrevistas,
documentación, conversaciones con los usuarios.
• Convertir cada entidad en una relación*
– Un cuadro de especificaciones por cada relación* (como los de la
diapositivas 4, 7 y 9).
– Preferiblemente con el mismo nombre que tiene en el modelo E-R.
• Convertir los atributos en columnas:
– Los atributos obligatorios son no nulos (NN).
– Nombres cortos pero significativos (usualmente los mismos que
tienen en el modelo E-R), pueden ser abreviaturas entendibles.

* Relación en el sentido del modelo relacional.

04/11/2018 Curso Bases de Datos 10


Conversión E-R a Relacional
• Convertir los identificadores únicos en
claves primarias:
– Identificador único con varios atributos 
clave primaria compuesta.
– Si el identificador único está conformado por
relaciones* con otras entidades, las claves
foráneas respectivas harán parte de la clave
primaria (como en el ejemplo de REVISIÓN
con AUTOMÓVIL)

* Relación en el sentido del modelo E-R.


04/11/2018 Curso Bases de Datos 11
Conversión E-R a Relacional
• Convertir las relaciones* en claves foráneas:
– Asignar nombre(s) a la(s) columna(s) que conforman la
CF y rotularla(s) “CF” en el cuadro de especificaciones e
indicar la relación** a la que referencia.
– Relaciones* 1 a muchos: La CF se coloca en la relación**
correspondiente a la entidad donde llega la cardinalidad
muchos.
– Si la relación* es obligatoria (en el lado de la entidad que
posee la CF), la CF es NN.
– Relación* recursiva 1 a muchos: se adiciona una columna
CF a la relación** y se referencia hacia sí misma (hacia
su CP). ¿Puede admitir nulos?
* Relación en el sentido del modelo E-R.
** Relación en el sentido del modelo relacional.
04/11/2018 Curso Bases de Datos 12
Conversión E-R a Relacional
• Claves Foráneas (cont.):
– Relaciones* 1 a 1: Colocar la CF en el lado de la
obligatoriedad y es NN.
• Si ambos lados de la relación* son obligatorios u opcionales, la
CF se coloca en cualquiera de las dos relaciones**.
• Si ambos lados de la relación* son opcionales, la CF admite
nulos.
– Una CF que surge de una relación* 1 a 1 es una clave
candidata ¿Por qué?
– Relaciones* muchos a muchos: se transforman y dan
origen a una tercera relación** (intersección).
* Relación en el sentido del modelo E-R.
** Relación en el sentido del modelo relacional.
04/11/2018 Curso Bases de Datos 13
Conversión E-R a Relacional
• Arcos: para generador
INDIVIDUO

FACTURA de #código
#código *nombre

°fecha
SOCIEDAD

para generador #código


de *nombre
Se pueden llevar al *fecha constitución
modelo relacional
mediante arco explícito
o arco genérico.
04/11/2018 Curso Bases de Datos 14
Conversión E-R a Relacional
Arco explícito:
– Una CF por cada relación* participante en el
arco.
– Se debe usar cuando las CFs tienen diferentes
dominios.
– Para manejar la exclusividad se debe recurrir a
una cláusula de verificación (CHECK) para
garantizar que si una CF del arco es no nula las
demás CFs del arco deberán ser nulas.

* Relación en el sentido del modelo E-R.


04/11/2018 Curso Bases de Datos 15
Conversión E-R a Relacional
Arco genérico:
– Una columna representa a todas las relaciones* en el arco.
– Si el arco es obligatorio, la columna debe ser NN, opcional
de lo contrario.
– El dominio debe ser igual en todas las relaciones* del arco.
– La columna solo debe aceptar valores provenientes de las
CPs de las relaciones** correspondientes.
– Una columna adicional para saber cual de las relaciones** se
referencia en la columna.

* Relación en el sentido del modelo E-R.


** Relación en el sentido del modelo relacional.
04/11/2018 Curso Bases de Datos 16
Conversión E-R a Relacional
• Supertipos/ EMPLEADO
#código
subtipos:
*nombre

DE PLANTA TEMPORAL
*salario *valor hora

Se verán dos formas


para llevarlo al modelo en en
relacional. el lugar de
trabajo de adscrito a
DEPTO EMPRESA
#código #nit
04/11/2018 Curso Bases de Datos 17
Conversión E-R a Relacional
1. Diseño de los subtipos en una sola relación**.
Características:
- Recomendable cuando los subtipos tienen pocos atributos y pocas
relaciones* propias.
- La mayoría de las consultas involucran datos de diferentes
subtipos.
- La relación** resultante contiene los datos de todos los subtipos.
- El acceso al supertipo es “directo”.
- El acceso a los subtipos se logra mediante vistas.
* Relación en el sentido del modelo E-R.
** Relación en el sentido del modelo relacional.
04/11/2018 Curso Bases de Datos 18
Conversión E-R a Relacional
• El diseño es así:
• Crear una relación** para el supertipo.
• Crear una columna para cada atributo del supertipo.
• Crear una columna para cada atributo de los subtipos.
• Crear una columna llamada “tipo” para identificar a
cada subtipo.
• Crear columnas CF para cada relación* del supertipo.
• Crear columnas CF para cada relación* de los subtipos.
* Relación en el sentido del modelo E-R.
** Relación en el sentido del modelo relacional.
04/11/2018 Curso Bases de Datos 19
Conversión E-R a Relacional
• Ventaja:
– Una sola relación** para manejar el supertipo y todos sus
subtipos.
• Desventajas:
– Requiere la creación de una columna para
identificar a los subtipos.
– Todos las columnas de los subtipos deben ser
opcionales (admitir nulos) ¿Por qué? ¿Esto que
implicaciones tiene?

** Relación en el sentido del modelo relacional.


04/11/2018 Curso Bases de Datos 20
Conversión E-R a Relacional
Desventajas:
– Implica verificar que si una tupla pertenece a un
subtipo dado, los atributos de los demás subtipos
deberán ser nulos.
– Si un atributo de un subtipo es obligatorio en el
modelo E-R, la columna correspondiente en el
modelo relacional queda opcional.
– Implica el manejo de vistas para “extraer” los
subtipos.

04/11/2018 Curso Bases de Datos 21


Conversión E-R a Relacional
2. Diseño de los subtipos en relaciones** separadas.
El diseño es así:
• Crear una relación** para el supertipo:
- Crear una columna por cada atributo del
supertipo.
- Crear columnas CF para cada relación* del
supertipo.
- Crear una columna llamada “tipo” para identificar a
cada subtipo.
* Relación en el sentido del modelo E-R.
** Relación en el sentido del modelo relacional.
04/11/2018 Curso Bases de Datos 22
Conversión E-R a Relacional
• Crear una relación** para cada subtipo:
– Crear columnas para cada atributo del subtipo.
– Crear columnas CF para cada relación* del
subtipo.
– Crear una CF hacia el supertipo en cada uno de
los subtipos. Esta CF será la CP del subtipo.

* Relación en el sentido del modelo E-R.


** Relación en el sentido del modelo relacional.
04/11/2018 Curso Bases de Datos 23
Conversión E-R a Relacional
Ventajas:
- Cada relación* tiene instancias solo de un subtipo.
- Si un atributo de un subtipo es obligatorio, la columna
correspondiente en el modelo relacional queda
obligatoria.
Desventajas:
- Acceso al supertipo que implique atributos de los
subtipos implica una reunión (join)  Se ve luego.
- Subtipos excluyentes: Implica garantizar que la CP del
supertipo solo aparezca en uno de los subtipos.

* Relación en el sentido del modelo relacional.


04/11/2018 Curso Bases de Datos 24
Conversión E-R a Relacional

Otra Alternativa:
Eliminar la relación** correspondiente al
supertipo y agregar todas sus columnas y
relaciones* a cada relación** correspondiente a
los subtipos, pero igualmente exige controles
adicionales y además se pierde la noción de
supertipo...
* Relación en el sentido del modelo E-R.
** Relación en el sentido del modelo relacional.
04/11/2018 Curso Bases de Datos 25

Вам также может понравиться