Sunteți pe pagina 1din 45

BAZE DE DATE

Proiectarea bazelor de date relaionale

Normalizare
Mihaela Elena Breabn
FII 2015-2016

Normalizare
Dependene funcionale (revizitat)
1NF, 2NF, 3NF
Forma normal Boyce-Codd (BCNF)
Dependene multivaluate (revizitat)
Forma normala 4 (4NF)
Denormalizare

Proiectarea schemei
De obicei mai multe variante de proiectare
Unele sunt (mult) mai bune dect altele
Cum alegem?

Teorie pentru proiectarea bazelor de date relaionale cu fundamente n


algebra relaional, introdus de Codd ntre 70-74

Eliminarea anomaliilor la modificri n date


Minimizarea necesitii reproiectrii cnd sunt necesare extensii ale structurii
Evitarea avantajrii anumitor interogri

Exemplu
Schem cu anomalii
Informaii cu privire la candidatii la admitere

CNP i nume
Universitatea la care s-a candidat
Liceele de la care provin candidaii (i oraele)
Hobby-urile candidailor

Candidati(CNP, aNume, uNume, liceu, lOra, hobby)


Ioana cu CNP-ul 2810605222111 a studiat la Negruzzi n Iai, candideaz la Cuza,
Asachi i la Babes-Bolyai, i place s joace tenis i s cnte la chitar

Cte tuple sunt necesare a fi inserate n relaia Candidati pentru a pstra


toate informaiile despre Ioana?

Anomalii de proiectare

Redundan

Anomalii de actualizare

Anomalii la tergere

Exemplu
Schem fr anomalii
Informaii cu privire la aplicaiile de admitere

CNP i nume
Universitatea la care s-a candidat
Liceele de la care provin candidaii (i oraele)
Hobby-urile candidailor
Absolvent(CNP, aNume)
Candidat(CNP, uNume)
Liceu(CNP, codLiceu)

LocatieLiceu(codLiceu, lNume, lOra)


Hobbies(CNP, hobby)

???
Informaii cu privire la cursurile luate de studenti

Studenii au id-uri unice i nume (nu sunt unice)


Cursurile au numr de identificare unic i titlu (nu unic)
Studenii iau un curs ntr-un anumit an i primesc o not

Care e schema recomandat?

Studiaz(sID, nume,cID, titlu,an,not)


Curs(cID,titlu,an), Studiaz(sID,cID,not)
Student(sID,nume), Curs(cID,titlu), Studiaz(sID,cID,an,not)
Student(sID,nume), Curs(cID,titlu), Studiaz(nume,titlu,an,not)

Proiectarea prin descompunere

Se pleac de la mega-relaii ce conin tot


Se descompune n relaii mai mici ce pstreaz toate
informaiile

Se poate realiza automat

Mega-relaii + proprieti ale datelor


Descompunerea se realizeaz pe baza proprietilor
Setul final de relaii satisface anumite forme normale

Fr anomalii
Fr pierdere de informaii

Proprieti i forme normale


Proprieti

Dependene funcionale
Dependene multivaluate

Forme normale

1NF
2NF
3NF
BCNF
4 NF

Dependene funcionale

Concepte folositoare pentru

Stocarea datelor compresie


Optimizarea interogrilor

X Y dac
t1 , t 2 r, t1[X] t 2 [X] t1[Y] t 2 [Y]
r relaie peste mulimea de atribute U
X,Y submulimi ale lui U
De ce funcional?

10

Exemplu
Dependene funcionale
Absolvent(CNP, aNume, adresa,
lCod, lNume, lOras, medie,
prioritate)
Candidat(CNP, uNume, uOras, data,
specializare)

Valorile atributului prioritate sunt determinate de valorile


atributului medie

medie prioritate
Care sunt dependenele funcionale pentru relaia Absolvent?
Dar pentru relaia Candidat?
Ce constrngere este impus de {CNP,uNume data}
11

???

R(A,B,C,D,E,F)
ABCD
DEF
Fiecare din atributele A,B,C,E are cel mult 3 valori
diferite.
Care este numrul maxim de valori diferite pe care l
poate lua E? (3,9,27,81?)

12

Dependene funcionale
Reguli de inferen

Reflexivitatea (FD1)

Descompunerea (FD6)

A(21)

Se poate descompune i membrul stng?

Uniunea (FD5)

(A22)

Tranzitivitatea (FD3)

(A1)
dependene triviale

(A3)

Teorema de completitudine

13

o dependen funcional este consecin a unei mulimi de


dependene funcionale d.d. are demonstraie utiliznd regulile de
mai sus (Axiomele lui Armstrong)

Dependene funcionale i chei

Dependene funcionale (d.f.)

Valorile unei submulimi de atribute determin (identific) valorile


