3NF
Tretja normalna forma
3NF izhaja iz koncepta tranzitivne funkcionalne odvisnosti.
Relacija je v 3NF, če je v 1NF in 2NF in noben atribut, ki ni primarni ključ, ni tranzitivno odvisen od primarnega ključa.
Postopek transformacije iz druge v tretjo normalno formo:
- identificirajte primarni ključ relacije v 2NF,
- opredelite funkcionalne odvisnosti v relaciji,
- če obstaja atribut, ki je tranzitivno odvisen od primarnega ključa, ga skupaj s kopijo njegove determinante prestavite v novo relacijo.
Primer transofrmacije 2NF -> 3 NF
- Projekt(ProjektID, ImeProjekta)
Funkcionalne odvisnosti: ProjektID->ImeProjekta // OK, ni tranzitivne odvisnosti
- Delavec(DelavecID,Priimek, Poklic, Vrednost_ure)
Funkcionalne odvisnosti: DelavecID -> Priimek, Poklic, Vrednost_ure
Poklic -> Vrednost_ure // tranzitivna odvisnost; atribut vrednost_ure in njegovo determinanto prestavimo v novo relacijo
- OpravljenoDelo(ProjektID->Projekt,DelavecID->Delavec,Opravljenih_ur)
Funkcionalne odvisnosti: ProjektID,DelavecID -> Opravljenih_ur // OK
Rezultat pretvorbe v 3NF
- Projekt(ProjektID, ImeProjekta)
Funkcionalne odvisnosti: ProjektID->ImeProjekta
- OpravljenoDelo(ProjektID->Projekt,DelavecID->Delavec,Opravljenih_ur)
Funkcionalne odvisnosti: ProjektID,DelavecID -> Opravljenih_ur
- Delavec(DelavecID,Priimek, Poklic->Delovno_mesto)
Funkcionalne odvisnosti: DelavecID -> Priimek, Poklic
- Delovno_mesto(Poklic,Vrednost_ure,Opis)
Funkcionalne odvisnosti: Poklic -> Vrednost_ure,Opis