NORMALIZZAZIONE Abbiamo spiegato nella risposta 51 che il data base relazionale è una raccolta esauriente e completa di dati relativi ad un certo reparto, ad un prefissato tema ecc. A causa delle sue impegnative caratteristiche, il data base relazionale va puntualmente controllato in fase di progetto e la normalizzazione stabilisce i criteri da seguire, in particolare dà le regole dettagliate perché ogni tabella sia corretta e quindi di conseguenza lo sia tutto il data base.Come principio generale si assume che l'esperto controlli l'assoluta coerenza interna della tabella mediante la chiave cui ogni attributo deve dipendere con rigore. In particolare per ogni valore della chiave deve sussistere un solo valore dell'attributo. Tabella
Quando questo principio non è verificato, allora l'esperto
riconosce che l'attributo non è strettamente pertinente, lo toglie e lo mette
in un'altra tabella già costituita oppure in una del tutto nuova.
Prodotti
Si nota come ad un valore di COD non corrisponde un solo magazzino ma diversi magazzini dunque gli ultimi tre dati vanno portati via. Viene corretta la tabella Prodotti e viene creata la tabella Depositi che illustra i quantitativi depositati nei vari magazzini. Depositi è una tabella con chiave doppia. Prodotti
Depositi
2° - Quando la chiave è composta, ciascun dato deve dipendere da tutte le sue parti e non da una parte soltanto. Ad esempio in Depositi QTA dipende sia da COD sia da MAG, invece l'indirizzo del magazzino dipende sono da MAG. Dunque la tabella Depositi va corretta e ne va creata una nuova dietro lo scorporo degli indirizzi dei magazzini Depositi
Magazzini
3° - Talora un dato dipende dalla chiave non direttamente ma per il tramite di un altro dato. La terza normalizzazione corregge tale dipendenza transitiva. Come esempio prendiamo la seguente tabella che riporta il numero ordine (NUM), il codice del prodotto venduto (COD), la data, il codice del cliente (CODCLI) che ha effettuato l'ordine, la sua ragione sociale (RAG) e l'importo dell'ordine (IMP): Ordini
Evidentemente la ragione sociale non dipende direttamente dalla chiave quanto piuttosto dipende dal codice cliente. Dunque c'è una dipendenza transitiva e l'attributo RAG va espluso per creare la nuova tabella Clienti Ordini
Clienti
La normalizzazione è conclusa. Dopo aver rivisto le tabelle iniziali Prodotti ed Ordini, ne abbiamo trovate altre tre: Depositi, Magazzini e Clienti. La normalizzazione dimostra che i contenuti delle tabelle iniziali erano confusi e dunque abbiamo ora una soluzione corretta che esplica separatamente cinque diversi temi in cinque tabelle separate.
*** La normalizzazione serve per progettare un data base ex-novo, in questo caso si dice che si segue un metodo top-down. Si parte dall'analisi generale formalizzata mediante il grafo ERD (Entity relationship Diagram) (usato anche nell'articolo Data Base Relazionale) poi si fissano i contenuti delle tabelle ed infine le si controlla con la normalizzazione. ERD -> Normalizzazione
In pratica si segue un ordine inverso al precedente Normalizzazione -> ERD l due metodi dimostrano in modo palese il valore e la forza della normalizzazione la quale progressivamente aiuta a scoprire nuove tabelle ed insieme garantisce la loro correttezza. * * * E' importante sottolineare che la più parte dei manuali
in circolazione non presentano la normalizzazione così da far vedere il
suo completo significato, ma la illustrano come "un metodo di ottimizzazione", cioè con scopi migliorativi
e dunque accessori.
anno 2007 |