Upload
doankhanh
View
217
Download
0
Embed Size (px)
Citation preview
Capitolo terzo
Lo schema logico secondo il modello relazionale
Capitolo terzo Lo schema logico secondo il modello relazionale
31 Introduzione
La fase della progettazione concettuale dei dati porta a definire lo Schema
Concettuale
Il modello concettuale cerca di dare una struttura ai dati evitando il piugrave
possibile i dettagli realizzativi per cui con lo Schema Concettuale si otterragrave
un documento di base che descrive la struttura del sistema informatico in
maniera astratta vale a dire astratta dal modello concettuale prescelto
Quindi egrave un documento che guideragrave i progettisti nella fase della
progettazione logica alla realizzazione dello Schema logico secondo un particolare modello scelto Un modello dei dati puograve essere definito come un
insieme di concetti descritti tramite un preciso formalismo il cui scopo egrave quello di
permettere una rappresentazione ed una manipolazione delle informazioni che
costituiscono il mondo della realtagrave1 Date afferma che il modello dei dati egrave
sempre costituito da tre componenti fondamentali
A un insieme di oggetti
B un insieme di operatori
C un insieme di regole di integritagrave
Lrsquoinsieme degli oggetti egrave costituito dallo schema logico della base dei dati
secondo le regole del modello Gli operatori permettono di realizzare sul
database funzioni come ricerca aggiornamento interrogazioni ecc mentre
le regole di integritagrave definiscono gli stati di congruenza del modello Un
modello puograve essere definito (Codd) come uno strumento che allo stesso
tempo realizza una rappresentazione logica della realtagrave e una manipolazione
di questa rappresentazione
Il modello scelto per realizzare lo schema concettuale egrave quello relazionale
elaborato da Codd nel 1970 Si tratta di un modello matematico per la
descrizione dello schema logico in maniera indipendente dalla realizzazione
fisica il quale trae le sue origini dalla teoria degli insiemi Molti autori in
117
Capitolo terzo Lo schema logico secondo il modello relazionale
seguito hanno approfondito lrsquoargomento cercando di formalizzare i diversi
problemi che lrsquoutilizzo del modello dei dati ha suscitato volendo
rappresentare in un sistema informatico un frammento del mondo reale
Questo modello si egrave sempre piugrave affermato nel mondo dei database
divenendo ormai il modello standard adottato per la descrizione dello
schema logico dei database anche se nessun gestore di database puograve dirsi
attualmente completamente relazionale
32 Il modello relazionale dei dati
Innanzi tutto vengono date alcune definizioni
Coppia ordinata Dati due insiemi D1 e D2 due elementi
d1 D1 d2 D2
considerati in un dato ordine costituiscono una coppia ordinata
(d1 d2)
Tuple Una tuple egrave una generalizzazione del concetto di coppia ordinata
Dati n insiemi
D1 D2Dn
una tuple egrave una sequenza di n elementi ordinati
(d1d2dn)
con
di Di i = 12n
Relazione un insieme di tuples costituisce una relazione definendola in
questo modo (Nazzini) Dati n insiemi (o DOMINI) non necessariamente distinti
D1 D2Dn
una relazione R sui domini D1D2Dn egrave un insieme di tuples
d1d2dn
1 Schiavetti Database Jackson 1985 118
Capitolo terzo Lo schema logico secondo il modello relazionale
con
di Di i = 12n
A1 A2 An d1 d2 dn drsquo1 drsquo2 drsquon
d(m)1 d(m)2 d(m)n
Alla base del modello relazionale si trova la relazione detta anche tabella o
schema poicheacute questa egrave costituita su di una struttura di righe dette tuple e
colonne dette domini della tabella
Le testate della tabella Ai si dicono attributi mentre il numero n dei domini
viene detto grado o arietagrave della tabella Le tabelle che hanno un solo attributo
si dicono unarie quelle con due attributi binarie con tre ternarie e via
dicendo Il numero delle tuple si dice cardinalitagrave (m+1)
Le proprietagrave delle relazioni possono essere cosigrave riassunte2
I valori di ogni colonna sono fra loro omogenei I valori di un attributo
appartengono allo stesso dominio (interi stringhe di caratteri ecc)
Quindi si puograve affermare che gli attributi rappresentano lrsquouso dei domini
in una determinata tabella
lrsquoordinamento delle colonne egrave irrilevante Poicheacute sono sempre identificate per
nome e non per posizione
lrsquoordinamento delle righe egrave irrilevante Poicheacute queste sono identificate per
contenuto e non per posizione
Lo schema di una tabella R(A) egrave unespressione che contiene il nome della
tabella seguito dallrsquoelenco di tutti gli attributi della tabella stessa Puograve
essere sia lrsquointestazione della tabella sia questa espressione Prodotto
(codice descrizione giacenza)
2 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 119
Capitolo terzo Lo schema logico secondo il modello relazionale
321 Chiavi ed attributi di una relazione
Il concetto di chiave viene elaborato nella teoria relazionale poicheacute le tabelle
devono essere costruite in modo tale che ogni tupla deve essere distinta per
mezzo di uno o piugrave attributi Quindi scopo delle chiavi egrave identificare
univocamente queste tuple Si distingue fra superchiave chiave candidate e
chiave primaria La superchiave egrave lrsquoinsieme degli attributi che identificano
univocamente una tuple La chiave candidata egrave in numero minimo di
attributi necessari per identificare univocamente una tuple Puograve essere definita come una superchiave dalla quale possono essere eliminati attributi senza
distruggere la proprietagrave della identificazione univoca della tuple Per cui una chiave
candidata egrave una superchiave con la proprietagrave di non ridondanza3
Fra le chiavi candidate che possono essere piugrave di una se ne sceglieragrave una
che ha il minor numero di attributi e che a paritagrave di attributi ha il minor
numero di caratteri Questa egrave la chiave primaria e saragrave la chiave scelta fra le
chiavi candidate a rappresentare univocamente una tuple
Rispetto alla chiave della tabella si possono distinguere gli attributi primi
cioegrave quelli che fanno parte di almeno una chiave candidata e i restanti
attributi non primi Infine quegli attributi che possono costituire la chiave di
altre tabelle sono detti chiave esterna e permettono di stabilire associazioni
fra le tabelle che rappresentano diverse entitagrave
33 Traduzione dei diagrammi E|R di uno schema concettuale in un
modello relazionale
Si puograve tradurre abbastanza agevolmente gli schemi ER secondo le strutture
delle basi di dati relazionali seguendo perograve alcune regole
331 Entitagrave e gerarchie IS-A
3 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali 120
Capitolo terzo Lo schema logico secondo il modello relazionale
Le entitagrave degli schemi E|R vengono tradotte in altrettante tabelle Gli
attributi delle entitagrave vengono riportati nelle colonne mentre le occorrenze
delle entitagrave saranno tradotte in tuples
Per tradurre invece le strutture IS-A nel modello relazionale si possono
adottare diverse soluzioni
Una puograve essere quella di inserire tutto in una tabella che contenga gli
attributi comuni e gli attributi caratteristici di ciascuna classe Per questo in
ogni tupla saranno vuote alcune colonne relative ad alcuni attributi a
seconda che come nellrsquoesempio del capitolo 2 il dipendente appartenga alla
categoria impiegati o dipendenti In questo caso ci saragrave uno spreco di spazio
Unrsquoaltra soluzione che puograve porre rimedio a questo inconveniente egrave quello di
creare una tabella che contenga tutti gli attributi comuni e inserire gli
attributi specifici dei sottoinsiemi definiti dalla IS-A in altre tabelle legate a
questa da associazioni 1 ad 1 Quindi nellrsquoesempio della gerarchia IS-A
individuata dal diagramma dipendenti si puograve inserire in una tabella gli
attributi comuni e realizzare due tabelle operai ed impiegati in cui inserire
gli attributi specifici delle due categorie
332 Associazioni 1 a 1 e 1 a n
Per tradurre il legame tra due entitagrave che viene realizzato da unassociazione 1
a 1 si deve inserire tra gli attributi di almeno una delle entitagrave la chiave
esterna cioegrave quellrsquoattributo o insieme di attributi che identificano lrsquoentitagrave ad
essa collegata Le associazioni 1 a n sono tradotte in modo analogo Occorre
perograve prestare attenzione a non inserire perograve attributi ripetuti siano chiavi
esterne o attributi normali percheacute possono essere causa di problemi nella
gestione delle tabelle Ad esempio in una relazione 1 a n fra due entitagrave cliente e numero drsquoordine inserisco la chiave primaria della tabella cliente
nella tabella ordini divenendo chiave esterna Se facessi lrsquoinverso ovvero se
inserissi come chiave esterna nella relazione clienti la chiave della tabella
ordini dovrei inserire per ogni cliente tutti gli ordini creando molte tuples
121
Capitolo terzo Lo schema logico secondo il modello relazionale
Le associazioni tra entitagrave del tipo 1 a 1 o 1 a n riportate sui diagrammi ER
possono aver attributi propri Questi attributi possono essere riportati in
altrettante colonne di una delle tabelle in cui sono state tradotte le entitagrave
333 Associazioni n a m
Per tradurre le associazioni n a m (molti a molti) egrave necessario introdurre una
nuova tabella Questo procedimento sconsigliato per le associazioni 1 a 1 e 1
a n egrave la strada obbligata per questo tipo di associazione (poicheacute col metodo
precedente si avrebbe una grande proliferazione di attributi multipli) La
nuova tabella includeragrave gli attributi propri della associazione e le chiavi
esterne che permettono i collegamenti con le due tabelle traduzione delle
entitagrave che tramite essa sono associate La chiave primaria della nuova tabella
egrave costituita dalla coppia primaria di chiavi esterne Si spezza cosigrave
unassociazione m a n in due associazioni 1 a n
Articoli Torrone Spumante Gianduia Panettone Panforte Cioccolata Panepepato Champagn Pandoro
eFATTURA
01
02 03 04 05 06 07 08 09 10
6 15 5 5
5 5 120
10 30 10 50 20 20
20 20 15 11 6 12
5 6 10 15 5 5
Figura 31 Esempio di matrice Una relazione molti a molti si presta ad essere rappresentata sotto forma
di matrice rettangolare In questo caso si ha una matrice fra articoli e fatture La matrice letta in verticale indica
in quale fattura egrave stato venduto lrsquoarticolo Letta orizzontalmente indica quali articoli sono stati venduti in una
data fattura Il numero nella casella puograve indicare la quantitagrave venduta nella fattura (Mcmicrocomputer)
34 Regole di integritagrave
Il modello relazionale prevede due regole generali di integritagrave Queste sono
la integritagrave di entitagrave e la integritagrave referenziale (o di riferimento)
122
Capitolo terzo Lo schema logico secondo il modello relazionale
Integritagrave di entitagrave Se A egrave un attributo della relazione R e partecipa alla chiave
primaria non puograve avere valori Null Questo vuol dire che tutti gli attributi che
partecipano alla chiave primaria non possono essere definiti su di un dominio che
contempli valori Null
Integritagrave di riferimento Se nella relazione R la chiave primaria egrave rappresentata
dallrsquoattributo ( o insieme di attributi) A definito sul dominio D allora in tutte le
relazioni Sj in cui appare come attributo A le tuples devono contenere un valore di
A definito sul dominio D oppure un valore Null Lrsquoattributo A nelle relazioni Sj
prende il nome di chiave esterna4
Per una chiave esterna va verificato se
Puograve assumere valori Null
Cosa succede nella tabella collegata tramite chiave esterna se viene
cancellato o modificato un valore della chiave primaria della tabella
che ad essa si collega se questo valore egrave presente (nella tabella
collegata) in una sua occorrenza
La possibilitagrave che ha una chiave esterna di assumere valori Null dipende dai
tipi di Associazione Se ad esempio lrsquoassociazione egrave quella fra Impiegato e
Reparto la chiave esterna corrispondente al reparto puograve assumere il valore
Null (un impiegato non egrave assegnato ad un reparto) mentre nella associazione
Fattura - Movimenti la chiave esterna corrispondente alla fattura non puograve
mai assumere il valore Null (un movimento non puograve esistere senza fattura)
Gli effetti dellrsquoaggiornamento o della cancellazione di una chiave primaria
presente come chiave esterna in altre tabelle si possono ricondurre a tre casi Effetto cascata Una cancellazione o un aggiornamento della chiave primaria
provoca una cancellazione o un aggiornamento delle occorrenze presenti
nelle tabelle collegate tramite chiave esterna
Effetto restrizione La cancellazione o lrsquoaggiornamento non devono essere
permessi se sono presenti occorrenze per il valore considerato nelle tabelle
collegate da chiave esterna
4 Schiavetti Database Jackson 1989 123
Capitolo terzo Lo schema logico secondo il modello relazionale
Effetto annullamento La cancellazione o lrsquoaggiornamento di un valore della
chiave primaria provoca un annullamento (Null) dei corrispondenti valori
presenti nelle chiavi secondarie delle tabelle collegate da chiave esterna
Bencheacute il modello relazionale tramite normalizzazione crea sia lrsquointegritagrave di
entitagrave sia lrsquontegritagrave di riferimento spetteragrave al RDBMS (Relational DBMS)
mantenere lrsquointegritagrave durante il procedimento di inserimento dei dati
In questo i diversi Rdbms differiscono molto applicando le tecniche piugrave
disparate
35 Operazioni relazionali
Lrsquoalgebra relazionale basata sulla teoria degli insiemi offre una tecnica di
estrazione dei dati molto efficace in un database relazionale Per rendere
possibile la manipolazione dei dati utilizza degli operatori che trasformano
una o piugrave relazioni in una nuova relazione Possono essere individuate due
categorie di operazioni
1 operazioni insiemistiche cioegrave si tratta di operazioni dellrsquoalgebra degli
insiemi applicate alla entitagrave relazione Le piugrave diffuse in ambito relazionale
sono
unione
intersezione
prodotto (catesiano)
differenza
2 operazioni relazionali si tratta di operazioni che sono caratteristiche solo
dellrsquoalgebra relazionale e non dellrsquoalgebra degli insiemi Le operazioni
piugrave diffuse sono
selezione
proiezione
congiunzione (combinazione)
divisione
124
K21 K22 K23
Capitolo terzo Lo schema logico secondo il modello relazionale
351 Operazioni insiemistiche
3511 Unione
Lrsquounione della relazione R1(A1) con la relazione R2(A2) indicata con R=R1
R2 egrave lrsquoinsieme di tutti i tuples (righe) senza alcuna ripetizione5 R1 R2
A11 A12 A13 B11 B12 B13 C11 C12 C13
K11 K12 K13 K21 K22 K23
R
Figura 32 Relazione di unione
Occorre perograve che vengano soddisfatte queste condizioni
1 le due tabelle per essere unificabili devono essere compatibili6 cioegrave
devono avere egual grado ( stesso numero di colonne)
la k-esima colonna delle tabella R1 deve essere definita sugli stessi
domini e quindi essere compatibile con la corrispondente colonna
della tabella R2 ( es entrambe numeriche)
2 se esistono due righe uguali convenzionalmente ne viene indicata una
sola
A11 A12 A13 B11 B12 B13
C11 C12 C13 K11 K12 K13
5 Come si vede questa definizione assomiglia molto a quella della unione di due insiemi Per cui secondo quanto afferma Belski in Dati e basi di dati ldquodati due insiemi I1 e I2 diciamo lrsquounione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad almeno uno degli insiemi assegnatirdquo Valgono le proprietagrave commutativa I1 I2= I2 I1 associativa I1 (I2 I3)= (I1 I2) I3 distributiva I1 (I2 I3)= (I1 I2) ( I1 I2)
6 ldquoDue relazioni si dicono compatibili se sono dello stesso grado e definite sugli stessi dominirdquo rdquo Lrsquounione di due relazioni compatibili egrave costituita da tutte quelle tuples che appartengono ad almeno una delle due relazionirdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Questa proprietagrave vale sia per lrsquounione ma anche per lrsquointersezione e la differenza
125
R
Capitolo terzo Lo schema logico secondo il modello relazionale
3512 Intersezione
Lrsquointersezione della relazione R1(A1) e R2(A2) indicata con R=R1 R2 egrave
lrsquoinsieme di tutti i tuples o righe appartenenti sia ad R1(A1)che a R2(A2)7
R1 R2
A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14
A11 A12 A13 A14 C11 C12 C13 C14 E11 E12 E13 E14
A11 A12 A13 A14 C11 C12 C13 C14
Figura 33 Relazione di intersezione
3513 Prodotto cartesiano
Il prodotto cartesiano delle relazioni R1 e R2 rispettivamente di grado n e k
e di cardinalitagrave m1 e m2 egrave la relazione indicata con R=R1 R2 che ha grado
n+k e cardinalitagrave m1 m2 composta dalle tuple che si ottengono
concatenando ogni tuple di R1 con tutte le tuple di R28
Per concatenare due tuples r1 (a1 a2 an) e r2 (b1 b2 bk) si costruisce
una tupla che ha gli attributi di entrambe
r1 conc r2= (a1 a2 an b1 b2 bk)
7 ldquoDati due insiemi I1 e I2 diciamo intersezione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono sia ad I1 che ad I2rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli 8 ldquoDati due insiemi I1 e I2 diciamo prodotto cartesiano I1 I2 lrsquoinsieme costituito dalle coppie ordinate (i1i2) con i1 I1 e i2 I2 rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli Il prodotto cartesiano puograve essere considerato come la forma generica di concatenamento in cui ogni tuple di R1 viene concatenato con ogni tuple di R2 Il prodotto cartesiano egrave utile nelle interrogazioni in cui egrave necessaria ogni possibile combinazione tra i tuples delle due relazioni Altre forme di concatenamento dette concatenamento naturale sono rappresentate dal join in cui un tuple puograve essere escluso dalla relazione risultante se non soddisferagrave le condizioni poste Uno dei problemi dei concatenamenti naturali consiste nella perdita di informazioni dato che la relazione risultante non contiene tutti i tuples I concatenamenti che presentano questo tipo di rischio si dicono concatenamenti (naturali) interni mentre vengono chiamati concatenamenti (naturali) esterni quelli in cui la perdita di informazioni egrave impossibile Questi operano come i concatenamenti naturali interni ma la relazione risultante potragrave includere anche i tuples senza corrispondenze i valori mancanti saranno sostituiti con valori nulli- S Misbah Deen Database concetti teorici ed applicativi FrancoAngeli
126
R
Capitolo terzo Lo schema logico secondo il modello relazionale
Si costruisce cioegrave con il prodotto cartesiano una tabella con lo schema
R(A1A2An B1B2Bk) le cui tuples sono formate per primi n elementi
di una tupla di R1 e per i restanti k elementi da una tuple di R29 R1 R2
Riga R1-1 Riga R1-2 Riga R1-3 Riga R1-n
Riga R2-1 Riga R2-2 Riga R1-k
Riga R1-1 Riga R2-1 Riga R1-1 Riga R2-2 Riga R1-1 Riga R1-1 Riga R1-k Riga R1-2 Riga R2-1 Riga R1-2 Riga R2-2 Riga R1-2 Riga R1-2 Riga R1-k Riga R1-3 Riga R2-1 Riga R1-3 Riga R2-2 Riga R1-3 Riga R1-3 Riga R1-k Riga R1-n Riga R2-1 Riga R1-n Riga R2-2 Riga R1-n Riga R1-n Riga R1-k
Figura 34 Relazione prodotto cartesiano
3514 Differenza
La differenza tra relazione R1 e R2 indicata con R=R1 R2 (R=R1- R2) egrave
lrsquoinsieme di tutti i tuples o righe appartenenti ad R1 ma non a R210 R1 R2 R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A12 A13 A14
C11 C12 C13 C14
E11 E12 E13 E14
B11 B12 B13 B14
D11 D12 D13 D14
Figura 35 Relazione differenza
9 ldquoIl prodotto cartesiano di due relazioni egrave la relazione che si ottiene concatenando ciascuna tuple della R1 con tutte le tuples della R2rdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Il grado del prodotto cartesiano egrave la somma dei gradi di R1 ed R2 La cardinalitagrave del prodotto cartesiano egrave il prodotto della cardinalitagrave di R1 ed R2 10 ldquoDati due insiemi I1 e I2 diciamo differenza I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad I1 che non appartengono a I2rdquo V Belski Dati e basi di dati Il modello relazionale FrancoAngeli
127
Capitolo terzo Lo schema logico secondo il modello relazionale
352 Operazioni dellrsquoalgebra relazionale
3521 Selezione
Data relazione R1 ed un predicato P semplice o composto che opera sugli attributi
di R1 la selezione di R1 su P egrave una relazione R le cui tuples sono tutte le tuples di
R1 che soddisfano P11
R1 R
A11 A12 A13 A14
C11 C12 C13 C14
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
Figura 36 Selezione di R1 su P
Un predicato egrave una condizione imposta sui valori di uno o piugrave attributi e puograve
essere semplice oppure composto Ersquo semplice quando esprime una relazione
del tipo
[attributo] [operatore di confronto] [attributo]
Gli operatori di confronto sono rappresentati da = (diverso) lt gt lt= gt=
Ersquo composto se egrave costituito da due o piugrave predicati collegati fra loro tramite
operatori booleani AND OR NOT Lrsquooperazione di selezione sceglie i tuples
di una relazione in cui il predicato risulta essere vero mentre le colonne
restano le stesse Ci si puograve chiedere quando un predicato composto da piugrave
predicati egrave vero e quindi quando verranno prelevate delle tuples Per questo
possono essere riportate le tavole di veritagrave di Boole
11 Lrsquooperatore di selezione egrave un filtro che sceglie alcune righe quelle che soddisfano una certa condizione Select R where p Lrsquooperatore di selezione crea una nuova relazione che egrave un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale Le righe scelte sono quelle risulta vera la proposizione p - Nazzini Sanges Vaccaro Introduzione ai database relazionali
128
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
31 Introduzione
La fase della progettazione concettuale dei dati porta a definire lo Schema
Concettuale
Il modello concettuale cerca di dare una struttura ai dati evitando il piugrave
possibile i dettagli realizzativi per cui con lo Schema Concettuale si otterragrave
un documento di base che descrive la struttura del sistema informatico in
maniera astratta vale a dire astratta dal modello concettuale prescelto
Quindi egrave un documento che guideragrave i progettisti nella fase della
progettazione logica alla realizzazione dello Schema logico secondo un particolare modello scelto Un modello dei dati puograve essere definito come un
insieme di concetti descritti tramite un preciso formalismo il cui scopo egrave quello di
permettere una rappresentazione ed una manipolazione delle informazioni che
costituiscono il mondo della realtagrave1 Date afferma che il modello dei dati egrave
sempre costituito da tre componenti fondamentali
A un insieme di oggetti
B un insieme di operatori
C un insieme di regole di integritagrave
Lrsquoinsieme degli oggetti egrave costituito dallo schema logico della base dei dati
secondo le regole del modello Gli operatori permettono di realizzare sul
database funzioni come ricerca aggiornamento interrogazioni ecc mentre
le regole di integritagrave definiscono gli stati di congruenza del modello Un
modello puograve essere definito (Codd) come uno strumento che allo stesso
tempo realizza una rappresentazione logica della realtagrave e una manipolazione
di questa rappresentazione
Il modello scelto per realizzare lo schema concettuale egrave quello relazionale
elaborato da Codd nel 1970 Si tratta di un modello matematico per la
descrizione dello schema logico in maniera indipendente dalla realizzazione
fisica il quale trae le sue origini dalla teoria degli insiemi Molti autori in
117
Capitolo terzo Lo schema logico secondo il modello relazionale
seguito hanno approfondito lrsquoargomento cercando di formalizzare i diversi
problemi che lrsquoutilizzo del modello dei dati ha suscitato volendo
rappresentare in un sistema informatico un frammento del mondo reale
Questo modello si egrave sempre piugrave affermato nel mondo dei database
divenendo ormai il modello standard adottato per la descrizione dello
schema logico dei database anche se nessun gestore di database puograve dirsi
attualmente completamente relazionale
32 Il modello relazionale dei dati
Innanzi tutto vengono date alcune definizioni
Coppia ordinata Dati due insiemi D1 e D2 due elementi
d1 D1 d2 D2
considerati in un dato ordine costituiscono una coppia ordinata
(d1 d2)
Tuple Una tuple egrave una generalizzazione del concetto di coppia ordinata
Dati n insiemi
D1 D2Dn
una tuple egrave una sequenza di n elementi ordinati
(d1d2dn)
con
di Di i = 12n
Relazione un insieme di tuples costituisce una relazione definendola in
questo modo (Nazzini) Dati n insiemi (o DOMINI) non necessariamente distinti
D1 D2Dn
una relazione R sui domini D1D2Dn egrave un insieme di tuples
d1d2dn
1 Schiavetti Database Jackson 1985 118
Capitolo terzo Lo schema logico secondo il modello relazionale
con
di Di i = 12n
A1 A2 An d1 d2 dn drsquo1 drsquo2 drsquon
d(m)1 d(m)2 d(m)n
Alla base del modello relazionale si trova la relazione detta anche tabella o
schema poicheacute questa egrave costituita su di una struttura di righe dette tuple e
colonne dette domini della tabella
Le testate della tabella Ai si dicono attributi mentre il numero n dei domini
viene detto grado o arietagrave della tabella Le tabelle che hanno un solo attributo
si dicono unarie quelle con due attributi binarie con tre ternarie e via
dicendo Il numero delle tuple si dice cardinalitagrave (m+1)
Le proprietagrave delle relazioni possono essere cosigrave riassunte2
I valori di ogni colonna sono fra loro omogenei I valori di un attributo
appartengono allo stesso dominio (interi stringhe di caratteri ecc)
Quindi si puograve affermare che gli attributi rappresentano lrsquouso dei domini
in una determinata tabella
lrsquoordinamento delle colonne egrave irrilevante Poicheacute sono sempre identificate per
nome e non per posizione
lrsquoordinamento delle righe egrave irrilevante Poicheacute queste sono identificate per
contenuto e non per posizione
Lo schema di una tabella R(A) egrave unespressione che contiene il nome della
tabella seguito dallrsquoelenco di tutti gli attributi della tabella stessa Puograve
essere sia lrsquointestazione della tabella sia questa espressione Prodotto
(codice descrizione giacenza)
2 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 119
Capitolo terzo Lo schema logico secondo il modello relazionale
321 Chiavi ed attributi di una relazione
Il concetto di chiave viene elaborato nella teoria relazionale poicheacute le tabelle
devono essere costruite in modo tale che ogni tupla deve essere distinta per
mezzo di uno o piugrave attributi Quindi scopo delle chiavi egrave identificare
univocamente queste tuple Si distingue fra superchiave chiave candidate e
chiave primaria La superchiave egrave lrsquoinsieme degli attributi che identificano
univocamente una tuple La chiave candidata egrave in numero minimo di
attributi necessari per identificare univocamente una tuple Puograve essere definita come una superchiave dalla quale possono essere eliminati attributi senza
distruggere la proprietagrave della identificazione univoca della tuple Per cui una chiave
candidata egrave una superchiave con la proprietagrave di non ridondanza3
Fra le chiavi candidate che possono essere piugrave di una se ne sceglieragrave una
che ha il minor numero di attributi e che a paritagrave di attributi ha il minor
numero di caratteri Questa egrave la chiave primaria e saragrave la chiave scelta fra le
chiavi candidate a rappresentare univocamente una tuple
Rispetto alla chiave della tabella si possono distinguere gli attributi primi
cioegrave quelli che fanno parte di almeno una chiave candidata e i restanti
attributi non primi Infine quegli attributi che possono costituire la chiave di
altre tabelle sono detti chiave esterna e permettono di stabilire associazioni
fra le tabelle che rappresentano diverse entitagrave
33 Traduzione dei diagrammi E|R di uno schema concettuale in un
modello relazionale
Si puograve tradurre abbastanza agevolmente gli schemi ER secondo le strutture
delle basi di dati relazionali seguendo perograve alcune regole
331 Entitagrave e gerarchie IS-A
3 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali 120
Capitolo terzo Lo schema logico secondo il modello relazionale
Le entitagrave degli schemi E|R vengono tradotte in altrettante tabelle Gli
attributi delle entitagrave vengono riportati nelle colonne mentre le occorrenze
delle entitagrave saranno tradotte in tuples
Per tradurre invece le strutture IS-A nel modello relazionale si possono
adottare diverse soluzioni
Una puograve essere quella di inserire tutto in una tabella che contenga gli
attributi comuni e gli attributi caratteristici di ciascuna classe Per questo in
ogni tupla saranno vuote alcune colonne relative ad alcuni attributi a
seconda che come nellrsquoesempio del capitolo 2 il dipendente appartenga alla
categoria impiegati o dipendenti In questo caso ci saragrave uno spreco di spazio
Unrsquoaltra soluzione che puograve porre rimedio a questo inconveniente egrave quello di
creare una tabella che contenga tutti gli attributi comuni e inserire gli
attributi specifici dei sottoinsiemi definiti dalla IS-A in altre tabelle legate a
questa da associazioni 1 ad 1 Quindi nellrsquoesempio della gerarchia IS-A
individuata dal diagramma dipendenti si puograve inserire in una tabella gli
attributi comuni e realizzare due tabelle operai ed impiegati in cui inserire
gli attributi specifici delle due categorie
332 Associazioni 1 a 1 e 1 a n
Per tradurre il legame tra due entitagrave che viene realizzato da unassociazione 1
a 1 si deve inserire tra gli attributi di almeno una delle entitagrave la chiave
esterna cioegrave quellrsquoattributo o insieme di attributi che identificano lrsquoentitagrave ad
essa collegata Le associazioni 1 a n sono tradotte in modo analogo Occorre
perograve prestare attenzione a non inserire perograve attributi ripetuti siano chiavi
esterne o attributi normali percheacute possono essere causa di problemi nella
gestione delle tabelle Ad esempio in una relazione 1 a n fra due entitagrave cliente e numero drsquoordine inserisco la chiave primaria della tabella cliente
nella tabella ordini divenendo chiave esterna Se facessi lrsquoinverso ovvero se
inserissi come chiave esterna nella relazione clienti la chiave della tabella
ordini dovrei inserire per ogni cliente tutti gli ordini creando molte tuples
121
Capitolo terzo Lo schema logico secondo il modello relazionale
Le associazioni tra entitagrave del tipo 1 a 1 o 1 a n riportate sui diagrammi ER
possono aver attributi propri Questi attributi possono essere riportati in
altrettante colonne di una delle tabelle in cui sono state tradotte le entitagrave
333 Associazioni n a m
Per tradurre le associazioni n a m (molti a molti) egrave necessario introdurre una
nuova tabella Questo procedimento sconsigliato per le associazioni 1 a 1 e 1
a n egrave la strada obbligata per questo tipo di associazione (poicheacute col metodo
precedente si avrebbe una grande proliferazione di attributi multipli) La
nuova tabella includeragrave gli attributi propri della associazione e le chiavi
esterne che permettono i collegamenti con le due tabelle traduzione delle
entitagrave che tramite essa sono associate La chiave primaria della nuova tabella
egrave costituita dalla coppia primaria di chiavi esterne Si spezza cosigrave
unassociazione m a n in due associazioni 1 a n
Articoli Torrone Spumante Gianduia Panettone Panforte Cioccolata Panepepato Champagn Pandoro
eFATTURA
01
02 03 04 05 06 07 08 09 10
6 15 5 5
5 5 120
10 30 10 50 20 20
20 20 15 11 6 12
5 6 10 15 5 5
Figura 31 Esempio di matrice Una relazione molti a molti si presta ad essere rappresentata sotto forma
di matrice rettangolare In questo caso si ha una matrice fra articoli e fatture La matrice letta in verticale indica
in quale fattura egrave stato venduto lrsquoarticolo Letta orizzontalmente indica quali articoli sono stati venduti in una
data fattura Il numero nella casella puograve indicare la quantitagrave venduta nella fattura (Mcmicrocomputer)
34 Regole di integritagrave
Il modello relazionale prevede due regole generali di integritagrave Queste sono
la integritagrave di entitagrave e la integritagrave referenziale (o di riferimento)
122
Capitolo terzo Lo schema logico secondo il modello relazionale
Integritagrave di entitagrave Se A egrave un attributo della relazione R e partecipa alla chiave
primaria non puograve avere valori Null Questo vuol dire che tutti gli attributi che
partecipano alla chiave primaria non possono essere definiti su di un dominio che
contempli valori Null
Integritagrave di riferimento Se nella relazione R la chiave primaria egrave rappresentata
dallrsquoattributo ( o insieme di attributi) A definito sul dominio D allora in tutte le
relazioni Sj in cui appare come attributo A le tuples devono contenere un valore di
A definito sul dominio D oppure un valore Null Lrsquoattributo A nelle relazioni Sj
prende il nome di chiave esterna4
Per una chiave esterna va verificato se
Puograve assumere valori Null
Cosa succede nella tabella collegata tramite chiave esterna se viene
cancellato o modificato un valore della chiave primaria della tabella
che ad essa si collega se questo valore egrave presente (nella tabella
collegata) in una sua occorrenza
La possibilitagrave che ha una chiave esterna di assumere valori Null dipende dai
tipi di Associazione Se ad esempio lrsquoassociazione egrave quella fra Impiegato e
Reparto la chiave esterna corrispondente al reparto puograve assumere il valore
Null (un impiegato non egrave assegnato ad un reparto) mentre nella associazione
Fattura - Movimenti la chiave esterna corrispondente alla fattura non puograve
mai assumere il valore Null (un movimento non puograve esistere senza fattura)
Gli effetti dellrsquoaggiornamento o della cancellazione di una chiave primaria
presente come chiave esterna in altre tabelle si possono ricondurre a tre casi Effetto cascata Una cancellazione o un aggiornamento della chiave primaria
provoca una cancellazione o un aggiornamento delle occorrenze presenti
nelle tabelle collegate tramite chiave esterna
Effetto restrizione La cancellazione o lrsquoaggiornamento non devono essere
permessi se sono presenti occorrenze per il valore considerato nelle tabelle
collegate da chiave esterna
4 Schiavetti Database Jackson 1989 123
Capitolo terzo Lo schema logico secondo il modello relazionale
Effetto annullamento La cancellazione o lrsquoaggiornamento di un valore della
chiave primaria provoca un annullamento (Null) dei corrispondenti valori
presenti nelle chiavi secondarie delle tabelle collegate da chiave esterna
Bencheacute il modello relazionale tramite normalizzazione crea sia lrsquointegritagrave di
entitagrave sia lrsquontegritagrave di riferimento spetteragrave al RDBMS (Relational DBMS)
mantenere lrsquointegritagrave durante il procedimento di inserimento dei dati
In questo i diversi Rdbms differiscono molto applicando le tecniche piugrave
disparate
35 Operazioni relazionali
Lrsquoalgebra relazionale basata sulla teoria degli insiemi offre una tecnica di
estrazione dei dati molto efficace in un database relazionale Per rendere
possibile la manipolazione dei dati utilizza degli operatori che trasformano
una o piugrave relazioni in una nuova relazione Possono essere individuate due
categorie di operazioni
1 operazioni insiemistiche cioegrave si tratta di operazioni dellrsquoalgebra degli
insiemi applicate alla entitagrave relazione Le piugrave diffuse in ambito relazionale
sono
unione
intersezione
prodotto (catesiano)
differenza
2 operazioni relazionali si tratta di operazioni che sono caratteristiche solo
dellrsquoalgebra relazionale e non dellrsquoalgebra degli insiemi Le operazioni
piugrave diffuse sono
selezione
proiezione
congiunzione (combinazione)
divisione
124
K21 K22 K23
Capitolo terzo Lo schema logico secondo il modello relazionale
351 Operazioni insiemistiche
3511 Unione
Lrsquounione della relazione R1(A1) con la relazione R2(A2) indicata con R=R1
R2 egrave lrsquoinsieme di tutti i tuples (righe) senza alcuna ripetizione5 R1 R2
A11 A12 A13 B11 B12 B13 C11 C12 C13
K11 K12 K13 K21 K22 K23
R
Figura 32 Relazione di unione
Occorre perograve che vengano soddisfatte queste condizioni
1 le due tabelle per essere unificabili devono essere compatibili6 cioegrave
devono avere egual grado ( stesso numero di colonne)
la k-esima colonna delle tabella R1 deve essere definita sugli stessi
domini e quindi essere compatibile con la corrispondente colonna
della tabella R2 ( es entrambe numeriche)
2 se esistono due righe uguali convenzionalmente ne viene indicata una
sola
A11 A12 A13 B11 B12 B13
C11 C12 C13 K11 K12 K13
5 Come si vede questa definizione assomiglia molto a quella della unione di due insiemi Per cui secondo quanto afferma Belski in Dati e basi di dati ldquodati due insiemi I1 e I2 diciamo lrsquounione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad almeno uno degli insiemi assegnatirdquo Valgono le proprietagrave commutativa I1 I2= I2 I1 associativa I1 (I2 I3)= (I1 I2) I3 distributiva I1 (I2 I3)= (I1 I2) ( I1 I2)
6 ldquoDue relazioni si dicono compatibili se sono dello stesso grado e definite sugli stessi dominirdquo rdquo Lrsquounione di due relazioni compatibili egrave costituita da tutte quelle tuples che appartengono ad almeno una delle due relazionirdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Questa proprietagrave vale sia per lrsquounione ma anche per lrsquointersezione e la differenza
125
R
Capitolo terzo Lo schema logico secondo il modello relazionale
3512 Intersezione
Lrsquointersezione della relazione R1(A1) e R2(A2) indicata con R=R1 R2 egrave
lrsquoinsieme di tutti i tuples o righe appartenenti sia ad R1(A1)che a R2(A2)7
R1 R2
A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14
A11 A12 A13 A14 C11 C12 C13 C14 E11 E12 E13 E14
A11 A12 A13 A14 C11 C12 C13 C14
Figura 33 Relazione di intersezione
3513 Prodotto cartesiano
Il prodotto cartesiano delle relazioni R1 e R2 rispettivamente di grado n e k
e di cardinalitagrave m1 e m2 egrave la relazione indicata con R=R1 R2 che ha grado
n+k e cardinalitagrave m1 m2 composta dalle tuple che si ottengono
concatenando ogni tuple di R1 con tutte le tuple di R28
Per concatenare due tuples r1 (a1 a2 an) e r2 (b1 b2 bk) si costruisce
una tupla che ha gli attributi di entrambe
r1 conc r2= (a1 a2 an b1 b2 bk)
7 ldquoDati due insiemi I1 e I2 diciamo intersezione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono sia ad I1 che ad I2rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli 8 ldquoDati due insiemi I1 e I2 diciamo prodotto cartesiano I1 I2 lrsquoinsieme costituito dalle coppie ordinate (i1i2) con i1 I1 e i2 I2 rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli Il prodotto cartesiano puograve essere considerato come la forma generica di concatenamento in cui ogni tuple di R1 viene concatenato con ogni tuple di R2 Il prodotto cartesiano egrave utile nelle interrogazioni in cui egrave necessaria ogni possibile combinazione tra i tuples delle due relazioni Altre forme di concatenamento dette concatenamento naturale sono rappresentate dal join in cui un tuple puograve essere escluso dalla relazione risultante se non soddisferagrave le condizioni poste Uno dei problemi dei concatenamenti naturali consiste nella perdita di informazioni dato che la relazione risultante non contiene tutti i tuples I concatenamenti che presentano questo tipo di rischio si dicono concatenamenti (naturali) interni mentre vengono chiamati concatenamenti (naturali) esterni quelli in cui la perdita di informazioni egrave impossibile Questi operano come i concatenamenti naturali interni ma la relazione risultante potragrave includere anche i tuples senza corrispondenze i valori mancanti saranno sostituiti con valori nulli- S Misbah Deen Database concetti teorici ed applicativi FrancoAngeli
126
R
Capitolo terzo Lo schema logico secondo il modello relazionale
Si costruisce cioegrave con il prodotto cartesiano una tabella con lo schema
R(A1A2An B1B2Bk) le cui tuples sono formate per primi n elementi
di una tupla di R1 e per i restanti k elementi da una tuple di R29 R1 R2
Riga R1-1 Riga R1-2 Riga R1-3 Riga R1-n
Riga R2-1 Riga R2-2 Riga R1-k
Riga R1-1 Riga R2-1 Riga R1-1 Riga R2-2 Riga R1-1 Riga R1-1 Riga R1-k Riga R1-2 Riga R2-1 Riga R1-2 Riga R2-2 Riga R1-2 Riga R1-2 Riga R1-k Riga R1-3 Riga R2-1 Riga R1-3 Riga R2-2 Riga R1-3 Riga R1-3 Riga R1-k Riga R1-n Riga R2-1 Riga R1-n Riga R2-2 Riga R1-n Riga R1-n Riga R1-k
Figura 34 Relazione prodotto cartesiano
3514 Differenza
La differenza tra relazione R1 e R2 indicata con R=R1 R2 (R=R1- R2) egrave
lrsquoinsieme di tutti i tuples o righe appartenenti ad R1 ma non a R210 R1 R2 R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A12 A13 A14
C11 C12 C13 C14
E11 E12 E13 E14
B11 B12 B13 B14
D11 D12 D13 D14
Figura 35 Relazione differenza
9 ldquoIl prodotto cartesiano di due relazioni egrave la relazione che si ottiene concatenando ciascuna tuple della R1 con tutte le tuples della R2rdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Il grado del prodotto cartesiano egrave la somma dei gradi di R1 ed R2 La cardinalitagrave del prodotto cartesiano egrave il prodotto della cardinalitagrave di R1 ed R2 10 ldquoDati due insiemi I1 e I2 diciamo differenza I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad I1 che non appartengono a I2rdquo V Belski Dati e basi di dati Il modello relazionale FrancoAngeli
127
Capitolo terzo Lo schema logico secondo il modello relazionale
352 Operazioni dellrsquoalgebra relazionale
3521 Selezione
Data relazione R1 ed un predicato P semplice o composto che opera sugli attributi
di R1 la selezione di R1 su P egrave una relazione R le cui tuples sono tutte le tuples di
R1 che soddisfano P11
R1 R
A11 A12 A13 A14
C11 C12 C13 C14
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
Figura 36 Selezione di R1 su P
Un predicato egrave una condizione imposta sui valori di uno o piugrave attributi e puograve
essere semplice oppure composto Ersquo semplice quando esprime una relazione
del tipo
[attributo] [operatore di confronto] [attributo]
Gli operatori di confronto sono rappresentati da = (diverso) lt gt lt= gt=
Ersquo composto se egrave costituito da due o piugrave predicati collegati fra loro tramite
operatori booleani AND OR NOT Lrsquooperazione di selezione sceglie i tuples
di una relazione in cui il predicato risulta essere vero mentre le colonne
restano le stesse Ci si puograve chiedere quando un predicato composto da piugrave
predicati egrave vero e quindi quando verranno prelevate delle tuples Per questo
possono essere riportate le tavole di veritagrave di Boole
11 Lrsquooperatore di selezione egrave un filtro che sceglie alcune righe quelle che soddisfano una certa condizione Select R where p Lrsquooperatore di selezione crea una nuova relazione che egrave un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale Le righe scelte sono quelle risulta vera la proposizione p - Nazzini Sanges Vaccaro Introduzione ai database relazionali
128
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
seguito hanno approfondito lrsquoargomento cercando di formalizzare i diversi
problemi che lrsquoutilizzo del modello dei dati ha suscitato volendo
rappresentare in un sistema informatico un frammento del mondo reale
Questo modello si egrave sempre piugrave affermato nel mondo dei database
divenendo ormai il modello standard adottato per la descrizione dello
schema logico dei database anche se nessun gestore di database puograve dirsi
attualmente completamente relazionale
32 Il modello relazionale dei dati
Innanzi tutto vengono date alcune definizioni
Coppia ordinata Dati due insiemi D1 e D2 due elementi
d1 D1 d2 D2
considerati in un dato ordine costituiscono una coppia ordinata
(d1 d2)
Tuple Una tuple egrave una generalizzazione del concetto di coppia ordinata
Dati n insiemi
D1 D2Dn
una tuple egrave una sequenza di n elementi ordinati
(d1d2dn)
con
di Di i = 12n
Relazione un insieme di tuples costituisce una relazione definendola in
questo modo (Nazzini) Dati n insiemi (o DOMINI) non necessariamente distinti
D1 D2Dn
una relazione R sui domini D1D2Dn egrave un insieme di tuples
d1d2dn
1 Schiavetti Database Jackson 1985 118
Capitolo terzo Lo schema logico secondo il modello relazionale
con
di Di i = 12n
A1 A2 An d1 d2 dn drsquo1 drsquo2 drsquon
d(m)1 d(m)2 d(m)n
Alla base del modello relazionale si trova la relazione detta anche tabella o
schema poicheacute questa egrave costituita su di una struttura di righe dette tuple e
colonne dette domini della tabella
Le testate della tabella Ai si dicono attributi mentre il numero n dei domini
viene detto grado o arietagrave della tabella Le tabelle che hanno un solo attributo
si dicono unarie quelle con due attributi binarie con tre ternarie e via
dicendo Il numero delle tuple si dice cardinalitagrave (m+1)
Le proprietagrave delle relazioni possono essere cosigrave riassunte2
I valori di ogni colonna sono fra loro omogenei I valori di un attributo
appartengono allo stesso dominio (interi stringhe di caratteri ecc)
Quindi si puograve affermare che gli attributi rappresentano lrsquouso dei domini
in una determinata tabella
lrsquoordinamento delle colonne egrave irrilevante Poicheacute sono sempre identificate per
nome e non per posizione
lrsquoordinamento delle righe egrave irrilevante Poicheacute queste sono identificate per
contenuto e non per posizione
Lo schema di una tabella R(A) egrave unespressione che contiene il nome della
tabella seguito dallrsquoelenco di tutti gli attributi della tabella stessa Puograve
essere sia lrsquointestazione della tabella sia questa espressione Prodotto
(codice descrizione giacenza)
2 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 119
Capitolo terzo Lo schema logico secondo il modello relazionale
321 Chiavi ed attributi di una relazione
Il concetto di chiave viene elaborato nella teoria relazionale poicheacute le tabelle
devono essere costruite in modo tale che ogni tupla deve essere distinta per
mezzo di uno o piugrave attributi Quindi scopo delle chiavi egrave identificare
univocamente queste tuple Si distingue fra superchiave chiave candidate e
chiave primaria La superchiave egrave lrsquoinsieme degli attributi che identificano
univocamente una tuple La chiave candidata egrave in numero minimo di
attributi necessari per identificare univocamente una tuple Puograve essere definita come una superchiave dalla quale possono essere eliminati attributi senza
distruggere la proprietagrave della identificazione univoca della tuple Per cui una chiave
candidata egrave una superchiave con la proprietagrave di non ridondanza3
Fra le chiavi candidate che possono essere piugrave di una se ne sceglieragrave una
che ha il minor numero di attributi e che a paritagrave di attributi ha il minor
numero di caratteri Questa egrave la chiave primaria e saragrave la chiave scelta fra le
chiavi candidate a rappresentare univocamente una tuple
Rispetto alla chiave della tabella si possono distinguere gli attributi primi
cioegrave quelli che fanno parte di almeno una chiave candidata e i restanti
attributi non primi Infine quegli attributi che possono costituire la chiave di
altre tabelle sono detti chiave esterna e permettono di stabilire associazioni
fra le tabelle che rappresentano diverse entitagrave
33 Traduzione dei diagrammi E|R di uno schema concettuale in un
modello relazionale
Si puograve tradurre abbastanza agevolmente gli schemi ER secondo le strutture
delle basi di dati relazionali seguendo perograve alcune regole
331 Entitagrave e gerarchie IS-A
3 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali 120
Capitolo terzo Lo schema logico secondo il modello relazionale
Le entitagrave degli schemi E|R vengono tradotte in altrettante tabelle Gli
attributi delle entitagrave vengono riportati nelle colonne mentre le occorrenze
delle entitagrave saranno tradotte in tuples
Per tradurre invece le strutture IS-A nel modello relazionale si possono
adottare diverse soluzioni
Una puograve essere quella di inserire tutto in una tabella che contenga gli
attributi comuni e gli attributi caratteristici di ciascuna classe Per questo in
ogni tupla saranno vuote alcune colonne relative ad alcuni attributi a
seconda che come nellrsquoesempio del capitolo 2 il dipendente appartenga alla
categoria impiegati o dipendenti In questo caso ci saragrave uno spreco di spazio
Unrsquoaltra soluzione che puograve porre rimedio a questo inconveniente egrave quello di
creare una tabella che contenga tutti gli attributi comuni e inserire gli
attributi specifici dei sottoinsiemi definiti dalla IS-A in altre tabelle legate a
questa da associazioni 1 ad 1 Quindi nellrsquoesempio della gerarchia IS-A
individuata dal diagramma dipendenti si puograve inserire in una tabella gli
attributi comuni e realizzare due tabelle operai ed impiegati in cui inserire
gli attributi specifici delle due categorie
332 Associazioni 1 a 1 e 1 a n
Per tradurre il legame tra due entitagrave che viene realizzato da unassociazione 1
a 1 si deve inserire tra gli attributi di almeno una delle entitagrave la chiave
esterna cioegrave quellrsquoattributo o insieme di attributi che identificano lrsquoentitagrave ad
essa collegata Le associazioni 1 a n sono tradotte in modo analogo Occorre
perograve prestare attenzione a non inserire perograve attributi ripetuti siano chiavi
esterne o attributi normali percheacute possono essere causa di problemi nella
gestione delle tabelle Ad esempio in una relazione 1 a n fra due entitagrave cliente e numero drsquoordine inserisco la chiave primaria della tabella cliente
nella tabella ordini divenendo chiave esterna Se facessi lrsquoinverso ovvero se
inserissi come chiave esterna nella relazione clienti la chiave della tabella
ordini dovrei inserire per ogni cliente tutti gli ordini creando molte tuples
121
Capitolo terzo Lo schema logico secondo il modello relazionale
Le associazioni tra entitagrave del tipo 1 a 1 o 1 a n riportate sui diagrammi ER
possono aver attributi propri Questi attributi possono essere riportati in
altrettante colonne di una delle tabelle in cui sono state tradotte le entitagrave
333 Associazioni n a m
Per tradurre le associazioni n a m (molti a molti) egrave necessario introdurre una
nuova tabella Questo procedimento sconsigliato per le associazioni 1 a 1 e 1
a n egrave la strada obbligata per questo tipo di associazione (poicheacute col metodo
precedente si avrebbe una grande proliferazione di attributi multipli) La
nuova tabella includeragrave gli attributi propri della associazione e le chiavi
esterne che permettono i collegamenti con le due tabelle traduzione delle
entitagrave che tramite essa sono associate La chiave primaria della nuova tabella
egrave costituita dalla coppia primaria di chiavi esterne Si spezza cosigrave
unassociazione m a n in due associazioni 1 a n
Articoli Torrone Spumante Gianduia Panettone Panforte Cioccolata Panepepato Champagn Pandoro
eFATTURA
01
02 03 04 05 06 07 08 09 10
6 15 5 5
5 5 120
10 30 10 50 20 20
20 20 15 11 6 12
5 6 10 15 5 5
Figura 31 Esempio di matrice Una relazione molti a molti si presta ad essere rappresentata sotto forma
di matrice rettangolare In questo caso si ha una matrice fra articoli e fatture La matrice letta in verticale indica
in quale fattura egrave stato venduto lrsquoarticolo Letta orizzontalmente indica quali articoli sono stati venduti in una
data fattura Il numero nella casella puograve indicare la quantitagrave venduta nella fattura (Mcmicrocomputer)
34 Regole di integritagrave
Il modello relazionale prevede due regole generali di integritagrave Queste sono
la integritagrave di entitagrave e la integritagrave referenziale (o di riferimento)
122
Capitolo terzo Lo schema logico secondo il modello relazionale
Integritagrave di entitagrave Se A egrave un attributo della relazione R e partecipa alla chiave
primaria non puograve avere valori Null Questo vuol dire che tutti gli attributi che
partecipano alla chiave primaria non possono essere definiti su di un dominio che
contempli valori Null
Integritagrave di riferimento Se nella relazione R la chiave primaria egrave rappresentata
dallrsquoattributo ( o insieme di attributi) A definito sul dominio D allora in tutte le
relazioni Sj in cui appare come attributo A le tuples devono contenere un valore di
A definito sul dominio D oppure un valore Null Lrsquoattributo A nelle relazioni Sj
prende il nome di chiave esterna4
Per una chiave esterna va verificato se
Puograve assumere valori Null
Cosa succede nella tabella collegata tramite chiave esterna se viene
cancellato o modificato un valore della chiave primaria della tabella
che ad essa si collega se questo valore egrave presente (nella tabella
collegata) in una sua occorrenza
La possibilitagrave che ha una chiave esterna di assumere valori Null dipende dai
tipi di Associazione Se ad esempio lrsquoassociazione egrave quella fra Impiegato e
Reparto la chiave esterna corrispondente al reparto puograve assumere il valore
Null (un impiegato non egrave assegnato ad un reparto) mentre nella associazione
Fattura - Movimenti la chiave esterna corrispondente alla fattura non puograve
mai assumere il valore Null (un movimento non puograve esistere senza fattura)
Gli effetti dellrsquoaggiornamento o della cancellazione di una chiave primaria
presente come chiave esterna in altre tabelle si possono ricondurre a tre casi Effetto cascata Una cancellazione o un aggiornamento della chiave primaria
provoca una cancellazione o un aggiornamento delle occorrenze presenti
nelle tabelle collegate tramite chiave esterna
Effetto restrizione La cancellazione o lrsquoaggiornamento non devono essere
permessi se sono presenti occorrenze per il valore considerato nelle tabelle
collegate da chiave esterna
4 Schiavetti Database Jackson 1989 123
Capitolo terzo Lo schema logico secondo il modello relazionale
Effetto annullamento La cancellazione o lrsquoaggiornamento di un valore della
chiave primaria provoca un annullamento (Null) dei corrispondenti valori
presenti nelle chiavi secondarie delle tabelle collegate da chiave esterna
Bencheacute il modello relazionale tramite normalizzazione crea sia lrsquointegritagrave di
entitagrave sia lrsquontegritagrave di riferimento spetteragrave al RDBMS (Relational DBMS)
mantenere lrsquointegritagrave durante il procedimento di inserimento dei dati
In questo i diversi Rdbms differiscono molto applicando le tecniche piugrave
disparate
35 Operazioni relazionali
Lrsquoalgebra relazionale basata sulla teoria degli insiemi offre una tecnica di
estrazione dei dati molto efficace in un database relazionale Per rendere
possibile la manipolazione dei dati utilizza degli operatori che trasformano
una o piugrave relazioni in una nuova relazione Possono essere individuate due
categorie di operazioni
1 operazioni insiemistiche cioegrave si tratta di operazioni dellrsquoalgebra degli
insiemi applicate alla entitagrave relazione Le piugrave diffuse in ambito relazionale
sono
unione
intersezione
prodotto (catesiano)
differenza
2 operazioni relazionali si tratta di operazioni che sono caratteristiche solo
dellrsquoalgebra relazionale e non dellrsquoalgebra degli insiemi Le operazioni
piugrave diffuse sono
selezione
proiezione
congiunzione (combinazione)
divisione
124
K21 K22 K23
Capitolo terzo Lo schema logico secondo il modello relazionale
351 Operazioni insiemistiche
3511 Unione
Lrsquounione della relazione R1(A1) con la relazione R2(A2) indicata con R=R1
R2 egrave lrsquoinsieme di tutti i tuples (righe) senza alcuna ripetizione5 R1 R2
A11 A12 A13 B11 B12 B13 C11 C12 C13
K11 K12 K13 K21 K22 K23
R
Figura 32 Relazione di unione
Occorre perograve che vengano soddisfatte queste condizioni
1 le due tabelle per essere unificabili devono essere compatibili6 cioegrave
devono avere egual grado ( stesso numero di colonne)
la k-esima colonna delle tabella R1 deve essere definita sugli stessi
domini e quindi essere compatibile con la corrispondente colonna
della tabella R2 ( es entrambe numeriche)
2 se esistono due righe uguali convenzionalmente ne viene indicata una
sola
A11 A12 A13 B11 B12 B13
C11 C12 C13 K11 K12 K13
5 Come si vede questa definizione assomiglia molto a quella della unione di due insiemi Per cui secondo quanto afferma Belski in Dati e basi di dati ldquodati due insiemi I1 e I2 diciamo lrsquounione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad almeno uno degli insiemi assegnatirdquo Valgono le proprietagrave commutativa I1 I2= I2 I1 associativa I1 (I2 I3)= (I1 I2) I3 distributiva I1 (I2 I3)= (I1 I2) ( I1 I2)
6 ldquoDue relazioni si dicono compatibili se sono dello stesso grado e definite sugli stessi dominirdquo rdquo Lrsquounione di due relazioni compatibili egrave costituita da tutte quelle tuples che appartengono ad almeno una delle due relazionirdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Questa proprietagrave vale sia per lrsquounione ma anche per lrsquointersezione e la differenza
125
R
Capitolo terzo Lo schema logico secondo il modello relazionale
3512 Intersezione
Lrsquointersezione della relazione R1(A1) e R2(A2) indicata con R=R1 R2 egrave
lrsquoinsieme di tutti i tuples o righe appartenenti sia ad R1(A1)che a R2(A2)7
R1 R2
A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14
A11 A12 A13 A14 C11 C12 C13 C14 E11 E12 E13 E14
A11 A12 A13 A14 C11 C12 C13 C14
Figura 33 Relazione di intersezione
3513 Prodotto cartesiano
Il prodotto cartesiano delle relazioni R1 e R2 rispettivamente di grado n e k
e di cardinalitagrave m1 e m2 egrave la relazione indicata con R=R1 R2 che ha grado
n+k e cardinalitagrave m1 m2 composta dalle tuple che si ottengono
concatenando ogni tuple di R1 con tutte le tuple di R28
Per concatenare due tuples r1 (a1 a2 an) e r2 (b1 b2 bk) si costruisce
una tupla che ha gli attributi di entrambe
r1 conc r2= (a1 a2 an b1 b2 bk)
7 ldquoDati due insiemi I1 e I2 diciamo intersezione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono sia ad I1 che ad I2rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli 8 ldquoDati due insiemi I1 e I2 diciamo prodotto cartesiano I1 I2 lrsquoinsieme costituito dalle coppie ordinate (i1i2) con i1 I1 e i2 I2 rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli Il prodotto cartesiano puograve essere considerato come la forma generica di concatenamento in cui ogni tuple di R1 viene concatenato con ogni tuple di R2 Il prodotto cartesiano egrave utile nelle interrogazioni in cui egrave necessaria ogni possibile combinazione tra i tuples delle due relazioni Altre forme di concatenamento dette concatenamento naturale sono rappresentate dal join in cui un tuple puograve essere escluso dalla relazione risultante se non soddisferagrave le condizioni poste Uno dei problemi dei concatenamenti naturali consiste nella perdita di informazioni dato che la relazione risultante non contiene tutti i tuples I concatenamenti che presentano questo tipo di rischio si dicono concatenamenti (naturali) interni mentre vengono chiamati concatenamenti (naturali) esterni quelli in cui la perdita di informazioni egrave impossibile Questi operano come i concatenamenti naturali interni ma la relazione risultante potragrave includere anche i tuples senza corrispondenze i valori mancanti saranno sostituiti con valori nulli- S Misbah Deen Database concetti teorici ed applicativi FrancoAngeli
126
R
Capitolo terzo Lo schema logico secondo il modello relazionale
Si costruisce cioegrave con il prodotto cartesiano una tabella con lo schema
R(A1A2An B1B2Bk) le cui tuples sono formate per primi n elementi
di una tupla di R1 e per i restanti k elementi da una tuple di R29 R1 R2
Riga R1-1 Riga R1-2 Riga R1-3 Riga R1-n
Riga R2-1 Riga R2-2 Riga R1-k
Riga R1-1 Riga R2-1 Riga R1-1 Riga R2-2 Riga R1-1 Riga R1-1 Riga R1-k Riga R1-2 Riga R2-1 Riga R1-2 Riga R2-2 Riga R1-2 Riga R1-2 Riga R1-k Riga R1-3 Riga R2-1 Riga R1-3 Riga R2-2 Riga R1-3 Riga R1-3 Riga R1-k Riga R1-n Riga R2-1 Riga R1-n Riga R2-2 Riga R1-n Riga R1-n Riga R1-k
Figura 34 Relazione prodotto cartesiano
3514 Differenza
La differenza tra relazione R1 e R2 indicata con R=R1 R2 (R=R1- R2) egrave
lrsquoinsieme di tutti i tuples o righe appartenenti ad R1 ma non a R210 R1 R2 R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A12 A13 A14
C11 C12 C13 C14
E11 E12 E13 E14
B11 B12 B13 B14
D11 D12 D13 D14
Figura 35 Relazione differenza
9 ldquoIl prodotto cartesiano di due relazioni egrave la relazione che si ottiene concatenando ciascuna tuple della R1 con tutte le tuples della R2rdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Il grado del prodotto cartesiano egrave la somma dei gradi di R1 ed R2 La cardinalitagrave del prodotto cartesiano egrave il prodotto della cardinalitagrave di R1 ed R2 10 ldquoDati due insiemi I1 e I2 diciamo differenza I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad I1 che non appartengono a I2rdquo V Belski Dati e basi di dati Il modello relazionale FrancoAngeli
127
Capitolo terzo Lo schema logico secondo il modello relazionale
352 Operazioni dellrsquoalgebra relazionale
3521 Selezione
Data relazione R1 ed un predicato P semplice o composto che opera sugli attributi
di R1 la selezione di R1 su P egrave una relazione R le cui tuples sono tutte le tuples di
R1 che soddisfano P11
R1 R
A11 A12 A13 A14
C11 C12 C13 C14
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
Figura 36 Selezione di R1 su P
Un predicato egrave una condizione imposta sui valori di uno o piugrave attributi e puograve
essere semplice oppure composto Ersquo semplice quando esprime una relazione
del tipo
[attributo] [operatore di confronto] [attributo]
Gli operatori di confronto sono rappresentati da = (diverso) lt gt lt= gt=
Ersquo composto se egrave costituito da due o piugrave predicati collegati fra loro tramite
operatori booleani AND OR NOT Lrsquooperazione di selezione sceglie i tuples
di una relazione in cui il predicato risulta essere vero mentre le colonne
restano le stesse Ci si puograve chiedere quando un predicato composto da piugrave
predicati egrave vero e quindi quando verranno prelevate delle tuples Per questo
possono essere riportate le tavole di veritagrave di Boole
11 Lrsquooperatore di selezione egrave un filtro che sceglie alcune righe quelle che soddisfano una certa condizione Select R where p Lrsquooperatore di selezione crea una nuova relazione che egrave un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale Le righe scelte sono quelle risulta vera la proposizione p - Nazzini Sanges Vaccaro Introduzione ai database relazionali
128
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
con
di Di i = 12n
A1 A2 An d1 d2 dn drsquo1 drsquo2 drsquon
d(m)1 d(m)2 d(m)n
Alla base del modello relazionale si trova la relazione detta anche tabella o
schema poicheacute questa egrave costituita su di una struttura di righe dette tuple e
colonne dette domini della tabella
Le testate della tabella Ai si dicono attributi mentre il numero n dei domini
viene detto grado o arietagrave della tabella Le tabelle che hanno un solo attributo
si dicono unarie quelle con due attributi binarie con tre ternarie e via
dicendo Il numero delle tuple si dice cardinalitagrave (m+1)
Le proprietagrave delle relazioni possono essere cosigrave riassunte2
I valori di ogni colonna sono fra loro omogenei I valori di un attributo
appartengono allo stesso dominio (interi stringhe di caratteri ecc)
Quindi si puograve affermare che gli attributi rappresentano lrsquouso dei domini
in una determinata tabella
lrsquoordinamento delle colonne egrave irrilevante Poicheacute sono sempre identificate per
nome e non per posizione
lrsquoordinamento delle righe egrave irrilevante Poicheacute queste sono identificate per
contenuto e non per posizione
Lo schema di una tabella R(A) egrave unespressione che contiene il nome della
tabella seguito dallrsquoelenco di tutti gli attributi della tabella stessa Puograve
essere sia lrsquointestazione della tabella sia questa espressione Prodotto
(codice descrizione giacenza)
2 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 119
Capitolo terzo Lo schema logico secondo il modello relazionale
321 Chiavi ed attributi di una relazione
Il concetto di chiave viene elaborato nella teoria relazionale poicheacute le tabelle
devono essere costruite in modo tale che ogni tupla deve essere distinta per
mezzo di uno o piugrave attributi Quindi scopo delle chiavi egrave identificare
univocamente queste tuple Si distingue fra superchiave chiave candidate e
chiave primaria La superchiave egrave lrsquoinsieme degli attributi che identificano
univocamente una tuple La chiave candidata egrave in numero minimo di
attributi necessari per identificare univocamente una tuple Puograve essere definita come una superchiave dalla quale possono essere eliminati attributi senza
distruggere la proprietagrave della identificazione univoca della tuple Per cui una chiave
candidata egrave una superchiave con la proprietagrave di non ridondanza3
Fra le chiavi candidate che possono essere piugrave di una se ne sceglieragrave una
che ha il minor numero di attributi e che a paritagrave di attributi ha il minor
numero di caratteri Questa egrave la chiave primaria e saragrave la chiave scelta fra le
chiavi candidate a rappresentare univocamente una tuple
Rispetto alla chiave della tabella si possono distinguere gli attributi primi
cioegrave quelli che fanno parte di almeno una chiave candidata e i restanti
attributi non primi Infine quegli attributi che possono costituire la chiave di
altre tabelle sono detti chiave esterna e permettono di stabilire associazioni
fra le tabelle che rappresentano diverse entitagrave
33 Traduzione dei diagrammi E|R di uno schema concettuale in un
modello relazionale
Si puograve tradurre abbastanza agevolmente gli schemi ER secondo le strutture
delle basi di dati relazionali seguendo perograve alcune regole
331 Entitagrave e gerarchie IS-A
3 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali 120
Capitolo terzo Lo schema logico secondo il modello relazionale
Le entitagrave degli schemi E|R vengono tradotte in altrettante tabelle Gli
attributi delle entitagrave vengono riportati nelle colonne mentre le occorrenze
delle entitagrave saranno tradotte in tuples
Per tradurre invece le strutture IS-A nel modello relazionale si possono
adottare diverse soluzioni
Una puograve essere quella di inserire tutto in una tabella che contenga gli
attributi comuni e gli attributi caratteristici di ciascuna classe Per questo in
ogni tupla saranno vuote alcune colonne relative ad alcuni attributi a
seconda che come nellrsquoesempio del capitolo 2 il dipendente appartenga alla
categoria impiegati o dipendenti In questo caso ci saragrave uno spreco di spazio
Unrsquoaltra soluzione che puograve porre rimedio a questo inconveniente egrave quello di
creare una tabella che contenga tutti gli attributi comuni e inserire gli
attributi specifici dei sottoinsiemi definiti dalla IS-A in altre tabelle legate a
questa da associazioni 1 ad 1 Quindi nellrsquoesempio della gerarchia IS-A
individuata dal diagramma dipendenti si puograve inserire in una tabella gli
attributi comuni e realizzare due tabelle operai ed impiegati in cui inserire
gli attributi specifici delle due categorie
332 Associazioni 1 a 1 e 1 a n
Per tradurre il legame tra due entitagrave che viene realizzato da unassociazione 1
a 1 si deve inserire tra gli attributi di almeno una delle entitagrave la chiave
esterna cioegrave quellrsquoattributo o insieme di attributi che identificano lrsquoentitagrave ad
essa collegata Le associazioni 1 a n sono tradotte in modo analogo Occorre
perograve prestare attenzione a non inserire perograve attributi ripetuti siano chiavi
esterne o attributi normali percheacute possono essere causa di problemi nella
gestione delle tabelle Ad esempio in una relazione 1 a n fra due entitagrave cliente e numero drsquoordine inserisco la chiave primaria della tabella cliente
nella tabella ordini divenendo chiave esterna Se facessi lrsquoinverso ovvero se
inserissi come chiave esterna nella relazione clienti la chiave della tabella
ordini dovrei inserire per ogni cliente tutti gli ordini creando molte tuples
121
Capitolo terzo Lo schema logico secondo il modello relazionale
Le associazioni tra entitagrave del tipo 1 a 1 o 1 a n riportate sui diagrammi ER
possono aver attributi propri Questi attributi possono essere riportati in
altrettante colonne di una delle tabelle in cui sono state tradotte le entitagrave
333 Associazioni n a m
Per tradurre le associazioni n a m (molti a molti) egrave necessario introdurre una
nuova tabella Questo procedimento sconsigliato per le associazioni 1 a 1 e 1
a n egrave la strada obbligata per questo tipo di associazione (poicheacute col metodo
precedente si avrebbe una grande proliferazione di attributi multipli) La
nuova tabella includeragrave gli attributi propri della associazione e le chiavi
esterne che permettono i collegamenti con le due tabelle traduzione delle
entitagrave che tramite essa sono associate La chiave primaria della nuova tabella
egrave costituita dalla coppia primaria di chiavi esterne Si spezza cosigrave
unassociazione m a n in due associazioni 1 a n
Articoli Torrone Spumante Gianduia Panettone Panforte Cioccolata Panepepato Champagn Pandoro
eFATTURA
01
02 03 04 05 06 07 08 09 10
6 15 5 5
5 5 120
10 30 10 50 20 20
20 20 15 11 6 12
5 6 10 15 5 5
Figura 31 Esempio di matrice Una relazione molti a molti si presta ad essere rappresentata sotto forma
di matrice rettangolare In questo caso si ha una matrice fra articoli e fatture La matrice letta in verticale indica
in quale fattura egrave stato venduto lrsquoarticolo Letta orizzontalmente indica quali articoli sono stati venduti in una
data fattura Il numero nella casella puograve indicare la quantitagrave venduta nella fattura (Mcmicrocomputer)
34 Regole di integritagrave
Il modello relazionale prevede due regole generali di integritagrave Queste sono
la integritagrave di entitagrave e la integritagrave referenziale (o di riferimento)
122
Capitolo terzo Lo schema logico secondo il modello relazionale
Integritagrave di entitagrave Se A egrave un attributo della relazione R e partecipa alla chiave
primaria non puograve avere valori Null Questo vuol dire che tutti gli attributi che
partecipano alla chiave primaria non possono essere definiti su di un dominio che
contempli valori Null
Integritagrave di riferimento Se nella relazione R la chiave primaria egrave rappresentata
dallrsquoattributo ( o insieme di attributi) A definito sul dominio D allora in tutte le
relazioni Sj in cui appare come attributo A le tuples devono contenere un valore di
A definito sul dominio D oppure un valore Null Lrsquoattributo A nelle relazioni Sj
prende il nome di chiave esterna4
Per una chiave esterna va verificato se
Puograve assumere valori Null
Cosa succede nella tabella collegata tramite chiave esterna se viene
cancellato o modificato un valore della chiave primaria della tabella
che ad essa si collega se questo valore egrave presente (nella tabella
collegata) in una sua occorrenza
La possibilitagrave che ha una chiave esterna di assumere valori Null dipende dai
tipi di Associazione Se ad esempio lrsquoassociazione egrave quella fra Impiegato e
Reparto la chiave esterna corrispondente al reparto puograve assumere il valore
Null (un impiegato non egrave assegnato ad un reparto) mentre nella associazione
Fattura - Movimenti la chiave esterna corrispondente alla fattura non puograve
mai assumere il valore Null (un movimento non puograve esistere senza fattura)
Gli effetti dellrsquoaggiornamento o della cancellazione di una chiave primaria
presente come chiave esterna in altre tabelle si possono ricondurre a tre casi Effetto cascata Una cancellazione o un aggiornamento della chiave primaria
provoca una cancellazione o un aggiornamento delle occorrenze presenti
nelle tabelle collegate tramite chiave esterna
Effetto restrizione La cancellazione o lrsquoaggiornamento non devono essere
permessi se sono presenti occorrenze per il valore considerato nelle tabelle
collegate da chiave esterna
4 Schiavetti Database Jackson 1989 123
Capitolo terzo Lo schema logico secondo il modello relazionale
Effetto annullamento La cancellazione o lrsquoaggiornamento di un valore della
chiave primaria provoca un annullamento (Null) dei corrispondenti valori
presenti nelle chiavi secondarie delle tabelle collegate da chiave esterna
Bencheacute il modello relazionale tramite normalizzazione crea sia lrsquointegritagrave di
entitagrave sia lrsquontegritagrave di riferimento spetteragrave al RDBMS (Relational DBMS)
mantenere lrsquointegritagrave durante il procedimento di inserimento dei dati
In questo i diversi Rdbms differiscono molto applicando le tecniche piugrave
disparate
35 Operazioni relazionali
Lrsquoalgebra relazionale basata sulla teoria degli insiemi offre una tecnica di
estrazione dei dati molto efficace in un database relazionale Per rendere
possibile la manipolazione dei dati utilizza degli operatori che trasformano
una o piugrave relazioni in una nuova relazione Possono essere individuate due
categorie di operazioni
1 operazioni insiemistiche cioegrave si tratta di operazioni dellrsquoalgebra degli
insiemi applicate alla entitagrave relazione Le piugrave diffuse in ambito relazionale
sono
unione
intersezione
prodotto (catesiano)
differenza
2 operazioni relazionali si tratta di operazioni che sono caratteristiche solo
dellrsquoalgebra relazionale e non dellrsquoalgebra degli insiemi Le operazioni
piugrave diffuse sono
selezione
proiezione
congiunzione (combinazione)
divisione
124
K21 K22 K23
Capitolo terzo Lo schema logico secondo il modello relazionale
351 Operazioni insiemistiche
3511 Unione
Lrsquounione della relazione R1(A1) con la relazione R2(A2) indicata con R=R1
R2 egrave lrsquoinsieme di tutti i tuples (righe) senza alcuna ripetizione5 R1 R2
A11 A12 A13 B11 B12 B13 C11 C12 C13
K11 K12 K13 K21 K22 K23
R
Figura 32 Relazione di unione
Occorre perograve che vengano soddisfatte queste condizioni
1 le due tabelle per essere unificabili devono essere compatibili6 cioegrave
devono avere egual grado ( stesso numero di colonne)
la k-esima colonna delle tabella R1 deve essere definita sugli stessi
domini e quindi essere compatibile con la corrispondente colonna
della tabella R2 ( es entrambe numeriche)
2 se esistono due righe uguali convenzionalmente ne viene indicata una
sola
A11 A12 A13 B11 B12 B13
C11 C12 C13 K11 K12 K13
5 Come si vede questa definizione assomiglia molto a quella della unione di due insiemi Per cui secondo quanto afferma Belski in Dati e basi di dati ldquodati due insiemi I1 e I2 diciamo lrsquounione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad almeno uno degli insiemi assegnatirdquo Valgono le proprietagrave commutativa I1 I2= I2 I1 associativa I1 (I2 I3)= (I1 I2) I3 distributiva I1 (I2 I3)= (I1 I2) ( I1 I2)
6 ldquoDue relazioni si dicono compatibili se sono dello stesso grado e definite sugli stessi dominirdquo rdquo Lrsquounione di due relazioni compatibili egrave costituita da tutte quelle tuples che appartengono ad almeno una delle due relazionirdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Questa proprietagrave vale sia per lrsquounione ma anche per lrsquointersezione e la differenza
125
R
Capitolo terzo Lo schema logico secondo il modello relazionale
3512 Intersezione
Lrsquointersezione della relazione R1(A1) e R2(A2) indicata con R=R1 R2 egrave
lrsquoinsieme di tutti i tuples o righe appartenenti sia ad R1(A1)che a R2(A2)7
R1 R2
A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14
A11 A12 A13 A14 C11 C12 C13 C14 E11 E12 E13 E14
A11 A12 A13 A14 C11 C12 C13 C14
Figura 33 Relazione di intersezione
3513 Prodotto cartesiano
Il prodotto cartesiano delle relazioni R1 e R2 rispettivamente di grado n e k
e di cardinalitagrave m1 e m2 egrave la relazione indicata con R=R1 R2 che ha grado
n+k e cardinalitagrave m1 m2 composta dalle tuple che si ottengono
concatenando ogni tuple di R1 con tutte le tuple di R28
Per concatenare due tuples r1 (a1 a2 an) e r2 (b1 b2 bk) si costruisce
una tupla che ha gli attributi di entrambe
r1 conc r2= (a1 a2 an b1 b2 bk)
7 ldquoDati due insiemi I1 e I2 diciamo intersezione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono sia ad I1 che ad I2rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli 8 ldquoDati due insiemi I1 e I2 diciamo prodotto cartesiano I1 I2 lrsquoinsieme costituito dalle coppie ordinate (i1i2) con i1 I1 e i2 I2 rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli Il prodotto cartesiano puograve essere considerato come la forma generica di concatenamento in cui ogni tuple di R1 viene concatenato con ogni tuple di R2 Il prodotto cartesiano egrave utile nelle interrogazioni in cui egrave necessaria ogni possibile combinazione tra i tuples delle due relazioni Altre forme di concatenamento dette concatenamento naturale sono rappresentate dal join in cui un tuple puograve essere escluso dalla relazione risultante se non soddisferagrave le condizioni poste Uno dei problemi dei concatenamenti naturali consiste nella perdita di informazioni dato che la relazione risultante non contiene tutti i tuples I concatenamenti che presentano questo tipo di rischio si dicono concatenamenti (naturali) interni mentre vengono chiamati concatenamenti (naturali) esterni quelli in cui la perdita di informazioni egrave impossibile Questi operano come i concatenamenti naturali interni ma la relazione risultante potragrave includere anche i tuples senza corrispondenze i valori mancanti saranno sostituiti con valori nulli- S Misbah Deen Database concetti teorici ed applicativi FrancoAngeli
126
R
Capitolo terzo Lo schema logico secondo il modello relazionale
Si costruisce cioegrave con il prodotto cartesiano una tabella con lo schema
R(A1A2An B1B2Bk) le cui tuples sono formate per primi n elementi
di una tupla di R1 e per i restanti k elementi da una tuple di R29 R1 R2
Riga R1-1 Riga R1-2 Riga R1-3 Riga R1-n
Riga R2-1 Riga R2-2 Riga R1-k
Riga R1-1 Riga R2-1 Riga R1-1 Riga R2-2 Riga R1-1 Riga R1-1 Riga R1-k Riga R1-2 Riga R2-1 Riga R1-2 Riga R2-2 Riga R1-2 Riga R1-2 Riga R1-k Riga R1-3 Riga R2-1 Riga R1-3 Riga R2-2 Riga R1-3 Riga R1-3 Riga R1-k Riga R1-n Riga R2-1 Riga R1-n Riga R2-2 Riga R1-n Riga R1-n Riga R1-k
Figura 34 Relazione prodotto cartesiano
3514 Differenza
La differenza tra relazione R1 e R2 indicata con R=R1 R2 (R=R1- R2) egrave
lrsquoinsieme di tutti i tuples o righe appartenenti ad R1 ma non a R210 R1 R2 R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A12 A13 A14
C11 C12 C13 C14
E11 E12 E13 E14
B11 B12 B13 B14
D11 D12 D13 D14
Figura 35 Relazione differenza
9 ldquoIl prodotto cartesiano di due relazioni egrave la relazione che si ottiene concatenando ciascuna tuple della R1 con tutte le tuples della R2rdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Il grado del prodotto cartesiano egrave la somma dei gradi di R1 ed R2 La cardinalitagrave del prodotto cartesiano egrave il prodotto della cardinalitagrave di R1 ed R2 10 ldquoDati due insiemi I1 e I2 diciamo differenza I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad I1 che non appartengono a I2rdquo V Belski Dati e basi di dati Il modello relazionale FrancoAngeli
127
Capitolo terzo Lo schema logico secondo il modello relazionale
352 Operazioni dellrsquoalgebra relazionale
3521 Selezione
Data relazione R1 ed un predicato P semplice o composto che opera sugli attributi
di R1 la selezione di R1 su P egrave una relazione R le cui tuples sono tutte le tuples di
R1 che soddisfano P11
R1 R
A11 A12 A13 A14
C11 C12 C13 C14
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
Figura 36 Selezione di R1 su P
Un predicato egrave una condizione imposta sui valori di uno o piugrave attributi e puograve
essere semplice oppure composto Ersquo semplice quando esprime una relazione
del tipo
[attributo] [operatore di confronto] [attributo]
Gli operatori di confronto sono rappresentati da = (diverso) lt gt lt= gt=
Ersquo composto se egrave costituito da due o piugrave predicati collegati fra loro tramite
operatori booleani AND OR NOT Lrsquooperazione di selezione sceglie i tuples
di una relazione in cui il predicato risulta essere vero mentre le colonne
restano le stesse Ci si puograve chiedere quando un predicato composto da piugrave
predicati egrave vero e quindi quando verranno prelevate delle tuples Per questo
possono essere riportate le tavole di veritagrave di Boole
11 Lrsquooperatore di selezione egrave un filtro che sceglie alcune righe quelle che soddisfano una certa condizione Select R where p Lrsquooperatore di selezione crea una nuova relazione che egrave un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale Le righe scelte sono quelle risulta vera la proposizione p - Nazzini Sanges Vaccaro Introduzione ai database relazionali
128
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
321 Chiavi ed attributi di una relazione
Il concetto di chiave viene elaborato nella teoria relazionale poicheacute le tabelle
devono essere costruite in modo tale che ogni tupla deve essere distinta per
mezzo di uno o piugrave attributi Quindi scopo delle chiavi egrave identificare
univocamente queste tuple Si distingue fra superchiave chiave candidate e
chiave primaria La superchiave egrave lrsquoinsieme degli attributi che identificano
univocamente una tuple La chiave candidata egrave in numero minimo di
attributi necessari per identificare univocamente una tuple Puograve essere definita come una superchiave dalla quale possono essere eliminati attributi senza
distruggere la proprietagrave della identificazione univoca della tuple Per cui una chiave
candidata egrave una superchiave con la proprietagrave di non ridondanza3
Fra le chiavi candidate che possono essere piugrave di una se ne sceglieragrave una
che ha il minor numero di attributi e che a paritagrave di attributi ha il minor
numero di caratteri Questa egrave la chiave primaria e saragrave la chiave scelta fra le
chiavi candidate a rappresentare univocamente una tuple
Rispetto alla chiave della tabella si possono distinguere gli attributi primi
cioegrave quelli che fanno parte di almeno una chiave candidata e i restanti
attributi non primi Infine quegli attributi che possono costituire la chiave di
altre tabelle sono detti chiave esterna e permettono di stabilire associazioni
fra le tabelle che rappresentano diverse entitagrave
33 Traduzione dei diagrammi E|R di uno schema concettuale in un
modello relazionale
Si puograve tradurre abbastanza agevolmente gli schemi ER secondo le strutture
delle basi di dati relazionali seguendo perograve alcune regole
331 Entitagrave e gerarchie IS-A
3 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali 120
Capitolo terzo Lo schema logico secondo il modello relazionale
Le entitagrave degli schemi E|R vengono tradotte in altrettante tabelle Gli
attributi delle entitagrave vengono riportati nelle colonne mentre le occorrenze
delle entitagrave saranno tradotte in tuples
Per tradurre invece le strutture IS-A nel modello relazionale si possono
adottare diverse soluzioni
Una puograve essere quella di inserire tutto in una tabella che contenga gli
attributi comuni e gli attributi caratteristici di ciascuna classe Per questo in
ogni tupla saranno vuote alcune colonne relative ad alcuni attributi a
seconda che come nellrsquoesempio del capitolo 2 il dipendente appartenga alla
categoria impiegati o dipendenti In questo caso ci saragrave uno spreco di spazio
Unrsquoaltra soluzione che puograve porre rimedio a questo inconveniente egrave quello di
creare una tabella che contenga tutti gli attributi comuni e inserire gli
attributi specifici dei sottoinsiemi definiti dalla IS-A in altre tabelle legate a
questa da associazioni 1 ad 1 Quindi nellrsquoesempio della gerarchia IS-A
individuata dal diagramma dipendenti si puograve inserire in una tabella gli
attributi comuni e realizzare due tabelle operai ed impiegati in cui inserire
gli attributi specifici delle due categorie
332 Associazioni 1 a 1 e 1 a n
Per tradurre il legame tra due entitagrave che viene realizzato da unassociazione 1
a 1 si deve inserire tra gli attributi di almeno una delle entitagrave la chiave
esterna cioegrave quellrsquoattributo o insieme di attributi che identificano lrsquoentitagrave ad
essa collegata Le associazioni 1 a n sono tradotte in modo analogo Occorre
perograve prestare attenzione a non inserire perograve attributi ripetuti siano chiavi
esterne o attributi normali percheacute possono essere causa di problemi nella
gestione delle tabelle Ad esempio in una relazione 1 a n fra due entitagrave cliente e numero drsquoordine inserisco la chiave primaria della tabella cliente
nella tabella ordini divenendo chiave esterna Se facessi lrsquoinverso ovvero se
inserissi come chiave esterna nella relazione clienti la chiave della tabella
ordini dovrei inserire per ogni cliente tutti gli ordini creando molte tuples
121
Capitolo terzo Lo schema logico secondo il modello relazionale
Le associazioni tra entitagrave del tipo 1 a 1 o 1 a n riportate sui diagrammi ER
possono aver attributi propri Questi attributi possono essere riportati in
altrettante colonne di una delle tabelle in cui sono state tradotte le entitagrave
333 Associazioni n a m
Per tradurre le associazioni n a m (molti a molti) egrave necessario introdurre una
nuova tabella Questo procedimento sconsigliato per le associazioni 1 a 1 e 1
a n egrave la strada obbligata per questo tipo di associazione (poicheacute col metodo
precedente si avrebbe una grande proliferazione di attributi multipli) La
nuova tabella includeragrave gli attributi propri della associazione e le chiavi
esterne che permettono i collegamenti con le due tabelle traduzione delle
entitagrave che tramite essa sono associate La chiave primaria della nuova tabella
egrave costituita dalla coppia primaria di chiavi esterne Si spezza cosigrave
unassociazione m a n in due associazioni 1 a n
Articoli Torrone Spumante Gianduia Panettone Panforte Cioccolata Panepepato Champagn Pandoro
eFATTURA
01
02 03 04 05 06 07 08 09 10
6 15 5 5
5 5 120
10 30 10 50 20 20
20 20 15 11 6 12
5 6 10 15 5 5
Figura 31 Esempio di matrice Una relazione molti a molti si presta ad essere rappresentata sotto forma
di matrice rettangolare In questo caso si ha una matrice fra articoli e fatture La matrice letta in verticale indica
in quale fattura egrave stato venduto lrsquoarticolo Letta orizzontalmente indica quali articoli sono stati venduti in una
data fattura Il numero nella casella puograve indicare la quantitagrave venduta nella fattura (Mcmicrocomputer)
34 Regole di integritagrave
Il modello relazionale prevede due regole generali di integritagrave Queste sono
la integritagrave di entitagrave e la integritagrave referenziale (o di riferimento)
122
Capitolo terzo Lo schema logico secondo il modello relazionale
Integritagrave di entitagrave Se A egrave un attributo della relazione R e partecipa alla chiave
primaria non puograve avere valori Null Questo vuol dire che tutti gli attributi che
partecipano alla chiave primaria non possono essere definiti su di un dominio che
contempli valori Null
Integritagrave di riferimento Se nella relazione R la chiave primaria egrave rappresentata
dallrsquoattributo ( o insieme di attributi) A definito sul dominio D allora in tutte le
relazioni Sj in cui appare come attributo A le tuples devono contenere un valore di
A definito sul dominio D oppure un valore Null Lrsquoattributo A nelle relazioni Sj
prende il nome di chiave esterna4
Per una chiave esterna va verificato se
Puograve assumere valori Null
Cosa succede nella tabella collegata tramite chiave esterna se viene
cancellato o modificato un valore della chiave primaria della tabella
che ad essa si collega se questo valore egrave presente (nella tabella
collegata) in una sua occorrenza
La possibilitagrave che ha una chiave esterna di assumere valori Null dipende dai
tipi di Associazione Se ad esempio lrsquoassociazione egrave quella fra Impiegato e
Reparto la chiave esterna corrispondente al reparto puograve assumere il valore
Null (un impiegato non egrave assegnato ad un reparto) mentre nella associazione
Fattura - Movimenti la chiave esterna corrispondente alla fattura non puograve
mai assumere il valore Null (un movimento non puograve esistere senza fattura)
Gli effetti dellrsquoaggiornamento o della cancellazione di una chiave primaria
presente come chiave esterna in altre tabelle si possono ricondurre a tre casi Effetto cascata Una cancellazione o un aggiornamento della chiave primaria
provoca una cancellazione o un aggiornamento delle occorrenze presenti
nelle tabelle collegate tramite chiave esterna
Effetto restrizione La cancellazione o lrsquoaggiornamento non devono essere
permessi se sono presenti occorrenze per il valore considerato nelle tabelle
collegate da chiave esterna
4 Schiavetti Database Jackson 1989 123
Capitolo terzo Lo schema logico secondo il modello relazionale
Effetto annullamento La cancellazione o lrsquoaggiornamento di un valore della
chiave primaria provoca un annullamento (Null) dei corrispondenti valori
presenti nelle chiavi secondarie delle tabelle collegate da chiave esterna
Bencheacute il modello relazionale tramite normalizzazione crea sia lrsquointegritagrave di
entitagrave sia lrsquontegritagrave di riferimento spetteragrave al RDBMS (Relational DBMS)
mantenere lrsquointegritagrave durante il procedimento di inserimento dei dati
In questo i diversi Rdbms differiscono molto applicando le tecniche piugrave
disparate
35 Operazioni relazionali
Lrsquoalgebra relazionale basata sulla teoria degli insiemi offre una tecnica di
estrazione dei dati molto efficace in un database relazionale Per rendere
possibile la manipolazione dei dati utilizza degli operatori che trasformano
una o piugrave relazioni in una nuova relazione Possono essere individuate due
categorie di operazioni
1 operazioni insiemistiche cioegrave si tratta di operazioni dellrsquoalgebra degli
insiemi applicate alla entitagrave relazione Le piugrave diffuse in ambito relazionale
sono
unione
intersezione
prodotto (catesiano)
differenza
2 operazioni relazionali si tratta di operazioni che sono caratteristiche solo
dellrsquoalgebra relazionale e non dellrsquoalgebra degli insiemi Le operazioni
piugrave diffuse sono
selezione
proiezione
congiunzione (combinazione)
divisione
124
K21 K22 K23
Capitolo terzo Lo schema logico secondo il modello relazionale
351 Operazioni insiemistiche
3511 Unione
Lrsquounione della relazione R1(A1) con la relazione R2(A2) indicata con R=R1
R2 egrave lrsquoinsieme di tutti i tuples (righe) senza alcuna ripetizione5 R1 R2
A11 A12 A13 B11 B12 B13 C11 C12 C13
K11 K12 K13 K21 K22 K23
R
Figura 32 Relazione di unione
Occorre perograve che vengano soddisfatte queste condizioni
1 le due tabelle per essere unificabili devono essere compatibili6 cioegrave
devono avere egual grado ( stesso numero di colonne)
la k-esima colonna delle tabella R1 deve essere definita sugli stessi
domini e quindi essere compatibile con la corrispondente colonna
della tabella R2 ( es entrambe numeriche)
2 se esistono due righe uguali convenzionalmente ne viene indicata una
sola
A11 A12 A13 B11 B12 B13
C11 C12 C13 K11 K12 K13
5 Come si vede questa definizione assomiglia molto a quella della unione di due insiemi Per cui secondo quanto afferma Belski in Dati e basi di dati ldquodati due insiemi I1 e I2 diciamo lrsquounione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad almeno uno degli insiemi assegnatirdquo Valgono le proprietagrave commutativa I1 I2= I2 I1 associativa I1 (I2 I3)= (I1 I2) I3 distributiva I1 (I2 I3)= (I1 I2) ( I1 I2)
6 ldquoDue relazioni si dicono compatibili se sono dello stesso grado e definite sugli stessi dominirdquo rdquo Lrsquounione di due relazioni compatibili egrave costituita da tutte quelle tuples che appartengono ad almeno una delle due relazionirdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Questa proprietagrave vale sia per lrsquounione ma anche per lrsquointersezione e la differenza
125
R
Capitolo terzo Lo schema logico secondo il modello relazionale
3512 Intersezione
Lrsquointersezione della relazione R1(A1) e R2(A2) indicata con R=R1 R2 egrave
lrsquoinsieme di tutti i tuples o righe appartenenti sia ad R1(A1)che a R2(A2)7
R1 R2
A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14
A11 A12 A13 A14 C11 C12 C13 C14 E11 E12 E13 E14
A11 A12 A13 A14 C11 C12 C13 C14
Figura 33 Relazione di intersezione
3513 Prodotto cartesiano
Il prodotto cartesiano delle relazioni R1 e R2 rispettivamente di grado n e k
e di cardinalitagrave m1 e m2 egrave la relazione indicata con R=R1 R2 che ha grado
n+k e cardinalitagrave m1 m2 composta dalle tuple che si ottengono
concatenando ogni tuple di R1 con tutte le tuple di R28
Per concatenare due tuples r1 (a1 a2 an) e r2 (b1 b2 bk) si costruisce
una tupla che ha gli attributi di entrambe
r1 conc r2= (a1 a2 an b1 b2 bk)
7 ldquoDati due insiemi I1 e I2 diciamo intersezione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono sia ad I1 che ad I2rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli 8 ldquoDati due insiemi I1 e I2 diciamo prodotto cartesiano I1 I2 lrsquoinsieme costituito dalle coppie ordinate (i1i2) con i1 I1 e i2 I2 rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli Il prodotto cartesiano puograve essere considerato come la forma generica di concatenamento in cui ogni tuple di R1 viene concatenato con ogni tuple di R2 Il prodotto cartesiano egrave utile nelle interrogazioni in cui egrave necessaria ogni possibile combinazione tra i tuples delle due relazioni Altre forme di concatenamento dette concatenamento naturale sono rappresentate dal join in cui un tuple puograve essere escluso dalla relazione risultante se non soddisferagrave le condizioni poste Uno dei problemi dei concatenamenti naturali consiste nella perdita di informazioni dato che la relazione risultante non contiene tutti i tuples I concatenamenti che presentano questo tipo di rischio si dicono concatenamenti (naturali) interni mentre vengono chiamati concatenamenti (naturali) esterni quelli in cui la perdita di informazioni egrave impossibile Questi operano come i concatenamenti naturali interni ma la relazione risultante potragrave includere anche i tuples senza corrispondenze i valori mancanti saranno sostituiti con valori nulli- S Misbah Deen Database concetti teorici ed applicativi FrancoAngeli
126
R
Capitolo terzo Lo schema logico secondo il modello relazionale
Si costruisce cioegrave con il prodotto cartesiano una tabella con lo schema
R(A1A2An B1B2Bk) le cui tuples sono formate per primi n elementi
di una tupla di R1 e per i restanti k elementi da una tuple di R29 R1 R2
Riga R1-1 Riga R1-2 Riga R1-3 Riga R1-n
Riga R2-1 Riga R2-2 Riga R1-k
Riga R1-1 Riga R2-1 Riga R1-1 Riga R2-2 Riga R1-1 Riga R1-1 Riga R1-k Riga R1-2 Riga R2-1 Riga R1-2 Riga R2-2 Riga R1-2 Riga R1-2 Riga R1-k Riga R1-3 Riga R2-1 Riga R1-3 Riga R2-2 Riga R1-3 Riga R1-3 Riga R1-k Riga R1-n Riga R2-1 Riga R1-n Riga R2-2 Riga R1-n Riga R1-n Riga R1-k
Figura 34 Relazione prodotto cartesiano
3514 Differenza
La differenza tra relazione R1 e R2 indicata con R=R1 R2 (R=R1- R2) egrave
lrsquoinsieme di tutti i tuples o righe appartenenti ad R1 ma non a R210 R1 R2 R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A12 A13 A14
C11 C12 C13 C14
E11 E12 E13 E14
B11 B12 B13 B14
D11 D12 D13 D14
Figura 35 Relazione differenza
9 ldquoIl prodotto cartesiano di due relazioni egrave la relazione che si ottiene concatenando ciascuna tuple della R1 con tutte le tuples della R2rdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Il grado del prodotto cartesiano egrave la somma dei gradi di R1 ed R2 La cardinalitagrave del prodotto cartesiano egrave il prodotto della cardinalitagrave di R1 ed R2 10 ldquoDati due insiemi I1 e I2 diciamo differenza I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad I1 che non appartengono a I2rdquo V Belski Dati e basi di dati Il modello relazionale FrancoAngeli
127
Capitolo terzo Lo schema logico secondo il modello relazionale
352 Operazioni dellrsquoalgebra relazionale
3521 Selezione
Data relazione R1 ed un predicato P semplice o composto che opera sugli attributi
di R1 la selezione di R1 su P egrave una relazione R le cui tuples sono tutte le tuples di
R1 che soddisfano P11
R1 R
A11 A12 A13 A14
C11 C12 C13 C14
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
Figura 36 Selezione di R1 su P
Un predicato egrave una condizione imposta sui valori di uno o piugrave attributi e puograve
essere semplice oppure composto Ersquo semplice quando esprime una relazione
del tipo
[attributo] [operatore di confronto] [attributo]
Gli operatori di confronto sono rappresentati da = (diverso) lt gt lt= gt=
Ersquo composto se egrave costituito da due o piugrave predicati collegati fra loro tramite
operatori booleani AND OR NOT Lrsquooperazione di selezione sceglie i tuples
di una relazione in cui il predicato risulta essere vero mentre le colonne
restano le stesse Ci si puograve chiedere quando un predicato composto da piugrave
predicati egrave vero e quindi quando verranno prelevate delle tuples Per questo
possono essere riportate le tavole di veritagrave di Boole
11 Lrsquooperatore di selezione egrave un filtro che sceglie alcune righe quelle che soddisfano una certa condizione Select R where p Lrsquooperatore di selezione crea una nuova relazione che egrave un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale Le righe scelte sono quelle risulta vera la proposizione p - Nazzini Sanges Vaccaro Introduzione ai database relazionali
128
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Le entitagrave degli schemi E|R vengono tradotte in altrettante tabelle Gli
attributi delle entitagrave vengono riportati nelle colonne mentre le occorrenze
delle entitagrave saranno tradotte in tuples
Per tradurre invece le strutture IS-A nel modello relazionale si possono
adottare diverse soluzioni
Una puograve essere quella di inserire tutto in una tabella che contenga gli
attributi comuni e gli attributi caratteristici di ciascuna classe Per questo in
ogni tupla saranno vuote alcune colonne relative ad alcuni attributi a
seconda che come nellrsquoesempio del capitolo 2 il dipendente appartenga alla
categoria impiegati o dipendenti In questo caso ci saragrave uno spreco di spazio
Unrsquoaltra soluzione che puograve porre rimedio a questo inconveniente egrave quello di
creare una tabella che contenga tutti gli attributi comuni e inserire gli
attributi specifici dei sottoinsiemi definiti dalla IS-A in altre tabelle legate a
questa da associazioni 1 ad 1 Quindi nellrsquoesempio della gerarchia IS-A
individuata dal diagramma dipendenti si puograve inserire in una tabella gli
attributi comuni e realizzare due tabelle operai ed impiegati in cui inserire
gli attributi specifici delle due categorie
332 Associazioni 1 a 1 e 1 a n
Per tradurre il legame tra due entitagrave che viene realizzato da unassociazione 1
a 1 si deve inserire tra gli attributi di almeno una delle entitagrave la chiave
esterna cioegrave quellrsquoattributo o insieme di attributi che identificano lrsquoentitagrave ad
essa collegata Le associazioni 1 a n sono tradotte in modo analogo Occorre
perograve prestare attenzione a non inserire perograve attributi ripetuti siano chiavi
esterne o attributi normali percheacute possono essere causa di problemi nella
gestione delle tabelle Ad esempio in una relazione 1 a n fra due entitagrave cliente e numero drsquoordine inserisco la chiave primaria della tabella cliente
nella tabella ordini divenendo chiave esterna Se facessi lrsquoinverso ovvero se
inserissi come chiave esterna nella relazione clienti la chiave della tabella
ordini dovrei inserire per ogni cliente tutti gli ordini creando molte tuples
121
Capitolo terzo Lo schema logico secondo il modello relazionale
Le associazioni tra entitagrave del tipo 1 a 1 o 1 a n riportate sui diagrammi ER
possono aver attributi propri Questi attributi possono essere riportati in
altrettante colonne di una delle tabelle in cui sono state tradotte le entitagrave
333 Associazioni n a m
Per tradurre le associazioni n a m (molti a molti) egrave necessario introdurre una
nuova tabella Questo procedimento sconsigliato per le associazioni 1 a 1 e 1
a n egrave la strada obbligata per questo tipo di associazione (poicheacute col metodo
precedente si avrebbe una grande proliferazione di attributi multipli) La
nuova tabella includeragrave gli attributi propri della associazione e le chiavi
esterne che permettono i collegamenti con le due tabelle traduzione delle
entitagrave che tramite essa sono associate La chiave primaria della nuova tabella
egrave costituita dalla coppia primaria di chiavi esterne Si spezza cosigrave
unassociazione m a n in due associazioni 1 a n
Articoli Torrone Spumante Gianduia Panettone Panforte Cioccolata Panepepato Champagn Pandoro
eFATTURA
01
02 03 04 05 06 07 08 09 10
6 15 5 5
5 5 120
10 30 10 50 20 20
20 20 15 11 6 12
5 6 10 15 5 5
Figura 31 Esempio di matrice Una relazione molti a molti si presta ad essere rappresentata sotto forma
di matrice rettangolare In questo caso si ha una matrice fra articoli e fatture La matrice letta in verticale indica
in quale fattura egrave stato venduto lrsquoarticolo Letta orizzontalmente indica quali articoli sono stati venduti in una
data fattura Il numero nella casella puograve indicare la quantitagrave venduta nella fattura (Mcmicrocomputer)
34 Regole di integritagrave
Il modello relazionale prevede due regole generali di integritagrave Queste sono
la integritagrave di entitagrave e la integritagrave referenziale (o di riferimento)
122
Capitolo terzo Lo schema logico secondo il modello relazionale
Integritagrave di entitagrave Se A egrave un attributo della relazione R e partecipa alla chiave
primaria non puograve avere valori Null Questo vuol dire che tutti gli attributi che
partecipano alla chiave primaria non possono essere definiti su di un dominio che
contempli valori Null
Integritagrave di riferimento Se nella relazione R la chiave primaria egrave rappresentata
dallrsquoattributo ( o insieme di attributi) A definito sul dominio D allora in tutte le
relazioni Sj in cui appare come attributo A le tuples devono contenere un valore di
A definito sul dominio D oppure un valore Null Lrsquoattributo A nelle relazioni Sj
prende il nome di chiave esterna4
Per una chiave esterna va verificato se
Puograve assumere valori Null
Cosa succede nella tabella collegata tramite chiave esterna se viene
cancellato o modificato un valore della chiave primaria della tabella
che ad essa si collega se questo valore egrave presente (nella tabella
collegata) in una sua occorrenza
La possibilitagrave che ha una chiave esterna di assumere valori Null dipende dai
tipi di Associazione Se ad esempio lrsquoassociazione egrave quella fra Impiegato e
Reparto la chiave esterna corrispondente al reparto puograve assumere il valore
Null (un impiegato non egrave assegnato ad un reparto) mentre nella associazione
Fattura - Movimenti la chiave esterna corrispondente alla fattura non puograve
mai assumere il valore Null (un movimento non puograve esistere senza fattura)
Gli effetti dellrsquoaggiornamento o della cancellazione di una chiave primaria
presente come chiave esterna in altre tabelle si possono ricondurre a tre casi Effetto cascata Una cancellazione o un aggiornamento della chiave primaria
provoca una cancellazione o un aggiornamento delle occorrenze presenti
nelle tabelle collegate tramite chiave esterna
Effetto restrizione La cancellazione o lrsquoaggiornamento non devono essere
permessi se sono presenti occorrenze per il valore considerato nelle tabelle
collegate da chiave esterna
4 Schiavetti Database Jackson 1989 123
Capitolo terzo Lo schema logico secondo il modello relazionale
Effetto annullamento La cancellazione o lrsquoaggiornamento di un valore della
chiave primaria provoca un annullamento (Null) dei corrispondenti valori
presenti nelle chiavi secondarie delle tabelle collegate da chiave esterna
Bencheacute il modello relazionale tramite normalizzazione crea sia lrsquointegritagrave di
entitagrave sia lrsquontegritagrave di riferimento spetteragrave al RDBMS (Relational DBMS)
mantenere lrsquointegritagrave durante il procedimento di inserimento dei dati
In questo i diversi Rdbms differiscono molto applicando le tecniche piugrave
disparate
35 Operazioni relazionali
Lrsquoalgebra relazionale basata sulla teoria degli insiemi offre una tecnica di
estrazione dei dati molto efficace in un database relazionale Per rendere
possibile la manipolazione dei dati utilizza degli operatori che trasformano
una o piugrave relazioni in una nuova relazione Possono essere individuate due
categorie di operazioni
1 operazioni insiemistiche cioegrave si tratta di operazioni dellrsquoalgebra degli
insiemi applicate alla entitagrave relazione Le piugrave diffuse in ambito relazionale
sono
unione
intersezione
prodotto (catesiano)
differenza
2 operazioni relazionali si tratta di operazioni che sono caratteristiche solo
dellrsquoalgebra relazionale e non dellrsquoalgebra degli insiemi Le operazioni
piugrave diffuse sono
selezione
proiezione
congiunzione (combinazione)
divisione
124
K21 K22 K23
Capitolo terzo Lo schema logico secondo il modello relazionale
351 Operazioni insiemistiche
3511 Unione
Lrsquounione della relazione R1(A1) con la relazione R2(A2) indicata con R=R1
R2 egrave lrsquoinsieme di tutti i tuples (righe) senza alcuna ripetizione5 R1 R2
A11 A12 A13 B11 B12 B13 C11 C12 C13
K11 K12 K13 K21 K22 K23
R
Figura 32 Relazione di unione
Occorre perograve che vengano soddisfatte queste condizioni
1 le due tabelle per essere unificabili devono essere compatibili6 cioegrave
devono avere egual grado ( stesso numero di colonne)
la k-esima colonna delle tabella R1 deve essere definita sugli stessi
domini e quindi essere compatibile con la corrispondente colonna
della tabella R2 ( es entrambe numeriche)
2 se esistono due righe uguali convenzionalmente ne viene indicata una
sola
A11 A12 A13 B11 B12 B13
C11 C12 C13 K11 K12 K13
5 Come si vede questa definizione assomiglia molto a quella della unione di due insiemi Per cui secondo quanto afferma Belski in Dati e basi di dati ldquodati due insiemi I1 e I2 diciamo lrsquounione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad almeno uno degli insiemi assegnatirdquo Valgono le proprietagrave commutativa I1 I2= I2 I1 associativa I1 (I2 I3)= (I1 I2) I3 distributiva I1 (I2 I3)= (I1 I2) ( I1 I2)
6 ldquoDue relazioni si dicono compatibili se sono dello stesso grado e definite sugli stessi dominirdquo rdquo Lrsquounione di due relazioni compatibili egrave costituita da tutte quelle tuples che appartengono ad almeno una delle due relazionirdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Questa proprietagrave vale sia per lrsquounione ma anche per lrsquointersezione e la differenza
125
R
Capitolo terzo Lo schema logico secondo il modello relazionale
3512 Intersezione
Lrsquointersezione della relazione R1(A1) e R2(A2) indicata con R=R1 R2 egrave
lrsquoinsieme di tutti i tuples o righe appartenenti sia ad R1(A1)che a R2(A2)7
R1 R2
A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14
A11 A12 A13 A14 C11 C12 C13 C14 E11 E12 E13 E14
A11 A12 A13 A14 C11 C12 C13 C14
Figura 33 Relazione di intersezione
3513 Prodotto cartesiano
Il prodotto cartesiano delle relazioni R1 e R2 rispettivamente di grado n e k
e di cardinalitagrave m1 e m2 egrave la relazione indicata con R=R1 R2 che ha grado
n+k e cardinalitagrave m1 m2 composta dalle tuple che si ottengono
concatenando ogni tuple di R1 con tutte le tuple di R28
Per concatenare due tuples r1 (a1 a2 an) e r2 (b1 b2 bk) si costruisce
una tupla che ha gli attributi di entrambe
r1 conc r2= (a1 a2 an b1 b2 bk)
7 ldquoDati due insiemi I1 e I2 diciamo intersezione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono sia ad I1 che ad I2rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli 8 ldquoDati due insiemi I1 e I2 diciamo prodotto cartesiano I1 I2 lrsquoinsieme costituito dalle coppie ordinate (i1i2) con i1 I1 e i2 I2 rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli Il prodotto cartesiano puograve essere considerato come la forma generica di concatenamento in cui ogni tuple di R1 viene concatenato con ogni tuple di R2 Il prodotto cartesiano egrave utile nelle interrogazioni in cui egrave necessaria ogni possibile combinazione tra i tuples delle due relazioni Altre forme di concatenamento dette concatenamento naturale sono rappresentate dal join in cui un tuple puograve essere escluso dalla relazione risultante se non soddisferagrave le condizioni poste Uno dei problemi dei concatenamenti naturali consiste nella perdita di informazioni dato che la relazione risultante non contiene tutti i tuples I concatenamenti che presentano questo tipo di rischio si dicono concatenamenti (naturali) interni mentre vengono chiamati concatenamenti (naturali) esterni quelli in cui la perdita di informazioni egrave impossibile Questi operano come i concatenamenti naturali interni ma la relazione risultante potragrave includere anche i tuples senza corrispondenze i valori mancanti saranno sostituiti con valori nulli- S Misbah Deen Database concetti teorici ed applicativi FrancoAngeli
126
R
Capitolo terzo Lo schema logico secondo il modello relazionale
Si costruisce cioegrave con il prodotto cartesiano una tabella con lo schema
R(A1A2An B1B2Bk) le cui tuples sono formate per primi n elementi
di una tupla di R1 e per i restanti k elementi da una tuple di R29 R1 R2
Riga R1-1 Riga R1-2 Riga R1-3 Riga R1-n
Riga R2-1 Riga R2-2 Riga R1-k
Riga R1-1 Riga R2-1 Riga R1-1 Riga R2-2 Riga R1-1 Riga R1-1 Riga R1-k Riga R1-2 Riga R2-1 Riga R1-2 Riga R2-2 Riga R1-2 Riga R1-2 Riga R1-k Riga R1-3 Riga R2-1 Riga R1-3 Riga R2-2 Riga R1-3 Riga R1-3 Riga R1-k Riga R1-n Riga R2-1 Riga R1-n Riga R2-2 Riga R1-n Riga R1-n Riga R1-k
Figura 34 Relazione prodotto cartesiano
3514 Differenza
La differenza tra relazione R1 e R2 indicata con R=R1 R2 (R=R1- R2) egrave
lrsquoinsieme di tutti i tuples o righe appartenenti ad R1 ma non a R210 R1 R2 R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A12 A13 A14
C11 C12 C13 C14
E11 E12 E13 E14
B11 B12 B13 B14
D11 D12 D13 D14
Figura 35 Relazione differenza
9 ldquoIl prodotto cartesiano di due relazioni egrave la relazione che si ottiene concatenando ciascuna tuple della R1 con tutte le tuples della R2rdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Il grado del prodotto cartesiano egrave la somma dei gradi di R1 ed R2 La cardinalitagrave del prodotto cartesiano egrave il prodotto della cardinalitagrave di R1 ed R2 10 ldquoDati due insiemi I1 e I2 diciamo differenza I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad I1 che non appartengono a I2rdquo V Belski Dati e basi di dati Il modello relazionale FrancoAngeli
127
Capitolo terzo Lo schema logico secondo il modello relazionale
352 Operazioni dellrsquoalgebra relazionale
3521 Selezione
Data relazione R1 ed un predicato P semplice o composto che opera sugli attributi
di R1 la selezione di R1 su P egrave una relazione R le cui tuples sono tutte le tuples di
R1 che soddisfano P11
R1 R
A11 A12 A13 A14
C11 C12 C13 C14
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
Figura 36 Selezione di R1 su P
Un predicato egrave una condizione imposta sui valori di uno o piugrave attributi e puograve
essere semplice oppure composto Ersquo semplice quando esprime una relazione
del tipo
[attributo] [operatore di confronto] [attributo]
Gli operatori di confronto sono rappresentati da = (diverso) lt gt lt= gt=
Ersquo composto se egrave costituito da due o piugrave predicati collegati fra loro tramite
operatori booleani AND OR NOT Lrsquooperazione di selezione sceglie i tuples
di una relazione in cui il predicato risulta essere vero mentre le colonne
restano le stesse Ci si puograve chiedere quando un predicato composto da piugrave
predicati egrave vero e quindi quando verranno prelevate delle tuples Per questo
possono essere riportate le tavole di veritagrave di Boole
11 Lrsquooperatore di selezione egrave un filtro che sceglie alcune righe quelle che soddisfano una certa condizione Select R where p Lrsquooperatore di selezione crea una nuova relazione che egrave un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale Le righe scelte sono quelle risulta vera la proposizione p - Nazzini Sanges Vaccaro Introduzione ai database relazionali
128
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Le associazioni tra entitagrave del tipo 1 a 1 o 1 a n riportate sui diagrammi ER
possono aver attributi propri Questi attributi possono essere riportati in
altrettante colonne di una delle tabelle in cui sono state tradotte le entitagrave
333 Associazioni n a m
Per tradurre le associazioni n a m (molti a molti) egrave necessario introdurre una
nuova tabella Questo procedimento sconsigliato per le associazioni 1 a 1 e 1
a n egrave la strada obbligata per questo tipo di associazione (poicheacute col metodo
precedente si avrebbe una grande proliferazione di attributi multipli) La
nuova tabella includeragrave gli attributi propri della associazione e le chiavi
esterne che permettono i collegamenti con le due tabelle traduzione delle
entitagrave che tramite essa sono associate La chiave primaria della nuova tabella
egrave costituita dalla coppia primaria di chiavi esterne Si spezza cosigrave
unassociazione m a n in due associazioni 1 a n
Articoli Torrone Spumante Gianduia Panettone Panforte Cioccolata Panepepato Champagn Pandoro
eFATTURA
01
02 03 04 05 06 07 08 09 10
6 15 5 5
5 5 120
10 30 10 50 20 20
20 20 15 11 6 12
5 6 10 15 5 5
Figura 31 Esempio di matrice Una relazione molti a molti si presta ad essere rappresentata sotto forma
di matrice rettangolare In questo caso si ha una matrice fra articoli e fatture La matrice letta in verticale indica
in quale fattura egrave stato venduto lrsquoarticolo Letta orizzontalmente indica quali articoli sono stati venduti in una
data fattura Il numero nella casella puograve indicare la quantitagrave venduta nella fattura (Mcmicrocomputer)
34 Regole di integritagrave
Il modello relazionale prevede due regole generali di integritagrave Queste sono
la integritagrave di entitagrave e la integritagrave referenziale (o di riferimento)
122
Capitolo terzo Lo schema logico secondo il modello relazionale
Integritagrave di entitagrave Se A egrave un attributo della relazione R e partecipa alla chiave
primaria non puograve avere valori Null Questo vuol dire che tutti gli attributi che
partecipano alla chiave primaria non possono essere definiti su di un dominio che
contempli valori Null
Integritagrave di riferimento Se nella relazione R la chiave primaria egrave rappresentata
dallrsquoattributo ( o insieme di attributi) A definito sul dominio D allora in tutte le
relazioni Sj in cui appare come attributo A le tuples devono contenere un valore di
A definito sul dominio D oppure un valore Null Lrsquoattributo A nelle relazioni Sj
prende il nome di chiave esterna4
Per una chiave esterna va verificato se
Puograve assumere valori Null
Cosa succede nella tabella collegata tramite chiave esterna se viene
cancellato o modificato un valore della chiave primaria della tabella
che ad essa si collega se questo valore egrave presente (nella tabella
collegata) in una sua occorrenza
La possibilitagrave che ha una chiave esterna di assumere valori Null dipende dai
tipi di Associazione Se ad esempio lrsquoassociazione egrave quella fra Impiegato e
Reparto la chiave esterna corrispondente al reparto puograve assumere il valore
Null (un impiegato non egrave assegnato ad un reparto) mentre nella associazione
Fattura - Movimenti la chiave esterna corrispondente alla fattura non puograve
mai assumere il valore Null (un movimento non puograve esistere senza fattura)
Gli effetti dellrsquoaggiornamento o della cancellazione di una chiave primaria
presente come chiave esterna in altre tabelle si possono ricondurre a tre casi Effetto cascata Una cancellazione o un aggiornamento della chiave primaria
provoca una cancellazione o un aggiornamento delle occorrenze presenti
nelle tabelle collegate tramite chiave esterna
Effetto restrizione La cancellazione o lrsquoaggiornamento non devono essere
permessi se sono presenti occorrenze per il valore considerato nelle tabelle
collegate da chiave esterna
4 Schiavetti Database Jackson 1989 123
Capitolo terzo Lo schema logico secondo il modello relazionale
Effetto annullamento La cancellazione o lrsquoaggiornamento di un valore della
chiave primaria provoca un annullamento (Null) dei corrispondenti valori
presenti nelle chiavi secondarie delle tabelle collegate da chiave esterna
Bencheacute il modello relazionale tramite normalizzazione crea sia lrsquointegritagrave di
entitagrave sia lrsquontegritagrave di riferimento spetteragrave al RDBMS (Relational DBMS)
mantenere lrsquointegritagrave durante il procedimento di inserimento dei dati
In questo i diversi Rdbms differiscono molto applicando le tecniche piugrave
disparate
35 Operazioni relazionali
Lrsquoalgebra relazionale basata sulla teoria degli insiemi offre una tecnica di
estrazione dei dati molto efficace in un database relazionale Per rendere
possibile la manipolazione dei dati utilizza degli operatori che trasformano
una o piugrave relazioni in una nuova relazione Possono essere individuate due
categorie di operazioni
1 operazioni insiemistiche cioegrave si tratta di operazioni dellrsquoalgebra degli
insiemi applicate alla entitagrave relazione Le piugrave diffuse in ambito relazionale
sono
unione
intersezione
prodotto (catesiano)
differenza
2 operazioni relazionali si tratta di operazioni che sono caratteristiche solo
dellrsquoalgebra relazionale e non dellrsquoalgebra degli insiemi Le operazioni
piugrave diffuse sono
selezione
proiezione
congiunzione (combinazione)
divisione
124
K21 K22 K23
Capitolo terzo Lo schema logico secondo il modello relazionale
351 Operazioni insiemistiche
3511 Unione
Lrsquounione della relazione R1(A1) con la relazione R2(A2) indicata con R=R1
R2 egrave lrsquoinsieme di tutti i tuples (righe) senza alcuna ripetizione5 R1 R2
A11 A12 A13 B11 B12 B13 C11 C12 C13
K11 K12 K13 K21 K22 K23
R
Figura 32 Relazione di unione
Occorre perograve che vengano soddisfatte queste condizioni
1 le due tabelle per essere unificabili devono essere compatibili6 cioegrave
devono avere egual grado ( stesso numero di colonne)
la k-esima colonna delle tabella R1 deve essere definita sugli stessi
domini e quindi essere compatibile con la corrispondente colonna
della tabella R2 ( es entrambe numeriche)
2 se esistono due righe uguali convenzionalmente ne viene indicata una
sola
A11 A12 A13 B11 B12 B13
C11 C12 C13 K11 K12 K13
5 Come si vede questa definizione assomiglia molto a quella della unione di due insiemi Per cui secondo quanto afferma Belski in Dati e basi di dati ldquodati due insiemi I1 e I2 diciamo lrsquounione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad almeno uno degli insiemi assegnatirdquo Valgono le proprietagrave commutativa I1 I2= I2 I1 associativa I1 (I2 I3)= (I1 I2) I3 distributiva I1 (I2 I3)= (I1 I2) ( I1 I2)
6 ldquoDue relazioni si dicono compatibili se sono dello stesso grado e definite sugli stessi dominirdquo rdquo Lrsquounione di due relazioni compatibili egrave costituita da tutte quelle tuples che appartengono ad almeno una delle due relazionirdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Questa proprietagrave vale sia per lrsquounione ma anche per lrsquointersezione e la differenza
125
R
Capitolo terzo Lo schema logico secondo il modello relazionale
3512 Intersezione
Lrsquointersezione della relazione R1(A1) e R2(A2) indicata con R=R1 R2 egrave
lrsquoinsieme di tutti i tuples o righe appartenenti sia ad R1(A1)che a R2(A2)7
R1 R2
A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14
A11 A12 A13 A14 C11 C12 C13 C14 E11 E12 E13 E14
A11 A12 A13 A14 C11 C12 C13 C14
Figura 33 Relazione di intersezione
3513 Prodotto cartesiano
Il prodotto cartesiano delle relazioni R1 e R2 rispettivamente di grado n e k
e di cardinalitagrave m1 e m2 egrave la relazione indicata con R=R1 R2 che ha grado
n+k e cardinalitagrave m1 m2 composta dalle tuple che si ottengono
concatenando ogni tuple di R1 con tutte le tuple di R28
Per concatenare due tuples r1 (a1 a2 an) e r2 (b1 b2 bk) si costruisce
una tupla che ha gli attributi di entrambe
r1 conc r2= (a1 a2 an b1 b2 bk)
7 ldquoDati due insiemi I1 e I2 diciamo intersezione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono sia ad I1 che ad I2rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli 8 ldquoDati due insiemi I1 e I2 diciamo prodotto cartesiano I1 I2 lrsquoinsieme costituito dalle coppie ordinate (i1i2) con i1 I1 e i2 I2 rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli Il prodotto cartesiano puograve essere considerato come la forma generica di concatenamento in cui ogni tuple di R1 viene concatenato con ogni tuple di R2 Il prodotto cartesiano egrave utile nelle interrogazioni in cui egrave necessaria ogni possibile combinazione tra i tuples delle due relazioni Altre forme di concatenamento dette concatenamento naturale sono rappresentate dal join in cui un tuple puograve essere escluso dalla relazione risultante se non soddisferagrave le condizioni poste Uno dei problemi dei concatenamenti naturali consiste nella perdita di informazioni dato che la relazione risultante non contiene tutti i tuples I concatenamenti che presentano questo tipo di rischio si dicono concatenamenti (naturali) interni mentre vengono chiamati concatenamenti (naturali) esterni quelli in cui la perdita di informazioni egrave impossibile Questi operano come i concatenamenti naturali interni ma la relazione risultante potragrave includere anche i tuples senza corrispondenze i valori mancanti saranno sostituiti con valori nulli- S Misbah Deen Database concetti teorici ed applicativi FrancoAngeli
126
R
Capitolo terzo Lo schema logico secondo il modello relazionale
Si costruisce cioegrave con il prodotto cartesiano una tabella con lo schema
R(A1A2An B1B2Bk) le cui tuples sono formate per primi n elementi
di una tupla di R1 e per i restanti k elementi da una tuple di R29 R1 R2
Riga R1-1 Riga R1-2 Riga R1-3 Riga R1-n
Riga R2-1 Riga R2-2 Riga R1-k
Riga R1-1 Riga R2-1 Riga R1-1 Riga R2-2 Riga R1-1 Riga R1-1 Riga R1-k Riga R1-2 Riga R2-1 Riga R1-2 Riga R2-2 Riga R1-2 Riga R1-2 Riga R1-k Riga R1-3 Riga R2-1 Riga R1-3 Riga R2-2 Riga R1-3 Riga R1-3 Riga R1-k Riga R1-n Riga R2-1 Riga R1-n Riga R2-2 Riga R1-n Riga R1-n Riga R1-k
Figura 34 Relazione prodotto cartesiano
3514 Differenza
La differenza tra relazione R1 e R2 indicata con R=R1 R2 (R=R1- R2) egrave
lrsquoinsieme di tutti i tuples o righe appartenenti ad R1 ma non a R210 R1 R2 R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A12 A13 A14
C11 C12 C13 C14
E11 E12 E13 E14
B11 B12 B13 B14
D11 D12 D13 D14
Figura 35 Relazione differenza
9 ldquoIl prodotto cartesiano di due relazioni egrave la relazione che si ottiene concatenando ciascuna tuple della R1 con tutte le tuples della R2rdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Il grado del prodotto cartesiano egrave la somma dei gradi di R1 ed R2 La cardinalitagrave del prodotto cartesiano egrave il prodotto della cardinalitagrave di R1 ed R2 10 ldquoDati due insiemi I1 e I2 diciamo differenza I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad I1 che non appartengono a I2rdquo V Belski Dati e basi di dati Il modello relazionale FrancoAngeli
127
Capitolo terzo Lo schema logico secondo il modello relazionale
352 Operazioni dellrsquoalgebra relazionale
3521 Selezione
Data relazione R1 ed un predicato P semplice o composto che opera sugli attributi
di R1 la selezione di R1 su P egrave una relazione R le cui tuples sono tutte le tuples di
R1 che soddisfano P11
R1 R
A11 A12 A13 A14
C11 C12 C13 C14
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
Figura 36 Selezione di R1 su P
Un predicato egrave una condizione imposta sui valori di uno o piugrave attributi e puograve
essere semplice oppure composto Ersquo semplice quando esprime una relazione
del tipo
[attributo] [operatore di confronto] [attributo]
Gli operatori di confronto sono rappresentati da = (diverso) lt gt lt= gt=
Ersquo composto se egrave costituito da due o piugrave predicati collegati fra loro tramite
operatori booleani AND OR NOT Lrsquooperazione di selezione sceglie i tuples
di una relazione in cui il predicato risulta essere vero mentre le colonne
restano le stesse Ci si puograve chiedere quando un predicato composto da piugrave
predicati egrave vero e quindi quando verranno prelevate delle tuples Per questo
possono essere riportate le tavole di veritagrave di Boole
11 Lrsquooperatore di selezione egrave un filtro che sceglie alcune righe quelle che soddisfano una certa condizione Select R where p Lrsquooperatore di selezione crea una nuova relazione che egrave un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale Le righe scelte sono quelle risulta vera la proposizione p - Nazzini Sanges Vaccaro Introduzione ai database relazionali
128
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Integritagrave di entitagrave Se A egrave un attributo della relazione R e partecipa alla chiave
primaria non puograve avere valori Null Questo vuol dire che tutti gli attributi che
partecipano alla chiave primaria non possono essere definiti su di un dominio che
contempli valori Null
Integritagrave di riferimento Se nella relazione R la chiave primaria egrave rappresentata
dallrsquoattributo ( o insieme di attributi) A definito sul dominio D allora in tutte le
relazioni Sj in cui appare come attributo A le tuples devono contenere un valore di
A definito sul dominio D oppure un valore Null Lrsquoattributo A nelle relazioni Sj
prende il nome di chiave esterna4
Per una chiave esterna va verificato se
Puograve assumere valori Null
Cosa succede nella tabella collegata tramite chiave esterna se viene
cancellato o modificato un valore della chiave primaria della tabella
che ad essa si collega se questo valore egrave presente (nella tabella
collegata) in una sua occorrenza
La possibilitagrave che ha una chiave esterna di assumere valori Null dipende dai
tipi di Associazione Se ad esempio lrsquoassociazione egrave quella fra Impiegato e
Reparto la chiave esterna corrispondente al reparto puograve assumere il valore
Null (un impiegato non egrave assegnato ad un reparto) mentre nella associazione
Fattura - Movimenti la chiave esterna corrispondente alla fattura non puograve
mai assumere il valore Null (un movimento non puograve esistere senza fattura)
Gli effetti dellrsquoaggiornamento o della cancellazione di una chiave primaria
presente come chiave esterna in altre tabelle si possono ricondurre a tre casi Effetto cascata Una cancellazione o un aggiornamento della chiave primaria
provoca una cancellazione o un aggiornamento delle occorrenze presenti
nelle tabelle collegate tramite chiave esterna
Effetto restrizione La cancellazione o lrsquoaggiornamento non devono essere
permessi se sono presenti occorrenze per il valore considerato nelle tabelle
collegate da chiave esterna
4 Schiavetti Database Jackson 1989 123
Capitolo terzo Lo schema logico secondo il modello relazionale
Effetto annullamento La cancellazione o lrsquoaggiornamento di un valore della
chiave primaria provoca un annullamento (Null) dei corrispondenti valori
presenti nelle chiavi secondarie delle tabelle collegate da chiave esterna
Bencheacute il modello relazionale tramite normalizzazione crea sia lrsquointegritagrave di
entitagrave sia lrsquontegritagrave di riferimento spetteragrave al RDBMS (Relational DBMS)
mantenere lrsquointegritagrave durante il procedimento di inserimento dei dati
In questo i diversi Rdbms differiscono molto applicando le tecniche piugrave
disparate
35 Operazioni relazionali
Lrsquoalgebra relazionale basata sulla teoria degli insiemi offre una tecnica di
estrazione dei dati molto efficace in un database relazionale Per rendere
possibile la manipolazione dei dati utilizza degli operatori che trasformano
una o piugrave relazioni in una nuova relazione Possono essere individuate due
categorie di operazioni
1 operazioni insiemistiche cioegrave si tratta di operazioni dellrsquoalgebra degli
insiemi applicate alla entitagrave relazione Le piugrave diffuse in ambito relazionale
sono
unione
intersezione
prodotto (catesiano)
differenza
2 operazioni relazionali si tratta di operazioni che sono caratteristiche solo
dellrsquoalgebra relazionale e non dellrsquoalgebra degli insiemi Le operazioni
piugrave diffuse sono
selezione
proiezione
congiunzione (combinazione)
divisione
124
K21 K22 K23
Capitolo terzo Lo schema logico secondo il modello relazionale
351 Operazioni insiemistiche
3511 Unione
Lrsquounione della relazione R1(A1) con la relazione R2(A2) indicata con R=R1
R2 egrave lrsquoinsieme di tutti i tuples (righe) senza alcuna ripetizione5 R1 R2
A11 A12 A13 B11 B12 B13 C11 C12 C13
K11 K12 K13 K21 K22 K23
R
Figura 32 Relazione di unione
Occorre perograve che vengano soddisfatte queste condizioni
1 le due tabelle per essere unificabili devono essere compatibili6 cioegrave
devono avere egual grado ( stesso numero di colonne)
la k-esima colonna delle tabella R1 deve essere definita sugli stessi
domini e quindi essere compatibile con la corrispondente colonna
della tabella R2 ( es entrambe numeriche)
2 se esistono due righe uguali convenzionalmente ne viene indicata una
sola
A11 A12 A13 B11 B12 B13
C11 C12 C13 K11 K12 K13
5 Come si vede questa definizione assomiglia molto a quella della unione di due insiemi Per cui secondo quanto afferma Belski in Dati e basi di dati ldquodati due insiemi I1 e I2 diciamo lrsquounione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad almeno uno degli insiemi assegnatirdquo Valgono le proprietagrave commutativa I1 I2= I2 I1 associativa I1 (I2 I3)= (I1 I2) I3 distributiva I1 (I2 I3)= (I1 I2) ( I1 I2)
6 ldquoDue relazioni si dicono compatibili se sono dello stesso grado e definite sugli stessi dominirdquo rdquo Lrsquounione di due relazioni compatibili egrave costituita da tutte quelle tuples che appartengono ad almeno una delle due relazionirdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Questa proprietagrave vale sia per lrsquounione ma anche per lrsquointersezione e la differenza
125
R
Capitolo terzo Lo schema logico secondo il modello relazionale
3512 Intersezione
Lrsquointersezione della relazione R1(A1) e R2(A2) indicata con R=R1 R2 egrave
lrsquoinsieme di tutti i tuples o righe appartenenti sia ad R1(A1)che a R2(A2)7
R1 R2
A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14
A11 A12 A13 A14 C11 C12 C13 C14 E11 E12 E13 E14
A11 A12 A13 A14 C11 C12 C13 C14
Figura 33 Relazione di intersezione
3513 Prodotto cartesiano
Il prodotto cartesiano delle relazioni R1 e R2 rispettivamente di grado n e k
e di cardinalitagrave m1 e m2 egrave la relazione indicata con R=R1 R2 che ha grado
n+k e cardinalitagrave m1 m2 composta dalle tuple che si ottengono
concatenando ogni tuple di R1 con tutte le tuple di R28
Per concatenare due tuples r1 (a1 a2 an) e r2 (b1 b2 bk) si costruisce
una tupla che ha gli attributi di entrambe
r1 conc r2= (a1 a2 an b1 b2 bk)
7 ldquoDati due insiemi I1 e I2 diciamo intersezione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono sia ad I1 che ad I2rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli 8 ldquoDati due insiemi I1 e I2 diciamo prodotto cartesiano I1 I2 lrsquoinsieme costituito dalle coppie ordinate (i1i2) con i1 I1 e i2 I2 rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli Il prodotto cartesiano puograve essere considerato come la forma generica di concatenamento in cui ogni tuple di R1 viene concatenato con ogni tuple di R2 Il prodotto cartesiano egrave utile nelle interrogazioni in cui egrave necessaria ogni possibile combinazione tra i tuples delle due relazioni Altre forme di concatenamento dette concatenamento naturale sono rappresentate dal join in cui un tuple puograve essere escluso dalla relazione risultante se non soddisferagrave le condizioni poste Uno dei problemi dei concatenamenti naturali consiste nella perdita di informazioni dato che la relazione risultante non contiene tutti i tuples I concatenamenti che presentano questo tipo di rischio si dicono concatenamenti (naturali) interni mentre vengono chiamati concatenamenti (naturali) esterni quelli in cui la perdita di informazioni egrave impossibile Questi operano come i concatenamenti naturali interni ma la relazione risultante potragrave includere anche i tuples senza corrispondenze i valori mancanti saranno sostituiti con valori nulli- S Misbah Deen Database concetti teorici ed applicativi FrancoAngeli
126
R
Capitolo terzo Lo schema logico secondo il modello relazionale
Si costruisce cioegrave con il prodotto cartesiano una tabella con lo schema
R(A1A2An B1B2Bk) le cui tuples sono formate per primi n elementi
di una tupla di R1 e per i restanti k elementi da una tuple di R29 R1 R2
Riga R1-1 Riga R1-2 Riga R1-3 Riga R1-n
Riga R2-1 Riga R2-2 Riga R1-k
Riga R1-1 Riga R2-1 Riga R1-1 Riga R2-2 Riga R1-1 Riga R1-1 Riga R1-k Riga R1-2 Riga R2-1 Riga R1-2 Riga R2-2 Riga R1-2 Riga R1-2 Riga R1-k Riga R1-3 Riga R2-1 Riga R1-3 Riga R2-2 Riga R1-3 Riga R1-3 Riga R1-k Riga R1-n Riga R2-1 Riga R1-n Riga R2-2 Riga R1-n Riga R1-n Riga R1-k
Figura 34 Relazione prodotto cartesiano
3514 Differenza
La differenza tra relazione R1 e R2 indicata con R=R1 R2 (R=R1- R2) egrave
lrsquoinsieme di tutti i tuples o righe appartenenti ad R1 ma non a R210 R1 R2 R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A12 A13 A14
C11 C12 C13 C14
E11 E12 E13 E14
B11 B12 B13 B14
D11 D12 D13 D14
Figura 35 Relazione differenza
9 ldquoIl prodotto cartesiano di due relazioni egrave la relazione che si ottiene concatenando ciascuna tuple della R1 con tutte le tuples della R2rdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Il grado del prodotto cartesiano egrave la somma dei gradi di R1 ed R2 La cardinalitagrave del prodotto cartesiano egrave il prodotto della cardinalitagrave di R1 ed R2 10 ldquoDati due insiemi I1 e I2 diciamo differenza I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad I1 che non appartengono a I2rdquo V Belski Dati e basi di dati Il modello relazionale FrancoAngeli
127
Capitolo terzo Lo schema logico secondo il modello relazionale
352 Operazioni dellrsquoalgebra relazionale
3521 Selezione
Data relazione R1 ed un predicato P semplice o composto che opera sugli attributi
di R1 la selezione di R1 su P egrave una relazione R le cui tuples sono tutte le tuples di
R1 che soddisfano P11
R1 R
A11 A12 A13 A14
C11 C12 C13 C14
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
Figura 36 Selezione di R1 su P
Un predicato egrave una condizione imposta sui valori di uno o piugrave attributi e puograve
essere semplice oppure composto Ersquo semplice quando esprime una relazione
del tipo
[attributo] [operatore di confronto] [attributo]
Gli operatori di confronto sono rappresentati da = (diverso) lt gt lt= gt=
Ersquo composto se egrave costituito da due o piugrave predicati collegati fra loro tramite
operatori booleani AND OR NOT Lrsquooperazione di selezione sceglie i tuples
di una relazione in cui il predicato risulta essere vero mentre le colonne
restano le stesse Ci si puograve chiedere quando un predicato composto da piugrave
predicati egrave vero e quindi quando verranno prelevate delle tuples Per questo
possono essere riportate le tavole di veritagrave di Boole
11 Lrsquooperatore di selezione egrave un filtro che sceglie alcune righe quelle che soddisfano una certa condizione Select R where p Lrsquooperatore di selezione crea una nuova relazione che egrave un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale Le righe scelte sono quelle risulta vera la proposizione p - Nazzini Sanges Vaccaro Introduzione ai database relazionali
128
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Effetto annullamento La cancellazione o lrsquoaggiornamento di un valore della
chiave primaria provoca un annullamento (Null) dei corrispondenti valori
presenti nelle chiavi secondarie delle tabelle collegate da chiave esterna
Bencheacute il modello relazionale tramite normalizzazione crea sia lrsquointegritagrave di
entitagrave sia lrsquontegritagrave di riferimento spetteragrave al RDBMS (Relational DBMS)
mantenere lrsquointegritagrave durante il procedimento di inserimento dei dati
In questo i diversi Rdbms differiscono molto applicando le tecniche piugrave
disparate
35 Operazioni relazionali
Lrsquoalgebra relazionale basata sulla teoria degli insiemi offre una tecnica di
estrazione dei dati molto efficace in un database relazionale Per rendere
possibile la manipolazione dei dati utilizza degli operatori che trasformano
una o piugrave relazioni in una nuova relazione Possono essere individuate due
categorie di operazioni
1 operazioni insiemistiche cioegrave si tratta di operazioni dellrsquoalgebra degli
insiemi applicate alla entitagrave relazione Le piugrave diffuse in ambito relazionale
sono
unione
intersezione
prodotto (catesiano)
differenza
2 operazioni relazionali si tratta di operazioni che sono caratteristiche solo
dellrsquoalgebra relazionale e non dellrsquoalgebra degli insiemi Le operazioni
piugrave diffuse sono
selezione
proiezione
congiunzione (combinazione)
divisione
124
K21 K22 K23
Capitolo terzo Lo schema logico secondo il modello relazionale
351 Operazioni insiemistiche
3511 Unione
Lrsquounione della relazione R1(A1) con la relazione R2(A2) indicata con R=R1
R2 egrave lrsquoinsieme di tutti i tuples (righe) senza alcuna ripetizione5 R1 R2
A11 A12 A13 B11 B12 B13 C11 C12 C13
K11 K12 K13 K21 K22 K23
R
Figura 32 Relazione di unione
Occorre perograve che vengano soddisfatte queste condizioni
1 le due tabelle per essere unificabili devono essere compatibili6 cioegrave
devono avere egual grado ( stesso numero di colonne)
la k-esima colonna delle tabella R1 deve essere definita sugli stessi
domini e quindi essere compatibile con la corrispondente colonna
della tabella R2 ( es entrambe numeriche)
2 se esistono due righe uguali convenzionalmente ne viene indicata una
sola
A11 A12 A13 B11 B12 B13
C11 C12 C13 K11 K12 K13
5 Come si vede questa definizione assomiglia molto a quella della unione di due insiemi Per cui secondo quanto afferma Belski in Dati e basi di dati ldquodati due insiemi I1 e I2 diciamo lrsquounione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad almeno uno degli insiemi assegnatirdquo Valgono le proprietagrave commutativa I1 I2= I2 I1 associativa I1 (I2 I3)= (I1 I2) I3 distributiva I1 (I2 I3)= (I1 I2) ( I1 I2)
6 ldquoDue relazioni si dicono compatibili se sono dello stesso grado e definite sugli stessi dominirdquo rdquo Lrsquounione di due relazioni compatibili egrave costituita da tutte quelle tuples che appartengono ad almeno una delle due relazionirdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Questa proprietagrave vale sia per lrsquounione ma anche per lrsquointersezione e la differenza
125
R
Capitolo terzo Lo schema logico secondo il modello relazionale
3512 Intersezione
Lrsquointersezione della relazione R1(A1) e R2(A2) indicata con R=R1 R2 egrave
lrsquoinsieme di tutti i tuples o righe appartenenti sia ad R1(A1)che a R2(A2)7
R1 R2
A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14
A11 A12 A13 A14 C11 C12 C13 C14 E11 E12 E13 E14
A11 A12 A13 A14 C11 C12 C13 C14
Figura 33 Relazione di intersezione
3513 Prodotto cartesiano
Il prodotto cartesiano delle relazioni R1 e R2 rispettivamente di grado n e k
e di cardinalitagrave m1 e m2 egrave la relazione indicata con R=R1 R2 che ha grado
n+k e cardinalitagrave m1 m2 composta dalle tuple che si ottengono
concatenando ogni tuple di R1 con tutte le tuple di R28
Per concatenare due tuples r1 (a1 a2 an) e r2 (b1 b2 bk) si costruisce
una tupla che ha gli attributi di entrambe
r1 conc r2= (a1 a2 an b1 b2 bk)
7 ldquoDati due insiemi I1 e I2 diciamo intersezione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono sia ad I1 che ad I2rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli 8 ldquoDati due insiemi I1 e I2 diciamo prodotto cartesiano I1 I2 lrsquoinsieme costituito dalle coppie ordinate (i1i2) con i1 I1 e i2 I2 rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli Il prodotto cartesiano puograve essere considerato come la forma generica di concatenamento in cui ogni tuple di R1 viene concatenato con ogni tuple di R2 Il prodotto cartesiano egrave utile nelle interrogazioni in cui egrave necessaria ogni possibile combinazione tra i tuples delle due relazioni Altre forme di concatenamento dette concatenamento naturale sono rappresentate dal join in cui un tuple puograve essere escluso dalla relazione risultante se non soddisferagrave le condizioni poste Uno dei problemi dei concatenamenti naturali consiste nella perdita di informazioni dato che la relazione risultante non contiene tutti i tuples I concatenamenti che presentano questo tipo di rischio si dicono concatenamenti (naturali) interni mentre vengono chiamati concatenamenti (naturali) esterni quelli in cui la perdita di informazioni egrave impossibile Questi operano come i concatenamenti naturali interni ma la relazione risultante potragrave includere anche i tuples senza corrispondenze i valori mancanti saranno sostituiti con valori nulli- S Misbah Deen Database concetti teorici ed applicativi FrancoAngeli
126
R
Capitolo terzo Lo schema logico secondo il modello relazionale
Si costruisce cioegrave con il prodotto cartesiano una tabella con lo schema
R(A1A2An B1B2Bk) le cui tuples sono formate per primi n elementi
di una tupla di R1 e per i restanti k elementi da una tuple di R29 R1 R2
Riga R1-1 Riga R1-2 Riga R1-3 Riga R1-n
Riga R2-1 Riga R2-2 Riga R1-k
Riga R1-1 Riga R2-1 Riga R1-1 Riga R2-2 Riga R1-1 Riga R1-1 Riga R1-k Riga R1-2 Riga R2-1 Riga R1-2 Riga R2-2 Riga R1-2 Riga R1-2 Riga R1-k Riga R1-3 Riga R2-1 Riga R1-3 Riga R2-2 Riga R1-3 Riga R1-3 Riga R1-k Riga R1-n Riga R2-1 Riga R1-n Riga R2-2 Riga R1-n Riga R1-n Riga R1-k
Figura 34 Relazione prodotto cartesiano
3514 Differenza
La differenza tra relazione R1 e R2 indicata con R=R1 R2 (R=R1- R2) egrave
lrsquoinsieme di tutti i tuples o righe appartenenti ad R1 ma non a R210 R1 R2 R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A12 A13 A14
C11 C12 C13 C14
E11 E12 E13 E14
B11 B12 B13 B14
D11 D12 D13 D14
Figura 35 Relazione differenza
9 ldquoIl prodotto cartesiano di due relazioni egrave la relazione che si ottiene concatenando ciascuna tuple della R1 con tutte le tuples della R2rdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Il grado del prodotto cartesiano egrave la somma dei gradi di R1 ed R2 La cardinalitagrave del prodotto cartesiano egrave il prodotto della cardinalitagrave di R1 ed R2 10 ldquoDati due insiemi I1 e I2 diciamo differenza I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad I1 che non appartengono a I2rdquo V Belski Dati e basi di dati Il modello relazionale FrancoAngeli
127
Capitolo terzo Lo schema logico secondo il modello relazionale
352 Operazioni dellrsquoalgebra relazionale
3521 Selezione
Data relazione R1 ed un predicato P semplice o composto che opera sugli attributi
di R1 la selezione di R1 su P egrave una relazione R le cui tuples sono tutte le tuples di
R1 che soddisfano P11
R1 R
A11 A12 A13 A14
C11 C12 C13 C14
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
Figura 36 Selezione di R1 su P
Un predicato egrave una condizione imposta sui valori di uno o piugrave attributi e puograve
essere semplice oppure composto Ersquo semplice quando esprime una relazione
del tipo
[attributo] [operatore di confronto] [attributo]
Gli operatori di confronto sono rappresentati da = (diverso) lt gt lt= gt=
Ersquo composto se egrave costituito da due o piugrave predicati collegati fra loro tramite
operatori booleani AND OR NOT Lrsquooperazione di selezione sceglie i tuples
di una relazione in cui il predicato risulta essere vero mentre le colonne
restano le stesse Ci si puograve chiedere quando un predicato composto da piugrave
predicati egrave vero e quindi quando verranno prelevate delle tuples Per questo
possono essere riportate le tavole di veritagrave di Boole
11 Lrsquooperatore di selezione egrave un filtro che sceglie alcune righe quelle che soddisfano una certa condizione Select R where p Lrsquooperatore di selezione crea una nuova relazione che egrave un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale Le righe scelte sono quelle risulta vera la proposizione p - Nazzini Sanges Vaccaro Introduzione ai database relazionali
128
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
K21 K22 K23
Capitolo terzo Lo schema logico secondo il modello relazionale
351 Operazioni insiemistiche
3511 Unione
Lrsquounione della relazione R1(A1) con la relazione R2(A2) indicata con R=R1
R2 egrave lrsquoinsieme di tutti i tuples (righe) senza alcuna ripetizione5 R1 R2
A11 A12 A13 B11 B12 B13 C11 C12 C13
K11 K12 K13 K21 K22 K23
R
Figura 32 Relazione di unione
Occorre perograve che vengano soddisfatte queste condizioni
1 le due tabelle per essere unificabili devono essere compatibili6 cioegrave
devono avere egual grado ( stesso numero di colonne)
la k-esima colonna delle tabella R1 deve essere definita sugli stessi
domini e quindi essere compatibile con la corrispondente colonna
della tabella R2 ( es entrambe numeriche)
2 se esistono due righe uguali convenzionalmente ne viene indicata una
sola
A11 A12 A13 B11 B12 B13
C11 C12 C13 K11 K12 K13
5 Come si vede questa definizione assomiglia molto a quella della unione di due insiemi Per cui secondo quanto afferma Belski in Dati e basi di dati ldquodati due insiemi I1 e I2 diciamo lrsquounione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad almeno uno degli insiemi assegnatirdquo Valgono le proprietagrave commutativa I1 I2= I2 I1 associativa I1 (I2 I3)= (I1 I2) I3 distributiva I1 (I2 I3)= (I1 I2) ( I1 I2)
6 ldquoDue relazioni si dicono compatibili se sono dello stesso grado e definite sugli stessi dominirdquo rdquo Lrsquounione di due relazioni compatibili egrave costituita da tutte quelle tuples che appartengono ad almeno una delle due relazionirdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Questa proprietagrave vale sia per lrsquounione ma anche per lrsquointersezione e la differenza
125
R
Capitolo terzo Lo schema logico secondo il modello relazionale
3512 Intersezione
Lrsquointersezione della relazione R1(A1) e R2(A2) indicata con R=R1 R2 egrave
lrsquoinsieme di tutti i tuples o righe appartenenti sia ad R1(A1)che a R2(A2)7
R1 R2
A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14
A11 A12 A13 A14 C11 C12 C13 C14 E11 E12 E13 E14
A11 A12 A13 A14 C11 C12 C13 C14
Figura 33 Relazione di intersezione
3513 Prodotto cartesiano
Il prodotto cartesiano delle relazioni R1 e R2 rispettivamente di grado n e k
e di cardinalitagrave m1 e m2 egrave la relazione indicata con R=R1 R2 che ha grado
n+k e cardinalitagrave m1 m2 composta dalle tuple che si ottengono
concatenando ogni tuple di R1 con tutte le tuple di R28
Per concatenare due tuples r1 (a1 a2 an) e r2 (b1 b2 bk) si costruisce
una tupla che ha gli attributi di entrambe
r1 conc r2= (a1 a2 an b1 b2 bk)
7 ldquoDati due insiemi I1 e I2 diciamo intersezione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono sia ad I1 che ad I2rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli 8 ldquoDati due insiemi I1 e I2 diciamo prodotto cartesiano I1 I2 lrsquoinsieme costituito dalle coppie ordinate (i1i2) con i1 I1 e i2 I2 rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli Il prodotto cartesiano puograve essere considerato come la forma generica di concatenamento in cui ogni tuple di R1 viene concatenato con ogni tuple di R2 Il prodotto cartesiano egrave utile nelle interrogazioni in cui egrave necessaria ogni possibile combinazione tra i tuples delle due relazioni Altre forme di concatenamento dette concatenamento naturale sono rappresentate dal join in cui un tuple puograve essere escluso dalla relazione risultante se non soddisferagrave le condizioni poste Uno dei problemi dei concatenamenti naturali consiste nella perdita di informazioni dato che la relazione risultante non contiene tutti i tuples I concatenamenti che presentano questo tipo di rischio si dicono concatenamenti (naturali) interni mentre vengono chiamati concatenamenti (naturali) esterni quelli in cui la perdita di informazioni egrave impossibile Questi operano come i concatenamenti naturali interni ma la relazione risultante potragrave includere anche i tuples senza corrispondenze i valori mancanti saranno sostituiti con valori nulli- S Misbah Deen Database concetti teorici ed applicativi FrancoAngeli
126
R
Capitolo terzo Lo schema logico secondo il modello relazionale
Si costruisce cioegrave con il prodotto cartesiano una tabella con lo schema
R(A1A2An B1B2Bk) le cui tuples sono formate per primi n elementi
di una tupla di R1 e per i restanti k elementi da una tuple di R29 R1 R2
Riga R1-1 Riga R1-2 Riga R1-3 Riga R1-n
Riga R2-1 Riga R2-2 Riga R1-k
Riga R1-1 Riga R2-1 Riga R1-1 Riga R2-2 Riga R1-1 Riga R1-1 Riga R1-k Riga R1-2 Riga R2-1 Riga R1-2 Riga R2-2 Riga R1-2 Riga R1-2 Riga R1-k Riga R1-3 Riga R2-1 Riga R1-3 Riga R2-2 Riga R1-3 Riga R1-3 Riga R1-k Riga R1-n Riga R2-1 Riga R1-n Riga R2-2 Riga R1-n Riga R1-n Riga R1-k
Figura 34 Relazione prodotto cartesiano
3514 Differenza
La differenza tra relazione R1 e R2 indicata con R=R1 R2 (R=R1- R2) egrave
lrsquoinsieme di tutti i tuples o righe appartenenti ad R1 ma non a R210 R1 R2 R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A12 A13 A14
C11 C12 C13 C14
E11 E12 E13 E14
B11 B12 B13 B14
D11 D12 D13 D14
Figura 35 Relazione differenza
9 ldquoIl prodotto cartesiano di due relazioni egrave la relazione che si ottiene concatenando ciascuna tuple della R1 con tutte le tuples della R2rdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Il grado del prodotto cartesiano egrave la somma dei gradi di R1 ed R2 La cardinalitagrave del prodotto cartesiano egrave il prodotto della cardinalitagrave di R1 ed R2 10 ldquoDati due insiemi I1 e I2 diciamo differenza I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad I1 che non appartengono a I2rdquo V Belski Dati e basi di dati Il modello relazionale FrancoAngeli
127
Capitolo terzo Lo schema logico secondo il modello relazionale
352 Operazioni dellrsquoalgebra relazionale
3521 Selezione
Data relazione R1 ed un predicato P semplice o composto che opera sugli attributi
di R1 la selezione di R1 su P egrave una relazione R le cui tuples sono tutte le tuples di
R1 che soddisfano P11
R1 R
A11 A12 A13 A14
C11 C12 C13 C14
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
Figura 36 Selezione di R1 su P
Un predicato egrave una condizione imposta sui valori di uno o piugrave attributi e puograve
essere semplice oppure composto Ersquo semplice quando esprime una relazione
del tipo
[attributo] [operatore di confronto] [attributo]
Gli operatori di confronto sono rappresentati da = (diverso) lt gt lt= gt=
Ersquo composto se egrave costituito da due o piugrave predicati collegati fra loro tramite
operatori booleani AND OR NOT Lrsquooperazione di selezione sceglie i tuples
di una relazione in cui il predicato risulta essere vero mentre le colonne
restano le stesse Ci si puograve chiedere quando un predicato composto da piugrave
predicati egrave vero e quindi quando verranno prelevate delle tuples Per questo
possono essere riportate le tavole di veritagrave di Boole
11 Lrsquooperatore di selezione egrave un filtro che sceglie alcune righe quelle che soddisfano una certa condizione Select R where p Lrsquooperatore di selezione crea una nuova relazione che egrave un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale Le righe scelte sono quelle risulta vera la proposizione p - Nazzini Sanges Vaccaro Introduzione ai database relazionali
128
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
R
Capitolo terzo Lo schema logico secondo il modello relazionale
3512 Intersezione
Lrsquointersezione della relazione R1(A1) e R2(A2) indicata con R=R1 R2 egrave
lrsquoinsieme di tutti i tuples o righe appartenenti sia ad R1(A1)che a R2(A2)7
R1 R2
A11 A12 A13 A14 B11 B12 B13 B14 C11 C12 C13 C14 D11 D12 D13 D14
A11 A12 A13 A14 C11 C12 C13 C14 E11 E12 E13 E14
A11 A12 A13 A14 C11 C12 C13 C14
Figura 33 Relazione di intersezione
3513 Prodotto cartesiano
Il prodotto cartesiano delle relazioni R1 e R2 rispettivamente di grado n e k
e di cardinalitagrave m1 e m2 egrave la relazione indicata con R=R1 R2 che ha grado
n+k e cardinalitagrave m1 m2 composta dalle tuple che si ottengono
concatenando ogni tuple di R1 con tutte le tuple di R28
Per concatenare due tuples r1 (a1 a2 an) e r2 (b1 b2 bk) si costruisce
una tupla che ha gli attributi di entrambe
r1 conc r2= (a1 a2 an b1 b2 bk)
7 ldquoDati due insiemi I1 e I2 diciamo intersezione I1 I2 lrsquoinsieme costituito dagli elementi che appartengono sia ad I1 che ad I2rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli 8 ldquoDati due insiemi I1 e I2 diciamo prodotto cartesiano I1 I2 lrsquoinsieme costituito dalle coppie ordinate (i1i2) con i1 I1 e i2 I2 rdquo V Belski Dati e basi di dati il modello relazionale FrancoAngeli Il prodotto cartesiano puograve essere considerato come la forma generica di concatenamento in cui ogni tuple di R1 viene concatenato con ogni tuple di R2 Il prodotto cartesiano egrave utile nelle interrogazioni in cui egrave necessaria ogni possibile combinazione tra i tuples delle due relazioni Altre forme di concatenamento dette concatenamento naturale sono rappresentate dal join in cui un tuple puograve essere escluso dalla relazione risultante se non soddisferagrave le condizioni poste Uno dei problemi dei concatenamenti naturali consiste nella perdita di informazioni dato che la relazione risultante non contiene tutti i tuples I concatenamenti che presentano questo tipo di rischio si dicono concatenamenti (naturali) interni mentre vengono chiamati concatenamenti (naturali) esterni quelli in cui la perdita di informazioni egrave impossibile Questi operano come i concatenamenti naturali interni ma la relazione risultante potragrave includere anche i tuples senza corrispondenze i valori mancanti saranno sostituiti con valori nulli- S Misbah Deen Database concetti teorici ed applicativi FrancoAngeli
126
R
Capitolo terzo Lo schema logico secondo il modello relazionale
Si costruisce cioegrave con il prodotto cartesiano una tabella con lo schema
R(A1A2An B1B2Bk) le cui tuples sono formate per primi n elementi
di una tupla di R1 e per i restanti k elementi da una tuple di R29 R1 R2
Riga R1-1 Riga R1-2 Riga R1-3 Riga R1-n
Riga R2-1 Riga R2-2 Riga R1-k
Riga R1-1 Riga R2-1 Riga R1-1 Riga R2-2 Riga R1-1 Riga R1-1 Riga R1-k Riga R1-2 Riga R2-1 Riga R1-2 Riga R2-2 Riga R1-2 Riga R1-2 Riga R1-k Riga R1-3 Riga R2-1 Riga R1-3 Riga R2-2 Riga R1-3 Riga R1-3 Riga R1-k Riga R1-n Riga R2-1 Riga R1-n Riga R2-2 Riga R1-n Riga R1-n Riga R1-k
Figura 34 Relazione prodotto cartesiano
3514 Differenza
La differenza tra relazione R1 e R2 indicata con R=R1 R2 (R=R1- R2) egrave
lrsquoinsieme di tutti i tuples o righe appartenenti ad R1 ma non a R210 R1 R2 R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A12 A13 A14
C11 C12 C13 C14
E11 E12 E13 E14
B11 B12 B13 B14
D11 D12 D13 D14
Figura 35 Relazione differenza
9 ldquoIl prodotto cartesiano di due relazioni egrave la relazione che si ottiene concatenando ciascuna tuple della R1 con tutte le tuples della R2rdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Il grado del prodotto cartesiano egrave la somma dei gradi di R1 ed R2 La cardinalitagrave del prodotto cartesiano egrave il prodotto della cardinalitagrave di R1 ed R2 10 ldquoDati due insiemi I1 e I2 diciamo differenza I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad I1 che non appartengono a I2rdquo V Belski Dati e basi di dati Il modello relazionale FrancoAngeli
127
Capitolo terzo Lo schema logico secondo il modello relazionale
352 Operazioni dellrsquoalgebra relazionale
3521 Selezione
Data relazione R1 ed un predicato P semplice o composto che opera sugli attributi
di R1 la selezione di R1 su P egrave una relazione R le cui tuples sono tutte le tuples di
R1 che soddisfano P11
R1 R
A11 A12 A13 A14
C11 C12 C13 C14
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
Figura 36 Selezione di R1 su P
Un predicato egrave una condizione imposta sui valori di uno o piugrave attributi e puograve
essere semplice oppure composto Ersquo semplice quando esprime una relazione
del tipo
[attributo] [operatore di confronto] [attributo]
Gli operatori di confronto sono rappresentati da = (diverso) lt gt lt= gt=
Ersquo composto se egrave costituito da due o piugrave predicati collegati fra loro tramite
operatori booleani AND OR NOT Lrsquooperazione di selezione sceglie i tuples
di una relazione in cui il predicato risulta essere vero mentre le colonne
restano le stesse Ci si puograve chiedere quando un predicato composto da piugrave
predicati egrave vero e quindi quando verranno prelevate delle tuples Per questo
possono essere riportate le tavole di veritagrave di Boole
11 Lrsquooperatore di selezione egrave un filtro che sceglie alcune righe quelle che soddisfano una certa condizione Select R where p Lrsquooperatore di selezione crea una nuova relazione che egrave un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale Le righe scelte sono quelle risulta vera la proposizione p - Nazzini Sanges Vaccaro Introduzione ai database relazionali
128
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
R
Capitolo terzo Lo schema logico secondo il modello relazionale
Si costruisce cioegrave con il prodotto cartesiano una tabella con lo schema
R(A1A2An B1B2Bk) le cui tuples sono formate per primi n elementi
di una tupla di R1 e per i restanti k elementi da una tuple di R29 R1 R2
Riga R1-1 Riga R1-2 Riga R1-3 Riga R1-n
Riga R2-1 Riga R2-2 Riga R1-k
Riga R1-1 Riga R2-1 Riga R1-1 Riga R2-2 Riga R1-1 Riga R1-1 Riga R1-k Riga R1-2 Riga R2-1 Riga R1-2 Riga R2-2 Riga R1-2 Riga R1-2 Riga R1-k Riga R1-3 Riga R2-1 Riga R1-3 Riga R2-2 Riga R1-3 Riga R1-3 Riga R1-k Riga R1-n Riga R2-1 Riga R1-n Riga R2-2 Riga R1-n Riga R1-n Riga R1-k
Figura 34 Relazione prodotto cartesiano
3514 Differenza
La differenza tra relazione R1 e R2 indicata con R=R1 R2 (R=R1- R2) egrave
lrsquoinsieme di tutti i tuples o righe appartenenti ad R1 ma non a R210 R1 R2 R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A12 A13 A14
C11 C12 C13 C14
E11 E12 E13 E14
B11 B12 B13 B14
D11 D12 D13 D14
Figura 35 Relazione differenza
9 ldquoIl prodotto cartesiano di due relazioni egrave la relazione che si ottiene concatenando ciascuna tuple della R1 con tutte le tuples della R2rdquo Nazzini Sanges Vaccaro Introduzione ai database relazionali Il grado del prodotto cartesiano egrave la somma dei gradi di R1 ed R2 La cardinalitagrave del prodotto cartesiano egrave il prodotto della cardinalitagrave di R1 ed R2 10 ldquoDati due insiemi I1 e I2 diciamo differenza I1 I2 lrsquoinsieme costituito dagli elementi che appartengono ad I1 che non appartengono a I2rdquo V Belski Dati e basi di dati Il modello relazionale FrancoAngeli
127
Capitolo terzo Lo schema logico secondo il modello relazionale
352 Operazioni dellrsquoalgebra relazionale
3521 Selezione
Data relazione R1 ed un predicato P semplice o composto che opera sugli attributi
di R1 la selezione di R1 su P egrave una relazione R le cui tuples sono tutte le tuples di
R1 che soddisfano P11
R1 R
A11 A12 A13 A14
C11 C12 C13 C14
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
Figura 36 Selezione di R1 su P
Un predicato egrave una condizione imposta sui valori di uno o piugrave attributi e puograve
essere semplice oppure composto Ersquo semplice quando esprime una relazione
del tipo
[attributo] [operatore di confronto] [attributo]
Gli operatori di confronto sono rappresentati da = (diverso) lt gt lt= gt=
Ersquo composto se egrave costituito da due o piugrave predicati collegati fra loro tramite
operatori booleani AND OR NOT Lrsquooperazione di selezione sceglie i tuples
di una relazione in cui il predicato risulta essere vero mentre le colonne
restano le stesse Ci si puograve chiedere quando un predicato composto da piugrave
predicati egrave vero e quindi quando verranno prelevate delle tuples Per questo
possono essere riportate le tavole di veritagrave di Boole
11 Lrsquooperatore di selezione egrave un filtro che sceglie alcune righe quelle che soddisfano una certa condizione Select R where p Lrsquooperatore di selezione crea una nuova relazione che egrave un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale Le righe scelte sono quelle risulta vera la proposizione p - Nazzini Sanges Vaccaro Introduzione ai database relazionali
128
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
352 Operazioni dellrsquoalgebra relazionale
3521 Selezione
Data relazione R1 ed un predicato P semplice o composto che opera sugli attributi
di R1 la selezione di R1 su P egrave una relazione R le cui tuples sono tutte le tuples di
R1 che soddisfano P11
R1 R
A11 A12 A13 A14
C11 C12 C13 C14
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
Figura 36 Selezione di R1 su P
Un predicato egrave una condizione imposta sui valori di uno o piugrave attributi e puograve
essere semplice oppure composto Ersquo semplice quando esprime una relazione
del tipo
[attributo] [operatore di confronto] [attributo]
Gli operatori di confronto sono rappresentati da = (diverso) lt gt lt= gt=
Ersquo composto se egrave costituito da due o piugrave predicati collegati fra loro tramite
operatori booleani AND OR NOT Lrsquooperazione di selezione sceglie i tuples
di una relazione in cui il predicato risulta essere vero mentre le colonne
restano le stesse Ci si puograve chiedere quando un predicato composto da piugrave
predicati egrave vero e quindi quando verranno prelevate delle tuples Per questo
possono essere riportate le tavole di veritagrave di Boole
11 Lrsquooperatore di selezione egrave un filtro che sceglie alcune righe quelle che soddisfano una certa condizione Select R where p Lrsquooperatore di selezione crea una nuova relazione che egrave un sottoinsieme della relazione orginaria detto sottoinsieme orizzontale Le righe scelte sono quelle risulta vera la proposizione p - Nazzini Sanges Vaccaro Introduzione ai database relazionali
128
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
P1 P2 P1 OR P2 (P1+P2)
P1 AND P2 (P1P2)
v v v v v f v f v null v null f v v f f f f f f null null f null v v null null f null f null null null null
P NOT P V f f v
null null
Figura 37 Tavole di veritagrave degli operatori booleani
3522 Proiezione
Data una relazione R1 di grado n ed un sottoinsieme B di k suoi attributi (kltn) la
proiezione di R su B egrave la relazione R di grado k che si ottiene da R1 ignorando le
colonne degli attributi non presenti in B ed escludendo le eventuali tuple duplicate12
Sono tuple duplicate quelle che hanno chiavi uguali13 La relazione R ha la
stessa cardinalitagrave della relazione R1 Lrsquooperazione di proiezione si indica con
la notazione
B ( R )
R1 B R
A11 A12 A13 A14
B11 B12 B13 B14
C11 C12 C13 C14
D11 D12 D13 D14
A11 A13
B11 B13
C11 C13
D11 D13
Figura 38 Proiezione di R su B
12 V Belski Dati e base di dati il modello relazionale FrancoAngeli Lrsquooperatore di proiezione egrave un filtro che sceglie alcune colonne (quelle indicate nellrsquooperazione a mezzo di una lista di attributi ) con eliminazione di eventuali righe duplicate - Codd ldquoRelational completeness of data base sublanguagesrdquo 13 In seguito alle operazioni relazionali dovremmo eliminare i tuples duplicati (non consentiti) dalla relazione risultante Per questo viene impiegata la proiezione - S Misbah Deen Database Concetti teorici ed applicativi FrancoAngeli
129
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Spesso i due operatori relazionali di selezione e proiezione sono applicati
insieme alla stessa relazione R1 per cui il risultato che si otterragrave saragrave quello di
avere una relazione R risultato delle operazioni selezione e proiezione in cui
le tuple cioegrave le righe costituiscono un sottoinsieme delle tuples della
relazione R1 e gli attributi cioegrave le colone costituiscono un sottoinsieme degli
attributi di R1 La sequenza logica delle due operazioni prevede lrsquoesecuzione
dellrsquooperazione di selezione e successivamente quella di proiezione
3523 Combinazione (giunzione join)
Date due relazioni R1 ed R2 ed un predicato semplice P( gtltlt= ecc) che lega uno
degli attributi di R1 con uno degli attributi di R2 con uno degli operatori booleani
la combinazione fra R1 ed R2 su P egrave la relazione R composta da tutte le tuple del
prodotto cartesiano R1 X R2 che soddisfano P14
La join produce una nuova relazione mediante il procedimento seguente
1 viene effettuato un prodotto cartesiano fra le due relazioni
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
Se lrsquooperatore di confronto egrave lrsquooperatore di eguaglianza = si parla allora di
giunzione naturale Join Naturale
Date due relazioni R1 (di grado n) ed R2 (di grado k) nelle quali uno degli attributi
di R1 coincide con uno degli attributi di R2 Il join naturale egrave la relazione r di
grado (n+k-1)che contiene tutte le tuple ottenute concatenando le tuple di r1 e di r2
che presentano valori identici per lrsquoattributo comune15
Il join naturale determina una relazione tramite il seguente procedimento
1 viene effettuato un prodotto cartesiano fra le due relazioni
14rdquoV Belski Dati e base di dati il modello relazionale FrancoAngeli 15 V Belski Dati e base di dati il modello relazionale FrancoAngeli
130
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
2 sulla relazione cosigrave creata viene effettuata una operazione di selezione
delle tuple in cui risulta vera la condizione posta dal predicato e cioegrave che
gli attributi sottoposti allrsquooperatore di confronto siano uguali Se questa
condizione non si verifica per nessun attributo allora lrsquooperazione di
giunzione si riduce a quella di un prodotto cartesiano
3 vengono ridenominati gli attributi comuni con uno stesso nome in modo
tale che compaiono una sola volta
3524 Divisione
Data una relazione R1 (dividendo) di grado n e la relazione R2 (divisore) di grado k
(kltn) in cui tutti gli attributi di R2 sono anche gli attributi di R1 la divisione di R1
con R2 che si indica conR=R1R2 egrave la relazione R le cui colonne sono tutte colonne
di R1 che non compaiono in R2 e le cui tuple sono costituite da tutte le tuple che
concatenate con tutte le tuple di R2 danno luogo a tuple tutte presenti nella
relazione R116
Si puograve pensare a R X R2 come ad un prodotto cartesiano sottoinsieme di R1
per cui tutte le tuple di questo prodotto cartesiano appartengono a R1 ma R1
ha altre tuple
R1 R2
A11 B11
A11 B12
A11 B13
M11 B11
N11 B12
B11
B13
R A11
Figura 39 Operazione di divisione
16 V Belski Dati e base di dati il modello relazionale FrancoAngeli
131
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
353 Esempi
Presidenti Nome Partito Stato Eisenhower Repubblicano Texas Kennedy Democratico Mass Johnson Democratico Texas Nixon Repubblicano California
1 Selezione
R1 = (select Presidenti where stato = ldquoTexasrdquo)
R1 Nome Partito Stato Johnson Democratico Texas Eisenhower Repubblicano Texas
R2 = (select Presidenti where Partito = ldquoRepubblicanordquo)
R2 Nome Partito Stato Eisenhower Repubblicano Texas Nixon Repubblicano California
2 Proiezione
R3 = (project Presidenti over Stato Nome)
R3 Nome Stato Eisenhower Texas Kennedy Mass Johnson Texas Nixon California
3 Unione
R4= R1 R2
R4 Nome Eisenhower Johnson Nixon
Partito Repubblicano Democratico Texas Repubblicano California
132
Stato Texas
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
133
Capitolo terzo Lo schema logico secondo il modello relazionale
4 Intersezione
R5 = R1 R1
R5 Nome Partito Stato Eisenhower Repubblicano Texas
5 Differenza
R6 = R1-R2
6 Prodotto cartesiano
R6 Nome Partito Stato Johnson Democratico Texas
Studenti Nro Studente Nome 1 Paolo 2 Claudio 3 Nicola
Corsi Cod corso A B C
Descrizione Economia Prog e Contr Diritto trib
Studenti X Corsi Num Stud Nome Cod corso Descrizione 1 Paolo A Economia 1 Paolo B Prog e Contr 1 Paolo C Diritto trib 2 Claudio A Economia 2 Claudio B Prog e Contr 2 Claudio C Diritto trib 3 Nicola A Economia 3 Nicola B Prog e Contr 3 Nicola C Diritto trib
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
7 Join (naturale)
Corsi Cod corso A
Descrizione Economia
Durata Corsi Cod corso A
Durata 4
B Prog e Contr B 3 C Diritto trib C 5
R7 = corsi join p durata corsi
p = (Corsi cod corso = Curata corsi cod corso)
R7 = corsi cod corso = cod corso durata corsi
Corsi X Durata Corsi
Descrizione Cod corso Durata Cod corso
Economia A 4 A Economia A 3 B Economia A 5 C Prog e Contr B 4 A Prog e Contr B 3 B Prog e Contr B 5 C Diritto trib C 4 A Diritto trib C 3 B Diritto trib C 5 C
Prodotto cartesiano Corsi X Durata corsi
R7 Descrizione Cod corso Durata Cod corso Economia A 4 A Prog e Contr B 3 B Diritto trib C 5 C
Selezione Corsi Cod corsi = Durata corsi Cod corsi
Dopo una operazione di proiezione per eliminare la colonna corso avremo
R7 Cod corso Durata Descrizione A 4 Economia B 3 Prog e Contr C 5 Diritto trib
134
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
8 Divisione
Fornitori Cod For Art F1 A1 F1 A2 F1 A3 F2 A1 F2 A3 F3 A2 F3 A1 F4 A1 F4 A2 F4 A3 F4 A4
Rich Acquisto Art A1 A2 A3
Quali sono i fornitori in grado di soddisfare la richiesta di acquisto
Fornitori Rich Acq Cod For F1 F4
36 Normalizzazione
Lo schema definito dalla progettazione concettuale deve essere tradotto
attraverso il modello relazionale in uno ldquoschema migliorerdquo cioegrave in uno
schema depurato di gran parte delle anomalie di gestione che si possono
verificare La teoria delle basi di dati relazionali affronta questo tipo di
problemi con lrsquoobiettivo di (Albano)
definire quando due schemi sono equivalenti
definire i criteri di bontagrave degli schemi (che cosa vuol dire uno schema
migliore di un altro)
trovare metodi formalizzati per ottenere da uno schema un altro migliore
ed equivalente
135
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Nel primo caso si tradurragrave gli schemi ottenuti ad esempio con il modello ER
in tabelle17 mentre i problemi successivi hanno portato alla elaborazione
della teoria della normalizzazione con la definizione di forme normali per
schemi di relazione che eliminino il piugrave possibile i problemi di ridondanza e
le altre anomalie La normalizzazione egrave quindi un insieme di criteri di progettazione di un database
relazionale diretti a prevenire lrsquoinsorgere sia di anomalie nella rappresentazione dei
dati (inconsistenza dei dati) sia situazioni non volute Il principio della
normalizzazione come afferma Codd egrave che la base dei dati deve essere
progettata sulla base sella semantica dei dati ed in particolare seguendo
questo principio guida Ogni fatto deve essere rappresentato una ed una sola volta e nel
luogo appropriato
e cioegrave
in una relazione deve essere descritto un unico fatto
un fatto deve essere memorizzato una sola volta
Si consideri questa relazione Perdenti alle elezioni presidenziali
Anno Nome Voti Part ito
1956 Stevenson 73 dem 1960 Nixon 219 rep 1972 McGovern 17 dem 1964 Goldwoter 52 rep 1968 Humphrey 191 dem 1952 Stevenson 89 dem 1968 Wallace 46 ind
In questa relazione non viene rappresentato un unico fatto ma bensigrave sono
distinguibili due fatti
1 sono indicati i candidati perdenti alle elezioni USA
2 sono indicate alcune caratteristiche di tali uomini politici (il partito)
che sono indipendenti dallrsquoesito delle elezioni
Questa situazione crea alcuni problemi
17 Albano afferma che questo problema va sotto il nome di problema della rappresentazione ovvero quando e in che misura uno schema rappresenta un altro
136
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Anomalie nella eliminazione Se si cancella la riga relativa al 1960 si perdono
anche le informazioni relative al partito di Nixon il che potrebbe essere al
di lagrave dello scopo della cancellazione
Anomalie di modifica Poicheacute Stevenson appare piugrave volte se modifico il
partito di Stevenson lo dovrograve fare in tutte le tuples in cui compare
Stevenson
Anomalie di inserimento Non si puograve inserire il partito di Ford senza
conoscere lrsquoanno in cui ha perso le elezioni Questo percheacute nella relazione
non egrave rappresentato un unico fatto
Verranno individuati 5 livelli di normalizzazione (6 se si considera la BCNF
come un livello a se) di cui Cood ne ha elaborati tre mentre gli altri sono stati
elaborati da altri studiosi
361 Prima forma normale (1 NF )
Una relazione egrave in 1NF se e solo se tutti i domini sui quali egrave definita contengono
solo valori atomici cioegrave nessuno degli elementi dei domini egrave esso stesso un insieme
una lista o una relazione18
Gli attributi di una entitagrave possono essere di vario tipo semplici composti
multipli I RDBMS impongono che tutti gli attributi siano semplici e non
multipli mentre in un record descritto da un programma Cobol questo
poteva accadere La 1 NF elimina i dati ripetitivi consentendo cosigrave di
rappresentare le relazioni come ldquotabelle a due dimensionirdquo con dati
omogenei sulle colonne
Quindi le relazioni in prima forma normale presentano queste proprietagrave
Ogni elemento egrave atomico
le colonne sono tutte omogenee
tutte le righe sono distinte
lrsquoordine delle righe non egrave significativo
lrsquoordine delle colonne non egrave significativo
18 EF Codd Recent Investigations in relational Data Base system 137
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Esempio Tabella delle competizioni elettorali americane Non in forma normale
Elezioni Anno Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhowe
r Repubblican o
Stevenson
1972 Nixon Repubblican o
McGowern
1964 Johnson Democratico Goldwoter 1968 Nixon Repubblican
o Humphey Wallace
1992 Clinton Democratico Bush Perrot
Prima forma normale (1NF)
Elezioni Ann o
Vincitore Partito vincitore
Perdente
1960 Kennedy Democratico Nixon 1956 Eisenhower Repubblicano Stevenson 1972 Nixon Repubblicano McGowern 1964 Johnson Democratico Goldwoter 1968 Nixon Repubblicano Humphey 1968 Nixon Repubblicano Wallace 1992 Clinton Democratico Bush 1992 Clinton Democratico Perrot
Una relazione in prima forma normale puograve perograve causare dei problemi19 Il
primo fra questi una ridondanza dei dati dovuto ad un aumento delle tuple
Inoltre puograve capitare che dopo aver portato una relazione in prima forma
normale questa subisca delle modifiche tali per cui la chiave primaria scelta
prima della trasformazione in 1 NF non sia piugrave sufficiente ad identificare una
tupla per cui occorreragrave modificare la chiave20
19 Atzeni in ldquoLa teoria relazionale dei datirdquo distingue i seguenti problemi o anomalie Anomalie di inserimento di nuove tuples non posso inserire informazioni sulla
competizione elettorale avvenuta in un certo anno se non conosco il nome dello sfidante che costituisce insieme allrsquoanno la nuova chiave
Anomalie di cancellazione delle tuples esistenti lrsquoeliminazione di una tupla relativa alla competizione elettorale mi fa perdere informazioni che non posso piugrave ricavare
Anomalie di aggiornamento delle tuples esistenti se crsquoegrave stato per assurdo un errore su Nixon e cioegrave Questi non era repubblicano ma democratico allora dovrograve riaggiornare tutte le tuple in cui compare Nixon
20 In alcuni casi le trasformazioni possono essere tali da far modificare il nome stesso della tabella Si prenda lrsquoesempio proposto dal Belski si ha una tabella cliente non in forma normale e per renderla in forma normale occorre eliminare gli attributi multipli
138
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
362 Dipendenza funzionale
Siano dati due attributi A e B ( o combinazioni di attributi) in una relazione R Si
dice che B egrave funzionalmente dipendente da A in R (ovvero che A determina B in R)
A B
se e solo se in ogni istante di tempo ciascun valore di A egrave associato con uno ed uno
solo valore di B in R21 A verragrave indicato come attributo determinante e B come
attributo dipendente
Quindi data una relazione R si puograve determinare una dipendenza funzionale
fra due sottoinsiemi di attributi A e B per cui se lo stesso valore di A
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137425821 568 Rossi srl Dante 2 Milano 76 745 Verdi spa Po 13 Torino 874 gialli sas Levi 7 Napoli 347450
Si costruisce una tabella in cui tutti gli attributi sono semplici e ogni riga contenga un solo
numero drsquoordine
Codshycli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137 337 Bianchi spa Verdi 10 Bologna 425 337 Bianchi spa Verdi 10 Bologna 821 568 Rossi srl Dante 2 Milano 76 874 Gialli sas Levi 7 Napoli 347 874 Gialli sas Levi 7 Napoli 450
Si puograve vedere come il codice clienti non sia piugrave sufficiente ad identificare una singola tupla per cui occorre cambiare la chiave primaria la chiave comprenderagrave due i campi il codice cliente ed il numero drsquoordine La scelta della chiave opera una ldquotrasformazionerdquo della tabella da cliente a ordine Infatti la tabella contiene una tupla per ogni ordine e non per ogni cliente e che la tabella non contiene piugrave i clienti che non hanno ordini in essere (Verdi spa) percheacute la chiave non puograve avere valori nulli In base a queste trasformazioni si potrebbe rinominare la tabella in questione in tabella ordine-cliente Questa tabella in prima forma normale contiene tuttavia delle gravi anomalie
ridondanza di alcuni dati del cliente ripetuti tante volte quanti sono gli ordini in essere
eliminazione dei dati anagrafici dei clienti che non hanno ordini e quindi impossibilitagrave di reperirli quando non vi siano ordini in corso
La causa di questi inconvenienti deriva da una non attenta analisi nellrsquoambito della progettazione concettuale in cui evidentemente non sono state distinte bene le due entitagrave ordini e clienti 21 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
139
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
compare in diverse tuples di R allora vuol dire che in queste tuples dovragrave
comparire lo stesso valore di B Definita la chiave primaria della relazione R
che identifica univocamente le tuples avremo che tutti gli attributi della
tabella dipenderanno da essa22 Occorre poi fare una distinzione fra
dipendenze parziali e dipendenze complete Verificato che un sottoinsieme
B dipende funzionalmente da A bisogna verificare se esiste una dipendenza
funzionale da un sottoinsieme degli attributi di A Se questo si verifica allora
si ha dipendenza parziale percheacute B dipende solo da una parte dagli attributi
di A in caso contrario si ha una dipendenza completa
Ersquo logico che se A egrave costituito da un solo attributo allora non ci saragrave che
dipendenza completa
La conoscenza delle dipendenze funzionali nelle relazioni egrave un elemento
fondamentale per un migliore raggruppamento dei dati secondo il modello
relazionale I dati che vengono raccolti e organizzati per rappresentare la
realtagrave di interesse presentano queste dipendenze funzionali che possono
essere dovute sia dalla loro natura sia alla proprietagrave dei loro domini e ciograve
che egrave importante per la costruzione di un efficiente schema logico
relazionale sono indipendenti dalle tecniche utilizzate per raccoglierli
classificarli raggrupparli Poicheacute le dipendenze sono oggettive e legate al
tipo di dato egrave essenziale conoscerle ed utilizzarle per realizzare un miglior
raggruppamento possibile dei dati Si potrebbe cercare di minimizzare
queste dipendenze giagrave dalla fase della progettazione concettuale perograve
lrsquointreccio delle dipendenze fra i dati puograve rendere difficile ripartire gli
attributi nelle varie tabelle facendo sorgere nello schema concettuale diverse
anomalie nella gestione dello schema stesso Ersquo questo in pratica lo scopo
22 Nazzini Sanges Vaccaro in Introduzione ai Data Base relazionali affermano 1 Ciascun attributo di R egrave funzionalmente dipendente da ciascuna chiave candidata di
R 2 Gli attributi di R che costituiscono una chiave candidata K sono un insieme a
massima dipendenza funzionale cioegrave tutti i sottoinsiemi di K sono funzionalmente indipendenti lrsquouno rispetto
allrsquoaltro
140
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
della normalizzazione introdotta da Codd cioegrave quello di eliminare tutte
queste ridondanze ed anomalie dei dati per una corretta gestione dello
schema
Un modo per gestire meglio lo schema individuato da Codd egrave quello di
scomporre la tabella preservando sia le informazioni sui dati che i vincoli di
integritagrave dei dati Condizione essenziale percheacute tutto ciograve sia rispettato egrave che
venga soddisfatto il seguente teorema Uno schema R(A) per il quale esiste lrsquoinsieme D di dipendenze egrave scomposto nei due
schemi R1(A1) e R2(A2) preservando il contenuto quando
A1 A2 A1 oppure A1 A2 A2
ovvero quando gli attributi comuni (presenti sia in A1 che in A2) sono chiave
di uno dei due sistemi23
Se questo avviene (ad esempio se gli attributi sono chiave di A2) si puograve
ricostruire R(A) attraverso delle giunzioni naturali sulle R1(A) percheacute gli
attributi che mancano in R1 (A) sono direttamente implicati da quelli
comuni Per questo motivo non si perdono informazioni ne si acquisiscono
di spurie (concetto di scomposizione senza perdite)24 Ad esempio si prenda
la tabella indirizzo
R (cap cittagrave via)
R1(cap cittagrave) R2(via cap)
nessun attributo di R puograve essere aggiunto a K senza distruggere questa dipendenza funzionale
23 Nella letteratura si trovano sostanzialmente due tipi di equivalenza tra schemi in presenza di scomposizione Si parla di decomposizione che preserva il contenuto e decomposizione che preserva le dipendenze La decomposizione di uno schema di relazione R che preserva lrsquoinformazione sui dati si ha se per ogni relazione R le sue proiezioni sugli attributi Ai sono tali che da esse si puograve riottenere esattamente R con lrsquounica operazione possibile la giunzione naturale Una decomposizione preserva le dipendenze quando decomponendo non si perdono i vincoli di integritagrave Albano Orsini Basi di dati 24 La ricostruzione della originaria relazione R puograve avere come risultato la comparsa nella relazione ricostruita di alcune tuples ldquospurierdquo cioegrave non presenti originariamente in R e non crsquoegrave alcun modo di distinguere le tuples ldquospurierdquo dalle tuples genuine Solo in questo senso si parla di scomposizione con perdite percheacute in realtagrave la relazione originaria egrave un sottoinsieme di quella ricostruita (contiene infatti le tuples ldquogenuinerdquo e quelle ldquospurierdquo) Comunque sia una operazione di giunzione naturale non puograve produrre niente che non sia almeno R
141
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Il cap egrave lrsquoattributo comune ed egrave chiave della tabella R2 Indicato il cap la cittagrave
risulta univocamente determinata Eseguendo la giunzione delle due tabelle
si ottiene la tabella originaria
Fra gli attributi di uno schema quindi esistono delle dipendenze funzionali
Alcune di queste dipendenze sono ovvie e non vengono normalmente
menzionate come quelle che riguardano un gruppo dattributi che egrave
sottoinsieme di un altro gruppo di attributi Ersquo importante elencare lrsquoinsieme
delle dipendenze per non perderle in seguito nella scomposizione Per
conservare queste dipendenze occorre non portare in schemi separati gli
attributi che hanno relazioni di dipendenza fra di loro Comunque non
bisogna scartare qualche volta la possibilitagrave di spezzare delle dipendenze
percheacute i vantaggi che ciograve potrebbe portare puograve superare gli svantaggi
prodotti
363 Seconda forma normale (2 NF)
Una relazione R egrave in seconda forma normale (2 NF) se egrave in prima forma normale ed
ogni attributo non primo di R dipende funzionalmente e completamente da ogni
chiave di R25
Tutti gli attributi che non fanno parte della chiave (se questa egrave lrsquounica)
devono dipendere dalla chiave tutta intera Si effettueragrave una scomposizione
della tabella in 2NF solo se ci sono attributi che dipendono solo da una parte
della chiave Ersquo logico che se la chiave egrave formata solo da un attributo la
dipendenza non potragrave che essere completa e quindi non si procederagrave con la
scomposizione Se le chiavi possibili sono piugrave di una (abbiamo piugrave chiavi
candidate) la condizione deve valere per ogni chiave
Si procederagrave quindi alla scomposizione di uno schema seguendo una
procedura di questo genere26
Si parla pertanto di scomposizione senza perdite quando egrave garantito che lrsquooperazione di giunzione naturale sulle proiezioni di R riproduce esattamente R senza che compaiano tuples ldquospurierdquo Nazzini Sanges Vaccaro Introduzione ai Data Base Relazionali 25 Atzeni Batini De Antonellis Introduzione alla teoria relazionale Masson 26 Questa procediigraveura egrave proposta da Belski Dati e basi di dati il modello relazionale
142
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Si prende in considerazione uno schema R(A) in 1NF ma non in 2NF per
ogni dipendenza funzionale parziale X Y in cui X rappresenta una chiave
di R e Y egrave un insieme di attributi non primi si deve
individuare il sottoinsieme Z degli attributi della chiave X da cui Y
dipende in modo completo
costruire un nuovo schema che contenga Z come chiave di tutti gli
attributi Y
cancellare dallo schema iniziale tutti gli attributi Y che sono stati
ldquotrasferitirdquo sul nuovo schema Si ripete la serie di operazioni
costruendo piugrave tabelle fino a quando non si sono esaurite le
dipendenze funzionali parziali che erano presenti nella relazione R
Lrsquoinsieme delle tabelle cosigrave ottenute egrave in 2NF ed egrave stata mantenuta
lrsquointegritagrave delle dipendenze e del contenuto Si prenda ad esempio la tabella ordine cliente che si trova in 1NF
Ordine cliente (codice cliente nr ordine cliente rag-cli cittagrave cli via cli)
la chiave X egrave rappresentata da (codice cliente nr ordine cliente)
lrsquoinsieme Y egrave (rag-cli cittagrave cli via cli)
Esiste un certo numero di attributi che sono dipendenti solo dal cod
cliente che saragrave il nostro Z
Si puograve attuare una scomposizione che dia luogo ad una relazione che
contenga tutti gli attributi che sono dipendenti solo da Z cancellando gli
stessi attributi dalla relazione originaria
cliente (codice cliente rag-cli cittagrave cli via cli)
Ordine cliente (codice cliente nr ordine cliente)
La chiave della relazione cliente egrave composta da un solo attributo quindi la
dipendenza egrave completa mentre la chiave della tabella ordini composta da 2
attributi non ha piugrave attributi primi Le due relazioni derivanti dalla
scomposizione sono in 2NF di conseguenza il procedimento si ferma Si
fossero create relazioni con dipendenze parziali si sarebbe dovuto procedere
nuovamente ad una ulteriore scomposizione
143
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Codshy
cli
Ragione-cli Via-cli cittagrave-cli ordini-cli
337 Bianchi spa Verdi 10 Bologna 137
337 Bianchi spa Verdi 10 Bologna 425
337 Bianchi spa Verdi 10 Bologna 821
568 Rossi srl Dante 2 Milano 76
874 Gialli sas Levi 7 Napoli 347
874 Gialli sas Levi 7 Napoli 450
Relazione Ordine clienti
Cod-cli Ragione-cli Via-cli cittagrave-cli
337 Bianchi spa Verdi 10 Bologna
568 Rossi srl Dante 2 Milano
874 Gialli sas Levi 7 Napoli
Cod-cli ordini-cli 337 137 337 425 337 821 568 76 874 347 874 450
Relazione Cliente Relazione Ordine cliente
364 Terza forma normale (3 NF)
Una relazione R egrave in terza forma normale (3NF) se egrave in 2NF ed ogni attributo non
primo di R egrave dipendente in modo non transitivo da ogni chiave di R27
La terza forma normale prevede che ogni attributo non primo dipenda solo dalle chiavi e non anche da altri attributi non primi quindi ogni attributo non
primo deve dipendere dalle chiavi e solo dalle chiavi28 In effetti puograve capitare che
27 Atzeni Batini De Antonellis La teoria relazionale dei dati Boringhieri 28 Belski Dati e basi di dati la teoria relazionale FrancoAngeli
144
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
una relazione sia in 2NF e che ci sia un attributo che non dipenda
direttamente dalla chiave ma transitivamente attraverso un altro attributo
La 3NF che si basa quindi sulla eliminazione delle dipendenze transitive egrave
stata introdotta per eliminare alcune anomalie di cancellazione modifica e
inserimento Si puograve per questo considerare un esempio proposto da Atzeni
ed Altri in ldquoLa teoria relazionale dei datirdquo Si consideri lo schema di relazione collocazione - genere relativo ad uno zoo
Collocazione - genere (NomeComune Casa Addetto Area Responsabile)
NomeComune Area Casa Addetto Responsabile Giraffa Est Recinto Bini Rossi Leone sud Tana Mori Verdi Orso Est Grotta Dea Rossi Zebra Ovest Steccato Lella Bianchi Elefante Ovest Rustico Seri Bianchi
Lo schema egrave in 2NF poicheacute la sua chiave consiste di un solo attributo e
quindi gli attributi non primi dipendono completamente da essa Si possono
identificare tre tipi di anomalie
Anomalie di inserimento di nuove tuples se si vuole inserire
lrsquoinformazione che una casa egrave gestita da un particolare addetto non
lo si puograve fare se non si conosce il genere animali destinato in quella
casa poicheacute il nome comune costituisce la chiave dello schema
Anomalie di cancellazione delle tuples se un genere di animali si
estingue nello zoo viene ad estinguersi anche la relazione esistente
fra la casa che era destinata a contenere quel genere di animali e
lrsquoarea in cui quella casa egrave dislocata
Anomalie di modifica delle tuples se cambia il responsabile di
una certa area si dovragrave modificare tutte le tuples che fanno
riferimento a tale area
Per trasportare una relazione in 3NF Belski propone un procedimento che
assicura la conservazione di contenuti e dipendenze Si ha uno schema R(A)
145
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
con chiave X e un insieme di attributi non primi Y che determina
funzionalmente un insieme di attributi Z si deve
1 creare una tabella con chiave Y contenente gli attributi Z
2 rimuovere dalla tabella gli attributi Z dalla tabella originaria
3 Si deve ripetere la procedura di scomposizione fino a quando non
siano state rimosse tutte le dipendenze transitive
Torniamo allrsquoesempio
X = Nomecomune
Y = Casa
Z = Area Addetto Responsabile
Nellrsquoesempio lrsquoattributo Casa egrave lrsquounico che dipenda direttamente dalla
chiave mentre con Area Addetto e responsabile crsquoegrave una dipendenza
transitiva Per cui Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto Responsabile)
Occorre vedere a questo punto se la relazione Informazioni sulla casa egrave
in 3NF Se gli attributi Area e Addetto dipendono in maniera diretta
da Casa lo stesso non si puograve dire di Responsabile il quale dipende
transitivamente da Casa attraverso Area
X = Casa
Y = Area
Z = Responsabile
Collocazione genere (NomeComune Casa)
Informazioni sulla casa (Casa Area Addetto)
Informazioni sullrsquoArea (Area Responsabile)
Adesso tutte e tre le relazioni sono in 3NF
146
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
365 Determinante
Un determinante egrave un attributo o un insieme di attributi non ridondanti in grado di
agire come identificatori univoci di un altro attributo ( o di un altro insieme di
attributi) appartenente ad una determinata relazione29 Si diragrave
A B
e cioegrave che A determina B (o A egrave un determinante di B) oppure B presenta una
dipendenza funzionale totale da A Abbiamo quindi la dipendenza di un
attributo o di un gruppo di attributi da un altro attributo o gruppo di
attributi Questa dipendenza viene detta funzionale poicheacute in funzione del
determinante si stabiliscono gli altri attributi Determinanti lo sono tutte le
chiavi candidate che sono composte di tutti gli attributi primi Determinanti
possono essere anche attributi primi che fanno parte di una chiave candidata
ma non la comprendono interamente per cui si creano casi di dipendenza
parziale risolti con il passaggio alla 2NF Oppure un attributo non primo
puograve essere dipendente da un attributo non primo ( quindi questo
determinante egrave un attributo non primo) il quale egrave interamente dipendente
dalle chiavi candidate della relazione per cui si verragrave a creare un caso di
dipendenza transitiva risolto dalla 3NF30 Un altro caso si ha quando una
relazione ha piugrave chiavi candidate Queste sono composte ed hanno degli
attributi in comune legati fra loro da dipendenza funzionale Avremo
quindi un determinante che saragrave un attributo o un gruppo di attributi primi
di una chiave (che perograve non contiene la chiave) che saragrave legato ad un
attributo o ad un gruppo di attributi primi di unrsquoaltra chiave che non la
contiene (o contengono)
29 Misbah Deen Database concetti teorici e pratici FrancoAngeli 30 In base alla definizione di determinante Misbah Deen propone per la 3NF una definizione elaborata da Sharman Una relazione egrave in 3NF se ogni determinante egrave chiane esterna In base a questa definizione la 3NF egrave indipendente dalla 2NF per cui non saragrave piugrave necessario che una relazione si trovi in 2NF per poi passare alla 3NF Basteragrave solo identificare i determinanti ed articolare gli stessi in modo tale che siano chiavi esterne di una tabella e chiavi primarie di unrsquoaltra ottenuta per scomposizione
147
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
366 Forma normale di Boyce - Codd
In una relazione in 3NF secondo quanto affermato da Codd ogni attributo
non primario deve essere rispetto a ciascuna chiave candidata
interamente indipendente
non transitivamente indipendente
Si puograve affermare che una relazione R egrave normalizzata secondo Codd se ogni
tupla egrave composta da una chiave primaria che identifica unentitagrave del mondo
reale e da un insieme di valori di attributi fra loro indipendenti che
descrivono lrsquoentitagrave Ma questa definizione entra in crisi nel caso di relazioni
con due o piugrave chiavi candidate composte (con piugrave di un attributo) ad
intersezione non nulla (cioegrave con almeno un attributo in comune) Si consideri
la tabella studio lezione (studente materia insegnante)
Studente Materia Insegnante Rossi Mat Gen Vannucci Rossi Diritto priv Galli Verdi Mat Gen Vannucci Bianchi Matgen Visani Verdi Diritto priv Galli Celesti Diritto priv Trevisan
Siamo nella facoltagrave di Economia e Commercio di Firenze ed egrave affollata
I corsi vengono frazionati per gruppi di allievi e le regole sono che
ogni professore insegna un solo corso
ogni studente egrave assegnato al corso identificato dal nome del
docente
Le chiavi candidate sono
(studente materia)
(studente insegnante)
Esiste perograve una dipendenza funzionale fra
Insegnante Materia
148
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa relazione lega due attributi primi entrambi non contenenti chiave
dove ldquoinsegnanterdquo egrave il determinante Si possono individuare in questa
relazione alcuni tipi di anomalie
Ridondanza Si ripete ogni volta la materia insegnata dal professore
assieme al nome del professore
Perdita di informazioni Se si cancella la tupla relativa allo studente
Celesti si perde anche lrsquoinformazione che il prof Trevisan insegna
Diritto privato
Per superare queste anomalie si egrave introdotta la forma normale di Boyce -
Codd che non accetta le dipendenze funzionali per attributi primi Una relazione egrave nella forma normale di Boyce - Cood se e solo se egrave in 1NF ed ogni
determinante egrave una chiave candidata31
Questa definizione si svincola dalla dipendenza intera e dalla dipendenza
transitiva che venivano affrontate nella definizione delle 2NF e delle 3NF Si
puograve dire che una relazione in BCNF egrave un sottoinsieme delle relazioni in 3NF
per cui tutte le relazioni che sono in BCNF sono anche in 3NF ma che non egrave
sempre vero il viceversa
Un metodo per ridurre concretamente una relazione che non si trova in
BCNF in un insieme di schemi tutti in BCNF conservandone il contenuto egrave
proposto da Belski Ad ogni passo si spezza la tabella non in BCNF secondo
la tecnica seguente
In una relazione R non in BCNF si individua una dipendenza
funzionale X Y fra un insieme di attributi X e un insieme di
attributi Y in cui X non contiene una chiave dello schema (cioegrave non
coincide con una chiave dello schema)
Si indicheragrave con Z lrsquoinsieme degli attributi restanti alla relazione
tolti quelli di X e Y Lrsquoinsieme Z non dovragrave mai essere vuoto
altrimenti vuol dire che X contiene una chiave dello schema e
questo egrave contrario alle ipotesi fatte
31 Nazzini Sangas Vaccaro Introduzione ai data base relazionali 149
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Si spezza la relazione in due portando nella prima gli insiemi X e Y
e nella seconda gli insiemi X e Z
si ottengono in questo modo due schemi
R1(XY)
mancando attributi che non dipendono da X in questo caso avremo
che il nostro determinante egrave divenuto una chiave per cui si trova in
BCNF Nel secondo
R2(XZ)
Si deve verificare se esistono dipendenze non accettate Se ne esistono
si procede ripetendo la stessa tecnica fin quando tutti gli schemi sono
in BCNF
In questo tipo di procedimento viene garantita la conservazione del
contenuto perograve non viene allo stesso modo garantita la conservazione
delle dipendenze funzionali che sono presenti nello schema originario
Esempio lezione(studente materia professore)
La dipendenza che crea problemi egrave
Insegnante Materia
Si pone
X= Insegnante Y= Materia Z= Studente
Per cui
R1 (insegnante materia)
R2 (insegnante studente)
Materia Insegnante Mat Gen Vannucci Diritto priv Galli Matgen Visani Diritto priv Trevisan
Studente Insegnante Rossi Vannucci Rossi Galli Verdi Vannucci Bianchi Visani Verdi Galli Celesti Trevisan
150
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
In questa scomposizione alcune dipendenze sono andate perse come
quella
[studente materia] insegnante
che dopo la scomposizione non egrave piugrave presente poicheacute non esiste piugrave
uno schema con tutti e tre gli attributi
367 Dipendenze multivalore (MVD)
La BCNF considera tutti i possibili casi di dipendenze funzionali accettando
solo quelle dipendenze che non creano problemi Perograve a volte si hanno casi
che non sono riconducibili esclusivamente a semplici dipendenze funzionali Prendendo in considerazione la tabella lezione se si togliesse il vincolo
secondo cui un professore puograve insegnare solo una materia allora si avrebbe
una situazione per cui il nome di un insegnante non determina
automaticamente una materia ma possono individuarsi piugrave tuples tutte
egualmente valide Quindi la BCNF non elimina questo tipo di anomalie che
si riconducono alle cosiddette dipendenze multivalore Data una relazione R e tre suoi sottoinsiemi disgiunti XYZ (cioegrave le loro
intersezioni sono vuote) tali che la loro unione coincida con R si dice che X
multidetermina Y quando ad un insieme di valori di X possono essere associati piugrave
insiemi di valori di Y(ci sono zero o piugrave valori possibili di Y) che non dipendono
affatto dai valori di Z (cioegrave i restanti Attributi) Cioegrave se si hanno due tuples con
gli stessi valori di X e diversi valori di Y si possono scambiare gli attributi di
Y avendo ancora tuples che rientrano in R indipendentemente dai valori che
possono assumere i restanti attributi appartenenti allrsquoinsieme Z32
32 Albano porta questo esempio Si consideri il seguente schema di relazione R[CDO ASV] in cui si ha una dipendenza multivalore C OA
C D O A S V DA Albano L10 S1 Rossi 30 DA Albano M9 S2 Rossi 30 DA Albano M10 S2 Rossi 30 DA Albano L10 S1 Bianchi 28 DA Albano M9 S2 Bianchi 28
151
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Si indica una dipendenza multivalore in questo modo
X Y
Da quanto detto si puograve affermare che la dipendenza funzionale egrave solo un
caso particolare della dipendenza multivalore in cui ad un X si puograve associare
solo un Y Inoltre si vede dalla definizione come si possono avere
dipendenze multivalore solo nel caso in cui si abbia almeno tre attributi33 Se
in uno schema relazionale R (XYZ) esiste una dipendenza multivalore fra
X Y indipendentemente da Z X e Z non saranno indipendenti lrsquouno
dallrsquoaltro (cioegrave X Z indipendentemente dai valori Y) questo significa che
le dipendenze multivalore sono sempre almeno due o piugrave coppie per questo
motivo possono essere indicate entrambe con una espressione comune
X YZ
In base a quanto affermato si puograve enunciare il teorema di Fagin
Se nella relazione R (XYZ) ha luogo la MVD X YZ allora puograve essere
scomposta nelle sue proiezioni R1 (X Y) e R2(X Z) e viceversa cioegrave se R(XYZ) egrave
il join delle due relazioni R1 (X Y) e R2(X Z) allora ha luogo in R la MVD
X YZ
Quindi R puograve essere ricostruita tramite un join naturale su X delle due
proiezioni R1 e R2
368 Quarta forma normale (4NF)
Una relazione R egrave in quarta forma normale (4NF) quando egrave in 1NF e se per
ogni dipendenza multivalore X Y con Y non vuoto o sottoinsieme di X e
DA Albano M10 S2 Bianchi 28
Consideriamo la seconda e la quarta tupla Se si scambia [M9S2] con[L10S1] otteniamo due nuove tuples che appartengono ancora alla relazione (la prima e la quinta) 33 Misbah Deen propone unrsquoaltra definizione per cui dato uno schema di relazione R (ABC) avremo che Lrsquoattributo A egrave un multideterminante dellrsquoattributo B in presenza di un attributo C se ogni valore di A puograve agire come identificatore univoco di un insieme di valori B indipendentemente dai valori C presenti nella relazione
152
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
X Y non contiene tutti gli attributi di R (quindi esisteragrave un altro insieme di
restanti attributi Z) egrave tale che X contiene una chiave di R
Se X contiene una chiave allora determina in maniera univoca Y ed anche
tutti gli altri attributi di R Per fare questo occorre scomporre lo schema fino a
demolire tutte le dipendenze multivalore riconducendo le stesse a
dipendenze funzionali semplici34
Per scomporre uno schema di relazione che presenta tali dipendenze
multivalore occorre seguire un procedimento che riduca questo schema in
un insieme di schemi tutti in 4NF salvaguardandone il contenuto
Per ottenere questo risultato si spezza una relazione non in 4NF in questo
modo
Si individua nella relazione R un insieme di attributi X che multidetermina
un insieme Y
Si chiameragrave Z lrsquoinsieme degli attributi restanti (Z non deve perograve mai essere
un insieme vuoto)
Si spezza la relazione R in due parti trasferendo nella prima parte gli
attributi appartenenti a X e Y
R1(XY)
e nella seconda gli attributi appartenenti a X e Z
R2(XZ)
Nella R1 la dipendenza fra X e Y che resta non soddisfa piugrave la definizione di
dipendenza multivalore In R2 si dovragrave verificare se ci sono ancora
dipendenze multivalore Se la risposta egrave positiva si ripete nuovamente la
procedura sopra esposta fino a che tutte le tabelle saranno in 4NF Come per
la BCNF anche per la 4NF il procedimento adottato preserva il contenuto ma
non offre assolutamente garanzie sul mantenimento delle dipendenze Si puograve
affermare che le relazioni in 4NF sono anche in BCNF poicheacute ne
costituiscono un sottoinsieme Prendiamo ad esempio la seguente relazione visite
153
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Visite (Veterinario Specializzazione DataVisita)
Veterinario Specializzazione DataVisita Rossi Oculista 121096 Rossi Otorino 121096
Bianchi Oculista 121096 Rossi Oculista 141096 Rossi Otorino 141096
Bianchi Oculista 121096
Le regole sono queste
un veterinario puograve avere piugrave specializzazioni
le date delle visite che un veterinario fa sono ripetute per tutte le
specializzazioni che il veterinario ha
Come si vede in questa relazione ci sono delle anomalie di
ridondanza
Si hanno nello schema due dipendenze multivalore
Veterinario Specializzazione
Veterinario DataVisita
Si consideri
X= Veterinario Y= Specializzazione Z= DataVisita
R1 (Veterinario Specializzazione) R2 (Veterinario Datavisita)
Veterinario Specializzazione Rossi Oculista Rossi Otorino Bianchi Oculista
Veterinario Datavisita Rossi 121096 Rossi 141096 Bianchi 121096 Bianchi 141096
Come si vede sia la R1 che la R2 sono in 4NF poicheacute le dipendenze che si
hanno sono solo semplici dipendenze funzionali Inoltre i due schemi non
possono che essere in 4NF poicheacute sono composti di due attributi
Si puograve cercare adesso di verificare a cosa corrisponde negli schemi ER la
situazione descritta nellrsquoesempio precedente
34 Misbah Deen propone per la 4NF unrsquoaltra definizione che ricalca quella di Sherman per la
154
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
m n
m
n
Veterinario Specializzazion e
DataVisita
Esercita
Visita
Figura 310 Associazione ternaria m a n
Le anomalie di ridondanza risolte dalla 4NF sono derivanti dallrsquoaver voluto
inserire in una stessa tabella le due associazioni che appaiono evidenti nel
diagramma ER Inoltre si nota che le associazioni sono del tipo m a n
Riportare in 4NF significa quindi spezzare lrsquoassociazione ternaria nelle due
binarie indipendenti poicheacute nella stessa relazione ternaria producevano delle
ridondanze
369 Dipendenza di concatenamento (JD)
La relazione R soddisfa la Join Dependency rappresentata come JD(XYZ)se e
solo se essa egrave il Join delle sue proiezioni su XYZ dove XYZ sono
sottoinsiemi degli attributi di R35
3NF Una relazione egrave in 4NF se ogni multideterminante egrave una chiave candidata 35 Nazzini Sanges Vaccaro Introduzione ai Data Base relazionali
155
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Questa definizione mostra come le multidipendenze MVD possono essere
assunte come caso particolare della JD Questo deriva direttamente dal
teorema di Fagin per cui condizione necessaria e sufficiente percheacute nella relazione
R (XYZ) abbia luogo la MVD X YZ egrave che R soddisfi la JD (XY XZ) Si
tratta quindi di una join sul multideterminante
3610 Quinta forma normale (5NF)
La quinta forma normale viene detta anche forma normale estrema poicheacute
dipende dal tipo di operazioni consentite in fase di scomposizione di una
relazione in altre relazioni I processi di normalizzazione si realizzano con
scomposizioni e sono basati su queste regole (Deen)
1 Quando una relazione viene scomposta in una serie di altre relazioni
ognuna di queste rappresenta una proiezione della relazione originaria
2 La relazione originaria deve essere il concatenamento dellrsquoinsieme delle
nuove relazioni senza che ci sia perdita di contenuto
Fargin ha introdotto questa forma normale estrema nel caso in cui
proiezioni e concatenamenti siano gli unici operatori possibili Inoltre ha
dimostrato che la MVD ma anche la dipendenza funzionale totale sono un
caso di JD e che una relazione in 5NF egrave anche in 4NF Questa forma normale
riguarda le relazioni in 4NF ternarie che potrebbero essere scomposte senza
perdere informazioni in 3 proiezioni ma non in due
Si possono definire (Deen) le dipendenze di concatenamento in due tipi
1 quello in cui le proiezioni sono basate su chiavi candidate
2 quello in cui le proiezioni non sono chiave candidata
Se una relazione R ha n attributi ed inclusa almeno una chiave candidata R
potragrave essere scomposta in (n-1) relazioni binarie R1 R2 R(n-1) ognuna
contenente la chiave candidata ed un altro attributo in modo tale che R
rappresenti il concatenamento di tutte queste relazioni
156
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Questo tipo di dipendenze vengono dette ordinarie Il secondo tipo di
dipendenza di concatenamento egrave invece determinante in fase di
normalizzazione
Si arriveragrave alla 5NF quando una relazione non potragrave piugrave subire ulteriori
scomposizioni per mezzo di proiezioni non - ordinarie (cioegrave proiezioni non
basate sulle chiavi candidate) senza subire perdite di informazioni La 5NF
viene definita in questo modo Una relazione egrave in 5NF se non egrave soggetta a dipendenze di concatenamento non shy
ordinarie36
La 5NF viene detta forma normale estrema poicheacute gli unici operatori
permessi sono proiezioni e concatenamenti in quanto ogni ulteriore
scomposizione dovragrave essere basata sulle chiavi candidate
La 5NF non produce necessariamente relazioni irriducibili se vengono
incluse anche quelle basate su chiavi candidate generano invece relazioni
irriducibili se la chiave candidata egrave un singolo attributo le relazioni
saranno binarie Si egrave visto infatti come la terza forma normale 3NF si sia
basata sulla scomposizione dei determinanti e la quarta forma normale 4NF
di sia basata sulla scomposizione dei multideterminanti che non erano in
effetti chiavi candidate di R
La posizione estrema viene raggiunta quando una relazione non puograve essere
ancora scomposta senza perdere informazioni tranne che per mezzo di
proiezioni di chiavi candidate Quindi questo vuol dire che una relazione
che si trova in 5NF egrave anche in 4NF e in 3NF In effetti la 5NF non puograve
contenere un determinante o un mutideterminante che non sia anche chiave
candidata
La 5NF egrave solitamente proposta per relazioni in 4NF che siano ternarie le
quali possono presentare alcune anomalie Ad esempio
Si consideri lo schema di relazione Z(Fornitore Articolo Commessa)
36 Misbah Deen Databasa concetti teorici ed applicativi FrancoAngeli 157
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Questo schema si presenta in 4NF con chiave composta dai suoi tre attributi
Si possono comunque presentare delle anomalie per esempio di
cancellazione
se si annulla la tupla (F1 A1 C1) occorreragrave annullare unrsquoaltra tupla che
potragrave essere individuata solo se si fanno delle considerazioni di tipo
applicativo Cancellando la tupla (F1 A1 C1) non si sa esattamente se
questo egrave dovuto al fatto che F1 non fornisce piugrave lrsquoarticolo A1 oppure sempre
lrsquoarticolo A1 egrave obsoleto per la commessa C1
Nel primo caso occorreragrave cancellare anche la tuple (F1 A1 C2) mentre nel
secondo la tuple da cancellare saragrave (F2 A1 C1)
Si potragrave eliminare queste anomalie effettuando tre proiezioni binarie (e non
due) Z1(Fornitore Articolo) Z2 (Fornitore Commessa) Z3 (Articolo Commessa)
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Effettuando il join si ottiene nuovamente Z senza perdere infermazioni
Nel caso in cui lo schema Z avesse avuto questa forma 158
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1
lrsquoinserimento di una tupla (F2A1C1) avrebbe causato in caso di proiezione
una tupla spuria ovvero (F1 A1 C1) con la creazione di informazioni che
non possono avere fondamento In effetti
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1
Fornitore Articolo F1 A1 F1 A2 F2 A1
Fornitore Commessa F1 C2 F1 C1 F2 C1
Articolo Commessa A1 C2 A2 C1 A1 C1
Join
Fornitore Articolo Commessa F1 A1 C2 F1 A2 C1 F2 A1 C1 F1 A1 C1
Una situazione come quella descritta dallrsquoesempio egrave rappresentabile nel
modello ER da una struttura ciclica
159
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
m
Capitolo terzo Lo schema logico secondo il modello relazionale
m
m
nmFornitore Articolo CommessaVende compone
Serve
n
Quindi questa rappresenta una situazione che nel modello ER e piugrave in
generale nellrsquoambito di una metodologia di progettazione concettuale occorre
evitare Quando si presenta una situazione del genere occorre giagrave in sede di
progettazione concettuale porvi rimedio sciogliendo queste associazioni
cicliche qualora provochino delle ridondanze o altre anomalie In questo caso
egrave piugrave conveniente per non creare delle tuple spurie e quindi non
corrispondenti ad informazioni reali riunire le tre entitagrave in una unica
relazione
Fornitore
Articolo
Commessa
160
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161
Capitolo terzo Lo schema logico secondo il modello relazionale
Vista la particolaritagrave di questi casi proposti nella 4NF e soprattutto nella 5NF
spesso gli analisti affermano che un buon schema logico si ottiene quando si
egrave giunti in 3NF Le anomalie che la 4NF e la 5NF si propongono di risolvere
non dovrebbero verificarsi se egrave stata effettuata una buona progettazione
concettuale oppure i casi dovrebbero essere molto rari Infatti la NF produce
relazioni del tipo m a n che nellrsquoambito della progettazione relazionale
dovrebbero essere opportunamente ldquotrattaterdquo con lrsquointroduzione di una terza
tabella mentre la situazione descritta dalla 5NF propone associazioni cicliche
che spesso possono presentarsi nel caso di normalizzazione in 5NF un
rimedio piugrave dannoso della situazione anomala
37 Creazione dei database tramite strumenti CASE (Computer - Aided
Software Engineering)
Attraverso questi strumenti si puograve progettare e poi automaticamente creare
la struttura dei database relazionali Gli strumenti CASE consentono lrsquouso di
tecniche grafiche come i diagrammi ER per progettare la struttura delle
tabelle e stabilire le relazioni fra loro
Questi strumenti fanno risparmiare molto tempo ed impediscono molti errori
quando si realizza un database relazionale di grosse dimensioni La maggior parte dei CASE contengono un deposito in cui vengono salvate le
informazioni sulla struttura della tabella sui campi chiave primari ed esterni
sui tipi di relazione tra le tabelle Il deposito egrave un database conservato nella
stessa applicazione CASE Utilizzando i dati del proprio deposito si possono
stampare gli schemi del proprio database e generare dizionari dei dati
Quando la struttura del proprio database egrave soddisfacente il CASE traduce i
dati che si trovano nel deposito in istruzioni del Linguaggio di Definizione
dei Dati SQL Le istruzioni di Definizione dei dati in linguaggio SQL
vengono poi inviate al RDBMS
161