You are on page 1of 41

1

DISEO DE BASES DE DATOS


Facultad Politcnica (2012) Diseo de Bases de Datos

Lic. Jorge Adalberto Arvalos joarevalos@gmail.com @joarevalos

CONVENCIONES
CP o PK = Clave Primaria NN = No Nulo CA = Clave Alternativa CF o FK= Clave Fornea

Diseo de Bases de Datos

Nota: En caso de varias claves (alternativas, forneas) compuestas se les coloca un subndice para diferenciarlas

Conversin E-A a Relacional


Diseo de Bases de Datos

PELICULA # cdigo * titulo * ao * duracin


para originadora de

ACTUACION
de

ACTOR
contratado para

* rol
O

premio

# cdula * nombre * apellido o nomArtstico

producida en

ESTUDIO #Identificador *nombre


lugar de realizacin de

Anlisis del modelo E/A

Diseo de Bases de Datos

Entidad ACTOR - cdula : CP - nombre, apellido : No nulos - nombreArtstico : admite nulos Entidad ESTUDIO - identificador: CP - nombre: No nulos - No tiene claves forneas

Anlisis del modelo E/A

Diseo de Bases de Datos

Entidad PELICULA - cdigo : CP - ttulo, ao, duracin : No nulos - aparece un atributo (clave fornea) por ejemplo codEstudio que establece la relacin* con ESTUDIO Entidad ACTUACIN CP de la relacin - fecha : No nulos ACTUACION - rol, premio: acepta nulos - aparecen dos CF: idActor, idPelcula
*Relacin en el sentido del modelo E/A

Conversin E/A a Relacional


Diseo de Bases de Datos

Obtener datos ejemplo de las tuplas mediante: entrevistas, documentacin, conversaciones Convertir las entidades en relaciones Nombre de la relacin 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

Conversin E/A a Relacional


Diseo de Bases de Datos

Convertir los identificadores nicos en claves primarias:

Identificador nico con varios atributos => clave primaria compuesta

Conversin E/A a Relacional


Diseo de Bases de Datos

Convertir las asociaciones en claves forneas: 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 relacin 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 relacin son obligatorios, la CF se debe colocar en cualquiera de los dos lados)

Conversin E/A a Relacional


Diseo de Bases de Datos

Recomendado por

Claves Forneas (cont.):

recomienda a Relaciones 1 a 1 opcionales en los dos sentidos: colocar la CF en cualquiera de las dos entidades. La CF admite nulos Relacin 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 relacin 1 a 1 debe ser nica (clave alternativa) Por qu? Relaciones muchos a muchos: Siempre se eliminan, descomponindolas dando origen a una tercera entidad

Actor

10

Conversin E/A a Relacional


Diseo de Bases de Datos

Si el identificador nico est formado por relaciones con otras entidades, se deben generar las claves forneas respectivas y stas harn parte de la clave primaria

11

Conversin E/A a Relacional


Diseo de Bases de Datos

Supertipos/subtipos:

Veremos 2 formas de llevarlo al modelo relacional

12

Conversin E/A a Relacional


1.

Diseo de Bases de Datos

Diseo 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 relacin del supertipo. Crear columnas CF para cada relacin de los subtipos.

13

Conversin E/A a Relacional


Caractersticas del diseo de los subtipos en una sola tabla :

Diseo de Bases de Datos

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

14

Conversin E/A a Relacional


Diseo de Bases de Datos

Requiere siempre la creacin 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? Implica una clusula check que garantice que si una fila pertenece a un subtipo dado los atributos pertenecientes a los dems subtipos debern ser nulos

Esto qu implicaciones tiene?

15

Conversin E/A a Relacional


Diseo de Bases de Datos

Desventajas de este diseo: 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

16

Conversin E/A a Relacional


Diseo de Bases de Datos

2. Diseo de los subtipos en tablas diferentes.


El diseo se realiza as:

Crear una tabla para el supertipo: Crear una columna por cada atributo del supertipo Crear columnas CF para cada asociacin del supertipo.

17

Conversin E/A a Relacional


Diseo de Bases de Datos

Crear una tabla para cada subtipo Crear columnas para cada atributo del subtipo Crear columnas CF para cada relacin* del subtipo Crear una CF nica hacia el supertipo en todos los subtipos
*Relacin en el sentido del modelo E/A

18

Conversin E/A a Relacional

Diseo de Bases de Datos

Cada tabla del subtipo contiene instancias slo del subtipo La opcionalidad de los atributos del subtipo en el modelo E/A se hace cumplir desde la definicin de la BD Acceso al supertipo que implique atributos de los subtipos implica una reunin (join) Subtipos excluyentes: Implica garantizar por programacin que la CP del supertipo slo aparezca en uno de sus subtipos Tambin es posible eliminar la tabla supertipo y agregar todas sus columnas a cada subtipo, pero igualmente exige control por programacin, y adems se pierde un poco el concepto original de supertipo...

El modelo relacional
Lic. Jorge Adalberto Arvalos joarevalos@gmail.com @joarevalos

Pearson Education Limited 1995, 2005

