- Nella 2NF, il relazionale deve essere in 1NF.
- Nella seconda forma normale, tutti gli attributi non chiave sono pienamente funzionali e dipendono dalla chiave primaria
Esempio: Supponiamo che una scuola possa archiviare i dati degli insegnanti e delle materie che insegnano. In una scuola, un insegnante può insegnare più di una materia.
Tavolo INSEGNANTE
ID_INSEGNANTE | SOGGETTO | INSEGNANTE_AGE |
---|---|---|
25 | Chimica | 30 |
25 | Biologia | 30 |
47 | Inglese | 35 |
83 | Matematica | 38 |
83 | Computer | 38 |
Nella tabella fornita, l'attributo non primario TEACHER_AGE dipende da TEACHER_ID che è un sottoinsieme appropriato di una chiave candidata. Ecco perché viola la regola per 2NF.
Per convertire la tabella data in 2NF, la scomponiamo in due tabelle:
Tabella TEACHER_DETAIL:
ID_INSEGNANTE | INSEGNANTE_AGE |
---|---|
25 | 30 |
47 | 35 |
83 | 38 |
Tabella TEACHER_SUBJECT:
np.concatenate
ID_INSEGNANTE | SOGGETTO |
---|---|
25 | Chimica |
25 | Biologia |
47 | Inglese |
83 | Matematica |
83 | Computer |