Normalizzazione delle relazioni

Page 1

NORMALIZZAZIONE DELLE RELAZIONI Le operazioni di normalizzazione sono operazioni mediante le quali si trasformano le tabelle di un database per evitare ridondanze dei dati e inconsistenze dovute ad anomalie di inserimento, cancellazione e modifica dei dati. Esistono varie forme di normalizzazione ordinate gerarchicamente nel senso che sono via via più efficaci. PRIMA FORMA NORMALE Una tabella è in PRIMA FORMA NORMALE se soddisfa i seguenti requisiti: -

Tutte le righe della tabella hanno lo stesso numero di colonne (in sostanza tutti i record debbono avere lo stesso numero di campi, al massimo uno o più campi possono essere vuoti) Ogni attributo deve essere costituito da informazioni elementari cioè non scomponibili ulteriormente in sottoinformazioni I valori che compaiono in una colonna debbono essere tutti dello stesso tipo Due righe della stessa tabella non possono essere uguali, si debbono distinguere in almeno un campo L’ordine con cui compaiono le righe nella tabella è irrilevante

Si noti come, costruendo una tabella con un DBMS come Access, queste condizioni, fatta eccezione per la seconda, vengono automaticamente rispettate. Ad esempio la seguente tabella Studente(Matricola,Nome,Cognome,Classe,Genitori) non è in forma normale perché il campo Genitori non contiene informazioni elementari. Si risolve il problema utilizzando una nuova tabella che contiene i dati dei genitori collegata mediante una foreign key alla tabella Studente. Studente(Matricola,Nome,Cognome,Classe) Genitore(CodiceGen,Nome,Cognome,MatricolaStudente). SECONDA FORMA NORMALE Consideriamo la seguente tabella Classe(Anno, Sezione,CodIndirizzo, NumAllievi,Aula,DescrIndirizzo). Questo è un esempio di tabella in cui la chiave primaria è multi campo cioè è costituita dall’associazione di più campi: nell’esempio specifico per individuare univocamente una classe dovremo utilizzare sia il numero dell’anno, sia la lettera della sezione, sia la sigla dell’indirizzo. In questo esempio c’è il campo DescrIndirizzo che contiene la descrizione per esteso dell’indirizzo di studi cui appartiene la classe. Qui abbiamo un esempio di dipendenza funzionale da una parte della chiave: in poche parole il campo DescrIndirizzo cambia solo se cambia il campo CodIndirizzo mentre non è influenzato dalle altre parti della chiave. Il problema che ciò genera è la ridondanza dei dati per cui la descrizione dell’indirizzo viene inutilmente replicata in più righe della tabella per le classi che appartengono allo stesso indirizzo. Si cerca di evitare queste dipendenze parziali per cui si creerà una tabella a parte per la descrizione Classe(Anno, Sezione,CodIndirizzo, NumAllievi,Aula) Indirizzo(CodIndirizzo, DescrIndirizzo)


Si noti come CodIndirizzo costituisce la chiave primaria nella tabella Indirizzo e parte della chiave primaria nella tabella Classe. Chiaramente eliminando la dipendenza parziale eliminate anche la ridondanza. Si dice che una tabella è in SECONDA FORMA NORMALE se rispetta i criteri della prima forma normale e tutti gli attributi che non hanno funzione di chiave dipendono dall’intera chiave. TERZA FORMA NORMALE Consideriamo la seguente tabella Dipendente(Matricola, Nome, Cognome, Reparto, Caporeparto). In essa il valore del campo Caporeparto dipende dal valore assunto dal campo Reparto. Siamo di fronte ad un caso in cui un campo dipende funzionalmente da un altro campo che non assume il ruolo di chiave. Il campo Caporeparto dipende dal campo chiave Matricola solo indirettamente attraverso il campo Reparto, cioè Reparto dipende da matricola e Caporeparto dipende da Reparto: si dice anche che si ha una dipendenza transitiva. Anche in questo caso questa dipendenza porta ad una ridondanza dei dati. Si risolve con l’introduzione di una nuova tabella in modo da avere solo campi che dipendono direttamente dalla chiave. Dipendente(Matricola, Nome, Cognome, Reparto) Reparto(Reparto,Caporeparto). Si ha una tabella in TERZA FORMA NORMALE quando è in seconda forma normale e non vi sono casi di dipendenza transitiva.


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.