Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoFausta Zanella Modificato 8 anni fa
1
Normalizzazione
2
Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati compaiono in maniera duplicata); Incongruenza (se il dato viene aggiornato in un archivio e non in un altro, oppure se sono presenti valori diversi per lo stesso dato); Inconsistenza (i dati a disposizione non sono più affidabili, perché non si sa in modo certo quale dei diversi valori sia quello corretto).
3
Introduzione Idealmente – se lo schema concettuale è di qualità (corretto, completo e non ridondante) – se la progettazione logica è condotta applicando correttamente le regole di derivazione – la base di dati risultante dovrebbe essere di qualità In realtà – è possibile commettere errori nella fase di analisi e in quella di progettazione logica
4
Osservazione In particolare quando si deve progettare una base di dati occorre far attenzione a non creare relazioni (tabelle) con ridondanza di dati, perché essa può generare alcune anomalie: di inserimento; di aggiornamento; di cancellazione.
5
Esempio Consideriamo la seguente tabella: Magazzino CodCliIndirizzoCittàCapCodAccDescrizionePrezzoQuantità C01Via Po,23Pisa56100M03Batteria100,003 C01Via Po,23Pisa56100M12Radiatore1200,001 C01Via Po,23Pisa56100M04Antenna25,003 C02Via Moro,2Lucca55100M03Batteria100,002 C02Via Moro,2Lucca55100M12Radiatore1200,001 C03Via Roma,1Pisa56100M03Batteria100,002 In questa tabella sono rappresentate le seguenti informazioni: Gli articoli presenti in magazzino; I dati anagrafici dei clienti; Gli ordini dei clienti relativi a determinati articoli.
6
Anomalie Anomalie di inserimento: non è possibile inserire un nuovo cliente senza inserire i dati relativi agli accessori ordinati. In modo analogo, non è possibile inserire un nuovo accessorio con la sua descrizione senza inserire un cliente che lo ha ordinato.
7
Anomalie Anomalie di aggiornamento: l’indirizzo di un cliente è ripetuto in diverse tuple. Se dovesse cambiare occorre modificarlo in tutte le tuple in cui compare. Anomalie di cancellazione: cancellando la tupla di chiave (C03, M03) si perdono le informazioni relative al cliente C03.
8
Basi di dati La teoria delle basi di dati permette di evitare la ridondanza e di superare i problemi relativi alle anomalie che ne conseguono, definendo alcuni criteri che devono essere soddisfatti dalle relazioni. Tali criteri definiscono le caratteristiche che devono essere soddisfatte da una relazione ben strutturata e prendono il nome di forme normali.
9
Forme normali Una forma normale è una proprietà di uno schema relazionale che ne garantisce la qualità misurata in assenza di difetti. Le forme normali sono di livello crescente, e sono accompagnate da algoritmi per la trasformazione di una tabella, che non è in una forma normale, in un insieme di tabelle che invece sono in una forma normale.
10
Normalizzazione E’ un procedimento che serve per trasformare una relazione che presenta delle anomalie, in una prive di anomalie, garantendo la conservazione dell’informazione. Consiste di un insieme di operazioni, tramite le quali, a partire da una data tabella (non normalizzata), vengono create nuove tabelle, seguendo opportune regole, che trasformano la tabella originaria, in altre tabelle. Completa il processo di progettazione di un database relazionale. Esamina le tabelle alla ricerca di possibili incongruenze nella loro definizione.
11
Obiettivi della normalizzazione Evitare la ripetizione e la ridondanza dei dati, durante la fase di definizione della struttura di una tabella, al fine di evitare futuri problemi nelle successive fasi di trattamento della tabella stessa, tramite operazioni di modifica o cancellazione di record in essa contenuti.
12
Prima forma normale Def. Una relazione è in prima forma normale (1FN) quando rispetta i requisiti fondamentali del modello relazionale, che sono: tutte le righe della tabella contengono lo stesso numero di colonne; i valori di un attributo (colonna) sono dello stesso tipo, ovvero appartenenti allo stesso dominio; i valori di una tupla (riga) sono diversi da quelli delle altre tuple, ovvero non possono esistere due tuple uguali; l’ordine delle tuple è irrilevante; gli attributi rappresentano informazioni elementari, ossia: non possono essere ulteriormente scomposti, non possono essere composti da gruppi di attributi ripetuti.
13
Esempio Consideriamo la relazione: Dipendenti(matricola, nome, indirizzo, familiariAcarico) Essa non è in 1FN in quanto l’ultimo attributo (familiariAcarico) non è elementare, infatti è costituito da attributi ripetuti dello stesso tipo. Questa rappresentazione rende difficile l’inserimento di un nuovo familiare a carico e non permette di aggiungere informazioni sui familiari quali, per esempio, età, sesso e grado di parentela.
14
Esempio Tutti gli inconvenienti possono essere superati trasformando la relazione di partenza in due relazioni che siano in 1FN, ad esempio una scissione del tipo: Dipendenti(matricola, nome, indirizzo) Familiari(idFamiliare, nomeFamiliare, matricolaDip) In questa rappresentazione risulta facilitato l’inserimento di un nuovo familiare, inoltre si ha la possibilità di aggiungere tutte le informazioni sui familiari aggiungendo nuovi attributi nella relazione Familiari.
15
Definizioni – Chiavechiaveprimaria – Chiave o chiave primaria è l’insieme di uno o più attributi che identificano in modo univoco una n-upla (riga della tabella) – Chiave candidata – Chiave candidata è ogni insieme di uno o più attributi che possono svolgere la funzione di chiave (ci possono essere molte chiavi candidate, ma una sola chiave primaria) – Attributo non-chiave – Attributo non-chiave è un campo che non fa parte della chiave primaria.
16
Dipendenze funzionali Def. La dipendenza funzionale fra un attributo A1 e un attributo A2 si ha quando un singolo valore dell’attributo A1 determina un singolo valore dell’attributo A2. Quando questo accade si dice che A1 determina A2 e si scrive: A1 → A2 Un esempio molto semplice di dipendenza funzionale è quello che lega una persona alla propria altezza: ovviamente ad una persona corrisponde una ed una sola altezza.
17
Dipendenza transitiva Def. Si ha la dipendenza transitiva tra attributi quando un attributo A determina un attributo B e questo determina un’ulteriore attributo C; si dice allora che A determina C transitivamente In simboli: se A → B e B → C allora A → C transitivamente. Oss: Le forme normali superiori alla prima vengono introdotte per eliminare le anomalie di aggiornamento di cancellazione, evitando l’inconsistenza o la perdita indesiderata di dati.
18
Seconda forma normale Def. Una relazione è in seconda forma normale (2FN) se è in 1FN e non esistono attributi non- chiave che dipendono solo da una parte della chiave, cioè dipendenti parzialmente dalla chiave. Dalla definizione discende immediatamente che la 2FN riguarda solo quelle relazioni che hanno chiavi composte, in quanto in caso contrario la definizione è banalmente verificata. La 2FN elimina quindi la dipendenza parziale degli attributi dalla chiave. Vediamo un esempio di relazione che non è in 2FN.
19
Esempio Consideriamo la seguente relazione: Magazzino CodCliIndirizzoCittàCapCodAccDescrizionePrezzoQuantità C01Via Po,23Pisa56100M03Batteria100,003 C01Via Po,23Pisa56100M12Radiatore1200,001 C01Via Po,23Pisa56100M04Antenna25,003 C02Via Moro,2Lucca55100M03Batteria100,002 C02Via Moro,2Lucca55100M12Radiatore1200,001 C03Via Roma,1Pisa56100M03Batteria100,002 Analizziamo le dipendenze funzionali: CodCli →Indirizzo, Città, Cap CodAcc →Descrizione, Prezzo CodCli, CodAcc → Quantità La relazione non è in 2FN
20
Esempio Per trasformare una relazione in 2FN occorre sostituirla con altre relazioni in 2FN ottenute decomponendo la relazione di partenza secondo le dipendenze funzionali. Nell’esempio precedente occorre quindi creare tre tabelle: una per le dipendenze da CodCli, una per le dipendenze da CodAcc, una per le dipendenze da entrambi i campi CodCli e CodAcc.
21
Esempio CodCliIndirizzoCittàCap C01Via Po,23Pisa56100 C02Via Moro,2Lucca55100 C03Via Roma,1Pisa56100 CodAccDescrizionePrezzo M03Batteria100,00 M12Radiatore1200,00 M04Antenna25,00 Cliente Accessorio CodCliCodAccQuantità C01M033 C01M121 C01M043 C02M032 C02M121 C03M032 Ordine
22
Terza forma normale Def. Una relazione è in terza forma normale (3FN) se è in 2FN e non esistono attributi che dipendono transitivamente dalla chiave, cioè dipendenti da un attributo non chiave. Per trasformare una relazione in 3FN, si crea una nuova relazione per ogni gruppo di attributi non chiave coinvolti nella dipendenza funzionale con attributi non chiave.
23
Esempio Possiamo osservare le seguenti dipendenze funzionali: 1. Matricola-> Nome, Scuola 2. Scuola -> TelefonoScuola Che generano la catena di dipendenze: Matricola -> Scuola -> TelefonoScuola ( quest’ultima dipende transitivamente dalla chiave) MatricolaNomeScuolaTelefonoScuola 201Mario RossiI.T.C. Einaudi07056100 202Carlo BianchiLiceo Dante07055100 203Paola VerdiI.T.I Fermi07056100 Studente
24
Esempio La relazione Studenti si scompone in due relazioni: Studenti Istituti MatricolaNomeScuola 201Mario RossiI.T.C. Einaudi 202Carlo BianchiLiceo Dante 203Paola VerdiI.T.I Fermi ScuolaTelefonoScuola I.T.C. Einaudi07056100 Liceo Dante07055100 I.T.I Fermi07056100
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.