You are on page 1of 48

Departamento de

Ciencias de la Computacin y Tecnologas de Informacin


Universidad del Bo-Bo
Sede Chilln

Bases de Datos I - Unidad 6:


Normalizacin de Esquemas
M Anglica Caro Gutirrez
http://www.face.ubiobio.cl/~mcaro/
mcaro@ubiobio.cl
Ingeniera Civil Informtica UBB 2015

Unidad 6: Normalizacin

Anglica Caro

Introduccin al refinamiento de esquemas


Dependencias Funcionales (DFs)
Razonamiento sobre DFs
Dependencias Multivaluadas, de Proyeccin
y Unin

Ingeniera Civil Informtica UBB 2015

Razonamientos sobre DFs

Implicacin lgica de dfs y axiomas de Armstrong:


Sea el esquema de relacin R(A,DF), es posible deducir
de DF nuevas dfs que sean una consecuencia lgica del
conjunto de partida.
Ejemplo:

podemos deducir lgicamente de DF la siguiente df:

PRESTAMOS1(numSocio, nombreSocio, codLibro, fechaPrestamo)


Donde DF = {numSocio nombreSocio,
nombreSocio numSocio,
(numSocio, codlibro) fechaPrestamo}
(nombreSocio, codlibro) fechaPrestamo

La df anterior se cumple para cualquier extensin r de R y decimos


que es una consecuencia lgica de DF, lo que expresamos como:
DF (nombreSocio, codlibro) fechaPrestamo

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Razonamientos sobre DFs

Implicacin lgica de dfs y axiomas de Armstrong:

Anglica Caro

Definicin: Dado el esquema de relacin R(A,DF),


una df d es una consecuencia lgica de DF
(expresado DF d) si d se cumple para cualquier
instancia r de R.

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Cierre de un conjunto de dfs:

Anglica Caro

El cierre de un conjunto de dfs DF (que se denota DF+) es el


conjunto de todas las dfs que son consecuencia lgica de DF:
DF+ = {X Y | DF X Y }
DF ser siempre un subconjunto del cierre (DF DF+). Por tanto
R(A,DF) y R(A,DF+) definen el mismo esquema de relacin.
El problema es que la definicin del cierre de un conjunto de dfs
no permite el clculo del mismo, siendo necesarios unas reglas
que faciliten la implicacin lgica de dfs (Axiomas de
Armstrong).
Dado un conjunto de dfs DF se dir que d se deriva de DF, lo
que se representa:

DF d

si d se puede obtener por aplicacin sucesiva de dichas reglas a


partir de DF (o de un subconjunto de DF)
Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Axiomas de Armstrong :

Sean los descriptores X, Y,Z,W, los axiomas de


Armstrong establecen:
1. Reflexividad. Si Y X, entonces X Y (dependencia trivial)
2. Aumentatividad. Si X Y y Z W, entonces XW Y Z
3. Transitividad. Si X Y e Y Z, entonces X Z
4. Proyectividad. Si X Y , entonces X Y si Y Y
5. Unin o aditividad. Si X Y y X Z, entonces X Y Z
6. Pseudotransitividad. Si X Y e YW Z, entonces XW Z

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Ejemplos:
1.

Reflexividad.
{codLibro, titulo} codLibro,
ya que codLibro {codLibro, titulo}
2. Aumentatividad.
Si, codLibro titulo
entonces {codLibro, editorial, ao} {titulo, editorial}
ya que editorial {editorial, ao}
3. Transitividad.
Si codLibro editorial y editorial ao
entonces codLibro ao

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Ejemplos:
4.

5.
6.

Anglica Caro

Proyectividad.
Si codLibro {titulo, editorial},
entonces codLibro editorial
ya que editorial {titulo, editorial}
Union.
Si codLibro editorial y codLibro titulo,
entonces codLibro {editorial, titulo}
Pseudotransitividad.
Si codLibro titulo y {titulo, numSocio} fechaPrestamo,
entonces {codLibro, numSocio} fechaPrestamo

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Ejemplos:

Dado el esquema de relacin R(A,B,C,D,E; {A B,C


D,D E}) demostrar que AC ABCDE
1.
2.
3.
4.
5.
6.
7.
8.

Anglica Caro

A B (dada)
AC ABC (aumentatividad de la anterior por AC)
C D (dada)
D E (dada)
C E (transitividad de 3 y 4)
C DE (unin de 3 y 5)
ABC ABCDE (aumentatividad de 6 por ABC)
AC ABCDE (transitividad de 2 y 7)
Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Ejemplos:

Dado el esquema de relacin R(A,B,C,D; {A B,B


D,A C,A BC}) demostrar que AB ABCD
1. A BC (dada)
2. A B (dada)
3. B D (dada)
4. A D (transitividad de 2 y 3)
5. A BCD (adicin 1 y 4)
6. AB ABCD (aumentatividad por AB)

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Correctitud y completitud de los Axiomas de


Armstrong:
Correcto. Si una df X Y se ha derivado por
aplicacin de los axiomas de Armstrong (DF X Y
), dicha df tambin es consecuencia lgica de DF (DF
X Y ) y est contenida en su cierre (X Y
DF+), es decir, toda df derivada de DF, aplicando los
axiomas de Armstrong, se cumple para cualquier
extensin r de R.
Completo. Toda df se puede derivar a partir de DF
mediante una adecuada aplicacin de los axiomas. En
otras palabras, aplicando los axiomas de Armstrong a
DF podemos encontrar todas las dfs asociadas al
esquema de relacin R(A,DF)

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Nueva definicin de DF+ (cierre de DF)


1. DF es un subconjunto de su cierre
DF DF+
2. Toda df X Y derivada de DF mediante la
aplicacin de los axiomas de Armstrong est en
DF+
DF X Y DF+
3. Ninguna otra df est en DF+

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Trabajar con los axiomas de Armstrong para optimizar


(normalizar) esquemas de relacin tiene varios
inconvenientes:

Anglica Caro

Aunque los axiomas de Armstrong facilitan un procedimiento


algortmico para calcular el cierre DF+ de un conjunto de
dependencias, su clculo consume mucho tiempo, ya que,
aunque el nmero inicial de dependencias sea pequeo, el
nmero total de dependencias en el cierre es muy elevado.
Para evitar este problema habr que buscar procedimientos
algortmicos que no estn basados en el cierre de un conjunto de
dependencias.
Por otro lado, no todas las dependencias incluidas en el cierre
son tiles en el proceso de diseo de una base de datos, por lo
cual se introducir el concepto de recubrimiento o cobertura
irredundante tambin llamado minimal.
Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Definicin formal de Superclave

Anglica Caro

Dado el esquema de relacin R(A,DF), se denomina superclave


SK de la relacin R a un subconjunto no vacio de A tal que SK
A es una consecuencia lgica de DF, siendo por lo tanto un
elemento de su cierre, es decir:
SK SK A DF+
Esta condicin se conoce como propiedad de unicidad.
Significa que una superclave determina a todos los atributos de
la relacin.
Ejemplo:Para la relacin ya vista R(A,B,C,D,E;{AB,CD,DE})
el descriptor AC es superclave porque
AC ABCDE (todos los atributos)
Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Definicin formal de Clave candidata

Para el mismo esquema anterior decimos que K es


una clave candidata de R si, adems de ser una
superclave, no existe ningn subconjunto estricto K
de K tal que K implique o determine tambin a A, es
decir:
K K A DF+ K K | K A

Esta condicin se conoce como propiedad de minimalidad.


Significa que una clave candidata tiene como determinante al
conjunto mnimo de atributos necesario.
Ejemplo: Para la misma relacin R(A,B,C,D,E;{AB,CD,DE})
AC es clave candidata porque es superclave (ya demostrado) y

ABCDE
C ABCDE
A

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales
Atributos principales:

Atributos que forman parte de alguna clave


candidata.

Atributos no principales:

Anglica Caro

Atributos de una relacin que no pertenecen a


ninguna de las claves candidatas de la relacin.

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Manipulacin de DFs, en base a algoritmos

adecuados relacionados con la manipulacin de DF.


Los principales sirven para:
1. Determinar si una df X Y DF+
2. Determinar la equivalencia entre dos conjuntos de
dfs
3. Encontrar un recubrimiento minimal de un conjunto
de dfs (base para la normalizacin)
4. Verificar si un descriptor es clave de un esquema de
relacin
5. Obtener todas las claves candidatas de un esquema
de relacin
Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Cierre de un descriptor

Dado un esquema de relacin R(A,DF), se define el


cierre transitivo de un descriptor X respecto al
conjunto de DF, que se denota:
X+ DF
como el conjunto de los atributos de A tales que:
X X+DF DF+
siendo X+DF mximo en el sentido de que la adicin
de cualquier atributo vulnerara la condicin anterior.

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Algoritmo para el clculo del cierre de un


descriptor
1: CierreDescriptor(X, DF)
2: X+DF = X
3: while sea posible aadir mas atributos a X+ do
4: for cada df Y A DF do
5:
if Y X+DF y A X+DF then
6:
X+DF = X+DF A
7:
end if
8: end for
9: end while
10: return X+DF

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Ejemplo 1:

Sea R = ({ABCDEFG}, DF)


DF = {f1= AB C , f2=C A , f3=BC D , f4= ACD B ,
f5=D EG , f6=CG BD , f7=BEC , f8= CE AG}
X=BD
X0 =BD
X1 =BDEG (usando f5 )
X2 =BDEGC ( usando f7)
X3 =BDEGCA ( usando f8 )

Como no hay ms atributos , ste es el cierre


BD+ = BDEGCA

Anglica Caro

Ingeniera Civil Informtica UBB 2015

20/99

Dependencias Funcionales

Ejemplo 2:
Dada la relacin R (CE, NE, P, G, CP, C, DF)
con
DF=CE NE, NE CE, P CE, G P, (CP, P) G,
CE C, P C
hallar el cierre del descriptor (CP,P)
CP,P CP, P
iteracin 0
CP,P CP, P, CE, G, C
iteracin 1
CP,P CP, P, CE, G, C, NE
iteracin 2
Luego el cierre transitivo del descriptor es:
(CP, P)+ = CP, P, CE, G, C, NE

Anglica Caro

Ingeniera Civil Informtica UBB 2015

21/99

Dependencias Funcionales

Clculo del cierre de un descriptor

Anglica Caro

Ayuda a:
Determinar si una dependencia X Y est
implicada por un conjunto de dependencias.
Obtener las claves de un esquema y saber si un
descriptor es clave.
Es la base para calcular la equivalencia de 2
conjuntos de dependencias.
Calcular la cobertura minimal de un conjunto de
dependencias.

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Comprobar si una dependencia funcional X Y se


deriva de un conjunto de dependencias DF equivale a
comprobar si
X Y pertenece a DF+
Algoritmo para determinar si DF X Y
1: dfseDerivadeDF(df, DF) {df es una dependencia
funcional X Y }
2: X+DF = CierreDescriptor(X, DF)
3: if Y X+DF then
4: return true {df DF+, es decir, DF X Y }
5: else
6: return false {df DF+}
7: end if

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales
Ejemplo:

Dada la relacin R (CE, NE, P, G, CP, C, DF)


con DF=CE NE, NE CE, P CE, G P,
(CP, P) G, CE C, P C
Comprobar si la dependencia NE C se deriva de DF.
1: Se calcula el cierre de NE:
NE+ = NE, CE, C
2: Como C est en el cierre de NE, se cumple que
NE C pertenece a DF+ y por tanto, se deriva de DF

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Equivalencia de dos conjuntos de dfs

El problema de la equivalencia de dos conjuntos de DF es


