Sunteți pe pagina 1din 7

A doua formă normală (FN2)

O relaţie care este în FN1 dar nu este în FN2 poate suferi anomalii la modificare,
ca în următorul exemplu:
Exemplu:
Fie baza de date a unui institut de cercetări care are mai multe filiale şi în care salariaţii sunt plătiţi în
funcţie de numărul de ore lucrate în cadrul unui proiect de cercetare.dintre entităţile care apar într-o astfel
de bază de date enumerăm:
Filiale={CodFil, NumeFil, LocFil}
Angajati={CNP, CodFil, NumeAng, Adresa, SalariuPeOra}
Proiecte={CodPr, TitluPr, CodFil, DataPredarii}
AngajatiProiecte={CNP, NumeAng, CodPr, TitluPr, NrOre, DataPredarii} cu instantele de mai jos:

Observaţie!
FN2 se referă numai la relaţii a căror cheie primară este formată din mai multe
atribute, deoarece se bazează pe conceptul de dependenţă funcţională
completă.
Definiţie:
Dependenţa funcţională completă
Fie a1 şi a2 două atribute ale entităţii E; spunem ca a2 este complet dependent
funcţional de a1 dacă şi numai dacă a2 este dependent funcţional de a1 dar nu
este dependent funcţional de nici o submulţime proprie a lui a1.
Definiţie: A doua formă normală
O relaţie este în FN2 dacă şi numai dacă:
1. Este deja în FN1
2. Oricare dintre atributele sale care nu fac parte din cheia primară este
complet dependent funcţional de cheia primară
Aducerea unei relaţii la FN2
Fie e o entitate aflată în FN1; aducerea ei la FN2 necesită:
1. Identificarea tuturor dependenţelor funcţionale dintre atributele entităţii
2. Descompunerea entităţii E în entităţi noi astfel:
 Fiecare dependenţă funcţională completă defineşte o nouă entitate
 Din fiecare dependenţă funcţională parţială se elimină acea parte a cheii
primare care este răspunzătoare de incompletitudinea dependenţei şi
apoi se defineşte noua relaţie
3. Stabilirea relaţiilor dintre noile entităţi (în scopul recuperării informaţiilor
de legătură, pierdute eventual prin înlocuirea entităţii iniţiale cu entităţile
normalizate)
A treia formă normală (FN3)
O relaţie care este în FN2 dar nu este în FN3 poate suferi anomalii la modificare, ca
în exemplul următor:
Fie baza de date a institutului de cercetări descrisă mai devereme. Presupunem că
am introdus şi entitatea AngajatiFiliale={CNP, NumeAng, Adresa, Oras, CodFil,
NumeFil, LocFil} cu instanţele de mai jos

Observaţie! FN3 se bazează pe conceptul de dependenţe funcţionale tranzitive.


Definiţie: Dependenţe funcţionale tranzitive
Fie a1, a2 şi a3 trei atribute ale unei entităţi E cu proprietatea că:
a1  a2 si a2  a3
a1 nu depinde functional nici de a2 nici de a3
Atunci: a1  a3 (a3 depinde functional de a1 via a2)
Exemplu
Cnp Nume Pren Adresa CodCl Locatie NrBanci NrTable
1900530123 Savu Ion B IXC Cam09 15 2
1900924456 Rosu R CJ XA Cam15 21 3
2900225789 Banu M B XA Cam15 21 3
2900807246 Rona C AR IXC Cam09 15 2
1901010357 Mares D DJ XIB Cam23 18 3

Avem urmatoarele dependente functionale: CNP  CodCl si CodCl  Loc atunci


avem si CNP  Loc via atributul CodCl deoarece atributul CNP nu depinde
functional nici de CodCl nici de Loc.
Definiţie: A treia formă normală
O relaţie este în FN3 dacă şi numai dacă:
1. Este deja în FN2
2. Niciunul dintre atributele sale care nu fac parte din cheia primară nu este, prin
tranzitivitate, dependent funcţional de cheia primară.
Aducerea unei relaţii la FN3 necesită:
1. Identificarea tuturor dependenţelor tranzitive dintre a tributele entităţii E
2. Descompunerea entităţii E în entităţi noi, astfel:
 Atributul a1 împreună cu toate atributele care depind funcţional de el
(inclusiv a2) formează o nouă relaţie
 Atributul a2 împreună cu atributul a3 şi cu alte atribute care
depind funcţional de a1 prin tranzitivitate formează o nouă relaţie
3. Definirea atributului a2 drept cheie primară a celei de-a doua entităţi nou
create
4. Stabilirea relaţiilor dintre noile entităţi
Procesul normalizării prin etapele FN1, FN2, FN3

Condiţie de verificat Soluţie(normalizare)

FN1 Toate atributele entităţii trebuie sa ia o singură Fiecare atribut care ia mai multe valori pentru aceeaşi instanţă
valoare se transformă într-o nouă entitate.
Se stabilesc relaţiile necesare între noile entităţi şi entitatea
iniţială modificată.
FN2 Entitatea este în FN1. Fiecare parte a cheii primare, împreună cu atributele care
Cheia sa primară constă din mai multe atribute. depind funcţional complet de ea formează o nouă entitate.
Toate atributele care nu fac parte din cheia Se stabilesc relaţiile necesare între noile entităţi care au
primară sunt complet dependente funcţional de înlocuit-o pe cea iniţială.
cheia primară.
FN3 Entitatea este în FN2. Se păstrează în entitatea iniţială numai cheia primară şi
Niciun atribut care nu face parte dintr-o cheie atributele care depind funcţional de ea direct (inclusiv atributul
candidat nu este funcţional dependent de un alt incriminat)
atribut care nu face nici el parte dintr-o cheie Se crează câte o nouă entitate din fiecare atribut care nu
candidat face parte din cheia primară, împreună cu toate atributele
(care nu fac nici ele parte din cheia primară a entităţii iniţiale)
care sunt dpendente funcţional de acesta.
Se stabilesc relaţiile necesare între noile entităţi şi
entitatea iniţială modificată.
Sursa: Informatică – Manual pentru clasa a XII-a, Editura Corint, Mioara
Gheorghe, Monica Tătărâm, Corina Achinca, Ioana Pestriţu, 2007

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