Sunteți pe pagina 1din 30

BAZE DE DATE

Curs 11

Descompunerea unei scheme de


relaţie.
Procesul de normalizare

M. Danubianu - Baze de date 1


Noţiuni abordate

◼ Descompunerea unei scheme de relaţie.


◼ Normalizarea. Formele normale
◼ Rafinarea schemei în procesul de proiectare al
bazelor de date

M. Danubianu - Baze de date 2


Descompunerea unei scheme de relaţie
◼ Descompunerea unei scheme de relaţie R(A1 ... An) - înlocuirea sa printr-o
colecţie ={R1,R2,..Rn} de submulţimi ale lui R astfel încât :
R=R1R2. . . .Rk
unde R1,R2,..Rk nu sunt disjuncte.
◼ relaţiile corespunzătoare schemelor R1, R2, ..Rk - proiecţii nedisjuncte ale
relaţiei corespunzătoare schemei iniţiale R
◼ se urmăreşte realizarea unei separări a conţinutului de informaţie din relaţia
iniţială astfel încât fiecare din schemele de relaţie rezultate să reprezinte un
singur tip de entitate sau o legătură între două tipuri de entităţi.
◼ fiecare schemă de relaţie nouă conţine o submulţime a atributelor din R

(fără atribute noi, care nu apar în R), şi


◼ fiecare atribut din R apare ca un atribut al uneia din noile relaţii.

◼ In baza de date vor fi stocate instanţe ale schemelor de relaţie obţinute prin
descompunere, în loc de instanţe ale lui R

M. Danubianu - Baze de date 3


Exemplu 1
◼ Se descompune relaţia
◼ Ang_proiecte (prid, marca, numepr, angajat, categ,

sal_orar) (PMNACS) în PN şi PMACS


Tabelul Proiecte
Prid Nume_pr
1023 Proiect1
1056 Proiect2

Relaţia Angajaţi
Prid Marca Angajat Categ Sal_orar
1023 11 Creţu Gabriela A $ 6 0

1 0 2 3 1 2 I l i e s c u d a n B $ 5 0

1 0 2 3 1 6 A v r a m A l i n C $ 4 0

1 0 5 6 1 1 C r e ţ u G a b r i e l a A $ 6 0

1 0 5 6 1 7 D o g a r u D o r i a n B $ 5 0

M. Danubianu - Baze de date 4


Exemplu 2

◼ În relaţia PMNACS (Ang_proiecte) există următoarele


dependenţe funcţionale:
◼ combinaţie prid şi marca este cheia : PM → PMNACS
◼ categ determină sal_orar: C → S
◼ C → S determină probleme de redundanţă: valorile lui C care se repetă
sunt asociate cu valori ale lui S. Cel mai simplu mod de a elimina aceste
probleme este de a crea o relaţie CS care să memoreze aceste asocieri şi
de a elimina S din schema principală:
◼ Se va descompune astfel PMNACS in PMNA şi CS

◼ Informaţia care trebuie memorată este alcătuită din tuplurile PMNACS Ce se


întâmplă dacă se vor memora proiecţiile acestor tupluri după PMNA şi
CS???

M. Danubianu - Baze de date 5


Descompunerea unei scheme de relaţie (II)
Descompunerea  a unei scheme de relaţie R este echivalentă cu R dacă
are proprietăţile de:
◼ uniune fără pierdere de informaţie (lossless join) - posibilitatea găsirii
oricărei instanţe a relaţiei iniţiale din instanţele corespunzătoare
relaţiilor rezultate
◼ conservarea dependenţelor (dependency preservation) -posibilitatea
impunerii unei constrângeri asupra relaţiei originale prin impunerea de
constrângeri asupra fiecăreia din relaţiile rezultate
◼ Fie R o schemă de relaţie descompusă în schemele R1,R2,..Rk.
Descompunerea are proprietatea de uniune fără pierdere de informaţie
dacă pentru orice relaţie r, valoare actuală (instanţă) a schemei de
relaţie R, avem:
r= R1( r) ►◄  R2 ( r) ►◄ ... Rk (r ),
(r este rezultatul joncţiunii proiecţiilor sale după schemele de relaţie R1,
R2,.. Rk.)

M. Danubianu - Baze de date 6


Teorema lui Ullman
◼ regulă simplă pentru verificarea proprietăţii de conservare a conţinutului de
informaţie în cazul descompunerii unei relaţii în alte două relaţii
Fie  = {R1,R2} o descompunere a schemei de relaţie R.  constituie o
descompunere fără pierdere de informaţie, în raport cu un set dat de
dependenţe funcţionale iniţiale, dacă în urma descompunerii avem una din
următoarele dependenţe funcţionale:
◼ (R1R2) → (R1-R2)
◼ (R1R2) → (R2-R1)
corolar : dacă intersecţia celor două proiecţii ale unei descompuneri R1R2
este, sau conţine o cheie a uneia dintre componentele R1 sau R2, atunci
descompunerea este fără pierdere de informaţie.
◼ Verificare - prin existenţa cel puţin a uneia dintre dependenţele:
◼ (R1R2) → R1→ (R1-R2)
◼ (R1R2) → R2 → (R2-R1)

M. Danubianu - Baze de date 7


Exemplu A
1
B
2
A B C 4 5
◼ Fie relaţia R (A,B,C) cu instanţa 1 2 3 7 2
prezentată. Se descompune R în S(A,B) şi 4 5 6
B C
Q(B,C) 7 2 8
2 3
5 6
A B C
Ce se poate spune despre această
2 8
◼ 1 2 3
descompunere? 4 5 6
7 2 8
1 2 8
7 2 3
M. Danubianu - Baze de date 8
Conservarea dependenţelor
◼ importantă d.p.d.v. al integrităţii bazei de date
◼ intuitiv- proprietatea unei descompuneri de a permite deducerea tuturor
dependenţelor din relaţia iniţială pe baza dependenţelor existente în
descompunere
◼ fie R o schemă de relaţie şi ={R1,R2,..Rk} o descompunere a sa.
◼ o parte din dependenţele funcţionale din R se vor regăsi în schemele de
relaţie Ri
◼ dependenţele care implică atribute din componente diferite Ri şi Rj ale
descompunerii nu vor mai fi găsite în cadrul schemelor individuale (se
transformă în dependenţe inter-relaţii).
◼ ar putea fi deduse din dependenţele funcţionale rămase folosind
axiomele lui Armstrong.
◼ dacă închiderea tranzitivă a dependenţelor funcţionale din schemele
de relaţie ale descompunerii include toate dependenţele funcţionale
din schema de relaţie iniţială R, atunci descompunerea are
proprietatea de conservare a dependenţelor.
◼ verificarea acestei condiţii impune posibilitatea de a deduce din
dependenţele funcţionale rămase în descompunere, acele dependenţe din
relaţia iniţială care s-au pierdut prin procesul de descompunere.
M. Danubianu - Baze de date 9
Exemplu
Telefon(Judeţ, Oras, Prefix) – (JOP)
◼ se pot identifica dependenţele:
◼ JO →P (fiecărui oraş îi corespunde un prefix al numerelor de telefon).
◼ P→J
◼ ? Se poate lua în considerare depndenţa O→P???
◼ Dar dependenţa P →O??
◼ se consideră următoarea descompunere a relaţiei telefoane:
◼ OP (Oras, Prefix)
◼ JP (Judeţ, Prefix)
◼ descompunerea are proprietatea de uniune fără pierdere a informaţiei (DE
CE?)
◼ în relaţiile OP şi JP s-a conservat dependenţa P →J
◼ nu există nici o cale de a deduce dependenţa JO→P  desc. schemei de
relaţie Telefoane în OP şi JP nu conservă dep. funcţ.
◼ dacă se înlocuieşte schema Telefoane cu OP şi JP apar probleme de
integritate a datelor.
◼ dacă se modifică prefixul unui oraş în OP nu se poate verifica dacă noul
prefix este valid pentru judeţul în care se află oraşul, şi astfel există
posibilitatea violării constrângerii impusă de dependenţa JO→P

