Basi di dati Indice 3 Definizioni Definizioni …………………………………… ………………………………………………………… ………………………………………… ……………………………………… ………………………… ……… 3 DBMS ………………………………………… …………………………………………………………… ……………………………………… ………………………………….. …………….......... .............. ...... 4 Modelli Modelli di dati …………………………………… ………………………………………………………… ………………………………………… ……………………………………… …………………… … 5 Linguaggi Linguaggi per per le basi basi di dati dati ……………………………………… …………………………………………………………… ……………………………………. ………………. 6 Progettazio Progettazione ne di una una base di dati ……………………… …………………………………………… ……………………………………… ………………………. …….
Intro
1. 2. 3. 4. 5.
Modello ER
1. 2. 3. 4. 5. 6. . -.
!"e !os#$ ……………………………………… …………………………………………………………… ……………………………………… ……………………………………… ………………………….. …….. %ntit& %ntit& ……………………………………… ………………………………………………………… ……………………………………… ……………………………………… ………………………………... ……………... 'elazioni 'elazioni …………………….……………… …………………….…………………………………… ……………………….…………… ….………………………………… ………………………………. …………. !ardinalit& !ardinalit& ……………………………………… ……………………………………….……………… .…………………………………… ……………………….…………… ….………………………. …………. (dentifi)ato (dentifi)atori ri ……………………………………… ……………………………………….………………… .…………………………………… ……………………………………… ……………………….. ….. 'elazioni 'elazioni (S*+ …………………………………… ……………………………………….……………… ….…………………………………… ……………………….…………… ….…………………. ……. ,eneralizz ,eneralizzazion azionee …………………………………… ……………………………………….……………… ….………………………………… ……………………….…………. …….………….... ... 'iepilogo 'iepilogo ……………………………………… ……………………………………….……………… .…………………………………… ……………………….……………… ….…………………………. ………….
Modello Relazionale
1. 2. 3. 4. 5. 6.
/in)oli /in)oli di (ntegr (ntegrit& it& ……………………… ……………………………………….… ……………….……………………… ……………………………………… …………………………… ………… /in)oli /in)oli di %nnupla %nnupla ………………………… ……………………………………….…… …………….………………………… ……………………………………… …………………………. ………. /in)oli /in)oli di !"ia0e !"ia0e …………………………… ……………………………………….……… ………….………………………… ……………………………….…… …………….……………… ………… /alori /alori ulli ulli …………………… ………………………………………. ………………….………………… ……………………………………… …………………….……………… .………………………. ………. /in)oli /in)oli di (ntegrit& (ntegrit& 'eferen 'eferenziale ziale …………………………… ……………………………………….……… ………….………………………… ……………………… …… 'iepilogo 'iepilogo ……………………………………… ……………………………………….……………… .…………………………………… ……………………….……………… ….…………………………. ………….
Progettazione Progettazione Concettuale
1. 2. 3. 4. 5.
!"e )os#$ ……………………………………… ……………………………………….………………… .…………………………………… …………………….……………… ….………………………… ………… Probleati) Probleati)"e "e ……………………………………… ……………………………………….……………… .…………………………………… ……………………….……………… ….………………… … Strategie Strategie di di +nalisi +nalisi ………………………… ……………………………………….…… …………….………………………… ………………………………….… …………….…………. ………. ualit& ualit& di uno uno S)"ea S)"ea ………………………… ……………………………………….…… …………….……………………… ………………………………….… ……………….…… … Strategie Strategie di Progett Progettazion azionee ……………………………………… ……………………………………….……………… .…………………………………… ………………………. ….
Algebra Relazionale
1. 2. 3. 4. 5.
!"e )os#$ ……………………………………… ……………………………………….………………… .…………………………………… …………………….……………… ….………………………… ………… peratori peratori ……………………………………… ……………………………………….………………… .…………………………………… …………………….……………… ….………………………… ………… peratori peratori (nsieis (nsieisti)i ti)i …………………………… ……………………………………….……… ………….………………………… ……………………………….…… …………….…….. .. peratore peratore di 'ideno 'idenoinazi inazione one ………………………………… ……………………………………….…………… …….……………………………… ………………….. .. peratore peratore di Selezione Selezione …………………………… ……………………………………….……… ………….………………………… ……………………………….…… …………….…… 1
14 1 26 22 31 32 34 41 44 46 4 4 4 5 5 51 54 5 5 5 561
6. peratore peratore di Proiettazio Proiettazione ne …………………………………… ……………………………………….……………… ….………………………………… ………………………. ……. . 'iepilogo 'iepilogo degli degli peratori peratori di Selezione Selezione e Proiezione Proiezione …………………………… ………………………………………… …………… -. peratore peratore di oin oin …………………………… ……………………………………….……… ………….………………………… ……………………………….…… …………….……………. ………. . Prodotto Prodotto !artesian !artesiano o ……………………………… ……………………………………….………… ……….…………………………… …………………………….……… ………….……….. .. 1. 1. per perat ator oree 7"eta 7"eta oin oin ……………… …………………… …………… …………… …………. …….……… …………… …………… …………… …………… …………… …….. …….. 11. 11. /ist /istee …………… ………………… ………… ………… ………… ………… …….… .……… ………… ………… ………… ………… ………… ………… …….. ……………………………….
62 64 65 66 2 3 6
SQL
-1 -3 -4 -5 -6 -- 6 1 11 15 16
1. ualit& ualit& di una (nterro (nterrogazio gazione ne …………………………………… ……………………………………….…………… ….………………………………… …………………….. 2. peratore peratore di Selezione Selezione …………………………… ……………………………………….……… ………….………………………… ……………………………………. …………………. 3. Siilitudini Siilitudini tra +' +' e SL ……………………………………… ……………………………………….………………… .……………………………………… ………………………. …. 4. peratore peratore di 'ideno 'idenoinazi inazione…… one………………………… ………………………………….…… …………….……………………… …………………………… ………… 5. !ondizione !ondizione Li8e ……………………………………… ……………………………………….………………… .…………………………………… ……………………………………. …………………... 6. /alori /alori ulli ulli …………………… ………………………………………. ………………….………………… ……………………………………… …………………….……………… .………………………. ………. . !lausola !lausola Distin)t Distin)t ……………………………………… ……………………………………….………………… .…………………………………… …………………….……………. ….……………... -. peratore peratore oin …………………………………… ……………………………………….……………… ….…………………………………… ……………………………………… ……………………. …. . !lausola !lausola di rdina rdinaento ento ……………………………………… ……………………………………….………………… .…………………………………… ………………………. ……. 1. 1. per perat ator orii +ggr +ggreg egat atii ………… ……………… ………… ………… ………… ………… ………. …. ……………………………………………….. 11. 11. !lau !lauso sola la 9a0i 9a0ing ng ………… ……………… …………… …………… …………… ………….… ….……… …………… …………… …………… …………… …………… …………… ……… … 12. 12. per perat ator orii (nsi (nsie eist isti) i)ii …………… …………………… …………… …………… ……………. ……. …………………………………………….. 13. 13. /ist /istee …………… ………………… ………… ………… ………… ………… …….… .……… ………… ………… ………… ………… ………… ………… …….. ………………………………. 14. 14. (nte (nterr rrog ogaz azio ioni ni idi idifi fi)at )atee ……… ……………… …………… …………… …………… …………. ……. …………………………………………. 15. 15. !ons !onsig iglili sul sulla la !ost !ostru ruzi zion onee dell dellee (nte (nterr rrog ogaz azio ioni ni ………………………………………………. 16. 16. 'iep 'iepililog ogo o SL SL ………… ……………… ………… ………… ………… ………… ………. …. …………………………………………………………. Progettazione Progettazione Logica
1. 2. 3. 4. 5.
bietti0o bietti0o ……………………………………… ……………………………………….……………… .…………………………………… ……………………….……………… ….…………………………. …………. Misura delle delle 'isorse 'isorse %labora %laborati0e ti0e ……………………………… ……………………………………….………… ……….…………………………… ………………….. .. :ase :ase 1; 'istruttur 'istrutturazion azionee di uno S)"ea %' %' …………………………………………… ……………………………………………………. ………. :ase :ase 2; 7raduz 7raduzione ione del Modello Modello Logi)o Logi)o …………………………………………… ……………………………………………………………. ………………. 'iepilogo 'iepilogo ……………………………………… ……………………………………….……………… .…………………………………… ……………………….……………… ….…………………………. ………….
2
1 1 1 112 126
6. peratore peratore di Proiettazio Proiettazione ne …………………………………… ……………………………………….……………… ….………………………………… ………………………. ……. . 'iepilogo 'iepilogo degli degli peratori peratori di Selezione Selezione e Proiezione Proiezione …………………………… ………………………………………… …………… -. peratore peratore di oin oin …………………………… ……………………………………….……… ………….………………………… ……………………………….…… …………….……………. ………. . Prodotto Prodotto !artesian !artesiano o ……………………………… ……………………………………….………… ……….…………………………… …………………………….……… ………….……….. .. 1. 1. per perat ator oree 7"eta 7"eta oin oin ……………… …………………… …………… …………… …………. …….……… …………… …………… …………… …………… …………… …….. …….. 11. 11. /ist /istee …………… ………………… ………… ………… ………… ………… …….… .……… ………… ………… ………… ………… ………… ………… …….. ……………………………….
62 64 65 66 2 3 6
SQL
-1 -3 -4 -5 -6 -- 6 1 11 15 16
1. ualit& ualit& di una (nterro (nterrogazio gazione ne …………………………………… ……………………………………….…………… ….………………………………… …………………….. 2. peratore peratore di Selezione Selezione …………………………… ……………………………………….……… ………….………………………… ……………………………………. …………………. 3. Siilitudini Siilitudini tra +' +' e SL ……………………………………… ……………………………………….………………… .……………………………………… ………………………. …. 4. peratore peratore di 'ideno 'idenoinazi inazione…… one………………………… ………………………………….…… …………….……………………… …………………………… ………… 5. !ondizione !ondizione Li8e ……………………………………… ……………………………………….………………… .…………………………………… ……………………………………. …………………... 6. /alori /alori ulli ulli …………………… ………………………………………. ………………….………………… ……………………………………… …………………….……………… .………………………. ………. . !lausola !lausola Distin)t Distin)t ……………………………………… ……………………………………….………………… .…………………………………… …………………….……………. ….……………... -. peratore peratore oin …………………………………… ……………………………………….……………… ….…………………………………… ……………………………………… ……………………. …. . !lausola !lausola di rdina rdinaento ento ……………………………………… ……………………………………….………………… .…………………………………… ………………………. ……. 1. 1. per perat ator orii +ggr +ggreg egat atii ………… ……………… ………… ………… ………… ………… ………. …. ……………………………………………….. 11. 11. !lau !lauso sola la 9a0i 9a0ing ng ………… ……………… …………… …………… …………… ………….… ….……… …………… …………… …………… …………… …………… …………… ……… … 12. 12. per perat ator orii (nsi (nsie eist isti) i)ii …………… …………………… …………… …………… ……………. ……. …………………………………………….. 13. 13. /ist /istee …………… ………………… ………… ………… ………… ………… …….… .……… ………… ………… ………… ………… ………… ………… …….. ………………………………. 14. 14. (nte (nterr rrog ogaz azio ioni ni idi idifi fi)at )atee ……… ……………… …………… …………… …………… …………. ……. …………………………………………. 15. 15. !ons !onsig iglili sul sulla la !ost !ostru ruzi zion onee dell dellee (nte (nterr rrog ogaz azio ioni ni ………………………………………………. 16. 16. 'iep 'iepililog ogo o SL SL ………… ……………… ………… ………… ………… ………… ………. …. …………………………………………………………. Progettazione Progettazione Logica
1. 2. 3. 4. 5.
bietti0o bietti0o ……………………………………… ……………………………………….……………… .…………………………………… ……………………….……………… ….…………………………. …………. Misura delle delle 'isorse 'isorse %labora %laborati0e ti0e ……………………………… ……………………………………….………… ……….…………………………… ………………….. .. :ase :ase 1; 'istruttur 'istrutturazion azionee di uno S)"ea %' %' …………………………………………… ……………………………………………………. ………. :ase :ase 2; 7raduz 7raduzione ione del Modello Modello Logi)o Logi)o …………………………………………… ……………………………………………………………. ………………. 'iepilogo 'iepilogo ……………………………………… ……………………………………….……………… .…………………………………… ……………………….……………… ….…………………………. ………….
2
1 1 1 112 126
Intro Definizioni Def. Base di dati
uffi)io> persona> e))..?. e)).. ?.
S)"ea; Struttura di una base di dati =ossia i suoi )api?. !ostituis)e l#aspetto intensionale> ossia la des)rizione astratta delle propriet&. (stanza; /alori degli attributi. !ostituis)e l#aspetto estensionale> ossia i 0alori )on)reti )"e 0ariano nel tepo. o o
•
o o
Def. Sistema informativo
Comonente =sottosistea? di una organizzazione )"e gestis)e le inforazioni di
interesse =)io$ utilizzate per il perseguiento degli s)opi dell#organizzazione?. Le prin)ipali funzioni di un sistea inforati0o sono; * * * *
+)@u +)@uis isiz izio ione neA Ae eor oriz izza zazi zion onee +ggiornaento (nterrogazione %laborazione
Def. Sistema informatico
Porzione del sistema )"e gestis)e un sistea sis tea inforati0o in odo autoatizzato. 3
Le prin)ipali funzioni di un sistea inforati)o sono; * ,arantis)e )"e i dati siano )onser0ati in odo peranente sui dispositi0i di eorizzazione * Perette un rapido aggiornaento dei dati per riflettere rapidaente le loro 0ariazioni * 'ende i dati a))essibili alle interrogazioni degli utenti * Pu essere distribuito sul territorio Le informazioni 0engono rappresentate attra0erso i dati.
Def. Informazione
otizia> dato o eleento )"e )onsente di a0ere )onos)enza di fatti. Def. Dato
%leenti di inforazione )ostituiti da siboli )"e debbono essere elaborati per essere interpretati. Es.
Differenza fra dato e inforazione Se )i di)essero CMario# e #25# senza al)una spiegazione> @uesti 2 0alori sarebbero dei dati> ossia eleenti. Se per in aggiunta a @uesti 2 eleenti )i 0enisse detto )"e sono rispetti0aente la usernae e la passord di un )liente ban)ario della BL> allora l#insiee di0enterebbe un inforazione.
DBMS Def. DBMS
+)ronio di Data Base Manageent SEste> ossia un sistema soft!are )apa)e di gestire )ollezioni di dati )"e sono; •
,randi; 9anno diensioni olto aggiori della eoria )entrale. !ondi0isi =tra le di0erse atti0it& e settori dell#azienda?; Sono ne)essari e))anisi di autorizzazione di )ontrollo della )on)orrenza. Persistenti; 7epo di 0ita olto lungo. o
•
o
•
o
"arantiscono •
Pri0atezza; Mediante e))anisi di autorizzazione. o
4
•
%s. LFutente + $ autorizzato a leggere tutti i dati LFutente B $ autorizzato a leggere G e a odifi)are H +ffidabilit&; 'esistenza ai alfunzionaenti 9I e SI. (noltre utilizzano un )opli)ato e))aniso di )ontrollo sulle transazioni. %ffi)ienza; !er)ano di utilizzare al eglio le risorse del sistea =spazio> !P<> e))..?. %ffi)a)ia; !er)ano di offrire funzionalit& arti)olate. o o
•
o
•
o
( DBMS perettono inoltre l#indiendenza dei dati > ossia; •
•
on $ ne)essario odifi)are la base di dati in base all#appli)azione softare )"e do0r& utilizzarla. on $ ne)essario odifi)are l#appli)azione in )aso di odifi)a alla base di dati.
$antaggi e svantaggi •
/antaggi; Perettono l#utilizzo dei dati sotto oltepli)i appli)azioni flessibili =indipendenza dei dati? e utenti. 'idu)ono le ridondanze =dati ripetuti inutilente? e in)oerenze. S0antaggi; Sono olto )oplessi e )ostosi. 'i)"iedono buone risorse 9I e SI. (nadatti alla gestione di appli)azioni )on po)"i utenti. o
o
•
o o o
Modelli di dati
5
Def. Modello dei dati
(nsiee di )ostrutti utilizzati per organizzare i dati di interesse e des)ri0erne la dinai)a. e esistono 2 tipi; Modello logico% o
o
S)"ea )"e rappresenta la des)rizione dell#intera base di dati. %s. (l odello relazionale.
Modello concettuale% o o o
!er)ano di des)ri0ere i )on)etti del ondo reale. /engono utilizzati nelle fasi preliinari di progettazione. %s. (l odello %*' =%ntitE*'elations"ip?.
Linguaggi er le basi di dati Si suddi0idono in & tiologie ; •
DDL; o o
•
+)ronio di Data Definition Language. Linguaggi ne)essari per la definizione logi)a e fisi)a delle tabelle.
DML; o o
+)ronio di Data Manipulation Language. Linguaggi per la anipolazione dei dati =interrogazioni> aggiornaenti..?.
6
(l linguaggio SL =Stru)tured uerE Language? $ uno standard per la anipolazione delle basi di dati.
Progettazione di una base di dati La etodologia di progettazione di una BD si basa sul prin)ipio di separazione tra; * !osa rappresentare. * !oe farlo.
uesta etodologia pre0ede 3 fasi; •
Progettazione )on)ettuale; 7radu)e i re@uisiti del sistea inforati)o in una des)rizione foralizzata. o
7
o
o
o o
•
/iene espressa in odo indipendente dalle s)elte ipleentati0e =DBMS> SI e 9I?. 7ale des)rizione de0e essere in grado di des)ri0ere in odo globale l#abiente analizzato> )on)entrandosi sulla relazione )"e inter)orre sui dati. (l odello adottato $ @uello %ntit&*'elazione =%'?. %s. di odello %'
Progettazione logi)a; 7raduzione dello s)"ea )on)ettuale nel odello dei dati del DBMS =espresso nel DDL del DBMS?. (n @uesta fase si )onsiderano an)"e aspetti legati ai 0in)oli ed all#effi)ienza. Si arti)ola in due sotto*fasi; 'istrutturazione dello s)"ea )on)ettuale =per l#ottiizzazione?. 7raduzione 0erso il odello logi)o. (l odello adottato $ @uello relazionale. Jiage Progettazione fisi)a; !opleta lo s)"ea logi)o ottenuto )on le spe)ifi)"e 9I e SI. o
o
o
o
•
o
8
Modello E'R C(e cos#) (l odello Entit*'Relazione =%*'? $ un linguaggio grafi)o sei*forale per la rappresentazione di s)"ei )on)ettuali. uesto linguaggio grafi)o $ )oposto da 0ari eleenti> @ui sotto spiegati.
Entit* Classe di oggetti =fatti> persone> )ose? dell#appli)azione di interesse )on propriet&
)ouni e )on esistenza Kautonoa e della @uale si 0ogliono registrare fatti spe)ifi)i. sepre bene assegnare una definizione ad ogni entit& =solo a li0ello entale? in odo )"e durante la )ostruzione dello s)"ea potreo 0erifi)are )"e tutte gli oggetti dello s)"ea non abbiano un signifi)ato abiguo e )"e seguano un filo logi)o. %s. %ntit& ipiegato (nsiee delle persone )"e la0orano in azienda. Raresentazione 9
gni entit& "a un nome )"e lo spe)ifi)a in odo uni0o)o nello s)"ea> e 0iene raresentato grafi)aente da un rettangolo.
Per convenzione si utilizzano noi espressi0i =%s. (piegato e non ip5? e al singolare =(piegato e non (piegati?. %s. Studente> !itt&> Dipartiento> e)).. +ota
el odello %*' non si tiene conto delle singole o))orrenze A istanze dell#entit& =ossia l#oggetto )"e l#entit& rappresenta?. %s. Per rappresentare un do)ente> si terr& )onto solo dell#entit& KDo)ente e non di K(l do)ente 'ossi> K(l do)ente Mario> e)).. Attributi
il @uale dipende solaente dall#istanza dell#entit& e non da altri eleenti dello s)"ea. %s. %t& del professore dipende solo dal singolo professore. %s.
10
%s.
%s.
gni attributo di entit& "a nome )"e lo identifi)a in odo uni0o)o nell#abito della entit&> ed $ raresentato da un )er)"io )ollegato alla entit& a )ui appartiene.
11
el )aso di dubbi su @uali attributi inserire in un entit&> $ bene ragionare per istanze dell#entit&. %s. Supponendo di a0ere l#entit& KStudente> se a0essio un istanza dell#entit& del tipo KMario /erdi nato nel 1-- e residente a Milano> appare )"iaro )"e gli attributi dell#entit& saranno; noe> )ognoe> data di nas)ita> )oune di residenza.
(l valore dell# attributo appartiene a un doinio> detto doinio dell#attributo =es. intero> enuerato> e)).?. %s. (l doinio dell#et& sar& N>12O. el )aso si abbiano pi attributi )"e presentano affinit& nel loro signifi)ato> $ possibile raggrupparli in un uni)o attributo> detto attributo comosto . %s. K/ia> Kuero )i0i)o e K!+P possono essere raggruppati )on l#attributo K(ndirizzo.
Scelta tra entit* e attributo
Le sue istanze sono )on)ettualente signifi)ati0e indipendenteente da altre istanze. 9a o potr& a0ere delle propriet& indipendenti dagli altri )on)etti. (l )on)etto $ iportante nell#appli)azione. non a0rebbe senso dire )"e "a un esistenza propria?. Ser0e solo a rappresentare una propriet& lo)ale di un altro )on)etto. o
o o
•
o
o
o
Si tenga presente )"e le s)elte possono )abiare durante l#analisi.
%s.
%s.
13
!oe abbia 0isto nel prio esepio> l#attributo !itt&as)ita di0enta un entit& in @uanto grazie all#aggiunta della regione> il )on)etto di K!itt& 0iene 0isto )oe un @ual)osa a )ui possono essere asso)iate delle propriet&> e @uindi di0enta un entit&. el se)ondo )aso in0e)e> )itt& potrebbe essere utilizzata )oe attributo in dipartiento> tutta0ia risulta essere pi naturale 0ederla )oe unFuni)a entit& e relazionarla in odi di0ersi alle 2 entit&.
Relazioni le ette in relazione?. %s. La relazione K'esidenza tra le entit& KPersone e K!itt&. L#entit& KPersona des)ri0e l#insiee delle persone> entre l#entit& K!itt& rappresenta l#insiee delle )itt&. La relazione K'esidenza rappresenta tutti i legai logi)i tra KPersona e K!itt&> ossia per ogni persona rappresenta la sua )itt& di residenza =o sietri)aente> indi)a per ogni )itt& @uali persone 0i risiedono?. Raresentazione
14
gni relazione "a un nome )"e la identifi)a in odo uni0o)o nello s)"ea> ed $ raresentata nel diagraa )"e des)ri0e lo s)"ea da un robo )ollegato alle entit& sulle @uali $ definita la relazione.
Per convenzione si utilizzano noi espressi0i> al singolare e sostanti0i al posto dei 0erbi =se o00iaente possibile?. (l oti0o $ prin)ipalente dato dalla sietria> in @uanto dire ad esepio KLo studente supera l#esae d& un ordine da sinistra 0erso destra> entre utilizzare K%sae Superato d& una sorta di sietria> ossia il senso di lettura da un entit& 0erso unFaltra $ lo stesso rispetto la )orrispetti0a opposta =da K%sae a KStudente?. %s. +l posto di utilizzare il 0erbo KSupera si utilizza K%sae Superato. .B. La )on0enzione a 0olte 0a tralas)iata nel )aso in )ui l#utilizzo> ad esepio di un 0erbo> rende la lettura della relazione )on un linguaggio pi naturale.
"rado della relazione & entit* possono essere )oin0olte in una o pi relazioni…
…e le relazioni possono )oin0olgere pi entit&R
15
(l nuero di entit& )oin0olte in una relazione deterina il suo grado. !itt&? sar& di grado 2> in @uanto )oin0olge 2 entit&. La relazione KSede di la0oro=(piegato> !itt&? sar& an)"#essa di grado 2. el se)ondo )aso 0ogliao sapere @uale fornitore fornis)e @uale prodotto e @uale dipartiento. La relazione K:ornitura=:ornitore> Prodotto> Dipartiento? sar& di grado 3 =relazione n* aria?. Attributi di una relazione
ed $ raresentato da un )er)"io )ollegato alla relazione a )ui appartiene.
16
(n @uesto )aso il 0oto non $ una propriet& dello studente e nean)"e del )orso> a $ una propriet& del legae logi)o )"e la relazione K%saeSuperato instaura tra KStudente e K!orso. (nfatti se pensiao a @uesto )on)etto )on un linguaggio naturale> non a0rebbe senso )"iedere ad uno studente K)"e 0oto "ai preso senza spe)ifi)are a @uale esae )i stiao riferiento> a sarebbe pi naturale )"iedere K)"e 0oto "ai preso nell#esae di basi di datiT. La stessa )osa 0arrebbe nel )aso in )ui uno studente )"iedesse ad un do)ente K)"e 0oto "a dato nel )orso di basi di datiT senza spe)ifi)are per lo studente. Sarebbe infatti pi naturale )"iedere K)"e 0oto "a dato nell#esae di basi di dati allo studente 'ossiT. +ppare e0idente )"e la propriet& 0oto andr& asso)iata al legae logi)o tra le 2 entit&> e non alle singole entit&. risulta pi fa)ile )apire se un attributo $ di un entit& oppure di una relazione.
17
el )aso di una relazione n*aria> l#attributo 0arr& per ogni istanza della relazione. %s.
Relazioni ad anello 18
(l roblema $ )"e in una istanza di @uesto s)"ea> data una )oppia )"e $ istanza di KSu))essione> non si pu indi0iduare )"i $ il so0rano prede)essore e )"i il so0rano su))essore. elle relazioni do0e una stessa entit& $ )oin0olta pi 0olte $ ne)essario aggiungere la spe)ifi)a dei Kruoli.
Scelta tra entit* e relazione
)io$ se le sue istanze rappresentano insiei di altre istanze. on "a senso pensare alla parte)ipazione delle sue istanze ad altre relazioni. o
o o
•
o
o
19
Cardinalit* in odo da )aratterizzare eglio il signifi)ato di una relazione. Raresentazione
Per rappresentare una )ardinalit& si inseris)e fra parentesi tonde pria la )ardinalit& inia seguita da @uella assia sulla linea )"e unis)e l#entit& alla relazione.
Per convenzione si utilizzano; •
Per la )ardinalit& inia e 1> do0e; per una parte)ipazione opzionale =non tutte le istanze della entit& sono )ollegate )on la relazione?.. 1 per una parte)ipazione obbligatoria =tutte le istanze della entit& sono )ollegate )on la relazione?. Per a )ardinalit& assia 1 e > do0e; 1 per un assio di 1 parte)ipazione =le istanze della entit& parte)ipano al assio una 0olta sola alla relazione?. per non porre al)un liite =le istanze della entit& non "anno liiti di parte)ipazione alla relazione?. o
o
•
o
o
20
%s. /in)olo di )ardinalit& +d ogni ipiegato sono assegnati da 1 a 5 progetti gni progetto $ assegnato ad al pi 5 ipiegati
+nalizziao le )ardinalit& inie
21
+nalizziao ora le )ardinalit& assie
22
Cardinalit* di una relazione n'aria
Cardinalit* di un attributo
possibile asso)iare delle )ardinalit& an)"e a degli attributi> in odo da; • •
(ndi)are opzionalit&. (ndi)are attributi ulti0alore.
23
%s.
Classificazione delle cardinalit*
Per )lassifi)are una )ardinalit& si f& riferiento sepre alle )ardinalit& assie. Si di)e @uindi )"e abbiao una relazione del tipo; •
%s. 24
•
%s.
•
Molti a olti; Se le )ardinalit& assie delle 2 entit& sono n e n. o
25
%s.
+ota
La an)ata presenza del 0in)olo di )ardinalit& $ e@ui0alente alla )oppia =>n?. %s.
Si tenga in )onsiderazione per )"e 26
"li identificatori non ossono esistere due istanze di una data entit& )"e assuono lo stesso 0alore per tutte le propriet& )"e forano l#identifi)atore =ad esepio> il )odi)e fis)ale di una persona $ uni)o per ogni persona?. -gni entit* deve @uindi a0ere sepre un identifi)atore.
.iologie di identificatori
forato solo da attributi di %. otazione grafi)a; Se l#identifi)atore $ forato da un solo attributo> si anneris)e il )orrispondente pallino.
%s. 27
Se l#identifi)atore $ forato da pi attributi> si unis)ono gli attributi )on una linea )"e terina )on pallino annerito. %s.
Esterno% o
o
o
forato da attributi di % =e da relazioni )"e )oin0olgono %? oppure solo da relazioni )"e )oin0olgono %. (n @uesto )aso> per identifi)are ogni istanza della entit& $ ne)essario spe)ifi)are le istanze degli attributi e la istanza =le istanze? delle relazioni. otazione grafi)a; Si indi)a unendo gli attributi e la relazione )on una linea )"e teriner& )on un pallino annerito. %s.
La atri)ola di uno studente $ uni0o)a all#interno di una tutta0ia se 0ogliao rappresentare tutti gli studenti delle per identifi)are uno studente bisogner& a0ere la )oppia KMatri)ola* a pu a0erne an)"e pi di
uno.
28
1?.
Relazioni IS'A Pu a))adere )"e due )lassi rappresentate da due entit& nello s)"ea )on)ettuale siano una istanza dell#altra. %s. KStudente e KStudente della laurea bre0e. (n @uesti )asi si di)e )"e KStudente "a una relazione di tipo (S*+ )on KStudente della laurea bre0e> ossia KStudente $ padre dell#entit& figlia KStudente della laurea bre0e =oppure )"e KStudente della laurea bre0e (S*+ KStudente> )"e in un linguaggio pi naturale 0orrebbe dire )"e uno studente di una laurea bre0e $ )oun@ue uno studente?. Raresentazione grafica
La relazione (S+ si rappresenta nel diagraa dello s)"ea )on)ettuale ediante una fre))ia dalla sotto entit& alla entit& padre.
29
Princiio di ereditariet*
gni propriet& dell#entit& padre =attributo> relazione> e)).? $ an)"e una propriet& della sotto entit&> e non si riporta espli)itaente nel diagraa. L#entit& figlia pu a0ere o00iaente ulteriori propriet&. %s.
"eneralizzazione uando l#entit& padre generalizza diverse sotto entit* rispetto ad un uni)o )riterio> si parla di generalizzazione. .iologie
Comleta ;
L#unione delle istanze delle sotto entit& $ uguale all#insiee delle istanze dell#entit& padre. %s. L#entit& padre KPersona )on le relati0e entit& figlie K si ottiene per forza l#insiee delle persone. +on comleta ; L#unione delle istanze delle sotto entit& rappresenta solo una parte dell#insiee delle istanze dell#entit& padre. %s. L#entit& padre KPersona )on le relati0e entit& figlie KDo)ente e o
o
•
o
o
30
KStudente . (n @uesto )aso unendo tutti i do)enti e gli studenti> si arri0a a ri)oprire solo una parte delle persone> in @uanto esistono an)"e i non do)enti A la0oratori. Raresentazione grafica
La generalizzazione si indi)a )ollegando ediante un ar)o le sotto entit&> e )ollegando )on una fre))ia tale ar)o alla entit& padre. el )aso in )ui la generalizzazione sia comleta > @uesta fre))ia sar& annerita; %s.
el )aso in )ui la generalizzazione non sia comleta > @uesta fre))ia sar& bian)a;
Princiio di ereditariet*
(l prin)ipio di ereditariet& $ identi)o a @uello delle relazioni (S+. 31
+ote
La stessa entit* pu essere padre in di0erse generalizzazioni. !on)ettualente> non c#) alcuna correlazione tra due generalizzazioni di0erse> per)"U rispondono a due )riteri di0ersi di )lassifi)are le istanze della entit& padre. %s.
Rieilogo uando si de0e odellare un oggetto> per rius)ire a rappresentarlo nel odo )orretto bisogna ragionare )on la seguente logi)a; Sar& un; •
Entit*;
Se "a propriet& signifi)ati0e e des)ri0e oggetti )on esistenza autonoa. Attributo; Se $ sepli)e e non "a propriet& Relazione ; Se )orrela due o pi )on)etti. "eneralizzazione ; Se $ )aso parti)olare di un altro. o
•
o
•
o
•
o
32
Modello relazionale (l odello relazionale $ un modello logico dei dati > ossia un insiee di strutture di rappresentazione utilizzabili per des)ri0ere un insiee di dati =o s)"ea logi)o? )"e a sua 0olta des)ri0e una realt& di interesse. %s. Modellazione di una realt& ediante il odello )on)ettuale
%s. Modellazione di una realt& ediante il odello relazionale
Def. Relazione
•
• •
( 0alori di ogni )olonna =attributo? sono fra loro oogenei =es. u0e> Lazio> e)).?. Le rig"e =n*ple o tuple? sono di0erse fra loro. Le intestazioni delle )olonne =noi di attributi? sono di0erse tra loro.
%s. /ogliao rappresentare )on tre relazioni gli studenti 'ossi Mario> eri Paolo> /erdi Luisa> 'ossi Maria> )on atri)ola> noe> )ognoe> data nas)ita> tutti gli esai superati> )on 0oto> e per i )orsi )orrispondenti il titolo e il do)ente.
Se 0olessio sapere @uanti esai "a passato la studentessa KMaria 'ossi> baster& guardare la atri)ola relati0a a KMaria 'ossi nella relazione KStudenti> e )er)are @uesta atri)ola nella tabella K%sai.
34
Def. Sc(ema di relazione
A 1
, ..,
A n
'=
A 1
>...>
A n
?
%s. Data la seguente tabella;
Lo s)"ea di relazione sar&; Studenti=Matri)ola> oe> !ognoe> Data di nas)ita? Def. Sc(ema basi di dati
tali )"e;
'QV
R1
=
X 1
?> ...>
%s. Data la seguente base di dati;
35
Rk
=
X k
?W
' Q VStudenti=Matri)ola> oe> !ognoe> Data di nas)ita?> %sai =Studente> /oto> !orso?> !orsi =!odi)e> 7itolo> Do)ente?W Def. Ennula
Preso il seguente s)"ea> una possibile ennupla $ =Matri)ola; 6554> !ognoe; 'ossi> oe; Mario> Data di nas)ita; 5A12A1-?. (n @uesto s)"ea di relazione> a0reo @uindi 4 ennuple. Per )on0enzione> $ possibile utilizzare (l sibolo tN+O> )"e denota il 0alore della ennupla t sullFattributo +. %s. Dato il seguente s)"ea di relazione
Def. Istanza di relazione
una relazione $ un insiee di ennuple.
36
%s.
Def. Istanza di basi di dati
=
Ri
?.
X k
?W $ un insiee di relazioni r Q V
r1
>...>
rn
W =)on
R1
= ri
X 1
?> ...>
relazione su
%s. (stanza di base di dati
La base di dati sar& @uindi )ostituita dalle 3 relazioni =Studenti> %sai e !orsi?. Def. Ridondanza
(n una base di dati si definis)e dato ridondante uno o pi dati )"e 0engono rappresentati pi 0olte inutilente. %s. Supponiao di a0ere il seguente database;
37
possibile rappresentare @uesto s)"ea in un odo alternati0o;
!i a))orgiao per di @ual)osa )"e non 0& olto bene> ossia la rietizione inutile di al)uni dati =)on )onseguente spre)o di eoria?> e la presenza di )elle 0uote.
:a)endo un rapido )onfronto fra i 2 s)"ei @uindi> possiao desuere )"e; ello s)"ea a 2 tabelle NStudenti ed %saiO abbiao )"e ogni informazione 0iene rappresentata una 0olta sola. ello s)"ea a 1 tabella NStudenti%saiO abbiao )"e alcune informazioni 0engono rappresentate pi 0olte e abbiao inoltre pi diffi)olt& a distinguere i di0ersi )on)etti rappresentati.
38
$incoli di integrit* C(e cosa sono Def. $incolo di integrit*
Proriet* )"e de0e essere soddisfatta da tutte le istanze di uno s)"ea )"e
rappresentano inforazioni )orrette per l#appli)azione. A cosa servono
%sistono istanze di basi di dati )"e> pur sintatti)aente )orrette> non rappresentano stati possibili nella realt&. %s. Supponiao di 0oler rappresentare gli studenti e gli esai )"e "anno superato )on 0oto> lode =si> no?> data.
(n @uesto )aso non )i sono problei> a se prendiao ora )oe esepio la seguente istanza> )i a))orgiao )"e;
39
( 0in)oli di integrit& @uindi; Permettono una rappresentazione pi a))urata della realt&> e @uindi )ontribuis)ono alla @ualit& dei dati> )io$ alla propriet& dei dati di essere una )orretta rappresentazione della realt&. Sono utili nella progettazione per)"U portano a generare uno s)"ea di ele0ata @ualit&. •
•
.iologie di vincoli
( 0in)oli si suddi0idono in 2 a)ro tipologie; /in)oli intra relazionali; Definiti allCinterno di una relazione. Si suddi0idono a loro 0olta in 4 tipologie; /in)oli su 0alori =o di doinio?; Definiti sui singoli 0alori di attributi. /in)oli di ennupla; Definiti sulle ennuple di una relazione. /in)oli di relazione; /in)oli relati0i allCinsiee ennuple una relazione. /in)oli di )"ia0e. /in)oli inter relazionali; Definiti tra due o pi relazioni. •
o o
•
•
•
•
o
%s.
40
Sintassi
( 0in)oli di integrit& 0engono espressi ediante; '> 7?. !ondizioni eleentari )"e )onfrontano =X> XQ> Q> Y> YQ> / ? 0alori di attributo o espressioni ariteti)"e su di essi. %s. =/oto Z 1-? +D =/oto [ 3? =/oto Q 3? ' 7 =Lode Q \e lode\? • •
!"e in linguaggio naturale sarebbe; (n ogni ennupla il 0oto $ )opreso tra 1- e 3. (l 0oto $ uguale a 3 oppure il )apo KLode non de0e a0ere il 0alore Ke lode. Calcolo del valore di verit*
Per )al)olare il 0alore di 0erit& di un 0in)olo in una n*pla> o))orre sostituire i 0alori degli attributi nella n*pla e poi )al)olare il 0alore 0ero o falso. %s. Y……> /oto; 24> ……X (l 0alore del 0in)olo; =/oto Z 1-? +D =/oto [ 3? $ 24 XQ 1- +D 24 [ 3 Q /ero.
$incoli di ennula C(e cosa sono
( 0in)oli di ennupla sono condizioni sui 0alori di )ias)una ennupla in una relazione. 41
%s. Data la seguente istanza di s)"ea;
=/oto Q 3? ' 7 =Lode Q \e lode\? Solo se il 0oto $ Q 3 $ possibile attribuire una lode. el prio )aso> a0reo )"e 0oto $ uguale a 3 =@uindi la )ondizione 0oto Q 3 $ 0era?> entre la )ondizione )"e il )apo KLode non abbia il 0alore Ke lode $ falsa =infatti il 0alore $ Ke lode? tutta0ia essendo)i l#operatore ' l#intera )ondizione $ 0era =0ero or falso 0ero?.
el se)ondo )aso in0e)e abbiao )"e la )ondizione 0otoQ3 non $ soddisfatta =$ 2> @uindi il 0alore di 0erit& $ falso?. La )ondizione )"e il )apo KLode non abbia il 0alore Ke lode $ falsa =infatti il 0alore $ Ke lode?> e @uindi a0reo un falso ' falso falso.
%s. Data la seguente istanza di s)"ea;
ossia; Lordo Q ='itenute ] etto?
$incoli di c(iave C(e cosa sono
( 0in)oli di )"ia0e perettono di identificare univocamente ogni ennupla. ( 0in)oli )orrispondono a propriet& del ondo reale odellato dalla base di dati> e sono propriet& dello s)"ea =)io$ fanno riferiento a tutte le possibili istanze?.
42
A cosa servono
Supponiao di a0ere la seguente istanza dello s)"ea;
ne)essario poter identifi)are uni0o)aente ogni studente. Per farlo> $ ne)essario )apire @uali insiei di attributi della tabella identifi)ano uni0o)aente> senza abiguit&> uno studente. (n @uesto )aso> il )apo KMatri)ola $ in grado di identifi)are uni0o)aente ogni studente> in @uanto pi studenti possono a0ere lo stesso noe o )ognoe =ad esepio 'ossi Mario?. Prendiao un altro esepio. Supponiao di a0ere la seguente istanza dello s)"ea;
L#identifi)azione di ogni ennupla a00iene ediante la )oppia KStudente*!orso.
43
(nfatti nella tabella esai uno stesso studente pu a0er passato pi esai> e pi )orsi possono essere stati passati da pi studenti> tutta0ia ogni studente pu a0er passato solo una 0olta lo stesso esae. .iologie di c(iavi
Supponiao di a0ere la seguente istanza dello s)"ea;
Def: C(iave
Attributo in grado di identifi)are uni0o)aente le ennuple di una relazione. Def: Suer c(iave 0o Suer c(iave non minimale1
^ $ una super )"ia0e se l#insieme dei suoi attributi $ in grado di identifi)are uni0o)aente ogni ennupla in @uanto non esistono 2 ennuple )on gli stessi 0alori di @uesti attributi. %s. Matri)ola ] )ognoe $ super )"ia0e> per)"U nell#insiee dei suoi attributi )#$ KMatri)ola )"e $ una super )"ia0e. %s. L#insiee di attributi =!ognoe> oe> !orso> Dataas)ita? $ una super)"ia0e non iniale in @uanto l#insiee di attributi =!ognoe> oe> Dataas)ita? $ una super)"ia0e. Def: Suer c(iave minimale
^ $ an)"e )"ia0e per r se $ una super )"ia0e iniale per r =)io$ non )ontiene un#altra super )"ia0e?. ssia; Si di)e )"e una )"ia0e $ super )"ia0e iniale se nessuno dei suoi attributi )ontengono altre super )"ia0i. %s. Matri)ola $ )"ia0e per)"U $ iniale =nell#insiee dei suoi attributi )#$ solo una super )"ia0e?. %s. L#insiee di attributi =!ognoe> oe> Dataas)ita? $ una super)"ia0e iniale> in @uanto nessun altro sottoinsiee di =!ognoe> oe> Dataas)ita? $ una super)"ia0e. (nfatti; 44
!ognoe*oe
!ognoe*as)ita
oe*as)ita
$alori nulli Def: $alore nullo
/alore )"e denota l#assenza di un 0alore del doinio =e non $ un 0alore del doinio?. ( 0alori nulli sono 0alori parti)olari utilizzati @uando; * (l 0alore $ s)onos)iuto =non lo )onos)iao a esiste?. * (l 0alore non esiste. * (l 0alore $ senza inforazione =non sappiao se esiste o eno> e )oun@ue non lo abbiao?. 45
.B. ( DBMS non distinguono le 3 tipologie di 0alori. %s.
Raresentazione
Per rappresentare un 0alore nullo> si utilizza il 0alore K
%s.
Limite dei valori nulli
+l)uni 0alori nulli possono essere aissibili> altri in0e)e no. %s. /alore nullo aissibile
(n @uesto )aso sepli)eente non sappiao la data di nas)ita di un dato studente. 46
%s. /alore nullo non aissibile
(n @uesto )aso non a0rebbe senso non sapere la atri)ola di uno studente> in @uanto )osi non sareo in grado di identifi)arlo. (n generale la presenza dei 0alori nulli sulle )"ia0i non perette pi la funzionalit& della )"ia0e> e pertanto @uesti 0alori 0anno liitati A non peressi. Def. C(iave Primaria
!"ia0e =generi)a? su )ui non sono ammissibili 0alori nulli.
%s.
$incoli di integrit* referenziale 0di c(iave1 Def .
/in)olo di integrit& referenziale
il pi iportante 0in)olo inter relazionale> per)"U esprie una propriet& KstrutturaleK degli s)"ei di relazione e delle istanze )orrispondenti in una base di dati. an)"e )"iaato 0in)olo di K)"ia0e esternaK o Kforeign 8eEK> per)"U lCinsiee di attributi G della relazione esterna '1 )oin)ide )on la )"ia0e priaria di '2. %s. Supponiao di 0oler rappresentare la relazione logi)a )"e esiste tra 0igili )"a segnalano infrazioni =rappresentati )on atri)ola> )ognoe> e noe? e le infrazioni 47
segnalate =rappresentate )on )odi)e> data> 0igile> pro0in)ia e nuero targa della autoobile?. (nforalente di)iao )"e; ella tabella K(nfrazioni 0i sia il )odi)e di un 0igile )"e non esiste nell#anagrafi)a della tabella K/igili.
(n @uesto )aso notiao )"e tutti i 0alori di /igile nella relazione K(nfrazioni sono rappresentati nella )"ia0e KMatri)ola della relazione K/igili. otiao per )"e nella tabella K/igili 0i $ un 0igile )"e non )opare nella tabella infrazioni;
48
uesto per non $ un problea> in @uanto signifi)a sepli)eente )"e @uel 0igile non "a fatto ulte. Raresentazione grafica
Per rappresentare grafi)aente un 0in)olo di integrit& referenziale si )ollega )on una fre))ia il )apo da referenziare> )"e 0a 0erso il )apo della tabella in )ui de0ono esistere tutti i 0alori presenti del )apo dal @uale parte la fre))ia. %s.
Rieilogo %s. di uno s)"ea relazionale
49
50
Progettazione concettuale C(e cos#)
La progettazione )on)ettuale rappresenta l#analisi dei re@uisiti utente e la relati0a trasforazione nel odello relazionale.
51
Problematic(e (l problea durante @uesta fase $ )"e spesso i dati forniti dall#utente sono abigui e ri))"i di sfuature. %s.
Strategie di analisi uando i re@uisiti sono olto arti)olati e )oposti da di0erse pagine di testo $ ne)essario a0ere di un piano di azione )"e peretta di fare le s)elte di progettazione. Le strategie prin)ipali sono 2; 'i)er)a dei re@uisiti pi iportanti; Prendiao in esae il seguente s)"ea; •
o
52
el 1 passo si iniziano a tirar fuori @uelle entit& )"e risultano essere pi iportanti =in @uesto )aso studente?. el 2 passo si iniziano a )er)are @uali relazioni e @uali entit& sono )ollegate al )on)etto prin)ipale =in @uesto )aso studente?. el 3 passo si raffinano tutti @uesti )on)etti odellati. 'i)er)a di tutte le possibili entit&; Prendiao in esae il seguente s)"ea; o
o
o
•
o
o o
o
el 1 passo si iniziano a tirar fuori tutte le possibili entit&. el 2 passo si iniziano a )er)are @uali relazioni esistono fra @ueste entit&. el 3 passo si raffinano tutti @uesti )on)etti odellati.
Qualit* di uno sc(ema concettuale Def: Qualit*
Insieme di caratteristic(e desiderabili per rappresentare uno s)"ea )on)ettuale.
Quali sono
Le @ualit& di uno s)"ea )on)ettuale sono 5; Correttezza; •
'ispetto ai re@uisiti; o
I re2uisiti vengono raresentati nello s)"ea in )oerenza )on il
signifi)ato dei )on)etti nel odello %*'. %s. di )orrettezza 'appresentare il legae tra Persona e !itt& di nas)ita )on una relazione 1 a n. %s. di non )orrettezza 'appresentare il legae tra Persona e !itt& di nas)ita )on una relazione 1 a 1. 'ispetto al odello; I concetti del modello sono usati nello s)"ea in a))ordo al loro signifi)ato. %s. positi0o;
o
•
o
o
53
o
%s. negati0o; (n una base dati di indirizzi usare una entit& per il )on)etto di uero )i0i)o.
Comletezza; .utti i re2uisiti de0ono essere rappresentati nello s)"ea. • •
•
%s. positi0o; (n una data in )ui non sia di interesse spe)ifi)are l#ora del giorno> rappresentare la data )oe giorno> ese> anno. %s. negati0o; on rappresentare il 0oto nella relazione %sae.
Pertinenza; •
•
• •
!aratteristi)a )opleentare rispetto alla )opletezza> infatti in @uesto )aso non vi devono essere nello sc(ema )on)etti )"e non )opaiono nei re@uisiti. %s. negati0o; 'appresentare nella relazione %sae l#ora e il inuto in )ui $ stato 0erbalizzato l#esae. %s. negati0o Supponiao di a0ere i seguenti re@uisiti; ,li studenti superano i )orsi attra0erso esai> )on un )erto 0oto. (l progettista s0iluppa lo s)"ea aggiungendo)i per an)"e la data.
(l progettista pu a0er aggiunto @uesto )apo per una sua 0ista di )opletezza =)"e in @uesto )aso pu a0er senso? tutta0ia $ sepre eglio )"iedere )onfera al )liente> e @uindi in @uesto )aso lo s)"ea non $ pertinente. Minimalit*; • •
•
on 0i de0ono essere pi )on)etti )"e rappresentano gli stessi re@uisiti. %s. negati0o 'appresentare la !itt& di as)ita di Studente )on un attributo della entit& Studente e )on una relazione ato a tra ato*Studente e !itt&. .B; La non inialit& =ridondanza? a li0ello )on)ettuale pu essere aessa.
Leggibilit*; •
•
•
Lo s)"ea de0e rappresentare i re@uisiti in odo )oprensibile> ossia l#utente non de0e fare un grande sforzo nel )apire i re@uisiti guardando lo s)"ea. !aratteristi)a dello s)"ea per )ui lo s)"ea rappresenta il signifi)ato dei re@uisiti> senza ne)essit& di ulteriore do)uentazione aggiunti0a. Pu essere di 2 tipi; Leggibilit& grafi)a; (ntesa )oe leggibilit& del diagraa rappresentante lo s)"ea> basata sul rispetto di )riteri esteti)i> @uali; on 0i de0ono essere in)ro)i tra linee. o
•
54
o
•
Le linee de0ono essere orizzontali o 0erti)ali> non obli@ue.
•
%s.
Per aiutarsi a )ostruire uno s)"ea pi Krigido si pu iaginare di organizzare il foglio ediante una griglia =iaginaria o reale?.
Leggibilit& )on)ettuale; (ntesa )oe s)elta delle strutture del odello )"e> in 0irt delle loro propriet&> danno luogo ad uno s)"ea )opatto> e @uindi pi sepli)e da )oprendere.
55
%s.
(n @uesto )aso grazie alla relazione (S+ otteniao uno s)"ea pi leggibile e )opatto.
Strategie di rogettazione Le strategie di progettazione pi avanzate possono essere di 3 tipologie; •
.o'do!n;
Da un pi))olo s)"ea olto astratto si passa a s)"ei 0ia 0ia pi dettagliati. Si parte inizialente )er)ando le 0arie entit& e assegnandole i relati0i attributi. Segue @uindi la ri)er)a delle relazioni tra le 0arie entit&. Si )er)ano e0entuali entit& da generalizzare. Bottom'u; Da tanti pi))oli s)"ei fatti di po)"i )on)etti si passa alla loro integrazione in uno s)"ea )opleto. Steps; Si analizza l#insiee delle spe)ifi)"e. o
o
o o
•
o
o
ueste spe)ifi)"e 0engono fraentate fino a @uando @uesti fraenti non sono abbastanza sepli)i da poter esser rappresentati ediante un insiee di s)"ei )on)ettuali.
56
•
0erranno uniti nello s)"ea finale.
Inside'out ; o
Dal )on)etto pi iportante si 0a 0erso tutti gli altri Ka a))"ia d#olio.
Possiao riassuere @ueste 3 strategie indi)andone i 0antaggi e gli s0antaggi; Metodologi a 7op*Don
Botto*
/antaggi
S0antaggi
* on )i sono ai ristrutturazioni da fare. * (n ogni oento il progettista rappresenta sepre l#intero insiee dei re@uisiti. * aturale. * Perette di di0idere il la0oro di progettazione tra di0ersi gruppi 57
* Po)o naturale. * 'i)"iede una ele0ata )apa)it& di doinare spe)ifi)"e )oplesse. * 'i)"iede ristrutturazioni> per)"U la progettazione separata di parti di s)"ei porta a possibili ridondanze e in)onsistenze.
(nside*ut
* aturale> per)"U parte dai )on)etti pi iportanti e poi pro)ede 0erso @uelli di dettaglio
* Porta an)"#essa a ristrutturazione> a eno rispetto la Botto
Da @uest#analisi> pro0iao @uindi a )reare una strategia mista > ossia; • •
•
Mi_ delle 3 tipologie in )ui 0engono presi solo i 0antaggi di ogni tipologia. Si parte indi0iduando i )on)etti prin)ipali realizzando uno s)"ea a s)"eletro =ossia uno s)"ea )"e ra))oglie i )on)etti pi iportanti?.
Si s)eglie se )ontinuare )on una strategia ista di tipo; 7op don )opleta; +nalisi dei re@uisiti; +nalizzare i re@uisiti ed eliinare le abiguit& 'aggruppare i re@uisiti in insiei oogenei Passo base Definire uno s)"ea s)"eletro )on i )on)etti pi 'ile0anti. Passo iterati0o; Da ripetere fin)"U non sono stati rappresentati re@uisiti. Steps; 'affinare i )on)etti presenti sulla base delle loro spe)ifi)"e. +ggiungere )on)etti per des)ri0ere spe)ifi)"e non des)ritte =in odalit& inside> @uindi oderata?. /erifi)are le @ualit& dello s)"ea e e0entualente odifi)arlo per raggiungere le @ualit& desiderate =)er)are e0entuali alternati0e )"e porterebbero a igliorare lo s)"ea?. (brida; +nalisi dei re@uisiti. Passo base; !reare uno s)"ea s)"eletro. De)oposizione =passo botto*up?; De)oporre i re@uisiti )on riferiento ai )on)etti nello s)"ea s)"eletro. !reare i di0ersi sottos)"ei. Passo iterati0o> per ogni sottos)"ea (ntegrazione; (ntegrare i 0ari sottos)"ei in uno s)"ea )oplessi0o> fa)endo riferiento allo s)"ea s)"eletro. +nalisi di @ualit&; !er)are e0entuali alternati0e )"e porterebbero a igliorare lo s)"ea. o
• •
• •
• •
o
o
o
o
•
•
•
•
•
Possiao riassuere i vantaggi e gli svantaggi della te)ni)a ista; Metodologi
/antaggi
S0antaggi 58
a Mista
* !oniuga tutti i 0antaggi delle pre)edenti> antenendo sepre una rappresentazione )opleta delle spe)ifi)"e.
* 'i)"iede una 0isione )oplessi0a delle spe)ifi)"e =pi oderataente rispetto la top don?.
Algebra Relazionale C(e cos#) ( odelli )on)ettuali e logi)i perettono di des)ri0ere inforazioni> a non sono direttaente interpretabili da un elaboratore. Per poter eseguire delle oerazioni sulle basi di dati =ad esepio interrogare e aggiornare? $ ne)essario utilizzare dei linguaggi dotati di una sintassi propria. Le operazioni possibili sono di 2 tipologie; •
DDL; o o
•
+)ronio di Data Definition Language. peratori )"e ermettono di des)ri0ere uno s)"ea
DML; o o
+)ronio di Data Manipulation Language. peratori )"e ermettono di effettuare anipolazioni sui dati.
( linguaggi di interrogazione si distinguono in & categorie; Procedurali; •
•
•
Descrivono )oe 0iene generato il risultato> spe)ifi)ando le odalit& di
generazione. Des)ri0ono l#ordine delle singole operazioni )"e> se eseguite nel loro insiee> )i perettono di generare il risultato. %s.
Dic(iarativi; •
Dic(iarano )"e )osa de0#essere ottenuto nel risultato. 59
•
•
•
•
Des)ri0ono direttaente @uali sono le )aratteristi)"e del risultato> e poi sar& il DBMS a generare il risultato. %s. an)"e se @uesto linguaggio $ solo teori)o. %s. ossia un linguaggio adottato nei DBMS per interrogare direttaente la BD ediante un Kesepio. uesto linguaggio utilizza un interfa))ia grafi)a olto intuiti0a e user*friendlE. %s.
-eratori La caratteristica comune degli operatori $ )"e operano su relazioni e produ)ono relazioni. Si suddi0idono in; •
peratori insieisti)i; peratori )"e perettono di effettuare delle operazioni su insiei =unione> intersezione e differenza?. 'idenoinazione. Selezione. Proiezione. oin; oin aturale> 7"eta `oin> Prodotto )artesiano. o
• • • •
o
Semantica
La seanti)a di un operatore esprie il signifi)ato dell#operatore> ossia @uali elaborazioni effettua. %s. L#operatore di selezione indi)a @uali )api ostrare nel risultato. Sintassi
60
La sintassi di un operatore rappresenta un insiee di regole )"e de0ono essere rispettate per )oporre l#istruzione. %s. L#operatore di selezione in SL si indi)a ediante il )oando KS%L%!7.
-eratori insiemistici %ssendo le relazioni degli insiei> gli eleenti dell#insiee sono sepre distinti tra loro =appaiono al pi una sola 0olta?. /algono @uindi le prin)ipali propriet& degli operatori insieisti)i; 1. possibile appli)arli solo a relazioni a relazioni definiti sugli stessi attributi. 2. ( risultati de0ono essere relazioni> @uindi ennuple identi)"e 0engono sepli)eente ra))olte in unFuni)a ennupla.
-eratore di 3nione
Si appli)a a 2 o pi relazioni =definite sugli stessi attributi?> fornendo come risultato una relazione )"e )oprende tutte le ennuple della pria relazione e tutte le ennuple della se)onda relazione =le ennuple identi)"e 0engono raggruppate?. Def ;
L#unione di due relazioni r1 e r2 $ la relazione rQ r1 ∪ r2 )"e )ontiene le tuple )"e appartengono ad r1oppure ad r2> oppure ad entrabe. La sintassi $ la seguente;
%s.
61
-eratore di Intersezione
Si appli)a a 2 o pi relazioni =definite sugli stessi attributi?> fornendo come risultato una relazione )"e )oprende solo le ennuple )ouni nella pria relazione e nella se)onda relazione. Def ;
L#intersezione L#intersezione di due relazioni r1=G? e r2=G? definite su un insiee di attributi G $ la relazione r=G?Q r1=G? ∩ r2=G? )ontenente le tule c(e aartengono sia a r1=G? )"e a r2=G?. La sintassi $ la seguente;
%s.
-eratore di Differenza
Si appli)a a 2 o pi relazioni =definite sugli stessi attributi?> fornendo come risultato una relazione )"e )oprende le ennuple della pria relazione )"e non )opaiono an)"e nella se)onda relazione. Def ;
La differenza tra due relazioni r1=G? e r2=G? definite su un insiee di attributi G $ la relazione r=G?Q r1=G? * r2=G? )ontenente le tule c(e aartengono solo a r1=G?. La sintassi $ la seguente;
62
%s.
-eratore di ridenominazione Supponiao di 0oler effettuare la seguente s eguente unione;
L#operazione L#operazione a li0ello naturale a0rebbe senso> tutta0ia non $ possibile in @uanto =)oe gi& detto? l#unione ) ossibile solo su relazioni )on gli stessi attributi. uesta operazione $ possibile per grazie all#operatore onadi)o =)io$ )on un argoento? di ridenoinazione> )"e \odifi)a lo s)"ea\ las)iando inalterata lFistanza dellFoperando =ossia rinoina sepli)eente un )apo?. Sintassi;
'% uo0o!apo
!apoDa'inoinare =oe7abella?
%s.
63
Se riprendiao l#esepio fatto po)o sopra> )i a))orgiao )oe l#operazione di unione tra le 2 tabelle Padre e Madre di0enti possibile.
-eratore di selezione L#operatore L#operatore onadi)o di selezione perette di selezionare un sottoinsiee delle ennuple> e roduce un risultato c(e ; * 9a lo stes stesso so s)"e s)"ea a dell dellFo Fope pera rand ndo. o. * !ontiene !ontiene un sottoins sottoinsiee iee delle ennuple ennuple )"e )"e soddisfan soddisfano o una una )ondizion )ondizionee espressa espressa dall#operatore. La sintassi $ la seguente; 64
Do0e la )ondizione $ un espressione booleana )"e segue la seguente sintassi; Data una relazione r=G?> $ una forula ottenuta )obinando )on i )onnetti0i '> +D> e 7 )ondizioni atoi)"e del tipo; + !:' B oppure + !:' )> do0e; 1. !:' $ un operatore di )onfronto =Q> X> e)).?. 2. + e B sono attributi in G sui )ui 0alori !:' abbia senso. 3. ) $ una )ostante per )ui il )onfronto !:' sia definito.
%s. !ondizioni Dato il seguente s)"ea;
Seleziona gli ipiegati )"e; * ,uadagnano pi di 5 Stipendio X 5 * ,uadagnano pi di 5 e 0i0ono a Milano Stipendio X 5 +D :iliale Q CMilano# * 9anno un )ognoe uguale al noe del luogo della filiale presso )ui la0orano !ognoe Q :iliale
:a))iao @uindi un esepio )opleto Dato il seguente s)"ea;
1. Seleziona gli ipiegati )"e guadagnano pi di 5; 65
2. Seleziona gli ipiegati )"e guadagnano pi di 5 e la0orano a Milano;
3. Seleziona gli ipiegati )"e "anno un )ognoe uguale al noe del luogo della filiale presso )ui la0orano;
-eratore di Proiezione L#operatore onadi)o di proiezione produ)e un risultato )"e; * 9a una parte degli attributi dellFoperando. * (l risultato )ontiene le ennuple dellFoperando ristrette ai soli attributi nella lista attributi. La sintassi $ la seguente;
66
%s. Dato il seguente s)"ea;
1. 7ro0a atri)ola e )ognoe di tutti gli ipiegati
2. 7ro0a )ognoe e filiale di tutti gli ipiegati
Rieilogo oeratori di selezione e roiezione (n sostanza> l#operatore di selezione perette di selezionare al)une ennuple> entre l#operatore di roiezione perette di proiettare solo gli attributi =)api? desiderati. 67
!obinando insiee @uesti operatori $ possibile effettuare interrogazioni pi irate. %s. Dato il seguente s)"ea;
7ro0are atri)ola e )ognoe degli ipiegati )"e guadagnano pi di 5
7utta0ia> @uesti 2 operatori sono limitati alla singola relazione sulla @uale 0engono eseguiti =es. la tabella (piegati?.
-eratore di 4oin + differenza degli altri operatori )"e non )reano nuo0e relazioni> @uesto operatore )rea in0e)e nuo0e relazioni. uesto operatore perette infatti di ettere insiee dati )"e si tro0ano in relazioni di0erse. %s.
68
4oin naturale
la tipologia di `oin pi sepli)e> e produ)e un risultato; Sull#unione degli attributi degli operandi. !on le ennuple )ostruite )ias)una a partire da una ennupla di ognuno degli operandi. (l risultato sar& @uindi dato dagli attributi della relazione '1 e della relazione '2> e le sue ennule saranno solo @uelle )"e a0ranno gli stessi 0alori nello stesso attributo di entrabe le relazioni. • •
(l `oin naturale utilizza imlicitamente i noi degli attributi per stabilire la )ondizioneR La sintassi $ la seguente;
'1 ( '2 %s. Supponiao )"e la relazione (piegato*'eparto si )"iai (piegati e )"e la relazione 'eparto*!apo si )"iai 'eparti. (niziao )on l#unire la n*pla 'ossi*+ )on +*Mori
69
70
(n fine> uniao Bian)"i*B )on B*Bruni
(l risultato )"e si ottiene> rappresenta la lista degli ipiegati e dei )api a loro asso)iati. uando =)oe in @uesto )aso? ogni ennupla di entrabe le relazioni )ontribuis)e al risultato> si parla di 5oin comleto . uando in0e)e non tutte le ennuple di entrabe le relazioni =o an)"e di una sola? )ontribuis)ono al risultato> si parla di 5oin non comleto.
71
(n @uesto )aso essendo il 0alore C+# di0erso dal 0alore C!# non $ possibile a))oppiarle> e @uindi di fatto non )ontribuis)ono al risultato. uando in0e)e nessuna delle n*ple )ontribuis)e al risultato> si parla di 5oin vuoto. %s.
(n @uesto )aso infatti> non esiste nessun 0alore )ontenuto nel )apo 'eparto della relazione '1 )"e esiste nel )apo 'eparto di '2.
4oin esterno 72
Supponiao di a0ere le seguenti relazioni;
Se do0essio fare un `oin fra @ueste 2 relazioni> )i a))orgereo )"e le ennuple 'ossi*+ e !*Dini non si a))oppierebbero
Per far si )"e 0engano sal0ate an)"e le ennuple )"e non si a))oppiano> si pu utilizzare il `oin esterno. (l `oin esterno Kestende )on 0alori nulli le ennuple )"e 0errebbero noralente es)luse in un `oin naturale.
%sistono 6 tiologie di 5oin esterno ; 73
•
Sinistro =Left 4oin?; Mantiene tutte le ennuple del prio operando. %s. o o
•
Destro =Rig(t 4oin?; Mantiene tutte le ennuple del se)ondo operando. %s. o o
•
!opleto =7ull 4oin ?; 74
o o
Mantiene tutte le ennuple =sia del prio )"e del se)ondo operando?. %s.
Prodotto cartesiano (l prodotto )artesiano $ un `oin naturale appli)ato a relazioni )"e non "anno attributi in )oune. (l risultato dell#operatore sar& una relazione )"e )ontiene il nuero delle ennuple della relazione '1> oltipli)ato per il nuero delle ennuple della relazione '2. La sintassi $ la seguente;
%s.
'1
'2
75
-eratore .(eta 4oin (l prodotto )artesiano "a senso solo se seguito da una selezione> ossia una 0olta prodotto tutte le possibili ennuple> si selezionano solo @uelle di interesse. La sintassi $ la seguente;
Do0e la )ondizione $ un +D di operatori di )onfronto =X> Y> Q> e))..?. %s.
(n alternati0a> era an)"e possibile utilizzare la seguente sintassi;
L#oeratore E2ui'4oin uando l#oeratore utilizzato in una t"eta `oin $ l#uguaglianza> allora si parla di e@ui `oin. La sintassi $ la seguente;
76
%s.
.B. uesto esepio $ identi)o a @uello del t"eta `oin> la differenza sostanziale fra i 2 operatori per $ )"e nel t"eta `oin si sarebbe an)"e potuto utilizzare l#operatore Kdi0erso o Kaggiore A inore> entre nell#e@ui `oin $ obbligatorio utilizzare l#operatore di uguaglianza. 4oin naturale vs E2ui 4oin
La differenza prin)ipale tra `oin naturale ed e@ui `oin $ )"e il 5oin naturale utilizza ipli)itaente gli attributi uguali per fare il `oin> entre l#e2ui 5oin li indi)a espli)itaente nella )ondizione =ed $ @uindi possibile effettuare dei `oin su attributi )on noi di0ersi?.
1. 7ro0are l#insiee delle relazioni sulle @uali appli)are gli operatori. 2. Pro)edi se)ondo una strategia Kdall#interno 0erso l#esterno> ossia una strategia )"e all#inizio K)ollega le 0arie relazioni e )"e poi Keliina tutto )i )"e non ser0e =attributi e A o ennuple )"e non soddisfano deterinate )ondizioni?; a. !er)a di )apire se ser0ono dei `oin sulle relazioni> in @uanto spesso le inforazioni )"e )i ne)essitano sono fraentate in pi relazioni. b. !er)a di )apire se 0i sono operazioni insieisti)"e =)"e non alterano la struttura della tabella? in grado di farti a00i)inare al risultato. ). (ndi0idua e0entuali selezioni per selezionare solo @uelle ennuple )"e soddisfano le )ondizioni desiderate. d. Definis)i la proiezione finale della relazione> ossia @uali )api 0uoi 0isualizzare.
77
%s. Supponiao di a0ere la seguente base di dati;
Supponiao di 0oler ottenere una relazione )"e ostrer& gli studenti )on atri)ola> )ognoe> insiee degli esai sostenuti )on il noe del )orso ed un 0oto aggiore di 24. 1. L#insiee delle relazioni sulle @uali appli)are gli operatori sono tutte e 3 le tabelle> in @uanto solo )on l#operatore di proiezione ne)essitereo dei )api Studenti*Matri)ola> Studenti*!ognoe> %sae*/oto> %sae*!orso> !orsi*7itolo. 2. peratori; a. oin; sono ne)essari dei `oin su Studenti*Matri)ola Q %sai*Studente> e %sai*!orso Q !orsi*!odi)e> ossia; Studenti 4-I+
Matricola 8 Studente
Esami 4-I+
Corso 8 Codice
Corsi
tteniao @uindi una relazione =)"e )"iaereo Studenti*%sai*!orsi? )oposta dagli attributi Matri)ola> !ognoe> oe> Data di nas)ita> /oto> 7itolo> Do)ente?. b. (n @uesto )aso non )i ser0ono operazioni insieisti)"e> in @uanto grazie ai `oin otterreo tutte le inforazioni )"e )i ser0ono. ). !oe operazione di selezione noi 0ogliao 0isualizzare solo @uegli studenti )"e abbiano ottenuto una 0alutazione aggiore di 24> e @uindi; SEL
$oto9&:
0Studenti'Esami'Corsi1
d. !oe proiezione in0e)e> noi siao interessati a 0isualizzare solo i )api Matri)ola> !ognoe> 7itolo e /oto> e @uindi; PR-4
Matricola; Cognome; .itolo; $oto
78
3. !oponiao @uindi le 3 di0erse operazioni; PR-4 Matricola; Cognome; .itolo; $oto 0 SEL $oto9&: 0Studenti 4-I+ Matricola 8 Studente Esami 4-I+ Corso 8 Codice Corsi11
(n @uesto )aso per> l#interrogazione forerebbe pria tutta la tabella )on tutte le possibili ennuple> e poi di @ueste farebbe una selezione. !oe possibile ottiizzazione si potrebbe fare il `oin diretto su @uegli esai )on una 0alutazione superiore al 24. PR-4 Matricola; Cognome; .itolo; $oto 0 Studenti 4-I+ Matricola 8 Studente 0SEL $oto9&: 0Esami11 4-I+ Corso 8 Codice Corsi1
$iste Le 0iste sono una sorta di relazioni 0irtuali> do0e si pu assegnare ad un noe siboli)o una porzione dell#interrogazione. $antaggi •
• •
Seplifi)azione della s)rittura delle @uerE =grazie alla riduzione della lung"ezza totale della @uerE?. La ripetizione di e0entuale )odi)e nelle @uerE risulta eno fastidioso. Lettura seplifi)ata.
Svantaggi •
L#utilizzo delle 0iste non influis)e sulle prestazioni.
%s.
79
SQL +l )ontrario dell#algebra relazionale> SL $ un linguaggio dic(iarativo . ossia spe)ifi)a )osa si 0uole> non )oe lo si 0uole.
Qualit* di una interrogazione
+d oggi i )opilatori ottiizzano in autoati)o le @uerE> pertanto il progettista do0rebbe s)egliere la @uerE pi )oprensibile possibile.
-eratore Select Perette di selezionare un insiee di )api e re)ord ediante delle deterinate )ondizioni. (n prati)a rappresenta l#operatore P' dell#algebra relazionale. Sintassi
80
Lista degli attributi =)api? da 0isualizzare> separati da 0irgola. Lista delle tabelle )oin0olte dalla @uerE> separate da 0irgola. :orula ottenuta )obinando i )onnetti0i +D> '> 7. + !:' B oppure + !:' )> do0e; 1. !:' e# un operatore di )onfronto =Q> YX >Y> X> YQ> XQ> L(^%> B%7I%%> (S (S 7
.B. el )aso in )ui interessino tutti gli attributi di una stessa relazione> $ possibile utilizzare il )arattere al posto di elen)are tutti gli attributiR
Supponiao di a0ere il seguente s)"ea;
/ogliao sapere il noe e il reddito delle persone )on eno di 3 anni.
Sele)t :ro (piegati I"ere 'edditoY3
e@ui0alente a
e@ui0alente a
Sele)t oe> %t&> 'eddito :ro (piegati I"ere 'edditoY3
!"e in +' )orrisponde a; Sele)t :ro (piegati
81
S%L 'edditoY3 =(piegati?
I"ere 'edditoY3 Semantica
1. /iene effettuato il prodotto )artesiano delle tabelle )itate nella :'M. 2. Seleziona dal prodotto )artesiano le n*ple )"e soddisfano la )ondizione presenti nella I9%'%. 3. Delle n*ple selezionate> fornis)i in output solo i 0alori degli attributi )itati nella Lista+ttributi.
Similitudine tra AR e SQL Supponiao di a0ere il seguente s)"ea;
S)ri0iao una @uerE in algebra relazione e in SL )"e selezioni noe> )ognoe e ansione degli ipiegati dell#uffi)io 1.
otiao )oe SL sia olto siile all#+'> per tanto 0algono le stesse strategie di rogettazione.
Strategie di rogettazione Per SL 0algono le stesse strategie di progettazione delle @uerE in +'. 82
1. (ndi0iduiao le relazioni c(e ci servono ; a. La relazione su )ui effettuare la interrogazione $ Persone =:ro Persone?. 2. 7iltriamo prendendo solo le ennuple )"e )i interessano; a. Selezione delle persone )on eno di 3 anni =I"ere %t& Y 3?. 3. Mostrare solo gli attributi )"e )i interessano; a. Produrre oe e 'eddito =Sele)t oe> 'eddito?.
%s. Supponiao di a0ere il seguente s)"ea;
/ogliao sapere il noe e il reddito delle persone )on eno di 3 anni.
+ppli)"iao le strategie;
(ndi0iduiao le relazioni =in @uesto )aso la tabella Persone )ontiene tutte le inforazioni )"e )i interessano?.
:ro Persone
83
:iltriao solo le ennuple )"e )i interessano =Persone )on eno di 3 anni?.
I"ere %t& Y 3
Mostriao solo gli attributi )"e )i interessano.
Sele)t oe> 'eddito
-eratore di ridenominazione possibile rinoinare al)uni attributi utilizzando l#oeratore AS per @uestioni di leggibilit& oppure in )aso di `oin ultiplo )on lo stesso attributo. %s. Leggibilit& Supponiao di a0ere il seguente s)"ea;
uerE; Selezionare i noi> i )ognoi e le )itt& di pro0enienza degli ipiegati. S%L%!7 oe> !ognoe> )itt& +S )itt&pro0enienza :'M (piegato tteniao @uindi @uesto s)"ea;
84
%s. oin ultiplo Supponiao di a0ere il seguente s)"ea;
uerE; Selezionare i noi e i )ognoi degli ipiegati> le )itt& di pro0enienza e le )itt& in )ui la0orano. S%L%!7 oe> !ognoe> !itt&Dip +S )itt&la0oro> !itt& +S )itt&pro0enienza :'M (piegato> Dip I9%'% Dipart Q oeDip
(n alternativa all#oeratore AS $ an)"e possibile oetterlo ottenendo lo stesso signifi)atoR (n @uesto )aso si parla di variabile di assegnazione. %s. S%L%!7 oe> !ognoe> !itt&Dip )itt&la0oro> !itt& )itt&pro0enienza :'M (piegato> Dip I9%'% Dipart Q oeDip (noltre la ridenoinazione $ alicabile anc(e ai noi delle relazioni. %s. S%L%!7 oe> !ognoe> !itt&Dip> !itt& :'M (piegato> Dip Dipartiento I9%'% Dipart Q oeDip +otazione +ome.abella<+omeAttributo +ome.abella<+omeAttributo 85
se + $ il noe di un attributo ed G $ il noe di una relazione su )ui $ definito +> G.+ denota l#attributo + della relazione G.
%s. Supponiao di a0ere il seguente s)"ea;
S%L%!7 Studenti.Matri)ola> oe> !ognoe :'M Studenti> %sai> !orsi !orso I9%'% Studenti.Matri)ola Q %sai.Matri)ola +D %sai.!orso Q !orso.!odi)e
Condizione LI=E
86
La )ondizione L(^% 0iene appli)ata alle string"e> e funziona )oe tutti gli altri operatori )ondizionali. Le )ondizioni possono essere 2; •
peratore C#; (ndi)a )"e in @uesta posizione @ualsiasi )arattere andr& bene. peratore Cc#; (ndi)a )"e una stringa pu a0ere un nuero @ualsiasi di )aratteri e di 0alore. o
•
o
%s. Supponendo di 0oler tro0are le persone )"e "anno un noe )"e inizia per C+# C+# e )oe terza lettera "anno una Cd#> allora; allora; S%L%!7 :'M Persone I9%'% oe L(^% C+dc#
%s. Supponendo di 0oler tro0are le persone )"e "anno un noe )"e finis)e per C# e )oe terza lettera "anno una Cl#> allora; allora; S%L%!7 :'M Persone I9%'% oe L(^% Clc# %s. Supponendo di 0oler tro0are le persone )"e "anno nel noe la lettera C)#> allora; S%L%!7 :'M Persone I9%'% oe L(^% Cc)c#
$alori nulli ( 0alori nulli "anno la stessa interpretazione dei 0alori nulli in +'. %s. Dato il seguente s)"ea;
87
Supponiao di 0oler sapere @uali ipiegati "anno pi di 4 anni o potrebbero a0erne pi di 4. S%L%!7 :'M (piegati I9%'% %t&X4 ' %t& is
Clausola Distinct +l )ontrario dell#algebra relazionale> in SL e0entuali ennuple identi)"e 0erranno antenute. Per o00iare a @uesta probleati)a esiste la )lausola Distin)t> )"e ser0e appunto ad eliminare e0entuali tuple identi)"e. %s. Supponendo di a0ere il seguente s)"ea;
Supponiao di 0oler a0ere il )ognoe e la filiale di tutti gli ipiegati; (n +' sarebbe;
88
(n SL in0e)e;
S%L%!7 !ognoe> :iliale :'M (piegati
S%L%!7 Distin)t !ognoe> :iliale :'M (piegati
-eratore 4oin L#operatore di `oin unis)e 2 o pi relazioni in unFuni)a relazione> ediante un attributo in )oune. Per spiegare le 0arie tipologie di `oin prendiao in esepio il seguente s)"ea;
89
( `oin si suddi0idono in & macro categorie ; •
4oin interni ; o o o
il `oin di default. on 0engono )onsiderate le ennuple )"e non si a))oppiano. Si suddi0idono in; 4oin imlicito ; %ffettua il `oin in odo autoati)o in base alla )ondizione ri)"iesta. %s. Sele)t Paternit&.:iglio> Madre> :iglio :ro Maternit&> Paternit& I"ere Paternit&.:iglio Q Maternit&.:iglio 4oin eslicito ; %ffettua il `oin direttaente sulle tabelle su espli)ita ri)"iesta su @uali attributi farlo. La )ondizione @uindi non )opare nella )lausola I9%'% a direttaente nella )lausola :'M> rendendo @uindi la @uerE pi )oprensibile rispetto un#altra )on il `oin ipli)ito. Sintassi; S%L%!7 … :'M 7abella1 ( 7abella2 !ondizioneDioin I9%'% … %s. Sele)t Paternit&.:iglio> Madre> :iglio :ro Maternit& ( Paternit& Paternit&.:iglio Q Maternit&.:iglio oin naturale;
•
•
•
•
• •
•
90
•
• •
•
4oin esterni ; o o
%ffettua il `oin su attributi )on lo stesso noe delle 2 relazioni. Po)o utilizzato. %s. S%L%!7 Madre> Paternit&.:iglio> Padre :'M Maternit& +7<'+L ( Paternit&
%stende )on 0alori nulli @uelle ennuple )"e non si a))oppiano. %sistono 3 tipologie; Left uter oin; un `oin interno )on in aggiunta le tuple )"e non si a))oppiano della tabella )"e sta a sinistra. Sintassi; '1 left outer `oin '2 %s. Sele)t Paternit&.:iglio> Padre> Madre :ro Maternit& LE7. -3. 4-I+ Paternit& Maternit&.:iglio Q Paternit&.:iglio 'ig"t uter oin; un `oin interno )on in aggiunta le tuple )"e non si a))oppiano della tabella )"e sta a destra. Sintassi; '1 rig"t outer `oin '2 %s. Sele)t Paternit&.:iglio> Padre> Madre :ro Maternit& RI">. -3. 4-I+ Paternit& Maternit&.:iglio Q Paternit&.:iglio :ull uter oin; un `oin interno )on in aggiunta le tuple )"e non si a))oppiano di entrabe le tabelle. Sintassi; '1 full outer `oin '2 %s. Sele)t Paternit&.:iglio> Padre> Madre :ro Maternit& 73LL -3. 4-I+ Paternit& Maternit&.:iglio Q Paternit&.:iglio
•
•
•
•
•
•
•
•
•
Clausola di -rdinamento La )lausola di ordinaento perette di ordinare le ennuple della relazione fornita )oe risultato in base ad uno o pi attributi. Sintassi
'D%' BH +ttributo %s. 91
Supponendo di a0ere il seguente s)"ea;
% la seguente @uerE; %len)are lo stipendio> la ansione e il noe di tutti gli ipiegati )"e "anno stipendio X 4> ordinando il risultato in ordine )res)ente in base allo stipendio.
-rdine in modo decrescente
Di default l#operatore ordina in odo )res)ente> a $ possibile aggiungere la notazione DESC per ordinare in odo de)res)ente. %s. Supponendo di a0ere il seguente s)"ea;
% la seguente @uerE; %len)are lo stipendio> la ansione e il noe di tutti gli ipiegati )"e "anno stipendio X 4> ordinando il risultato in ordine de)res)ente in base allo stipendio.
-rdine su i? attributi 92
possibile ordinare tenendo )onto di pi attributi. (n @uesto )aso 0erranno ordinati partendo dal prio attributo sul @uale fare l#ordinaento )"e 0iene spe)ifi)ato> fino all#ultio. %s.
-eratori aggregati ,li operatori aggregate sono funzioni )"e si appli)ano sull#insiee delle tuple prodotte dall#interrogazione base. %ssendo una funzione> restituiranno un uni)o 0alore. Sintassi
Per spiegare i 0ari operatori> 0err& preso )oe esepio il seguente s)"ea;
93
Count
%ffettua la )onta delle ennuple )"e "a per argoento. %s. 7ro0are il nuero dei figli di :ran)o
Sele)t C-3+. 0@1 as u:igliDi:ran)o :ro Paternit& I"ere Padre Q C :ran)o# !oe pria operazione la 0err& eseguita la @uerE noralente =@uindi la selezione delle ennuple )"e soddisfano la )ondizione? L#operatore !ount opera sull#insiee delle 94
ennuple restituite dalla @uerE; Sele)t :ro Paternit& I"ere Padre Q C:ran)o# .B. ( valori nulli 0engono )onteggiati dagli operatori aggregatiR %s. Supponendo di a0ere il seguente s)"ea;
Sele)t !<7 =? :ro Persone 4 Sele)t !<7='eddito? :ro Persone 3 Sele)t !<7=Distin)t 'eddito? :ro Persone
2
Min
!er)a il 0alore =nueri)o? inio dall#insiee di 0alori di un attributo.
Ma
!er)a il 0alore =nueri)o? assio dall#insiee di 0alori di un attributo. Avg 95
!al)ola la edia =su un )apo nueri)o? dall#insiee di 0alori di un attributo. %s. !al)ola la edia dei redditi dei figli di :ran)o Sele)t A$"0Reddito1 as 'edditoMedio :ro Persone oin Paternit& n oeQ:iglio I"ere PadreQ#:ran)o# Supponendo di a0ere il seguente s)"ea;
Sele)t +/, ='eddito? +s 'edditoMedio :ro Persone 25>6 Sele)t +/, =? +s 'edditoMedio :ro Persone %rrore Sele)t +/, =oe? +s 'edditoMedio :ro Persone %rrore
Sum
!al)ola la soa =su un )apo nueri)o? dell#insiee dei 0alori di un attributo. %s.
Limite degli oeratori aggregati
Supponiao di 0oler tro0are la persona )on il reddito assio e il suo noe. 96
Sele)t oe> Ma_='eddito? :ro Persone
on $ sintatti)aente )orrettaR
(nfatti gli oeratori aggregati non "anno la stessa seanti)a degli attributi> e @uindi non $ possibile utilizzarli insiee ad altri attributi =a eno di non usare la )lausola ,roup BE?.
7ro0are l#et& inia e il reddito edio delle persone. Sele)t Min=%t&?> +0g='eddito? :ro Persone
!orretta
-eratore "rou B
Le funzioni di aggregazione si appli)ano all#intero risultato dell#interrogazione> tutta0ia ediante l#operatore ,'
Semantica
1. /iene eseguita la 2uer senza tener )onto degli operatori aggregati A funzioni. 2. 'aggruppa le rig"e )"e "anno gli stessi 0alori per gli attributi )"e )opaiono nella lista attributi della group bE. 3. +ppli)a l#operatore aggregato a )ias)un gruppo di ennuple. %s. Supponiao di a0ere il seguente s)"ea;
97
uerE; 7ro0are il nuero dei figli di )ias)un padre )"e "anno un reddito aggiore di 25. Sele)t Padre> !ount=? :ro Paternit& I"ere 'edditoX25 ,roup BE Padre L#ordine di ese)uzione $ il seguente; Select Padre> !ount=? 7rom Paternit* (ere Reddito9&
,roup BE Padre ssia> tro0a tutti i figli )"e "anno un reddito superiore a 25 Sele)t Padre> !ount=? :ro Paternit& I"ere 'edditoX25 "rou B Padre
ssia> raggruppa ne ennuple del risultato per padre =le ennuple )"e a0ranno lo stesso padre saranno 0iste )oe un sottoinsiee di una ennupla. Sele)t Padre; Count0@1 :ro Paternit& I"ere 'edditoX25 ,roup BE Padre ssia> esegui il )onteggio dei gruppi della relazione risultante. Limite dell#oeratore
(n una @uerE )"ef & uso di @uesto operatore )#$ una regola fondamentale da rispettare> ossia )"e pu )oparire )oe argoento della sele)t =ossia l#insiee degli 98
attributi della target list? solaente un sottoinsiee degli attributi )"e )opaiono nella )lausola group bE.
%s. !orretto 7ro0a il nuero dei figli di )ias)un padre )on un reddito aggiore di 5 Sele)t Padre> !ount=? +s u:igli :ro Paternit& I"ere 'edditoX5 ,roup BE Padre %s. S)orretto Supponiao di a0ere il seguente s)"ea;
L#interrogazione; Sele)t Dipartiento> !ount= in @uanto nella target list degli attributi della sele)t )#$ l#attributo K
99
Sele)t Dipartiento> !ount=
on essendo)i restrizioni nella selezione> la pria operazione s0olta $ @uella di raggruppaento.
Select Diartimento; 3fficio; Count03fficio1
:ro (piegato ,roup BE Dipartiento !i a))orgiao per )"e @uesta rappresentazione non $ )oerente )on la definizione di istanza del odello relazione> do0e le ennuple non possono a0ere ulti 0alori per lo stesso attributoR %s. !orretto e s)orretto )on group bE ulti attributi
Clausola >aving Mediante la )lausola ,'
100
7utta0ia 7utta0ia solo )on @uesta )lausola non $ possibile espriere )ondizioni su @uesti sotto insiei =ossia )ondizioni )"e se soddisfatte perettono alla ennupla di entrare nel sotto insiee?. Semantica
La )lausola 9+/(, ermette di esrimere )ondizioni sui gruppi> )"e 0engono appli)ate ad ogni sotto insiee insiee di ennuple )"e 0engono restituite restituite )oe risultato della group bE.
Sintassi
%s. Supponiao di a0ere il seguente s)"ea;
101
% la seguente @uerE; 7ro0are 7ro0are i padri i )ui figli "anno un reddito aggiore di 25.
>aving $S (ere
La )lausola >ERE 0err& utilizzata @uando si 0orranno espriere )ondizioni su ennuple eleentari> entre la )lausola >aving 0err& utilizzata @uando si 0orranno espriente )ondizioni su gruppi di ennuple. %s.
-eratori insiemistici 102
Semantica
egli operatori insieisti)i le ennule dulicate 0engono eliinate =e @uesto per)"U per definizione de0ono restituire insiei?. L#oerazione insiemistica ) ossibile solo su )api )"e abbiano lo stesso signifi)ato e )"e seguano lo stesso ordine =) anc(e ossibile effettuarli su relazioni
di0erse> pur)"$ poi si selezionino gli stessi )api da entrabe le relazioni e nello stesso ordine?. -eratore di 3nione
Supponiao di a0er il seguente s)"ea;
Se 0olessio a0ere una relazione )"e )oprende il padre e la adre )on il relati0o figlio; Sele)t Padre> :iglio :ro Paternit& 3+I-+
Sele)t Madre> :iglio :ro Maternit& -eratore di Intersezione
Supponiao di a0er il seguente s)"ea; Persona =oe> !ognoe> %t&?
Se 0olessio tro0are i noi degli ipiegati )"e sono an)"e )ognoe; Sele)t oe :ro (piegato I+.ERSEC.
Sele)t !ognoe :ro (piegato -eratore di Differenza 103
Supponiao di a0er il seguente s)"ea; Persona =oe> !ognoe> %t&?
Se 0olessio tro0are i noi di ipiegati )"e non sono an)"e )ognoe di altri ipiegati; Sele)t oe :ro (piegato ECEP.
Sele)t !ognoe :ro (piegato
$iste Le 0iste possono essere )onsiderate )oe tabelle virtuali > e sono parti)olarente utili @uando si 0ogliono effettuare dei `oin dei singoli attributi di interesse e non di intere tabelle. 9anno la stessa funzionalit* delle 0iste in +'> a entre nell#AR 0engono solo utilizzate per rendere pi leggibile il )odi)e> in SQL 0engono utilizzate an)"e per possibili ottiizzazioni dei `oin. Sintassi
La sintassi per )reare una 0ista $ la seguente;
!'%+7% /(%I \noedi0ista\ +S \istruzioneSL \ %s. Supponiao di a0er il seguente s)"ea;
!reate /ie 'el/is +S KSele)t 'eddito :'M Persone
104
Se 0olessi effettuare un `oin )on @uesta tabella; Sele)t :ro 7ab1 ( 'el/is
Interrogazioni nidificate el )aso in )ui il )onfronto tra 0alori eleentari non sia suffi)iente> $ possibile effettuare il )onfronto fra intere relazioni. Sintassi
Le interrogazioni nidifi)ate perettono; •
!onfronto fra uno o pi attributi e il risultato di una sotto interrogazione; Do0e; L#attributo =o gli attributi? nella )lausola "ere pu essere )onfrontato )on il risultato dell#interrogazione ediante i seguenti operatori di )onfronto Q> Y> YQ> X> XQ> YX. Subito l#operatore di )onfronto; +nE A (n; (l 0alore dell#attributo soddisfa la )ondizione se risulta 0ero )"e nella sotto @uerE esiste aleno una ennupla )"e soddisfa la )ondizione. +ll; (l 0alore dell#attributo soddisfa la )ondizione se risulta 0ero )"e nella sotto @uerE tutte le ennuple soddisfano la )ondizione. ot (n A YX +ll; (l 0alore dell#attributo soddisfa la )ondizione se risulta 0ero )"e nella sotto @uerE non esiste al)una ennupla )"e soddisfa la )ondizione. o
•
o
•
o
•
o
105
o
o
%s. Supponiao di a0ere il seguente s)"ea;
Supponiao di 0oler tro0are il noe e il reddito dei padri di :ran)es)o e ,iorgio;
gni 0alore di oe della tabella Persone 0iene )onfrontato )on il risultato dell#interrogazione interna> ossia i padri di :ran)es)o e ,iorgio. (l )onfronto restituis)e il 0alore K0ero se un @ualsiasi padre selezionato nella sele)t "a )oe figlio :ran)es)o o ,iorgio.
•
o
•
106
Sintassi; I"ere EIS.S Q =SottouerE? ot %_ists; Seanti)a; 'estituis)e il 0alore 0ero se esiste nessun 0alore nella sotto @uerE )"e soddisfa la )ondizione. Sintassi; I"ere +-. EIS.S Q =SottouerE? %s.
•
o
•
•
o
Strategie di semantica
/i sono 2 tipologie di appro))io; •
7op*Don; La @uerE 0iene analizzata partendo Kdall#alto 0erso Kil basso> ossia si eseguire l#interrogazione partendo dai blo))"i pi esterni 0erso @uelli interni =nell#esepio sotto? dal 0erde> al rosso fino al 0iola. Botto* ossia si esegue l#interrogazione partendo dall#interno e 0ia 0ia raffinandolo =nell#esepio sotto? dal 0iola> al rosso fino al 0erde. o
•
o
%s. Supponiao di 0oler tro0are oe> 'eddito dei padri di Persone )"e guadagnano pi di 2 ila.
107
Strategia top*don;
Strategia botto*up;
108
Regole di visibilit*
1. +on ) ossibile fare riferimenti da blo))"i esterni a 0ariabili definite in blo))"i interni. Se una variabile 0iene definita in un blo))o> $ 0isibile soltanto nello stesso blo))o o nei suoi sotto blo))"i.
2. (n un blo))o pi interno si u, fare riferimento a 0ariabili definite in blo))"i pi esterni. uesta regola $ )opleentare alla pria.
3. Se un nome di variabile ) omesso > si assue )oe riferiento la 0ariabile pi 0i)ina =nel blo))o pi 0i)ina in )ui $ stata di)"iarata?. 4. on $ possibile eseguire le @uerE dai blo))"i interni 0erso i blo))"i esterni =a )ausa della 1 regola?. /ale @uindi solo la semantica to'do!n .
Consigli sulla costruzione delle 2uer 7ase F G Analisi in linguaggio naturale •
:ai un analisi della ri)"iesta in linguaggio naturale> ossia; !er)a di )apire @uali attributi bisogna produrre in output. %segui Ka ano l#interrogazione per )apire @uali relazioni saranno )oin0olte. o o
7ase & ' Individuazione delle oerazioni base •
!er)a di )apire @uali sono i `oin =i )ollegaenti fra le tabelle?. 109
• •
•
!er)a se ser0ono aggregazioni. !er)a le selezioni =)apire se de0on esser fatte su singole tuple o su un insiee di tuple?. !er)a gli operatori insieisti)i.
7ase 6 G Scelta fra forma semlice H nidificata •
La fora nidifi)ata andrebbe utilizzata in )asi olto )oplessi =nei )asi in )ui si ne)essita una ri)orsione> in )ui per ogni tupla di una sele)t> $ ne)essario )onfrontarla )on un nuo0o insiee indi0iduato da una sele)t.
7ase : G Distribuzione degli oeratori • • •
Distribuis)i i `oin> gli operatori insieisti)i e le )ondizioni nel "ere A "a0ing. (n )aso di aggregazioni rispetta le regole tra gli attributi della sele)t e group bE. S)egli e0entuali operazioni ariteti)"e =es. )ount? nella sele)t alla fine =in @uanto 0erranno effetti0aente s0olte alla fine?.
7ase G Caso di 2uer nidificata •
•
(n fase di progettazione $ possibile progettare la @uerE sia )on appro))io top* don )"e botto*up :inita la stesura> bisogna ri)ontrollarla in odalit& top*don per 0erifi)are )"e non 0ioli una delle regole di 0isibilit&.
7ase G .est • • •
7esta la @uerE su pi input per 0erifi)arne la )orrettezza. /erifi)a i risultati parziali> per isolare e0entuali errori. (n )aso di errore> dopo la )orrezione riesegui la fase 6.
Rieilogo SQL
110
Progettazione logica La progettazione logi)a rende in inut ; *
-biettivo .radurre lo sc(ema concettuale in uno s)"ea logi)o )orretto =ossia de0e
rappresentare la stessa realt& del odello %'? ed effi)iente =il )ari)o appli)ati0o de0e utilizzare il eno possibile la eoria e il tepo di )al)olo?. Def .
!ari)o appli)ati0o (nsiee di tutte le @uerE )"e estraggono inforazioni sulle basi di dati unito all#insiee delle transazioni )"e odifi)ano le istanze del DB. ueste operazioni 0engono )onsiderate in ordine di fre@uenza e tepo ipiegato per )ias)una operazione. Def .
%ffi)ienza 'endere inio l#insiee delle risorse elaborati0e =eoria> !P<> tepo?.
111
(l problea $ )"e alcune strutture del odello )on)ettuale =%'? non sono rappresentabili nel odello logi)o =relazionale?. ( )asi pi iportanti sono; * * * *
Le generalizzazioni Le relations"ip ,li attributi ulti 0alore ,li identifi)atori
Misura delle risorse elaborative Le risorse prin)ipali )"e $ ne)essario ottiizzare sono rincialmente & ; •
.emo ; o o
7epo per ne)essario per eseguire l#operazione ri)"iesta. !oe si isura; Mediante la ta0ola degli a))essi )"e des)ri0e per ogni operazione rile0ante> il nuero di istanze A entit& 0isitate.
•
Sazio ; o o
Spazio o))upato dalle entit& e relazioni. !oe si isura; Mediante la ta0ola dei 0olui )"e des)ri0e il nuero delle istanze delle entit& e relazioni.
7ase F G Ristrutturazione dello sc(ema ER Lo scoo di @uesta fase $ @uella di seplifi)are la traduzione nello odello relazionale )ostruendo un nuovo sc(ema ER e@ui0alente al pre)edente a senza le strutture )"e non sono rappresentabili nel odello relazionale =es. le generalizzazioni?. (noltre il nuo0o s)"ea do0r& ottiizzare le prestazioni del )ari)o appli)ati0o.
F< Analisi delle ridondanze
1.
%s. 'idondanza di un attributo sulla stessa entit&
(n @uesto )aso l#attributo K(porto del lordo pu essere deri0ato dalla soa di K(porto netto e K(/+. %s. +ttributo deri0abile da altre entit&
(n @uesto )aso il prezzo totale $ deri0abile dalla soa dei prezzi di tutti i prodotti a)@uistati. %s. 'elazione deri0abile ediante un altro Kper)orso
(n @uesto )aso la relazione KDo)enza $ deri0abile> in @uanto $ possibile sapere se una persona $ do)ente di uno studente 0edendo @uali )orsi fre@uenta lo studente e @uali sono gli insegnanti di @uesti )orsi.
2. (n @uesta fase si )er)a di )apire se las)iare le ridondanze o eno> )er)ando di )apire @uali sono i; a. /antaggi; i. (nterrogazioni pi sepli)i. b. S0antaggi; i. perazioni di aggiornaento pi onerose. ii. Maggiore o))upazione dello spazio di eoria. ). L#analisi a00iene ediante uno studio della ta0ola dei 0olui e @uella degli a))essi. %s. +nalisi dei 0antaggi A s0antaggi di una ridondanza. Supponiao di a0ere il seguente s)"ea; 113
L#attributo Kuero abitanti $ ridondante> in @uanto $ deri0abile. /ediao @uindi se )on0iene riuo0erlo o eno. Carico alicativo
perazione 1 (nserire una nuo0a persona )on la relati0a )itt& di residenza. :re@uenza 5 0olte al giorno
perazione 2 Stapare tutti i dati di una )itt&> in)luso il nuero degli abitanti. :re@uenza 2 0olte al giorno
.abella dei volumi
Analisi con la ridondanza Calcolo della tavola degli accessi er l#oerazione F ;
Do0e; K(nserire una nuo0a persona 1 a))esso in s)rittura su Persona K!on la relati0a )itt& 1 a))esso in s)rittura su 'esidenza La penultia ennupla indi)a la lettura del 0alore Kuero abitanti L#ultia ennupla indi)a la s)rittura =aggiornaento? del nuero degli abitanti =]1?.
Calcolo della tavola degli accessi er l#oerazione & ;
Do0e; KStapa i dati di una )itt&
1 a))esso in lettura
114
Calcolo dei costi
:orula a))essi fre@uenza di a))esso perazione 1 N=3 a))essi in s)rittura? 2 ] 1 in letturaO 5 Q 35 perazione 2 =1 a))esso in lettura? 2 Q 2 .B. ,li a))essi in s)rittura 0engono fatti in eoria prin)ipale> e @uindi si )onta un doppio trasferiento da eoria se)ondaria a eoria prin)ipale e 0i)e0ersa.
Analisi senza ridondanza Calcolo della tavola degli accessi er l#oerazione F ;
Do0e; K(nserire una nuo0a persona 1 a))esso in s)rittura su Persona K!on la relati0a )itt& 1 a))esso in s)rittura su 'esidenza
Calcolo della tavola degli accessi er l#oerazione & ;
Do0e; KStapa i dati di una )itt& 1 a))esso in lettura Si))oe non abbiao pi l#attributo Kuero abitanti do0reo )al)olar)elo =utilizzando la ta0ola dei 0olui?> e per farlo si far& una stia> di0idendo il nuero delle ennuple della relazione K'esidenza per @uello di K!itt& 'esidenza A !itt& Q 1.. A 2 Q 5
Calcolo dei costi
:orula a))essi fre@uenza di a))esso perazione 1 N=2 a))essi in s)rittura? 2O 5 Q 2 perazione 2 =51 a))essi in lettura? 2 Q 12 .B. ,li a))essi in s)rittura 0engono fatti in eoria prin)ipale> e @uindi si )onta un doppio trasferiento da eoria se)ondaria a eoria prin)ipale e 0i)e0ersa.
Rieilog(iamo 115
(l )osto totale delle operazioni )on la ridondanza sar& dato dalla soa dei )osti delle 2 operazioni; P1 ] P2 Q 35 ] 2 Q 352 (l )osto totale delle operazioni )on la ridondanza sar& dato dalla soa dei )osti delle 2 operazioni; P1 ] P2 Q 2 ] 12 Q 122 (n sostanza senza la ridondanza bisogner& si ri)al)olare ogni 0olta il nuero degli abitanti di una )itt&> in @uanto l#operazione 2 $ talente rara )"e non )on0iene eorizzare l#attributo in eoria. Senza @uesta ridondanza infatti> non solo si risparia dello spazio su dis)o per tenere in eoria il 0alore> a si rispariano -5 a))essi giornalieri> e @uindi ogni 0olta )on0iene ri)al)olare il nuero degli abitanti &< Eliminazione delle generalizzazioni e IS'A
1. on essendo rappresentabili nel odello relazionale> 0anno sostituite con entit* o relazioni . 2. /i sono 6 ossibilit* ; a. +))orpaento delle entit* figlie con l#entit* genitore . %s.
116
(n @uesto )aso gli attributi singoli +11 di %1 e +21 di %2 sono stati a))orpati nell#entit& padre. Per rius)ire a distinguerli per> sar& ne)essario aggiungere un nuo0o )apo 7ipo. b. +))orpaento dell#entit* genitore con le entit* figlie . %s.
117
). Sostituzione delle generalizzazioni con relazioni ; %s.
118
La relazione ',1 )ollega le istanze di %1 )on le identi)"e istanze di % =e analogaente su))ede )on %2?. La )ardinalit& inia di % in ',1 $ in @uanto esistono istanze di % )"e non sono di %1 =@uando sono di %2? e analogaente su))ede per ',2. L#identifi)atore esterno di %1 indi)a )"e le istanze di %1 sono identifi)ate dalle )orrispetti0e in % =e analogaente per %2?.
3. La s)elta fra @ueste 3 alternati0e utilizzando delle regole 2ualitative ; a. 'egola 1; Entit* figlie "enitore i. !on0iene se gli a))essi al genitore e alle figlie sono fatti dalle stesse operazioni. b. 'egola 2; "enitore Entit* figlie i. !on0iene se gli a))essi alle figlie 0engono fatte da operazioni di0erse. ). 'egola 3; "eneralizzazione Relazione i. !on0iene se gli a))essi alle entit& figlie sono distinti dagli a))essi al padre.
6< Partizionamento H accoramento delle entit* H relazioni
1.
b. Raggruando gli attributi di )on)etti di0ersi )"e 0engono a))eduti insiee da olte operazioni. 3. 7ipologie di ristrutturazione; a. Partizionaento 0erti)ale di entit&; %s. Supponiao di a0ere un entit& (piegato )on i relati0i attributi;
!oe sappiao> gli attributi anagrafi)i non 0ariano olto nel tepo> entre @uelli relati0i alla retribuzione 0ariano pi spesso. !oe soluzione> Kspezziao l#entit& in 2 entit& di0idendo gli attributi;
b. Eliminazione attributi multi valore ; i. el odello relazione gli attributi ulti 0alore non sono rappresentabili. ii. ueste eliinazione 0iene @uindi effettuata non per fini prestazionali> a per seplifi)are la traduzione dal odello logi)o al odello relazionale. %s. Supponiao di a0ere un#agenzia )"e pu a0ere pi nueri di telefono.
120
Possiao eliinare l#attributo ulti 0alore in @uesta aniera;
(n sostanza di)iao )"e un agenzia pu a0ere da 1 a pi nueri di telefono> entre un nuero di telefono pu essere referenziato ad 1 e 1 sola agenzia. Si noti )oe nonostante un nuero di telefono possa essere un identifi)atore> 0iene utilizzato un identifi)atore esterno in @uanto un istanza di telefono "a senso solo se asso)iata ad un agenzia. ). +))orpaento di entit& A relations"ip; i. Supponiao )"e tutti gli attributi siano a))eduti tutti insiee dalla aggioranza delle operazioni. ii. Per e0itare operazioni di `oin e altre operazioni> )on0iene a))orpare tutti @uesti attributi in unFuni)a entit&. %s.
121
La soluzione in @uesto )aso $ @uindi @uella di a))orpare tutti gli attributi in unFuni)a entit&.
(n @uesto )aso era possibile a))orpare per)"U una persona pu a0ere da a 1 appartaenti. Se a0esse potuto a0ere da a n appartaenti> @uesto a))orpaento non sarebbe stato possibile> in @uanto una persona sarebbe do0uta )oparire pi 0olte nella stessa tabella> a @uesto non $ possibile a )ausa dell#uni)it& del )odi)e fis)ale. d. Partizionaento orizzontale di relations"ip; i. el partizionaento orizzontale lo s)opo $ @uello di Kdi0idere istanze )"e raraente 0erranno a))edute da @uelle )"e in0e)e a0ranno un a))esso pi fre@uente. %s.
(n @uesto )aso interessa sapere in @uale s@uadra gio)a un gio)atore> entre do0e "a gio)ato interesser& raraente.
122
La relazione K!op. +ttuale sar& @uella pi a))eduta> ed a0endo eno ennuple al suo interno le operazioni risulteranno pi 0elo)i.
:< Scelta degli identificatori rimari
1. Criteri di scelta ; a. L#identificatore dev#essere strutturalente sepli)e e forato da po)"i attributi. b. L#attributo scelto )oe identifi)atore de0#essere utilizzato da olte operazioni o per operazioni iportanti> in odo da ottiizzare l#a))esso. ). L#attributo non de0e )ontenere 0alori nulli. 2. el )aso in )ui tutti gli attributi di un entit& non soddisfino @uesti )riteri> $ possibile introdurre un nuovo attributo )on il solo s)opo di essere l#identifi)atore. %s. Di )odi)i !odi)e fis)ale Persone Matri)ola Studenti uni0ersitari Partita (/+ +ziende
7ase & G .raduzione del modello logico F< .raduzione delle entit*
1. Le entit* del odello logi)o di0entano relazioni nel odello relazionale. 2. "li attributi di un entit& nel odello logi)o di0entano gli attributi nel odello relazionale. 123
%s.
&< .raduzione delle relazioni
1. Regola base ; a. Le relations"ip %' sono tradotte in relazioni a0enti )oe attributi; i. ,li identifi)atori delle entit& )oin0olte =in odo da relazionare le 0arie istanze delle di0erse relazioni tra loro?. ii. ,li attributi propri.
%s.
2. $incoli di integrit* ; a. Matri)ola =in Parte)ipazione? e la )"ia0e di (piegato. !odi)e =in Parte)ipazione? e la )"ia0e di Progetto. b. Per oti0i di leggiblit&> $ possibile ridenoinare le )"ia0i esterne in Parte)ipazione. %s.
124
6< Relations(i n'arie%
a. :orate da; i. 7ante relazioni @uante sono le entit&. ii.
!on i relati0i 0in)oli di integrit&;
125
6< Casi articolari
1. !aso parti)olare relazione F%n ; a. Supponiao di a0ere nello s)"ea una super )"ia0e non iniale. b. La traduzione dello s)"ea segue inizialente la regola generale.
%s.
). !i a))orgiao per )"e nella relazione !ontratto> la )"ia0e =!ogn,io)atore> Dataas),> S@uadra? $ super )"ia0e a non priaria> per)"U la )"ia0e !ognoe*Dataas)ita in 0irt della )ardinalit& 1;1> deterina uni0o)aente la s@uadra. d. Possiao @uindi eliinare la tabella della relazione in @uesta aniera; 126
!on @uesto nuo0o s)"ea abbiao il vantaggio di a0ere una relazione in eno> pur antenendo la stessa @uantit& di inforazione. e. (n )on)lusione> @uando abbiao una relazione F%n non appli)"iao la regola generale> a una regola )"e dar& luogo a 2 sole relazioni> do0e; i.
%s.
6< Entit* con identificazione esterna%
a. Supponiao di a0ere il seguente s)"ea> )on un identifi)atore esterno e )on )ardinalit& fra le 2 entit& 1 a n; %s.
127
%ssendo una relazione 1 a n> possiao appli)are lo stesso prin)ipio del 1 )aso parti)olare> e @uindi eliinare la relazione K(s)rizione ed integrarla nella relazione Studente =insiee alla )"ia0e esterna
:< Relazione F a F%
a. !aso 1; i. Entrambe le entit* "anno parte)ipazione inia Q 1.
%s.
ii. /i sono 2 possibili soluzioni; 1. :ondere la relazions"ip da una parte =o dall#altra? )on una delle 2 entit&. 128
2. :ondere le 2 entit& e la relations"ip in unFuni)a relazione =a $ s)onsigliato in @uanto @uesta tipologia di ristrutturazione do0reo a0erla gi& fatta nell#a))orpaento> e @uindi se non $ stata fatta signifi)a )"e )#era un oti0o?.
b. !aso 2; i.
%s.
La soluzione $ @uella di inglobare nella relazione )"e "a )ardinalit& inia 1 l#altra entit&.
Se a0essio usato in0e)e Direttore )oe entit& in )ui in)orporare Dipartiento> essendo )"e la )ardinalit& inia $ 0i sarebbero stati potenziali 0alori nulliR ). !aso 3; i. Entrambe le entit* "anno parte)ipazione inia Q .
129
ii. (n @uesto )aso la soluzione migliore $ @uella di utilizzare 3 relazioni. (l vantaggio prin)ipale $ )"e nella relazione non )i saranno 0alori nulli> a )oe svantaggio a0reo 3 relazioni =@uindi una )opli)azione per le interrogazioni?. iii. uesta soluzione andr& s)elta @uando )i saranno po)"e istanze della relazione (s)rizione.
Rieilogo (dea di base 7radu)i pria; 1. Le entit& =)"e in )asi parti)olari )oporta an)"e la traduzione delle relazioni> do0e la relazione ' 0iene integrata nell#entit& %?. 2. Le relazioni. 3. Le relazioni definite sulla stessa entit& =se 0i sono pi relations"ip tra le stesse entit&> fai una distinzione ediante una ridenoinazione degli attributi?.
%s. Supponiao di a0ere il seguente s)"ea;
130
+ppli)"iao il prio passo> ossia la traduzione delle entit&;
(niziao )on la traduzione dell#entit& Sede. L#attributo )oposto 0iene sepli)eente s)oposto in attributi pi sepli)i.
Pro)ediao )on la traduzione dell#entit& Progetto.
'appresentiao ora l#entit& Dipartiento> do0e possiao an)"e rappresentare la relazione !oposizione per)"U dipartiento "a un identifi)atore esterno )on una relazione 1;1 e @uindi possiao an)"e inserire la )"ia0e di Sede> e lo stesso 0ale per la relazione Direzione> do0e possiao utilizzare l#attributo KDirettore.
131