Differenza Tra Normalizzazione E Denormalizzazione

Differenza Tra Normalizzazione E Denormalizzazione
Differenza Tra Normalizzazione E Denormalizzazione

Video: Differenza Tra Normalizzazione E Denormalizzazione

Video: Differenza Tra Normalizzazione E Denormalizzazione
Video: 4-Apache Cassandra 2024, Aprile
Anonim

Normalizzazione vs Denormalizzazione

I database relazionali sono costituiti da relazioni (tabelle correlate). Le tabelle sono costituite da colonne. Se le tabelle sono due grandi (cioè troppe colonne in una tabella), possono verificarsi anomalie del database. Se le tabelle sono due piccole (cioè il database è composto da molte tabelle più piccole), sarebbe inefficiente per l'interrogazione. La normalizzazione e la denormalizzazione sono due processi utilizzati per ottimizzare le prestazioni del database. La normalizzazione riduce al minimo le ridondanze presenti nelle tabelle di dati. La denormalizzazione (inversione della normalizzazione) aggiunge dati ridondanti o dati di gruppo.

Cos'è la normalizzazione?

La normalizzazione è un processo che viene eseguito per ridurre al minimo le ridondanze presenti nei dati nei database relazionali. Questo processo dividerà principalmente tabelle di grandi dimensioni in tabelle più piccole con meno ridondanze (chiamate "forme normali"). Queste tabelle più piccole saranno correlate tra loro tramite relazioni ben definite. In un database ben normalizzato, qualsiasi alterazione o modifica dei dati richiederà la modifica di una sola tabella. La prima forma normale (1NF), la seconda forma normale (2NF) e la terza forma normale (3NF) furono introdotte da Edgar F. Codd. Boyce-Codd Normal Form (BCNF) è stato introdotto nel 1974 da Codd e Raymond F. Boyce. Sono state definite forme normali superiori (4NF, 5NF e 6NF), ma vengono utilizzate raramente.

Una tabella conforme a 1NF garantisce di rappresentare effettivamente una relazione (ovvero non contiene record che si ripetono) e non contiene attributi con valore relazionale (ovvero tutti gli attributi devono avere valori atomici). Affinché una tabella sia conforme a 2NF, dovrebbe essere conforme a 1NF e qualsiasi attributo che non fa parte di alcuna chiave candidata (cioè attributi non primi) dovrebbe dipendere completamente da una qualsiasi delle chiavi candidate nella tabella. Secondo la definizione di Codd, una tabella si dice che sia in 3NF, se e solo se, quella tabella è nella seconda forma normale (2NF) e ogni attributo nella tabella che non appartiene a una chiave candidata dovrebbe dipendere direttamente da ogni chiave candidata di quella tabella. BCNF (noto anche come 3.5NF) cattura alcune delle anomalie che non vengono affrontate dal 3NF.

Cos'è la denormalizzazione?

La denormalizzazione è il processo inverso del processo di normalizzazione. La denormalizzazione funziona aggiungendo dati ridondanti o raggruppando i dati per ottimizzare le prestazioni. Anche se l'aggiunta di dati ridondanti sembra controproducente, a volte la denormalizzazione è un processo molto importante per superare alcune delle carenze nel software di database relazionale che possono incorrere in pesanti penalizzazioni delle prestazioni con database normalizzati (anche ottimizzati per prestazioni più elevate). Questo perché l'unione di più relazioni (che sono i risultati della normalizzazione) per produrre un risultato a una query può talvolta essere lenta a seconda dell'effettiva implementazione fisica dei sistemi di database.

Qual è la differenza tra normalizzazione e denormalizzazione?

- Normalizzazione e denormalizzazione sono due processi completamente opposti.

- La normalizzazione è il processo di divisione di tabelle più grandi in tabelle più piccole riducendo i dati ridondanti, mentre la denormalizzazione è il processo di aggiunta di dati ridondanti per ottimizzare le prestazioni.

- La normalizzazione viene eseguita per prevenire anomalie dei database.

- La denormalizzazione viene solitamente eseguita per migliorare le prestazioni di lettura del database, ma a causa dei vincoli aggiuntivi utilizzati per la denormalizzazione, le operazioni di scrittura (ovvero inserimento, aggiornamento ed eliminazione) possono diventare più lente. Pertanto, un database denormalizzato può offrire prestazioni di scrittura peggiori rispetto a un database normalizzato.

- Si consiglia spesso di "normalizzare finché non fa male, denormalizzare finché non funziona".

Raccomandato: