La normalització és un procés sistemàtic per organitzar les dades en una base de dades per evitar la redundància i assegurar la integritat de les dades. Aquest procés implica dividir una base de dades en taules més petites i definir les relacions entre elles. La normalització generalment es fa en diverses etapes, anomenades formes normals.
Objectius de la Normalització
- Eliminar la redundància de dades: Reduir la duplicació de dades per minimitzar l'espai d'emmagatzematge i evitar inconsistències.
- Assegurar la integritat de les dades: Mantenir la precisió i la consistència de les dades.
- Millorar l'eficiència de les operacions: Optimitzar les operacions de consulta, inserció, actualització i eliminació.
Passos del Procés de Normalització
Primera Forma Normal (1NF)
Una taula està en la Primera Forma Normal si:
- Tots els valors de les columnes són atòmics (no divisibles).
- No hi ha files duplicades.
- Cada camp conté només un valor per fila.
Exemple:
Suposem una taula Clients
amb les següents dades:
ClientID | Nom | Telèfons |
---|---|---|
1 | Joan | 123456789, 987654321 |
2 | Maria | 555555555 |
Taula en 1NF:
ClientID | Nom | Telèfon |
---|---|---|
1 | Joan | 123456789 |
1 | Joan | 987654321 |
2 | Maria | 555555555 |
Segona Forma Normal (2NF)
Una taula està en la Segona Forma Normal si:
- Està en 1NF.
- Tots els atributs no clau depenen completament de la clau primària.
Exemple:
Suposem una taula Comandes
amb les següents dades:
ComandaID | ClientID | NomClient | DataComanda | ProducteID | Quantitat |
---|---|---|---|---|---|
1 | 1 | Joan | 2023-01-01 | 101 | 2 |
2 | 2 | Maria | 2023-01-02 | 102 | 1 |
Taula en 2NF:
Clients
ClientID | Nom |
---|---|
1 | Joan |
2 | Maria |
Comandes
ComandaID | ClientID | DataComanda |
---|---|---|
1 | 1 | 2023-01-01 |
2 | 2 | 2023-01-02 |
DetallsComanda
ComandaID | ProducteID | Quantitat |
---|---|---|
1 | 101 | 2 |
2 | 102 | 1 |
Tercera Forma Normal (3NF)
Una taula està en la Tercera Forma Normal si:
- Està en 2NF.
- No hi ha dependències transitives (un atribut no clau no depèn d'un altre atribut no clau).
Exemple:
Suposem una taula Productes
amb les següents dades:
ProducteID | NomProducte | Preu | Categoria |
---|---|---|---|
101 | Llibre | 10 | Educació |
102 | Llapis | 1 | Oficina |
Taula en 3NF:
Productes
ProducteID | NomProducte | Preu |
---|---|---|
101 | Llibre | 10 |
102 | Llapis | 1 |
Categories
CategoriaID | Categoria |
---|---|
1 | Educació |
2 | Oficina |
Exercici Pràctic
Exercici 1
Donada la següent taula Empleats
:
EmpleatID | Nom | Departament | CapDepartament |
---|---|---|---|
1 | Anna | IT | Joan |
2 | Marc | Vendes | Maria |
3 | Laura | IT | Joan |
- Converteix la taula a 1NF.
- Converteix la taula resultant a 2NF.
- Converteix la taula resultant a 3NF.
Solució
1. Taula en 1NF:
EmpleatID | Nom | Departament | CapDepartament |
---|---|---|---|
1 | Anna | IT | Joan |
2 | Marc | Vendes | Maria |
3 | Laura | IT | Joan |
2. Taula en 2NF:
Empleats
EmpleatID | Nom | DepartamentID |
---|---|---|
1 | Anna | 1 |
2 | Marc | 2 |
3 | Laura | 1 |
Departaments
DepartamentID | Departament | CapDepartament |
---|---|---|
1 | IT | Joan |
2 | Vendes | Maria |
3. Taula en 3NF:
Empleats
EmpleatID | Nom | DepartamentID |
---|---|---|
1 | Anna | 1 |
2 | Marc | 2 |
3 | Laura | 1 |
Departaments
DepartamentID | Departament | CapDepartamentID |
---|---|---|
1 | IT | 1 |
2 | Vendes | 2 |
CapsDepartament
CapDepartamentID | NomCapDepartament |
---|---|
1 | Joan |
2 | Maria |
Conclusió
La normalització és un procés essencial per dissenyar bases de dades eficients i consistents. A través de les diferents formes normals, podem assegurar-nos que les dades estan organitzades de manera òptima, evitant la redundància i mantenint la integritat de les dades. Aquest procés és fonamental per a qualsevol professional que treballi amb bases de dades, ja que millora la qualitat i l'eficiència de les operacions de la base de dades.
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