Progettazione Avanzata di Database Relazionali: Normalizzazione e Forme Normali (1NF, 2NF, 3NF, BCNF)
Classificato in Informatica
Scritto il in italiano con una dimensione di 3,77 KB
Progettazione di Database Relazionali: Fondamenti e Normalizzazione
Il primo passo nella creazione di un database consiste nel programmare il tipo di informazioni da memorizzare al suo interno, tenendo conto di due aspetti fondamentali: le informazioni disponibili e le informazioni di cui abbiamo bisogno. La pianificazione della struttura del database, incluse le tabelle, è di vitale importanza per una gestione efficace del sistema.
Struttura delle Tabelle e Campi
La progettazione della struttura di una tabella è una descrizione dettagliata di ciascuno dei campi che costituiscono un record (o riga) e dei valori o dati che ciascuno di questi campi può contenere.
- Campi: I campi rappresentano i diversi tipi di dati che compongono la tabella, ad esempio: nome, cognome, indirizzo. La definizione di un campo richiede: il nome del campo, il tipo di campo, l'ampiezza del campo, ecc.
- Record: I record (o documenti) forniscono le informazioni che devono figurare nei campi della tabella, ad esempio: nome del paziente, cognome del paziente e il suo indirizzo.
Normalizzazione dei Database: Le Forme Normali
La normalizzazione è un processo fondamentale nella progettazione di database relazionali, volto a ridurre la ridondanza dei dati e migliorare l'integrità dei dati. Questo processo si basa su diverse "forme normali".
Prima Forma Normale (1NF)
La Prima Forma Normale (1NF) è una forma normale utilizzata nella normalizzazione dei database. Una tabella di database relazionale che vi aderisce è quella che soddisfa un insieme minimo di criteri. Questi criteri si applicano principalmente per assicurare che la tabella sia una rappresentazione fedele di una relazione e sia priva di "gruppi ripetuti".
Dipendenza Funzionale
Una dipendenza funzionale è una relazione tra gli attributi all'interno della stessa relazione (tabella). Si dice che un attributo B è funzionalmente dipendente da un attributo A (A → B) se per ogni valore di A esiste un solo valore di B.
Seconda Forma Normale (2NF)
Una tabella che è in Prima Forma Normale (1NF) deve soddisfare criteri aggiuntivi per qualificarsi per la Seconda Forma Normale (2NF). Una tabella è in 2NF se è in 1NF e ogni attributo non primario è pienamente dipendente da ogni chiave candidata (cioè, non esiste alcuna dipendenza parziale di un attributo non primario da una parte della chiave candidata).
Terza Forma Normale (3NF)
Una tabella è in Terza Forma Normale (3NF) se e solo se le seguenti condizioni sono mantenute:
- La tabella è in Seconda Forma Normale (2NF).
- Nessun attributo non primario della tabella è transitivamente dipendente da un attributo chiave primaria.
Nota: Un attributo non primario è un attributo che non fa parte di alcuna chiave candidata.
Forma Normale di Boyce-Codd (BCNF)
La Forma Normale di Boyce-Codd (BCNF) è una forma normale utilizzata nella normalizzazione dei database. Si tratta di una versione leggermente più forte della Terza Forma Normale (3NF).
La Forma Normale di Boyce-Codd richiede che ogni dipendenza funzionale non banale abbia una superchiave come determinante. Su una tabella in 3NF, tutti gli attributi dipendono dalla chiave, dall'intera chiave e da nient'altro che dalla chiave (escludendo le dipendenze banali).
Si dice che una tabella è in BCNF se e solo se è in 3NF e ogni dipendenza funzionale non banale ha una chiave candidata come determinante. In termini meno formali, una tabella è in BCNF se è in 3NF e i determinanti sono solo chiavi candidate.