unei alte submulimi de atribute

Formulate pe baza cunoaterii lumii reale


Toate instanele relaiei trebuie sa le satisfac
Se specific un set minimal netrivial a.. toate dependenele satisfcute de
relaie se obin ca i consecine ale acestei mulimi

Supercheie

Valorile unei submulimi de atribute identific n mod unic un tuplu


=> valorile tuturor atributelor
O cheie este submulime minimal cu proprietatea de mai sus
Garanteaz o relaie fr duplicate

Dependenele funcionale sunt o generalizare a noiunii de cheie


14

nchideri

nchiderea unei mulimi de d.f. notat +

Mulimea d.f. mpreun cu toate d.f. consecine din

nchiderea unei mulimi de atribute X notat X+ relativ la un


set de d.f.

Mulimea tuturor atributelor B pentru care exist X B

O dependen funcional X B este consecin a unei


mulimi de dependene funcionale d.d. BX+
Algoritm de calcul a nchiderii lui X?
15

nchideri i chei

Date schema de relaie R(U) i un set de d.f. satisfcute


de R, submulimea de atribute
X este cheie pentru
R d.d.

X U i X ' X , X ' U

Exemplu

Absolvent(CNP, aNume, adresa,


lCod, lNume, lOras, medie, prioritate)
CNP aNume, adresa, medie
medie prioritate
lCod lNume, lOras
Perechea {CNP, lCod} este cheie

Dat o mulime de d.f. cum putem determina toate cheile?


16

???

R(A,B,C,D,E)
ABC
AED
DB
Care sunt cheile pt. R?

17

Atribute (ne)prime

Atribut prim

Atribut neprim

Exist o cheie care s-l conin


Nu aparine nici unei chei

Exemplu

18

R1(A, B, C, D)
F = {AB C,B D, BC A}.
AB si BC sunt singurele chei cu privire la F, deci A, B, C sunt atribute
prime
D este atribut neprim.

Dependene pline

Fie dat o schem de relatie R cu multimea de atribute U si F o


multime de dependente functionale. O dependenta functionala
X B F + (XU, B U, BX) se numeste o dependenta plina a
lui R (sau B este dependent plin de X sub F), daca nu exista nici o
submultime proprie XX, astfel incat X B F+.

Exemplu
R(A, B, C, D)
F = {AB C,B D, BC A}.
Toate dependenele din F sunt pline.
AB D F+ nu este dependen plin

19

Atribut tranzitiv dependent

Fie R o schema cu multimea de atribute U si F o multime


de dependente functionale. Un atribut B din U se numeste
tranzitiv dependent de X (XU, BX), daca exista YU,
astfel incat:

20

B U-Y,
X Y F+,
Y B F+,
Y X F+.

1NF

O schem de relaie este n 1NF dac domeniile de valori


ale tuturor atributelor sunt elementare (indivizibile) deci
diferite de multimi, de tuple de valori dintr-un anumit
domeniu. n general numim valoare elementar o valoare
pentru care n aplicaii nu se utilizeaz pri ale ei

21

2NF

O schema de relatie R situata in 1NF, impreuna cu o multime


de dependente functionale F este in a doua forma normala
daca orice atribut neprim din R este dependent plin de orice
cheie a lui R.

Obs: Orice relaie ce nu are chei multivaluate este n 2NF.

Exemplu

22

R(A, B, C, D)
F = {AB C,B D, BC A}.
AB si BC sunt singurele chei
D este atribut neprim
B D F +, deci D nu este dependent plin nici de AB, nici de BC. In concluzie,
aceasta schema impreuna cu F nu este in 2NF.

???

Absolventi(CNP, aNume, hobby)


Un Absolvent, identificat prin CNP, are un singur nume
ns mai multe hobbyuri
Absolventi nu este n 2 NF. Ce anomalii apar din
nerespectarea 2NF?
Olimpici(concurs,an,CNP,nume)
ntr-un anumit an exist un singur ctigtor (olimpic) la
un anumit concurs. Ctigtorul e identificat prin CNP i
are asociat un singur nume.
Este Olimpici in 2NF?
23

3NF

Schema de relatie R impreuna cu multimea de dependente


functionale F este in forma a treia normala (notata 3NF) daca
este in a doua forma normala si orice atribut neprim din R
NU este tranzitiv dependent de nici o cheie a lui R.

Exemplu

24

R(O, S, C)
F = {OS C, C O}
OS si SC sunt chei.
toate atributele sunt prime, deci schema este in 2NF si 3NF.

???

Olimpici(concurs,an,CNP,nume)
ntr-un anumit an exist un singur ctigtor (olimpic) la
un anumit concurs. Ctigtorul e identificat prin CNP i
are asociat un singur nume.
Olimpici nu este in 3NF. Ce probleme de inconsisten a
datelor pot s apar?

