Upload
jorgearevalos2
View
39
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
Conversión E/A a Relacional
Supertipos/subtipos:
Diseño de Bases de
Datos
11
Veremos 2 formas de llevarlo al modelo 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
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
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
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
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
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
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
El modelo relacional
© Pearson Education Limited 1995, 2005
Lic. Jorge Adalberto Arévalos [email protected] @joarevalos
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.
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.
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.
Instancias de las relaciones Branch y Staff
Atributos R
ela
ció
n
Rela
ció
n
Ca
rdin
alid
ad
Grado Clave
primaria
Clave externa
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
Terminología alternativa del modelo relacional
Términos formales Alternativa 1 Alternativa 2
Relación
Tupla
Atributo
Tabla
Fila
Columna
Archivo
Registro
Campo
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.
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}
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.