- Una relazione sarà in 3NF se è in 2NF e non contiene alcuna dipendenza parziale transitiva.
- 3NF viene utilizzato per ridurre la duplicazione dei dati. Viene utilizzato anche per ottenere l'integrità dei dati.
- Se non esiste una dipendenza transitiva per gli attributi non primi, la relazione deve essere in terza forma normale.
Una relazione è in terza forma normale se vale almeno una delle seguenti condizioni per ogni dipendenza non banale della funzione X → Y.
- X è una super chiave.
- Y è un attributo primo, cioè ogni elemento di Y fa parte di una chiave candidata.
Esempio:
comando git push
Tabella EMPLOYEE_DETAIL:
EMP_ID | EMP_NAME | EMP_ZIP | EMP_STATE | EMP_CITTÀ |
---|---|---|---|---|
222 | Harry | 201010 | SU | Noida |
333 | Stefano | 02228 | NOI | Boston |
444 | E | 60007 | NOI | Chicago |
555 | Caterina | 06389 | UK | Norwich |
666 | John | 462007 | deputato | Bhopal |
Super chiave nella tabella sopra:
{EMP_ID}, {EMP_ID, EMP_NAME}, {EMP_ID, EMP_NAME, EMP_ZIP}....so on
Chiave del candidato: {EMP_ID}
Attributi non primi: Nella tabella fornita, tutti gli attributi tranne EMP_ID non sono primi.
apprendimento automatico supervisionato
Qui, EMP_STATE e EMP_CITY dipendono da EMP_ZIP e EMP_ZIP dipende da EMP_ID. Gli attributi non primitivi (EMP_STATE, EMP_CITY) dipendono transitivamente dalla super chiave (EMP_ID). Viola la regola della terza forma normale.
Ecco perché dobbiamo spostare EMP_CITY e EMP_STATE nella nuova tabella, con EMP_ZIP come chiave primaria.
Tabella DIPENDENTI:
EMP_ID | EMP_NAME | EMP_ZIP |
---|---|---|
222 | Harry | 201010 |
333 | Stefano | 02228 |
444 | E | 60007 |
555 | Caterina | 06389 |
666 | John | 462007 |
Tabella EMPLOYEE_ZIP:
EMP_ZIP | EMP_STATE | EMP_CITTÀ |
---|---|---|
201010 | SU | Noida |
02228 | NOI | Boston |
60007 | NOI | Chicago |
06389 | UK | Norwich |
462007 | deputato | Bhopal |