25

???

Candidat(CNP,uNume,data,specializare)
Un absolvent identificat prin CNP poate candida la orice
universitate (identificata prin uNume) la o singur
specializare din cadrul acesteia, deci o singura data
Universitile au date de aplicaie care nu se suprapun
Este Candidat n 3NF relativ la regulile specificate mai
sus?

26

BCNF

O schem de relaie R mpreun cu o mulime de dependene


funcionale F este n BCNF dac este n 1NF i pentru orice
dependen funcional netrivial X A F
X este (super)cheie pentru R

Orice schem de relaie n BCNF este n 3NF

Demonstraie?

Proiectarea unei scheme de BD in BCNF are la baz


descompunerea:

27

Intrare: o mega-relaie mpreun cu un set de dependene funcionale


Ieire: un set de relaii n BCNF care n urma reasamblrii produc
informaiile originale

???

Candidat(CNP,uNume,data,specializare)
Un absolvent poate aplica la o universitate la o singur
specializare
Universitile au date de aplicaie care nu se suprapun
Este Candidat n BCNF?

28

Descompunerea schemelor de relatie

Fie schema de relatie R[A1, A2,..., An].


= {R1,..., Rk},unde Ri[Ai1,... ,Aihi] este o descompunere a lui R
k hi
dac
A { A ,..., A }

ij

i 1 j 1

este o descompunere de tip join fr pierdere a lui R cu privire


la o mulime de d.f. F, daca pentru orice relatie r peste R ce
satisface F, avem r = r[R1] ... r[Rk] deci r se obine n urma
joinului natural peste descompunerea .

29

Exemplu
Descompunere

Absolvent(CNP,aNume,adresa,lCod,lNume,lOras,medie,
prioritate)

1={S1(CNP,aNume,adresa,lCod,medie,prioritate),
S2(lCod,lNume,lOras)}
2={S1(CNP,aNume,adresa,lCod,lNume,lOras),
S2(aNume,lNume,medie,prioritate)}

1 - de tip join fr pierdere


2 - NU e de tip join fr pierdere

30

Descompuneri de tip join fr pierdere

Teorem

Daca = (R1, R2) este o descompunere a lui R si F este o multime de d.f.,


atunci este o descompunere join fara pierdere cu privire la F d.d. R1R2
R1-R2 F+ sau R1 R2 R2-R1 F +.

(prin intersectia schemelor se intelege intersectia multimilor de atribute)

Exemplu

31

R (A,B,C)
F = {A B}.
1 = (R1(A,B), R2(A,C))
AB AC = A, AB-AC = B, A B F+
1 este de tip join fara pierdere
2 = (R1(A,B), R2(B,C)).
AB BC = B, AB-BC = A, B A F+,
AB BC = B, BC-AB = C, B C F+,
2 nu este de tip join fara pierdere cu privire la F.

Descompunere de tip join fara pierdere


in BCNF

Intrare:

Iesire:

=R=R1

Calculm F+ i cheile necesare verificrii formei BCNF

Pasul 2.

Descompunerea = (R1,...,Rk), astfel incat este de tip join fara pierdere cu


privire la F si (Ri, Fi) este in BCNF i = 1, k.

Pasul 1.

Schema de relatie R cu dependentele functionale F.

Fie Ri o schema de relatie din , pentru care (Ri, Fi) nu este in BCNF.
Exista X A Fi+, A X si X nu include o cheie.
Construim S1 = X U {A}, S2 = Ri A
nlocuim Ri in prin S1, S2. k = k + 1.
Calculm FS1+ FS2+ i cheile pt. S1, S2 necesare verificrii formei BCNF

Pasul 3.

32

Repetam pasul 2, pana cand obtinem toate (Ri,Fi),i = 1,k in BCNF.

Exemplu
Descompunere n BCNF
Absolvent(CNP, aNume, adresa,
lCod, lNume, lOras, medie, prioritate)
CNP aNume, adresa, medie
medie prioritate
lCod lNume, lOras

{R1(lCod,lNume,lOras),
R2(medie,prioritate),
R3(CNP,aNume,adresa,medie),
R4(CNP,lCod)}
este o descompunere de tip join fr pierdere n
BCNF

Pentru o schem de relaie R pot exista mai multe


descompuneri de tip join fr pierdere n BCNF?
33

Garanteaz desc. n BCNF o schem bun?

Poate fi reconstruit relaia original?

Elimin redundana?

34

Candidat(CNP, uNume, hobby)

d.f.? NU

Chei? Toate atributele

BCNF? DA

Schem bun?

Dependene multivaluate

Reguli generatoare de tuple


