Sobes.tech
Middle

Cos'è la normalizzazione?

sobes.tech AI

Risposta dell'AI

La normalizzazione dei dati nel contesto dei database è il processo di organizzare i dati per ridurre la ridondanza e migliorare l'integrità dei dati. Si ottiene dividendo grandi tabelle in tabelle più piccole e collegandole.

Obiettivo principale:

  • Eliminare la duplicazione dei dati.
  • Migliorare l'integrità dei dati (evitare anomalie di inserimento, aggiornamento e cancellazione).
  • Aumentare l'efficienza dello storage e delle query (in alcuni casi).

Il processo di normalizzazione si basa sui principi delle forme normali (FN). Le più comuni sono:

  • Prima forma normale (1FN): Atomicità dei dati nelle celle, assenza di gruppi ripetitivi di colonne.
  • Seconda forma normale (2FN): È in 1FN e ogni attributo non chiave dipende completamente da tutto la chiave primaria.
  • Terza forma normale (3FN): È in 2FN e non ci sono dipendenze funzionali transitive di attributi non chiave dalla chiave primaria attraverso altri attributi non chiave.

Esempio:

Tabella originale "Ordini_Prodotti":

ID Ordine Data Ordine ID Prodotto Nome del Prodotto Prezzo del Prodotto Quantità Nome Cliente Indirizzo Cliente
1 2023-10-27 101 Telefono 500 1 Ivan Pétrov Via Pushkina, 10
1 2023-10-27 102 Cuffie 100 2 Ivan Pétrov Via Pushkina, 10
2 2023-10-27 101 Telefono 500 1 Maria Ivanova Via Lermontova, 5

Dopo normalizzazione (fino a 3FN):

Tabella "Ordini":

ID Ordine Data Ordine ID Cliente
1 2023-10-27 1
2 2023-10-27 2

Tabella "Righe di Ordine":

ID Riga ID Ordine ID Prodotto Quantità
1 1 101 1
2 1 102 2
3 2 101 1

Tabella "Prodotti":

ID Prodotto Nome del Prodotto Prezzo del Prodotto
101 Telefono 500
102 Cuffie 100

Tabella "Clienti":

ID Cliente Nome del Cliente Indirizzo del Cliente
1 Ivan Pétrov Via Pushkina, 10
2 Maria Ivanova Via Lermontova, 5

Tuttavia, una normalizzazione eccessiva può portare ad un aumento del numero di join (JOIN) durante le query, il che può ridurre le prestazioni. Pertanto, nella progettazione di database, si cerca spesso un equilibrio tra il grado di normalizzazione e le prestazioni. La denormalizzazione è il processo di violare intenzionalmente le forme normali per migliorare le prestazioni, di solito aggiungendo ridondanza.