- Egy reláció akkor lesz 3NF-ben, ha 2NF-ben van, és nem tartalmaz tranzitív részleges függőséget.
- A 3NF az adatkettőzés csökkentésére szolgál. Az adatok integritásának elérésére is használják.
- Ha nincs tranzitív függőség a nem prím attribútumokhoz, akkor a relációnak harmadik normál formában kell lennie.
Egy reláció harmadik normális alakban van, ha az alábbi feltételek közül legalább egy teljesül minden X → Y nem triviális függvényfüggőségre.
- X egy szuper kulcs.
- Y egy elsődleges attribútum, azaz Y minden eleme valamilyen jelölt kulcs része.
Példa:
új vonal python
EMPLOYEE_DETAIL táblázat:
EMP_ID | EMP_NAME | EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|---|---|
222 | Harry | 201010 | FEL | Noida |
333 | Stephan | 02228 | MINKET | Boston |
444 | És | 60007 | MINKET | Chicago |
555 | Katharine | 06389 | Egyesült Királyság | Norwich |
666 | János | 462007 | MP | Bhopal |
Szuper kulcs a fenti táblázatban:
{EMP_ID}, {EMP_ID, EMP_NAME}, {EMP_ID, EMP_NAME, EMP_ZIP}....so on
Jelölt kulcs: {EMP_ID}
Nem elsődleges attribútumok: Az adott táblázatban az EMP_ID kivételével minden attribútum nem elsődleges.
Itt az EMP_STATE és EMP_CITY az EMP_ZIP-től, az EMP_ZIP pedig az EMP_ID-től függ. A nem elsődleges attribútumok (EMP_STATE, EMP_CITY) tranzitívan függenek a szuperkulcstól (EMP_ID). Megsérti a harmadik normálforma szabályát.
általános védelmi hiba
Ezért át kell helyeznünk az EMP_CITY és EMP_STATE értékeket az új táblába, ahol az EMP_ZIP elsődleges kulcs.
ALKALMAZOTT táblázat:
EMP_ID | EMP_NAME | EMP_ZIP |
---|---|---|
222 | Harry | 201010 |
333 | Stephan | 02228 |
444 | És | 60007 |
555 | Katharine | 06389 |
666 | János | 462007 |
EMPLOYEE_ZIP táblázat:
EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|
201010 | FEL | Noida |
02228 | MINKET | Boston |
60007 | MINKET | Chicago |
06389 | Egyesült Királyság | Norwich |
462007 | MP | Bhopal |