M. Danubianu - Baze de date 10


◼ Proiecţia unei mulţimi de dependenţe funcţionale F : Dacă R este
descompusă în schemele X,Y,... proiecţia lui F pe X(notată FX ) este
mulţimea dependenţelor funcţionale U → V din F+ (închiderea tranzitivă a lui
F ) pentru care U, V X
◼ Descompunerea lui R in X şi Y conservă dependenţele dacă (FX  FY )+ = F +
◼ dacă se consideră doar acele dependenţe din F care pot fi controlate în X
+

fără a lua în considerare Y, şi cele din Y fără a lua în considerare X,


acestea trebuie să implice toate dependenţele din F+
◼ Este important să se considere F +, şi nu F:
◼ Fie schema de relaţie ABC, dependenţele A → B, B → C, C → A, şi
descompunerea acesteia în AB şi BC.
◼ Sunt conservate dependenţele?

◼ Conservarea dependenţelor şi uniunea fără pierderi sunt proprietăţi


independente.

 Găsiţi exemple de descompuneri care respectă una din condiţii dar o violează pe
cealaltă.
M. Danubianu - Baze de date 11
Probleme cauzate de descompunerea relaţiilor

◼ Trebuie luate în calcul trei posibile probleme:


❑ Anumite interogări devin mai costisitoare
❑ Din instanţele relaţiilor obţinute după descompunere, este posibil
sa nu poată fi recompusă instanţa relaţiei originale.
❑ Verificarea anumitor dependenţe poate necesita uniunea
(joncțiunea) instanţelor relaţiilor descompuse.
❑ Sfat: Comparaţi întotdeauna aceste probleme cu cele cauzate de
redundanţă.

M. Danubianu - Baze de date 12


Rolul dependenţelor funcţionale în determinarea
formelor normale şi în detectarea redundanţei

◼ Fie o relaţie R a cărei schemă de relaţie este


alcătuită din trei atribute A,B,C.
◼ dacă nu sunt detectate dependenţe funcţionale, atunci nu există
redundanţă
◼ Dacă există o dependenţă de tipul A → B, atunci mai multe
tupluri pot avea aceeaşi valoare pentru atributul A, şi în acest
caz, ele vor avea valori identice şi pentru atributul B!

M. Danubianu - Baze de date 13


Procesul de normalizare
◼ Tratare de jos în sus a proiectării bazelor de date – începe prin examinarea
legăturilor dintre atribute
◼ Codd 1972 – trei forme normale (FN1, FN2 şi FN3)
◼ Boyce şi Codd introduc o definiţie mai completă pentru FN3
◼ FN4 şi FN5 se bazează pe alte tipuri de dependenţe (multivalorice, respectiv de
uniune fără pierderi)
◼ Normalizarea – metodă formală care identifică relaţiile pe baza cheilor
(primare sau candidat) şi a dependenţelor dintre atributele lor
◼ o serie de paşi
◼ fiecare pas corespunde unei forme normale cu proprietăţi cunoscute
◼ relaţiile devin progresiv mai restrictive şi mai puţin vulnerabile faţă de anomaliile
de actualizare
◼ Afectează negativ eficienţa rezolvării interogărilor
◼ FN1 creează relaţii potrivite modelului relaţional
◼ FN3 elimină anomaliile de reactualizare

M. Danubianu - Baze de date 14


Forme Normale - forma nenormalizată (UNF)

◼ Un tabel care conţine unul sau mai multe grupuri repetitive


◼ grup repetitiv: atribut sau grup de atribute care apare cu valori
multiple pentru o singură apariţie a altor atribute

Prid Numepr Marca Angajat Categ. Sal_orar


1023 Proiect 1 11 Creţu Gabriela A $60
12 Iliescu Dan B $50
16 Avram Alin C $40
1056 Proiect 2 11 Creţu Gabriela A $60
17 Dogaru Dorian B $50

