Sunteți pe pagina 1din 3

Forma normală 3 (FN3).

O
relaţie este în FN3 dacă respectă
FN2 şi toate atributele non-
cheie
Forma normală 3 (FN3).
O relaţie este în FN3 dacă respectă FN2 şi toate atributele non-cheie sunt
dependente direct de cheia primară. Altfel spus FN3 interzice dependenţele
tranzitive.

Exemplu:
Fie tabelul Facturi_Furnizori (NrFact, DataFact, CodFz, DenFz, Localitate)
NrFact DataFact CodFz DenFz Localitate
10 01/03/2009 1 SC Agro SA București
11 05/03/2009 1 SC Agro SA București
12 12/03/2009 2 SC Tram SA Brașov
-------- ------------ ----------------

Pot fi identificate următoarele dependenţe funcţionale:


 NrFact → DataFact, CodFz, deoarece fiecare număr de factură determină o
valoare pentru data facturii şi codul furnizorului care a emis acea factură.
 CodFz → DenFz, Localitate, deoarece fiecare cod unic de furnizor determină o
valoare pentru denumirea furnizorului şi Localitatea acestuia.
Se observă ca între atributele NrFact şi DenFz, Localitate - apar dependenţe
tranzitive, fapt ce ne determină să afirmăm că tabelul Facturi_Furnizori nu
respectă FN3.
Aceste dependenţe funcţională tranzitive au drept consecinţe o serie de anomalii
identificabile la adăugarea, modificarea sau ştergerea înregistrărilor din cadrul
acestui table.
Aceste anomalii pot fi eliminate prin descompunerea relaţiei Facturi_Furnizori în
relaţiile:
Facturi (NrFact, DataFact, CodFz)
Furnizori (CodFz, DenFz, Localitate)
Facturi
Facturi (NrFact, DataFact, CodFz)
Furnizori (CodFz, DenFz, Localitate)
CodFz DenFz Localitate
1 SC Agro SA București
2 SC Tram SA Brașov
-------- ------------ ----------------

Furnizori
NrFact DataFact CodFz
10 01/03/2009 1
11 05/03/2009 1
12 12/03/2009 2
--------- ------------- --------

Proiectarea modelului relaţional


prin normalizare utilizând
formele normale
Paşii recomandaţi a fi realizaţi pentru proiectarea modelului relaţional prin
normalizare, utilizând formele normale sunt [Fotache]:

1. Inventarierea atributelor şi constituirea tabelului relaţional iniţial (relaţiei


universale). Se vor prelua toate atributele care fac obiectul problemei de rezolvat,
din documentele
primare şi situaţiile de ieşire.
2. Se determină cheia primară a relaţiei şi se reprezintă toate dependenţele
funcţionale ce
decurg de aici.
3. Se elimină atributele calculabile şi cele repetitive astfel încât tabelul iniţial să
respecte
FN1.
4. Se elimină dependenţele funcţionale parţiale prin descompunerea
tabelului iniţial în tabele cu structuri mai simple, care să respecte FN2.
5. Se elimină dependenţele funcţionale tranzitive prin descompunerea tabelelor
din etapa anterioară astfel încât acestea să respecte FN3.
6. Se identifică eventualele dependenţe multivaloare şi se elimină astfel încât să
tabelele să respecte FN4, respectiv FN5.

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