UNITA' DI APPRENDIMENTO: SCUOLA SECONDARIA 2° |
NORMALIZZAZIONE DELLE RELAZIONI IN UN DATABASE
di Marco Bonora (1)
Unità di apprendimento per la scuola secondaria di 2° grado
Introduzione
Di seguito si illustra la pianificazione di una Unità di Apprendimento riguardo la Normalizzazione dei Databasestudiato per una quinta classe di un Istituto Tecnico Industriale.
Metodo
Lezione frontale con supporto in Power Point, discussione guidata, attività laboratoriale.
Strumenti
Laboratorio, testo in adozione, dispense e diapositive animate.
Verifiche insegnamento-apprendimento
Le verifiche in itinere e finali, effettuate attraverso osservazioni, interviste, ed esercitazioni laboratoriali, saranno utilizzate per la valutazione dell’apprendimento dei singoli allievi.
Modalità e tempi del percorso didattico
I contenuti dell’unità di apprendimento verranno proposti in seguito alla spiegazione della gestione di un archivio di dati e del modello relazionale dei database.
Tempo totale = 16 ore 3-4 settimane.
Dispense per lo studente
Introduzione
La teoria della normalizzazione è costruita attorno al concetto di forme normali. Una relazione è detta essere in una particolare forma normale se soddisfa un certo insieme di condizioni. I principi della normalizzazione rappresentano strumenti per controllare la struttura dei dati. Originariamente Codd definì prima, seconda e terza forma normale (abbreviate in 1NF, 2NF e 3NF), ma la terza fu rivisitata da Boyce e Codd che ne formularono una più forte, nel senso che ogni relazione che soddisfa la nuova versione della terza forma normale soddisfa sicuramente anche la vecchia, ma non il viceversa. La nuova versione viene chiamata forma normale di Boyce e Codd (BCNF), per essere distinta dalla vecchia. In seguito, Fagin definì una nuova quarta forma normale (abbreviata in 4NF e chiamata “quarta” perché a quel tempo quella di Boyce e Codd era ancora chiamata terza). Più recentemente, Fagin ne ha definito un’altra, che ha chiamato projection-join normal form (PJ/NF) conosciuta anche come quinta forma normale (5NF). Infine, l’ultima forma normale definita è conosciuta come la Domain Key Normal Form . Le forme normali specificano regole via via sempre più stringenti per la struttura delle relazioni; ciascuna forma estende la precedente (vedi figura 1) in modo da evitare ridondanze e determinati tipi di anomalie di aggiornamento. Prima di definire le diverse forme normali, introduciamo i problemi per i quali esse sono state create.
Impiegato |
Stipendio |
Progetto |
Bilancio |
Funzione |
Abbreviazione |
Esposito |
55000000 |
Sparta |
8000000 |
Architetto |
Arch. |
Esposito |
55000000 |
Atene |
11000000 |
Collaudatore |
Coll. |
Arturi |
86000000 |
Sparta |
8000000 |
Ingegnere |
Ing. |
Arturi |
86000000 |
Alessandria |
5000000 |
Presidente |
Pres. |
Arturi |
86000000 |
Atene |
11000000 |
Ingegnere |
Ing. |
Devoto |
44000000 |
Alessandria |
5000000 |
Collaudatore |
Coll. |
Devoto |
44000000 |
Sparta |
8000000 |
Collaudatore |
Coll. |
Carbone |
62000000 |
Sparta |
8000000 |
Presidente |
Pres |
Carbone |
62000000 |
Atene |
11000000 |
Architetto |
Arch |
Buoni |
40000000 |
Alessandria |
5000000 |
Tecnico |
Tecn. |
Queste hanno alcune conseguenze sul contenuto della relazione e sulle operazioni che si possono effettuare su di essa. Ad esempio, riguardo alla proprietà A:
Analoghe considerazioni valgono per la proprietà B e C. Una motivazione della presenza di questi inconvenienti è che abbiamo usato un’unica relazione per rappresentare informazioni eterogenee. In particolare, nella relazione sono rappresentati gli impiegati con i relativi stipendi, i progetti con i relativi bilanci e le partecipazioni degli impiegati ai progetti con le relative funzioni.
Generalizzando, possiamo trarre le seguenti conclusioni:
DEFINIZIONE 1 (Dipendenza funzionale).
In una relazione R(A,B,C) l’insieme B degli attributi dipende funzionalmente dall’insieme A se ad ogni valore di A corrisponde, all’interno di una relazione, sempre lo stesso valore di B.
Si determina quindi un rapporto biunivoco tra i valori di A e quelli di B, per cui è sufficiente conoscere il valore di A per determinare quello assunto da B.
Nell’esempio preso in considerazione possiamo dunque dire che esistono le FD:
impiegato astipendio
progetto a bilancio.
In base alla definizione data, è possibile affermare che, nella relazione in esame, è verificata anche la FD:
(impiegato, progetto) a progetto.
Questa è in effetti una FD banale perché asserisce una proprietà ovvia di una relazione.
Un esempio semplice di dipendenza funzionale è quello che mette in relazione ad esempio il codice fiscale di uno studente con la sua matricola universitaria: per ogni iscritto all’università esiste una sola matricola e viceversa pertanto la relazione è anche biunivoca.
Codice Fiscale |
Matricola universitaria |
BNCMRC75R25Y838Q |
S/054391 |
MNDFGS74T09F839Q |
S/051028 |
NTDGBM74S08F836Q |
S/062340 |
Consideriamo allora la seguente:
DEFINIZIONE 2 (dipendenza funzionale non banale)
Una dipendenza funzionale Y à Z è non banale se nessun attributo di Z compare tra gli attributi di Y.
Si noti che ogni FD del tipo
Yà ( Y, Z )
può essere resa non banale eliminando, dal secondo membro, tutti gli attributi che compaiono al primo membro.
OSSERVAZIONE: se siconsidera una chiave K di una relazione R, si può facilmente verificare che esiste una FD tra K e un qualunque altro attributo o insieme di attributi dello schema di R. Questo discende dalla definizione stessa di chiave, secondo la quale non possono esistere due tuple con gli stessi valori su K e la definizione di FD è soddisfatta. Per esempio, poiché nella relazione di figura 1 una chiave K è rappresentata dagli attributi Impiegato e Progetto, possiamo affermare che vale la FD:
(impiegato, progetto) a funzione.
In particolare, esiste una FD tra una chiave di una relazione e tutti gli attributi della relazione esclusi quelli della chiave (per non incorrere nella FD banale). Nel nostro caso si ha:
(impiegato, progetto) a (stipendio, bilancio, funzione, abbreviazione).
DEFINIZIONE 3 (Prima forma normale – 1FN).
Una relazione è in prima forma normale se i domini sui quali i suoi attributi sono definiti sono scalari (o atomici).
La prima forma normale stabilisce semplicemente una condizione che sta alla base del modello relazionale stesso: gli attributi della relazione sono definiti su valori atomici e non su valori complessi quali insiemi o relazioni.
DEFINIZIONE 4 (Seconda forma normale – 2FN).
Una relazione è in seconda forma normale se è in prima forma normale e se tutti i suoi attributi sono dipendenti dall’intera chiave primaria.
Secondo tale forma si vuole non rappresentare due entità distinte in una singola relazione.
DEFINIZIONE 5 (Terza forma normale – 3FN).
Una relazione è in terza forma normale se essa è in seconda forma normale e tutti gli attributi che non sono chiavi sono mutuamente indipendenti.
Per introdurre la forma normale di Boyce e Codd consideriamo ancora una volta l’esempio riportato in figura 1. Le proprietà A,B e C del § 2 implicano, rispettivamente, il soddisfacimento delle dipendenze funzionali
impiegato a stipendio,
progetto a bilancio,
funzione a abbreviazione.
Si noti, inoltre, che l’attributo funzione indica, per ciascuna tupla, il ruolo svolto dall’impiegato nel progetto. Tale ruolo è unico, per ciascuna coppia impiegato-progetto. Anche questa proprietà, che diciamo D, può essere rappresentata da una dipendenza funzionale:
(impiegato, progetto) a funzione.
ciò giustifica il motivo per cui gli attributi impiegato e progetto formano la chiave primaria della relazione complessiva.
Le proprietà A, B e C generano ridondanze e anomalie indesiderate attraverso la corrispondente dipendenza funzionale. La proprietà D, invece, non genera mai ridondanze perché, essendo la coppia (impiegato, progetto) la chiave primaria, la relazione non può contenere due tuple uguali su questi attributi. Per quanto riguarda le anomalie, da un punto di vista concettuale possiamo dire che essa non ne può generare, in quanto per ogni coppia impiegato-progetto è possibile avere valori univoci per tutti gli altri attributi della relazione. In alcuni casi tali valori potrebbero non essere disponibili ma, non facendo essi parte della chiave primaria, potremmo sostituirli senza problemi con valori nulli.
Possiamo quindi dedurre che le dipendenze:
impiegato a stipendio
progetto a bilancio
funzione a abbreviazione.
sono causa ridondanza e anomalie, mentre la dipendenza
(impiegato, progetto) a funzione
non lo è.
Generalizzando, ridondanze e anomalie sono causate dalle dipendenze funzionali X à Y che permettono la presenza di più tuple fra loro uguali sugli attributi in X, ovvero tali che X non contiene una chiave candidata. Si ha quindi la seguente
DEFINIZIONE 6 (forma normale di Boyce e Codd – BCFN).
Una relazione R è in forma normale di Boyce e Codd se e solo se ciascun determinante è una chiave candidata
Per poter “sanare” la relazione di figura 1 secondo la BCNF bisogna decomporla in due o più relazioni normalizzate attraverso un processo detto di normalizzazione. Questo processo si fonda su un semplice criterio: se una relazione rappresenta più concetti indipendenti, allora va decomposta in relazioni più piccole, una per ogni concetto.
Se alla relazione di figura 1 sostituiamo le quattro relazioni di figura 2, ottenute per mezzo di proiezioni sugli insiemi di attributi rispettivamente corrispondenti ai quattro concetti relativi alle proprietà A, B , C e D, eliminiamo anomalie e ridondanze, le quattro relazioni sono infatti in BCNF.
Si osservi che le quattro relazioni sono costruite in modo tale che a ciascuna dipendenza corrisponda una diversa relazione la cui chiave primaria è proprio il primo membro della dipendenza stessa. In tal modo è garantito che la relazione sia in BCNF. Nell’esempio, la separazione delle dipendenze (quindi dei concetti da esse rappresentati) è stata facilitata dalla struttura delle dipendenze stesse, “naturalmente” separate e indipendenti l’una dall’altra.
Impiegato |
Stipendio |
Esposito |
55000000 |
Arturi |
86000000 |
Devoto |
44000000 |
Carbone |
62000000 |
Buoni |
40000000 |
Funzione |
Abbreviazione |
Architetto |
Arch. |
Collaudatore |
Coll. |
Ingegnere |
Ing. |
Presidente |
Pres. |
Tecnico |
Tecn. |
Progetto |
Bilancio |
Sparta |
8000000 |
Atene |
11000000 |
Alessandria |
5000000 |
Impiegato |
Progetto |
Funzione |
Esposito |
Sparta |
Architetto |
Esposito |
Atene |
Collaudatore |
Arturi |
Sparta |
Ingegnere |
Arturi |
Alessandria |
Presidente |
Arturi |
Atene |
Ingegnere |
Devoto |
Alessandria |
Collaudatore |
Devoto |
Sparta |
Collaudatore |
Carbone |
Sparta |
Presidente |
Carbone |
Atene |
Architetto |
Buoni |
Alessandria |
Tecnico |
Figura 2 – Decomposizione della relazione in figura 1 in due relazioni in BCNF.
Nella pratica accade spesso che la decomposizione venga effettuata producendo tante relazioni quante sono le dipendenze funzionali definite (o meglio le dipendenze funzionali con diverso primo membro). In generale, purtroppo, le dipendenze possono avere una struttura complessa: può non essere necessario (o possibile) basare la decomposizione su tutte le dipendenze e può essere difficile individuare quelle su cui si deve basare la decomposizione.
La normalizzazione di un database
TEST SEMISTRUTTURATO DI VERIFICA
Alunno_____________________________________Classe_______Data__________
Avvertenze e indicazioni
La prova prevede 4 items a risposta multipla, 3 items a risposta aperta.
|
Punti 0.5 |
|
Punti 0.5 |
|
Punti 1 |
1. Quale tra le seguenti frasi esprime meglio il concetto di terza forma normale?
2. Cos’è un determinante ?
Impiegato |
Stipendio |
Progetto |
Bilancio |
Funzione |
Abbrev. |
Esposito |
55000000 |
Sparta |
8000000 |
Architetto |
Arch. |
Esposito |
55000000 |
Atene |
11000000 |
Collaudatore |
Coll. |
Arturi |
86000000 |
Sparta |
8000000 |
Ingegnere |
Ing. |
Arturi |
86000000 |
Alessandria |
5000000 |
Presidente |
Pres. |
Arturi |
86000000 |
Atene |
11000000 |
Ingegnere |
Ing. |
Devoto |
44000000 |
Alessandria |
5000000 |
Collaudatore |
Coll. |
Devoto |
44000000 |
Sparta |
8000000 |
Collaudatore |
Coll. |
3. Data la tabella, quale affermazione è vera:
4. La seconda forma normale sancisce….
5. Si consideri il problema della gestione anagrafica di un’associazione di studenti. Le informazioni più importanti sono rappresentate con la seguente relazione:
Studenti (Nome, Scuola, Telefono Scuola);
Normalizzare la relazione nella terza forma.
Nome |
Scuola |
Telefono_scuola |
|||
6. Dato il problema dell’inventario delle merci che si trovano in alcuni magazzini dislocati in diversi parti della città. Le informazioni si possono riassumere:
Merci (Codice, Magazzino, Quantità, LocalitàMagazzino);
Normalizzare la relazione nella seconda forma.
Codice |
Magazzino |
Quantità |
Località Magazzino |
7. Individuare un insieme di informazioni correlata organizzabili mediante un database ed indicare brevemente le possibili strategie di normalizzazione delle relazioni
SCHEDA PER L’INSEGNANTE:
Questa prova semistrutturata ha i fini di una verifica formativa dei discenti.
La valutazione formativa ha lo scopo di fornire una informazione continua ed analitica circa il modo in cui ciascun allievo procede nell’itinerario di apprendimento. Tale valutazione si colloca all’interno delle attività didattiche e concorre a determinare lo sviluppo successivo.
Si chiariscono innanzitutto il significato attribuito ai seguenti termini utilizzati nell’analisi della prova semistrutturata:
Le prime 4 domande sono a risposta chiusa e mirano a valutare le conoscenze raggiunte dai singoli studenti nello studio della materia. Le domande presentano una risposta vere e tre false attraverso l’utilizzo, in ogni domanda, di due distrattori deboli e di uno forte.
Le domande 5 e 6 sono a risposta aperta e puntano a valutare le competenze raggiunte dagli studenti. In particolare le domande chiedono di individuare, e applicare alcune regole di normalizzazione alle relazioni proposte
La domanda 7 mira ad verificare le capacità acquisite dagli alunni per riportare ed ampliare i concetti appresi nelle lezioni in contesti interdisciplinari in cui la presenza dell’informatica può essere da supporto allo sviluppo di progetti. In altre parole in questa domanda specifica lo studente deve individuare come inserire le abilità sviluppate nel campo dei database e delle normalizzazioni per raggruppare in maniera ordinata un insieme di informazioni correlate tra di loro.
------
(1) prof. Marco Bonora - Docente di Sistemi Informatici presso l’ITI Galileo Ferraris di Napoli