Cosa sai delle forme normali nei database?
sobes.tech AI
Risposta dell'AI
Le forme normali (FN) sono un insieme di regole e raccomandazioni per progettare la struttura di un database relazionale, mirate a minimizzare la ridondanza dei dati e prevenire anomalie durante inserimenti, aggiornamenti e cancellazioni.
Forme normali principali:
-
Prima forma normale (1FN):
- Ogni attributo (colonna) deve contenere valori atomici (indivisibili).
- Assenza di gruppi ripetitivi di attributi.
- Ogni riga deve essere unica (presenza di chiave primaria).
-
Seconda forma normale (2FN):
- È in 1FN.
- Ogni attributo non chiave deve dipendere completamente dalla chiave primaria (se composta).
-
Terza forma normale (3FN):
- È in 2FN.
- Assenza di dipendenze transitive di attributi non chiave dalla chiave primaria (un attributo non chiave non deve dipendere da un altro attributo non chiave).
-
Forma di Boyce-Codd (BCNF):
- Versione più rigorosa della 3FN.
- Ogni dipendenza non triviale $X \to Y$ deve avere $X$ come superchiave.
-
Quarta forma normale (4FN):
- È in BCNF.
- Assenza di dipendenze multivalore.
-
Quinta forma normale (5FN):
- È in 4FN.
- Assenza di dipendenze di join.
Obiettivi della normalizzazione:
- Riduzione della ridondanza dei dati.
- Prevenzione di anomalie (inserimenti, aggiornamenti, eliminazioni).
- Garantire l'integrità dei dati.
- Semplificare la struttura del database.
Esempio:
Tabella con ridondanza (non in 1FN):
| OrderID | Prodotto | Prezzo |
|---|---|---|
| 1 | Laptop, Mouse | 1000, 20 |
| 2 | Tastiera | 50 |
Tabella normalizzata (in 1FN e superiore):
Tabella "Ordini":
| OrderID |
|---|
| 1 |
| 2 |
Tabella "Righe d'ordine":
| LineID | OrderID | Prodotto | Prezzo |
|---|---|---|---|
| 1 | 1 | Laptop | 1000 |
| 2 | 1 | Mouse | 20 |
| 3 | 2 | Tastiera | 50 |
La normalizzazione è un passo importante nella progettazione, ma una normalizzazione eccessiva può portare ad un aumento delle join nelle query, il che può influire negativamente sulle prestazioni. La scelta del livello ottimale di normalizzazione dipende dai requisiti specifici e dai compromessi. La denormalizzazione viene talvolta utilizzata per ottimizzare le prestazioni in scenari specifici, violando consapevolmente le regole delle forme normali.