2NF

Druga normalna forma

Drugo normalno formo naredimo na osnovi polne funkcionalne odvisnosti.

Relacija je v drugi normalni formi, če se nahaja v 1NF in je vsak ne-ključni atribut polno funkcionalno odvisen od primarnega ključa (če ne obstaja nobena delna funkcionalna odvisnost).

Postopek transformacije iz 1NF v 2NF:

  • ugotovite primarni ključ relacije v 1NF,
  • opredelite funkcionalne odvisnosti znotraj relacije,
  • če obstaja atribut(i), ki je delno funkcionalno odvisen od primarnega ključa, ga skupaj z njegovo determinanto prestavite v novo relacijo. Determinanta ostane tudi v osnovni relaciji.

Primer transformacije iz 1NF v 2NF

Prva NF: Projekt(ProjektID, DelavecID, ImeProjekta, DelavecID, Priimek, Poklic, Vrednost_ure, Opravljenih_ur)

Funkcionalne odvisnosti:

  • ProjektID,DelavecID -> ImeProjekta // OK
  • ProjektID -> ImeProjekta // delna funkcionalna odvisnost -> ime projekta in kopija determinante damo v novo tabelo, denimo Projekt
  • ProjektID, DelavecID -> Priimek, Poklic, Vrednost_ure // OK
  • DelavecID -> Priimek, Poklic, Vrednost_ure // delna funkcionalna odvisnost -> priimek, poklic delavca, vrednost ure in kopijo determinante damo v novo tabelo, denimo Delavec
  • ProjektID,DelavecID -> Opravljenih_ur // OK

Rezultat pretvorbe v 2NF:

  • Projekt(ProjektID, ImeProjekta)

Funkcionalne odvisnosti: ProjektID -> ImeProjekta

  • Delavec(DelavecID,Priimek, Poklic, Vrednost_ure)

Funkcionalne odvisnosti: DelavecID -> Priimek, Poklic, Vrednost_ure, Poklic -> Vrednost_ure

  • OpravljenoDelo(ProjektID->Projekt,DelavecID->Delavec,Opravljenih_ur)

Funkcionalne odvisnosti: ProjektID,DelavecID -> Opravljenih_ur