fundamental en el proceso de normalizacin, a fin de comprobar
si la transformacin de un esquema relacional se ha realizado
conservando la semntica, al menos en lo que a dependencias se
refiere.
Dos conjuntos de dependencias DF1 y DF2 son equivalentes si sus
cierres son iguales:
DF+1 = DF+2
Para evitar el costo computacional del clculo de los cierres, se
puede comprobar si cada dependencia de DF1 se encuentra en
DF2 y, viceversa, si cada dependencia de DF2 se encuentra en
DF1.

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Equivalencia de dos conjuntos de dfs

Anglica Caro

DF1 y DF2 son equivalentes, si DF+1 = DF+2

Podemos verificarlo de la siguiente manera:


1. Para toda df X Y DF2 se cumple que Y X+DF1.
Significa que toda df DF2 est en DF1 y, por lo tanto, DF1
es un recubrimiento de DF2.
2. Recprocamente, para toda df Z W DF1, se cumple
W Z+DF2
Significa que toda df de DF1 est en DF2 y, por lo tanto, DF1
es un recubrimiento de DF2.
Si se cumple 1) y 2), entonces DF1 y DF2 son equivalentes

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Ejemplo:

Dados los siguientes conjuntos de dependencias:


DF1 = {A B, B A, A C, A D}
DF2 = {A B, B A, B C, B D}
Las dependencias A B y B A estn en ambos conjuntos, por lo
que las nicas dependencias de DF1 que no estn en DF2 son A C y
A D. Por tanto, debe calcularse el cierre de A con respecto al
conjunto DF2:
A+DF2 = A, B, C, D

Anlogamente, el cierre de B con respecto a DF1 es:


B+DF1 = B, A, C, D

Anglica Caro

como C y D estn contenidos en el cierre, queda demostrado que todas las


dependencias de DF1 estn en DF+2, luego DF2 es un recubrimiento de DF1.

y por tanto, las dependencias B C y B D de DF2 estn contenidas en


DF+1, por lo que DF1 es un recubrimiento de DF2.

Como conclusin, DF1 y DF2 son equivalentes.

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Ejemplo:

Dados los siguientes conjuntos de dfs:

Anglica Caro

DF1 = {codLibro titulo, titulo codLibro, codLibro


idioma, codLibro editorial}
DF2 = {codLibro titulo, titulo codLibro, titulo idioma,
titulo editorial}
Determinar si DF1 es equivalente a DF2

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Solucin:
DF1 :

DF2 :

codLibro titulo, titulo codLibro estn en ambos conjuntos.


codLibro idioma, codLibro editorial no estn en DF2
Entonces se debe calcular el cierrre de cod_libro respecto de DF2:

cod_libro+ = {cod_libro, titulo, idioma, editorial}


idioma y editorial estn contenidos en el cierre, por lo cual se ha demostrado que
todas las dependencias de DF1 estn en DF2+, luego DF2 es recubrimiento DF1
titulo idioma, titulo editorial no estn en en DF1
Entonces se debe calcular el cierrre de titulo respecto de DF1 :

titulo+ = {cod_libro, titulo, idioma, editorial}


idioma y editorial estn contenidos en el cierre, por lo cual se ha demostrado que
todas las dependencias de DF2 estn en DF1+, luego DF1 es recubrimiento DF2

Es decir DF1 es equivalente a DF2

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Recubrimiento minimal:

Anglica Caro

De todos los posibles conjuntos equivalentes a un


conjunto dado de dependencias, hay un subconjunto
de ellos que cumplen la propiedad que no contienen
ninguna dependencia redundante, por lo que se
llaman conjuntos irredundantes o minimales.
Los algoritmos de normalizacin y los de clculo de
claves candidatas parten siempre de recubrimientos
minimales.

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Recubrimiento minimal:

El recubrimiento minimal de un conjunto de dfs DF asociadas a


un conjunto de atributos A, es un subconjunto de dfs
elementalesa de DF tal que cumpla:
1.Ninguna de las dfs elementales de DF es redundante, es
decir, si se elimina cualquiera de las dfs de DF, el nuevo
conjunto de dfs DF no es equivalente a DF.
2.Todas la dfs entre los atributos de A estn en DF+.