M. Danubianu - Baze de date 15


Forme Normale - prima formă
normală

◼ O relaţie R este în prima formă normală (FN1)dacă şi


numai dacă toate atributele sale iau valori atomice.
◼ Se elimină grupurile repetitive
◼ prin introducerea de date adecvate în coloanele goale ale rândurilor
care conţin date repetitive-- aplatizarea tabelului
◼ produce relaţii în FN1 cu redundanţă sporită
◼ se nominalizează un atribut sau un grup de atribute ca cheie a
tabelului nenormalizat, apoi se elimină grupurile repetitive prin
plasarea datelor care se repetă împreună cu o copie a atributului
cheie într-o relaţie separată. Se identifică apoi cheile primare ale
noilor relaţii.
◼ Produce relaţii aflate în FN1 cu redundantă mai scăzută

M. Danubianu - Baze de date 16


Exemplu- metoda 1
Ang_proiecte
Prid Nume_pr Marca Angajat Categ Sal_orar
1023 Proiect 1 11 Creţu Gabriela A $60
1023 Proiect 1 12 Iliescu dan B $50
1023 Proiect 1 16 Avram Alin C $40
1056 Proiect 2 11 Creţu Gabriela A $60
1056 Proiect 2 17 Dogaru Dorian B $50

-conţine date redundante


Posibile anomalii:
- pentru a insera detalii referitoare la noi membri de personal, trebuie să
fie incluse date despre proiectele la care lucrează
- ??? Cum se introduc date referitoare la un nou proiect???
- ??? Ce se întâmplă dacă sunt şterse datele corespunzătoare unui proiect???
- ??? Cum se pot modifica date referitoare la un angajat???
ELIMINAREA ACESTOR ANOMALII presupune transformarea în FN2

M. Danubianu - Baze de date 17


Exemplu- metoda 2
Relaţia Proiecte Relaţia Angajaţi
Prid Marca Angajat Categ Sal_orar
Prid Nume_pr 1023 11 Creţu Gabriela A $ 6 0

1023 Proiect 1 1

1
0

0
2

2
3

3
1

1
2

6
I

A
l i

v
e

r
s

a
c

m
u d

A
a

l
n

i n
B

C
$

$
5

4
0

1056 Proiect 2 1 0 5 6 1 1 C r e ţ u G a b r i e l a A $ 6 0

1 0 5 6 1 7 D o g a r u D o r i a n B $ 5 0

- Ambele relaţii sunt în FN1


- Relaţia “Angajaţi” conţine o oarecare redundanţă - poate suferi
anomaliile de actualizare /inserare / ştergere

M. Danubianu - Baze de date 18


Forme Normale - a doua formă
normală
◼ se bazează pe conceptul de dependenţă totală
◼ se aplică relaţiilor cu chei compuse
◼ rezolvă problemele cauzate de existenţa dependenţelor
funcţionale dintre atributele prime şi cele neprime din cadrul
tuplurilor

◼ O relaţie este în a doua formă normală (FN2) dacă este în


prima formă normală şi orice atribut neprim este total
dependent funcţional de orice cheie a relaţiei

M. Danubianu - Baze de date 19


Exemplu
◼ Se consideră relaţia din Exemplul 1 -FN1
◼ se caută dependenţele parţiale (acele atribute care depind fie numai de
Prid, fie numai de Marca)
◼ Prid →Nume_pr

◼ Marca →angajat, categ, sal_orar

Tabelul Proiecte Tabelul Angajaţi


Prid Nume_pr Cat
Marca Angajat Sal_orar
1023 Proiect1 eg
1056 Proiect2 11 Creţu Gabriela A $60
12 Iliescu dan B $50
Tabelul Ang_Pro
16 Avram Alin C $40
Prid Marca
17 Dogaru Dorian B $50
1023 11
1023 12
1023 16
1056 11
1056 17

M. Danubianu - Baze de date 20


