- Relacija bo v 3NF, če je v 2NF in ne bo vsebovala tranzitivne delne odvisnosti.
- 3NF se uporablja za zmanjšanje podvajanja podatkov. Uporablja se tudi za doseganje celovitosti podatkov.
- Če ni tranzitivne odvisnosti za nepraatribute, mora biti relacija v tretji normalni obliki.
Relacija je v tretji normalni obliki, če ima vsaj enega od naslednjih pogojev za vsako netrivialno odvisnost funkcije X → Y.
- X je super ključ.
- Y je glavni atribut, kar pomeni, da je vsak element Y del nekega možnega ključa.
primer:
niz v matriki v c
Tabela EMPLOYEE_DETAIL:
EMP_ID | EMP_NAME | EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|---|---|
222 | Harry | 201010 | GOR | Noida |
333 | Stephan | 02228 | ZDA | Boston |
444 | in | 60007 | ZDA | Chicago |
555 | Katarine | 06389 | Združeno kraljestvo | Norwich |
666 | Janez | 462007 | MP | Bhopal |
Super ključ v zgornji tabeli:
{EMP_ID}, {EMP_ID, EMP_NAME}, {EMP_ID, EMP_NAME, EMP_ZIP}....so on
Ključ kandidata: {EMP_ID}
Neprime atributi: V podani tabeli so vsi atributi razen EMP_ID nepra.
Tu sta EMP_STATE in EMP_CITY odvisna od EMP_ZIP in EMP_ZIP od EMP_ID. Neprime atributi (EMP_STATE, EMP_CITY), ki so prehodno odvisni od superključa (EMP_ID). Krši pravilo tretje normalne oblike.
Zato moramo premakniti EMP_CITY in EMP_STATE v novo tabelo z EMP_ZIP kot primarnim ključem.
Tabela DELAVCA:
mvc z javo
EMP_ID | EMP_NAME | EMP_ZIP |
---|---|---|
222 | Harry | 201010 |
333 | Stephan | 02228 |
444 | in | 60007 |
555 | Katarine | 06389 |
666 | Janez | 462007 |
Tabela EMPLOYEE_ZIP:
EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|
201010 | GOR | Noida |
02228 | ZDA | Boston |
60007 | ZDA | Chicago |
06389 | Združeno kraljestvo | Norwich |
462007 | MP | Bhopal |