df redundante: Una df d DF se dice que es redundante si


puede derivarse de {DF d} mediante los axiomas de
Armstrong.
atributo extrao: Dada la df X Y DF, un atributo A X se
dice que es extrao en la dependencia si la df (X A) Y
DF+.

______
a

dependencia elemental es aquella, que tiene un nico implicado,


siendo adems plena y no trivial

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Otra definicin de recubrimiento minimal:


Dado un conjunto de dfs M, se dice que es
recubrimiento minimal si:
1. Todas las dfs son elementales
2. No hay atributos extraos, es decir,
no existe X A M, con Z X, tal que
M est contenido en el cierre de M {X A} {Z A}
3. No existen dependencias redundantes, es decir,
no existe X A en M tal que
M {X A} es equivalente a M

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Ejemplo de recubrimiento minimal:

Sea el esquema de relacin

LIBRO(A = {codLibro, isbn, editorial, pais},


DF = {codLibro isbn, isbn codLibro, isbn (editorial, pais),
codLibro editorial, editorial pais})

Los conjuntos

DF1 = {codLibro isbn, isbn codLibro, codLibro editorial,


editorial pais}
DF2 = {codLibro isbn, isbn codLibro, isbn editorial,
editorial pais}

son recubrimientos minimales de DF.

Anglica Caro

Esto implica que puede haber ms de un recubrimiento minimal


de un mismo conjunto de dfs, es decir, el recubrimiento de un
conjunto de dfs no es nico. Adems los conjuntos pueden no
tener el mismo nmero de dfs y por lo tanto alguno de ellos
puede ser mnimo
Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Ejemplo de recubrimiento minimal:

Sea el esquema de relacin


LIBRO(A = {codLibro, isbn, editorial, pais},DF = {codLibro
isbn, isbn codLibro, isbn (editorial, pais), codLibro
editorial, editorial pais})

Se tiene que:

DF3 = {codLibro isbn, isbn codLibro,isbn pais, isbn


editorial, editorial pais}
No es recubrimiento minimal ya que isbn pas es
redundante

Anglica Caro

DF4 = {codLibro isbn, isbn editorial, editorial pais}


No es recubrimiento minimal ya que isbn codLibro falta y
no se puede deducir de las dems.
Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Algoritmo de Ullman y Atkins:

Entrada: DF (conjunto de dependencias elementales)


Salida:
H (recubrimiento minimal de DF)
Proceso :
1) Eliminacin de atributos extraos.
1.1) Repetir para cada dependencia X B de DF:
1.1.1) L = X
1.1.2) Repetir para cada atributo A de X:
Si B (L - A )+ entonces L = L - A
1.1.3) Reemplazar X B por L B
2) Eliminacin de dependencias redundantes.
2.1) H = DF
2.2) Repetir para cada dependencia X A de DF:
G=H-{XA}
Si A pertenece a X+G entonces H = G
Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

La utilizacin de recubrimientos irredundantes o minimales tiene


dos objetivos:
1.

2.

Reducir la complejidad algortmica al disminuir el nmero de


dependencias de partida), y
Minimizar el nmero de restricciones de integridad que han de ser
mantenidas en la base de datos.

Por ambas razones, debe ser un objetivo de diseo conseguir que


el nmero de dependencias y el nmero atributos involucrados
sean mnimos.
Adems, existe otro objetivo de diseo, que es an ms
importante:

que las dependencias resultantes tengan un significado claro


para los usuarios.

Anglica Caro

Este problema no puede ser resuelto con la teora de la normalizacin,


ya que realiza transformaciones algortmicas de tipo sintctico que
pueden conducir a dependencias y a esquemas de relacin absurdos
desde el punto de vista del usuario.
Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Determinacin si un descriptor es clave de


una relacin:

Dada una relacin R(A,DF), se trata de comprobar si