Forme Normale - a treia formă normală
◼ Se referă la dependenţele tranzitive
◼ scop: eliminarea dependenţelor funcţionale ale atributelor
neprime faţă de orice alt atribut neprim al relaţiei

◼ O relaţie R este în cea de-a treia formă normală (FN3) dacă


este în FN2 şi nici un atribut neprim nu este dependent de un
alt atribut neprim al relaţiei, sau , cu alte cuvinte nici un
atribut neprim nu este dependent tranzitiv de cheia relaţiei.

◼ Normalizarea de la FN2 la FN3 plasarea atributelor


dependente tranzitiv de cheie într-o nouă relaţie împreună cu o
copie a determinantului acestora

M. Danubianu - Baze de date 21


Exemplu
Tabelul Angajaţi In relaţia “Angajaţi”, care este în
Cat FN2, se mai pot manifesta
Marca Angajat Sal_orar anomalii
eg
11 Creţu Gabriela A $60 Doi angajaţi cu aceeaşi
12 Iliescu dan B $50 categorie, dar cu sal_orar
16 Avram Alin C $40 diferit
17 Dogaru Dorian B $40

Relaţia date_ angajaţi Relaţia Salarii


Marca Angajat Categ Categ Sal_orar
11 Creţu Gabriela A A $60
12 Iliescu dan B B $50
16 Avram Alin C C $40
17 Dogaru Dorian B

M. Danubianu - Baze de date 22


Rezumat normalizare UNF - FN3

Ang_proiecte

Ang_pro Proiecte
Angajaţi

Date_angajaţi Salarii

M. Danubianu - Baze de date 23


Forme Normale - forma normală Boyce Codd
◼ Se bazează pe dependenţele funcţionale care iau în considerare toate
cheile candidat din cadrul unei relaţii
◼ pentru relaţiile cu o singură cheieFN3 şi FNBC sunt echivalente
◼ O relaţie se află în forma normală Boyce-Codd dacă şi numai dacă
fiecare determinant este o cheie candidat
◼ O relaţie R este în forma normală Boyce-Codd (FNBC) dacă pentru orice
dependenţă funcţională X→A din cadrul relaţiei R, unde A este un
atribut care nu face parte din X, atributul (posibil compus) X este o cheie
în R sau include o cheie din R.
◼ descompunerea unei relaţii pînă la FNBc are proprietatea de

cuplare fără pierdere de informaţii, dar nu garantează conservarea


tuturor dependenţelor
◼ potenţial poate să apară violarea FNBC dacă:

◼ o relaţie conţine două sau mai multe chei candidat compuse


◼ cheile se suprapun ( au în comun cel puţin un atribut)

M. Danubianu - Baze de date 24


Forme Normale - a patra formă normală
Dependenţe multivalorice
◼ Fie trei atribute ale unei relaţii A,B şi C. Se spune că între acestea există o
dependenţa multivalorică (MVD), dacă pentru fiecare valoare a atributului
A există o mulţime de valori ale atributului B şi o mulţime de valori ale
atributului C. Suplimentar, mulţimile de valori ale atributelor B şi C
trebuie să fie independente unele de altele.
◼ A-- B şi A -- C.

◼ Pot fi
◼ triviale:o dependenţă multivalorică A→>B în relaţia R este trivială
dacă este satisfăcută una din condiţiile:
◼ a) B este o submulţime a lui A sau

◼ b)AB = R.

◼ netriviale: o dependenţă MVD este netrivială decă nu este satisfăcută


nici una din condiţiile de mai sus.
◼ O dependenţă trivială nu specifică o constrângere asupra unei relaţii, în
timp ce una netrivială o face.

M. Danubianu - Baze de date 25


Forme Normale - a patra formă normală
Dependenţe multivalorice- Exemplu
Proiect_angajat_beneficiar

Prid Angajat Beneficiar Prid -->> Angajat


