Conversión E-A a Relacional
-
Upload
jorgearevalos2 -
Category
Documents
-
view
38 -
download
0
Transcript of Conversión E-A a Relacional
![Page 1: Conversión E-A a Relacional](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/7.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/8.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/11.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/13.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/14.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/15.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/17.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/18.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/19.jpg)
El modelo relacional
© Pearson Education Limited 1995, 2005
Lic. Jorge Adalberto Arévalos [email protected] @joarevalos
![Page 20: Conversión E-A a Relacional](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/20.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/21.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/22.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/23.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/24.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/25.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/26.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/27.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/28.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/29.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/30.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/31.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/32.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/33.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/34.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/35.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/36.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/37.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/38.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/39.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/40.jpg)
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](https://reader036.fdocuments.mx/reader036/viewer/2022062312/557202524979599169a35557/html5/thumbnails/41.jpg)
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.