un descriptor X es una clave
1. Se calcula X+DF de X
2. Si X+DF A, entonces X es una superclave
3. Si X+DF A, entonces X no es una superclave

Anglica Caro

Si X es una superclave, entonces se buscan todos los


subconjuntos Xi de X.
Si algn X+DF A, entonces X NO es una clave.
En caso contrario X es una clave candidata.
Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Ejemplo de una clave candidata:

Sea la relacin
PRESTAMOS(numSocio, nombreSocio, codLibro,
fechaPrestamo, editorial, pais)

con las siguientes dfs


DF = {numSocio nombreSocio, nombreSocio
numSocio, codLibro editorial, editorial
pais, (numSocio, codLibro) fechaPrestamo}

Anglica Caro

Verificar si el descriptor (numSocio, codLibro) es una


clave candidata.
Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Solucin:

Calculamos el cierre de (numSocio, codLibro)


respecto de DF:

Anglica Caro

{numSocio, codLibro,nombreSocio,editorial,
pais,fechaPrestamo}

Como el cierre coincide con el conjunto de atributos


de la relacin, entonces (numSocio, codLibro) es
super clave.
Cierre de numSocio es {numSocio,nombreSocio}
Cierre de codLibro es {codLibro,editorial,pais}
Ninguno coincide con el conjunto de atributos de la
relacion por lo tanto (numSocio, codLibro) es clave
candidata.
Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Ejemplo 2:
Dado el esquema de relacin R(AT, DF)
Con AT={A,B,C,D,E,F} y DF={AB;BA;CE;EF;(A,C)D}

Anglica Caro

Es (A,C) una clave candidata?


Como (A,C)+DF = (A,C,B,E,D,F)=AT (A,C) es una superclave.
Adems, como A+DF = (A, B) AT y C+DF = (C, E, F) AT
(A,C) es una clave candidata.

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Dado un esquema de relacin R(A,DF), siendo DF un


recubrimiento irredundante, los pasos para calcular sus
claves candidatas son:

Paso 1: Eliminacin de atributos independientes.

Se eliminan de R todos los atributos independientes (que no forman


parte de ninguna dependencia) obteniendo una relacin Rsi.

Paso 2: Eliminacin de descriptores equivalentes.

Por cada grupo de descriptores equivalentes (XY...), se elige uno


(por ejemplo X), eliminando las dependencias de equivalencia
anteriores de DF y sustituyendo en las dependencias restantes los
descriptores eliminados (por ejemplo Y) por el atributo que se ha
elegido del grupo (X en este caso).
Se obtiene as una relacin Rsie.
Cuando, como resultado de este paso, las relaciones no tienen
dependencias, los atributos de las mismas son independientes:

Anglica Caro

Ejemplo: R(A,B; ) implica que los atributos A y B son independientes.

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Paso 3: Determinacin de un descriptor (en el que no haya


implicados) que sea clave de Rsie.

Los atributos de una relacin Rsie que son implicantes pero no


implicados son parte de la clave, tomamos estos atributos y con ellos
formamos una clave posible (Kp).

Anglica Caro

Si no hay ningn otro implicante que, a la vez, sea implicado, Kp es una


clave y se va al paso 5.
En caso contrario, se realiza el paso 4.

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Paso 4: Determinacin de un descriptor clave de Rsie (en el que


puede haber implicados siempre que sean tambin implicantes).

Si es posible, se obtiene una particin Rsie eliminando de Rsie todos


aquellos atributos que entran en K+p y que no forman parte de otras
dependencias funcionales, distintas a las que han servido para
calcular K+p.

Anglica Caro

En Rsie se obtiene una clave provisional Kp con los implicantes que


estaban tambin en Kp aadiendo un nuevo implicante que, a su vez, sea
tambin implicado. Si K+p contiene todos los atributos de Rsie es una
clave, en caso contrario se aade un nuevo descriptor hasta obtener una
clave.
Se repite esta operacin porque puede haber ms claves.
Una vez obtenidas las claves de Rsie se hace la unin de cada una de ellas
con la clave obtenida en el paso 3 para obtener as las claves de Rsie.

Si no fuese posible obtener la particin Rsie se actuara de la misma


manera que se acaba de explicar, pero con Rsie.
Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Paso 5: Tratamiento de atributos independientes para obtener


una clave de la relacin original.

A las claves de Rsie obtenidas en los paso 3 o 4 se aaden los


atributos independientes obtenidos en el paso 1 (o en el 2).

Paso 6: Tratamiento de descriptores equivalentes.

Anglica Caro

Cuando en el paso 2 se han obtenido descriptores equivalentes habr


que obtener todas las claves, sustituyendo en las claves obtenidas en
el paso 5 (si hubiese atributos independientes) o en los pasos 3 o 4 (si
no los hubiera), los descriptores por sus equivalentes.
De esta forma se obtienen todas las claves candidatas.

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales
Clculo Claves candidatas, Ejemplo 1:
Sea el esquema de relacin:
R({A,B,C,D,E,F,G,H,I,J}; {ABC, CAB, ED, DE, EF,
FE, ABD G, CFH})

Paso 1

Los atributos I y J son independientes porque no forman parte de


ninguna DF, luego, en este primer paso se eliminan de la relacin:
Rsi ({A,B,C,D,E,F,G,H}, {ABC, DEF, ABDG, CFH})

Paso 2

Existen dos grupos de descriptores equivalentes:


a) AB y C
b) D, E y F

Del grupo a) nos quedaramos, por ejemplo, con C y del grupo b)


con D (eliminaramos, por tanto, AB, E y F); la relacin resultante
sin equivalencias sera:
Rsie ({C, D, G, H};{CDG, CDH})

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales

Paso 3

En la Rsie anterior, CD es el nico implicante, pero no implicado,


luego una Kp sera CD, como el resto son slo implicados, CD es
clave de Rsie (no hara falta hallar el cierre de CD). Pasaramos al
paso 5.

Paso 5

Clculo Claves candidatas, Ejemplo 1:

Si a CD le aadimos los atributos independientes I y J tenemos


CDIJ que es la clave de R.

Paso 6

Los descriptores equivalentes eran: ABC y DEF


La clave CDIJ genera las siguientes claves candidatas de R:
{C|AB}{D|E|F}IJ
En total, son 6 claves:
CDIJ, CEIJ, CFIJ, ABDIJ, ABEIJ y ABFIJ

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales
Clculo Claves candidatas, Ejemplo 2:
Sea el esquema de relacin:
R({A,B,C,D,E,F}; {ABC, DEF, FD})

Paso 1

Paso 2

No hay atributos independientes => Rsi = R


No hay descriptores equivalentes =>
{ABC, DEF, FD})

Rsie({A,B,C,D,E,F};

Paso 3

Kp=ABE y Kp+=ABCE; luego Kp no es clave, por lo que iramos al


paso 4.

Anglica Caro

Ingeniera Civil Informtica UBB 2015

Dependencias Funcionales
Clculo Claves candidatas, Ejemplo 2:
Paso 4

Paso 5

Obtenemos una nueva relacin Rsie eliminando de Rsie los atributos A B


C que forman la primera DF (no eliminamos E porque en la dependencia
de la que forma parte aparecen D y F que no estn en Rsie) y nos queda:
Rsie ({DEF};{DE F , F D})
Formaramos una clave provisional Kp con E que es slo implicante (y,
por tanto, est en Rsie), aadiendo un descriptor implicante e implicado,
por ejemplo F:
Kp = EF y K+p = EFD; luego EF es una clave de la particin Rsie
Otra clave sera ED. Por tanto, las claves de Rsie seran:
ABEF
ABED
Como en el paso 1 no hubo atributos independientes, las claves son ABEF
y ABED.

Paso 6

Como tampoco hubo descriptores equivalentes en el paso 2, las claves


son ABEF y ABED.
Anglica Caro
Ingeniera Civil Informtica UBB 2015

You might also like