conversión e-a a relacional

41
DISEÑO DE BASES DE DATOS Lic. Jorge Adalberto Arévalos [email protected] @joarevalos Diseño de Bases de Datos Facultad Politécnica (2012) 1

Upload: jorgearevalos2

Post on 24-Jul-2015

36 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conversión E-A a Relacional

DISEÑO DE BASES DE DATOS

Lic. Jorge Adalberto Arévalos [email protected] @joarevalos

Diseño de Bases

de Datos

Facultad Politécnica

(2012)

1

Page 2: Conversión E-A a Relacional

CONVENCIONES

• CP o PK = Clave Primaria

• NN = No Nulo

• CA = Clave Alternativa

• CF o FK= Clave Foránea

• Nota: En caso de varias claves (alternativas, foráneas)

compuestas se les coloca un subíndice para diferenciarlas

Diseño de Bases de

Datos

2

Page 3: Conversión E-A a Relacional

Conversión E-A a Relacional Diseño de Bases de

Datos

3

ACTOR # cédula * nombre * apellido o nomArtístico

ACTUACION

* rol O premio

ESTUDIO #Identificador *nombre

PELICULA # código * titulo * año * duración

producida en

lugar de realización de

contratado para

de para

originadora de

Page 4: Conversión E-A a Relacional

Entidad ACTOR

- cédula : CP

- nombre, apellido : No nulos

- nombreArtístico : admite nulos

Entidad ESTUDIO

- identificador: CP

- nombre: No nulos

- No tiene claves foráneas

Diseño de Bases de

Datos

4

Análisis del modelo E/A

Page 5: Conversión E-A a Relacional

Entidad PELICULA

- código : CP

- título, año, duración : No nulos

- “aparece” un atributo (clave foránea) por ejemplo codEstudio que establece la relación* con ESTUDIO

Entidad ACTUACIÓN

- fecha : No nulos

- rol, premio: acepta nulos

- aparecen dos CF: idActor, idPelícula

Diseño de Bases de

Datos

5

*Relación en el sentido del modelo E/A

Análisis del modelo E/A

CP de la relación ACTUACION

Page 6: Conversión E-A a Relacional

Conversión E/A a Relacional

Obtener datos ejemplo de las tuplas mediante: entrevistas, documentación, conversaciones

Convertir las entidades en relaciones

Nombre de la relación igual al de la entidad en el diagrama E/A (algunos recomiendan plural)

Convertir los atributos en columnas

Atributos obligatorios son No Nulos

Nombres cortos pero significativos (pueden ser los mismos que tienen en el modelo E/A), pueden ser abreviaturas consistentes

Diseño de Bases de

Datos

6

Page 7: Conversión E-A a Relacional

Conversión E/A a Relacional

Convertir los identificadores únicos en claves primarias:

Identificador único con varios atributos => clave primaria compuesta

Diseño de Bases de

Datos

7

Page 8: Conversión E-A a Relacional

Conversión E/A a Relacional

Convertir las asociaciones en claves foráneas:

Asignar un nombre de columna para la CF y rotularlo “CF”.

Relaciones 1 a muchos: La CF se coloca en la entidad a la que “le llega” cardinalidad muchos.

Si la relación es obligatoria (en el lado de la entidad que posee la CF), la CF debe ser NN.

Relaciones 1 a 1: Colocar CF en el lado de la obligatoriedad y debe ser NN.

(Si ambos lados de la relación son obligatorios, la CF se debe colocar en cualquiera de los dos lados)

Diseño de Bases de

Datos

8

Page 9: Conversión E-A a Relacional

Conversión E/A a Relacional

Claves Foráneas (cont.): Relaciones 1 a 1 opcionales en los dos sentidos:

colocar la CF en cualquiera de las dos entidades. La CF admite nulos

Relación Recursiva 1 a muchos: se adiciona una columna CF a la tabla que referencia a la misma entidad. ¿Puede admitir nulos?

Una CF en una relación 1 a 1 debe ser única (clave alternativa) ¿Por qué?

Relaciones muchos a muchos: Siempre se eliminan, descomponiéndolas dando origen a una tercera entidad

Diseño de Bases de

Datos

