Documente Academic
Documente Profesional
Documente Cultură
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
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