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