9

Actor recomienda a

Recomendado por

Page 10: Conversión E-A a Relacional

Conversión E/A a Relacional

Si el identificador único está formado por relaciones con otras entidades, se deben generar las claves foráneas respectivas y éstas harán parte de la clave primaria

Diseño de Bases de

Datos

10

Page 11: Conversión E-A a Relacional

Conversión E/A a Relacional

Supertipos/subtipos:

Diseño de Bases de

Datos

11

Veremos 2 formas de llevarlo al modelo relacional

Page 12: Conversión E-A a Relacional

Conversión E/A a Relacional

1. Diseño de los subtipos en una sola tabla

Crear una tabla para el supertipo.

Crear una columna TIPO para identificar el subtipo.

Crear una columna para cada atributo del supertipo.

Crear una columna para cada atributo de los subtipos.

Crear columnas CF para cada relación del supertipo.

Crear columnas CF para cada relación de los subtipos.

Diseño de Bases de

Datos

12

Page 13: Conversión E-A a Relacional

Conversión E/A a Relacional

• Características del diseño de los subtipos en una sola tabla :

Recomendable cuando los subtipos tienen pocos atributos y pocas asociaciones propias

Consultas frecuentes que involucran datos de diferentes subtipos

La tabla resultante contiene las informaciones de todos los subtipos

El acceso al supertipo es directo

Acceso a los subtipos mediante vistas

Diseño de Bases de

Datos

13

Page 14: Conversión E-A a Relacional

Conversión E/A a Relacional

Requiere siempre la creación de una columna que identifique los subtipos a los que se refiere.

Todos las columnas pertenecientes a los subtipos deben ser opcionales (admitir nulos) ¿Por qué?

¿Esto qué implicaciones tiene? Implica una cláusula check que garantice que si

una fila pertenece a un subtipo dado los atributos pertenecientes a los demás subtipos deberán ser nulos

Diseño de Bases de

Datos

14

Page 15: Conversión E-A a Relacional

Conversión E/A a Relacional

Desventajas de este diseño:

Los requisitos de atributos obligatorios en el modelo E/A de cada subtipo no se pueden hacer cumplir

Implica el manejo de vistas para extraer los subtipos

Diseño de Bases de

Datos

15

Page 16: Conversión E-A a Relacional

Conversión E/A a Relacional

• 2. Diseño de los subtipos en tablas diferentes.

• El diseño se realiza así:

Crear una tabla para el supertipo:

Crear una columna por cada atributo del supertipo

Crear columnas CF para cada asociación del supertipo.

Diseño de Bases de

Datos

16

Page 17: Conversión E-A a Relacional

Conversión E/A a Relacional

• Crear una tabla para cada subtipo

Crear columnas para cada atributo del subtipo

Crear columnas CF para cada relación* del subtipo

Crear una CF única hacia el supertipo en todos los subtipos

*Relación en el sentido del modelo E/A

Diseño de Bases de

Datos

17

Page 18: Conversión E-A a Relacional

Conversión E/A a Relacional

Cada tabla del subtipo contiene instancias sólo del subtipo

La opcionalidad de los atributos del subtipo en el modelo E/A se hace cumplir desde la definición de la BD

Acceso al supertipo que implique atributos de los subtipos implica una reunión (join)

Subtipos excluyentes: Implica garantizar por programación que la CP del supertipo sólo aparezca en uno de sus subtipos

También es posible eliminar la tabla supertipo y agregar todas sus columnas a cada subtipo, pero igualmente exige control por programación, y además se pierde un poco el concepto original de supertipo...

Diseño de Bases de

Datos

18

Page 19: Conversión E-A a Relacional

El modelo relacional

© Pearson Education Limited 1995, 2005

Lic. Jorge Adalberto Arévalos [email protected] @joarevalos

Page 20: Conversión E-A a Relacional

20

Objetivos

• La terminología del modelo relacional • Cómo se utilizan las tablas para representar

datos. • La conexión entre las relaciones matemáticas y

las relaciones usadas en el modelo relacional. • Las propiedades de las relaciones de bases de

datos. • Cómo identificar claves candidatas, principales,

alternativas y externas. • El significado de la integridad de las entidades y

