Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bases de Datos
Tema 9 Diseo de bases de datos relacionales
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Indice
1 INTRODUCCIN ......................................................................................... 3
1.1 1.2 DISEO DE BD RELACIONALES .................................................................................... 3 ANOMALAS DE MANIPULACIN ................................................................................... 3
DEPENDENCIAS FUNCIONALES............................................................ 4
2.1 CONCEPTO DE DEPENDENCIA FUNCIONAL .................................................................. 4 2.1.1 Descriptores equivalentes:........................................................................................................... 5 2.1.2 Dependencia funcional plena o completa................................................................................. 5 2.1.3 Dependencia funcional elemental .............................................................................................. 5 2.1.4 Dependencia funcional trivial (Reflexividad de rmstrong).................................................. 5 2.1.5 Dependencia funcional transitiva............................................................................................... 5 2.2 GRAFO DE DEPENDENCIAS FUNCIONALES (GDF)........................................................ 6 2.3 AXIOMAS DE RMSTRONG ............................................................................................ 6 2.3.1 Reflexividad ................................................................................................................................... 6 2.3.2 Aumentatividad............................................................................................................................. 6 2.3.3 Transitividad.................................................................................................................................. 7 2.3.4 Proyectividad o descomposicin................................................................................................ 7 2.3.5 Unin o aditividad........................................................................................................................ 7 2.3.6 Pseudotransitividad ...................................................................................................................... 7 2.4 CIERRE DE UN DESCRIPTOR ......................................................................................... 7 2.5 CIERRE DE UN CONJUNTO DE DEPENDENCIAS ............................................................ 7 2.6 COBERTURA MNIMA .................................................................................................... 8
Pg. 2 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
1 Introduccin
1.1 Diseo de BD relacionales
Al disear intuitivamente1 una base de datos relacional se obtiene un esquema; diferentes observadores generarn, sin duda, esquemas alternativos; el problema que se presenta es evaluar la calidad o bondad de dicho esquema. La calidad de un esquema estar determinada por el comportamiento o reaccin a determinadas operaciones de manipulacin, de modo que un buen esquema presentar buen comportamiento mientras que otros ofrecern ciertos inconvenientes o anomalas de manipulacin (actualizacin, insercin y borrado) al escribir transacciones contra dicho esquema.
Suministros
S# S1 S1 S2 S3
PK ( S #) Suminitradores( S # : Dcodigo, Noms : Dnombre, Ciudad : Dciudad ) 2 Suministra_Piezas ( S # : Dcodigo, P # : Dcodigo, Cant : Dcant , Peso : Dpeso, Color : Dcolor ) PK ( S #, P #) FK 1( S #) / Suminitradores
Suministradores S# S1 S2 S3 Noms Jones Clark Adams Ciudad Paris Londres Sevilla Suministra_Piezas S# S1 S1 S2 S3 P# P1 P2 P1 P1 Cant 50 10 5 15 Peso 200 400 200 200 Color Gris Azul Gris Gris
Pg. 3 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
En primer lugar, en el esquema 2 algunos datos son redundantes: los datos de piezas (Color y Peso) aparecen tantas veces como dicha pieza es suministrada. Esta redundancia conlleva unos riesgos de incoherencia. Al cambiar el Peso de una pieza de 200 a 220 hay que actualizar en todas las tuplas en las que aparece. Se producen por tanto anomalas de actualizacin (debe actualizarse slo en una tupla y evitar que haya ms de una tupla con diferente peso de la misma pieza). No se pueden guardar datos de piezas (P#, Peso y Color) hasta que no sean suministradas (S# es parte de la clave primaria y por tanto no puede tener valor null); presenta anomalas de insercin. Por ltimo, surgen las anomalas de eliminacin o borrado. Cuando se elimina una tupla de Suministra_Pieza y la pieza slo aparece en dicha tupla (ej. P#=P2) se pierde la informacin de la pieza. El esquema 2 presenta estos problemas inconvenientes debido a que no sigue un principio intuitivo bsico: conceptos o hechos independientes deben recogerse en (relaciones) distintas o especficas. El esquema relacional 1 no presenta las anomalas anteriores. Puede afirmarse que este esquema es mejor que el anterior. La teora de dependencias se ha desarrollado para medir formalmente la calidad de un diseo y proponer medidas que resuelvan las anomalas de manipulacin (formas normales). Incluye el concepto de dependencia funcional y sus propiedades, que es la principal herramienta para medir la idoneidad de un esquema relacional.
2 Dependencias funcionales
2.1 Concepto de dependencia funcional
Las dependencias funcionales son reglas independientes del tiempo que verifican los atributos de un contexto determinado. Sea R ({ Ai : Di}) t,s R X, Y tuplas de R subconjuntos de atributos Y R ({ Ai : Di}) X R ({ Ai : Di})
Se define una dependencia funcional (DF) X Y (X determina funcionalmente a Y o Y depende funcionalmente de X) como una restriccin sobre las tuplas de R que garantiza que dado un valor nico de X, el valor de los atributos que componen Y ha de ser tambin nico. X Y |=
( t.X = s.X
t.Y = s.Y )
Ej.: Dada la DF: S#Ciudad induce que no pueden existir dos tuplas con el mismo cdigo de proveedor y distinta Ciudad. Pg. 4 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Un esquema de relacin se ve enriquecido por la semntica asociada a las dependencias funcionales inherentes al contexto de los atributos:
Ej.: 2.1.2
Dada la DF:
S# Dni
( A X ) ( X X / X A ) /
Una dependencia funcional es plena o completa cuando A depende de X pero no de ningn subconjunto propio de X. X es un descriptor determinante. Atributos extraos son los atributos del descriptor de una DF que sobran en la dependencia. Ej.: S#Ciudad (S#,Noms)Ciudad 2.1.3 Es una DF plena o completa. No es una DF plena o completa ya que cdigo de proveedor determina Ciudad. Noms es un atributo extrao
Si una dependencia funcional plena tiene como descriptor determinado un atributo simple, la dependencia es elemental. Ej.: 2.1.4 Ej.: S# Ciudad es una DF elemental ya que Ciudad es un atributo simple. Dependencia funcional trivial (Reflexividad de rmstrong) YX S# S# (S#,Ciudad)Ciudad 2.1.5 Dependencia funcional transitiva
XY XZ YZ YX
Ej.:
S#Ciudad Pas
Pg. 5 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
s# Cant p#
(X Y es una DF trivial)
2.3.2
Aumentatividad
Si
{X
Y Z W} |= XW YZ
(P#, S#, Ciudad ) (Color, Ciudad)
Pg. 6 de 22
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Si
{X
Y Y Z} |= X Z
S# Pas
Axiomas Derivados
2.3.4 Proyectividad o descomposicin
Si
{X
Y Z Y} |= X Z
Peso (Color, Peso) } P# Peso
2.3.5
Unin o aditividad
Si
{X
X Z } |=
P# Peso }
X YZ
P# (Color, Peso)
{P# Color y
2.3.6
Pseudotransitividad
Si
{X
YW Z} |=
XW Z
(S#, Fecha) Sueldo
{S# Noms y
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
F ser siempre un subconjunto del cierre (F F+ ). Por lo tanto R(A, F) y R(A, F+ ) representan contextos equivalentes de la misma relacin. Para afirmar que una dependencia funcional XY pertenece al cierre de un conjunto de dependencias F+ es necesario calcular el cierre del descriptor en ese conjunto de dependencias: X+ F .
La utilidad del concepto de cierre es asegurar la equivalencia de grafos que representan contextos alternativos de un mismo universo de discurso: Los conjuntos de dependencias F1 y F2 son equivalentes si tienen el mismo cierre: F1+ = F2+ Cada dependencia de F1 est en F2+ y cada dependencia de F2 est en F1+
+ ( X Y ) F2 |= Y X F1
( Z W ) F1
|= W Z+ F2
Todas las dependencias funcionales de F1 se pueden inferir de F2 y las de F2 se pueden inferir de F1. Ej. F1{cod_libro ttulo, ttulo cod_libro, cod_libro editorial, cod_libro idioma } cod_libro idioma {cod_libro} +F2 = cod_libro, ttulo, editorial, idioma {titulo} +F1 = cod_libro, ttulo, editorial, idioma Los grafos de F1 y F2 son equivalentes. ttulo editorial F2{cod_libro ttulo, ttulo cod_libro, ttulo editorial, ttulo idioma } cod_libro idioma editorial ttulo
(F * f )
= (F )
Pg. 8 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Codd propuso tres formas normales, a las que denomin primera (1FN), segunda (2FN)y tercera forma normal (3FN). Posteriormente, Boyce y Codd propusieron un definicin ms estricta de la 3FN que se conoce como forma normal de Boyce-Codd (FNBC). Estas formas normales estn basadas en las dependencias funcionales que existen entre los atributos de una relacin. Otros autores han propuesto formas normales ms avanzadas: cuarta forma normal (4FN) basada en el concepto de dependencia multivaluada y quinta forma normal (5FN) basada en las dependencias de combinacin o de join, as como las dependencias generalizadas. Las dependencias funcionales son las restricciones semnticas que condicionan los esquemas de una base de datos relacional, razn por lo que son las ms estudiadas.
Pg. 9 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Los atributos o propiedades de dos esquemas preservan atributos si no se pierde ninguna propiedad: Dados los esquemas 1{ Ri(Ti, Li )} 2 { Ri '(T ' i, L ' i )} , 2 preserva atributos respecto a 1
sii
T = T
i i i
'
3.1.2
Preservacin de dependencias.
El conjunto de DF de partida debe ser equivalente al conjunto de DF de los esquemas resultantes. Dados los esquemas 1{ Ri(Ti, Li )} 2 { Ri '(T ' i, L ' i )} ,
L
i
'+ i
= L+ . i
i
Es decir: los cierres de los conjuntos de dependencias de los dos contextos son equivalentes.
Pg. 10 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
3.1.3
En general, no puede asegurarse que el join natural de una descomposicin (al aplicar la proyeccin algebrica) de relaciones genere el mismo estado o extensin que la relacin de partida; existen casos donde pueden aparecer tuplas que no figuraban en la extensin inicial; a estas tuplas se les denomina tuplas espreas. Ej. de descomposicin con prdida de dependencias funcionales y con prdida de join (aparecen tuplas espreas).
PIEZAS P# 1 2 3 4 Nomp Rueda Eje Vagn Mquina P_2 s(t) = 2 s(t) = 2 s(t) = 1 s(t) = 1 P# 1 1 2 2 3 4 Nomp Rueda Rueda Eje Eje Vagn Mquina Tipo C C C C T T Tipo C C T T Color Gris Negro Rojo Rojo Tipo C C T Color Gris Negro Rojo
P_1
P# 1 2 3 4
P#
Nomp Tipo
En este caso ( P_16 P_2 ) Piezas y el excedente del join natural son las tuplas espreas.
Pg. 11 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Dados los esquemas 1{ Ri(Ti, Li)} ; 2 { Ri '(T ' i, L ' i)} , se pueden representar las relaciones resultado de hacer el join natural de cada esquema:
R = R16 R 26 Rn 16 Rn = 6 Ri ...6
i =1 n
La descomposicin 2 preserva el join respecto a 1 sii La condicin suficiente para preservar join es: a) Preservacin de propiedades: Ti = T ' i
i =1 i =1 n m
Ri =
i =1
6 R'
i =1
que R R16 R 2 y Card ( R) Card ( R16 R 2) Si se tienen en cuenta las hiptesis de condicin suficiente:
Card ( R ) Nvalores distintos de la clave K de R.
Card ( R16 R 2) =
tR1
s(t ) ,
lmite de tuplas para hacer join son el nmero de tuplas de R2, pero teniendo en cuenta que R1 y R2 son proyecciones independientes, la interseccin de sus esquemas es la clave ajena de R1 respecto a R2, luego para todas las tuplas de R1, el join se har por la clave prima de R2; es decir, para cada valor de la clave ajena en R1 slo habr una tupla en R2. Esto permite afirmar que el factor de selectividad s(t) es constante y s(t)=1 para todas las tuplas de R1. Luego:
tR1
s (t ) =
tR1
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Est en 1FN. Todo atributo no primo es completamente dependiente de las claves candidatas.
Siempre es posible transformar un esquema de relacin que no est en 2FN en esquemas de relacin en 2FN, sin que se produzca prdida de informacin o de dependencias. Ej. R1(S#, Ciudad, Estado, P#, Cant) S# P# Ciudad Cant Estado
Pg. 13 de 22
Bases de Datos La clave candidata de R1 es (S#,P#), ya que: (S#,P#)+= (S#,P#,Ciudad,Cant,Estado) por: (S#,P#)(S#,P#) por reflexividad de rmstrong
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
(S#,P#)Ciudad ya que es cierta S#Ciudad y Aumentatividad de rmstrong (S#,P#)Estado porque S#Estado por transititividad y tambin puede emplearse aumentatividad de rmstrong Utilizando el axioma de unin: (S#,P#)+ (S#,P#,Ciudad,Cant,Estado), luego slo puede haber una tupla definida la pareja (S#,P#). De hecho, puede redefinirse una clave candidata K para R con las condiciones: Unicidad: KR Minimalidad: K ' K ; K ' / K ' R / La relacin R1 no est en 2FN ya que el atributo no primo Ciudad depende de una parte de la clave candidata (el atributo S#). La descomposicin en 2FN sera: R2(S#, Ciudad, Estado) y R3(S#, P#, Cant) R1 S# S1 S1 S1 S1 S2 S2 S3 S# S1 S2 S3 Ciudad Londres Londres Londres Londres Pars Pars Pars Ciudad Londres Pars Pars Estado 20 20 20 20 10 10 10 P# P1 P2 P3 P4 P1 P2 P2 Cant 300 200 400 200 300 400 200 R3 S# S1 S1 S1 S1 S2 S2 S3 P# P1 P2 P3 P4 P1 P2 P2 Cant 300 200 400 200 300 400 200
R2
Estado 20 10 10
Pg. 14 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
3.3.2
K1 K2
X Y
K1
K1 K2 Y
La descomposicin {R1,R2} de R es una descomposicin sin prdidas, luego se garantiza preservacin de propiedades, dependencias y join, evitando adems las anomalas por redundancias asociadas a la 2FN.
Siempre es posible una descomposicin en 3FN que preserve dependencias funcionales. Ej. R2(S#, Ciudad, Estado) S# Ciudad Estado
La clave del esquema es S#. R2 no est en 3FN ya que Estado depende de Ciudad que no es clave candidata. Sin embargo: R21(S#, Ciudad) y R22(Ciudad, Estado) R2 S# S1 S2 S3 S# S1 S2 S3 Ciudad Londres Pars Pars Ciudad Londres Pars Pars Estado 20 10 10 R22 R21 Ciudad Pars Estado 10 Londres 20
Pg. 15 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Este enunciado permite garantizar la ausencia de dependencias transitivas adems de asegurar que la relacin est en 2FN. En efecto:
ya que la clave de la relacin R(K1,K2,X,Y) sera (K1,K2), existiendo la dependencia K1Y y K1 no es superclave de la relacin, lo que es contradictorio con que todos los determinantes sean superclaves. En enunciados antiguos de la tercera forma normal se exiga como hiptesis que la relacin estuviese en 2FN; con este enunciado se asegura el estado en 2FN (si los atributos son atmicos) y 3FN(eliminando dependencias transitivas). 3.4.2 X Descomposicin de relaciones que no estn en 3FN. R1(X, Y) X Y y R2(Y, Z) Y Z Y Z
R(X, Y, Z) se descompone en
La descomposicin {R1,R2} de R es una descomposicin sin prdidas, luego se garantiza preservacin de propiedades, dependencias y join, evitando adems las anomalas por redundancias asociadas a la 3FN.
EJ. R4(S#, Noms, P#, Cntd) S# Noms Las claves son (S#,P#) y (Noms#,P#) Pg. 16 de 22
P#
Cantidad
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
La relacin R4 no est en FNBC ya que el atributo S# depende de Noms que no es clave candidata y Noms depende S# que tampoco es clave candidata. La descomposicin en FNBC sera: R41(S#, Noms) y R42(S#, P#, Cant) R4 S# S1 S1 S1 S2 S2 R41 S# S1 S2 Noms Martin Martin Martin Rubn Rubn Noms Martin Rubn P# P1 P2 P3 P1 P2 Cant 300 200 400 300 400 R42 S# S1 S1 S1 S2 S2 P# P1 P2 P3 P1 P2 Cant 300 200 400 300 400
3.5.2
Para grafos acclicos. Existe una descomposicin en FNBC que preserve join y dependencias. Atributos = {X, Y , Z, A}
= {X Y, XZ A, YZ A }
R(X, Y, Z, A) se descompone en R1(X, Y) y R2(X, Z, A)
Z Y
Pg. 17 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Para grafos cclicos. No es posible encontrar una descomposicin en FNBC que preserve dependencias. Atributos = {X, Y , Z} = {XY Z, Z Y } R(X, Y, Z) Las claves del esquema son XY y XZ, ya que (XY)+=(XZ)+=XYZ Z Se perdera la dependencia XY Z al buscar FNBC
X Y
Siempre es posible encontrar una descomposicin en 3FN que preserve propiedades. Siempre es posible encontrar, al menos una descomposicin en FNBC que preserve join pero no siempre que preserve dependencias. Tipo Julieras Julieras Chablis Chablis Jerez Jerez Regin Pas GDF
Tipo Pas
Ej. VINOS California USA Beaujolais Francia Borgoa Rioja Michigan Tipo Julieras Julieras Morgon Chablis Chablis Jerez Jerez Francia Espaa USA Pas USA Francia Francia Francia USA Espaa USA VINO_2 Regin Pas California USA Beaujolais Francia Borgoa Rioja Michigan Francia Espaa USA
Regin
VINO_1
En este caso, no es posible encontrar una descomposicin en FNBC que preserve dependencias funcionales. En cualquiera de las tres posibles descomposiciones se pierde la dependencia (Tipo,Pas)Regin Pg. 18 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Siempre es posible encontrar una descomposicin, en este caso Vino_3(Tipo, Regin) y Vino_2(Regin, Pas), que conserva join. No conserva dependencias funcionales. VINO_3 Tipo Julieras Pulieras Chablis Chablis Jerez Jerez Regin California Beaujolais Borgoa California Rioja Michigan VINO_3 6 VINO_2 Tipo Julieras Julieras Chablis Chablis Jerez Jerez Regin Pas VINO_2 Regin Pas
California USA Beaujolais Francia Borgoa Rioja Michigan Francia Espaa USA
Morgon Beaujolais
California USA Beaujolais Francia Borgoa Rioja Michigan Francia Espaa USA
Pg. 19 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
{R1, R 2,..Rp} tendr relaciones tales que cualquier tupla de una relacin podr obtenerse mediante una proyeccin de la instancia universal.
Se asume la existencia (aunque artificial) de la relacin e instancia universal. El enfoque de descomposicin parte de la relacin universal y aplica las reglas de descomposicin vistas en cada forma normal. El mayor inconveniente de este mtodo es el clculo de claves, que en casos simples puede ser intuitivo pero cuando se parte de relaciones complejas o de la misma relacin universal s plantea problemas algortmicos. Es decir: Paso 0: Asumiendo la existencia de U(A1 ,A2 , An), calcular las claves {Ku }de U Paso 1. Descomponer relaciones que no estn en primera forma normal. Paso 2. Descomponer relaciones que tengan dependencias incompletas (2FN), recalculando claves de las nuevas relaciones. Paso 3. Descomponer relaciones con dependencias transitivias (3FN).
Pgina 20 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Ejemplo: Dados los atributos: A{Dni, Nombre, Apellidos, Direccin, Poblacin, Cod_postal, Provincia, Pas, Aficin, Tipo_aficin, Grado} y las dependencias funcionales: = { (Direccin, Poblacin) Cod_postal Cod_postal Poblacin Poblacin (Provincia, Pas) Provincia Pas Dni Nombre, Apellidos, Direccin Dni Poblacin, Cod_postal, Provincia, Pas (Nombre, Apellidos) Dni, Cod_postal (Dni, Aficin) Tipo_aficin, Grado Aficin Tipo_aficin }
Nombre Apellidos
Pgina 21 de 22
Bases de Datos
Diseo de BD Relacionales
Sevilla, Abril/2005, V 2005.01.1
Paso 1. Se busca un recubrimiento mnimo *. Se eliminan los arcos redundantes por transitividad: Poblacin Pas Dni Provincia, Poblacin,Pas (Nombre,Apellidos) Cod_Postal y los arcos correspondientes a dependencias que no son completas (atributos extraos): (Aficin,Dni) Tipo_aficin
Nombre Apellidos
Paso 2. Generar P{Pi}: Pi {dfi: di Xi} P1 { Provincia Pas } P2{Poblacin Provincia } (Cod_postal Poblacin) } P3{ ((Direccin, Poblacin) Cod_Postal) P4{ Dni (Nombre, Apellidos), Dni Cod_Postal, Dni Direccin } P5{Aficin Tipo_Aficin } P6{(Dni, Aficin) Grado } Paso 3. Generacin de relaciones {Ri}
Relacin R1 (Provincia, Pas) R2 (Poblacin, Provincia) R3 (Direccin, Poblacin, Cod_Postal)
R4 (Dni, Nombre, Apellidos, Cod_Postal, Direccin) R5 (Aficin, Tipo_Aficin) R6 (Dni, Aficin, Grado)
Pgina 22 de 22