1023 Iliescu Carmen IUPS Prid -->>Beneficiar
1023 Dincă Dragos IUPS
1023 Iliescu Carmen AMBRO
1023 Dincă Dragos AMBRO
- se observă ca există redundanţă sporită
- deşi relaţia este în FNBC ( deoarece există o singură cheie candidat)
ea este prost structurată datorită dependenţelor multivalorice netriviale

O relaţie se află în cea de-a patra formă normală (FN4) dacă ea se află în forma
normală Boyce Codd (FNBC) şi nu conţine dependenţe multivalorice netriviale.

Relaţia proiect_angajat Relaţia Proiect_beneficiar


Prid Angajat Prid Beneficiar
1023 Iliescu Carmen 1023 IUPS
1023 Dincă Dragoş 1023 AMBRO
M. Danubianu - Baze de date 26
Forme Normale - a cincea formă normală
Dependenţe de uniune fără pierderi
◼ Uniunea fără pierderi este o proprietate a operaţiei de descompunere
care garantează că nu se generează rânduri false atunci când relaţiile sunt
reunite printr-o operaţie de uniune naturală.
◼ la descompunerea relaţiilor prin operaţia de proiecţie, trebuie utilizate
numai proiecţii care pot fi inversate prin uniunea relaţiilor rezultante, a. î.
să poată fi reconstituită relaţia iniţială  descompunere de tip uniune fără
pierderi (non-pierdere, neaditivă) deoarece se păstrează toate datele din
relaţia iniţială şi nu are drept rezultat crearea de rânduri suplimentare false.
◼ Sunt situaţii în care este necesară efectuarea unei descompuneri de
tip uniune fără pierderi a unei relaţii în mai mult de două relaţii.
◼ O relaţie se găseşte în cea de-a cincea formă normală (FN5) dacă nu
are nici o dependenţă de tip uniune. Aceasta se mai numeşte şi forma
normală de tip proiecţie – uniune (FNPJ).

M. Danubianu - Baze de date 27


Forme Normale - a cincea formă normală
Dependenţe de uniune fără pierderi-Exemplu
Se specifică o constrângere suplimentară
prin care se solicită ca furnizorii să asigure
anumite materiale unui anumit proiect, (chiar
Prid Material Furnizor
1023 CD F1 dacă un anumit furnizor poate asigura toate articolele
1023 Tonner F2 necesare unui anumit proiect).
1056 CD F2 - constrângerea specifică o dependenţă
1056 Hârtie Xerox F1
1124 Ribon impr F3
de tip uniune în relaţia Proiect_material_furnizor.

- structura relaţiei nu acceptă această constrângere - nu este restricţionată adăugarea


următoarelor rânduri: (1056, CD, F1) sau (1023,CD,F2)
- relaţia Proiect_material_furnizor conţine o dependentă de tip uniune, ea nu se află
în a cincea formă normală (FN5).

M. Danubianu - Baze de date 28


Forme Normale - a cincea formă normală
Dependenţe de uniune fără pierderi-Exemplu- Soluţia

Proiect Material Material Furnizor Proiect Furnizor


1023 CD CD F1 1023 F1
1023 Tonner Tonner F2 1023 F2
1056 CD CD F2 1056 F2
1056 Hârtie Hârtie F1 1056 F1
1124 Ribon Ribon F3 1124 F3

- uniunea naturală a oricăror două relaţii va produce rânduri false,


- uniunea naturală a celor trei relaţii nu va produce râduri false.

M. Danubianu - Baze de date 29


Concluzii
◼ Forma nenormalizată (UNF) → Eliminarea grupurilor
repetitive => FN1
◼ FN1 → Eliminarea dependenţelor parţiale => FN2
◼ FN2→ Eliminarea dependenţelor tranzitive => FN3
◼ FN3→ Eliminarea anomaliilor rămase din
dependemţele funcţionale => FNBC
◼ FNBC→ Eliminarea dependenţelor multivalorice
netriviale => FN4
◼ FN4 → Eliminarea dependenţelor de tip uniune =>
FN5

M. Danubianu - Baze de date 30

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