de la integridad referencial. • El propósito y las ventajas de las vistas en los

sistemas relacionales.

Page 21: Conversión E-A a Relacional

Terminología del modelo relacional

• Una relación es una tabla con columnas y filas. ▫ Sólo se aplica a la estructura lógica de la

base de datos, no a la física.

• Un atributo es una columna nominada de una relación.

• Un dominio es un conjunto de valores permitidos para uno o más atributos.

Page 22: Conversión E-A a Relacional

Terminología del modelo relacional

• Una tupla es una fila de una relación.

• El grado es el número de atributos que contiene.

• La cardinalidad es el número de tuplas que contiene.

• Una base de datos relacional es una colección de relaciones normalizadas en la que cada relación tiene un nombre distintivo.

Page 23: Conversión E-A a Relacional

Instancias de las relaciones Branch y Staff

Atributos R

ela

ció

n

Rela

ció

n

Ca

rdin

alid

ad

Grado Clave

primaria

Clave externa

Page 24: Conversión E-A a Relacional

Ejemplos de dominios para algunos atributos

Atributo Nombre de dominio Significado Definición del dominio

Conjunto de todos los posibles números de sucursal Carácter: tamaño 4, rango D001-B999

Conjunto de los nombres de calles en Gran Bretaña Carácter: tamaño 25

Nombres de ciudad Conjunto de los nombres de ciudad en Gran Bretaña Carácter: tamaño

15 Códigos postales Conjunto de los códigos postales de Gran

Bretaña Carácter: tamaño 8

Sexo El sexo de la persona

Fechas de nacimiento

Nombres de calle

Números de sucursal

Salarios

Posibles fechas de nacimiento de un

empleado

Posibles salarios de un empleado

Carácter: tamaño 1, valor M o F.

Fecha, rango desde el 1-Enero-20,

formato dd-mmm-yy

Monetario: 7 dígitos, rango

6000,00-40000,00

Page 25: Conversión E-A a Relacional

Terminología alternativa del modelo relacional

Términos formales Alternativa 1 Alternativa 2

Relación

Tupla

Atributo

Tabla

Fila

Columna

Archivo

Registro

Campo

Page 26: Conversión E-A a Relacional

Definición matemática de relación

• Tenemos dos conjuntos, D1 y D2, donde D1 = {2, 4} y D2 = {1, 3, 5}.

• El producto cartesiano, D1 ´ D2, es el conjunto de todas las parejas ordenadas, tales que el primer elemento de la pareja es un miembro de D1 y el segundo elemento es miembro de D2.

D1 ´ D2 = {(2, 1), (2, 3), (2, 5), (4, 1), (4, 3),

(4, 5)}

• Una forma alternativa consiste en hallar todas las

combinaciones de elementos que pueden formarse tomando el primero de D1 y el segundo de D2.

Page 27: Conversión E-A a Relacional

Definición matemática de relación

• Cualquier subconjunto del producto cartesiano será una relación. Ej.

R = {(2, 1), (4, 1)}

• Podemos especificar qué parejas ordenadas formarán una relación indicando alguna condición de selección. Ej. ▫ El segundo elemento es 1:

R = {(x, y) | x ÎD1, y ÎD2, y y = 1}

▫ El primer elemento siempre es igual a dos veces al segundo:

S = {(x, y) | x ÎD1, y ÎD2, y x = 2y}

Page 28: Conversión E-A a Relacional

28

Relaciones en una base de datos

• Esquema de relación

▫ Una relación denominada definida por un conjunto de parejas de atributos y nombres de dominio.

• Esquema de la base de datos relacional

▫ Un conjunto de esquemas de relación, cada uno con un nombre distintivo.

© Pearson Education Limited 1995, 2005

Page 29: Conversión E-A a Relacional

Propiedades de las relaciones

• La relación tiene un nombre distinto de los demás nombres de relación del esquema relacional.

• Cada celda de la relación contiene exactamente un valor atómico (único).

• Cada atributo tiene un nombre distintivo.

• Los valores de un atributo pertenecen todos al mismo dominio.

Page 30: Conversión E-A a Relacional

Propiedades de las relaciones

