- Relacja będzie w 3NF, jeśli jest w 2NF i nie będzie zawierała żadnej przechodniej zależności częściowej.
- 3NF służy do ograniczenia duplikacji danych. Służy również do zapewnienia integralności danych.
- Jeśli nie ma zależności przechodniej dla atrybutów innych niż pierwsze, wówczas relacja musi mieć trzecią postać normalną.
Relacja jest w trzeciej postaci normalnej, jeśli dla każdej nietrywialnej zależności funkcji X → Y spełnia przynajmniej jeden z poniższych warunków.
- X to super klucz.
- Y jest atrybutem pierwszym, tj. każdy element Y jest częścią jakiegoś klucza kandydującego.
Przykład:
przykład mapy Java
Tabela EMPLOYEE_DETAIL:
EMP_ID | EMP_NAME | EMP_ZIP | STAN EMP | EMP_CITY |
---|---|---|---|---|
222 | Złupić | 201010 | W GÓRĘ | Noida |
333 | Stephana | 02228 | NAS | Boston |
444 | I | 60007 | NAS | Chicago |
555 | Katarzyna | 06389 | Wielka Brytania | Norwich |
666 | Jan | 462007 | poseł | Bhopal |
Super klucz w powyższej tabeli:
{EMP_ID}, {EMP_ID, EMP_NAME}, {EMP_ID, EMP_NAME, EMP_ZIP}....so on
Klucz kandydata: {EMP_ID}
Atrybuty inne niż podstawowe: W podanej tabeli wszystkie atrybuty z wyjątkiem EMP_ID nie są liczbami pierwszymi.
Tutaj EMP_STATE i EMP_CITY zależne od EMP_ZIP i EMP_ZIP zależne od EMP_ID. Atrybuty inne niż podstawowe (EMP_STATE, EMP_CITY) są przejściowo zależne od superklucza (EMP_ID). Narusza to zasadę trzeciej postaci normalnej.
Dlatego musimy przenieść EMP_CITY i EMP_STATE do nowej tabeli, z EMP_ZIP jako kluczem podstawowym.
Tabela PRACOWNIK:
EMP_ID | EMP_NAME | EMP_ZIP |
---|---|---|
222 | Złupić | 201010 |
333 | Stephana | 02228 |
444 | I | 60007 |
555 | Katarzyna | 06389 |
666 | Jan | 462007 |
Tabela EMPLOYEE_ZIP:
wartość logiczna na ciąg Java
EMP_ZIP | STAN EMP | EMP_CITY |
---|---|---|
201010 | W GÓRĘ | Noida |
02228 | NAS | Boston |
60007 | NAS | Chicago |
06389 | Wielka Brytania | Norwich |
462007 | poseł | Bhopal |