En aquesta secció, treballarem amb exercicis pràctics per aplicar els conceptes de normalització que hem après en els mòduls anteriors. La normalització és un procés crucial per dissenyar bases de dades eficients i lliures de redundàncies i anomalies. A continuació, es presenten diversos exercicis amb les seves respectives solucions per ajudar-te a consolidar els teus coneixements.
Exercici 1: Primera Forma Normal (1NF)
Descripció de l'Exercici
Considera la següent taula que conté informació sobre comandes de clients:
ComandaID | ClientNom | Productes | Quantitats |
---|---|---|---|
1 | Joan | Poma, Plàtan | 2, 3 |
2 | Maria | Taronja, Maduixa, Kiwi | 1, 2, 1 |
3 | Pere | Poma, Taronja | 1, 2 |
Tasca
Transforma aquesta taula a la Primera Forma Normal (1NF).
Solució
Per portar la taula a la 1NF, hem de garantir que cada cel·la contingui un valor únic i no un conjunt de valors. Això implica descompondre les llistes de productes i quantitats en files separades.
ComandaID | ClientNom | Producte | Quantitat |
---|---|---|---|
1 | Joan | Poma | 2 |
1 | Joan | Plàtan | 3 |
2 | Maria | Taronja | 1 |
2 | Maria | Maduixa | 2 |
2 | Maria | Kiwi | 1 |
3 | Pere | Poma | 1 |
3 | Pere | Taronja | 2 |
Exercici 2: Segona Forma Normal (2NF)
Descripció de l'Exercici
Considera la següent taula resultant de l'exercici anterior:
ComandaID | ClientNom | Producte | Quantitat |
---|---|---|---|
1 | Joan | Poma | 2 |
1 | Joan | Plàtan | 3 |
2 | Maria | Taronja | 1 |
2 | Maria | Maduixa | 2 |
2 | Maria | Kiwi | 1 |
3 | Pere | Poma | 1 |
3 | Pere | Taronja | 2 |
Tasca
Transforma aquesta taula a la Segona Forma Normal (2NF).
Solució
Per portar la taula a la 2NF, hem de garantir que no hi hagi dependències parcials. Això significa que tots els atributs no clau han de dependre de la clau primària completa. En aquest cas, ClientNom
depèn només de ComandaID
, no de la combinació de ComandaID
i Producte
.
Primer, descomponem la taula en dues taules:
Comandes:
ComandaID | ClientNom |
---|---|
1 | Joan |
2 | Maria |
3 | Pere |
DetallsComanda:
ComandaID | Producte | Quantitat |
---|---|---|
1 | Poma | 2 |
1 | Plàtan | 3 |
2 | Taronja | 1 |
2 | Maduixa | 2 |
2 | Kiwi | 1 |
3 | Poma | 1 |
3 | Taronja | 2 |
Exercici 3: Tercera Forma Normal (3NF)
Descripció de l'Exercici
Considera les següents taules:
Comandes:
ComandaID | ClientNom |
---|---|
1 | Joan |
2 | Maria |
3 | Pere |
DetallsComanda:
ComandaID | Producte | Quantitat |
---|---|---|
1 | Poma | 2 |
1 | Plàtan | 3 |
2 | Taronja | 1 |
2 | Maduixa | 2 |
2 | Kiwi | 1 |
3 | Poma | 1 |
3 | Taronja | 2 |
Tasca
Transforma aquestes taules a la Tercera Forma Normal (3NF).
Solució
Per portar les taules a la 3NF, hem de garantir que no hi hagi dependències transitives. Això significa que tots els atributs no clau han de dependre només de la clau primària.
En aquest cas, les taules ja estan en 3NF, ja que no hi ha dependències transitives. ClientNom
depèn directament de ComandaID
, i Quantitat
depèn directament de la combinació de ComandaID
i Producte
.
Exercici 4: Desnormalització
Descripció de l'Exercici
Considera les següents taules normalitzades:
Comandes:
ComandaID | ClientNom |
---|---|
1 | Joan |
2 | Maria |
3 | Pere |
DetallsComanda:
ComandaID | Producte | Quantitat |
---|---|---|
1 | Poma | 2 |
1 | Plàtan | 3 |
2 | Taronja | 1 |
2 | Maduixa | 2 |
2 | Kiwi | 1 |
3 | Poma | 1 |
3 | Taronja | 2 |
Tasca
Desnormalitza aquestes taules per obtenir una sola taula que contingui tota la informació.
Solució
Per desnormalitzar les taules, combinarem les dues taules en una sola taula que contingui tota la informació:
ComandaID | ClientNom | Producte | Quantitat |
---|---|---|---|
1 | Joan | Poma | 2 |
1 | Joan | Plàtan | 3 |
2 | Maria | Taronja | 1 |
2 | Maria | Maduixa | 2 |
2 | Maria | Kiwi | 1 |
3 | Pere | Poma | 1 |
3 | Pere | Taronja | 2 |
Conclusió
En aquesta secció, hem treballat amb diversos exercicis per aplicar els conceptes de normalització fins a la Tercera Forma Normal (3NF) i també hem explorat la desnormalització. La normalització és essencial per garantir la integritat i l'eficiència de les bases de dades, mentre que la desnormalització pot ser útil en certes situacions per millorar el rendiment de les consultes. Practicar aquests exercicis t'ajudarà a comprendre millor aquests conceptes i a aplicar-los en situacions reals.
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