• Cada tupla es diferente; no hay tuplas duplicadas.

• El orden de los atributos no tiene importancia.

• El orden de las tuplas no tiene importancia, teóricamente.

Page 31: Conversión E-A a Relacional

Claves relacionales

• Superclave ▫ Un atributo o conjunto de atributos, que

identifica de forma unívoca cada tupla dentro de una relación.

• Clave candidata ▫ Una superclave tal que ningún subconjunto

propio de la misma es una superclave de la relación.

▫ En cada tupla de R, los valores de K identifican unívocamente a la tupla.

Page 32: Conversión E-A a Relacional

Claves relacionales

• Clave principal ▫ La clave candidata seleccionada para

identificar las tuplas de forma unívoca dentro de la relación.

• Claves alternativas ▫ Las claves candidatas que no han sido

seleccionadas para ser claves principales.

• Clave externa ▫ Un atributo o conjunto de atributos dentro

de una relación que se corresponde con la clave candidata de alguna (posiblemente la misma) relación.

Page 33: Conversión E-A a Relacional

Restricciones de integridad

• Valor nulo

▫ Representa un valor para un atributo que es actualmente desconocido o no es aplicable a esta tupla.

▫ Representa la ausencia de valor y no es lo mismo que un valor numérico cero o una cadena de texto llena de espacios, dado que estos son valores.

Page 34: Conversión E-A a Relacional

Restricciones de integridad

• Integridad de entidad

▫ En una relación base ningún atributo de la clave principal puede ser nulo.

• Integridad referencial

▫ Si hay una clave externa en una relación el valor de la clave externa debe corresponderse con el valor de una clave candidata de alguna tupla en su relación de origen o el valor de la clave externa debe ser completamente nulo.

Page 35: Conversión E-A a Relacional

Restricciones de integridad

• Restricciones generales

▫ Son reglas adicionales especificadas por los usuarios o administradores de la base de datos que definen o restringen algún aspecto de la organización.

Page 36: Conversión E-A a Relacional

Vistas

• Relación base

▫ Una relación nominada correspondiente a una entidad del esquema conceptual y cuyas tuplas están almacenadas físicamente en una base de datos.

• Vista

▫ El resultado dinámico de una o más operaciones relacionales que operan sobre las relaciones base para producir otra relación.

Page 37: Conversión E-A a Relacional

Vistas

• Relaciones virtuales que no tienen por qué existir necesariamente en la base de datos sino que se pueden producir cuando se solicite por parte de un usuario concreto, generándose en el momento de la solicitud.

• Los contenidos de la vista se definen mediante una consulta sobre una o más relaciones base.

• Las vistas son dinámicas, lo que significa que los cambios que se hagan en las relaciones base que afectan a la vista se reflejan inmediatamente en esta.

Page 38: Conversión E-A a Relacional

Propósito de las vistas

• Proporcionan un mecanismo de seguridad potente y flexible al ocultar partes de la base de datos a ojos de ciertos usuarios.

• Permiten a los usuarios acceder a los datos de una forma personalizada para sus necesidades, de tal forma que los mismos datos pueden ser vistos de forma distinta por diferentes usuarios simultáneamente.

• Pueden simplificar las operaciones complejas sobre las relaciones base.

Page 39: Conversión E-A a Relacional

Actualizaciones de las vistas

• Todas las actualizaciones efectuadas en una relación base deben verse inmediatamente reflejadas en todas las vistas que hagan referencia a esa relación base.

• Si se actualiza una vista, la relación base subyacente debe reflejar el cambio.

Page 40: Conversión E-A a Relacional

Actualizaciones de las vistas

• Existen restricciones en los tipos de modificaciones que pueden efectuarse mediante vistas: ▫ Están permitidas las actualizaciones

mediante una vista que esté definida utilizando una consulta simple en la que esté involucrada una única relación base y que contenga la clave principal o una clave candidata de la relación base.

Page 41: Conversión E-A a Relacional

Actualizaciones de las vistas

▫ No se permiten las actualizaciones mediante vistas que impliquen múltiples relaciones base.

▫ No se permiten las actualizaciones mediante vistas que impliquen operaciones de agregación o de agrupación.