You are on page 1of 46

Teora del diseo de bases de datos relacionales

Araceli Mercado

Problemas con el diseo


proveedor(nombre, direccion, producto, precio)

Redundancia. Se repite la direccin del proveedor en cada rengln. Inconsistencia potencial al actualizar. Anomalas de insercin si el proveedor no ofrece ningn producto. Anomalas de borrado. Si borramos todos los productos del proveedor perdemos su direccin.
proveedor(nombre, direccion) provee(nombre, producto, precio)

Dependencia

Dependencia de los datos restriccin en las relaciones posibles en un es!uema. Slo un subcon"unto del producto cartesiano es v#lido$ es decir$ refle"a un estado posible del mundo real. %uando un atributo determina de manera nica a otro$ se dice !ue &a' una dependencia funcional:
direccion depende funcionalmente de nombre

&a' una dependencia funcional de direccion en nombre el nombre determina funcionalmente la direccion

Restricciones

Restricciones en las relaciones

(as !ue dependen del significado de los componentes de las tuplas. Restricciones de integridad.

(a altura de las personas (a edad respecto a los aos traba"ados

(as !ue dependen slo de la igualdad de valores. )o importa el valor$ slo si se repite.

*ependencia funcional

Dependencia funcional

Sean R(A1, ..., An) un es!uema ' X, Y {A1, ..., An} *ecimos !ue X determina funcionalmente a Y si no es posible !ue dos tuplas en R coincidan en X ' no en Y. X Y
Nombre A%M+ A%M+ X Direccion Producto ,ino ,ino Y %o&ete (. %atapulta T/0 Precio ./0.12 .3/.0/ 4)ombre5 4*ireccion5

Notacin
Smbolo A$ B$ $6 Significado Atributos simples %on"untos de atributos$ posiblemente singuletes +s!uema de relacin Relacin. Instancia de R 4A1, ..., An5 XY X 4 A5

!$ "$ 6$ # R r A1...An XY AX o XA

Dependencia funcional

(as llaves determinan funcionalmente a cual!uier subcon"unto de atributos. (a nica forma de determinar las dependencias funcionales es considerando el significado de los datos.

Ejemplo

%onsiderar el es!uema

emp<enombre$ sueldo$ dept= dept<dnombre$ dnum$ "efe= articulos<anombre$ anum$ dept= proveedor<pnombre$ pdireccion= provee<pnombre$ anombre$ precio= cliente<cnombre$ cdireccion$ balance= orden<onum$ fec&a$ cliente= contenido<onum$ anombre$ cantidad=

78u9 dependencias funcionales &a':


(as m#s b#sicas las de las llaves (as triviales A ; A 7Alguna m#s: Tomar en cuenta el significado de las relaciones

Satisfaccin de dependencias

*ecimos !ue una relacin satisface la dependencia funcional X $ Y si para cuales!uiera dos tuplas en la relacin !ue coincidan en X$ tambi9n lo &acen en Y. +n caso contrario$ decimos !ue viola la relacin. Si r es una instancia del es!uema R ' X $ Y se satisface en R$ entonces tambi9n lo &ace en r. Si X $ Y no se satisface en R$ puede o no satisfacerse en r.

Dependencia funcional

Sean % un con"unto de dependencias funcionales para el es!uema R ' X $ Y una dependencia funcional. *ecimos !ue > implica lgicamente a X $ Y si toda instancia r de R !ue satisfaga las dependencias de % tambi9n satisface X $ Y. Se escribe % X $ Y +"emplo

R es!uema con atributos A$ B ' 4 A $ B$ B $ 5 A $

Cerradura de conjuntos de dependencias

(a cerradura de %$ %&$ es el con"unto de dependencias lgicamente implicadas por %$ es decir %& ' 4X $ Y ( % X $ Y5 +"emplo > ? 4A $ B$ B $ 5. +ntonces %& consiste en todas las dependencias X $ Y tales !ue

X contiene a A$ p.e".$ AB ; AB$ AB ; B $ A ; X contiene a B$ pero no a A$ ' Y no contiene a A$ p.e".$ B ; B$ B ; $ B ; X $ Y es alguna de las dependencias ; o; ; $

Llaves

Si R es un es!uema con atributos A1, ..., An ' dependencias funcionales %$ un subcon"unto de A1, ..., An$ X, es llave de R si

X ; A1, ..., An est# en %&. +sto es$ todos los atributos dependen de X o se pueden derivar lgicamente de X$ ' ,ara ningn subcon"unto propio Y de X$ Y ; A1, ..., An est# en %&. +s decir$ X es mnimo.

%omo puede &aber muc&as llaves$ se elige alguna como la principal o primaria.

Llaves

+n el e"emplo anterior slo &a' una llave A$ pues A ; AB est# en %&$ ' para ningn con"unto de atributos X !ue no contenga a A se da !ue @ ; AB . +"emplo R(cd, dir, cp)$ (c,d,)) R slo si en la ciudad c$ &a' un edificio con direccin d ' cdigo postal ).

78u9 relaciones funcionales &a': ,robar si 4cd$ dir5 ' 4dir$ cp5 son llaves.

!iomas de dependencias funcionales


Tambi9n llamados aAiomas de Armstrong. ! el con"unto universal de atributos$ % un con"unto de dependencias funcionales cu'os atributos est#n en !

RefleAividad Si Y X !$ entonces % X ; Y. *ependencias triviales. Siempre se sostienen. Slo dependen de !$ no de %. Aumento Si X ; Y * # ! , entonces X# ; Y#. X ; Y puede estar en % o ser derivada a partir de %. Transitividad Si X ; Y * Y ; B$ entonces X ; B.

!iomas de

rmstrong

(os aAiomas de Armstron son consistentes$ es decir$ si X ; Y se deduce de % usando los aAiomas$ entonces X ; Y es verdadera en cual!uier relacin en la !ue las dependencias de % son verdaderas. (os aAiomas de Armstron son completos$ es decir$ dado un con"unto de dependencias %$ los aAiomas permiten deducir toda dependencia verdadera$ es decir$ %&.

Ejemplo

%onsidere el es!uema AC%* con dependencias funcionales A ; % ' C ; *. ,robar !ue AC es llave.

*erivar AB ; AB D ,robar !ue ni A ni B determinan funcionalmente AB D... esperar a tener m#s &erramientas.

Consecuencias

%& es el con"unto de dependencias !ue se siguen de % aplicando los aAiomas de Armstrong. (a cerradura de @$ X&$ es el con"unto de atributos A tales !ue X ; A dado %$ aplicando los aAiomas de Armstrong$ es decir$ X& ? 4A D % X $ A5

"#s reglas de inferencia

Enin
4X ; Y$ X ; #5 X ; Y#

,seudotransitividad
4X ; Y$ +Y ; #5 +X ; #

*escomposicin
Si X ; Y ' B F$ entonces X ; #

*e unin ' descomposicin se sigue !ue


X ; A1, ..., An si ' slo si X ; Ai para cada i.

C#lculo de cerraduras

%onsiderar % ? 4A ; B1$ 6$ A ; Bn5$ encontrar %& puede ser inviable$ por!ue contiene$ al menos$ a todas las dependencias A ; Y$ con F B1$...$Bn +s m#s f#cil decidir si X ; Y %& obteniendo X&.

C#lculo de cerraduras

Algoritmo para calcular la cerradura de un con"unto de atributos X con respecto a un con"unto de dependencias funcionales %

+ntrada En con"unto finito de atributos !$ En con"unto de dependencias funcionales % en ! ' un subcon"unto X ! Salida X&$ la cerradura de X con respecto a %. M9todo calculamos una secuencia de con"untos de atributos @2$ @.$ 6 con las siguientes reglas

lgoritmo
1. X, ? X -. Xi&1 ? Xi 4 A D Y ; # %$ A # ' Y Xi5

+"emplo
> consta de las siguientes dependencias AB ; D ; ./ ;A B. ; B ;D / ; BD A D;B . ; A/ X ? BD

7X&:

E$uivalencias

Sean % ' / con"untos de dependencias. *ecimos !ue % ' / son e!uivalentes si %& ? /& (a e!uivalencia se prueba por doble contencin

Y ; # % implica Y ; # /&$ usando el algoritmo para calcular Y&.

%ada con"unto de dependencias % es e!uivalente a un con"unto de dependencias / en el !ue no &a' una dependencia cu'o lado derec&o tenga m#s de un atributo.

Conjuntos mnimos

*ecimos !ue un con"unto de dependencias % es mnimo si

Todos los lados derec&os de las dependencias de % son de un slo atributo <ningn atributo en el lado derec&o es redundante= % 0 4X ; A5 no es e!uivalente a %$ X ; A % <ninguna dependencia es redundante= <% 0 4X ; A5=4# ; A5 no es e!uivalente a >$ X ; A % ' # X propio <ningn atributo en el lado iz!uierdo es redundante=

Cubiertas mnimas

Si / es un con"unto de dependencias mnimo ' / es e!uivalente a %$ decimos !ue / es una cubierta mnima para %. (ema Todo con"unto de dependencias tienen una cubierta mnima. +"emplos
A;B B;A B; A; ;A AC ; % %;A C% ; * A%* ; C *;+ *;G C+ ; % %G ; C %G ; * %+ ; A %+ ; G

Descomposicin unin sin p%rdida

Ena descomposicin de un es!uema de relacin R ? 4A1,...,An5 es su reemplazo por una coleccin ? 4R1,...,R15 donde Ri R, i ? 1$...$1 ' R ? R 1 6 R 1 +"emplo

ndip con n ; d$ ni ; p se reemplaz por nd ' nip 7,odramos obtener ndip a partir de nd ' nip:

Descomposicin unin sin p%rdida

Sea R un es!uema$ ? 4R1,...,R15 una descomposicin ' % un con"unto de dependencias. (a descomposicin tiene una unin sin p9rdida <con respecto a %= o es una descomposicin unin sin p9rdida <con respecto a %= si cada r para R !ue satisfaga % r ? R1<r=...R1<r= ? i'1..1Ri<r= ? m<r=
)otacin

23s notaci4n: ri ? Ri<r=

Descomposicin unin sin p%rdida

(ema
Sean R un es!uema de relacin$ ? 4R1,...,R15 una descomposicin ' r una relacin para R. +ntonces
a= Si s ' m(r), entonces r s b= Ri<s= ? ri c= m<s= ? m<r=

Hbservacin si para cada i$ ri es una relacin para Ri ' s ? i'1..1ri $ entonces Ri<s= no necesariamente es ri

Prueba de unin sin p%rdida

Algoritmo

+ntradas En es!uema de relacin R ? A1...An$ un con"unto de dependencias % ' una descomposicin ? 4R1,...,R15 Salida la decisin de si es una descomposicin con unin sin p9rdida M9todo Se constru'e una matriz 21 5 n. (a columna 6 corresponde al atributo A6 ' el rengln i al es!uema Ri a6 si A6 Ri mi6 ? 7 en otro caso
i6

Prueba de unin sin p%rdida

Se IaplicanI las dependencias de > &asta !ue 'a no se puedan &acer m#s cambios en la matriz. IAplicarI una dependencia X ; Y es encontrar los renglones !ue coincidan en X e igualar sus valores en Y. %uando se igualan dos valores$ se igualan en toda la matriz. Si en algn momento del proceso algn rengln es a1...an$ entonces la unin es sin p9rdida. +n caso contrario$ la unin es con p9rdida.

Prueba de unin sin p%rdida para dos subes$uemas

Teorema

Si ? <R1$ R-= es una descomposicin de R ' % un con"unto de dependencias funcionales$ entonces tiene una unin sin p9rdida con respecto a % si ' slo si <R1 R-= ; <R1 J R-= o <R1 R-= ; <R- J R1=

Descomposiciones $ue preservan dependencias

(a pro'eccin de > en un con"unto de atributos B$ #<%=$ es el con"unto de dependencias X ; Y en %& tales !ue XY # Ena descomposicin K preserva a un con"unto de dependencias si la unin de todas las dependencias en Ri<%= implica lgicamente todas las dependencias de %. Ri(%) %

Descomposiciones $ue preservan dependencias

7Se puede tener una descomposicin unin sin p9rdida con respecto a > !ue no preserve a >: +"emplo

R ? 4 , D, 85 % ? 4 D $ 8, 8 $ Sea K ? 4D8, 85 7Tiene una unin sin p9rdida: 7D8<%=: 7 8<%=:

5.

7%mo saber: %alcular %&$ pro'ectarla en cada Ri ' ver si la unin de esas pro'ecciones es e!uivalente a %. LA&$ claroM

Descomposiciones $ue preservan dependencias

7Se puede tener una descomposicin !ue preserve a % ' no sea unin sin p9rdida: +"emplo
R ' AB D 9 ' {AB, D} % ' {AB, D}

Prueba de preservacin de dependencias

Algoritmo

+ntradas Ena descomposicin K ? 4R1,... ,R15 ' un con"unto de dependencias funcionales % Salida la decisin de si preserva a % M9todo Sea / ? Ri(%). ,ara ver si / es e!uivalente a %$ consideramos cada X ; Y en %$ calculamos X& con respecto a / ' vemos si Y X& ,ara obtener X& sin / se considera repetidamente !u9 efecto tiene cerrar X respecto a las pro'ecciones de % en las Ri

Prueba de preservacin de dependencias


B?@ &'ile <B cambie= 4
for i ? .$...$N 4
B ? B <<B O Ri=P O Ri= QQ P respecto a >

5 si F B$ entonces @;F GP. si > GP$ entonces s preserva$ si no$ no.

(ormas normales

>orma normal de Co'ceR%odd <>)C%=

En es!uema R con dependencias % est# en >)C% si siempre !ue una dependencia no trivial X A sea v#lida en R$ X contiene una llave En es!uema R con dependencias % est# en 1>) si siempre !ue una dependencia no trivial X A sea v#lida en R$ X contiene una llave o A es miembro de una llave +s m#s d9bil !ue >)C%

Tercera forma normal <1>)=

(ormas normales

(ema

Sean R una relacin con dependencias funcionales %$ <R1,..., Rn= una descomposicin de R con unin sin p9rdida respecto a % ' <:1, :-= una descomposicin unin sin p9rdida de R1$ con respecto a SR1<%=. +ntonces la descomposicin <:1, :-, R-,..., Rn= tiene una unin sin p9rdida con respecto a %

(ormas normales

(ema
a=%ual!uier es!uema con dos atributos est# en >)C% b=Si R no est# en >)C%$ entonces se pueden encontrar atributos A ' B en R tales !ue <R 0 AB= ; A. ,uede !ue no se d9 <R 0 AB= ; B.

(ema

Si se tiene % en R ' se pro'ecta sobre R1 R para obtener %1$ ' luego se pro'ecta %1 sobre R- R1 para obtener %-$ entonces %- ? SR-<%=

Descomposicin unin sin p%rdida en (N)C

Algoritmo

+ntrada En es!uema de relacin R ' dependencias funcionales % Salida Ena descomposicin de R con unin sin p9rdida tal !ue cada subes!uema est# en >)C% con respecto a la pro'eccin de % en ese es!uema M9todo
.. R; ? R 0.Repetir &asta !ue todas las relaciones est9n en >)C%
i. %alcular las llaves de R;$ calcular SR;<%= ii. Tomar una dependencia X ; A !ue viole >)C% iii.*escomponer R; en XA ' R; 0 A. XA est# en >)C% i<.R; ' R; 0 A

*(N con unin sin p%rdida + preservando dependencias

Algoritmo

+ntradas Ena relacin R ' un con"unto de dependencias funcionales % Salida Ena descomposicin de R$ cada relacin en 1>). (a descomposicin tiene unin sin p9rdida ' preserva dependencias. M9todo
..+ncontrar una base mnima$ /$ para % 0.,ara cada X $ A/$ &acer XA uno de los es!uemas de la descomposicin 1.Si ninguna de las relaciones del paso 0 contiene una llave para R$ agregar otra relacin cu'o es!uema sea una llave para R

Dependencias multivaluadas

*ado un es!uema de relacin R ' X$ Y R$ X multidetermina a Y$ o eAiste una dependencia multivaluada de Y en X <X Y= si t,u tuplas de R tales !ue t=X> ? u=X> < tupla de R tal !ue
1.<=X> ' t=X>$ -.<=Y> ' t=Y>$ ' ?.<=R 0 X 0 Y> ' u=R 0 X 0 Y>

+s decir$ si X est# asociada a cero o varias Y sin !ue Y est9 relacionada con los valores de R0X0Y

!iomas

X$YXY (os aAiomas de Armstrong para dependencias funcionales omplemento

X Y X (! 0 X 0 Y) Si X Y ' " +$ entonces +X "Y 4X Y, Y #5 X (# 0 Y)

Aumento

@ransiti<idad

Si X Y$ # Y ' + $ # con + A Y ' $ entonces X$#

!iomas

Teorema

(os aAiomas anteriores son consistentes ' completos$ es decir$ si D es un con"unto de dependencias funcionales ' multivaluadas$ ' D& es el con"unto de dependencias funcionales ' multivaluadas !ue se siguen logicamente de D$ entonces D& es el con"unto de dependencias !ue se obtienen de D aplicando los aAiomas anteriores.

"#s reglas de inferencia

Trivial

X (! 0 X) 4X Y, X #5 X Y# 4X Y, +Y #5 +X (# 0 +Y) 4X Y, XY #5 X (# 0 Y) Si X Y ' X #$ entonces X (Y A #), X (Y 0 #) * X (# 0 Y)

Enin

,seudotransitividad

,seudotransitividad mezclada

*escomposicin

Cuarta forma normal ,-(N.

En es!uema R con dependencias % est# en 3>) si siempre !ue una dependencia multivaluada no trivial X A sea v#lida en R$ X contiene una llave

Descomposicin en -(N

Algoritmo

+ntrada Ena relacin R, con un con"unto de dependencias funcionales ' multivaluadas %, Salida Ena descomposicin de R, en relaciones !ue est9n en 3>)$ con unin sin p9rdida. M9todo

R ' R, , % ' % , Repetir mientras &a'a violacin a la 3>)

+ncontrar una violacin a la 3>)$ X Y. Si no la &a'$ R es la descomposicin !ue se busca. *escomponer R en XY ' X(R 0 X 0 Y) +ncontrar las dependencias funcionales ' multivaluadas de las nuevas relaciones