Sunteți pe pagina 1din 3

TEMA 3 –Cozac Gheorghe Adrian- gr :30224

Ex1:
1. Fie schema de relatia R cu atributele ABCDE, si setul de dependente functionale F
A → B, BC → D, A → C.

Identificati cheile candidate pentru relatia R. identificati cea mai buna forma normalal
pe care o satisface relatia R. Daca R nu este in forma normala BCNF, descompuneti intr-
un set de relatii ce mentin dependentele functionale.

Pentru identificarea cheilor candidate folosim urmatorul algoritm:


Fiind data relatia R(A1,A2,...,An) si un set de dependente functionale F avem de urmarit pasii:

1.) Construim L care va contine toate submultimile nevide ale lui {A1,A2,...,An) ,rezulta in L
vom avea 2n-1 submultimi,pe care le vom aranja in ordinea dimensiunii lor.
Luam L = Z1, Z2, ..., Z2n1, astfel incat |Zi | |Zi1|. Unde |Zi| ne arata numarul de
elemente din submultimea Zi
2.) Initializam multimea K={};
Cat timp L nu este vida,luam elementul Zi din L si constuim Zi+.
Daca Zi+=R atunci a.)adugam Zi la K
b.)Stergem orice element Zj din L daca Zi Z j

3.) Multimea K va contine toate cheile candidate

Algoritmul aplicat pentru exercitiul nostru este:


Asadar avem relatia R cu atributele ABCDE, si setul de dependente functionale F

A → B, BC → D, A → C.

n=5 => vom avea 32 de elemente in L


L=<A,B,C,D,E,AB,AC,AD,AE,BC,BD,BE,CD,CE,DE,ABC,ABD,ABE,ACE,ADE,ACD,BCD,BCE,BDE
,CDE,ABCD,ABCE,BCDE,ABDE, ACDE, ABCDE>
K va fi: K=<AE, ABE, ACE, ABCE,ACDE,ABDE>, insă datorită condiţiei b), în K va fi AE

=>K=<AE>; deci cheia candidata este AE

 Descompunem setul de dependente functionale


A→B; B→D; C→D; A→C de aici => A->B;C->D;A->C (am eliminat redundanta)

Cea mai bună formă normală care satisface relaţia R este FN2, deoarece valorile sale iau
valori atomice, şi orice atribut neprim este total dependent de oricare cheie a relaţiei.

Vom folosi Algoritmul de secompunere in FN3 cu pastrarea dependentelor

Şi vom avea: F=( A→B; C→D; A→C) => Descompunerea p=(AB,CD,AC) este o
descompunere in FN3 cu pastrarea dependentelor.

Ex2:

Fie schema bazei de date Carti (titlu, tip, pretdelista,afiliere, editura,autor)


Si dependentele functionale :
titlu-> editura, tip
tip-> pretdelista si
autor->afiliere

Identificati cheile candidate si argumentati. In ce forma normala se afla relatia?.


Motivati.Transformati schema d relatie in cea mai inalta forma posihila de normalizare.
Au fost mentinute dependentele functionale? Ce dependente s-au pierdut prin
descompunere?

Pentru identificarea cheilor candidate vom folosii acelasi algoritm;Deasemenea pentru a


usura munca vom folosi notatiile :
A=titlu,B=tip,C=pretdelista,D=afiliere,E=editura,F=autor;

De aici rezulta ca vom avea urmatoarele dependente functionale : A->BE,B->C,F->D

n=6 => L este

L=<A,B,C,D,E,AB,AC,AD,AE,BC,BD,BE,CD,CE,DE,ABC,ABD,ABE,ACE,ADE,ACD,BCD,BCE,BDE
,CDE,ABCD,ABCE,BCDE,ABDE, ACDE, ABCDE,
F,AF,BF,CF,DF,EF,ABF,ACF,ADF,AEF,BCF,BDF,BEF,CDF,CEF,DEF,ABCF,ABDF,ABEF,ACDF,AC
EF,ADEF,BCDF,BCEF,CDEF,ABCDF,ABCEF,ACDEF,BCDEF,ABCDEF,>

K va fi
K=<AF,ACF,ADF,ABF,AEF,ABCF,ABDF,ABEF,ACDF,ACEF,ADEF,ABCDF,ABCEF,ACDEF,ABCED
F>

 Deoarece AF este inclus in oricare din submultimile din K => K=<AF> => cheia
candidata va fi AF unde A=titlu,F=autor

Descompunem setul de dependente functionale A->BE,B->C,F->D in


A->B,A->E,B->C,F->D

Relatia se afla in forma normala FN2 deoarece toate atributele prime sunt atomice

Transformam relatia in FN3 prin descompunere p=(AB,BC,FD,AE) si nu au fost pierdute


dependentele functionale