LE BASI DI DATI Seconda parte – La progettazione di database Relazionali LA NORMALIZZAZIONE DELLE TABELLE Prima Parte FORMA NORMALE Una forma normale è una proprietà di uno schema relazionale che ne garantisce la “qualità”, cioè l’assenza di determinati difetti. Una relazione non normalizzata: •presenta ridondanze (ovvero la ripetizione di dati inutili), •esibisce comportamenti poco desiderabili durante gli aggiornamenti L’attività che permette di trasformare schemi non normalizzati in schemi che soddisfano una forma normale è detta normalizzazione 2 ESEMPIO Si consideri la seguente tabella relativa ai dati degli impiegati. È ottimale questa scelta? Ci sono ridondanze? 3 ESEMPIO Ridondanze : lo stipendio è ripetuto per ogni dipendente Da ciò deriva: •Anomalia di modifica : se varia lo stipendio di un dipendente è necessario modificarlo in tutte le righe in cui è presente •Anomalia di cancellazione : se un dipendente resta senza scuola si deve cancellarlo •Anomalia di inserimento : non posso inserire un nuovo dipendente che non è assegnato ad alcuna scuola 4 LA SOLUZIONE STA NEL Suddividere la tabella in più relazioni (o tabelle). Ciò deve avvenire senza perdita di dati. SCOPO DELLA NORMALIZZAZIONE Creare un insieme di tabelle che siano libere da dati ridondanti e che possano essere modificate senza il rischio di perdere la coerenza dei contenuti 5 DIPENDENZE FUNZIONALI Consideriamo il seguente esempio: Si osserva che: i valori contenuti nelle colonne Nome, Cognome, Indirizzo, Telefono sono associati con uno e uno solo valore della colonna ID_Anag. In questo caso si dice che le colonne Nome, Cognome, Indirizzo, Telefono sono funzionalmente dipendenti dalla colonna ID_Anag, mentre la colonna ID_Anag è detta determinante per le colonne sopra citate. 6 DIPENDENZE FUNZIONALI ID_Anag Nome, Cognome, Indirizzo, Telefono Non si può dire la stessa cosa per le colonne Località e CAP, in quanto a valori diversi della colonna ID_Anag corrispondono valori ripetuti nelle colonne Località e CAP . Si osserva invece che il CAP dipende da Località. Anagrafiche (ID_Anag, Cognome, Nome, Indirizzo, Località,CAP,Telefono) 7 DIPENDENZE FUNZIONALI DIPENDENZA FUNZIONALE Una colonna Y di una tabella R viene detta funzionalmente dipendente dalla colonna X di R se ogni valore in R viene associato con un solo valore di Y. La colonna X è detta determinante per la colonna Y. 8 PRIMA FORMA NORMALE Una tabella relazionale , per definizione è nella prima forma normale poiché : RELAZIONE IN PRIMA FORMA NORMALE Una relazione si dice in prima forma normale (1NF) se e solo se tutti i suoi attributi sono valori atomici: ciò implica che né gli attributi né i valori da questi assunti possono essere scomposti ulteriormente. 9 PRIMA FORMA NORMALE Esempi Le seguenti tabelle sono in prima forma normale ? Tabella 1 Tabella 2 10 PRIMA FORMA NORMALE Esempi - Soluzioni No, in quanto nella tabella 1 il campo Generalità non è un campo atomico, analogamente per la tabella 2 relativamente al campo Residenza. Esse vengono così ridefinite : Tabella 1 Tabella 2 11