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