La normalització és un procés fonamental en el disseny de bases de dades relacionals que té com a objectiu organitzar les dades per minimitzar la redundància i evitar anomalies en les operacions de manipulació de dades. A continuació, es presenten els conceptes clau de la normalització:
Objectius de la Normalització
- Eliminar la Redundància de Dades: Reduir la duplicació de dades per estalviar espai d'emmagatzematge i millorar la consistència.
- Evitar Anomalies: Prevenir anomalies d'inserció, actualització i eliminació que poden sorgir a causa de la redundància de dades.
- Millorar la Integritat de les Dades: Assegurar que les dades siguin precises i consistents a través de l'ús de claus primàries i estrangeres.
Anomalies en Bases de Dades No Normalitzades
Les bases de dades no normalitzades poden patir diverses anomalies:
-
Anomalies d'Inserció: Dificultats per afegir noves dades a la base de dades sense la presència d'altres dades no relacionades.
- Exemple: No es pot afegir un nou estudiant a una taula de cursos sense assignar-li un curs.
-
Anomalies d'Actualització: Inconsistències que es produeixen quan es modifica una dada redundant en múltiples llocs.
- Exemple: Si l'adreça d'un client està emmagatzemada en diverses taules, actualitzar l'adreça en una taula però no en les altres pot causar inconsistències.
-
Anomalies d'Eliminació: Pèrdua de dades no desitjada quan s'eliminen dades relacionades.
- Exemple: Eliminar un curs d'una taula pot eliminar també la informació dels estudiants inscrits en aquest curs.
Formes Normals
La normalització es realitza en diverses etapes, conegudes com a formes normals (NF). Cada forma normal té criteris específics que una taula ha de complir per ser considerada en aquesta forma.
Primera Forma Normal (1NF)
- Definició: Una taula està en 1NF si tots els seus atributs contenen valors atòmics (indivisibles) i cada valor de columna és únic.
- Exemple: Una taula de clients on cada client té una única adreça i número de telèfon.
Segona Forma Normal (2NF)
- Definició: Una taula està en 2NF si està en 1NF i tots els atributs no clau depenen completament de la clau primària.
- Exemple: Una taula de comandes on cada comanda està associada a un únic client i producte, i no hi ha dependències parcials.
Tercera Forma Normal (3NF)
- Definició: Una taula està en 3NF si està en 2NF i tots els atributs no clau no depenen transitivament de la clau primària.
- Exemple: Una taula de factures on cada factura està associada a un únic client i no hi ha dependències transitives entre atributs no clau.
Avantatges de la Normalització
- Consistència de Dades: Redueix la redundància i assegura que les dades siguin consistents.
- Eficiència d'Emmagatzematge: Minimitza l'espai d'emmagatzematge necessari eliminant dades duplicades.
- Facilitat de Manteniment: Simplifica les operacions d'actualització, inserció i eliminació.
- Millora de la Integritat: Assegura la integritat referencial entre taules relacionades.
Desavantatges de la Normalització
- Complexitat: Pot augmentar la complexitat del disseny de la base de dades i les consultes SQL.
- Rendiment: En alguns casos, pot afectar el rendiment de les consultes a causa de la necessitat de realitzar múltiples unions entre taules.
Conclusió
La normalització és un procés essencial per dissenyar bases de dades relacionals eficients i consistents. Tot i que pot augmentar la complexitat del disseny, els beneficis en termes de consistència, integritat i eficiència d'emmagatzematge sovint superen els desavantatges. En el proper tema, explorarem les diferents formes normals en detall i veurem com aplicar-les en el procés de normalització.
Amb aquesta introducció als conceptes de normalització, estem preparats per aprofundir en les formes normals i el procés de normalització en els següents temes.
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