I DBMS: Lo schema logico secondo il modello relazionale. · Capitolo terzo Lo schema logico secondo...

46
Capitolo terzo Lo schema logico secondo il modello relazionale.

Transcript of I DBMS: Lo schema logico secondo il modello relazionale. · Capitolo terzo Lo schema logico secondo...

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