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:

  1. Comprendre les diferents formes normals.
  2. Aplicar les regles de cada forma normal per normalitzar una base de dades.
  3. Identificar les anomalies de dades que es poden evitar mitjançant la normalització.

  1. 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

  1. 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

  1. 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

  1. 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.

© Copyright 2024. Tots els drets reservats