Objetivos
La terminologa del modelo relacional Cmo se utilizan las tablas para representar datos. La conexin entre las relaciones matemticas y las relaciones usadas en el modelo relacional. Las propiedades de las relaciones de bases de datos. Cmo identificar claves candidatas, principales, alternativas y externas. El significado de la integridad de las entidades y de la integridad referencial. El propsito y las ventajas de las vistas en los sistemas relacionales.

20

Terminologa del modelo relacional

Una relacin es una tabla con columnas y filas.


Slo se aplica a la estructura lgica de la base de datos, no a la fsica.

Un atributo es una columna nominada de una relacin.

Un dominio es un conjunto de valores permitidos para uno o ms atributos.

Terminologa del modelo relacional


Una tupla es una fila de una relacin. El grado es el nmero de atributos que contiene. La cardinalidad es el nmero de tuplas que contiene. Una base de datos relacional es una coleccin de relaciones normalizadas en la que cada relacin tiene un nombre distintivo.

Instancias de las relaciones Branch y Staff Atributos

Relacin

Clave primaria

Grado

Cardinalidad Clave externa

Relacin

Ejemplos de dominios para algunos atributos


Atributo Nombre de dominioSignificado Definicin del dominio

Nmeros de sucursalConjunto de todos los posibles nmeros de sucursal Carcter: tamao 4, rango D001-B999 Nombres de calle Carcter: tamao 25 Conjunto de los nombres de calles en Gran Bretaa

Conjunto de los nombres de ciudad en Gran Bretaa Carcter: tamao Nombres de ciudad 15 Conjunto de los cdigos postales de Gran Cdigos postales Carcter: tamao 8 Bretaa

Sexo

El sexo de la persona empleado

Carcter: tamao 1, valor M o F. Fecha, rango desde el 1-Enero-20, formato dd-mmm-yy Monetario: 7 dgitos, rango 6000,00-40000,00

Fechas de nacimiento Posibles fechas de nacimiento de un

Salarios

Posibles salarios de un empleado

Terminologa alternativa del modelo relacional

Trminos formales Relacin

Alternativa 1 Tabla

Alternativa 2 Archivo

Tupla
Atributo

Fila
Columna

Registro
Campo

Definicin matemtica de relacin


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.

Definicin matemtica de relacin


Cualquier subconjunto del producto cartesiano ser una relacin. Ej. R = {(2, 1), (4, 1)} Podemos especificar qu parejas ordenadas formarn una relacin indicando alguna condicin de seleccin. 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}

Relaciones en una base de datos Esquema de relacin


Una relacin 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 relacin, cada uno con un nombre distintivo.

28

Pearson Education Limited 1995, 2005

Propiedades de las relaciones


La relacin tiene un nombre distinto de los dems nombres de relacin del esquema relacional. Cada celda de la relacin contiene exactamente un valor atmico (nico).
Cada atributo tiene un nombre distintivo. Los valores de un atributo pertenecen todos al mismo dominio.

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, tericamente.

Claves relacionales Superclave


Un atributo o conjunto de atributos, que identifica de forma unvoca cada tupla dentro de una relacin. Una superclave tal que ningn subconjunto propio de la misma es una superclave de la relacin. En cada tupla de R, los valores de K identifican unvocamente a la tupla.

Clave candidata

Claves relacionales Clave principal La clave candidata seleccionada para identificar las tuplas de forma unvoca dentro de la relacin. 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 relacin que se corresponde con la clave candidata de alguna (posiblemente la misma) relacin.

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 numrico cero o una cadena de texto llena de espacios, dado que estos son valores.

Restricciones de integridad
Integridad de entidad En una relacin base ningn atributo de la clave principal puede ser nulo.

Integridad referencial Si hay una clave externa en una relacin el valor de la clave externa debe corresponderse con el valor de una clave candidata de alguna tupla en su relacin de origen o el valor de la clave externa debe ser completamente nulo.

Restricciones de integridad Restricciones generales


Son reglas adicionales especificadas por los usuarios o administradores de la base de datos que definen o restringen algn aspecto de la organizacin.

Vistas
Relacin base Una relacin nominada correspondiente a una entidad del esquema conceptual y cuyas tuplas estn almacenadas fsicamente en una base de datos.
Vista El resultado dinmico de una o ms operaciones relacionales que operan sobre las relaciones base para producir otra relacin.

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, generndose en el momento de la solicitud. Los contenidos de la vista se definen mediante una consulta sobre una o ms relaciones base.

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

Propsito 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 simultneamente. Pueden simplificar las operaciones complejas sobre las relaciones base.

Actualizaciones de las vistas Todas las actualizaciones efectuadas en una relacin base deben verse inmediatamente reflejadas en todas las vistas que hagan referencia a esa relacin base. Si se actualiza una vista, la relacin base subyacente debe reflejar el cambio.

Actualizaciones de las vistas

Existen restricciones en los tipos de modificaciones que pueden efectuarse mediante vistas:
Estn permitidas las actualizaciones mediante una vista que est definida utilizando una consulta simple en la que est involucrada una nica relacin base y que contenga la clave principal o una clave candidata de la relacin base.

Actualizaciones de las vistas No se permiten las actualizaciones mediante vistas que impliquen mltiples relaciones base. No se permiten las actualizaciones mediante vistas que impliquen operaciones de agregacin o de agrupacin.

You might also like