A doua formă normală ( în engleză Second normal form ; prescurtat 2NF ) este una dintre formele normale posibile ale unei relații într-o bază de date relațională .
O variabilă relație este în a doua formă normală dacă și numai dacă este în prima formă normală și fiecare atribut non-cheie este dependent ireductibil de (fiecare) cheie candidată [1] .
Ireductibilitatea înseamnă că potențiala cheie nu conține un subset mai mic de atribute, din care poate fi derivată și această dependență funcțională [1] . Pentru o dependență funcțională ireductibilă, este adesea folosit conceptul echivalent de „dependență funcțională completă” [1] .
Dacă cheia candidată este simplă, adică constă dintr-un singur atribut, atunci orice dependență funcțională de aceasta este ireductibilă (completă). Dacă cheia candidată este o cheie compusă, atunci, conform definiției celei de-a doua forme normale, nu trebuie să existe atribute non-cheie în relație care să depindă de o parte a cheii candidate compuse.
Un exemplu de conversie a unei relații la a doua formă normală
Lăsați perechea de atribute { Filiala companiei , Poziția } să formeze cheia primară în următoarea relație:
Filiala companiei | Denumirea funcției | Salariu | Disponibilitatea unui calculator |
---|---|---|---|
Filiala din Tomsk | Curățător | 20000 | Nu |
Filiala din Moscova | Programator | 40000 | Există |
Filiala din Tomsk | Programator | 25000 | Există |
Sa zicem ca salariul depinde de ramura si post, iar disponibilitatea unui calculator depinde doar de post.
Există o dependență funcțională Poziție → A avea un computer , în care partea stângă (determinantul) este doar o parte a cheii primare, ceea ce încalcă condiția celei de-a doua forme normale.
Pentru a reduce la 2NF, relația inițială ar trebui să fie descompusă în două relații:
Filiala companiei | Denumirea funcției | Salariu |
---|---|---|
Filiala din Tomsk | Curățător | 20000 |
Filiala din Tomsk | Programator | 25000 |
Filiala din Moscova | Programator | 40000 |
Denumirea funcției | Disponibilitatea unui calculator |
---|---|
Curățător | Nu |
Programator | Există |
In rusa
Transferabil
În limba engleză
forme normale | |
---|---|