Algoritmos de normalização

4
 Todos estes algoritmos são baseados numa relação R(T, F), onde T são os atributos da relaçã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 que conhecer 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, se cumpre que X é chave ou Y é primo.  Um atributo, ou conjunto de atributos, é primo si é um subconjunto de alguma chave. Algoritmo de decomposição 3FN 1. 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ão viola 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, C  A, BCD, ACDB, DEG, BEC, CGBD, CE  AG} Isto é: R(A,B,C,D,E,G) F={  ABC, C  A, BCD, ACDB, DEG, BEC, CGBD, CE  AG} 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 de elas para chave da relação. Escolhemos AB como chave da relação.  Agora há que v erificar quais sã o aquelas de pendência s funcionais q ue não esta a cumprir a 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 de nenhuma chave candidata). Temos problemas nesta dependência funcional. C  A  Antecedente não é chave, consequente é BE  C  Antecedente não é chave, consequente é primo

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.