70 likes | 309 Views
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:
E N D
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ă: • Este deja în FN1 • 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 • 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ă: • Este deja în FN2 • 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ă: • Identificarea tuturor dependenţelor tranzitive dintre a tributele entităţii E • 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 • Definirea atributului a2 drept cheie primară a celei de-a doua entităţi nou create • Stabilirea relaţiilor dintre noile entităţi
Sursa: Informatică – Manual pentru clasa a XII-a, Editura Corint, Mioara Gheorghe, Monica Tătărâm, Corina Achinca, Ioana Pestriţu, 2007