Normalizzazione Alice Pavarani Ridondanza Ridondanza è la ripetizione di informazioni Spreco di spazio Anomalie su disco • Anomalia di aggiornamento • Anomalia di cancellazione • Anomalia di inserimento Incongruenza ed inconsistenza V B - Sistemi Informativi Aziendali della base di dati Anomalie (esempio) Impiegato Stipendio Progetto Bilancio Funzione Rossi 20 Marte 2 Tecnico Verdi 35 Giove 10 Progettista Verdi 35 Venere 15 Progettista Neri 55 Venere 15 Direttore Neri 55 Giove 10 Consulente Neri 55 Marte 2 Consulente Mori 48 Marte 2 Direttore Mori 48 Venere 15 Progettista Bianchi 40 Venere 15 Progettista Bianchi 40 Giove 10 Direttore V B - Sistemi Informativi Aziendali Anomalie (esempio) Ridondanza Lo stipendio di ciascun impiegato è ripetuto in tutte le ennuple relative a ciascun impiegato Il bilancio del progetto è ripetuto in tutte le ennuple relative a ciascun progetto Anomalia di aggiornamento Se lo stipendio di un impiegato varia, è necessario andarne a modificare il valore in diverse ennuple Anomalia di cancellazione Se un impiegato interrompe la partecipazione a tutti i progetti, dobbiamo cancellarlo in corrispondenza di ogni progetto Anomalia di inserimento Un nuovo impiegato senza progetto non può essere inserito V B - Sistemi Informativi Aziendali Forme normali Si dice forma normale la proprietà di uno schema relazionale che ne garantisce il livello di qualità, cioè l’assenza di determinati difetti Le forme normali garantiscono qualità di livello incrementale La procedura che permette di trasformare schemi non normalizzati in schemi che soddisfano una forma normale è detta normalizzazione Una relazione non normalizzata: Presenta ridondanze Si presta a malfunzionamenti (anomalie) Può potare la base di dati in uno stato inconsistente In genere, la causa di questo problema è l’inserimento di informazioni eterogenee in un’unica relazione V B - Sistemi Informativi Aziendali Normalizzazione Procedura che completa il processo di progettazione logica di un database, esaminando le tabelle alla ricerca delle possibili incongruenze nella loro definizione La normalizzazione va utilizzata come tecnica di verifica dei risultati, non costituisce una metodologia di progettazione Obiettivo della normalizzazione è quello di eliminare la ridondanza delle informazioni, garantendo la non-perdita delle informazioni La fase di normalizzazione si basa su un semplice criterio: Se una relazione presenta più concetti tra loro dipendenti, la si decompone in relazioni più piccole, una per ogni concetto. V B - Sistemi Informativi Aziendali Dipendenza funzionale Si ha dipendenza funzionale tra attributi quando il valore di un insieme di attributi A determina il valore dell’attributo B, e si indica con A B . Si dice che B dipende funzionalmente da A, o che A è un determinante per B. NOTA: Se l’insieme di attributi A è chiave della relazione, la dipendenza funzionale è detta banale e non è causa di anomalie V B - Sistemi Informativi Aziendali Dipendenza funzionale: esempio Inventario (NumInventario, Prodotto, Magazzino, Quantità, IndirizzoMagazzino) NumeroInventario è chiave primaria della relazione, perciò è determinante per ogni attributo NumeroInventario (Prodotto, Magazzino, Quantità, IndirizzoMagazzino) (Prodotto, Magazzino) è chiave della relazione, perciò è determinante per ogni attributo (Prodotto, Magazzino) (NumeroInventario, Quantità, IndirizzoMagazzino) Magazzino è determinante per IndirizzoMagazzino Magazzino IndirizzoMagazzino V B - Sistemi Informativi Aziendali Prima Forma Normale 1FN Una relazione è in prima forma normale (1FN) quando rispetta i requisiti fondamentali del modello relazionale: Tutte le righe della tabella contengono lo stesso numero di colonne Gli attributi rappresentano informazioni elementari I valori che compaiono in una colonna sono tutti dello stesso tipo, cioè appartengono allo stesso dominio Ogni riga è diversa da tutte le altre L’ordine delle righe nella tabella è irrilevante Gli attributi devono essere informazioni non ulteriormente scomponibili e non devono essere gruppi di attributi ripetuti. V B - Sistemi Informativi Aziendali 1FN (esempio) Attributo multiplo Dipendente (Matricola, Cognome, Nome, Città, FamiliariACarico) L’attributo FamiliariACarico è un attributo multiplo, perciò non è elementare La relazione Dipendente non è in 1FN Conversione in due tabelle Dipendente (Matricola, Cognome, Nome, Città) Familiari (IDFam, CognomeFam, NomeFam, MatricolaDip) V B - Sistemi Informativi Aziendali 1FN (esempio) Dipendente Matricola 15001 Cognome Rossi Nome Mario Città FamiliariACarico Milano Rossi Luca Rossi Francesca Rossi Giulia 15002 Dipendente Familiari Matricola Cognome Nome Città IDFam CognomeFam NomeFam MatricolaDip 15001 Rossi Mario Milano 50001 Rossi Luca 15001 50002 Rossi Francesca 15001 50003 Rossi Giulia 15001 15002 V B - Sistemi Informativi Aziendali Seconda Forma Normale 2FN Una relazione è in seconda forma normale (2FN) quando è in prima forma normale e tutti i suoi attributi non-chiave dipendono dall’intera chiave. Ovvero, non possiede attributi che dipendono soltanto da una parte della chiave. La 2FN elimina la dipendenza parziale degli attributi dalla chiave e riguarda il caso di relazioni con chiavi composte, cioè formate da più attributi. V B - Sistemi Informativi Aziendali 2FN: esempio Inventario (Prodotto, Magazzino, Quantità, IndirizzoMagazzino) IndirizzoMagazzino dipende funzionalmente dall’attributo Magazzino che è una porzione della chiave, non l’intera chiave Magazzino IndirizzoMagazzino 1. Costruire una relazione che comprende tutti gli attributi presenti nella dipendenza funzionale che viola la 2FN Magazzino IndirizzoMagazzino Il determinante della dipendenza funzionale diventa la chiave della nuova relazione Negozi (Magazzino, IndirizzoMagazzino) 2. Costruire un relazione che comprende gli attributi della relazione di partenza, privata dell’attributo che dipende parzialmente dalla chiave Inventario (Prodotto, Magazzino, Quantità) V B - Sistemi Informativi Aziendali 2FN (esempio) Inventario Inventario Prodotto Magazzino Quantità 545 CA1 800 545 PA2 700 545 VE1 356 100 CA1 245 Prodotto Magazzino Quantità IndirizzoMagazzino 200 VE1 230 545 CA1 800 Via Tonale, 12 545 PA1 370 545 PA2 700 Via Mazzini, 25 100 PA2 350 545 VE1 356 Via Farini, 5 100 CA1 245 Via Tonale, 12 Negozi 200 VE1 230 Via Farini, 5 Magazzino IndirizzoMagazzino 545 PA1 370 Via Garibaldi, 38 CA1 Via Tonale, 12 100 PA2 350 Via Mazzini, 25 PA1 Via Garibaldi, 38 PA2 Via Mazzini, 25 VE1 Via Farini, 5 V B - Sistemi Informativi Aziendali Dipendenza transitiva Si ha dipendenza transitiva tra attributi quando B dipende funzionalmente da A (AB) e C dipende funzionalmente da B (BC). Si dice che C dipende transitivamente da A (A C transitivamente). V B - Sistemi Informativi Aziendali Terza Forma Normale 3FN Una relazione è in terza forma normale (3FN) quando è in seconda forma normale e tutti i suoi attributi nonchiave dipendono direttamente dalla chiave. Ovvero, non possiede attributi non-chiave che dipendono da altri attributi non-chiave. La 3FN elimina la dipendenza transitiva degli attributi dalla chiave. V B - Sistemi Informativi Aziendali 3FN: esempio Studenti (Cognome, Scuola, TelefonoScuola) Dipendenze funzionali 1. Cognome (Scuola, TelefonoScuola) 2. Scuola TelefonoScuola BANALE La dipendenza funzionale #2 viola la 3FN, in quanto l’attributo TelefonoScuola dipende funzionalmente dall’attributo non-chiave Scuola, Ovvero TelefonoScuola dipende transitivamente (e non direttamente) da una chiave (Cognome) La normalizzazione viene effettuata esattamente come per la 2FN Scuola (Scuola, TelefonoScuola) Studente (Cognome, Scuola) V B - Sistemi Informativi Aziendali 3FN (esempio) Studente Cognome Scuola TelefonoScuola Bianchi Liceo Fermi 02-2563561 Gialli ITC Paleari 06-1236456 Leoni Liceo Dante 011-3354661 Rossi ITIS Leonardo 045-1245996 Neri ITIS Galvani 081-4787716 Verdi Liceo Dante 011-3354661 Lorenzini ITIS Leonardo 045-1245996 Bedoni Liceo Fermi 02-2563561 V B - Sistemi Informativi Aziendali Studente Cognome Scuola Bianchi Liceo Fermi Gialli ITC Paleari Leoni Liceo Dante Rossi ITIS Leonardo Neri ITIS Galvani Verdi Liceo Dante Lorenzini ITIS Leonardo Bedoni Liceo Fermi Scuola Scuola Telefono Liceo Fermi 02-2563561 ITC Paleari 06-1236456 Liceo Dante 011-3354661 ITIS Leonardo 045-1245996 ITIS Galvani 081-4787716 Algoritmo di scomposizione Data una relazione R 1. Si identificano tutte le dipendenze funzionali e le chiavi (anche non primarie) di R 2. Se una dipendenza funzionale viola le regole di normalizzazione: a. b. c. 3. Si costruisce una nuova relazione con tutti gli attributi della dipendenza funzionale considerata Il determinante della dipendenza funzionale è la chiave primaria della tabella definita al punto a. Si costruisce una seconda relazione rimuovendo dalla tabella di partenza tutti gli attributi he sono determinati dalla dipendenza funzionale in esame Si ripete il punto 2. finché non ci sono più dipendenze funzionali che violano le regole di normalizzazione V B - Sistemi Informativi Aziendali Esercizio (da fare) Inventario (Prodotto, Magazzino, Quantità, NomeProdotto, PrezzoUnitario, IndirizzoMagazzino) Inventario (NumeroInventario, Prodotto, Magazzino, Quantità, NomeProdotto, PrezzoUnitario, IndirizzoMagazzino) Incarico (Impiegato, Stipendio, Progetto, Bilancio, Funzione) V B - Sistemi Informativi Aziendali Osservazioni (1) La normalizzazione è un procedimento algoritmico quindi, almeno apparentemente, di semplice attuazione MA il punto 1. dell’algoritmo di scomposizione e, in generale, la normalizzazione può avvenire solo dopo che sono state individuate tutte le dipendenze funzionali L’individuazione delle dipendenze funzionali di una relazione è una fase non automatizzabile, richiede infatti una conoscenza approfondita della realtà che si vuole gestire V B - Sistemi Informativi Aziendali Osservazioni (2) La normalizzazione rende più complesse le operazioni di ritrovamento dei dati In generale nelle basi di dati, la consistenza e l’integrità dei dati sono prioritarie rispetto alla velocità di ritrovamento dei dati Database operativi, i dati sono in continuo aggiornamento Database di sola lettura, i dati non sono mai modificati ma acceduti solamente per essere analizzati ed elaborati a scopo informativo (es. supporto alle decisioni, applicazioni direzionali,…) L’unico fattore importante è la velocità di accesso ai dati La ridondanza è tollerata anzi, addirittura voluta V B - Sistemi Informativi Aziendali