Algoritmos de normalização
-
Upload
sacur-abdul -
Category
Documents
-
view
54 -
download
0
Transcript of Algoritmos de normalização
5/11/2018 Algoritmos de normalização - slidepdf.com
http://slidepdf.com/reader/full/algoritmos-de-normalizacao-55a0ce06ae3cf 1/4
Todos estes algoritmos são baseados numa relação R(T, F), onde T são os atributos darelação e F são as dependências funcionais dessa relação.
Nota: Deve ter em conta que antes de aplicar qualquer dos algoritmos a seguir, tem queconhecer qual é a chave da relação.
IMPORTANTE: Uma relação esta em terceira forma normal (3FN) se e só se para cada
dependência funcional X Y, do conjunto de dependências funcionais F, secumpre que X é chave ou Y é primo.
Um atributo, ou conjunto de atributos, é primo si é um subconjunto de algumachave.
Algoritmo de decomposição 3FN
1. Dê uma dependência funcional, X Y, onde X e Y são disjuntos e X Y viola as
condições para 3NF, ou seja, X não e chave e Y não é primo.
2. Obter (S1 = P (XY) (R)) e (S2 = P (U-Y) (R)). Como mencionado acima, X Y nãoviola 3FN e condições de S1, porque X é chave em S1.
3. Se S1 ou S2 não esta em 3FN, descompor mais uma vez, etc.
Exemplo:Temos uma relação R(T, F), onde T = {A,B,C,D,E,G} e F ={ABC, CA, BCD, ACDB,
DEG, BEC, CGBD, CEAG}Isto é:R(A,B,C,D,E,G) F={ABC, CA, BCD, ACDB, DEG, BEC, CGBD, CEAG}Normalizar a 3FN.
Primeiro temos que calcular uma chave da relação.(AB)+=ABCDEG, é chave D+=DEG
C+=CA (BE)+=BECDAG, é chave
(BC)+=BCADEG, é chave (CG)+=CGBDEA, é chave
(ACD)+=ACDBEG, é chave (CE)+=CEAGBD, é chave
Obtemos chaves candidatas: AB, BC, ACD, BE, CG, CE. Temos que escolher uma deelas para chave da relação. Escolhemos AB como chave da relação.Agora há que verificar quais são aquelas dependências funcionais que não esta a cumprira condição de 3FN.
X Y Condições de 3FN X Y Condições de 3FN
AB C Antecedente é chave D EG
Antecedente não é chave,consequente não é primo(EG não e subconjunto denenhuma chavecandidata). Temosproblemas nestadependência funcional.
C AAntecedente não échave, consequente é
BE CAntecedente não é chave,consequente é primo
5/11/2018 Algoritmos de normalização - slidepdf.com
http://slidepdf.com/reader/full/algoritmos-de-normalizacao-55a0ce06ae3cf 2/4
primo
BC DAntecedente não échave, consequente éprimo
CG BD
Antecedente não é chave,consequente não é primo(BD não e subconjunto denenhuma chavecandidata). Temos
problemas nestadependência funcional.
ACD BAntecedente não échave, consequente éprimo
CE AG
Antecedente não é chave,consequente não é primo(AG não e subconjunto denenhuma chavecandidata). Temosproblemas nestadependência funcional.
Então podemos descompor por qualquer destas 3 dependências funcionais: DEG,CGBD e CEAG. Vamos descompor por a dependência funcional DEGSendo assim, temos:
R1(D,E,G) F1={DEG}A dependência funcional DEG não pode estar no conjunto F2, porque ela foi escolhidapara fazer a decomposição. Também não podem estar em F2 aquelas dependênciasfuncionais que tenham atributos que não existem em R2R2(A,B,C,D) F2={ABC, CA, BCD, ACDB, DEG, BEC, CGBD, CEAG}Então no R2 e F2 temos:R2(A,B,C,D) F2={ABC, CA, BCD, ACDB}Esta primeira decomposição fica assim:R1(D,E,G) F1={DEG}R2(A,B,C,D) F2={ABC, CA, BCD, ACDB}
Temos que analisar se as duas relações (R1 e R2) cumprem as condições para 3FN
R1(D,E,G) F1={DEG} a chave é D e antecedente é chave, logo cumpre as condições de3FN
R2(A,B,C,D) F2={ABC, CA, BCD, ACDB} tem muitas chaves candidatas e são:(AB)+=ABCD(BC)+=BCDA(ACD)+=ACDBEscolhemos ACD como a chave da relação. Sendo assim, temos que verificar ascondições de 3FN na relação.
X Y Condições de 3FN
AB C Antecedente não é chave, consequente é primo
C A Antecedente não é chave, consequente é primo
BC D Antecedente não é chave, consequente é primo
ACD B Antecedente é chave
Então a relação R2 esta a cumprir as condições da 3FN.O resultado do algoritmo é as relações R1 e R2.
NOTA IMPORTANTE: Se no paço anterior escolhemos como chave uma outra que não é
5/11/2018 Algoritmos de normalização - slidepdf.com
http://slidepdf.com/reader/full/algoritmos-de-normalizacao-55a0ce06ae3cf 3/4
ACD, o resultado muda. Vamos a ver isto.
R2(A,B,C,D) F2={ABC, CA, BCD, ACDB}R2(A,B,C,D) F2={ABC, CA, BCD, ACDB} tem muitas chaves candidatas e são:(AB)+=ABCD(BC)+=BCDA
(ACD)+=ACDBEscolhemos AB como a chave da relação. Sendo assim, temos que verificar as condiçõesde 3FN na relação.
X Y Condições de 3FN
AB C Antecedente é chave
C A Antecedente não é chave, consequente é primo
BC D Antecedente não é chave, consequente não é primo
ACD B Antecedente não é chave, consequente é primo
Então a relação R2 esta não a cumprir as condições da 3FN. Temos que descompor R2.
R3(B,C,D) F3={BCD}A dependência funcional BCD não pode estar no conjunto F4, porque ela foi escolhidapara fazer a decomposição. Também não podem estar em F4 aquelas dependênciasfuncionais que tenham atributos que não existem em R4Esta decomposição fica assim:R4(A,B,C) F4={ABC, CA, BCD, ACDB}Então no R4 e F4 temos:R4(A,B,C) F4={ABC, CA}
Temos que analisar se as duas relações (R3 e R4) cumprem as condições para 3FNR3(B,C,D) F3={BCD} a chave é BC e antecedente é chave, logo cumpre as condições
de 3FN
R4(A,B,C) F4={ABC, CA} a chave é AB. Temos que verificar se cumpre as condiçõesde 3FN.
X Y Condições de 3FN
AB C Antecedente é chave
C A Antecedente não é chave, consequente é primo
Então R4 cumpre as condições de 3FN.O resultado do algoritmo é as relações R1, R3 e R4.
Algoritmo de decomposição 3FN e conserva dependências funcionais
Seja R um esquema de relação e F seu conjunto de dependências funcionais:
1. Encontrar uma cobertura mínima G para F
2. Para X na parte esquerda de cada dependência funcional que aparece no G
a. Criar um esquema relacional {X União A1 União A2 ... União AN} em D, onde X
A1, A2 X, ..., X An são as únicas dependências em G com X como suaesquerda
5/11/2018 Algoritmos de normalização - slidepdf.com
http://slidepdf.com/reader/full/algoritmos-de-normalizacao-55a0ce06ae3cf 4/4
3. Todos os atributos que não estão localizados em nenhum esquema de D, tem quese colocar num esquema adicional
Nota: D representa a decomposição resultante.
Exemplo:
Temos uma relação R(T, F), onde T = {A,B,C,D,E,G} e F ={AB
C, C
A, BC
D, ACD
B,DEG, BEC, CGBD, CEAG}Isto é:R(A,B,C,D,E,G) F={ABC, CA, BCD, ACDB, DEG, BEC, CGBD, CEAG}Normalizar a 3FN e conservar dependências funcionais
IMPORTANTE: Uma relação esta em Boyce Codd forma normal (BCFN ou FNBC) se e só se
para cada dependência funcional X Y, do conjunto de dependências funcionaisF, se cumpre que X é chave.
Algoritmo de decomposição BCNF1.
Dê uma dependência funcional X Y, que pertence ao conjunto de dependênciasfuncionais F, e que X não é chave e X e Y são disjuntos.
2. Obter as projecções de R em S1= XY e S2 = T-Y, onde T é o conjunto de atributos
de R. Obter as dependências funcionais para S1 e S2, e assim por diante até que
todos estejam na BCNF.