- Ryšys bus 3NF, jei jis yra 2NF ir neturės jokios pereinamosios dalinės priklausomybės.
- 3NF naudojamas duomenų dubliavimui sumažinti. Jis taip pat naudojamas duomenų vientisumui pasiekti.
- Jei nėra tranzityvinės priklausomybės ne pirminiams atributams, tada ryšys turi būti trečiosios normaliosios formos.
Ryšys yra trečiosios normaliosios formos, jei jis atitinka bent vieną iš šių sąlygų kiekvienai netrivialinei funkcijos priklausomybei X → Y.
- X yra super raktas.
- Y yra pagrindinis atributas, t. y. kiekvienas Y elementas yra tam tikro kandidato rakto dalis.
Pavyzdys:
sąjunga prieš sąjungą visi
EMPLOYEE_DETAIL lentelė:
EMP_ID | EMP_NAME | EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|---|---|
222 | Hari | 201010 m | AUKŠTYN | Noida |
333 | Stephanas | 02228 | JAV | Bostonas |
444 | Ir | 60007 | JAV | Čikaga |
555 | Katharine | 06389 | JK | Noridžas |
666 | Jonas | 462007 | MP | Bopalas |
Super raktas aukščiau esančioje lentelėje:
{EMP_ID}, {EMP_ID, EMP_NAME}, {EMP_ID, EMP_NAME, EMP_ZIP}....so on
Kandidato raktas: {EMP_ID}
Nepagrindiniai atributai: Pateiktoje lentelėje visi atributai, išskyrus EMP_ID, nėra pirminiai.
Čia EMP_STATE ir EMP_CITY priklauso nuo EMP_ZIP ir EMP_ZIP priklauso nuo EMP_ID. Nepagrindiniai atributai (EMP_STATE, EMP_CITY) laikinai priklauso nuo super rakto (EMP_ID). Tai pažeidžia trečiosios normalios formos taisyklę.
Štai kodėl turime perkelti EMP_CITY ir EMP_STATE į naują lentelę, o EMP_ZIP kaip pagrindinį raktą.
tigrinio liūto skirtumas
DARBUOTOJŲ lentelė:
EMP_ID | EMP_NAME | EMP_ZIP |
---|---|---|
222 | Hari | 201010 m |
333 | Stephanas | 02228 |
444 | Ir | 60007 |
555 | Katharine | 06389 |
666 | Jonas | 462007 |
EMPLOYEE_ZIP lentelė:
EMP_ZIP | EMP_STATE | EMP_CITY |
---|---|---|
201010 m | AUKŠTYN | Noida |
02228 | JAV | Bostonas |
60007 | JAV | Čikaga |
06389 | JK | Noridžas |
462007 | MP | Bopalas |