08/06/2015curso bases de datos1 diseÑo de bases de datos francisco moreno

25
28/06/22 Curso Bases de Datos 1 DISEÑO DE BASES DE DATOS Francisco Moreno

Upload: juan-luis-munoz-escobar

Post on 02-Feb-2016

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 1

DISEÑO DE BASES DE DATOS

Francisco Moreno

Page 2: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 2

Convenciones

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

NotaNota: Si hay varias claves alternativas o foráneas se les coloca un subíndice numérico para diferenciarlas, ver ejemplos a continuación.

Page 3: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 3

EMPLEADO

#código

*ced

*nombre

*salario

DEPTO

#código

*nombreel lugar de trabajo de

adscrito a

el jefe de

mandado por

Page 4: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 4

Nombre columna

código ced nombre salario jefe dpto

Tipo de clave

CP CA CF1

(EMPLEADO)

CF2

(DEPTO)

Nulos NN NN NN NN NN

Ejemplos 1

2

7

4

71721

43214

71234

43125

Jimmy

Nia

Candy

Brandy

1000

2500

6000

5500

NULL

1

1

7

5

5

6

8

Conversión E-R a RelacionalCuadro de especificaciones:

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

Relación EMPLEADO

Page 5: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 5

MECÁNICO

#cédula

*nombre

*salario

AUTOMÓVIL

#letras

#números

*marca

*modelo

REVISIÓN

#fecha

°valor

recibida por

el ejecutor de el receptor de

sujeto de

ejecutada por

En este ejemplo: - Un automóvil solo puede tener una revisión por día.- La placa de los autos está descompuesta en letras y números.

para

Page 6: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 6

La relación* REVISIÓN tendrá trestres 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 compuestacompuesta, ya que lala clave primaria de la relación* AUTOMÓVIL está conformada por {letras, números}.

* Relación en el sentido del modelo relacional.

Page 7: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 722/04/23 Curso Bases de Datos 7

Nombre columna

fecha valor ccejecuta ccrecibe placaletras

placanumeros

Tipo de clave

CP CF1

(MECÁNICO)

CF2

(MECÁNICO)

CP, CF3

(AUTOMÓVI

L)

CP, CF3

(AUTOMÓVI

L)

Nulos NN NN NN NN

Ejemplos 30/01/99

15/02/99

30/01/99

30/01/99

100

NULL

200

NULL

1

1

NULL

9

8

1

9

8

ABK

ABK

ITA

ITA

234

234

123

231

Conversión E-R a RelacionalCuadro de especificaciones:

Relación REVISIÓN

Page 8: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 8

RX#a#b*c*d

Supóngase que la entidad RX tiene los siguientes identificadores únicos alternativos:

{b, c}{c, d}

Conversión E-R a Relacional

Page 9: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 9

Nombre columna

a b c d

Tipo de clave

CP CP, CA1

CA1,

CA2

CA2

Nulos NN NN NN NN

Ejemplos 10

10

20

20

45

20

30

30

31

22

97

97

Conversión E-R a RelacionalCuadro de especificaciones:

Relación RX

Page 10: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 10

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.

Page 11: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 11

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.

Page 12: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 12

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.

Page 13: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 13

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.

Page 14: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 14

Conversión E-R a Relacional

• Arcos: FACTURA

#código

°fecha

para INDIVIDUO

#código

*nombre

SOCIEDAD

#código

*nombre

*fecha constitución

para

generador de

generador de

Se pueden llevar al modelo relacional mediante arco explícito o arco genérico.

Page 15: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 15

Conversión E-R a RelacionalArco 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.

Page 16: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 16

Conversión E-R a RelacionalArco 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.

Page 17: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 17

EMPLEADO

#código

*nombre

DE PLANTA

*salario

TEMPORAL

*valor hora

EMPRESA

#nit

DEPTO

#código

en

el lugar de trabajo de adscrito a

enSe verán dos formas para llevarlo al modelo relacional.

• Supertipos/subtipos:

Conversión E-R a Relacional

Page 18: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 18

Conversión E-R a Relacional1. 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.

Page 19: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 19

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.

Page 20: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 20

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.

Page 21: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 21

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.

Page 22: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 22

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.

Page 23: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 23

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.

Page 24: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 24

Conversión E-R a Relacional

* Relación en el sentido del modelo 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.

Page 25: 08/06/2015Curso Bases de Datos1 DISEÑO DE BASES DE DATOS Francisco Moreno

22/04/23 Curso Bases de Datos 25

Conversión E-R a Relacional

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

** Relación en el sentido del modelo 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...