Sunteți pe pagina 1din 45

BAZE DE DATE

Proiectarea bazelor de date relaionale

Normalizare
Mihaela Elena Breabn
FII 2014-2015

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 n 70

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 aplicat
Liceele de la care provin candidaii (i oraele)
Hobby-urile candidailor

Aplicatie(CNP, sNume, 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 Aplicatie 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 aplicat
Liceele de la care provin candidaii (i oraele)
Hobby-urile candidailor
Student(CNP, sNume)
Aplicatie(CNP, uNume)
Liceu(CNP, codLiceu)

LocatieLiceu(codLiceu, lNume, lOra)


Hobbies(CNP, hobby)

Quiz
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
Student(CNP, sNume, adresa,
lCod, lNume, lOras, medie,
prioritate)
Aplicatie(CNP, uNume, uOras, data,
specializare)

Valorile atributului prioritate sunt determinate de valorile


atributului medie

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

Quiz

R(A,B,C,D,E)
ABC
CDE
Fiecare din atributele A,B,D 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 valorile unei alte


submulimi de atribute

Chei

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 a acestei mulimi

Valorile unei submulimi de atribute determin valorile tuturor


atributelor -> supercheie
O cheie este submulime minimal cu proprietatea de mai sus
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

Student(CNP, sNume, adresa,


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

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


16

Quiz

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.

Quiz

Studenti(CNP, sNume, hobby)


Un student are un singur nume ns mai multe hobbyuri
Studenti 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 numele.
Este Olimpici in 2NF?
23

3NF

Schema de relatie R impreuna cu F se spune ca 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.

Quiz

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 numele.
Olimpici nu este in 3NF. Ce probleme de inconsisten a
datelor pot s apar?

25

Quiz

Aplicaie(CNP,uNume,data,specializare)
Un student poate aplica la universitate o singur dat,
adic la o singur specializare
Universitile au date de aplicaie care nu se suprapun
Este Aplicaie n 3NF relativ la regulile specificate mai sus?

26

BCNF

O schem de relaie R mpreun cu o mulime de dependene


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

Orice schem de relaie n BCNF este n 3NF

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

Quiz

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

28

Descompunerea schemelor de relatie

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


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

hi

ij

{ An ,..., An }

i 1 j 1

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


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

29

Exemplu
Descompunere

Student(CNP,sNume,adresa,lCod,lNume,lOras,medie,
prioritate)

1={S1(CNP,sNume,adresa,lCod,medie,prioritate),
S2(lCod,lNume,lOras)}
2={S1(CNP,sNume,adresa,lCod,lNume,lOras),
S2(sNume,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 +.

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 lui = (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
Student(CNP, sNume, adresa,
lCod, lNume, lOras, medie, prioritate)
CNP sNume, adresa, medie
medie prioritate
lCod lNume, lOras

{R1(lCod,lNume,lOras),
R2(medie,prioritate),
R3(CNP,sNume,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

Aplicatie(CNP, uNume, hobby)

d.f.? NU

Chei? Toate atributele

BCNF? DA

Schem bun?

Dependene multivaluate

Reguli generatoare de uple


X Y daca
t1 , t 2 r, t1[X] t 2 [X] , exist xi3 , 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

Aplicatie(CNP, uNume, hobby)


Cerine:

Regula corespunztoare:

Aceleai hobbyuri la toate univ

CNPuNume

Exemplu extins

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

Cerine:

Regulile corespunztoare:

36

Hobbyurile sunt introduse selectiv n funcie de universitate


Un student aplic ntr-o singur zi la o anumit universitate
Un student poate aplica la mai multe specializri

CNP,uNumedata
CNP,uNume,dataspecializare

Quiz

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 uple 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

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

Aplicatie(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
Aplicatie(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

Aplicaie(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

Student(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

V.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)

45

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

  • Solicitare Lamuriri LOT1
    Solicitare Lamuriri LOT1
    Document2 pagini
    Solicitare Lamuriri LOT1
    Matthew Monroe
    Încă nu există evaluări
  • Curs 1 - POO
    Curs 1 - POO
    Document49 pagini
    Curs 1 - POO
    Mirela Chiţaniuc
    Încă nu există evaluări
  • Psihologia Educau - Note Curs
    Psihologia Educau - Note Curs
    Document70 pagini
    Psihologia Educau - Note Curs
    Erik Meyer
    Încă nu există evaluări
  • Tema12 A PDF
    Tema12 A PDF
    Document7 pagini
    Tema12 A PDF
    Matthew Monroe
    Încă nu există evaluări
  • Curs-2 Programaree Orientata Obiect
    Curs-2 Programaree Orientata Obiect
    Document106 pagini
    Curs-2 Programaree Orientata Obiect
    tuti_c2006
    Încă nu există evaluări
  • Curs 3
    Curs 3
    Document83 pagini
    Curs 3
    Matthew Monroe
    Încă nu există evaluări
  • Tema 2 - Serii de Puteri Reale. Dezvoltari in Serie Taylor.
    Tema 2 - Serii de Puteri Reale. Dezvoltari in Serie Taylor.
    Document3 pagini
    Tema 2 - Serii de Puteri Reale. Dezvoltari in Serie Taylor.
    Lucian Buica
    Încă nu există evaluări
  • Curs 6
    Curs 6
    Document3 pagini
    Curs 6
    Matthew Monroe
    Încă nu există evaluări
  • Curs 4
    Curs 4
    Document6 pagini
    Curs 4
    Matthew Monroe
    Încă nu există evaluări
  • Curs 5
    Curs 5
    Document4 pagini
    Curs 5
    Matthew Monroe
    Încă nu există evaluări
  • Curs 5
    Curs 5
    Document4 pagini
    Curs 5
    Matthew Monroe
    Încă nu există evaluări
  • Referat Matematica
    Referat Matematica
    Document10 pagini
    Referat Matematica
    Ionut Gabriel Giurgean
    Încă nu există evaluări
  • Curs 2
    Curs 2
    Document5 pagini
    Curs 2
    Matthew Monroe
    Încă nu există evaluări
  • Curs 3
    Curs 3
    Document6 pagini
    Curs 3
    Matthew Monroe
    Încă nu există evaluări
  • Curs-2 Programaree Orientata Obiect
    Curs-2 Programaree Orientata Obiect
    Document106 pagini
    Curs-2 Programaree Orientata Obiect
    tuti_c2006
    Încă nu există evaluări
  • 11-12. Procesare Interogari
    11-12. Procesare Interogari
    Document66 pagini
    11-12. Procesare Interogari
    Ionut Vacariu
    Încă nu există evaluări
  • Curs 3
    Curs 3
    Document83 pagini
    Curs 3
    Matthew Monroe
    Încă nu există evaluări
  • Curs 1
    Curs 1
    Document6 pagini
    Curs 1
    Matthew Monroe
    Încă nu există evaluări
  • Curs 1
    Curs 1
    Document6 pagini
    Curs 1
    Matthew Monroe
    Încă nu există evaluări
  • Curs 1 - POO
    Curs 1 - POO
    Document49 pagini
    Curs 1 - POO
    Mirela Chiţaniuc
    Încă nu există evaluări
  • 3-5. Alg. Relationala+dependente
    3-5. Alg. Relationala+dependente
    Document51 pagini
    3-5. Alg. Relationala+dependente
    cheko1990
    Încă nu există evaluări
  • 9 10. Indecsi
    9 10. Indecsi
    Document70 pagini
    9 10. Indecsi
    Ionut Vacariu
    Încă nu există evaluări
  • Constrangeri, Declansatoare
    Constrangeri, Declansatoare
    Document27 pagini
    Constrangeri, Declansatoare
    babydoll777
    Încă nu există evaluări
  • Concepte de Baza
    Concepte de Baza
    Document24 pagini
    Concepte de Baza
    Matthew Monroe
    Încă nu există evaluări
  • Baze de Date-Intro
    Baze de Date-Intro
    Document5 pagini
    Baze de Date-Intro
    Dumitru Odajiu
    Încă nu există evaluări
  • Modelare EA
    Modelare EA
    Document42 pagini
    Modelare EA
    Bogdan
    Încă nu există evaluări
  • Concepte de Baza
    Concepte de Baza
    Document24 pagini
    Concepte de Baza
    Matthew Monroe
    Încă nu există evaluări
  • Aproximare
    Aproximare
    Document43 pagini
    Aproximare
    eirdnocotim
    Încă nu există evaluări
  • B-And-Bb
    B-And-Bb
    Document23 pagini
    B-And-Bb
    eirdnocotim
    Încă nu există evaluări