- En relasjon vil være i 3NF hvis den er i 2NF og ikke inneholde noen transitiv delvis avhengighet.
- 3NF brukes til å redusere datadupliseringen. Det brukes også for å oppnå dataintegriteten.
- Hvis det ikke er noen transitiv avhengighet for ikke-primære attributter, må relasjonen være i tredje normalform.
En relasjon er i tredje normalform hvis den har minst en av følgende betingelser for hver ikke-triviell funksjonsavhengighet X → Y.
- X er en supernøkkel.
- Y er et hovedattributt, det vil si at hvert element i Y er en del av en kandidatnøkkel.
Eksempel:
tcp og ip-modell
EMPLOYEE_DETAIL tabell:
EMP_ID | EMP_NAME | EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|---|---|
222 | Harry | 201010 | OPP | Noida |
333 | Stephan | 02228 | OSS | Boston |
444 | Og | 60007 | OSS | Chicago |
555 | Katharine | 06389 | Storbritannia | Norwich |
666 | John | 462007 | MP | Bhopal |
Supernøkkel i tabellen ovenfor:
{EMP_ID}, {EMP_ID, EMP_NAME}, {EMP_ID, EMP_NAME, EMP_ZIP}....so on
Kandidatnøkkel: {EMP_ID}
Ikke-primære attributter: I den gitte tabellen er alle attributter unntatt EMP_ID ikke-prime.
de er sangere
Her er EMP_STATE & EMP_CITY avhengig av EMP_ZIP og EMP_ZIP avhengig av EMP_ID. De ikke-primære attributtene (EMP_STATE, EMP_CITY) er transitivt avhengige av supernøkkel (EMP_ID). Det bryter med regelen om tredje normalform.
Det er derfor vi må flytte EMP_CITY og EMP_STATE til den nye tabellen, med EMP_ZIP som en primærnøkkel.
ANSATTEtabell:
EMP_ID | EMP_NAME | EMP_ZIP |
---|---|---|
222 | Harry | 201010 |
333 | Stephan | 02228 |
444 | Og | 60007 |
555 | Katharine | 06389 |
666 | John | 462007 |
EMPLOYEE_ZIP-tabell:
EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|
201010 | OPP | Noida |
02228 | OSS | Boston |
60007 | OSS | Chicago |
06389 | Storbritannia | Norwich |
462007 | MP | Bhopal |