A doua form ă normală (FN2)

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ă .

description

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: - PowerPoint PPT Presentation

Transcript of A doua form ă normală (FN2)

Page 1: A doua form ă normală (FN2)

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ă.

Page 2: A doua form ă normală (FN2)

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 FN12. Oricare dintre atributele sale care nu fac parte din cheia primară este complet

dependent funcţional de cheia primarăAducerea unei relaţii la FN2Fie e o entitate aflată în FN1; aducerea ei la FN2 necesită:1. Identificarea tuturor dependenţelor funcţionale dintre atributele entităţii2. 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)

Page 3: A doua form ă normală (FN2)

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)

Page 4: A doua form ă normală (FN2)

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ă.

Page 5: A doua form ă normală (FN2)

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

Page 6: A doua form ă normală (FN2)

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ă valoare

Fiecare atribut care ia mai multe valori pentru aceeaşi instanţă 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.

Cheia sa primară constă din mai multe atribute.

Toate atributele care nu fac parte din cheia primară sunt complet dependente funcţional de cheia primară.

Fiecare parte a cheii primare, împreună cu atributele care depind funcţional complet de ea formează o nouă entitate.

Se stabilesc relaţiile necesare între noile entităţi care au înlocuit-o pe cea iniţială.

FN3 Entitatea este în FN2.

Niciun atribut care nu face parte dintr-o cheie candidat nu este funcţional dependent de un alt atribut care nu face nici el parte dintr-o cheie candidat

Se păstrează în entitatea iniţială numai cheia primară şi atributele care depind funcţional de ea direct (inclusiv atributul incriminat)

Se crează câte o nouă entitate din fiecare atribut care nu 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ă.

Page 7: A doua form ă normală (FN2)

Sursa: Informatică – Manual pentru clasa a XII-a, Editura Corint, Mioara Gheorghe, Monica Tătărâm, Corina Achinca, Ioana Pestriţu, 2007