Sobes.tech
Junior

Cos'è la normalizzazione in un database?

sobes.tech AI

Risposta dell'AI

La normalizzazione dei database è il processo di organizzazione dei dati in un database relazionale al fine di ridurre la ridondanza (duplicazione dei dati) e migliorare l'integrità dei dati. Ciò si ottiene suddividendo grandi tabelle in tabelle più piccole e definendo le relazioni tra di esse.

L'obiettivo principale della normalizzazione:

  • Ridurre la ridondanza dei dati: Evitare la ripetizione delle stesse informazioni in luoghi diversi.
  • Migliorare l'integrità dei dati: Garantire la precisione e la coerenza dei dati.
  • Fornire flessibilità: Facilitare modifiche e ampliamenti della struttura del database.

La normalizzazione è definita da un insieme di regole chiamate forme normali. Le prime tre forme normali sono le più comuni:

  1. Prima forma normale (1NF):

    • Ogni colonna della tabella deve contenere valori atomici (indivisibili).
    • Non ci devono essere gruppi ripetitivi di colonne.
    • Ogni riga deve essere unica (tramite la chiave primaria).
  2. Seconda forma normale (2NF):

    • La tabella è in 1NF.
    • Tutti gli attributi non chiave dipendono completamente dalla chiave primaria (se composta). Non ci sono dipendenze parziali.
  3. Terza forma normale (3NF):

    • La tabella è in 2NF.
    • Non ci sono dipendenze transitive. Gli attributi non chiave non dipendono da altri attributi non chiave.

Esistono forme normali più alte (BCNF, 4NF, 5NF, 6NF), ma generalmente si considera che la 3NF sia sufficiente per la maggior parte degli scopi pratici.

Esempio (semplificato):

Tabella non normalizzata di ordine cliente:

ID Ordine Nome Cliente Indirizzo Cliente Prodotti Quantità Prezzo unitario
101 Ivan Mosca Portatile 1 50000
101 Ivan Mosca Mouse 2 1000
102 Maria San Pietroburgo Tastiera 1 3000

Dopo la normalizzazione (ad esempio, fino alla 3NF):

Tabella Ordini:

ID Ordine ID Cliente Data Ordine
101 1 2023-10-26
102 2 2023-10-26

Tabella Clienti:

ID Cliente Nome Cliente Indirizzo Cliente
1 Ivan Mosca
2 Maria San Pietroburgo

Tabella Dettagli Ordine:

ID Dettaglio Ordine ID Ordine ID Prodotto Quantità Prezzo unitario
1 101 10 1 50000
2 101 20 2 1000
3 102 30 1 3000

Tabella Prodotti:

ID Prodotto Nome Prodotto
10 Portatile
20 Mouse
30 Tastiera

La denormalizzazione è il processo inverso della normalizzazione, a volte utilizzato per ottimizzare le prestazioni di lettura dei dati a scapito di un aumento della ridondanza.