X Y daca
t1 , t 2 r, t1[X] t 2 [X] , exista t 3 , t 4 r astfel nct
(i) t 3[X] t1[X], t 3[Y] t1[Y] i t 3[Z] t 2 [Z]
(ii) t 4 [X] t 2 [X], t 4 [Y] t 2 [Y] i t 4 [Z] t1[Z]
r relaie peste mulimea de atribute U
X,Y submulimi ale lui U
Z=U-XY

Orice d.f. este d.mv.


35

Exemplu
Dependene multivaluate

Candidat(CNP, uNume, hobby)


Cerine:

Regula corespunztoare:

Aceleai hobbyuri la toate univ

CNPuNume

Exemplu extins

Candidat(CNP,uNume,data,specializare,hobby)

Cerine:

Regulile corespunztoare:

36

Hobbyurile sunt introduse selectiv n funcie de universitate


Un Absolvent candideaz ntr-o singur zi la o anumit universitate
Un Absolvent poate aplica la mai multe specializri (hobbyurile declarate la o
univ. trebuie sa fie vizibile la specializarile de la acea univ.)

CNP,uNumedata
CNP,uNume,dataspecializare

???

Fie R(A,B,C) i AB
A ia cel puin 3 valori diferite iar fiecare valoare a lui A
este asociat cu cel puin 4 valori diferite pentru B i cel
puin 5 valori diferite pentru C.
Care este numrul minim de tuple n R?

37

Dependene multivaluate
Reguli

Dependene triviale
Reflexivitate (MVD1)
X Y unde XY=U

Complementariere (MVD0)
Tranzitivitatea (!=d.f.)
Intersecia

38

4NF

O schem de relaie R i o mulime de dependene


multivaluate D este n 4NF dac este n 1NF i

pentru orice dependen multivaluat netrivial X A D


X este (super)cheie pentru R

Orice schem de relaie n 4NF este n BCNF

Proiectarea unei scheme de BD in 4NF are la baz


descompunerea:

39

Intrare: o mega-relaie mpreun cu un set de dependene


funcionale i multivaluate
Ieire: un set de relaii n 4NF care n urma reasamblrii produc
informaiile originale

Descompunere de tip join fara pierdere


in 4NF

Intrare:

Iesire:

=R=R1
Calculm M={F+ ,MV+ } i cheile necesare verificrii formei 4NF

Pasul 2.

Descompunerea lui = (R1,...,Rk), astfel incat este de tip join fara pierdere cu
privire la F si (Ri,Fi,MVi) este in 4NF i = 1, k.

Pasul 1.

Schema de relatie R cu dependentele functionale F i dependenele multivaluate


MV

Fie Ri o schema de relatie din , pentru care (Ri, Fi,MVi) nu este in 4NF.
Exista X A M netrivial si X nu include o cheie.
Construim S1 = X U {A}, S2 = Ri A
nlocuim Ri in prin S1, S2. k = k + 1.
Calculm d.mv i cheile pt. S1, S2 necesare verificrii formei 4NF

Pasul 3.

40

Repetam pasul 2, pana cand obtinem toate (Ri,Fi),i = 1,k in NF.

Exemplu
Descompunere n 4NF

Candidat(CNP, uNume, hobby)


CNPuNume
={A1(CNP,uNume),A2(CNP,hobby)} este descompunere
n 4NF de tip join fr pierdere
u*h, u+h

Exemplu extins
Candidat(CNP,uNume,data,specializare,hobby)
CNP,uNumedata
CNP,uNume,dataspecializare
={A1(CNP,uNume,data),
A2(CNP,uNume,specializare),
A3(CNP,uNume,hobby)}
este n 4NF de tip join fr pierdere

41

Neajunsuri ale normalizrii


Exemplu 1

Candidat(CNP,uNume,data,specializare)
CNP,uNumedata,specializare
datauNume

{A1(data,uNume), A2(CNP,data,specializare)} n 4NF este


o schem mai bun?

42

Neajunsuri ale normalizrii


Exemplu 2

Absolvent(CNP,lNume,medie,prioritate)
CNPmedie
medie prioritate
CNP prioritate
{S1(CNP,prioritate),S2(CNP,medie),S3(CNP,lNume)} n
4NF este o schem bun?

43

Neajunsuri ale normalizrii

Supra-descompunere
Interogri supra-ncrcate

Ca soluie se poate aplica denormalizarea

44

Bibliografie

Victor Felea: Baze de date relationale. Dependente. Editura


Universitatii Al.I.Cuza Iasi, 1996
Hector Garcia-Molina, Jeff Ullman, Jennifer Widom: Database
Systems:The Complete Book, Prentice Hall; 2nd edition (June 15,
2008)

Unele exemple sunt adaptate dupa cursul public de Baze de date


de la Stanford (autor Jennifer Widom)
45

S-ar putea să vă placă și