En aquest tema, explorarem les diferents formes normals que s'utilitzen en la normalització de bases de dades relacionals. La normalització és un procés que ajuda a organitzar les dades en una base de dades per reduir la redundància i millorar la integritat de les dades. Les formes normals són nivells de normalització que una taula pot complir.
Objectius d'Aprenentatge
Al final d'aquest tema, hauràs de ser capaç de:
- Comprendre les diferents formes normals.
- Aplicar les regles de cada forma normal per normalitzar una base de dades.
- Identificar les anomalies de dades que es poden evitar mitjançant la normalització.
- Primera Forma Normal (1NF)
Definició
Una taula està en la Primera Forma Normal (1NF) si compleix les següents condicions:
- Totes les columnes contenen valors atòmics (no divisibles).
- Cada columna conté valors del mateix tipus de dades.
- Cada columna té un nom únic.
- L'ordre en què es guarden les dades no importa.
Exemple
Considera la següent taula que no està en 1NF:
ID_Alumne | Nom_Alumne | Cursos |
---|---|---|
1 | Joan | Matemàtiques, Física |
2 | Maria | Química, Biologia |
Per convertir aquesta taula a 1NF, hem de dividir els valors compostos en valors atòmics:
ID_Alumne | Nom_Alumne | Curs |
---|---|---|
1 | Joan | Matemàtiques |
1 | Joan | Física |
2 | Maria | Química |
2 | Maria | Biologia |
- Segona Forma Normal (2NF)
Definició
Una taula està en la Segona Forma Normal (2NF) si compleix les següents condicions:
- Està en 1NF.
- Totes les columnes no clau depenen completament de la clau primària.
Exemple
Considera la següent taula que està en 1NF però no en 2NF:
ID_Alumne | Nom_Alumne | ID_Curs | Nom_Curs | Professor |
---|---|---|---|---|
1 | Joan | 101 | Matemàtiques | Sr. Pérez |
1 | Joan | 102 | Física | Sra. López |
2 | Maria | 103 | Química | Sr. Gómez |
2 | Maria | 104 | Biologia | Sra. Díaz |
Per convertir aquesta taula a 2NF, hem de crear taules separades per eliminar les dependències parcials:
Taula Alumnes:
ID_Alumne | Nom_Alumne |
---|---|
1 | Joan |
2 | Maria |
Taula Cursos:
ID_Curs | Nom_Curs | Professor |
---|---|---|
101 | Matemàtiques | Sr. Pérez |
102 | Física | Sra. López |
103 | Química | Sr. Gómez |
104 | Biologia | Sra. Díaz |
Taula Alumnes_Cursos:
ID_Alumne | ID_Curs |
---|---|
1 | 101 |
1 | 102 |
2 | 103 |
2 | 104 |
- Tercera Forma Normal (3NF)
Definició
Una taula està en la Tercera Forma Normal (3NF) si compleix les següents condicions:
- Està en 2NF.
- No hi ha dependències transitives (una columna no clau no depèn d'una altra columna no clau).
Exemple
Considera la següent taula que està en 2NF però no en 3NF:
ID_Alumne | Nom_Alumne | ID_Curs | Nom_Curs | Professor | Departament |
---|---|---|---|---|---|
1 | Joan | 101 | Matemàtiques | Sr. Pérez | Matemàtiques |
1 | Joan | 102 | Física | Sra. López | Física |
2 | Maria | 103 | Química | Sr. Gómez | Química |
2 | Maria | 104 | Biologia | Sra. Díaz | Biologia |
Per convertir aquesta taula a 3NF, hem de crear una taula separada per eliminar les dependències transitives:
Taula Cursos:
ID_Curs | Nom_Curs | Professor | ID_Departament |
---|---|---|---|
101 | Matemàtiques | Sr. Pérez | 1 |
102 | Física | Sra. López | 2 |
103 | Química | Sr. Gómez | 3 |
104 | Biologia | Sra. Díaz | 4 |
Taula Departaments:
ID_Departament | Nom_Departament |
---|---|
1 | Matemàtiques |
2 | Física |
3 | Química |
4 | Biologia |
- Forma Normal de Boyce-Codd (BCNF)
Definició
Una taula està en la Forma Normal de Boyce-Codd (BCNF) si compleix les següents condicions:
- Està en 3NF.
- Per cada dependència funcional X -> Y, X ha de ser una clau candidata.
Exemple
Considera la següent taula que està en 3NF però no en BCNF:
ID_Alumne | ID_Curs | Professor |
---|---|---|
1 | 101 | Sr. Pérez |
1 | 102 | Sra. López |
2 | 103 | Sr. Gómez |
2 | 104 | Sra. Díaz |
Suposem que un professor només pot ensenyar un curs. Això crea una dependència funcional Professor -> ID_Curs, però Professor no és una clau candidata.
Per convertir aquesta taula a BCNF, hem de dividir-la en dues taules:
Taula Cursos:
ID_Curs | Professor |
---|---|
101 | Sr. Pérez |
102 | Sra. López |
103 | Sr. Gómez |
104 | Sra. Díaz |
Taula Alumnes_Cursos:
ID_Alumne | ID_Curs |
---|---|
1 | 101 |
1 | 102 |
2 | 103 |
2 | 104 |
Resum
En aquest tema, hem explorat les diferents formes normals utilitzades en la normalització de bases de dades relacionals. Hem après les regles de cada forma normal i com aplicar-les per organitzar les dades de manera eficient. La normalització ajuda a reduir la redundància i millorar la integritat de les dades, evitant anomalies en les operacions de la base de dades.
En el següent tema, aprofundirem en el procés de normalització, on veurem exemples pràctics de com normalitzar una base de dades des de 1NF fins a BCNF.
Fonaments de Bases de Dades
Mòdul 1: Introducció a les Bases de Dades
- Conceptes Bàsics de Bases de Dades
- Tipus de Bases de Dades
- Història i Evolució de les Bases de Dades
Mòdul 2: Bases de Dades Relacionals
Mòdul 3: Bases de Dades No Relacionals
- Introducció a NoSQL
- Tipus de Bases de Dades NoSQL
- Comparació entre Bases de Dades Relacionals i No Relacionals
Mòdul 4: Disseny d'Esquemes
- Principis de Disseny d'Esquemes
- Diagrames Entitat-Relació (ER)
- Transformació de Diagrames ER a Esquemes Relacionals