317 98 83MB
Italian Pages 260 Year 2001
Sistemi di basi di datl Fondamenti- ' - .
lndice
Presentazione ajl‘edizionc itaiiana
XVII
Prefazione Strutrura dell‘ edizione itaiiana Capitolo 1 Basi di dati e utenti di basi di dati 1.1 Introduzione 1.2 Un esempio 1.3 Carattcrislichc dell’approccio con basi di dati
1.4
1.5 1.6
1.3.1
Natura autodescrilfiva di un sistema di basi di dati
1.3.2
Separazione tra programmi c dali e astrazionc dei daft
.
1.3.3
Supporto di viste multiple dei dati
1.3.4
Condivisionc dci dati ed elaborazione delle transazioni con utenti mlfltipli
Glj attori in scena 1.4.1 1.4.2
Amministratofi Progenisti
1.4.3 1.4.4
Utenu' finafi Analisti di sistema e programmatori di applicazioni (ingegneri del
software) I lavoratori dietro 1e quinte Vantaggi dell‘uso di un DBMS 1.6.1 Coqtmllo defla ridondanza 1.6.2 Divieto all’accesso non autorizzato
1.6.3
Memofizzazione persistente di oggetti e strutture di dati
1.6.4
Definizione di regole di inferenza e regole Che usano azioni
12 13 13 14 15 15
zioni complessc fra dati 1.6.6' Rappresentazione di associa 1:11 integrith hnposizione di Vino011 Fomitura d1 backup 5 recovery
2.1
Capitolo 4
23
Concgtti e ambit-13mm! di un sistema (1i basi di dati
Modelli di dau, schemi B lstanze
24
2.1.1
25
4.2
24
2-2 Architetmra di un DBMS 6_ Indfpcndenza del clan
27
2.2-1 2.2.2
Schemi, istanze. e 5111t di una base di dat1 Indipendenza dei dati
2-3 Linguaggi e interface-e di 13351 5“ dati
2-3-1 nuaggl d8} DBMS 23-2 Interfaces del DBMS
2.4
‘
L’ambiente di un sistema d1 basi (11 1:18.11 2.4.1 Moduli componenti un DBMS
2-4-2 Programmi di utilith ‘11 “11 sistcma 11113351 di dati comunicazione
2.5
2.4.3 Strumenti, ambienti applicativi e funzioni di Classificazione dei sistenfi di gestione di basi di dati
Sommario
Questionario di verifies.
Esercizi Bibliografia selczionata .
i dati Use del modello EntithaAssociazione per modellare
Capitolo 3 Use :11 3.1 basi dati di modem
di 11m concettuali di alto livcllo per la progettazione d1
dati 3.2 Un’applicazionc esemplificativa di basi ed1chiavi ti attribu entith, d1 i insiem mm, (11 3.3 Tipi e attributi
Entith i di 111115113, chiav': e insicmi (11 1.411011 3.3.2 T1131 di em, insiem concettuale iniziale della base (Li dad AZIENDA
3.3.1
333
Progcttazione
3.4 Associazioni, tipi di associazioni, 11101.1 e vincoli strutturali d1 associazione 3.4.1 Tipi d1 associazioni. insiemi di associazioni e istam 3.4.2 3.4.3 3_4_4
e Grade 111 un’associazione. nomi di mole e associazioni ricorsiv Vincoli sui lipi d1 associzione Atlributi di tipi di associazione
3.5 Tipi d1 entith 11.21391:
29
.3
30
ii
3'3 32
..
.
' 65
66 57 68
73 75
azioné, a oggetti Modellazione Enflti-Associazione estesa e modell
75
Sofiuclassi. supcrclassi ed creditarieté
78
Specializzazione e generaljzzazione
81
nc 43 Vincoli e caratteristiche di specializzazione c generalizzazio
s
27
L‘axchitetura :1 tr: 11116111
4.1
'5
Catcgorie di modglli di dati
2.1.2
3.7.4
Notanom altemauve per i diagrammi ER
{)2 '54
Blbhografia 561°30‘11““
:
21
Bibliografia selezionata
RJemlogo d-efla notaz1one 11ei ding-131111111 ER Denotmnauone propna de: costnltti 136110 schema
. Son-11:13:10 _ . QUCSIIIEEIIanD d1 Vcnfica ‘ E11619”
19 20 20
Sommario Questionmio di verifica Esercizi Capitolo 2
E”. -
18
Quando
3.7.1 3.7.2
3-7-3 5%“?p la progsmione concettuale ER
17
dell’approccio con basi di dati 1.7 Impficaziorfi 11011 users 1111 DBMS 1.8
g -
16 17
_
62
3'7 131133111a ER,COI1V€n2.l F“ denominazione *3 Pl'Oblfl
.
16
4.4 Modeuazione di tipi UNIONE arm-averse l‘uso d1 categorie
88
4.5
92
Uno schema BER esempfificativo UNTVERSITA c definizioni formali per
i1 mods-.1110 ER
. 4.6 Usc dei diagrammi dell'e classi UML per la modellazione concettualc a oggetti
4.7 Tipi di associazione di grade maggiore di due dci dati e Eli rappresentazione defla conoscenza 4.8 Concetti di astrazione cazione e istmziazione
:5
33 33
: ;5
35
_;
1x
61
42:2q 3-5 Réffmmeyto 516113 Prngfattagione ER per la base di dan' mi di progettamme
16
..
1.5.5 Disponibilith d1 numerose interfaccc meme 1.6.? 1.6.8
Indies
1-
Indice
V111
43'1 432
Classifi Idenfificazione
104
104
4.8.3 Speciafizzazione e generalizzazione
105 107
Aggregazione e associazione
36 36
' .'
4.8.4 Samaria
33
i
Questionario d1 verifica
39
'2
Esercizi
40
.
95
98 102 103
107 103
'
113
Bibliografia selezionata
40
Capitolo 5
41
42
5’1 mmdumne _
.
49
1
52
5.1.1
Germ-121111:- d1 memoria e dispositivi di memorizzazione
5-2-1
13135011410118 dcll’hardware di dispusitifi a disco
53-1
M1glforamento dell‘affidabfl‘ita‘
5-2-2 13159051111111 fii memofizzyionc a nastm magnetico ia RAID 5.3 Renders 39.116101 accesso 31 1:113:16 amaverso l'uso della tecnolog
53
5-3-2 Nbghéramfintq de111: pfestamm
53 54
115
116
_
116
113 119
531-2 ,MFmPnzzaflfime d1 basi fii dati 5-2 DIS13051mm dl‘réfimuna secondana
44 45 46
dei file Memorizzazione dei record '3 organlzzazioni primarie
'1
5? 59
5
59
is
5'3'3 _ Olga-11111226210111 1: 1-1c RAID
5-4 5.5
Bufienzzlanane ch b10cc111 Collocamone su 1313430 (151 record di un file
5-5-1 Word e W 61' record
.
119
..
124 125
126
121
12.3
. .1230 131
131
x
lndlce
Indice
5.5.2
File. record a lunghezza fissa e record a lunghczza variabile
5.5.3
Ripartizione dei record in blocchi c confronto Ira record can spanning
5.5.4 5.5.5
132
134
;§
Ailocazione dei biocchi di on film: so disco Header dei file
135 135
f E
136 138
?-
5.6 Operazioni sui file 5.7 File di record non ordinati (file heap) 5.8
Hash intemo Hash estcmo par file. so disco
5.9.1 5.9.2
cm'che hash che 6011581110110 “H’CSPEESEODC dinamica dei file
5.9.3
5.10 A1116 organizzazioni primarie dci file
202
N01371:“: do} modello relazionale
205
206
7.3
143 146
E
143
I.
206
Vincoli sul domjnio Vmoolj di chiave e vincoli sui valori nulli
206
293 210
7.2.3 Basi di dati 1: schemi di basi di dati relazionall 7.2.4 Integn'ta dell’entitd, 1111633111 referenzialc e chjavi esterne
143
5.9 cnichc hash
Cmuerisfiche dell: rclazioni
7.13 7-2.] 7.2.2
140
File di record ordinati {file sorted)
7.1.2
7.2 Vincoli relazionali e schemi di basi di dati rclazionali
:3 record senza spanning
L’operazione di inscrimento
213
7.3.2 7.3.3
L’operazione di cancellazione L’operazionc di modifica
214 215
7.4.1
215 216
L’operazione di SELEZION'E
5.10.1 Filo di record misti 5.10.2 Albcri B c 3166 suuttm'e dad Sommario
152 153 153
. ?
7.4.2 L‘opcrazionc di PROIEZIONE 7.4.3 Sequcnze 61 operazioni e operazione di RIDENOWAZIONE 7.4.4 Operazioni insiemistichc
Questionario di verifica Escrcizi
154 155
i
7.4.5 7.4.6
Bibliografia selezionata
153
Capitolo 6 Le strutture di indie: per 1 file 6.1 mi di indici ordinati a un solo livello
161 162
6.2 6.3
6.1.3 1ndici secondari Indies multilivello lndici dinamici mulfiljvcllo implemcntati d3 2113611 B e albcri 13+ 6.3.1 Alberi di ricerca c alberi B
168 171 175 176
Sommario Questionario di verifica Escrcizj Bibliografia selezionata
Utiljzzo di hash e di altre stratum: di daft come indici .. Confronto tra indici logici e indici fisici
6.5.1 6.5 .2
6.5.3 Discussione Sommario Questionario di verified Escrcizi
Bibliografia selezionata Capitolo 7
Concetti dcl modello relazionalc 7.1.1
I
[l modello di dati, i vincoli e l’algebra relazionali Domini, ato'ibuti, tuplc e relazioni
-.
-‘.7 .
-7
—
,—
’—
'—
234
236 238 240 241 247
181 139
Capitolo 8 SQL - Lo standard delle basi di dati relazlonali
249
190
8.1
La definizione dci dati e 1e modifiche aglj schemj in SQL2
251
190 191
8.1.1 I concetti di schema e di catalogo 3.1.2 11 comando CREATE TABLE I: i vincoli di tipi di dati
251 252
192 192
3_1_4 ]] comando ALTER TABLE mtgflogazioni fondmentafi in SQL
257 253
256
3.1.3 I comaudi DROP SCI-[EMA 6 DROP TABLE
192
6.5 Altri 1161 di indici
231 233
Operazioni di JOIN ESTERNO e di UNIONE ESTERNA ..
6.1.2 Indici di cluster
6.4.2 Hash partizionato 6.4.3 File a griglia
7.1
7.5.3
7.6 Esempi :13 interrogazioni in algebra relazionale
Incline ordinate so pifi attributi
229 231
7.5.1 Funzioni aggregate e raggruppamento 75,2 Operazioni 31 chjusura marshy.
165
6.4.1
225 228
L‘operazione di JOIN Un insiemc compieto di operazioni dell‘ algebra relazionale
7.4.7 L'opcrazione di DIVISIONE
153
6.3.2 Alberi 13+ 6.4 mdice su chiavi multiple
218 219 221
7.5 Altre operazioni reiazionalj
=
Indici primari
6.1.1
212
Operazioui di aggiomamento c gostionc dcllo violazioni dei vincoli
7.3.1
7.4 Operazioni di base dell’algebra rclazionale
152
X:
3.2
193
8.2.]
La struttura SELECT-FROM-W'E—IBRE delle interrogazioni SQL
253
194 194 195
8.2.2
E
La problematica dei nomi di attributi ambigui e la loro ridenominazione (assegnando pseudonimi) La clausola WHERE non specificata c l‘utjh'zzo dell’asterisco [*)
261 262
198
,7
3.2.4 1:. 13135116 come msicmi in SQL
263
199
E g
8.2.5 Confronti di sottosuinghe. oporaton' aritmetici e ordinamento [ntm-Iogaziorfi SQL pit 30311313533
265 267
8.2.3
3.3
200
E.
8.3.]
luterrogazioni nidificate e confronti di insiemi
200
E
8.3.2
Funzioni EXISTS e UN'IQ
—
fi
-
=
-
" ‘-
.
.2-
1:33
267 270
»'
_
r
.
l'
I
——_————-—*__——_—
x111
lndice x11
lndice
3.4
8.3.3 11151131111 cspliciti e NULLS 8.3.4 Ridcnominazione 11c1 attributi e tabcllc collegate can i join 8.3 .5 Funizoni di aggregazione e. raggruppamento. 8.3.6 Discussione e riepilogo dell: interrogazioni SQL L1: istruzioni Insert. Delete e Update in SQL
3.4.1 8.5
273 274 2'16 281 232
' -. _' '
g
232
11 comando 111513111"
284 284 285
8.4.2 11 comando DELETE 8.4.3 11 comando UPDATE Vista (tabelle 1111111311) in SQL
235
8.5.2 8.5.3
Specificazionc delle 111311: Implementazione e aggiumamcnto dell: vista
286 287
5' " 3? _
289
f.
Questionario di verifica
290
i; ' .
Esercizi
8.7
Ulteriori funzioni di SQL
Sommario Questionario di verifica Esercizi
Capitolo 11 Algofitrni per la progettazione di basi di dati relazionali .....
29?
Traduzione delle sottoclassi condivise Traduzione d1 categorie
Capitolo 10 Dipendenze funzlonali e normalizzazione per basi di liati
relazionali
10.1 Linc: guida informali di progettazione di schcmi di rclazionc .. ..
10.1.2 Infomazioni ridondanti 11c tuple c anon-1111i: di aggiomamento 10.1.3 Valori 1111111 nelle tuple
10.1.4 Generazione d1 tuplc spuric
10.1.5 Sommario ed csame delle liners guida di pmgettazione
10.2 Dipendenze fimzionajj
10.2. i Dcfiniziune di dipendcnza funzionale..
10.2.2 colc di infcrcnza per dipcndenze funmonah 10.2.3 Equivalenza di insiemi d'i dipcndenzc funzionali
298 298 302 303 303
3
Bibliografia selezionata
306 306
1'. Q:
Capitolo 12 Esempi di sistemi di gestione d1 basi (11 flat! relazionall:
308 308
Questionario di verifica Esercizi
10.1. 1 Semantica dcgli attributi di una rclazione
11. 1 Algorinni per ia progettazione di schemi cli basi di dad mlazionali... 11.1.1 Decomposizionc dclle relazioni c insufficienza dclle forme normali 11.1.2 Decomposizionc e conservazione dclle dipendenze..11.1.3 Decomposizione e join senza pcrdita (non-additivi) 11.1.4 Probiemi con vaiori 11111.11 2 tuplc dangling 11.1.5 Analisi degli algoritmi di normalizzazione Sommario Questionaxio di verifica Esercizi
Oracle e Microsoft Acces
307
Sommario
345
292 293
Capitolo 9 Traduzione da schemi ER e EER a schemi relazionali9 1 Progeltazione di basi di dati rclazionali attraverso la traduzione da ER"-:1 rclazionale 9.1.1 Algoritmo di traduzione da ER a relazicnale... 9.1.2 Sommario della n-aduzionc per costrutti e vincoii dei modcllo ER .. 9.2 Traduzione dei concetti del modello BER 1n relazioni. 9.2.1 Associazioni superclassefsottoclasse e specializzazionc 9.2.2 9.2.3
342 342
Bibliografia seiezionata
Bibliografia sciezionata
(o generalizzazione)
338 341
10.5 Forma normaie di Boyce e Codd Sommaxio
291
295
.
338
10.4.3 [merpretazinnc dclla dcfinizione generalc di 3NF
11 concetto di vista
Specificazione di vincoli generali come asserzioni
335 337 337
10.4 Definizioni generali di seconda c terza fol-ma normale 10.4.1 Definizione generalc d1 scconda forma normals 10.4.2 Dcfmizionc generals di term forma normals
1 '
12.1 Sistemi 111 gcsfione di basi di dati rclazionali: una prospettiva storica 12.2 Struttura base del sistema Oracle
12.2.1 Struttnra deua base :11 dati
31 1
311
.1
311
i
12.2.3 Awio 12.3.] Oggetti dello schema
= -
317
3
320
g
320
3
320
323 326
12.3.2 Diziunafio 1:11 0311 di Grade 12.3.3 SQL in Oracle
12.3.4 Mctodi di Oracle 12.4 Organizzazicnc dclla memoria in Oracle
12.4.1 Blomhi di datj
12.4.2 Bstensioni 12.4.3 Segmenu'
361
363 364 365
365 369
'
369
371 3'12
373 373
12.3.5 Trigger
i.
.
348 348 349 351 357 359 360 360 360
368
12.3 Slruttura dclla base di dati e sua mauipolazionc in Oracle
314 316
347
.....
367
12.2.2 Processi
309
326 327 328 329 333
334
10.3.4 Tel-2a forma normals
8.5.1
8.6
_
10.2.4 Insiemi minimali di dipcndenze fimzionali 10.3 Forms normali basate su chiavi 1111111311: 10.3.1 Introduzionc 1111a nomafizzazioae 10.3.2 Prima forma normals 10.3.3 Seconda forma non-naie
_
_ _
374” , _:' I
375 ' '-
37-6 376
.
Indice
XIV
XV
lndloe
37?
12.5 La programmazione delle applicazioni Oracle 12.5.1 Programmazione in PUSQL
14-2-2 Problem d} 3mm datfi
14 2. 3 Problem d1 ncerca aperti 14 2. 4 Applicazione delie basi di dati multimediali-
332 335
386
12.7 Una visione d‘insieme di Microsoft Access
12 7.1 Architettura di Access
.
12.7.2 Definizione dei dati delle basi di daIi diAccess.
12 7.3 Definizione delle relazioni e dei vincoli di integrita referenziaie 12.7.4 Manipulazione dei dati'1n Access
123 Caratteristiche e funzionalita :11 Access
1231 Le maschere
386
,
14-3 3351 C“ M 11011111 _
..
14'3'1 Wyatt"? d1 “31°“? “3"“?
393
14.3.4 Basidi datl mfl-l smcromzzate a_m1:erm_1ttenza’..........
388 391
14'3-2 “I" d‘ daddelleapplicazmrii mob111 _ 14'3'3 1310131161111 ‘1} 335110.“? de1 d?“
393
14.3.5 131b110grafia selemonata per le ba51 d1 clan mflblh
394
12.8.3 Le macro 6 Access Basic 12.3.4 A111: caratleristiche
397
_ _ . 14-4-1 APPlfcjaémfu GIS 14-4-2 Regina“ d} 365150113 dei flan $161 613
Bibliografia selezionata
397
14.4.4 Un esentpm d1 GIIS:_ARCIIN'FO_
Capitolo 13 Analisi multidimensionale dei dati e data mining
399
13-1-1 Terminologia e definizioni
400
14.5.2 Le caratteristiche dei dati biologici
”-13 Modelli dei dati per i data warehouse
402
-
13 1 5 Funzionalité tipiche dei data warehouse
13.1.6 Difficolta di implementazione dei data warehouse 13.1.7 Problemi aperti nelle tecniche di memorizzazione dei clati.
13-2 II data mining 13.2.1 13.2.2 13.2.3 13.2.4 13.2.5
Una visione d’insieme della tecnologia del data mining Regole di associazione Approcci ad altrl problemi :11 data mining Applieazioni del data mining Stato dell’arte degli strumenfi commerciali d1 data mining
413
414 418 423 427 427
Esercizi Bibliografia selezionata
Capitolo 14 'Ibcnologie e applicazioni emergenti delle has] di dati 14.1 Basi di dati e World Wide Web 14.1.1 Accesso Web alie basi di dati 14.1.2 Tecnica di integrazione Web di INFORMIX 14.1.3 WebServer di ORACLE 14.1.4 Problemi aperti con 1e basi di dati accessibifi via Web i_vi_a Web 14 lflih‘linqflgale-2111mm oer ismdi £12111flessibil _ -
433 434 435 436 437 438 4-40
,
_
_
-
462
466
.
466
14.6 Biblioteche digitali
14.5.1 L‘Iniziativa delle Biblioteche Digitali..
410
430 431
_ d8... . .,
14.5.4 Bibliografia selezionata per le basi di dati del genoma 14 6 2 Bibliografia selezionata per le bibliotcche d1g1tah
411 413
43‘}
SDmmaIiO
;
14.5.3 11 progeno del genome urnano e 1e basi d1 dati biologiche esistenti
401
13.1.4 La creazione di un data warehouse
.
14.4.5 Problemi e quesnom future relative ai GIS 14.4.6 Bibliografia selezionata per 1 GIS 145 La gesfione dei dafi genetici
1451 Le scienze biologiche e la genetica
407
..
14.4.3 Operamoni spec1fichede1 dau GIS
399
13-1-2 Le carattcrisiiche dd data warehouse -
_
14.4 S1stemi informed“ geografic:
395 396
13.1 Analisi multidimensionale dei dati
.
14 2 5 Bibliografia 531°30‘13“ 13"I 1"- baSi di dafi mulumedrah
387
123.2 I report
Sommario
‘ _
’
_
14.2.1 Nature dei dam edeile aophcazmm mulumedlah
330
12.5 .2 Cursori in PUSQL
1253 Un esempio in pR0*C 125 Strumenti di sviluppo di Oracle
_
_
14-2 Basi di d3“ multirnedi-ali
373
457 468
‘
Appendice A Notazioni diagrammatiche alternative
469
Appendice B Parametri dei dischi
473
Bibliografia
477
Indice anaiifico
493
_. -
-
J.
1‘
—,
l—__.
ri-
:
r_
r,
I _“
Presentazione all’edizione italiana
e al setters delle Ricercatori e studiosi itaiiani di informatica hanno dedicate graude attenzion
ti a livelbasi di dati fin dal suo nascere, cona-ibuendo a produn-e risultati di ricexca imponan
to dei corlo intemazionale. Cosi non E state per l’insegnamento di questa disciplina ncli‘ambi di laucorsi dei avvio 1' con 5010 ch: a, Ingegncri di Facolta le per s si uuiversitari, in particular Inforrea previsti dall’Ordinamentu del 1989 hauno attivato il Corso di Lam-ea in Ingegneria conscDi ne. collocazio naturals travato hanno dati di basi di corai i ambito matica nel cui
recenti. libri in italiano ido— gueuza in tutta Italia nan sono stafi resi disponibili, se nun in anui
nei a asset: adottati per l’inscgnamento delie basi di dati all'uuivarsita. fin dagli mini ‘80. Chi, come me, ha avviato esperienze di inscgnamento delle basi di dati Ramez Elmasn' di Systems Database of ntals Fundame iibro i1 utilizzato e adottato spesso ha — se non i1 migliari i first rivelato e si edizioui prime a Shamkant B. Navathc, che fin dalle sue
o figure scientifico della dimigiiore - dei testi disponibili. Questo libro combina ii necessaii
ione. alla samplisciplina, ch: sembra facile a chi non ne conosce la complessita e l‘aiticolaz pensava di renders dicita e completezza di presentazione. Di conseguenza, da molti anni si cdizicue italiana si 6 presponibile questo taste in italiano; i’occasionc di realizzare la prima universita italiane. La rifor— sentata con la riforma degli ordiuamemi didattici era in atta nelle
tutti gli Atenei itama, meglio conosciuta con la formula de] 3+2, che prende i1 via in quasi anto radicaie dc} siliani a parlite dall’anno accademico 2001-2802, cusfituisce un cambiam cansiderevole per rivestema universitario italiano. Molti docenti staiuio facendo uno sforzo con la spin'to della dare i programmi degli insegnamenti. per innovarli e renderli pin com-anti . autonomia maggiore una riforma, ch: pennette. anche degli autori, ViE'r Questo testo, Che si basa sulla lunga esperienza come ricercatori e docenti diventa ua buon e iale all‘orig'u rispetto snclla piu forma una in italiano in BE. reso disponibilc altri validi tead affiancare ad i audandoa candidate per ease-re utilizzatu come testo didattico, ti tutti glj presenta venguuo italiana ione Neil’ediz . nazionale a panoram nel sti ora dispcmibiii stati avi9.0110 recente di piil ch: i aspetti di base della disciplina. insiame a quegii argonient
Presentazlone dell'edizione italiana
luppati no] senore e che fomiscono s1 lettore gli elementi per continuare ad ampliare la propria conoscenza. In questo modo i1 testo pub essere utilmente adottato per corsi che fanno par— te di percorsi didattiei anche molto diversi; per queste stesse ragioni esso si presta ad essere utilizzato come testo di base e di aggiornamento anche da parte del pmfessionista informati— co e da chi opera in azienda e si avvicina o lavora gia in questo senate dell‘informatiea, perché utilizzandolo pub acquisire anche competenze su nuove aree quali sono quelle del data warehouse e dcl data mining insierne a quell-a delle bibiljoteche digitali. Molti sono ipercorsi di lettura e di studio con i qualj pub esser utilmente utilizzato questo volume; oltre allo studio del testo nella sua interezza. sono possibili tre interessanti percorsi.
1. Un primo percorso fornisce una solida conoscenza delle basi di dati relazionali e della 10re progenazione; esso e cosfituito dai Capitoli 1. 2, 3, 4, 7, 8, 9, 10 e ll e, con 1’ aggiunta dei Capitolo 12, fornisoe anche le conoscenze relative a due sistemi commerciali di basi di dati di largo impiego. 2. II percorso n.1, integrate con i Capitoli 5 e 6. permette di acquisire anche competenze relative agli aspetti implementadvi e di progettazione fisica delle basi di dati. 3. ll percorso n.1, integrate con i Capitoli 13 e 14, permette di acquisire anche competenze relative a tematiche specialistiche e innovative del settore, quali sono 1e gia oitate tentati— ohe del data warehouse, dei data mining e delle biblioteche digitali, ma anche delle basi di dati e Web, delle basi di dati geografiche e di queue per la genetica.
11 lettore interessato trovcra nella prefazione degli autori altre inforrnazioni che gli per— metteranno di costruire ulterior-i percorsi. piu aderenti alle sue specifiche esigenze.
Ringraziamenti Prima di tutto un ringraziamento particolare alla dott.ssa Donatella Pepe, Publishing Director di Addison Wesley Longman Italia, divisione di Pearson Education, che ha avuto e ha tenacemente perseguito l’idea di rendere disponibile in italiano questo testo. per la competenza e la sensibilita con la quale ha costantemente seguito e sostenuto 1e numerose e impegnative attivita che hanno portato alla preparazione di quests. edizione. Un grazie di ouore all’ingegnere Luca Pretto, che ha tradotto la pane pit} consistente dell‘opere. corrispondente aj Capitoli l. 2. 3, 4, 5. 7. 9, 10 e 11 insieme alle Appendici A e B e alla quasi totalita dell’indice analitico. Luca ha dedicate a questa attivita tutta la 'sua competenza di studioso, portando a tern-line un lavoro estremamente irnpegnativo con tutto il rigore
e l’approfondimento neoessario. Un grazie anche alla dott.ssa Cristina Monteverdi e 31 Prof. Ernesto Darniani per aver ac— cettato e aver portato a ten-nine in tempi ristnetti 1a traduzione dei Capitoli 6. 8, 12. 13 e 14. l] ringraziarnento finale 2111a dottesa Gabriella Piazza di Epitesto che. come copy editor del volume, :3 riuscita nel difficile eompito di rispettare i] rigore della trattazione, rendendo pero i1 testo pib scolrevole e piacevole da leggere.
Padova, ottobre 2001
Prefazione
Questo libro introduce i concetti fondarnentali necessari per progettare, usare e implementare sistemi di basi di dati e relative applicazioni. La nostra presentazione as particolare enfasi ai fondamenti della modellazione e della progettazionc di basi di dati, e 31' linguaggi e alle funzioni forniti dai sistemi di basi di dad. I] libro e stato scritto per essere usato come testo per un corso sui sistemi di basi di dati di uno 0 due semestri a livello interrnedio o avanzato. o come libro di consultazione. Si suppone che il lettore abbia una certa familiarita con concetti elementari di programmazione e strutture dati, e che conosca gfi aspetti basilari dell‘architettura dei oalcolatori. Si comincera con l’introduzione e la presentazione dei concetti basilari per lo due estrernita delio spettro di una base di dati: principi di modellazione concettuale e tecniche di memorizzazione fisica dei file. Si concludera il libro con una visione d’insieme di tecnologie e applicazioni emergenti, come 1'] data mining, data warehousing e 1e basi di dati su Web. Nel corso di questo cammino forniremo un‘approfondita trattazione dei pit: importanti aspetti dei fondamend delle basi di dati. La terza edizione presenta le seguenti caratteristiohe fondamentali:
-
-
-
‘ Maristella Agosti
Dipartimento di Elettronica e Informatica
-
Universith degli Studi di Padova --
tutto i1 libro ha un’organizzazione autosufficiente e flessibile Che pub essere adattata a esigenre individuah'; e fomita una copertura complete e aggiornata dei modello relazionale — compresa una nuova pane su Oracle e Microsoft Access come esempi di sistemi relazionali; un’esposizione aggiomata della modellazione concetmale EER e stata presentata nel Capitolo 4, in mode da seguire la modellazione ER di base presente nel Capitolo 3, e cornprende un nuovo paragrafo sulla notazione usata peri diagram-oi delle classi UML; due esempi che si ripresentano in tutto il libro — AZIENDA e UNIVERSITA consenteno 211 lettore di eonfrontare approcci diversi che usano la stessa applicazione; e stata aggiornata la materia sulla progettazione di basi di dati. compresa la progenazione ooncettuale. le tecniche di normalizzaaione e la progettazione fisica: -
xvm
‘
-
' -
.
‘
.
g-
_
1-}-
""-'F , .57..“
3'
f
w .
I
I '
'
-'
w
m
—
_
—
_
—
_
_
'—
._:
'
—
Prefazione
xx
applicazioni di basi di dae presente un’esposizione aggiornata dei recenti progressi nelle tive di data warehouintrodut ioni illustraz de ti peril supporto alle decisioni. che compren
-
singIOLAP e di data mining;
-
0
xx:
Prefazione
di nuove tecnologie di basi di viene fornita una trattazione completa dello state dell’arte \ ediali; multim e mobili Web. su dati di basi ie dati, incluse delle basi di dati altive applica aree nti importa viene infine rivolta l‘attenzione su nuove di dati per la genetica e bibliobasi che, geografi dati di basi io: rrnllenn nuovo del l‘inizio teche digitali.
tanti applicazioni emergenti delle basi di dati: sistemi di informazione geografica (GIS), basi di dati per il genoma umano e biblioteche digitali. L‘Appendice A fomisce notazioni diagrammatiehe alternative per rappreaentare graficav meme uno schema concettuale ER 0 BER. Queste notazioni possono soatituire la notazione usata da mi. se lo si ritiene opportune. Nell’Appendice B sono presenti alcuni importanu' pa» rametri fisici dei dischi.
Flingraziamenti1 Contenuto di questa edizione ri per una buona eomprensione Inizialmente vengono descritti i concetti fondamentali necessa 1e tecniche di modellazione nonché dati. di della progettazione e implementazione delle basi ono le basi di dati. i lore introduc 2 e l i Capitol I dati. di basi di sistemi nei concettuale usate Capitolo 3 some preNel DBMS. dei tmra utenti tipici e i concetti. la lerminologia e l'archite di dafi, i concetti del mobasi delle ale concettu zione progetta la e illustrar per sentati, e usafi diagrammi ER. 11 Capitolo 4 focaliz— dello Entita-Associazione (ER, Entity—Relationship) e i semantica dei dad, ed eslende il zione modella di e ne astraaio di i concett sui za 1’ attenzione o di dati BR~esteso {BER} e ai modeil al cosi o rnodello ER per includere queste idee, portand ssi, la specializzazione, 1a gesottocla le ndono compre ati present i eoncett I diagrammi EER. tte le notazioni per i diainrrodo anche state Sono neralizzazione e i tipi unione (categorie). piu usati nella modellazione sempre e BER ini diagram ai simili UML, classi gramrni delle una descrizione della struttura fisiconcettuale a oggetti. Questa prima parte si conclude con basi di dati. 11 Capitoio 5 deserive i meca dei file e dei metodi di accesso usati nei sisterni di compreso l’hash statico e dinarnico. disco, so record di file dei todi primari di organizzazione comprendenti le strutture dati alfile, Il Capitolo 6 descrive 1e tecniche di indicizzazione peri bero B e albero 13* e i file a griglia. nale e i DBMS relazionali. Il CapitoSi passa quindi a descrivere i1 modello di dati relazio di integrita e operazioni di aggior— vincoli suoi i base, di nale lo 7 descrive ii modello relazio lo 8 fornisce una visione dettagliaCapito Il namento, e le operazioni dell’algebra relazionale. e impiementato nelia magg-ior che SQLZ, rd standa lo ndente compre ta de] linguaggio SQL. afi che descrivono la progetparagr due di e parte dei sistemi relazionali. ll Capitolo 9 consist di base di dati nel modello tuale coneet o progett un da parfire a nali tazione di scherni relazio gli algoritmi sviluppati per e teoria Ia isrni, ER 0 BER. I Capitoli 10 e 11 riguardano i formal Cio comprende le dipenne. izzazio normal tramite naii relazio dati di basi la progettazione di la normalizzazione in ata present viene 10 lo denze funzionali e le fol-rue normali. Nel Capito azione relazionale. Il progett la per mi algorit forniti o vengon ll lo Capito mode intuitive e nel e Microsoft Ac— Oracle dati di basi di sistemi dei Capitolo 12 presenta una visione d’insierne di dati. basi di e gestion di rciali comme sistemi noti beu di cess some esempi i. Nel Capitolo 13 sono esaminate Infine vengono considered nurnerosi argomend avanzat applicazioni di supporto alle deciper mining data e using wareho data di gie le nuove tecnolo gia delle basi di daft. comprentecnolo nella e tendenz sioni. I] Capitolo 14 riassume 1e nuove visione d‘insieme di imporuna denti le basi di dati su Web. mobili e mulfirnediali e fomisce
E per noi un grands piaeere ringraziare 1e numerose persone che ci hanno offerto aiuto e col~ Iaborazione per questo lavoro. Prima di tutto deaideriarno ringraziare i curatori Maite SuarezRivas. Katherine Harutunian, Patricia Unubun e Bob Woodbury. Vorremnio ringraziare in particolare l‘opera e l’aiuto di Katherine Harutunian, che e stata i1 nostro punto di riferimento principale per la terza edizione. Desideriamo anche ringraziare quelie persone che hanno contribuito alla terza edin'one e hanno suggerito vari miglioramenti alla seconda edizione. Suai Capizanne Dietrich ha scritto pane dei Capitoli 10 e 12*, e Ed Omieeinslci ha contribuito
toli l?*-21*. Abbiamo anche particolarmente apprezzato il contribute dei seguenti revisori:
Henry Francois Bancilhon. Jose Blakeley, Rick Catteli. Suzanne Dietrich. David W. Embley,
A. Etlinger, Leonidas Fegaras, Farshad Fotouhi, Michael Franklin. Goetz Graefe, Richard , Huil, Sushi] Jajodia. Ramesh K. Karrie, Vijay Kumar. Tarcisio Lima, Ramon A. Mata-Toledo Dennis McLeod, Rokia Missaoui, Ed Omiecinski, Joan Peckharn, Betty Salzberg. Ming-Chien Shan. limping Sun, Rajshelrhar Sunderraman ed Emilia B. Villareal In particolare Henry A. Eflinger. Leonidas Fegaras ed Emilla E. Vfllareal hanno letto tutto il libro. Sham Navathe desidera ring-raziare i contributi sostanziali dei suoi studenti Sreejith Gopi-
e Magnath (Capitoli 10, 24*), Harish Kotbagi (Capitolo 25*). Jack McCaw (Capitoli 26, 2?) Ahmed, Rafi da fornito revisione questa a l'aiuto stato e Notevole 13*). di Morsi (Capitolo
Ann Chervenak. Dan Forsyth. M. Narayanaswaruy. Carlos Ordonez e Aravindan Veerasamy. Gwen Baker, Amol Navathe e Aditya Navathe hanno, in modi diversi. prestato i1 loro aiuto con il manosoritto. Ramez Elmasri desidera ringraziare Katrina, Riyad e Thomas Elmasri per l'aiuto fornito con l’indice analitico e i suoi studenti dell’Universita del Texas peri commenti al manoscritto. Desideriamo anche ringraziare gli student‘i dell’Universita del Texas ad Ariington e de] Georgia Institute of Technology che hanno usato 1e bozze relative alla materia
aggiuntiva presents nella terza edizione. Vogliamo ripetere qui i nostri ringraziamenti a tutti coloro che hanno svolto opera di revisione e eomunque hanno contribuito a entrambe 1e ediaioni precedenti di Fundamentals ofDa-
Scott rabare Systems. For la prima edizione si ringrazia Alan Apt (curatore). Don Batory. McLeod. Dennis Larson, Jim Ioannidis, Downing, Dennis Heimbigner, Julia Hodges. Yannis
, Per—Aka Larson. Rahal Patel, Nicholas Rouasopoulos, David Stemple, Michael Stonebraker
Inoltre Ea numeI eapitoli contrassegnati con un asteriseo non sono stati lusetiti nella preseme ed'lzione italiana.
raarone dei capitoli presume in questo paragrafo si riferisce all‘edizione americana del testo. ed (7: diversfi dfl quel-
italiana, e i Capitoli la rtaliana. In particulate. il Capitolo 10 dell‘ediziane americana con-isponde al 12 di queila 26 e 27 eon-ispondono al 13 e 14. rispettivamente.
XXH
Prefazlcne
Frank Tompa e Ky'u-Young Whang; per la seconda edizione Dan Joraanstad {curatore). Rafi Ahmed. Antonio Albano. David Beech. Jose Blakeley. Panos Chrysanthis. Suzanne Dietrich. Vic Ghorpadey, Goetz Graefe, Eric Hanson, Junguk L. Kim, Roger King. Vram Kouramajian, Vijay Kurnar, John Lowther, Sanjay Manchanda. Toshimi Minoura. Inderpai Mumick, Ed Omiecinski, Gir-ish Pathak. Raghu Ramaloishnan, Ed Robertson. Eugene Sheng, David Stotts. Marianne Wmslett e Stan Zdonick. Infine n'ngraziamo affettuosatnentc 1e nostre farniglie per il sostegno. l‘incoraggiarnento e la pazienza con cui ci hanno seguiti. RE. S.B.N.
Profilo degli autori Ramez A. Elmasri é professore del dipartirnento di Computer Science and Engineering del— l‘Universita del Texas ad Arlington. II professor Elmasri ha lavorato in precedenza per Honeywell e per I‘Universita di Houston. E stato condirettore del Journal of Parallel and Distributed Databases e membro del comitato direttivo dell‘International Conference on Concep— tual Modeling. E state inoltre coordinatore del comitato di programme dell‘IntemationaI Con— ference on Entity Relationship Approach del 1993. Negli ultimi vent'anni ha svolto ricerche finanziate da NSF. NASA, ARRI, Texas Instruments, Honeywell, Digital Equipment Corpo— ration e dallo State del Texas in molte aree dei sistemi di basi di dat'r e nell’area deil’integrazione dei sisterni e del software. 11 professor Ehnasri ha ricevuto i1 prernio Robert Q. Lee per ia sua attivita di docente da parte del College of Engineering dell’Universita del Texas ad Arlington. Ha conseguito ii PhD. ail'Universita cli Stanford ed a autore di pin di 70 pubblica— zioni su riviste e atti di congressi.
Shamkant Navathe e professore e coordinatore del gruppo di ricerca sulle basi di dati a1 College of Computing del Georgia Institute of Technology. [1 professor Navathe ha lavorato in precedenza con IBM e Siemens nei rispettivi centri di ficerca ed 1‘. stato consulente per varie aziende. fra cui Digital Equipment Corporation, Hewlett-Packard ed Equifax. E stato condi— rettore di ACM Computing Surveys e di IEEE Transactions on Knowledge and Data Engineee Diring, e attualmente e nei comitati di redazione di Information Systems (Pergamon Press)
di Concepta! stributed and Parallel Databases (Kluwert Academic Publishers). E coautore
Design: Art Entity Relationship Approach {Addison-Wesiey, 1992) con Carlo Batini e Stefano di Ceri. ll professor Navathe ha conseguito il PM). all’Universita dei Michigan ed (2 autore pip di 100 pubblicazioni su riviste e atti di congressi.
Struttura _dell’edizione italiana
Con questa prima edizione abbiamo scclto di offrire al lettore italiano un percorso didattico mirato alie nuove necessita deiie pin recenti tendenze del mondo accademico. Abbiamo quindi stabilito di focalizzare questa edizione sui temi maggiormente trattati nei corsi dedicati all’argomento, pensando soprattutto a quelii dei primi tre anni d.i studio. 1] testo dei professor} Elmasri e Navathe rappresenta per tutti gli “addetti ai lavori" on indispensabiie punto di riferimento d.idattico e professionale; riteniamo quindi opportuno, se non doveroso, riportare lo schema di lavorazione che abbiamo seguito in corso d’opera. cosi che quanti sono abimati a orientarsi sul testo orig-inale americano possano rapidamente ritrovarsi anche ail'interno di quests prime edizione italiana.
Sistemi di hosi di dati - Foudameat'r 1a ed. its}. Capitolo 1 Capitolo 2 Capitolo 3 Capitolo 4 Capitolo 5 Capitolo 6 Capitolo 7 Capitolo 8 Capitolo 9 (§ 9.1 e 9.2) Capitolo 12 omessi Capitolo 10 Capitolo 11 (§15.1) amass-i Capitolo 13 Capitolo 14 Appendice A Appendice B omesse
Fundamentals of Database Systems, 3rd ed. ' Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 . Chapter 6 Ch aptcr 7 Chapter 3 Chapter 9 Chapter 10 Chapters 11 - f3 Chapter 14 Chapter 15 Chapters I6 - 25 Chapter 26 Chapter 27 Appendix A Appendix B Appendix C - D
—
t-
"- “ja-
‘-:;I
g
:1
"
r
Capitolo 1
Basi di dati e utenti di basi di dati
di dati sono diventati una components Nefla societh odierna le basi dj dati c i sistemi di basi a molti di_ngi si hnbattoncLiiLnumeessenzialc della vita quotidiana. NcB’arco di una giomat una base d'1_dau'. Per esempio, 5: ancon ing: intern e quaich una nano rose attivith Che compo amo una prgntfazione aerea a a1effettui se diamo in banca per depositare o prelevare denaro. bibliotcca alla ricerca di una v0: una aggdi uteflzz gcamp citalgg un a mo berghiera. se accedia una rivista, 1e nos_t_r§__azioni_'£a mcnto abbuna un cc bibliografica 0 so ordiniamo a un editors no. Oggigiorno perfino l'acquisto qualcu di parte da dati di base gna a so l’zqass plichcranno un aggiornamento automatico della badi articoli da un supermercato comparta in mold casi ino. se di dati ch: mantienc l‘invpntario deglj articoli del magazz . é possibile chiamare a Le interazioni supra Elescritte sono csempi di cib Che
che e memorizzata e a cui Mlle quali gran pane dell’infcrrnazionetscnologici ham-Lo portato a W, ica. Negli ultimi anni i migliormnenti
si Iccede é tesmale. o numer dati. Le basi di dati multimediali assonuove e suggestive applicazioni di sistemi di basi di
1W rmations :geo a hicinfo catGIS ‘— fichc dati meteorola 'ci e Immaghfi da satelliti. I sis: [among 9' gym a di on—lflfl'
M50 0 usati in molt: azicnde
molto dell: basi
1' c
slsiemi l 1 0mm ‘
-
ata warehouse (magazzino 0 ' in ' anoni utilj da basi di dati
in tern 0 tea e a e di renders decisioni. La tecnologia delle basi di dati ‘ . Inoitre 1e W W W di llo contro nel usata di dati attive é
“ tccnicmmrie delle basi di dati sono annalmente app 'cate ‘W t. '
‘ ' ' ' rare la ricerca dcll‘informazione desiderata da 51:1a (Sella tecnologia dell: basi d1 dati, ocAd ogni mode, per caplre g aspetti fon uadizionali. Ne] Paragrafu 1.1 di gue— corre parn're daj pr'Lmi elementi defle loro applicazioni dati e daremn le dcfinizioni dj alpuni di base una cos’é sto capitolo. spieghcremo quindi Che semplicc esampio di base di dati UNI termini fondamcntali. N31 Paragrafo 1.2 fomiremo un
Basi dl dati e utenli di basi di dati
Capitolo 1
2
VERSITA, per illustrare la nostra analisi. Nel Paragrafo 1.3 descriveremo alcune delle principali caratteristicbe dei sistemi di basi di dati e nei Paragrafi 1.4 e 1.5 quelle categorie di per— sonale il cui lavoro prevede i’uso e l’interazione con essi. Nei Paragrafi 1.6. 1.7 e 1.8 si offre un’analisi pin approfondita delle varie poSSibilita fornite dai sisterni di basi di dati e delle impljcazionj insite nel loro uso. Il lettorc che desidera solo una rapida introduzione ai sistemi di basi di dati pub concentrarsi sui Earagrafi 1.1—1.5, quindi saltare o dare solo una rapida scorsa ai Paragrafi 1.5-1.8, per passare direttamente al Capitolo 2.
1.1
lntroduzione
Le basi di dati e la tecnologia delIe basi di dati stanno esercitando un‘influenza fundamentale nell’uso sempre piu esteso del computer. E giusto dire che le basi di dati giocano un ruoio fondamentale in quasi tutti i campi in cui i computer sono utiljzzati, cra cui, solo per citame alcuni, i1 mondo degli affari, l‘ingegneria. la medicina, la giurisprudenza, l’istruzione e la biblioteconomia. WM 5 di uso cosi cornune che occorre cominciare col dar— ne una definizione, scppur abbastanza generaie. ollezione di dati correlati.J Per dati si intendono fatti noti che o Una base di dati e cm. Ecuador-ate ad esempm 1 norm, sono essere memonzzag e che hanno on S} e. Potete aver riportato questi da— i numeri di telefono e gli indirizzi delle persone che co
Una base di dati pub essemmmnfimfig e di diverse complcssita. Ad esempio, la lista cli nomi e indirizzi a cui si r: fatto riferimento prima poo consistere solamente di ggche centinaia d1 record, ciascuno e ' ‘ tra parte lo schedario di una garage biblioteca pub contenere mezzo milione di schede immagazzmate sotto diverse cate— gog'e — per cognome dell‘autore prlnerpale, per soggetto, per nEIo de1 hbn — con ciascuna categoria orgarfizzata in ordine alfabetico. Una base di dati di anche maggior'ampiezza e complessita e gestita dal sendzio erariale 5mm (IRS: Internal Revenue Service) per tener traccia dei moduli deIIe tassflaflimmmfifimnfig si supponc che vi siano 100 milioni di conu'ibuenti e Che ciascun contribuentc fascia archiviare uua media di cinque moduli con approssimativamente 200 caratteri di informazione per modulo, si ottiene una base di dati di 100*{105)*200*5 camtteri (byte) di informazione. Se l‘IRS mantiene 1e ul— time ire dichiarazioui dei rcdditi per ciascun contribuente in aggiunta alla dichiarazione corrente, si otterra una base di dati di 4*(10"} byte (400 gigabyte). Questo ampio ammontare di infonnazione deve essere organizzato e gestito in mode tale chc gli utenu' possano cemare, recuperare e aggiomare i dati seconds necessita.
W "
SISTEMA DI BASI DI DATI
umr rica o Rotate averli memorizzati in un disobetto. usando un personal computer e software come DBASE IV 0 V, Microsoft ACCES; o EXCEL: si tratta di una collczione di dati correlati con un significato impiicito e quindi a una base di dau’. La precedentc definizione di base di dati e piuttosto generale; ad esempio si potrebbe considerare la collezione di parole che formano questa pagina di testo come dati correlati e quindi costituenfi una base di dati. Peraltro l'uso comune della locuzione {mas di dati e di solito piu resu-ity'vo. Una base di dati ha 1e seggenti prgm'gta implicite:
Programmiapplicativh'lnten’ogazloni
Software par l'elaborazione di fntarrogazlonlfprogramml
1! Software per accedere
al dati memorizzatl
ase di dati;
n certo s' 'ficato intrinseco; un assor~ ' ' lo ' ' a e una collezi timento casuale di dati non pub essere correttamente considerato una base di dati. cifico; ha uno specifier: grapo e progettata, cosuuita e popolata con dati per uno sco po di utenti e alcune applieazioni che questi utend Eanno mamduato in pmecedenza essere di loro interesse.
Dafinizlono dalla base all dati memorlzzata (metadati)
a sot ente dalla uale i dati sono derivati. un In alue arole, uua base di dati ha una 1 i AM . l l" l' . tar-L no pubbiico che e attivamen e ne ..—_—___..____ _____ teressato al 5110 contenuto. _______a..____.-—-~ ‘
Nelia Iemramra dell: basi di dad in Iingua inglese i1 Iermine data a usato sin a1 singolare sis a1 plurale: il contesto permctbe a] lenore dj capire quando a singulare o plurals. Nell'inglese corrente data a mate solar-name come _ ,1;:: .ingolar. ' datum: - ‘
our.”
*
‘
\f
SOFFWARE DEL DBMS
0 :- a re enta un ceno as etlo del mondo real , talvolta delta '11 W0 11mm Eel Discorso gUoD: Universe of Discourse); cambiamenti nel mini-mondo si riflettono sulla
3
Ease d] dati memorlzzata
Flgura 1.1 Un ambiente di aislerna all best all dati sempllficato. che illustra f conoetti e la terminologia esa— m nati nelfParagrafo 1.1.
-_
-s
-,
'
'
*—
*“
Capitolo 1
4
Basi di dati e utenti dl basi cil dati
HM] I pom Re
puo essere comUna base di dati pub essere generata e mantenuta manualmenle oppure pub essere proche dati di base di esempio on E: a pulerizzata. Lo schedario di una bibliotec pub esscre prodotta c manrizzata compute dati di base Una ente. manualm ta mantenu c dotia allo scopo 0 da un sistetenuta da un gruppo di progranuni appficativi scritti specificamente ma di gestione di basi di dati. e on inUn sistema di gentione di basi di dati (DBMS: dW ' e siemc :11 program che ermettono a li utenti di create ) chc W (3 li d sofiym'e BEES E percigE un sisrema 1 an ear varie applicazioni Roi; fW costmire e manigolare baeu
mm base di dati implica specificaIe i tipi dei dati, {e loro stmtture
[STUDENTE
Nome Smith Brown
NumomStudante 17 a
5
CorsoLaurea CS cs
AnnoOorso 1 2
lNSEGNAMENTO
Wan che
base di dati significa immagazzidevono essere memorizzati nella base di dati. Costruife la a controllato dal DIS—MS. Bin; che zazione memoriz di mezzo certo un entro narc i dati stessi per recuperare dati spe— azione interrog sua la nipolare una base di dati include funzioni come
MODULO
Semestra
IdentificatoreModulo
Docenie
Anno
ione di
ndo e la generaz muo aggiomamento per rispecchiare cambiamenti nel mini-mo
prospctti (repom) a partire dai dati. realizzasc una base di dati Non é necessario usare softwaIe DBMS general-purpose per mi per produrre e manteprogram di insieme proprio computerizzata. E possibile scrivere un sgecifici (special-gum scogi can le persona DBMS software no crcando dati. di base ncre la te uti— — flln enumbi i cgsi —.._phe si '
we i__m FinW1 W on sistema dibaW-bamti e da] software DBMS verré in metro come sieme CO
a di dati, illustrate in Figura 1.1. ,__’
1 .2
WOTAsE NumeroStudento IdentificatoreModulo
"E‘
-
Un esempio
di dad QHLVEHSITA che contenga Si consideri un esempio familiare a molti lettori: una base votazioni in ambiente universita1e e informazioni riguardami gli studenti, gli insegnamcnti e alcuni dati campione per quedeli di base della a strutrur la i mastrat o rio. In Figura 1.__2_son quali contiene record di dati dei o ciascun sta. La base-Hidmi a organizigita conic cinque file.
Vote
17
112
B
17
119
C
B
85
A
8
92
A
8
102
B
8
135
A
PROPEDEUTICITA 053320 1
‘ WW dello stesso tipol: i1 file STUDENTS CW ‘ un
student[ a I tore vofi. Flgura 1.2 Esemplo dl una base dl datl contenente record sugll
W; il filo PHDPE
cord di INSEGNAMENTD confiene dati per rappresentare il Nomelnseggamento, ii Codicelnse
‘ ' ' 'enei CW; ii file MODULO con i nei val-i moduli da gsstudent daglj ottenuti voti i gnLiene file iWI-B; i1w ciascug insegnamento. di euticita EroEed 1e DEUTIGITA comiene
l
.
.
.
l
| I n
Woo i diversi tiQi di dafi degsnjm' ntaxe i1 Nome dello studente, tax 12 ciascun record di STUDENTE c ntifle dafi per :agprese
o i, secondo o 2 ecc.) e Corso‘Laurea W, II we AnnoCorso (primo
n'a informatics em); ciaécun re(Woo. C§_ per Computer Science 0 Ingegne
l’insegnamento); ggamento, le Ore di lezione settimanali e il Diparfimento {Che ogganizza
per. ciascug analogo discorso vale Ber gli altri file. Occoi're pure specificare mm
aato elementare all’intemo di un mgggd: acl e e
asset: ordinate. file é. um colfezione di lecord, Che pub essere a non A livelio concenuale no ______...__—_.._.__ -r—-——..—_—--»—-u
'
'
usare Wefl’insieme di caratlen' {A. B. CTD, F, 1}. Si E'uo Eur'e Figgra 1. 'uno schema
a
‘
é un intero e Voto di VOTAUna stringa di caratteri alfahetici. NumeroSmdente di STUDENTE
zo e cos] via.
___.___,_._.——.
‘occorrenza Wad ogmgjg, in codifica er no STUDENTE e rappresentato con 1 per_p_rimo, 2 per secondo. 3 per ter——--..
6'
Basi dl dati e utenti di hast di dati
03153510101
Per costmire la base di dati UNIVERSITA bisogna memorizzere i dati oer rappresentare record nel file apvotazione e propedeuticite come un Wnsegamento, modulo, . . . -u-—-.' . . . . Per esemplo 11 recollegau. essere possono file van ne1 We. 81 not] the record tfiversr sEeci— che VOTAZIONE file eord per “Smith" nel file STUDENTE e collegato con due record nel nel file PEOPEf ano i voti ottenuti da Smith in due moduli. Analogamente ciascun record
enta un insegnarnento e l'alWlega due record 3: INSEEKEMENTO: uno ehe rappres di dati di medie e granbasi Molte tieo. prfipedeu esso ad mento Lro Che rapprescnta l’rnscgna
' ' ' irecord e presentano moire associazioni fra '1 record. di dimensioni com re comprende l‘interrogazwne e l‘eggiomamento. EsemEi di dati di basi La manigogggiane di re umversrtano — WW interrogazione sono: “recu era la trasc mu che hanno sosteW f— W W EQ amento East di Eat: tenuto nell'autunno 205i ei
W1 modulo del ‘inse
Basi di dati?“. Eserfioro voti in questo modulo“; “quali sono gll insegnament: propefieurrm a “crea un nuovo mosecondo”: in Smith di l'anno di corso pi di aggiornamento sono: "cambia . . . . . . .
. nel A per .South un voto “msertsct semestre“; den per questo :11 B351 ento dulo per l’msegnarn . . . -. . ~, . , . . . .
nn mformamodulo d1 Bas1d1 dati dell ultimo semestre ’. Queste mterrogazroru e aggromame dati pn'ma di esdi basi di li devono essere specificati esattamente nel linguaggio del sistema. se segur Ie e
1.3
'11.
7
sta definizione e memorizzata nel engage del sistem . chemtifimifliommflme la I SWO e‘ 'l ' lone di ciascun dato e vari vincoli I su: an. Le mfonnazmru memonzzate nel catalogo sono dette ..._..._. metadafi e descrivono la strut1 1 . firs—Bah base di dafi 'nci ‘ . . ‘ - )e usato d 31 so Whfl—Wn catal
Che da 11 :1 cut della base (11 dati che hanno flbisogm dj infonnazionj WWI] MIT—.3:“Wat stemssa. ———--——— flflmd-LUI‘E- ‘ose non e scritto Eer una sgeifica agglicggione di basi di datiI e di conseggenza de-
ve nfenrsr a] catalogo yer conoscere lg ma dei file in on database sEecifico, come il tipo e 11 formato del den 2 out accedera. 11 software del DBMS eve avomegualmemehene con quals' . . ' di dati — ad esempio uua base di dati universitaria, una . .
ase d1 clan bancana o 11:13 base d1 dati aziendale — per tutto i1 tempo in cui la definizione do]]a base d1 dan permane nel catalogo. Nelliggdizionalggesfim; la definizione dei dati e fipicamente Earte dei grogammi
uenza gun: ' E g: mm- isono costrem. aTavorare ”lo—AGO“ ”M b“ ‘1“. Jflpiisafiifi—Di conse . duri specifica , la cuigstruttura est; If]? a ———T""‘F catwr. Ad 5551111310 un PTO‘
u avere dichi '3 {aim I“? program 3P?d1 record; on Emgamma C! I ’31'8‘8 51-10 Intel-no mun-e P ‘ ‘ .. of) :1 er di _ a istruzioni della Se. om d1 struct’ o c as e no 0 mm C v e c p zrone' an' per definite . 1I sumI file. Mentre ‘11 software di gestione file poo accedere solo a 132151
:11 dau sEcifiche, 1@ware del DBMS puo accedere a diverse basi di dau' estraendone lode-
finizioni dal ca 0 o e umdi usaaS quest'e definiziom. Nell'esempio d3 Figure 1. 1 memorizza nel catalogo le definizionj di tutti i file moslrati.0 'v . ce' . a' _ ' adesemio aN ome d1' on re— W41 software del DBMS ricorre a1 catalogo per determinare la suuttura del
. . che . dell’approccio Caratteristi con baSI dl datl
WM
dall‘approccio traUn certo numero di caratteristiche distinguono l‘approccio con basi di dati ciascun utente defidizionale della programmazione con file. Nelle. tridizionale estlon parte della programnisce e implementa ifile necessari per una spe'cifica applicazrone, come ne def von‘, pub mazione dell’applicazione. Ad esempio. un utente, l’ufiicio per la registrazio i per stampare programm ted implemen quindi Sono voti. loro i e gestire un file sugli studenti voti nel file. Un la trascrizione del libretto universitario di uno studente e per inserire nuovi W secondo utente. l‘ufficio contabilita, pub tenet ”WW
ciaWE Per guanto entrer'fibijli utenti siano interessati e dati sugli studenti.
‘ - e program per mampolare questfik‘rpoiché eiascuno acun utente mantiene file a nel definite e meMdafi non disponibili nei file dell’ aluo utente. Questa ndondanz sforzo per te— doppio on— e memoria di spazio di spreco uno risultato morizzare i dati he come un singolo nere agglomati i dati comuni. Nell’ approccio eon basi di dati, invece, si mantiene utenti. vari accedere possono poi quale 31 e tutte per volta una definito magazzino di dati, _
_
1 .3.1
.
_
_
_
_
_
Nature autodescnttwa dl un sustema dl has: dl datl
base di da— Una caratteristica fondamentale e Che il sisterna di basi di dati contiene non solo la
E1-
:he ur ‘ ‘nizior
‘escri
n— fl“
-'.
Dmplli" “law? “"""‘ural="°‘ o"oiviwn" Que— ‘
_
_'-
_
“—
e STUDENTE e la Osi ' “STUDENTE. 3X- 1. conrrano: In one uprca applicazione di gestione file, la struttura del file e. a] li-
mateI la posmone esatt ' e all‘intemo i ' ST D l‘mtemo di ciascun programma che accede a questo date.
' co ' cate al-
TE so
'7
1.3.2
Separazione tra programmi e dati e aStraz‘one dei dati
Nelle tradizionale gestione file 121 struttura dei file di dati e inserita nel programmi che devono 392528511 e pertamo cLualsiasi cambiamento alla struttura di on file puo richiedere on cambmmento d: ram I pmgmmmt' Che accedono E esso. El contrario. i programml di accesso del
Md}??—
Posiziene inlzlals del record
Name NumercStudenta
1 31
AnnoCoreo
35
CorsoLaurea
39
Figur ” ‘____formal
' ’
_
:10 on_,
‘ .. ,,"':zzazme
' '- 3? un
Lu nghezza 'In caratterl (byte)
so4 4
4
rem':
__ sruoE
-
i
\—__._?|
‘
_____4
'
...__._J
‘Hh-
OWIOA/or 8
Basi cli dell e utenti dl basi dl dati
__
/
Capitolo‘l
ffloq . ml 4“
ima‘tdrflimdé
[mama
enti di questo Expo. W DBMS nella ma ioranza dei oasi. non richiedono camblam n e m to mmi di ac: aratame o catalo el ' me a dei file a dati gromQuesta ro
'
'
ndenza tra r
r
' e
Ad esemplo un
accedere solo a mag di S] UDEfl wme pub 688813 grim 23‘ modo do. ere un'altra page di dati a ciaaggmng ' S 1.3. in 1 ra TE con a struttu non fun—
mma di questo tipo s-cu—n record di WHEd un progra ‘e so 0 150 no
ece zmne [31 e dovra essere cam iato. In on ambiente DB o per rispeechiare l’inserimeoto el catalog nel TE STUDEN d1 recor e1 e W ascmmmmmm
dato flatm
nuovo a dei recofldi STU Wcmrfi 31 catalogo acoedera alla nuova struttur DENTE e la useré.
WWWMH
definjre le operazioni sui dati come pane e e e
tazione dedicate alla loro presentazione e ai oonoctti Che essi usauo per astrarre la rappresen dei dati. iea Con la recente tendenza verso basi di dati orientate a oggetti e basi di dati relazional dadei souttura la solo non includere per superiore livello un a portata e e oggetfi, l'asuazion di atlivita del. ti ma anche lo operazioni sui dati. Queste operazioni fomiscono un’astrazione 115W Ad. esempio un‘ogerazione CALCOmini—mondo comu
'
DEW pub essere a licata a un oggetto studente
'
‘
fi dell’utente germ che e mlerrogazioni q dai grogramn invoca zioni ossono essere ..-—-—— . T——£—— so. 'ulente conosca i deltagli so come esse sian 'ntem operazione come all‘utente e disponibil resa e o rnini-mond e one un as as a .
e a oggetti gli utenti possono
210m della base di dati. Un’oEerazione
L‘ intefiacg‘g (o segnatura) di un’operazione (delta anche funzione) é MW. W
suoi gomenti (o pW W2: 3 i figi di dati dei WW W m. n azmnelo “ o operate sui dati invo—
dell‘utente posson Wprogrammi applicativi ntl, indipendentemente do come 1e cando queste operazioni attraverso i loro nomi e argome definite indiggdenza tra Eroessere pub falto Questo entate. implem operazloni stesse siano
mmi e dati e l’indipendenza tra La caratteristica che consente l‘indipendenza tra progra $m DBMS Un dati. dei proyammi e operazionj 2-, delta astrazione
m presentazione concettualg dWW e, un modello di dati alment iogi song implementale. Inform rizzati e su come le operaz memo .——-—-——-—————-. . e . . w . . form: r sale a on
' a e 1e loro interrelazioni. che so— tti Wcafi lo ici. com ' ' a nozionl di me no per molti utenti it scm lici 2 ca ire rispetto tazio' ' ' etta e nose-on enza ll modello cli dati s: I'gu m di basi menti r molti esse.—— —-di__ dati. sono non —— che ne —— ____1n_,.M .—__,. ementazione intema di on file puo Ad esempio. si consideri ancora la Figura 1.2. L’unp i1 numero di caratteri (byte) in ciascun record essere definita dalla lunghezza del suo record — iniziale all‘intemo del record e dalla sua byte suo dal — e ciascun dato pub essere specificato NTE sarebbe erci “WW Win-byte. 11 record di e interessato a posizione cli ‘a ' ra 1.3. 'DJttavia on n ico meme basi di d ' 0 a1 farto che, qualo11 record 0 alla sua lun hezza' piuuos ’ o. Una rappre‘ corrett valore ll ito restitu lenga , DENTE S 1 a ra sl fascia rif ' e ti altri denagli 0 1.2. igura m ta sentazione concettuale dei record di STUDENTE e mostra specificati in accesso dj i percors i come —~ file Ell ne izzazio memor dell’organizzazione della i Capivedano (si DBMS dal dati di base on file — possono essere nascosn' agli utenti della toli 5 e 6).
9
iate di ciascun file so-
izzazione dettagl Nell’approccio con basi di dafi la struttura e l'organ
alla rappresentazione oonoettuale no memorizzate nel catalogo. Gli utentl fanno riferimento rizzazione quando quesu' slamemo loro della li estrae dal catalogoi deuag
dei file, e il DBMS dati diversi possono essere usatl per forno necessaxi a1 software del DBMS. Mold modem di una pane importame di questo libro e dati: di nire tale astrazione dei dati 9.n utenti d.i basi
1.3.3
Supporto di viste multiple dei dati
e una diversa Tipicamente una base di dati ha mold utenti. ciascuno dei quali pub richiedern Huh contenere prosperdva o vista. Una vista Pub essere on sottoinsieme della base di dati 0
ma che non sono es licitamenl:
Who sono derivati dai file de
e-
fatto che i damorizzati, :[alvolta p115 non esserc necessan'o rendere eonsapevoli glj utenti del multiutenle DBMS Un altri. da derivati che piuttosto ati ti 3. cui si riferiscono sono memorizz ' ' ' dove fornire funzio ' ' ' ' icui utenp' hanno una
e dell base di dati di Fi ra 1.3 out: ssere interessato solo alla traQE- Ie. A utente E mostrata WLMIO universitario di ciascuno studente: la vista per questo
studemi ab-
W1 Un secondo uten
esami relativi a insegnamenti propedeutici a ciascun insegnarnento 21 ostenuto tutu ' blsogno della vlsta illustrata in Figure 1.40)). aver pub C111 51 sono iscritti, ”if.“
{H} l TEASGRIZION E Nomestudente
Trasorlzlone do! libretto universilarlo dello students Godloelnsegnemento
051310
MATH2410
Sm“
am“
Vote
Sen-lasts
Anne
:3
Autumn
as
e
Aumnno
so
ldentlfioatoreModulo
119
112
MA‘I'HZHO
A
Aulunno
93
55
051310
A
Autunno
98
92
553320
B
Prlmavera
as
102
033330
A
Autumn
99
135
[bl IPFIDPEDEUTICFFA Nomelnsegnamento Codioalnsegnamento Propadeutlclba 5532” —— —‘—3—053350 Has] dl dell momm 031310 053320 Slrutmre an dell )
1 .2. (a) La vista della traaorlzioFigure 1.4 Duo vlste derlvate dalla base dl datl esempllflcatlvo di Figure iolta agii lnsegnamenti. ne del libretto universibarlo degll atuderrti. {la} La vlsta deile propedeut
10
Capitolo 1
Basi di dati e utenti dl basi di dati
1.4.2
1 .3.4 CWe
11
Progettisti
del e transazuonl con utentl multlph '_-_—-_——l-I__
Wutente, come dice il non-1e deve consentire spin utenti di accedere eonte
—
raneamente alla base di dau. [a cosa e essflMfimW Wtenmi in una smgola base (ii dau. Il DBMS dge contenere or; sgflgggg pg:
Wm“ che aranu‘sca che in utenti che ecrchino d' stessi dati lo possano
'
li
aniera controllata. cosiccR ll nsnitato W
Moira, quanmW un volo aereo, il DBMS dovrebbe arantire che ciascun osto
ssa ess
‘d ra-
More assegnato a un passeggero da no solo addetto alla volts. Applicazioni di questo tipo sono generalmente done applicazionj di elaborazione delle transazigni in ling (0LTP: (an-line transaction processing). Una funzione fon ament e del software di an
m mulfiutentifluefla 31 assicurare cHe mm
I progettisti di hast d1 dafi hanno la responsabilita di individuare i dan‘ da memorizzare nella base di dati e di scegliere strutture adeguate per rappresentarli e memorizzarli. Questi compiti sono per lo pit intrapresi prima che la base di dati sia realmente implementata e popolata di dafi. E responsabilita dci progettisti di basi di dati comun‘icare con i futuri utenti della base di dati. per capime le esigenze e per dar vita a un progetto che 1e soddisfi. In molti casi i progettisti fanno parte deilo staff del DBA e possono essere assegnate loro altre responsabiljta cli staff dopo che é stata completata la progettazione della base :11 dati. Essi fipicamente interagiscono con ciascun gruppo di utenti potenziali e sviluppano una vista della base di dati che si accordi con la richieste di dati e di claborazioni del gmppo stesso. Queste viste sono poi anatizzate e imegrare con le viste di altri gruppi di utenti. Il progetto finale della base di dati deve essere in grado di soddisfare 1c richieste di tutti i gruppi di utenti.
Le carattenstiche ora VlSle sono le principafi per distingoere on DBMS dal software tradizionaie E Eesfione file Ear ullenonfifiol’o'n‘flimenn 51 veda i1 Paragrafo 1.61.
1.4.3
1.4
Gli attori in scena
In una piccoia base di dati a uso personale, come ad esempio l’elenco di indjrizzi d'i (mi si e parlato nel Paragrafo 1.1, n’picarnente una sola persona definjsce, costruisce e manipola la base di dati. Viceversa moire persone sono coinvolte nella progettazione, nell‘uso e nella manu— tenzione di una grande base di dati con qualche oenfinajo di utenti. In questo paragrafo verranno individuate 1e persone la cui attivita lavorativa prevede l’uso quotidiano di una base di dati di grandi dimensioni; clu'arneremo queste persona gli “attori in scena". Nei Paragrafo 1.5 verranno invece considerati i “lavoratori dietro 1e quinte”, coloro che lavorano per la manutenzione dell‘ambiente del sistema di basi di dati, ma che non sono direttamente interessati alla base di dati in 56.
1.4.1
Amministratori
In qualsiasi organizzazione in cui molte persone usano 1e stesse risorse c’e bisogno di un ammioistratore capo per Sowintendere e gestire queste risorse. In on oontesto di basi di dati la risorsa primaria e la base all dau' stessa e la risorsa secondaria e il DBMS e il software correlato. L’amminisn-azione di queste risorse e responsabilita dell‘amministratore della base dl dati (DBA: database administrator). E responsabifita deI DBA autorizzare l‘accesso alla ba— se di dati, coordinare e monitorare i1 suo uso e aequisire risorse software e hardware quando esse si rivalino necessarie. [1 DBA risponde inoltre di problemi quali la violazione a1 sisterna o tempi di risPosta scadenti da pane di quest‘ultimo. In organizzazioni di grandi dimensioni 1] DBA e supportato da uno staff che lo ainta a svolgere tali mansioni.
Utenti finali
Gli utenti finali sono quelle persons is cui attivita lavorative richiedono l’accosso alla base di dati per interrogazioni, aggiornarnenti e generazione di prospetti: la base di dati esiste principalmente per loro. Ci sono diverse categorie di utenti finali.
o Utenti casuali. Essi accedono occasionalmente alts base :11 dati, ma possono aver bisogno ogni volta di informazioni diverse. Usano un Linguaggio di interrogazione sofisticato per specificare ie loro richieste e sono tipicamente manager di media 0 alto livello o altre persone che accedono occasionalmente alla base di dati. o
Utenti finlli non sofisticati (o parametriei). Costituiscono una porzione rirnarchevole
degfi utenti finali della base di dati. La loro principale funzione lavorativa consiste nell’interrogare e aggiomare continuamente la stessa, usando tipi standard di interrogazioni e
aggiomamenti — detti transazioni standard (canned transactions: transazioni “in scatola". cioe preconfezionate) — accuratamente programmati e testati. Svariati sono i compiti svolti da tali utenti. Ad esempio. i oassieri di barren controllano i bilanci dei conti e registrano prelievi e depositi; gli addetfi alle prenotazioni per linee aeree, hotel e societa d.i autonoleggio verificano 1a disponibilita in corrispondenza a una data richiesta ed effettuano 1e prenatazioni; gli impiegati nelle stazioni di ricevimento di un com'ere inserisoono gli elementi identificativi di un paoco attraverso codici a barre e infomazioni descrittive attraverso pulsanti, per aggiomare one base di dati centrale sui pacchi ricevuti e in transito. o Utenti finali sofisticati. Comprendono ingegneri. scienziati, anabsti commerciali e altre persone che acquisiscono completa familiar-its con la funzioni del DBMS in modo da implementare 1e loro applicazioni per soddisfare 1e loro complesse esigenze. - Utenti indipendenfi. Mantengono basi Eli dati a use personale usando pacchetti dj pro— grammi gia pronti che forniscono interfacee a menu di facile uso o interfacce di tipo grafico. Un esempio e 1‘ meme di un pacchetto tributario che memorizza una varieta di dati personali a scopo fiscale. “ml
Basi d] dati e utentl di basi di datl 14
15
Capitolo 1
uenza deve essere controllato il tipo aegis;3:16:11 r::::erarll 51a d1 aggiomorli. Di conseg ente si fomiscono 3i utentl 0 Tipicam . amemo 3 nPi d1 mend accsso — reoupero o aggrom possono essere usati per ottenere l’acces— so 311a base, di dafi Lounggrhoitetu da password: che sottosisterna per la sicurezza e l’aulom1 formre fizzazione usmo (1.31 EBA S dovrebbe specificare 1e rcstrizioni per ciascun per e t accoun gh create per Bacon t 11,13 queste restrizioni. Si noti che sieme aticam antorn e unporr EMS dovrcbbe qumd: . . n. poo, ad esernpio oonsentire a1 Si . del DBMS mrh controlh 31 possono applicare 31 software creare nuovi ac-
mo Codlcelnseonamento tmcarorehnod wm ““3 m——Iden e —M
come il software per solo staff d1 DBA di usare certo software privilegiato, base di daparametrici pub essere concesso di accederc alla
count. Analogamente. agli ntenti ate per essere usate da loro. tr soio attraverso 1e transaziooi standard svfiupp
mfl
lncludono NomeSluden ndanzn controllers: sl trollata: on record dl ndan‘le d1 datl. (a) Rido con rido non lono zaz nza oriz nda NE. (bl Rldo Figure 1.5 La mem i'I TIOITLB del— mento nel file VOTAZIO di Flgura 1.2. perohé to e Codloalnsegna record di STUDENTE e coneisténte con l VDTAZIONE che non
1.6.3
a Smith. non Brown. lo students numero 1?
durante utenti vengono integrate viste di diversi groppi di 1e i prodat di una i re bas avc con e cio ebb Nell’ approc la consistenza si dow di uno stue di dati. Per assicurare cita bas la nas del di c a dat ion la taz 0 get re la pro come '11 mo a ciascun date logico — tenze e riduce l‘oc— gettazione che memorizz o non pennette inconsis est Qu i. dat di e bas la nel ro pos pub essere utile per solo lata to: trol in — con te den uni casi una ridondanza alc in o altr Per ria. rizzare NomeStumo mo cupazione di me esempio é possibile me i delle interrogazioni. Ad zion (Figura 1.5a). se E sta ON pre le AZI are VOT lior file mig on maniera ridondame in in nto me name dello stu— i1 gna nse rare icei dente e Cod E si vogliono recupe ra on record di VOTAZION te e l‘identifiden stu lo del ero num i1 ogni volta che si recupe o insieme con il vote, ent arn ricercare pin egn ario l'ins ess del nec ice é dente e il cod e, per raccoglierli non iem ins i dat i i tutt in mode ta— ndo controllers la ridondanza catore del modulo. Geste rebbe essere in grade di dov ndo autoMS ifica DB ver il i nto cas giu sti rag file. In que o obiettivo puo essere est Qu . file i ONE in tra AZI ze VOT ten ente in ogni record di le da evitare inconsis eStudente-NumeroStud di STU Nom ord di rec ori no val i di e che ent nte tud maticame di Nome-NumeroS ino con uno dei valori odicelnsegnamento in Figures 15(3) si accord IdenfiflcatoreModulo-C di r-i valo i e ent am log Ana ). 1.2 verifiche possono esste ure Que [Fig . DENTE con i record di MODULO ted fron con ere ess o omaticamente imson VOTAZIONE pos della base di dati e aut durante la progettazione MS 0) e mostrato on DB a1 150 ate ure Fig cific In . spe sere VOTAZIONE e aggiomato file il che ta vol che pub essere i e ogn 1.2 poste dal DBMS STUDENTE d1 Figura é inconsistente con il file che E GN AZI VOT di ord rec .
nollora
ridondanza e non con inserito en'oneameme se la
1.6.2
o non autorizzato Divieto all’access
sate permesosimfle che ad alcuni non o una base di dati. é ver doo mpio, sono divi ese con ad nti ri, ute nzia pii} Quando a commute. I datl fina ess in ni zio rma info autorizza— le e so di accedere a tim e conseurito solo a persone di conseguenza l‘aceesso e altri Sara ri ad rva tre rise men rati , dari side re con spesso rc nemiesso solo di recupera finse mm t; "ran = '---' '
' Memorizzazione ersistente d' ttr ogge I datip di e strutture
rizzazione persistente di oggetti di proLe mar dati possono eesere usate per fornire memo principaii per cui sono stati sviluppati i lgioni delle'ra una a Questa dam. d1 fiemj deisgumn'e 'one hanno strurrure dati com~ progra d1 ggr acid! dah a oggetti. I lingua ioni di classe in C++. I valori di variabili di plesse, come 1 opl record in PASCAL 0 le definiz termina, a meno che i1 programmatore mma progra un programme sonolscartati una volla che i1 che spesso comporia uua conversione di non 1e memonzzr fipficitarnente in file persistenti. la memorizzazione su file. Quando serge per adatto ato (1;;1eset:ecomplesse strut-tore in un_form programmatore deve attuare la conversione dflnfofi‘t: ciliillegfiere quesu den un’al‘tra volta, il mma. I sistemi di basi di dad a oggetti soprogra d1 ile var-lab . . le a-strutturn dr no C++ e JAVA, e il software del DBMS come compaubrlr con lmguaggr d: programmazione conseguenza un oggetto corn lesso Di aria. neoess sione conver esegue automaucamente ogoi a oggertl come ObjectSEore o DBMS un in Ll'l C++ puo essere memorizzato persistentemente tente dal memento che sopersis deno e tipo questo di oggetlo Un 02 (em detto Ardent). in‘seguito essere dirett pub e mma progra pravvwe alla ierminazione dell‘esecuzione del 3C++. mme progra alcro un merge recuperato da ‘ " di re struttu e ramrni pro di a memorizzezione persistente di oggetti _ bgasi di dati o‘adizionalid2111:1223:15:: gorgante der Sisterni d3 basi di dati. I sistemi di enza (impedance mismatch problem), imped di to dz] (1311;231:122? problemadel conflit erano incompatibili con 1e strutture da— DBMS dal for-rote den d1 re struttu d: ti dd fin a0 0’ e i di basi cli dari a oggettl offrono sistern i mente Wilrg‘gro program'oezrone. Tiprca com di programmazione a oggetti. ggi lingua pin 0 one can den d1 ra struttu della pat: [ta
1.6.4
Definizione di regole di inferen za 8 regole che usano azioni
e regole di deduzione in mode da Mann: srsterm-dr has: d1 datr fomrecono semzr per definir questo tipo sodo: fato memorizzafi nella base di dati. Sistemi di 11 e nuove mformazrom
16
Basi dl dati e utenti di basi di dati
Capitelo 1
no detli sistemi di basi di dati deduttive. Ad esemplo, ci possono essere regole complesse nell’appljcazione del nfini-mondo per determinant. quando nno studente e sette esame. Queste possono essere specificate con dichierttzieni esplt'cite come regole, che una velta compilate e mantenute dal DBMS sono in grade di determinare tutti glj studenti sotto csame. In on DBMS tradizionale si sarcbbe devute scrivere un esplicito codice dt' programme pmcea‘urale per supportare tall applicazioni. Ma se le regole del mini-mendo cambiano, e generalmente piu cenvcniente cambiare 1e regole di deduzioue dichiarate che riscrivere il codice di pregrammi procedurali. Una funzieealita pie potente é fomita dai sistemi (11 best di dati attive. che fomiscone regole attive che possono automaticamente dar inizio ad azioni.
Disponibilita di numerose interfacce utente
1 .6.5
Poiché una base di dati a utilizzata da molti tipi di utenti, con svan'ati livelli di conoscenza tecnica, un DBMS dovrebbc fornire una molteplicita di interfacce utente. Quests includono lin-
geaggi di interregazione per utenti casualj, interfacce a linguaggi d.i programmazione per pregrammatori di applicazioni. moduli (forms) e codici di comande per utenti parametrici e in— terfacce a menu e in linguaggio naturale per utenti indipendenti. Sia 1e interfacce a moduli sia quelle a menu seno comunemente note come interfacce utente grafiche {GUIs: graphical user interfaces). Esistono molti linguaggi e ambienti specializzati per speeificare GUI. Sempre pie corneal sone inoltre scrvizi per fomire aceesso via World Wide Web a una base di da— ti — o abilitazione via Web di una base di dati.
Rappresentazione di associazioni complesse fra dati
1.6.6
Una base di dati pub comprendere numerose varieta di dati associati in molti modi. Si consideri l’esempio mostrato in Figure 1.2. 11 record relative a Brown nel file STUDENTE e associate a quattro record nel file VOTAZIONE. In mode simile, ciascun record di MODULE] e associate a on record di INSEGNAMENTO Cost come a un certo numero di record dl VOTAZIONE — uno per ciascuno studente che ha superato quel modulo. Un DBMS devc essere in grade di rapprosentare una varieta d.i asseciazioni cemplesse fra i dati, cesl come di recuperare e agglomare i dati correlati facilrnente ed efficientemente.
Melte applicazioni di basi di dati presentane vincoli til integrita che deveno valere per i dati. Un DBMS devrebbe fomire servizi per defirfire e imporre questi vinceli. 'l'l ripe pill semplice di vincole di integrita comporta la specificaziene di un ripe di dati per ciascun date. Ad esempie in Figura 1.2 e possibile specificare che l1 valore del date AnnoCorso per ciascun re~ cord
‘
'vo a ‘L-
»-—-~ -....——~
1dent:':= ‘
jesserga g; 'Jtero r .' 1 -- 5 e c‘" " "alore '“ M“me dew mae.__
-
W e. _.__ __
re una strings di non pie dj 3O caratleri alfabetici. Un tipo pie complesse di vincolo, che si presenta frequentemente, cemporta la specificaziene che on record in on file deve essere correlate a record in ale-i file. Ad esempio. in Figura 1.2 a pessibile specificare che “ogni record relative a or: module deve essere correlate a no record di inseg-namento". Un altre tipe di vincele specifica l’unieita d5 valeri per certi dati, come ad esempio “egni record di insegnamento deve assumere an unico valere per Codicchlsegnamente”. Questi vinceli seno dedotti dal s1gnificate o semantica dei dati e del mini-monde che essi rappresentano. E responsabilita del pregettisti della base di dati individuare i vincoli di integrita durante la fase di progettazioue. Alcum vincoli possone essere specificati a1 DBMS e imposti auternaticarnente. E possibile che ale-i vinceii vengano controlled dai programmi di aggiemamento o neH‘istante in col vengeno inseriti i dati. Un date pub essere state inserite erreueamente e tuttavia soddisfare i vincoli di integrita speeificati. Ad esempie, se one studente ott'tene come vote no A. ma nella base di dati viene inserite on C. il DBMS non pub scoprire questo errere automaticamente, perché C a 1m valere valide peril tipo di dati di Vote. Errori nell'inserimento dei dati di questo tipo pessono essere sceperti sole manualmente (quando lo studente legge il vote e protesta) e cerretti in segulto aggiontando la base dj dati. Pere no vote Z pue essere automaticamente rifiutate dal DBMS. perché Z non e an valere valide per '11 tipo di dati di Veto.
1.6.3
Fornitura di backup e recovery
Un DBMS deve femire funzioni di ripristine da guasu’ hardware e software. Il sottosistema di backup (salvataggio) e recovery (fipristino) del DBMS e responsabile del ripristino. Ad csempto. se il sistema di computer si guasta 3 meta di un cemplesso programma di aggiomamento, i] sottosistema di recovery ha is responsabilita di assicurare che la base di dati venga ripristinata nello state in cui era prima che i] programme irtiziasse l’eseeuzione. Alternativernente il sottosistema di recovery potrebbe assicurare che il programme venga ripreso dal pento in :ui era state interrotto. in mode tale che venga registrato nella base di dati il sue effetto comp ete.
1.7 lmplicazioni dell'approccio con basi di dati 1? aggiunta ai punti discussi no} paragrafo precedente ci sone altre implicazioni, nell’uso delI approccm con basi di dati, di cut pessone giovarsi molte orgaru'zzazioni.
lmposizione di vincoli di integrité
1.6.7
17
_
Petenziale per import-e standard. L’approecio con basi di dati permette a1 DBA di definite e impone standard fra utenti dj basi di dad in una grande erganizzazione. Cio facilita la comerucazrene e la ceoperaziene Ira van' dipartimenti. progetti e utenti all’interno dell‘erganizzazrone. Pessono essere definitj standard per nemi e fen-nati di dati elementari, fennati di vicualizzavime. strurhlre di prose“ti “terrain-"infra e co"? "if 11 DP *‘ ""6 irepnm "Ii starch" -
_
—'
Capitclo 1
.nm-M- III C' up 886
. l Ifi‘ITfiTu‘lciutolHIaxamudm-'-“m"l' '
-
. .
. : I
I u ‘ u;
I
.
rat-edurale
a se le regole del mini-mondo camb' duzione dichiarate cite rise-'
I ' ‘ . dei dati 8 del mini-mondo che essi rappreseu Er I. . re ..i :.»-. :. .; .; ‘ .' ' : '' , . datiindiviI' progettisti dellabasDBMS c imposti automafiente. E posstbile ‘ . I '
-. Un dato IuI - . - I‘ . . specific I. Ad esempio, 5e unI\
- svariatj livelli di conoseenza tecacce utente. Queste includono linguaggi di programmazione per pro-
quelle a menu sono comunemente no
tenti speeializzati per specificare GUI. Semuser interfaces). Esistono molti lingua- ; via World Wide Web a one base di dapre pifi comuni sono inoltre servizi per fI WI; Iccesso f I di base una di ti — o abilitazione via Web
Rappresentazio -di as
iazioni complesse fra dati
II dati associati in molti modi. Si consiUna base di dati pub comprend I numerose varieI . Brown nel file STUDENTE e associa~. rela record ll deri l‘esempio moslIato in Fig I . 1.2. I scum record di MGDULU e associate to a quattro record nei file V ' ZIONE. In modo sirni I' record di VOTAZIONE — uno per n certo un a come a no record di INSEGNAMEN .. cosi -I eve essere in grade di rappreUn DB ciascuno studente che ha -. Ierato quel modulo. I Ie di recuperare e aggiomare cm dati. i fra sse comple sentare una varieth di as I - iazioni i dati correlati facilmen ed efficientemente.
ione divincolidiintegrité
di integrilfi che . -vono val-ere per i daMolte applicazi I - ' di basi di dati presentano fincofi imporre questi Vin OH. I] tipo pill seme e definir per servizi ti. Un DBMS I Ivrebbe fomire ciascun date. Ad e di un tipo di dati plice di vinCI. I di integrita compona la specificazion or.-. per ciascun reAnnoC data del valore 11 she care specifi ile esempio in gum 1.2 e possib rm 1 e 5 e Che i1 valore di NoI - deve essecord relatiVI' a uno studeme deve essere un intero
_
:
_
'
' g .. 9
flil'l '
at
menteil 0111 «If 1
'
l
'
- ' -' =‘-
: o 'I
:7
:‘.:
:.....
'3
-rts
0. Ad
amma d1 aggloma-
' e Il‘O
I use I IT Ia
I .. -
..-:_-_ -.--
”Mummy-.7
rrotto in ma”
:-
- ll . ,
.- ”Lafittfimm...
compieto.
_p-...;
hardwaree softwarellsottosistema
I ill -‘- S e responsabile Ie
- mm”!nommuufiumm'r‘ .
‘IP. “11W
I— essedai
w;
mm ”IEIw-‘ull.;;_-‘
rnento ' sottosisterna di rec- -. I;
-
-..= __
naripreso dalpun—
: n‘LLla base «1 IE:' '.| effetm
‘
Jig.
Ildatl
//
‘
1.6.7 lmpo
1?" .153 _
= '
Bio.
»
. - '-I' I' I'Iu'- "Ad
:» ::-'. .7 , :_'...uuhf-
.
.'
-'
g
‘13:;
l
1.6.6
I m
-
u
_ > . base di dati viene
.~
Meme. perché C e un v . -> - - I I r , ll'l=""t""'r"_n . l‘ msento . mmrfillillmi—‘ . I Issono . _u_- l I re vaJido per il tipo di dati di e protests) e corretu e . 7. . I I nu Iente (qt: -do 10 studente legg.. . guito a 9 IIII : . I I 1 ., . .' . - ,-_-,. P..~—--~_v;-.-r'7:‘=7.r«=‘rie. Igmalcamene riuutato oto. DBMS, III W — un valore valido Ier i1 tipo di I /.
(-
Poiehé one base di dati e uti ' - nica, un DBMS dovrebbe fom‘ . guaggi di interrogazione per uten I grammatori di applicazioni, modun terfacce a menu e in Linguaggio mate I -
‘
Iente omene so 'I . . I I -
a
'I
«v-ui-
g.
u
.
‘
:1
g___§ a
.
_‘-a.l— _.-. N. .II
A
. compiv. 'e. In un
n.»
6 :
'
‘
‘
‘
'
I
'
.
.ulr—
‘ ..I|_uqn........
.0
I I-tu sistem I1 135 II' dati dedutfive ; I -. u. I
DI
16
_
delz; I . ' I nti di _ si nel paragrafo Irecedente c1 sono El. - III . - :-:--:‘., nell'uso
l 2- ' ' “ =1: ‘-‘-Ii"qLIItI cut IIssono ; ovarst me e organ“
Fotenziale per '
orre standard. L‘approccimemette
fra utenti di basi di dati in una grande organizzazione. Cio fa ' ' e imporre stand murficazione e a cooperazione tra vari dipartimenti, progetti e utenti all‘intemo dell rganiz' di vizazione. Poss no essere definiti standard per nomi e formati di dati elementari, forma sualjzzazione, sh'utture di prospetti, terminologia e cosi via. [1 DBA pub imporre gli s dard
18
Basi di dati e utentl di basi di dati
Capitolo 1
pib facilmente in un ambiente con una base d'r dati centralizzata che in un ambiente in (mi cia‘ scan gruppo d'r utenti ha '11 controllo dei proprl file e do] proprio software. le del— Tampa ridotto per lo sviluppo di applicazioni. Una ragione di successo fondameuta l’approccio con basi di dati e che lo sviluppo di una nuova applieazione - come i1 recupero di certj dati dalla base di dati per stampare un nuovo prospetlo — richiede molto poco tempo. La progettazione e l'implementazione da zero di una nuova base di dati pub richiedere molto pib tempo che non scrivere una singola e specializzata applicazione su file. Perb, una volts che
una base di dati e realizzata e in funzione, generalmente é richiesto decisamente menu tempo
per create nuove applicazioni usando i servizl del DBMS [d3 no sesto a un quarto di quello r1chiesto usando 1m file system tradizionale).
Flessibilita. Quando cambiano 1e esigenze puo essere ueoessario cambiare la struttura dl una base di dati. Per esempio, pub sorgere un nuovo gruppo di utenti che abbisogna di informazioru al memento non presenti in essa. In risposta a do pub essere necessario aggiungere un file alla base di dati o amuemare i dati elementari in un file esistente. I DBMS moderui consentono alcuni cambiamenti alla strultura della base di dati senza coinvolgere i dati memorizzatl e '1 programmi applicativi esistenti.
Disponibilita di informazioni agglomate. Un DBMS rende la base d': dati disponibile a rutti gli utenti. Non appena in essa vieue effettuato un agglomamento di un utente, tutti glj altri utenti possono immediatamente vederlo. Questa disponibilita di informazioni aggiomate e assenziale per molte applicaz'roni che elaborauo u’ansazioui, come sistemi cli prenotazione 0 ba51 di dati bancaJ-ie, ed a resa possibile dal controllo delia concorrenza e dai sottosistemi di n-
pristino disponibili in un DBMS.
Economic. di scale. L‘approecio con DBMS permette l’unificazione dei dati e delle applicazioni, riducendo cosl l’arrmontare di dispendiosa sovrapposizioue tra 1e attivita clel personale di elaborazione dati in diversi progetti o dipartimenti. Questo consente all‘iutera organizatizione di investire in piu potenti processori. dispositivi di memoria o meccarusmi di comuni— cazione piuttosto che clover far acquistare a ciaseun dipartimeuto la propria attrezzaurra (meno potente). Clo riduce i cosfi operativi e dj gestione complessivi.
1.8
Nonostantei vantaggi di usare un DBMS, c1 souo alcune situazioni nelle quali un tale sistema pub componare spese generali non necessarie a {mi non ci 5i esporrebbe nella uadizionale gesu'one file. Le spese generali nell’uso di un DBMS'sono dovute alle seguenti ragioru: alti investimemi im‘zialj in hardware, software e forrnazione;
e
dati: ""eralifi' Fr"“‘ta da'w DBMS 9;." "‘P-finir‘ew1 elaborare _ =5...” ..__ . ... ___.,
spese generali per assicurare 1e funzionl di sicurezza, controllo della concorrenza, ripristino e integrita.
Problemi aggiunt'wi possono sorgere se i progettisti e il DBA non progettano correttamente la base di dati 0 se le applicazioni dei sistemi di basi di dati non sono implementate correltamente. Percio pub essere conveniente usare solo file nelle seguenti cireostanze:
la base di dati e 1e applicazloni sono sempljci, ben definite e non si prevede che debbano cambiare;
ci sono stringenti necessita di tempo realc per alcuni programmj che non possono essere soddisfatte a cause del DBMS sovrastante; non e richjesto un accesso ai dati da parte di pin utenti contemporaneamente.
Sommario 1n questo capitolo abbiamo definjto una base di dati come una collezione di dati correlati, dove per dati si intende fatti regisu'ati. Una tipica base di dati rappresenta alcuni aspetti del mondo reale ed e usata per scopi specifici da uno 0 pin gruppi di utenti. U11 DBMS e um pacchetto software di uso generale per implementare e mantenere uua base di dati computerizzata. La ‘base di dati e il software nel complesso formauo un sistema di basi di dati. Abbiamo individuato diverse caratteristiche che distinguono l‘approccio con basi di dati dalle tradiziouali applicazioni di gestione file:
esisteuza di un catalogo; indipendenza Ira programmi e dati e indipendenza tra programmi e operazioni; astrazione dei dati; mantenimento di viste per pill utenti; condivisione dei dati tra transaziorlj multiple. Quindi abbiamo esaminato 1e principali categorie di ulenti d'r basi di dati. o i “attori in scena”: amminjstratori; progettisti; utent'r finali; analisti di sistema e programmatofi dj applicazioni.
Quando non usare un DBMS
1!
o
19
_
'-
Abbiamo notato che, in aggiuuta agli utenti cli basi di dati, ci sono alcune categorie di per— sonale di supporto, o “lavoratori dietro le quinte“:
progettisti e unplementatori di sistema DBMS; sviluppatori di snumenti; operatori e personale per la manutenzlone. ..
_’
p
.
.
~. .3
. 3.
\H .,.H::'
-2
:
.
_
_
...
Basi d1 dati e Lrtentl di basi di datl
21
Capitolo 1
20
dowebbero essere forniti dal software del Abbiamo poi presentate un eienco di servizi che progettare, amministraxe e usare una base all DB MS a DBA. progettisti e utenti per aiutarli a dati: centroilo deila ridonclanza;
divieto afl‘accesso non autorizzato; di dati; memerizzazione persistente di oggetti e sb'utture azioni; definizione di regole di inferenza e regoie Che usano utente; ce inlerfac se numero di disponibilité rappresentazione di asseciazionj cempiesse fra dati; impesizione di vincoli di integrith; furniture di backup e recovery. dell'approccio can basi di dati rispetto a siAbbiamo elencato alcuni vantaggi aggiuntivi stemi tradizionalj di gestione file: potenziale per imporre standard; tempo ridotto per lo sviiuppo di applicazioni; O flessibiiita; O gli utenti: disponibiiilé di informazioni aggiornate a tutti I economic di scala. O ail'uso di un DBMS e abbiamo discusInfine abbiamo esarninato 1e spese generali legate ricorrere ad esso. giose vantag essere non so alcune situazioni neiie quali pub
0
Questionario di verifica 1.1.
1.2.
1.3.
1.4. 1.5.
dan'. DBMS, sisrema di basi di dati, caSi definiscano i seguenti termini: dati, base di mmi e dart, vim: d'utenre. DEA, meme progra rm a ndenz ralago di basi di dari, indipe a‘an‘ dedum'vo, oggerro persistenre, me— finale, Immazione standard. sisrema di basi a'i zione. :ransa di azione radan', applicazione dt' etabar lgono 1e basi di dad? Le si tratti breQuali 50110 i tre tipi principali dj azieni che coinvo vemente una ad una. proecio con basi di dati I: come esso difSi esamininu 1e principali caratteristiche deii’ap ionali. ferisea dai file system tradiz progettisti cii basi di dam"? Quali sane 1e responsabiiim del DEA e dei principaii atu'vith
Si disentanu 1e Qualj 50110 i diversi tipi di utenti finaii di basi di dati? di eiascuno di essi.
1.6.
fumifi da un DBMS. Si esaminino i servizi Che dovrebbere essere
Esercizi 1.7.
zioni di aggiemamente informali Che si riSi identifichino alcune intermgazioni e upera mostrata in Figure: 1.2. dati di base alla zare tiene ragionevole indiriz
1.8.
Qual e la difl‘erenza tra ridondanza controllata e non controllata? La si illustri con alou— m esempi. Si defiriiscano time le associazioni fra 1 record della base di dati mostrata in Figure. 1.2.
1.9. 1.10. S1 formscano alcune viste aggiunfive che possono essere necessarie ad altri gruppi di menu per la base di dati mostrata in Figure. 1.2. . Si eitino alcum' esempi Iii vincoli di integrita che dovrebbere verosimiimente sussistere per la base di dati di Figure 1.2.
Bibliografia selezionata I] rim-new di ottebre 1991 Eli Communications ofthe ACM e Kim (1995) cemprendeno svariati arucoli che descrivono DBMS “delia prossima generazione"; moite deile caratteristiche delle besi di dafi discusse in questo numere some are disponibili a livelie commerciaie. I.l numero di‘merzo 1976 di ACM Computer Surveys ofifre una delIe prime immduzionj esistenti ai sistemi d1 basi di daLi e pub femire 3.1 iettore interessato una prospettiva storiea.
WWW—".mwmmw..."
..
Capitolo 2
Concetti e architettura
di un sistema di basi di dati
.L’architettuta dei DBMS e evoluta dai primi sistemi monolitici, dove, l‘intero paechetto software costituiva 1111 solo sistema strettamente integrate. ai modemi pacchetti di DBMS Che sono a progeno modulate. con un’architettura di sistema di tipo_client-server (clients-servanwdéfEaIcolate}. Questa evoluzione fispeechia la tendenza attualmente esisteme nella scicnza
tori dove 1 grandi mainframe cenu'alizzgi vengono man mane sostituiti da centinaia di workstation 13 personal computer distribuiti. connessi da reti di comunicazione. In an ’architettura ciient--server di base 13 funzionaiita del sistema e disu'ibuita tra dugfipifiLmofigLUnmfidn—
lo client kW: '10 sulla workstation o sul
Iem'16‘r‘tfiooéutente che personal computer den’utente WW
agfltgojlla base di dati van 0111: eseguiti no] modulo client. Percio guest‘ultimo gestisce 11311 0 interfacce utente 111mm utente e fornisce e
grafiche GUI) am L‘ Wdefio modulo server, IIatta 1a memorizzazio-
memo. Lg ricerca e 3n flinzioni. ' uodurre concetti pit] basilari she consenfiraimo di raggiunngere una mi» o gliorc comprensione dell: modeme axchitetrure di basi di dati. In questo caEitolo presentmetto i1 libro.Com1ncerem'o e 1 ounce mfiiia terminologia_'_ WW1 emandnumdflhfidaue definendoi concetti di schema e istanza .fOn
dibasididati WWW
damentali perlo stu DBMSel‘h-l
»
v
-:--
Unuzl
I
'tSO fomiSCCUll'IJI'I'III
eJiuguaggi the un DBMS tipicamente rende disponibili, nel
_
re di un sistema di basi di dati e infine, nel Paragrafo 2.5 daremo una clasaifi ' DBMS (questi ultimi due paragrafi forniscono concetti piu dettagljati she possono side'rafi un'integrazione a1 materiale introduttivo di base)
‘
Concefil e arehltefiura di un sistema dl basi di datl
25
Capltolo 2
24
2.1
fi e associazioni. Un’entit '_"——I I modem di dati coneettuali usano concetti come entita. attributi .
Modelli di dati, schemi e istanze
Una caratteristioa fondamentale dell” approccio con basl d1
dati a ehe esso fomisbe un eel-to li‘
sulla memorizzazione degli stessi che vello d1 astrazione dei dati nascondendo quei dettaglj mgdello di dati — 11:1 insieljae di eon— Un utent't. degli parte or non sono necessari alla maggi di una base di dag: — fomisce imezzi t 51;! 'vere 1a cm possono eigegygatiper cl ra di una base di dati 5i intendono i strutm Per one.‘ astrazi questa e necessari Eefiifié‘lunger su di essi. La maggior pane dei valere bero tiE' dj dati, le assomanom e 1 vincoli cbe dovreb base per speeificare recuperi e di loni operaz di e insiem un pure nde modelli di dati compre agglomamenti sulla base di dati. modello di dati sta diventando sempre montage operazioni di base fomite dal
amico 0W pit comune includae "in case concetti per specifioare l‘ ttista della base di dati W pggge al te consen Cio '._§iati. ' 'ne lic mangdiun‘a ente valjde, permesse sugli oggett‘l della cificare un insieme di operazloni definite dall’ut dall‘utente potrebbe essere fJALCOLA_MV, base di daft}. Un esempio di operazione definita ' p’alua pane. operazjgni TE. STUDEN di che pub essere applicata a un oggetto di oggeno sane sgesso cogprese tigo lsiasi gqua reetE 93:113 {1911;1 lge. iLsegixe. cancel ortamento sono ' ti. Concett't per specifieare i1 eomp Wmm in modelli d1 orando inoorp anchc stanno ondamentali per i modelli di dati a oggetti, ma si relazionali e a ii model nei io esemp ad —, ione estens loro la dati pin tradizionali — attraverso oggetti.
2-1-1 W base ai tipi di concetti da essi utilizSono stati proposfi molti modelli di dati, classificabfli in 0mg];
dati. zati per descr'were la struttura di una base di
‘ at} men' in c ' mo ' tenti e tua_li fonfiscono concetti che sono ' ‘ ' a1 mode che deserivono i dettagli sul ti ooncet ono fomisc fislci o livello basso di datl tre i modelli di Iconcetti forniti dai modelli di dati di bas' modo W cr, 112;: a umi. Tra W W W a ati destin lmente 0 50110 genera live! so .._.. ._.._ bill cbe fomiscono conoetti menta 'ggnle dag‘ di lli questi due estremi c‘e una class: di mode tani dal 1110610 in resi da 1i ten ' fin ' ch 05 li di memorizatidettag alcunj ndono nasco i s CWWs vicini a1 compu— pifi erare consid o si posson zione dei dafi, ma proprio perché haplementabilj ter stesso‘
oncetto del monmmnmmfime m rosenta un Un attribute rappEEEta una qualche r rieta dj mteresse e e fim lg‘bm dwil Un'associazione Ira descfive pib a fondo un'entitiéeome i| nome 0 il saano HelinELI'ieato.
iazione lavoraWWI-exam un’mterazione tra 1e enfita; per esempio un’assoc
modem) My; fi'vE tra on impiegato e an Rroggtto. Nel Cap1tolo 3 vex-ti presentato i1
le di alto livello; nel Ca< clazione Entity-Relationship), un populate modello di dati coneettua
come la genbralizzazio— plto o 4 vengono desoritfi altri concetti riguardanti '1 modelli di dati, ne, la specialjzzazione e le categorie. nei tradizionali I podellj di dati implementabili 52110 modem usativpifi frequentemente modelli di come cosi l relaziona ti ' DBMS commerciali, e includoié il diffuse mod imodelli reticecioé (eredith), legacy una ono costituiso ora che e passato in usati dati molto le, alle sue ope lare e erarchico. I Capitoli 7. 8 e 9 $0110 dedicati a1 modello di dati relaziona di due sistemi relaziod‘insieme viaione una ofire 12 Capitolo il menu-e i, linguagg e Iamom' e nel Capitolo 8. I mall.3 Lo standard SQL per basi di daft relazionafi é descritto in particulat e Rergg sono ta'record di sb‘utmre usando dati mno rappreseg ntabili hugleme dati di aodelli
”
lora chiamafi W
di modelli di E possibiie considerate i modelli di flafi a oggetti come una nuova fam'tglia
_dati impleagemabifi a Bit alto hvellg ghe_s_ono pm xjgini ai‘modelli dngfiEejmali. Essi
lar modteL _ sono spesso anche utilizzati come modelli coneettuali di alto livello. ingartico ’ are: ' " I modelli di dati fisici descrivono 1_l_n;19¢unW—
presentando informggniLQmEJIQEDflLi-fig '
‘
'
'
' cammini di accesso.
1i arficolari race Un cammino di aecaaso é una mttuxaebe rende e ' e delle fisica azione memorizz di tecniche delle a dettagliat e tragazion una ". Per Ease]; Twin ' ' ' mutton: di acoosso si rim P...»-
2.1.2 Schemi, istanze e state di una base di d3}; tra la ifescriziane della Qualsiasl sia i1 modello di gm; oogfiifieram. a igportante distinguere della base di dati dataschema Elena ne descrizio La stessa. dan‘ di base gtfila bmdifi
Wa)‘; essog specificato durante laptogettazione (Ella base
Mi e non e1 si aspet-
di dati seguono oerte convenziot_a_c_l;e_cambi frequentemente.‘ La maggior pane dei modelli ntazione grafica di uno schema rapprese Una mi. diagram _n'1 per rappresentare gli schemi come
edizione originals (in llngua inglese) di quoI modelli d1 dati redeolare e gcmchico sono descritti nella, seconda
sto libro, I: sono aoeessibili in Intemet ael relativo site Web. 3
3
dati. per escro— descriziono. o schema. di una speeifica base di Talora la parola modetto e usata per indicate una a data 9.1 Let-mine [ale lntet'pretazionet pio, il "modello di dati per il marketing". Qui not! la quale la progattazione
riflette una tandem seegmjo L'inelusione di coneettl per dejerivere ll eompprtamenlo via oombinate in una singola attivita‘ Tradisoftware vengono via di basi di dali e le attivila dl pmgatazione dei
e associao zfififiénte 1a speeificazione deir"eomportamento “
a con la pmgettazione dei software
L
A
«a
usare schema: come plurals 251' schema. anche 9e Ne] gage in lingua inglese dello hast di dag a oonggehldine ‘ " ‘ usata al pesto dischemn. schemata sarcbbe la for-ma pin corretta. La pamla .rchgme a talura i requisiti delle applicezioni delta base di dad I embiamenti nello schema soao generalmente necessari quando
j che li rendono possibili, per quanta tale cambiano. Isistemi di basi d3 dafi pin recenti comprendono operazion proeeaso sia pill complicato dei semplici agglomameuti della base di dati‘
Concetti e architettura di un sistema di basi d1 dati
Capitole 2
26
27
allora in poi. ogni volta che viene eseguita un‘operazionc di aggiomamente, si ottiene on al~ no state della base di dati. QEalsiasi sia l‘istante considerate 11c] tempo, la base (11 dati ha one ‘ a' ' state cor-rents.“ E in arteres onsebili sche— ' e ivincoli s ec' ‘ at ' ' " ‘ ma. Di censeguenza, specificare uno schema cor-retro a1 DBMS e estremameme importante, c 10 schema deve essere progettato con la massima cum. I] DBMS memorizza 1e descrizieni de‘; costretti delIo schema e dei suoi vincoli -— detti anche metadati —— nel sue catalecro cesicché iI software del DBMS puo riferirsi allo schema egni velta che he he bisogge. Le schema é taleme e une state della base di dati estensione della schema.
STUDENTE
1 Nome 1NumeroStudente1AnneCerao1GorsoLaureaj INSEGNAMENTO
[Nemelnsegnamente1Codlcelnsegnamente1 Ore 1 Dlpartlmemi1
PROPEDEU'I'ICITA ICedieelneegnamento1 CodlcePropedeutlci‘ta 1
W comefieemnrecgisaga, che lo schema cambifiggneggeWon e Eoi cos! eccezionale che $1m esempio, si poggbbeflidereche. yoke in cui carnbiano i regisiti defl'applicazione. Ad F—‘—"' deve essere memorizzate un ale-o date ' " scan record d1 un fiic, quaIe la DataNascita cello schema di STUDENTE dj Figure 2.1. Go e note come evoluzione della schema. La maggier parte dei DBMS moderm' include alcune eperazieni per l’evoluziene Hello schema che'gossn;
MODULO
1 ldentificetoreModule | Codlcelnaegnamento1 Semestre 1 Anne 1 Decente 1 VOTAZIONE
NumeroStudente 1 ldentlficatoreModuto 1 Vetoj
no essere ese
‘
Figura 2.1 Diagramma dl schema per la base d1 eatl di Figure 1.2.
2.2 Architettura di un DBMfie e detta diamgma di schema. Ly Figure 2.1 e mostrate un diagramma di schema 2e: la base 1e di dati iFiggra 1,2; i1 diagramma rappresenta Ia strutrura di ciascun dye di record ma non o STUDENTE come — schema dello oggette ciascun istanze cffettive dei record. Si chiamera
INSEGNAMENTO — em.
TreIi
'a ramma di schema rappresenta sole cem' aspem' di uno schema, come i need dei ad vari tipi di record e dc: dae, e alcuni tipi di vincoli. Altri asgetti non vengono Ecficad; va1 Era assoc1amoru 1e né date c1ascun d1 dau d1 true esempre 1a Flgura 2mm 1] r1 file. Meffi tun 31 vincoh non sone rappresentati nei diagramrrfi di schema; per esernpio, un TirTcelo come “ 1i studenti che stauno fiequentando Inge neria infermatica devono superare E l’esame dell‘insegnamento di codice C81310 puma della fine clel seconfio anno Hi cogeflI I
W
iuttoste
r
u
W
I
a
-
I
1
u
.
4
rtanti caratteristiche deil‘ a re
ii)
'
n basi di dati, clencate nel Paragrafo 1.3, sone:
ammiedati indi endenza re
'-datie re
ammi’e erazieni);
' '11 viste d‘utente; (3) use di un catalogo per memorizzare la descrizione {so c(2) so e ma) della base di dati. In questo paragfi'fiverra analizzata un‘archftettera per Slstemrm di ’d'a‘ti: detta emu-1mm a ire livelli,1 che e stata propose: per ajutare a ragg'xungere e visualizzare tali caratterisfiche. Verra in secende luege discusso il concerto di indipendenza dei dad.
resen are.
I dati vex-'1 e prepri in una ase ' dati possono cambiare piuttesto fr- - uentemente; ad esem~ 1 - . 1'. a ”"ecamr igm vo ta c e vrene agg: n - no studente pie, 1&- -. ‘ .
ewmserittulmmmwym m1; one studente. I dati nella base di dati ig un particolare istante di
an—_ di and o l’istantanea della base di dad. Sgarla' i ' di dati. In no certe state della ba» ne ' ’ 'nsieme c istanze‘ ad esem 10 se di dati ciascun cestrutte dello schema ha i1 re rio insiem c ord) di ciascuno studente come sue enterra l‘insieme di entita ' 15:31:23, Si possone cestruire me t1 stat: e a base di dati che si accordino a un panicolare schema della base di dati stessa. 031101111 che viene inset-lie o cancellate en record. 0 cambiate i} valere di on date in on record, si passe da one state della#base di dad a 1m altro._ La distinzione Ira schema e state di una bfi di dati e molte importaute. (Mode 51 defl1 m
2.2.1
L’architettura a tre livelii
L’ebiettivo dell'gchitgmga 11 Ire Livelli, illustrata in Figyra 2.2, a guelle di seEarare 1e applicazieni dell‘utente della base dj dati fisica. In quests architettura pessene essere definiti sc emi ai segyenti tre h'velh’. 1. II livelle inter-no ha uno schema intemo, che descrive la struttura di memerizzazione fi-. _ . ' _ -' srca della base 1:11" Jan. Le schema inferno use on modello fisico di dati c escnve 1
gli completi della memerizzazione dei dati e dei cammini di accesse per [a base di dad.
m'sce one nuova base d1_daLi. si smififl i_1_§uo schema solo a1 DBMS. A queste punto '11 cor-
Kay-«M
-.
rispendente state della base di dati e10 state more, senza dau'. Si raggiunge 1o state iniziafe "as vof‘“ Maelstr- n caricata cm- ? dati ini'riafi. Da de" ‘ se di .g‘ ' land: .. " ' Taper
6 7
-- Lo state con-ems é anche dette fsramanea cements della base 111 dati. 'e. 9.4.. anche ,1: "m“pctmra ARTCUSPARCTAH: ".9313 dc]: mush-.110 che l‘bn ”a {Tninhr‘nzis g, mom
“a..."
M
M
W
M
W
www
w:
C
23
29
Concetfl e archltettura'di un sistama dI basi d1 dati
't I 2 so: 0 o
W éWWEWWM 9“
schema in un sistema di basi di dati. La maggior parte dei DBMS non separa completamente
UTENTl FINALI
W on certo punto guesta architcttura. Alcuni possono inclu-
dere denagli di livello fisico nello schema conccttuaie. Nella maggior parte di quelli che sup—
VISTA ESTEHNA
LIVELLO ESTERNO
VISTA ESTERNA
' ' '
portano viste d’uteme, cafi neilo stesso modellofii datiche de~
scrive 1e informazioni di Iivello conccttuale. Aitri ancora consentono di usare modellj di dati (fiversi passando da um: 59Ema Banana]; a uno so am: esteggo. Si noti che i he Schemi sono solo descrizioni di dati; i soli dfifl che esistono momenta so' ' ' ' ' ' sul ‘ no a fivello fisico. In no DBMS
,
W.c W .
mapping
spflifinmm uWWW III.— II
estemolconoetluale
I’l'
LIVEU-O
F
GONOETTUALE
L'VELLOC
I
I.I‘II:
III
I
I‘ll‘:.|'u:.
' . ,."Ili‘-II
.Oi’ll
ONCE'ITUALE ‘1
WV
‘
'
'
Wm
2.2.2
ura a tre livelli. Figure 2.2 Illustraz‘lone deH'architett
Indipenden
'
'
l. Indipendenza log'ca dei dag. E la caEacita di cambiare lo schema concettuale senza glover cam lare Li sche ' estemi oi ro ammi applicativi. Si pub cambiare lo schema concettuale per espandere la base di dati (aggmngendo un tipo di record 0 un campoJ 0 per ri-
.3 c cettuale ha uno schema , co L0 “hem concettuale nas tuna comuoité di 11
. ._ , 4 d _
b “
_ ' an 3550' essere usato un modello d1
. . -. 1 - n' ”1's:
u J'Ste d‘u-
art: della base di dati a cui e interessato un £11132 Ciascuno schema e temo descriv la usau un . oi ndend nasco I Rarticolaa'e $11290 di utentj
0 un modelio di dati implementable. di dati mode .._—di aho livello .___... _____llo
Hurla irimuovendo un tipo di record 0 on camF o). In quest’ulfimo caso gli schemi estemi _....the Si riferiscono 5010 ai dati fimanenti non dowebbero essere intaccati. Ad escmpio 10
schema estemo di Figuxa 1.4(21) non dovrebbe essere influenzato dal cambiamento del fi-
1e VOTAZIONE di Figura 1.2 in quelIo mostrato in Figura 1.5(a). 5910 1a definizione della orta l’indi endcnza lovono essere modificafi in 1111 DB ' vista e i In ema ester' gica dei dati. I program-mi app ca 1 e anno rifefimento ai cos
nmlavorm come puma. WWII-Hale e ssato sottoposto a una
n'B'rganizzazione logica. Si possano anche eseguire cambiarnenti ai vincoli nelio schema con—cefififile senza per'questo influmzare Eli schemi estemj g i Brogan-mi agglicativi. 2. Impenaenza fisica e: a . la cagacita di cambiaxe lo schema intemo gemca dover
cm (0 gli schemi estem'). Cambiamenfi ailo ache
-———-——————‘ ‘
-
L‘architetmra a he livelli pub essere usata per spiegare i1 concerto di. indi endenza dei dati, che pub essere definite come 1a capacits di cambiare lo schema a un certo jiveIIo 31 an Slstema di basi di dati senza dover cambiare lo schema al livello immedjatamente superiore. E possibile definue ue upi di indipendenza dei dati.
BASE DI DATI MEMORIZZATA
' =
'
' ‘
t_a_\;_ia, um certa quantize di mam a necessaria per trasformare le richicste tra i livelli concettualc e intemo. .__,_..—-—-
SCHEMA INTERNO
sulla descrizi ture di memorizzazioge fisica e si concentra uesto livell ciazioni, geruionj degli mead e vincoli. A idati im leme ta ile. '
-.
sformazione (1i ricgjgsjg e risullau’ 1:3 Wfimmazioni). Questi Bossono essere dispendiosi in termini di tempo. cosicché alcuni DBM§ — specialmegm qnglli de—
sWi gafi — non supportano vista esterne. Pure i
LNELLO INTERNO
‘
'
£118- SW dwnmmmmmom
mapping concettuaiefinterno
2. 11 live se di dati
.
di Iivefla Eagico on Is in letterama si parka pill frequentememe Anziché di Iiveflo concerrmie e di schema contagi o : imanere adercmi a1 ncslo ofiginsle in lingua ingleee. (ma-r.) prefent e 51 qul te; vamen rispelti Iagim e di schema
'
’ ' vggo esserei-iorganizzati — ad esemgio ' possono essere nmhé a are le prestazioni di rccupem 0 di agcreando strutture di accesso addizionali —per miglior
Concetti e architettura dl un slstema di basi dl datl
Capitolo 2
30
di prima, non dovreboe assert. giomamonto. Sc rimangono nclla base di dati gli stessi dati
mmno d1 accesso n cessario cambiar lo schema concettuale. Ad aemmca non
lramite Semestro e Anno Ber miglioraro il moupm g1 record di MODULO (Figure. 1.25 come “elenca tutu 1 modull amne rogazio un’intcr di nonto cambim il rc richiede e dovreb c eseguita £11; DBMS pitl effi~ van ncll’éfitunno 1998", anche so l’interrogazione vetrcbb
oxentcmentc tramlte l‘urifizmoo d1 ago—39:50.
dove cssero ampliato Ear agOgnl volta che Si ha umm‘liflalllisuo catalogo 11vcl]1.llllDBMS_usa softwavar] trai dafi e richicste e mappar come so giungcre informazjoni m c_ u . - 1 1 - l catainforma alle os1 re aggiuntivo per realizzare questi mapp1n-ntcrend . ljgl,
n1cwndenzad'
‘
I
=,-_I'
.
II
n
’u
u.‘
.
.II:
‘-
nnmutato; solo 11 mappmg tra1 vello, lo schema a1 livello innnediatamcnte sugcriore rimane
catia due livelli vicne cambiato. Pcrc1o 1 program appfi '
. . di pill alto livcll‘o non devono essere cambrau. mwl mm plm sam pifi reodere pub livelli mtettura a trc 1m aurnento d1 elabgrgmnc daft, sia logica sia fisica. Tuttavia, i due livelfi di mapping creano 0 dj un programma, portando a durante la compilazione o I’csccuzione d'1 un’interrogazione
anze 'n'e1 D‘BM‘ s. A causa di E215, pochi We impleWt incfficie ’——_——— 1c arclutettura.
vono avers degli SW Le manipulazioni fipicm
no 11 rccugero, l’inserimento, la cancellazione e la modifica dc1 Han. II DBMS fornisce un lingnagg'o di manipolazione dei dati {QMIJ data mafigulafiormnggage! pEr questi scopi. tuali 1 ti 1 Iinguaggi distinri; pluttosto, é usato un linguaggio integrate glob-ale, che include costrutti per la dofinizione dello schema concettuale, per la definiziono defle 111516 e per la matfipolaziono oc c £14311. La dofinizionc dclla memorizzazio'ne 6 ti ic 'one fisica 31 fine di mattere a unto ' e usata or e Hire strutture di me ‘ ' BA. aol ststcma di basi di datl ed 6 usualmcnte utili IEguaggio global: e il linguaggio per basi dj datl relazionalj SQL (si veda '11 Capitolo 8), che
L c DML. cosi come 15mmm' ‘ Winazmnc 1 D . 116 c 0 so mama-SET. era nu gogpoggnte di SQL nelle suc grime verne 1 men o 31 livelli concctm‘hle ed estemo. mato mnosso per mantener
23.mm ase di dati é stata completata e Che E state scelto L111 zi Una volta oh: la ro qucIlo d'1 specificare g1: scherm conDEIN‘IIS per Myloggentgrla, :‘l principale obiettivo diventa
CW
2.3
Linguaggi e interfacce di basi di dati
di un DBMS. Il DBMS dcgg fornire Nel Paragrafo 1.4 E stata prescntata 1a val-iota di utenti di utenti. In gugfigo gang. afo vcrranj ia categor a ciascun per riati linguaggi c intcrf c e a ro QEMS e le categone d1 utentt a cur “no esgmiEati ' ' 6Fc'TjEEuEP1%ifie—rl'fifcc fpm‘ti do un E destinata ciascuna interfaccia.
m
tt ale ointemo e 0 mi ma
ta- una sein traidgg. In molti DBMS nei guah non E mantenu
. gDDL:‘ di definizione del . datl u e netta tra livefll 1m solo lingyaggi , dfl fi' flag—{lo C:arazion schema. Eh 1 entramb definite Ber isti Erogott dai 3 W), M ni DDL islxtlzlo le te elabora di S am on com ilatore DDL la cui fup‘zione sarh quella 11 delio onc descnn la zaro mmotiz per e salon-1a dello i costrntt WW del
scgqrflpel catalogo del DBMS.
L.._._._
cificare 10 hema intemo. I mapping tra quosti due schomi possono osserc specificati nell’u'tetrura 11 Ire livelli si avra bisogm __ gger Ella var 110 o nell’altro di guesti IlngTa-"T’ term llnguagglo. i.l lingnaggio di definizione delle vista (VDL: Flew aeEI-Titt'on Ianfiiafifl per sgoclficarc I1: vista d‘utoyige i loro mapping nello schema ooncettuale ma nella maggior ELEM E usato per definire sia lo schema concettualc sia lo schema cstcmo. Una volts che gli schemi sono stat1 compilau' e la base di dati é stata poEoIata. gli utenti de«
”‘Ci 50110 no op1 priocipali di DML. U11 DML di alto livello o nonprooedurale pub esse' ' corn Iesse sulle basi d1 dati. MEI—— ificare in mode concise o re usato do 5010 or t1 FEES consentono chc isu'uzioni DML :11" film 112' 3119 vengano inscrite interattivamente da un terminale (0 monitor! oggure vengano incaEsulate (embedded) in un Iinguaggio di Erogrammazione generflfurpose. In quest’ultimo caso le istruzioni DML devono esscre riconosaute all’intomo del programma cosi d3. potfflmere estratte do on precornpilatorc cd elaborate dal DBMS. U11 DML di basso livello o procedurale dare esscre incapsulato in un fin— 1guaggio di programmazione general-purpose. Questo tipo di DML tipicarnente recupera sinWe 1i clabora soparatamente uno ad uno. Ha quindi binno di usare costmtti per fingggggj ' programmazionc, come l’iterazione, Ber rocugcrarc 6W1: w. prendendolo da un insieme dj record. I EM]. di basso livollo so: no anche detti DML record-at-a-time (DML un-rmaawolta) propn'o per guesta EropriEta. I DML di alto fivello, come_S_0_E possono sggcificare e rec-upstart:- molti record in una iii—#5013 istruziooc DML e sono 119mb deitl get-gt-a-fime o set-oriented DML mil—411:.
___________—————'
4
31
‘1 livelIi concettualo e interno. In quei DBMS in cui é mantcnuta una netta distinzione tra altro linguagglo, ll lmggagggo U11 alc. oonccttu schema solo il oe soecifica per usato é DDL ll 37.“. izion . .. m "132101;“ [on] . fl'nrnaafiefillifinn Wage}. 5115a we; da—-—- ”KW.“ —--__ ———.._H -——M
sicmo-gHg-volta od orientati-all’insiemgL Un‘interrogazigMWlfljmw sEocifica guali dafi recumraro m’gfigfio ch; game recugerarli; gercio guesti linguaggi sono an-
Ogni voita che comandi DML: di W10, son '
sulati in un linguaggio
WW. quel linggaggio vieoe (lotto linggaggio osnite (host—31L
gage) o i] DML é dotto lin
'
‘ '
la estione dati? D’altrondo un DML _
Nelle bnsi di dati a oggeni, i1 linguaggio ospite r. i! Iinguaggjo specializzato par la gestione dati formal-10 fipica»
menu: on solo linguaggio integrate - per sample. C++ con aqnc estensioni per supponare la Eunzionafith per basi di dati. Anche alcuni slstemi relazionali fonfisoono lingunggi lntegrati — ad escmpio il linguaggio I’IJ'SQL _ di ORACLE. >
.
‘__.
MP;
W
w
Concert! 6 architetra' dl un sistema d1 basi dl 1:19.11
Capitolo 2
32
di interrgggzione (quegg di alto livelio 1151110 in modo interattivo kW ento 911 an DML :11 11331Ew 111 guelfi, sia language) 111 gene-tale! sia mew -
Ifi Were WW
o 11::1one.'D -«Pa speGli utgnti casuali fipicamente usano un finWflfiufl W n cificare 1e 1010 ric_h__i_este. mentre i programmed gfim 11 DML ci sono di n01etrici param 1-137.". 1101;15:13 non 1111:1111 Come si vedré nel prossimo paragmfo per
esse possono essere anche usate ma interfacce amichevoli peWWJELEEfiE i dettagli di un linguaazio di inre Wm uten1i che non vogliono impara MW. terrogazione
2.3.2 We dei DBMS o comprendere 1e interfacce seguenti. Le interfacce amichevoli fomite da un DBMS posson
nte W111. detti menu, che W. Offrono ail’ute eliminano la necessita (ii memomenu I WW“ M;,piuttosto. l‘inteno—
rizzaIe i comandi e la SWWW flsmflfihLflma gazione e composta Basso passo selezionandgnm mce
33
W111. Accettano richieste 56W aecencano di“ca 11113”. WWW—mm; m____1_1_". che E smnle 11110 schema concettuale della base di 111111. e fa rifenmento alle pamle'1n es-
so contenute 0051 come a un msicmcfigamleflandard, per interpretare 1a richiosta. Selin—
WWWW F natttrale e 13331111111111- al DBMS nerl‘ elaborazione; alen e a a richiesta 1n Engaggio
M
11111131111 1n121a 1111 dlalogo con l‘utente per chian're la richjesta.
Interfacce per utenti mtfici. Gli utenti parametrici, ad esempio i cassieri d1 banca 5136530 11 trovano a dove: eseguine tiLtutamente un piccolo Insieme di operazioni. (111 211121115111 d5 sistema e i programmatori progettano e implementano 1111 ’i1ttErfaccia s eciaie er 11a ' classe nota di utenti non sofisticati. Di 1.01110 viene inserito 1111 piccolo insieme di comandi abb_v_1_a[1 con 10 scopo d1 minimizzare 11 1111111810 111 battute necessatie p01 ciascuna rich1esta (ad ensempio. i tasti funzionali'111 un terminale possono essere programmed per daIe'11111.10 31‘ vati comandi).
' ' ' ' ' Interfacce per 1] DBA. La maggior pane dei ‘ ggati che possomwmtmssi inciudonogornandi gar create ac-
count Per fissarc Pmmeui d8] wste
per WWW—mam—
btate uno scfiema e norgamzzare 1e strutture di memorizzazione di una base di dati.
Wfifl L‘uso dei menu pu11~down(a 1scesa) stW
cl'te consentono ' utente sate su finestre Sono spesso usati 111 interfacce Hba turato. destrut e tivo esplora modo 11 1 (1311' a un utente di scorrere il contenuto di una base 1:11
ti possono compiGli uten I ——-—.————1-——---]. 10c WWW W .. oduio e1 Ian
a, W DBMS recuperera= per gym mnceme i 0311121 Emm ati e programmed Eer- utenti non sofistiprogen ente usuatm sono i modul I cato. specifi quanto
2.4
L’ambiente di un sistema di basi di dati
Un DBMS e 1111 sistema software complesso. In questo paragrafo verranno analizzati'1 tipi di component; ggfifleare che costituiscono yg DBMS e W tera DBM
ti DBMS dis d. CWCC alle transa_2.on1 stanggxdMol i programmatoori a smificare 911eaiutano che li spe__cia ggi lingua , ufi od sW che smliilLNcuni sistemi hanno 10 ammi di utilita
sento
un
ulo
ente finale. di_11_n moduio campione sullo tramite 1a costruzione mterattiva, da parte dell‘ut 55111111110.
all’u e te WW1 icamente mosttano
:11 dia—
'one mani olando nest’ultimo. In mol" ' 331111-113 L’utente 11110 11110111 MW modufi sia menu sia no uctilizza 11' casi, 1e interfacce grafiche se emonare certe parti del diagramma di per mopse, 1111 ome . 1111t 2111111 di itivo djgpos schema visualizzato.
2.4.1
Moduli componenti un DBMS
1n Figggg 2,3 50m; 11131511afi. in inmasemphficam, WWI-Me di dati e il catalogo dei DBMS somunhtamentennemonzzmmdtaco. L’ accesso a1 disco e , chone pianifica 11v: 0 eratin 1 st 5181 trollato essenz1a1mente dal coW S alto Livello. con p131 a DBMS del modulo men-1011221111, dati dei egestore U11 l'mputfoutput. 5111110 ease pane e 21 11 omiazioni del DBMS memonz accesso troila l‘ac se d1 dati 0 del 11:11:10,110. Le Iinee tratteg 'ate e i on:129' contrasgegngti 11011 A B C D-ed '
.F1g111a 231lluWMmuol1nAncora,esso pub usaxe sew _ '
WW1 dati d1 basso we 9 g
1°
in inglese (inrermgazione 11111111111110}. il Linguaggio d0— Se 5i dovesse guardare ii significato della 11310111 query
recupen 11011 aggiomementi. vrebhe 1n realm essere 11111110 per descrivere solo
a pnncipaie 91111321111111.1191: 111a co moria come la gestione di bufi'e_1_in memoria principale. Una volta che 1 a
- I
Concetti e architet‘tura-di un sistema di basl di dati
Capitolo 2
34
35
ilatore eggs comandi DMl. da un program-ma agglicativo scritto in un lin-r~
muggflgg‘rli
guaggio ospite di programmazione. WW
ar 1’ accesso alla base di dati. Il gesto gel @031a
viato a1 comilatore del finggaggio us its. Quindi i1 codice oggetto per i comandi DML e
”Samba
1mm
£3;
etaltdlDEIA
fluello per il resgg e1 programme sono messiTn collegamento (linked). tonnanoo mama-
__z_io_ne standard i1 cui codice eseguibile include chiamate al processore di EEEuvinne delayi-
”WNW
Con la Figura 2.3 numb intesowwsl gganto Eiuttosto illu-
Camplhm “I
strar; tigici moduli D_I'3_M_S. II DBMS imeragisce con il sistema operative quando sono ne-
‘Wm 039““
cessari accessi a1 disco — alia base di dati o a] catalogs. Se il sistema di computer é condiviso da molti utenti, i1 sWianifichera 1e richicste d1 WW
r """""""""""""""""""r """"""" ‘ " — 'I mussfigg' : ISTglilfiI-ONI “will?“ :
'.
:
O
:
:_
l
i
i
E
Processoredsl:
I
'.
basadldati
dei WWS WWW
mm Mi oWone general—purpose. Interfacce utente amichevoli ai
mm L
‘ '
1
wificaré E‘sye DBMS Bossono essere fornite 2e: gimme ogni tigo di meme lbw
'l
" ow. esac
W
1
——d
E
-
:
2.4.2 mernorl .
"""""""""
.
Snuolnslam‘l dl cull-01h) dell: commenter bsclwpfmcovary
Programmi di utilité di un sistema di basi di dati
di Oltre a disporre dei moduli sofimreappenadcscritti, 1a maggjor Ear-re dei DBMS dispone a di basi di dati. ' 'l ' 0 il di utilith er basi di dati che aj 9 I comuni programmi di utiliié svolgono i seguenti tipi di funzioni. . . . . . . . . . . . er owe WSW—=00u e 1. Cancamento. Un’utl Efiflgfig 0 file sguenziali — nella base di dati. Di solito il formato crgme (sor-
BASE DI DA.“ MEMCRFZZATA
accessi che sono sotto ll Figure 2.3 1fiplci moduli componenti un DBMS. Le linee tratteggiate indicano controllo del gsstore dei datl memorlzzatl.
gente) dei file di dati e la struttura desiderata gobietdvo)fi§i_fi1efi:ua_hasadafison0-Spflr
o amma di utilité, che guindi Induce m—dpcificati a ‘Versr e H memorizza nella base glj glad. Con la roliferazione dei DBMS il Lrasfedmento
Her dati da un DBMS a un altro sta diventando cornune in mqgorganizzazioni. mane
lags-some essere elaborati da altri moduli dei DBMS, cos] come da promoria principale,. essi .
W
“V'?
gramrm applicatm.
a deI! Hfmpiiatore DDL elabora definizioni di schema, specifieate nel DDL, e memorizz
aziom' co« ' sgigipni defiji sifiEmMmetadatiMelcatalo o 1 B m informazio file diciascun zzazione 'dimemori tta d ' ', 'd ‘ ' ' ' a— . . . . ..—- ’. . 6? eati-lcofi—gmfi inh . (1311553313111
L—fls ernoml
W. .
llSI “11' ”L. m. llllLE
E
llIJBHSi
l'E
talogo quando ne hanno bis
.
. lessore di ',
'flil'
nu
_
' un’
- - -.-_-:_ue sulla base . i. - - . duranie l‘esecuzigng; ric ati. H mpflatm memorizz da' dei store g i1 attraverso passa W disco al fling; L‘accesso mm-
jmgw dellejntemgazioni gmmmmflm dj mam gazjone mamaesegu gn'inm g o inlemregg ire :1 L .61.;595 analizza e gompfl mama-ESscan. whimsy a1 processors di esecuzione per Hindi MSW base di dati e
.4.“ @593
.
_
unr-
-:3-*-
_; —-g.-*-
-—
_.__
_ -_
azrende offrono prorlotti che generano programmi di caricamento appropriati, {13$m
scfizioniesistenei dolls modalita di memorizzazionergllo bqsefiésdatisorgente e obieLtiyo (schemi intend}. Summidi—qwmfipG-mnoanchacbiamafifimmflfimonefl 2' gggfifWWW—hwm dau‘ dl‘flfi‘ifig _ _ ‘ “ ‘ , ' . 111-311,
. ase d1 dati 1n caso di 1 asto ata u: . ‘ ”.9
' -- a - . H
'
backup incrementa—
ti dal backu ' ‘ nei quali sono re 'stra ‘ 1e e iii comp esso ma consente di 1'13 armi
W
no 1 morerrrentare lc restazioni.
ganjzzazione di on file de a base di an.
eme l’uso dej._la_bg-_ 4. Wazme utilité controlla sistematicam . 1 11' . decisiouj, co— fil prendere _ per esse a tie quale il EBA. ‘ a1 siafisncfie formsce e Hau 3:93;;— me ue W m i me, 3.3m 13 compm_ W W no ESSENWWmmC Alt:
.1. E
.i. gli utent
sione deLdRfimolhre—liaccesso-drpane‘de i . .i
'.
.
.55 Lg
"' 1'
”“
Concetti e architettura di un sistema di basi di datl
37
Capitoio 2
36
2.4.3
11" marchico e 511 gmeilo reticulare. I DBMS relazionaliw
tisti e er 1i utenti di basididati no
Spesso sono disponibili altri strumenti er i re trumenti
pen
ge_tti,Ci9_i_1_a mtato a una nuova classe di DBMS: si ma infatti di DBMSfljfizinnalLemaoggettirBasanfiQ§i sul modello di dati e percib possibiie classificare i DBMS in: relazionali. a riggtti. relazionali e a oggetti, gerarchiei, reticolari e altri.
35mm uWe i DBMS e quello del numem dj agent: supporta-
-
19 dal sistema. SW supportano soio on utente a11a volta e sono per lo pia-
'lita 13m
u
m
t
'
ro e
E“ W
WE 33W“ (0 denosito di dafi). O
usati con personal computer. Sistemi multiutynte, che ineludooo la maggior parte dei DBMS. ‘ supportano p111 utenti simultaneamente, Illa terzo criterio E-il nmero di siti sui guali e disgjhuita la base di dati. UflMS e cen-
dei fiat; j mmagazzina altre informazioni, co— di catalogo su 1i schemi e i vincoli: i1 dizignm'o
' ' di r0 mmi applicativi e informe decisioni di Erogettaziggg, standard d’usoI desc ' detto deposits di 1 ormazrom. A anche e mazioni ger gii u_t§_n_t_i. Un sistema di questo tipo quando esse si rende-
tralizzato sWWWMMQQflLl-flg U...” D__B_,___MS centralizza____to
W ma i1 DBMS e la stessa base di dati risiedono totalrneote in on
Efi utentt o 11 DBA queste informazioni ossWEfle— a1 catalogofiei DBMS, ma mciude una simile dati e1 ‘ ' Un’u arie. no necess I
a
a
.
o '
-
p
.
u
.
.
diventando applicazioni, come i1 sistema PowerBuilder, stanno ioni di ' o ' svilu lo er te ambien un no omisco em; sts pipttosto popoiari. Quesu ' ' ‘
'
'
'
' '
‘
a di consentire ag 1 utenti in ostazioni remote r1 zi di dati di accedere alla ase
nal computer locali. u sti sono connessi
W0,
’'
‘ ' '
onnessi da unarmdigpm—
We. Molti DDBMS usano un'archjtettura client-server.
di interfacce grafiche, 1e interrogadi dati, tra eui la Erogettazione di basi di gatiJ vilu 1. ' '. li aggiomamenti, nonché lo sviluppg (ii Eroggamrm any
13 3212E54DBMS ha anehe bisogno di interfacciarsi con i
'
omogene UW‘ Una recente tendenza e que—ll-a’ Enter. DDB di sviiuppare software per accedere a numerose basi di dati autongnwmdz2W DEW Ci?) ports a un DBMS federato (o sistema a basi di dati gush. £9.15} in cui i DBMS partecigaoti sono debolmente acgoggiati e godono di un certo grado di
W di sviluppo
bfiifiifiafi-fljflciudono funzioni che sono d'
. Un DBMS distribuitg (DDBWSLnum
‘
base di dati vera e propria e il software di
m $3;m M
ontinuamente e.
' ' 133311 :3; E551 di flag gog-‘ ' ' WWW
trumenti, ambienti a licativi e funzl'onmo‘lfiufifi'a—zrgne:
n quarto criterio 6‘: i1 costo del DBMS. La maggior pane dei DBMS costa trai 10.000 e i 100.000 dollgijI Sistemi a utente singolo e a bmeheepfimw-mfifleeefiipmfio-
, 1a cui fun-
tto a1 sito del sistema 31 Easi wonksmfimoilgmnensg;
stano tra 100 e SWolifi Al lato opposto c’e qualche 1’aWetto pamcoiarmente sofistieato cTne costa m ch 100. Sipuo classificare un DBMS anche sulla base delle opzioni per i tiLidi cammini di ac-
cesso'zemonzzmfilem fmmummfimmflme tra-
ICti locali. o dispositivi di comuni-
'ca— ' ' ' r ' ’ ati olt' istemi ' ' ’ caz’ dag," é detto sisteimento Easfer e DBMS to integga sistema 11 . DBMS il zione che lavorano con alcuni DBMS distribuiti sono ripartiti rna DBJ'DC (databaseldata comnmnications}. Inoltre retl ace ne sono nec e conne per casg, fisicamente Ira pit macchine. In guesto
@3l-
mmg-tmpgngza le Brestazioni: un DBMS special-Rumose Euo essere progettato e costruito W on tale sistema non pub essere usato per altre applicazioni sen-
zamodifichemdicali. Molti sisterni di prenotazione aerea e di elenehj telefonici sviluppati nel awnflBMS—speciflmsgflufifliono neila categoiia dei sistemi di elabora-
networks). ma anche di altro tipo. di comunicazione, spesso reti Egan (LANs: iocal area '.———-—.
.
M
.
'
' '
], che devono supportare un gran numero di transa-
mom conconeW
’ Siragionj ora brevemente sul principale criteria di classificazione dei DBMS; 11 gogeilo M110 di glati relazionale di base raporesenta one base di dati come one collezione di tabelie, dove ciascuna tabefla pub essere memog‘gzata commute. Lam
2.5 Wei sistemi di gestione ' cli basi di dati
W2 e presentata in mode molto simile a una rappresentazione telazionale. La
. Iiprimo e quello de1 modello di Possono essere usati svariati criteri per classificare i DBMS ' ' ' ' ' ' idi ti due 1 (139' 511 cui a basato i1 BMS. plb Mmjp i. e n dati lo d1 commerciaji sono i1 modelio di dati relazionale e i] model cazioni lasciateei m er
1th operano an
em:
s1 1
'
'
-
M
“
ring (ingegneria dei software assistita dal computer). Benché CASE stia per Computer Airied Software Enginee zione di basi d1 dati. progetta pet-1a molLi strumenti CASE sono nsati principalmente
maggior pane deile basi di dati relazionali usa i1 linguaggio di interrogazionflLfltofiuello d,eLm_S.QL.e suggona una torn-1a limitata di viste d’utente (per 1’ anaiisi de] modeilo relazionlale, dei suoi linguaggi e delle sue operazioni, nonché di due sistemi commerciaii campione.
51 rinvia ai Capitofi 7, 8, 9 e 12}. 11 modello ii dati a oggetti definisce one base di dati in termini di oggetti, delle loro proExwmgetfi con la stessa struttura e comportamento apparten‘gg‘fit} a w. e e classi sono organizzate in gerarchie (o grafi aciciici). Le operazioni d138— seggafdammuo smgjfigm in termini di procedure predefinite dette metodi. I DBMS raw
W‘
Concetti e architetbura di un sistema di basi d! datl
Capitolo 2
38
39
Abbiamo poi disfinto Io schema, 0W base di dati, dalla base di dati stosINS EGNAM ENTO
STU DENTE
sa. Lojguma non cgnhiunolto spesso, mantra invece {o state della base di dati cgflbjgggni. che vengono insoriti, cancellati o modificati dali. Abbiamo quindi desoritio l’architetruvolta ,___.___._.._..._.. nsente tic livclli di schemi: WE di u
E-UN
OFFEHTEJNSEGNAMENTO HAJJN
TI STUDENTE
V0 ‘
a uno schema antemmmgmmmmmnmmuamfim
if MODULO
o o
PHOPEDEUTIGITA
non separa complctamente i Ire g‘xgflj. Abbiamo uggto l’architettura a to livclli per definire i ' a. '10 i ' denz c nocttidiindi
VOTAZIONE
Sono stati poi studiati i tipi principali di Wm
del modello di datl roticolare. Figura 2.4 L0 schema dt Figura 2.1 nel1a notazione
nali e a o ti a oggetti e altri sci-vizi; questi sistemi sono detti relazio
\"
‘
'
.
. .
definire lo schema concet’ruale della ba' linguag i0 1 definizione d ' 2 doi DBMS il DDL definisce anc e e v15 6 dad. Nella ma 'or se @613 memorizzazzione; in altri DBMS a tale scopo possono esistorc mmscpara—
mi relazio-
_
411W DBMS compila cutie 1e definizioui di schemi e W
_
‘ mani olazione dati
rs
ML é usato
'
-
caper] e aggiomamenti effettuati sulla base di dati. I DML possono csscrc di alto livello (set1 0 di basso livollo (record-edema , prose ura 1 .
onon o , no
tati come retumgoh c 1 tipi ms“:la has—m dati 3i Figura 1.2. in cui i tipi record sono presen .modeilo CQDA-
n
aito ].i~
Wsulmggio di prograrmnazionc ospite, o essere usato 5931.8
re, noto anche come Wmntafi ctichettati. Il modelio reticula me che dove essero mcapsulato in un -at-a-ti I SYL DBTG,‘2 ha un fimfgitfissociato record hico rappresonta 1 oat: come struttu: gerarc lo model I] osfitc. linguaggio di programmazione
linguaggio indipendente; in_qucst‘ultimo caso é spesso detto linguaggio {1i interrogazmne.
Si sono esaminati diversi tjpi d1 Eterfacce fornite dai DBMSI e i npi di utefifi di DBMSaj
quaii cm associate. Abbiamo poi esanfnato ramming; gel smmgfilfisi
un certo numero d1 record correlao: rWscuna geraIchia rapprosenta la maggior parfe dei nessun 111 11a
'
'
zioni no] u
tipi di record e on opo inmtato (i1 assoc1a‘ Ii modelio reticulare rappresenta i dati come to un diagamma di schemo repcplpie pc- I zione 1 :N, dctta ti insieme. In Figum 2.4 o mostra
Non c
dell'imera base g" Qati;
[Jn DEMS che separa in modo netto i tre livofli dove disgon‘e di map-0mm gli sc'lggmi per trasformare richieste e fixing]; da un liveHo a1 sucoessfiro. La W
VOTLMODU L0
nali atesi.
'zione di alto ' ll ' a uno so W dcscrivono 1c vigg di divorsi gruppi di utenti.
Whore di DBMS e LpLogrammi di utiliti dei DBMS che aiutano_gli
'0 standard per il modeilo gcrarchico, anche se
guirc i lormfi. FEE-e W
BMW
e ’ulfimo paragrafo abbiamo classificato i DBMS segucndo diversi criteii: modello di p'nne generalitiv dati. numero di uionti, numero di siti, cg§_t_q, ti i di camlrum 1 a
i‘ev'émmdicm' mm: dei DBMS e basata shim Abhiamo % s
' '
'
'
tiattualmente nci DBMS commerciali.
Sommario usati nei sisterni di baoi di do— In quosto Capitolo abbiamo introdotto i concctti fondamenmli uondonc tre categono pl'lIIClpahZ Li. Abbiamo dato la definizione di modello di dati, disting
Questionario di verifica
su entita e associaziopi); I modelli di dati di alto livcllo o concottuali (basati 1 3550 livello o fisici; o modelli 1 . o W (basati su record, a oggotti}
2.1.
Si definiscano i seguenti tonnini: modello d1" dati, schema ds’ zma base di dati, staro di and base di dati, schema inferno, schema concetmaie, schema esremo. indipendenza def dari, DDL, DML, SDL, VDL, Iinguaggio di' intermgazione. linguaggio aspire, linguaggio specializzato per la gesrione dart, programme: di ufilifd per base dz‘ datf. caraiogo. amhirermra client-server.
2.2.
Si discutano le principali categorie di modellj di dati.
2.3. 2.4.
Qua! é Ia differenza tra one schema di base di dati e um stato di base di dati‘? Si descriva I‘architettura a to: livolli. Pcrché ahbiamo bisogno di mapping tra i vari ii»
‘3
volli di schemi? Como supportano questa architettura i diversi linguaggi di definizione di schemi?
-
'2
. di e Data Base Tas‘it Group_ [Iinguaggio‘ per sislemi CODASYL DBTG sta par Computer Data Systems Languag che ha specificato 1| modelio mumlaro e 11 300 comitato i1 3 che clad). di basi per group task — r dati per compute . . ‘ . . . ’ . lin ua 'o. cdmonc originals (in lingua inglese) d1 quesoconda della on gen-amni e : reticular modelli sui I cEpiLElgilcomplefi ‘ I . _ . giro Web. . _fl _ .. ' o 11]‘bili . in home! no] reladvo sopo (11$!) ' sto horn
:—
-_
fi‘
'
—
Lu
!__
__..__,
F"
"_ 40
Gapitolo 2
2.5. 2.6.
Qua! e la differenza tra indipendenza dei dati Iogica e indipendenza dei dati fisioa? Qual e la differenza :ra DML procedurafi e nonprocedurali?
2.7.
1i Si presentino i diversi dpi di interfacee amichevoli e i tipi di utenti che solitamente
usano. 2.8.
2.9.
Con quale altro software di sistema interagisce un DBMS?
e le riSi discutano alouni tipi di programmi di utilith e di strumenti di una base di dati spettive funziom'.
Esercizi 1.2. Di quali tipi di appli2.10. Si pensi a diversi utenti possibili per la base di dati cli Figura utenti appartetrebbe cia— di categoria quale A utente'? ciascun cazioni avrebbe bisogno
Capitolo 3
Use geimodello Entité-Agsociazione da démdfijlam'ti E
scuno di essi e di quale tipo di interfaccia necessitei'ebbe?
I
a. Si progetti uno 2.11. Si scelga un’applicazione di basi di dati con cui si abbia familiarit usando le notane, applicazio quella per campione dati di base una mostri si e schema potrebbero rap— si vincoli e joni informaz zioni delle Figure 2.1 e 1.2. Quali altri tipi di progetti una visi e dati di base la per utenti diversi a pensi Si presentare nello schema? sta per ciascuno di essi.
"Ion.-
applicaziomdihasidi-dafihln genere la locuzione applicazione di basi di dati si riferisce auna W —- ad esempio. una base di dati BANGA che tiene traccia dei conti dei clien—
it Bibliografia selezionata altri (1998}, Ramalo'iMolti 11i di testo sulle basi di dati. tra cui Date (1995). Silberschatz e o un'analisi dei vari forniseon (1995], altti e l Abitebou e 1989) shnan (I997). Ullman (1988. y {1982) a uno dei concetfi sulle basi di dati qui presentati. Quello di Tsichritzis e Lochovsk (I977) presentano Jardine e (1978) Klug e s Tsichritzi primi libri di testo sui modelli di dati. DBTG CODA— rapporto nel volta prima la per suggerita stata a che livelli. tre a ura l’architert (ANSI, l‘I— Institute s Standard National SYL [1971) e pm tardi in un rapporto dell’American modello di del dita approfon si Un‘anali (1975). standard) gli per stituto nazionale americano Lo standard dati relazionale e di alcune delle sue possibili estensioni e fornita in Codd (1990). proposto per le basi di dati a oggetti e descritto in Cattell {1997).
di ETI Un esempio di programmi di utilith per basi di dad a l‘Extract Toolkit
di Embaroadero (www.cti.com) e lo strumento di amrninistrazione di basi di daft DB Artisan .com). barcadero Technologies [www.ern
fi — e fiWW — ad esempio, programnfi Che implementano aggiomamenti in corrispondenza ai depositi e ai pre-
lievi dei clienti- Wm Spesso WW (Gill) an_1i;
chevolj . one utilizzano moduli e menu, Quindi parte dell‘ applieazione dj basi di dati richiedera la mgettazioge, YWW i1 test di questi NOW Tradizional— meme la progettazione e il test di programmi appiicativi sono stati considerati come facenti E te dei dominio deli’ingegnena del software Big ehe di guello delle basi di dati. Oggi pero sta diventando sempre pin Chiaro che c’e una certa vicinanza tra le metodologie di Erogettazione delle basi di dati e uelle progrie fiell'ingemg‘a fie] goftwgge. Dal memento che 1e prime endono sempre pifi a includere concetti per specificare operazioni su oggetti di basi di dad, e che 1e seconde specificano in sempre maggior dettagljo la struttura delle basi di dati che sararmo usate
e a cui aeeederanno i programmi software, 6 cgrto gfi'file vicinanza aumentera. Discuteremo ‘brevemente alcuni dei concetti per specificare 1e operazioni EHGLEISJ.d1, dati nel Capitglo 4.
In questo Capitolo seguiremo l'approccio tradizionale, che consiste nel concenu'arsi sulle
strutture e sui vinli della b e ' =
:
-
' =-:
di modellazione propri del .. m .
i
' = .
'
'
32- . Presenteremo i concetti
- (ER: Entity-Rolsttionship),I un po-
polare modello di dati coneettuale di alto livello. Questo modello e 1e sue variazioni sono frequentememe usati per la progettazione eoneettuale cli ap licazioni di basi di dati. e molti stru-
'
Nella Ictteratum delle basi di dati in lingoa italiana si use each: pat-Ian: di modello Entita~ReIazione: qui non vex-r3 ma: adottata questa terminologla per non ingenerare confusions con concord ohe sono propri del modello d1 dad relazionele e ehe saranno hitrodotti nel seguito. (Nit)
Use del modeito Entita-ASsoclazione per modellers l dati
Gapitolo 3
42
43
menti di progettazione di basi di dati impiegano i suoi ooncetti. Hg: damterm i concetti di base di sn'utturazione clei dati e i vincoli del modello ER e discuteremo il lore uso netla progettazmne dfichemi concettuah per applicTazroni di basi di dati. 11 presente capitolo e organizzato come segue. Nel Paragrafo 3.1 discuteremo il ruolo dei
modelli di dati concettuali di alto livello nella progettazione di basi di dati. Introdurremo i requisiti per un‘applicazione di basi di dati esemplificativa nel Paragrafo 3.2, per illustrate i‘uso dei concetti del modello ER. Quests base di dati sara usata anche nei capitoli successivi. Nel Paragrafo 3.3 ptesenteremo iooncetti di emits e attribute, e inbtodurremo gradualmente 1a tecnica diagrammatica per la rappresentazione grafica di uno schema ER. Net Paragrafo 3.4 introdurremo i concetti relativi alle associazioni binarie e ai loro ruoli e quelli relativi ai vincoli strutturali, nel Paragrafo 3.5 i tipi di entita debole. Il Paragrafo 3.6 mostra come 1111 progetto di 11:10 schema venga raffinato per includere associazioni. Il Paragrafo 3.7 esamina la notazione peri diagrammi ER. riassume i problemi che sorgono nella progettazione di uno sche-
RACGOLTA E ANALISI DEl FlEQUISlTl
ma e smdia come scegiiere i nomi peri costnitti dello schema delia base di dati. 1] materials dei Paragrafi 3.3 e 3.4 fornisce una descrizione piuttosto dettagliata, e pub in pane essere omesse in an corso introduttivo. Viceversa, se i] lettore desidera una copertura pit) approfondita dei concetti relativi alla costruzione dei modelli di dati e della progettazione concettnale di basi di dati. dope aver concluso i1 capitoio, dovrebbe continuare con ‘11 Capitolo 4. Qui descriveremo estensioni del modello ER che portano a1 modelli) ER Esteso (EER: Enhan— ced — ER), Che comprcnde concetti come 1a specialjzzazione, 1a generalizzazione. l’ereditarieta e i tipi uniene {categorie}, e introdurremo anche la modellazione a oggetti e la notazione del lirtguaggio universale di modellazione (UML: Universal Modeling Language), che 1: state proposto come 11110 standard per la modellazione a oggetti.
3.1
Uso di modelli di dati concettuali di alto
Requisiti funzlonali
Requislti delta base all dati
ANALISI FUNZIONALE
PROGETI'AZIONE CONCEITUALE
Specifics della transazlona di alto livello
Schema conoettuale [in un modello di dati di alto livello)
T
Indipendente dal DBMS
l
dlpendente dal DBMS
l
PROGEITAZIONE LOGICA (MAPPING DI MODELLO DI DATI)
livello per la progettazione di basi di dati In Figura 3.1 viene mostrata 1111a descrizione sempliiicata del precesso. .di progettazione di una base di dati. II primo passe e quello (1W. Durante quests fase'1 r
Schema loglco {ooncettuale} (nel modello di dati dl uno specifier: DBMS}
ll Fl
|
Pfiggfiififigyfiggnw
'futuri utenti della base (11 dati
IllélsniIRtD d1' questa fast: 6 nun ms1eme, descritto concisamente. di geguisiti dggli
ire/term, cite dovrebbero parall 0 fit e speeificare'1 requisiti funziunali
PHOGETFAZIONE FJSICA
a liata e com 1 ts ossi ile. In .Questi consistono '
z1 ) e te dall‘utente che saranno eseguite suila base di dati e mile 0 comprendono sia operazitmi di recupero sia queue di aggiomamento. Nella progettazione del software per specificare'1 requisiti funzionalifi coWdati,
IMPLEMENTAZIONE +—_ 3‘3“” ”“9”” DELLE TRANSAZIONI
dict rammi dt' sequent}, see
Una v0 ta 0 e tutti i requisiti sono stati taccolti e analizzati 1iW consiste nel cream ting schema concettuale per la base di dati usando 1m modetlo di dati cenmtuali
_ a una _fl____ schema concettuale di alto livelie Questa fase e detta di progettazione concettuate Lo____
descrizione ooncisa dei r
uisiti 511i. datide
emude demmfimaghmifii
Progremmi applicatlvi Figure 3.1 Diagramma sempliflcato per l'lllustraztone delle fasi principall della progettaztone df una base dl dati. '1
Uso de! modello Entita-Assoclazfone per modeltare i dati
45
Capitolo 3
44
-@@
implementativi. eastwaW di alto livello. Poiché non comprendono dettagli comunicare con utenti non per usati essere ossono e ndere 'c' da compre neralmente if: e essere usato come nfenmento per astfl. Lo schema concettuae di 2110 livelio pub anche
' ' ' on re-
‘
'
iderati tutti i requisiti de li uten '
sicurarsi che si ‘
«=3
ista della base di dati di concentrarsi veaano conflitti. Questo approccio consente a1 pmgett memo-
91
rizzazione. Di conscgyenza e Bib facile che e '
’—
Wettazione delio schema concettuale o dope
di essa1 1e opegzioni di ba-
are 1e operazioni d‘utente di alto livelse del modello di dati possono essere usate per specific per confermaze che Io schema conanche lo individuate durante l' analisi funzionale. Cib serve he al— o essere introdotte modific Posson uati. ind'vid ali funzio . . e soddisfi tutti i re uisiti cettual sche— ____‘.._.._ Hello ificatt s essere onah non ossono lo schema concettuale s
mainizme.
'*
W61._,._=";;-;...
'
ii}? ddhhafifi—di—dafi,
-
D
'1! mo
subisce una u fo b31191 dati a oggem' — cosicché lo schema concettuale
imwwfimel
'
5“:s
LAVOHA_5U
1
supemoue
1
N
-
'
- [‘3m
cal-1.313135 UW c
''
.
’
‘
PERSONEACAHIGO‘DI
Pace-mo
® @
e1-
' . Questa Ease ‘e detta ErogettazioFERSONEAMRICO
durante la. quaie sono Infinc. l’ultimo passo consiste nella progettazione fisica. ni dei file del-
' ‘ 2 me, i carnmini di accesso e 1e organizzazio ' tture ' t mmi applicativi sono progettati e imla base di dati. In parallelo con queste attivita i progra ' i alle s ecifiche delie tra ondent corrisp dati di base dclla plementafi come transazioni We. tazione
@ cw
-
modello ER per la groget In ques o capitolo savanna presentati solo i concetti del dall‘utente sara discussa nel definite ' ' 0 di ento inserim L’ tuaie. dello schema concer a oggetti. apt o o , uando vet-re introdotta 1a modellazione
di dati 3.2 Un’applicazione esemplificativa di basi In questo paragrafo verra descritta l’applicazione di basi di
Flgura 3.2 Diagramma di schema ER per Ia base d1 dati AZIENDA.
delia un’azienda. Si supponga che. dope 1a fase di raccolta e anaiisi dei requisiti, i progettisti rappresen— essere deve che da delt‘azien parte 1a do", “mini-mon del base di dati abbiano dato tata con la base di dati. 1a descrizione seguente. e um numero uni» l. L’azienda a organizzata in dipartimenfi, ciascuno dei quali ha on come
cui voci, pith sedi e um particolare impiegato da cui viene gestito. Si registrera la data in to. dipartimen i1 gestire a o cominciat ha egato quell’impi e an Un dipartimento conu-olla un certo numero cli progerti, ciascuno dei quali ha on home
dati AZIENDA, la quale servira a il-
eflaschflma—Qui saranno lustrare i concetti del modello ER e il loro umWoued cosgyL-
261718 base di-datiT-menue fl 3120 schema conceuuale verra clencati i requisiti NEW modelverranno inundatti i concetti di rappresentazione del
to gxadualmente, man memo che atiffi'éfaipartimenti e dei progetti di lo ER. La base di dati AZIENDA tiene traccia degli impieg
numero univoci e una singola sede.
_ sociale,3 l‘in— 3. Per ciascun impiegato vena memorizzato il nome, i1 numero di prefidenza " . solodiun a assegnato e impiegato Un nascita. di dirizzo, lo stipendio, i1 sesso e la data
a
3
.__.——-—
0 di
' e 3i stigg's’ultato e uno schema della base di dati nel ' ne logjca 0 ma ' modello di dati implementabiie del DBMS. specifica—
‘_____,__.————
L:_ Nummtmpleuau _:
Dalllllllfl: IMPIEGATO
preoccupare dei dettagli di sulla spetnficazmne delle proprieta dci dati, senza doversi 3-m
12 della base di dati.
I
N
l‘e— reso pill correttarnentc in italinno con dipendeme‘ ma I] ten-cine utilizzato dagli autori (employee) sarcbbe (N412) rt impiega nti dipende di tipo sul are particol in sempio proposto nel testo 5i focalizza poi
re univoco a nave cifre ss 11 numero di previdenza socisJe, c SSN (mesa! security member). e an identificato sue indermita e delle delle impiego, suo del traocia tener per individuo ciaacun s Uniti Stati gnato negli della carts $1d numcro i1 esempio ad come simiIi. vi identificati schemi avere possono paste. Altri Stati
46
Uso del modeilo Entité—Associazione per modellare i datl
Capitolo 3
partimento ma pub lavorare su molti progeiti, non necessariamente conu-ollafi dallo stesso diparlimento. Si tel-1'5 traccia del numero di ore settimanali lavorate da un impiogato su ciascun progetto e del diretto supervisore di ciascun impiegato. 4. Si registreranno anche le persona a carico di ciascun impiegato a scopi assicurativi e per ciascuna di esse venanno memofizzati il name di battesimo, i1 sesso, la data di nascita e il
47
Indfrizzo
rapporto di parentcla con l’impiegato.
indirizzoVia
cm
Stain
CAP
In Figura 3.2 5 illustrate come 10 schema per questa applicazione di basi di dati possa essere rappresentato con notazioni gTafiche note come diagrammi ER.
Numero
NumeroApparlamento
Figura 3.4 Una gerarchla di attributi composti: il componente IndirlzzoVia cii indirizzo é ulterion‘nente composto da Numero. Via a NumeroAppariamento.
3.3 Tipi di entité, insiemi di entité, attributi e chiavi 3.3.1
Via
spettivamente. L’entiié azienda c. (“0” come company) ha trc attributi: Nome, SedeCenLrale e Presidente; i Ioro valori sono “Sunco Oil”. “Houston” 6 “John Smith", rispettivamente.
Entité e attributi
Nel modello ER csistono diversi tipi di attributi: semplice in contrapposizione a composite;
Entith e [are attributi. L’oggetto base rapprosentato dal modello ER e l’entith, che é una “cosa” dei mondo reale con un’esistenza indipendente. Un’entita pub essere un oggetto con un’esistenza fisica — una particolaxe persona, automobile, casa 0 un certo impiegato — o essere un oggetto che esiste a livello conceituale — un‘azienda, un lavoro 0 an corso universitario. Cia— scuna entita ha dcgli attributi —le proprieta particulari clie la descrivono. Ad esempio. un’enma impiegato pub BSSCIE: descritta da nome, eta. indirizzo, stipendio e Iavoro dell’impiegato.
Un’eniita particolare avra un valore per ciascuno dei suoi attributi. I valori degli attributi che descrivono ciascuna entita divengono parts importante dei dati memorizzati nella base di dati. In Figura 3.3 sono mostrati due entita e i valori dei rispettivi attributi. L‘entith impiegato :31 ("e“ come employee) ha quattro attributi: Nome. [ndirizzm Eta e TelcfonoDiCasa; i loro va— lori sono “John Smith". “2311 Kirby, Houston, Texas 77001”, “55” 3 ‘713-749-2630”, ri-
a valore singolo in contrapposizione a muifivaiore; memorizzam in contrapposizione a deri-
varo. Nel seguito ven'anno definili questi tipi di attributi e illustrato ii loro uso tramite esem. pi. Quindi sari introdotto il conceito di vaiore nulls (null value) per un attributo.
Aitributi composti e attributi semplici (atomici). Gli attributi composfi possono essere divisi in pani pib piccolo, Che rappresentano pill attributi di base con significati indipendenli. Ad esempio, l’attributo Indirizzo dell’cntita impiegaio mostrata in Figura 3.3 pub essere diviso in IndirizzoVia, Ciua, Stato 3 CAP,‘ con i valon' “2311 Kirby", “Houston”, “Texas" 6 “77001". Gli attributi che non sono divisibili sono detli attributi semplici o atomici. Gli attributi com— posti possono formare una gerarchia; ad esempio, InclirizzoVia pub essere diviso in tre attribu— fi sempljci, Numero, Via e NumeroAppanamento, come mostrato in Figura 3.4. H valore di un
attributo-composto a la concatenazionc dei valori degli attributi scmph'ci she 10 costituiscono. Gli attributi composu' sono ufili per modellare situaziom' nefle quali un utente qualche vol— ta fa rifefimento all‘attributo composto come a un tutt'uno, ma altre Volte fa riferimento spe-
”we
Nome = John Smith 1ndlrlzzo = 2311 Kirby,
Houston. Texas Twin
= Su co OII
"
rio liferixsi ai singoli componenti di un indirizzo (CAP, Via, em), allora I‘intero indirizzo é consideraio un attribute semplice. :1 SedaCenirale = Houston
Etél = 55
TalafonoDTCasa = Tia-“$2630
cificamente ai suoi componenti. Se all’atu'ibuto composto of Si rifefisce solo come a no more, non c‘é alcun bisogno di dividerlo negfi attributi componenti. Ad esempio. as non é necessa-
Altributi a valore singolo e attributi mulfivalore. La maggior partc degli attributi ha no valoxe singolo per una particolare smith; attributi di quosto u'po sono detti a valore singolo. Ad esempio, Eta e an attribnto a valor: singolo di persona. I21 certi casi un atuibuto pub avers 11.11 in-
Presidente = John Smith
Fi Iura 3.3 Due antita. un Impiaoaio e. g un'azienda o.. e i vaiorl dei loro attribub'.
o
For i Slati Uliiti 5i parla di zip code. nun
-
. .
—-
48
Use dai modello Entita-Asseeiazlene per modellare i dati
Capltelo 3
sieme di valeri per la stessa entita — ad esempio, un attribute Celeri per un‘ automobile, 0
ml at-
DEL TIPO NOME ENTITA DI
singolo, mentribute Lauree per una persona. Le automobili con un solo colore hauno un valore pub non avepersona una ente, Analogarn Cbleri. per valori due hanno bicolori ’ automobib 1e tre diverpersona pertanto pie; 0 due aveme pub terza re una laurea, un‘ altra pub aveme una e una
"\
INSIEME Dt
a1 . [John Smith. 55, aok]
(Sunco Oil. Houston. John Smith]
32 .
'32 .
(Fm
EN'rn'A
{ESTENSIONE}
k
\
K—
C1 .
a1 pie tre celeri. pub avert: tra uno e tre valor-i, se si suppone che un‘autemebile possa avers
attribuValeri nulli. In certi casi una particolare entita pub non avere un valere adatte per un
Nome. SedeCentrale. Presldente
Nome, Eta. Stipendio
tipe sene se pessene avere numen‘ diver-5i dr’ valori per l’atu'ibuto Lauree. Attributi di questo numere il per superiori e detti multivalere. Un attribute multivalere pub avert: limiti inferieri obile un’autern di Colori ’attributo esempie,1 Ad entita. singola di valori consentiti per ciascuna attributi seno Attributi memorizzati e attributi derivati. In ceru' casi i valor-i di due 0 piu enpartieelare una Per persona. una cerrelati — ad esempio. gli attributi Eta e DataNascita di valore dai e cerrente data dalla partire a te determina essere pub u'tb persona, i1 valere di Eta dice abs 5 derivabile di DataNascita. L‘ attribute Eta e percib detto attribute derivate. e si di attributi posunivalori zate.A1c memeriz dall‘attribute DataNascita, che e dette attribute i di un'eniImpiegat NumereD attribute un esernpie. ad correlate; entire da derivati sene essere a cellegati impiegati di numero del ma dipartimento pub essere derivate u'amite i1 conteggio e. (che lavorane per) quel dipartirnent
AZIENDA
[MPIEGATO
K
d Bro
4.9
[Fast Computer, Dallas. Bob Klngl
4o 30
wn' ' K)
'-
83 .
'
[Judy Clark. 25. 20K]
I
j
K
/
della eolleziene dl Figure 3.8 Bus tlpl di entlfi, dettl IHFIEGATO e AZIENDA. e alcune delle entlta membrl entlta (e insieme di entlta) di elascun tipe.
sense solo per quegli inte. Ad esempio. l’attribute NumeroAppartamente di un indirizze ha
i, come ad dirizzi one sene relativi a edifici con appartamenti. e non ad altri tipi di abitazien
solo per persone che esempie case meuefamiliari. Analogamente. un attribute Lauree ha sense
speciale detto effettivamente hanno una laurea. Per queste situazieni e state definite un valere
del sue attribute Numenull. Un indirizzo di una casa menofamiliare avra null come valore Lauree. Null pub anche di valere come null aura lauree senza persona reAppartamento. e una re — ad esempio, se essere usato se non 6 note i1 valore di un atu'ibuto per un’entita particela I] significate del 3.3. Figure in Smith" “John di casa di non si cenosce il numero di telefene uro. La catesconesci b seceudo del to significa i1 mentre ile, applicab non 6: null prime tipe di prime case i1 distinti: casi due in a suddivis geria dei null scenosciuti pub essere ulteriermente esempio. ad — momenta e me esiste attribute quell‘ per valere i1 si presenta quande e note che quande nor: a note se il secende 1 1 ' null; come indicate e persona una di Altezza e l'attribut se
una persona e null. valere dell’attribute esista — ad esempio. 5e 1‘ attribute TelefoneDiCasa di
essere annidati Attributi cemplessi. Si neti ehe gli attributi cempesti e multivaiere posseno
raggruppando i cemin mode arbitrario. E pessibile rappresentare un amudamente arbitrarie
nti con virgele. penenti di un attribute compeste tra parentesi tende () e separando i cempene
Attribuu' di questo tipe seue eenehé indicande gli attributi multivaiore tra parentesi graffe {}. piil di una residenza e ciaavere pub persona una se , esernpio Ad detti attributi cemplessi.
un tipe di entita sauna resideuza pub avere piu telefoni, un attribute IndirizmTelefono per PERSONA pub essere specificato come mostrato in Figure 3.5.
{lndlrlzzeTeletone( {TelefenelPr-eflsso. NumereTelefonel}. . State, CAP] ) } lndirlzzollndirizzeWalNumai-e. Via. NumeroAppartamsnte}.Clttb
ntl multivalere e composti. Figure 3.5 Ul'l attribute cemplesso IndlrlzzeTelefene eon cempone
3.3.2 Tipi di entita, insiemi di entita, chiavi e insiemi di valori Tip] [It entité e insiemi d1 entita. Una base di dati di seljto centiene gruppi di entita similj.
re Ad esempie. un‘azieuda che occupa centinaia di impiegati pub aver bisogno di memorizza
infermazieni simili su ciascun impiegato. Queste entita impiegate condividono gli stessi attri— buti. ma ciascuna entita 11a 1’ propn' valon' per ciascun attribute. Un tipe di entita definisce una
di entitb collezione {o inrr'eme) di entith le quali possiedeno gli stessi attributi. Ciascun tipe
nella base di dati e descritte dai suo neme e dai suoi attributi. in Figure 3.6 sone mestrati due Sene tipi di entice. detti IMPIEGATO e AZIENDA. e un eleuee di attributi per eiascuno di essi. La colleanche illustrate alcune entita di ciascun tipe, insieme con i valor-i dei lore attributi.
ziene di tutte 1e entita di un pmticelare tipe di entita nella base di dati in un istante di tempo stes» qualsiasi e detta insieme di entita; di seljte ci si riferisce afl’insieme di entita usando le
sia al eerso nome dc} tipe di smith. Ad esempio, IMFIEGATU si riferisce sia a un tipe dt' entire dati. di base nella rente inrieme di tune le entire impiegato con Un tipe di entita e rappresentate nei diagrammj ER5 (Figure 3.2) come un renangele e ovaii deglj dentre posti sene attributi degli nemi I all’interne i1 neme del tipe di entita.
3
nte (Chen 1916). PerSi sta qui usantlo peri diagrammi ER una notazione simile a quella preposte originariame queste capitoio}. in avanti pie e A I'Appendice veda (5i notazioni alue melte anehe use in u-eppe some
Use del modello Entita-Asseeiazlone per modeltare 1' dati
Capitoio 3
50
ai 1010 atsome uniti ai lore tipi di entita tramite lines rette. Gli attributi eempesti sone uniti con evali ntati rappnese sone re tributi cemponenti tramite Knee rette. Gli attributi multivale deppi. che cendivide~ Un tipo di entita descrive lo schema e intensiene per uu insieme di entire
51
’ . AUTOMOBILE FlegIstrazronetNumereRegmtrazione, State), lDVaicelo. Mama. Madeira. Anne, {Galore} (
\ autemoblle1 0
di entite a raggruppata in no la stessa struttura. La raceelta delle entita di un particulate tipe eutita. di tipe del ne estensio anehe ehiamato e che un insieme di entire.
((A80 123. TEXAS), TKBZQ. Ford Mustang. cabriolet, 1998. {rosse, nem}}
cli un tipe di entita e Attributi chiave (ii un tipe di emits}. Un vincole importante sulle entiti ha uu attribute i solite di entita di tipe il vincolo di cbiave e di univecith sugli attributi. Un
({ABC‘123. NEW YORK), WPQBTE. Nissan Maxima, 4»porte. 1999, {mun
per identificare uniratteristiche e dette attribute chime, e i suei vaieri pessene essere usati
(NSY 720. TEXAS], TD?29, Chrysler LeBaren, 4-perte, 1995. {blaneer blu})
autemebllez e
automeblle3 e
e. Un attribute con queste cacui valeri sene distiuti per eiascuna singola entita della cellezien
una chiave del tipe di entith vecamente ciascuna entita. Ad esempie. l‘attributo Nome e abbiano lo stesse ueme. Per aziende due che ito consent e non perché 3.6, AZIENDA in Figura
. Taiora melti i1 tipo di entita PERSONA un tipico attribute chiave e NumerePrevideuzaSooiale degii attributi valet-i dei ziene cembina 1a che sense neI chiave, una attributi insieme fen-name questa proprieté.l e possiede attribufi di insieme un Se entita. ciascuna per distinta essere deve
k
J
del tipe di entité. Si pessibile definite ue attribute composro che diventa uu attribute chjave cempenenti deveattributi glj tutti cioe. , minimale essere deve a compostnofi che una chiave
Figure 3.7 || t1pe di entité AUTOMOBILE. cen due attributi chiave Registraziene e IDVeiceie. Gli attributi muitivalere sone Indicati tra parentasi graffe {} I component! di un attri pe r I I t mdreatu tra parentesl tends 0. bu 0 com ste SOHO
dcntro I‘evale. come illudiagrammi ER ciascun attribute chiave hail sue neme settoiineate 3.2. Figure strate in che la precedeete La speeificaziene che un attribute a ehiave di un tipo di entita significa uza. a un censegue Di entita. di tipo del e estensian ogni per valere proprieta di univeeita deve te le stesse va— vincole che prei‘eisce a qualsiasi ceppia di entité di avere centemperaneamen e; piuttesto a nu vinlore per 1’ attribute ehiave. Non e la proprieta di una particolare estension altri Vinceli Che (come ehiave di vincole Queste entita. di tipe del i esteesion fie tum: eelo su
l’attribute Eta di IMPIEGATD come l’insieme dei numeri intezi tra 16 e 70. Analegamente, si pue stabflire Che I’insieme di valori per l'attribute Nome sia l’insieme deile stringhe di caratten aifabetici separate da caratteri spazie e cesi via. Gli insierei di valor-i non sone rappresen— tati nei diagrammi ER. Matematicamente 1m attribute A di un tipe d5 entita E ii cui insieme di valeri e V pue es-
netazione dei ne far pane deil‘ attribute cemposte per avere 1a preprieté di univeeitii.‘I Nelia
base di dati rappre— verranne diseussi in seguite) e derivate dai vineeli del mini—mende cbe la
sere definite come una funziene da E ail‘insieme petenzaT P(V) di V:
senta.
, sia 1' attribute lDVei— Alcuni tipi di entitfi haune ptfl dr' rm attribute chiave. Ad esempie di entita AUTOMOBItipe del ziene Registra e celo (identificazione del veicolo) che l'attribut Regisu‘aziene a 1m te L’attribu effetti. gli tutti a ehiave una cene cestituis LE [Figura 3.7)
NumeroRegistraesempie di chiave cemposta formata da due attributi cemponeuti semplici.
Ue ripe di .entita put) anziene e State, nessune dei quaii e ehjave. se preso singeiarmeute. entire debate (si veda i1 Pa— di ripe chiamato e case qual nel chiave, nessrma avere non che ragrafe 3.5).
di un tipe di cntité é Insiemi Iii valeri (domini) degli attributi. Ciascun atlribute semplice l'insieme di valeri che Specifica ohe valori), di deminio (e valeri di insieme un a associate 3.6, se la gamma di pessone essere assegnati a quell’attribute per ciascuna entita. In Figura
A:E—>P(V)
Ci si riferiré qui a! valor: dell'atu'ibuto A per l’entita e come aA(e). La definiziene precedente cepre sia gli attributi a valore singele sia quelli multivalore. cosi come i null. Un vale» re nu]! elraopresentate tiall’insieme vuete. Per attzibuti a valor: singelo, A(e} e vincolato a essere un meleme con un solo elemeute (valere) per ciaseuua entite e di E, meutre non 0% al-
. .. ' 5'
euna restnzione per attributi multivalore.“ Per un attribute cemposte A I’insieme dj valen' ve
'
11 Predette cartesiane di P(V1),P(V2). ,P{Vn), dove VI.V2. gh attributi sempfici cempeneuti Che formane A:
V= Pal.) x P012} x
di valeri deieta censentite per gli impiegati va da 16 a 70. a possibiie speeificare l'insieme
"
attributi superflui. Gli amibutj superflui nee devene far pane di una chiave: pare ens. super-chime pue ineludere _ .ome verrh spiegate net Ca hole 3'. W
1a
.Vn sene gli insiemi di valeri de-
x 1304.)
L‘insieme petenza PU?) di un insieme V e l‘insieme di tutti i setteinsiemi di V. Neila letteratura in iingua inglese, un insieme con un solo eiemente é detto singleton. i
_
_
Lh
II
,
*LT
1.
hi
*
I“:
W
Use del medelle Entita-Asseeiaziene per medellare E dati 52
53
Capitele 3
3.3.3 Pregettaziene eencettuale iniziale della base di dati AZIENDA ile identificare per la base di dati Secende i requisiti clencati nei Paragrafe 3.2, e 013. pessib che (Figure 3.8). tipi di entith —- une per ciascun punte delle specifi
AZIENDA quattre
ti Nome, Numere, Sedi, Direttere e DataIni~ 1. Un tipo di entita DIPARTIMENTO cen attribu Si pub specificare che sia Nome sia Nualere. multiv te zieDirettere. Sedi e l‘unice attribu e stabilite che ciascune dci due deve essemere seue attributi chiave (separati), perché si re univece. , Numere, Sede e DipartimenteCentrellan— 2. Un tipe Eli entita FROGETTD cen attributi Nome ati). te. Sia Nome sia Numcre sene attributi chiave (separ Sesse, hidirizze, Stipendie, DataSSN. , Nome ti attribu 3. Un tipe di entith IMPIEGATO ceu essere attributi cem-
Inditizze pesseue Naseita, Dipartimente e Supervisors. Sia Nome sia
requisiti. Occerre riternare dagli utenti per pesti; cemunque cie men a state speeificate nei j compenenti di Nome - NemeDiBatsingel ai ente fifefim fare vedere se qualcune di iere zo. tesime, IuizialeIntennedia. Cegneme — e di Indiriz ti Impiegate, NomePersonaACarice. Ses4. Un tipe di entita PERSONAJLGARIGO con attribu se, DataNascita e Parenteia (con 1' impiegate). un impiegate pub iaverare su piu pregetti. 116 Finera non E state rappresentato i1 fatte che su ciascun pregetto. Questa caratteristilavera '11 numere di ere a settimana che un impiegate 3.2, e. pub essere rappresentata da un atrafe Parag del 3 ite requis ca e clencata come parte del LaveraSu cen cempenenti sempiici (Pretribute cempeste multivalere di IMPIEGATO dette a come un attribute compesto multivasentat rappre essere gette, Ore). Alternativamente, pue enenti semplici (lmpiegate, Ore). In Figura 3.8 lere di PROGETTO, dette Laveratori. con cemp itti. L'attri-
ne (lei tipi di eutith septa descr viene scelta la prima pessibilith che mestra ciascu te cempeste1 presumibilmente dope una attribu come ntate prese é bute Nome di IMPIEGATO censultaziene cen gli utenti.
3.4
Associazioni, tipi di asseciaziene, ruoli e vincoli strutturali
hifatti, egni veita In Figure 3.8 ci seuo diverse associazioni implicire Ira i vari tipi di entita.
asche un attribute di un tipe di smith si riferisce a un aluo tipe di entite sussiste una qualche
te a un impiegate seciaziene. Ad esempie, 1’ attribute Direttere di DIPARTIMENTO fa riferimeu
riferimente a1 Che dirige i1 dipartimente; l’attribute DipartimenteCeutrollante di PROGETTG fa
O fa rifcrimente a diparfimente che cone-011a i1 pregetto; 1’ attribute Supervisere di IMPIEGAT Dipaifimente di attribute 1’ ); impiegate queste a nde sevraiute che {quelle impiegate un alu’o via. Ne} model— cosi e iavera. te I’impiega IMPIEGATO si riferisce a1 dipartimente per il quale come associama attributi come utati rapprese essere re le ER questi riferimenti non devrebbe rappreseutare per 3.6 Paragrafe nel raffinate sate AZIENDA dati di base della zioni (le schema oni sene tiassociazi 1e entité di tipi esplieitameute le associazioni). Nel pregette iniziale dei
attributi sepicamente ceIte come attributi. Man mane che ii pregetto vieee raffinate, questi ne cenvertiti in associazioni tra tipi di entita.
3.4.1
Tipi di aseociaziene, insiemi di associazioni e istanze dl associazione
ETI definisce un insieme di legami —— 0 Un tipe di associazioni: R ea n tipi di entité E.,E2, per i tipi di entita e gli insiemi di Come tipi. questi di entita tra — ioni associaz d‘l un insieme
nermalmente entité, un tipe di asseciaziene e i] cerrispendente insieme di associazioni sene insiemc .di um e R ioni associaz di l’insieme , icamente Matemat indicati con 10 5:95.30 name R.
en), e ciascuna euistanze di associaziene ri, dove ciascun r1 lega n entité individuali (21,22, iene a una asseciaz di tipe un Percie n. S j S 1 tité ej in r. e mi membre di un tipe d5 entita E5,
come up setteinrelaziene matematica su EDIE” ..., E“, e altemativamente pub essere definite
DIPAHTEMENTO
ettera Nema, Numare. {Sedl}, Direttere. DatalnizieDlr
PROGE‘ETO ilante Nome. Numere, Sade. DipertimenteCentre
IMPIEGATO Indirlze‘ Stlpendie. Nome {NemeBatt. lniz'lm, Cegneme). SSN, Sesso, Su (Pregette. 0re}} DataNascite. Dlpanimente. Supervisors. {Lavera
PERSONA_A_GAFI!CO scita, Parentela Implega’teNemePersenaAGeflee, Sesse. DaiaNa requiem eene dedl enfita par la base di dati AZIENDA i cui Figure 3.8 Pregettazlene preliminare di tipi 3.2. rafe scritti eel Parag
x 5... Si dice che ciascue tipe di entith E.,E,, sieme del predette canesiano Ei X E1 x ciascuna delle singele en— En partedpa a1 tipe di associaziene R, e analegamente si dice che
tith e,,e,. ..., eI1 partecipa all’istanza di asseciazione inl = (299,, ..., en). eutité. dove il 1eInfennalmente, ciaseuna istanza di associaziene r; in R a un legame tra istanza di Ciascuna nte. partecipa entite di tipo game include esattamente un'entita per ciascun entita partecipanti a ri seasseciaziene r, cen quest: caratteristiche rappreseuta il fatte che 1e
me. Ad esempie, si ne correlate in qualche mode nella cerrispendente situaziene del mini-me TO e DI PAHTI IMPIEGA entith di tipi due i tra PER censideri uu ripe di associaziene LAVOHA_ lavera. Ciascute l’impiega cui per ente dipartim il con e impiegat eiascuu asseeia MENTO, she
PEH lega un’eutitti impiegate na istanza di associaziene neii‘insieme di associazioni LAVGHA_
ciascuua istanza di con un’entitfi dipartimente. Queste esempie e illustrate in Figure 3.9, dove
ente che panecipane a :3. asseciaziene r; e mestrata comessa alie entité impiegate e dipartim ed e... laverane per il di:33 e1. ti impiega gli 3.9, Ne} mini-mende rappresentaio dalla Figural d3. per leverane a, ed :35 infine {12; per paxtimeute :1]; e2 ed e4 laverane
54
Use del medelle Entita-Assoeiazlene per medellare i dati
Capltele 3
IMPIEGATO
LAVORJLPER
DIPARTIMENTO
FURNITURE
55
FORNITURA FROG E170
TO. Figura 3.9 Alcuns istanze dell'asseeiaziena LAUOHAJEH tra IMPIEGATG e DIPAHTIMEN
Figura 3.10 Alcune istanze di asseclaziene per un'asseciaziene ternarla FURNITURA.
collegatbce'n liNei diagrammi ER, i tipi di asseciazione sene rapprescntati come rombi, ll neme dell assoma'zmne nti. panecipa cntith di tipi i ntane rapprese che li rettange a1 matte nee é rappresentato demre i1 relative rembe (Figura 3.2).
LAVOHA_PER di Figura 3.9. Si pub pcnsare a un attribute, chiamiamele DipaItimeute, del tipe di entith IMPIEGATO il cui valere per ciascuna entitfi impiegato é (un riferimente a) l’emx‘m dipam’mento per cui lavora l'impiegato. Pcrcic‘), l’insieme di valen‘ per questo attribute Bipartimento é l‘insieme di rune 1e entire DIPARTIMENTO. Ci?) 5 quanto E state fatte in Figura 3.8
quande si e specificate i1 progetto iniziale dc] tipe di entité IMPIEGATO per la base di dati
3.4.2
Grade di un'asseciazione, nomi di ruolo e associazioni ricersive
é il numere dei'tipi di Grade di un tipe di associaziene. I1 grade di un fipe di asseciaziene . Un upo d1 assegradedue di e ER LAVORLP ziene entith Che vi panecipane. Percib. l’assecia ‘ ternano. dette 5 tea grade Eli um e binario. dette é due grade ciaziene di elascuna deve 3.10, Figura in Un esempio di asseciaziene temaria e FORNITUHA, mestrata pexte p e we proistanza (1i associaziene ri lega Ire entita —-un fernitete s ("5“ come supplier) una
AZIENDA. Comunque, quande si pensa a un‘asseciazione binaria come a un attribute, esisteno sempre due pessibflith. 1n queste esempio l‘altemativa é quella di pensare a an attribute multivalore Impiegati per i] tipo di entita DIPARTIMENTO, i cui valori per ciascuna entitfi dipartimente cestituiscono l’insieme defile enriré impiegara Che laverano per quel dipartimento.
L’insieme di valori di queste attribute Impiegati é I‘insieme di entitfi IMPIEGATO. Ciascuno di questi clue am-ibuti — Dipanimente di IMPIEGATO e Impiegati di DI PAHTIMENTO — pub rap-
presenters i1 tipe cli asseciaziene LAVORA_PER. Se sone rappresentati entrambi. essi sene vincolati ad essere fra di 10min direzieni eppestc.9
esse— getlej — egni velta Che : femisce pane p 31 pregettej. In generale le aeseciaziom Poeserlte grad1 nl assecllazxe Le binane. ni asseciazie 16 some re di qualsiasi grade, ma queue pie cemuni 4). Cap1tele 11 veda (31 binane ni associazie delle complesse pie nte generalme de pie alto sene
L'idca di rapprescntarc tipi di associazione come attributi ‘e usata in una classe c1] modelli di dati deni modem di flat! mmlenali. Nelle basi dj dafi a eggeni, le asseciazieni pessono cssere rappresentate da attributi di riferi-
ne 1n terAsseciazioni come attributi. E talera cenveniente pensare a un tipe di asseciazie
i Capitelj 'l' e B), {c chiavi esteme sane un ripe di attribute Che attua fifefimcnwcellegmnenti, a sane usau: per
di asseeiazione flflidi attributi, come viste net setteparagrafo 3.3.3. Si censidcri i1 tipe
meme. 0 in una sela direzione o in enuambe le direzieni, come opposti. Nelle basi di deli mlazienali (si vedane
rappresentare associnzjenj.
A
1.
.
.'-
I-_
U50 del modelio Entité-Assoclazione per modellare i datl 56
57
Capitnlo 3
IMPIEGATO
SUPERVISlONE
DIRIGE
DIF'AHTIMENTO
IMPIEGATO
1
a1
3,.—
03:—
\
1 3.
95f
1
30k 31'
Ia d1 DI PART IMENTO.
ga l due ruoll dl ll tlpo dl entita IMPIEGATCI svol rlcorsiva SUPERVISIDNE. in cul Figure 3.11 L'associazione (2}. to eglla supervisors {1) 3 dl chi é serv
a a un tipo di assoe. Ogni tipo di smith che partecip rsiv rico i zlon ocia ass e lo ruo Nomi di ca il r0010 ch: un’cntith par, particulate. 11 name di ruoln Indi le mo un essa in ta reci ione ciaz nza dl associazione e aiuta a di smith, recita in ciascuna ista tecipante, faccnte pane del tipo associazione LAVORA_PEH, di zione. Ad esempio, nel tipo ocia ass ll‘ que ca indi . c053 iene i1 r0010 di dispiegare ratore e DIPAHTIMENTO sosl di impiegato 0 lavo 1MP1EGATO sostiene i1 mole ro. lavo di re daro pam'menro o
zionc in cui tutti i tipi ente necessari nei tipi di associa I nomi di r0010 0011 sono tecnicam di ciascun tlpo di smith p00 asinti, dal memento ch: 11 name di smith partecipanti sono dist entita pastecipa pill di una alcuni 0251 10 5:25.90 tipo di
10. Part», in essensets usato come name di 1110 casi i1 name di r0010 diviene e con moli diversi. In questi zion sotipo sto que di i v01ta a 1m tipo di associa zion Associa to Eli ciascuna partecipazione. ciazioasso Ell tipo ll ziale per distinguere i1 significa o. mpi cse un e, e la Figura 3.11 00 mostra sia quel— no (latte associazloni ricorsiv clove sia l‘entita impiegato impiegato a un su'panrisore, un ega coll ta IMentl di tipo il cib ne SUPERVISIONE Per . ATO so tipo di emit?! IMFIEG stes o dell bri o). e mem o cap son (0 sore sore la supervi a 001 r0010 01 supervi s :1 SUPERVISIGNE: una volt r1 in e zion ocia ass di nza PIEGATO panecipa due volt ista na
scu son-egliato (0 subaltemo). Cia di sul’altra volta 00! 111010 di chi é e quali una soatiene i1 mole dell a” ed ej to iega imp a enm due “1“ ocia con ass NE nate seg ISIO tras ERV SUP 10 lines con chi é somgliato. In Figura 3.11 s01:— 0 chi di 1:) 11:0 i] o can pervisoxe e 1’21a 51 r0010 01 indi 0 quelle couttassegnate con “2" ed 04. inclicano i1 r0010 di supervisors ia 06 ed 0,; infine es sowcglia a,
03; an soflegl wnliam: auindi e. surveglia 02 0d
$3.43 Vincoli sui tipi di associazione ugl d1 associazione hanno generalmentc alcuni vincoli che Limitano le possibili combinatio
5 00015-0t posson0 far parte del c0rfispondcnte insieme di associazioni. Questi vincoli so0 ateémman dalla situazmne del Imm-mondo ch: 10 associazionj rappresentano. Ad esem-
lavorare per 13:: menu1:311:11 23?, 50’] axlenda ha c0_me regola quella che ciascun impiegato deve schema. pDSSibfliodgsgaIEEZnto, .alllora sllvoxzrelaba potar flescrivere questo vincolo nello }e cardinalitc a‘r‘ rappono ne: associazio d1 vmcoh d1 us up: pnnmpall ég '_necipazi9ne_ gu .
-
$313531: di cardmahth per 090001021001 blame. ll r-apporto di cardinalith per un‘assocla .
.
0% : ..
.
.
.
.
Ad 'mana apecllica 11 numcro d1 lstanze d1 assocmmone a cui pub partwipare un’entith rapp0rto ha EGATO IMP! ENTO: DIPARTIM EH, LAVOHA_P binaria , 01013;: 001 0pc d1 associazione .
1;];agitamiflfi, nel $51150 Che: ciascun dipartimento pub esaere correlate con (cioé
da lavom
011 $010 dipan‘ifito [possibiffiiiau‘ 1:11;]: an a01p10gat0 p0b-easere c0ne1ato a (lavorare par)
Uni .
.
' ppo . _ca:dnlaht:i per 0131 d; assomazione binari 50110 1:1, IN, N: 1 e M:N.
di— esempi‘c.) d1.assoc1az10ne banana 1:1 3 DIRIGE {Figura 3.12), che correla Lm’entita
cum all nmpxegalo che dirige quel dipaxtimento. Cit: rappmsenta i vincoli dcl mini-mon
N Eta per quaisfm! mmem di entim correlate (2.010 0 pifi).
58
Use de! moderle Entitb-Asseciaziene per medeJIare i datf
Capitele 3
59
Nei diagranuni ER 1a partecipaziene tetale é rappresentata con una linear deppia che cellega il tipe di entire partecipante afl‘assoeiazione, mentre la partecipazione parziale b rappre—
LAVORJLSU
IMPIEGATO
PROGETTO
sentata con una linen singola {Figura 3.2).
.4.4 Attributi di tipi di associazione Anche i tipi d3 associaziene pesseno avere attributi, analeghi a quelli dei tipi di entita. Ad empie, per registrare i1 numere di ore settimanali laverate da un impiegate 511 an particolaprogetto, b possibile inset-ire un attribute Ore nel tipe dj asseciaziene LAVOHA__SU di Figu_ a 3.13. Un altre esempio e quello di inserire la data nella quale un diretterc ha cenu'nciato a
- dirigere ue diparfimente attraverse un attribute Datalnizio per il tipe di associaziene DI Fl IGE ' Figuxa 3.12. Si neti ehe gli attributi di tipi di asseciaziene 1:] o lzN pesseno essere trasferiti a une dei p1 di entitb partecipanti. Ad esempie, l’attribute Datalnizie dell’ associazione DIFIIGE pub es—
.sere un attribute sia di IMPIEGATD sia di DIPARTIMENTO — per quante concettualmente esso ppanenga a DIRIGE. Cib awiene perché DIRIGE b un’asseciaziene 1:], e pertante ogm' ene dipartimente e impiegato parteeipa at pit} a me istanza di associazione. Percib, ii vaiere
eIl’attribute DaIaIuizie pub essere determinate separatamente, e dall’enu'té partecipante cliFigure 3.13 L'asseciaziene M:N LAVOHA_SU tra IMPIEGATO e FHOGETTO.
do secendei quali un impiegate pub dirigere solo un dipartimente e un dipartimente ha un selo direttere. I1 tipe di asseciaziene LAVORA_SU (Figure 3.13) ha rapperte di cardinalita M:N, perché la rege]a del mini-mendo e che mi impiegate pub lavorare su melti pregetti e che un progette pub avert: melti impiegati. I rapporti di cardinalita per asseciazieui binarie sono rappresentati nei diagrammi ER ponendo l, M e N sui rembi come mestrate in Figura 3.2.
Vincoii di partecipazione e dipendenze d.i esistenza. l] Vincelo (ii partecipazione specifica se l’esistenza di un‘entita dipende rial sue essere correlate a uu’altra entitb attraverse un tipe di asseciaziene. Ci sene due tipi di vineeli di partecipaziene. tetale e parziale. Se la pelilica
di un’azienda stabilisce clue egru' impiegato deve laverare per un dipartimente. allera un‘entitb impiegate pub esistere sole‘se essa panecipa a un'istanza di asseciazione LAVORA_PER (Figu-
artimente e dall’entita partecipante impiegate (direttere). Per 1111 tipe di asseciaziene 1:NI un attribute dell’associazione pub essere trasferito 5010 al po di entitb a] late N dell’asseciazione. Ad esempie, in Figura 3.9, se l’asseciaziene LAW A_PER ha anche an attribute DataInizie che indica quando un impiegate ha ceminciate a laerare per 131: dipanimento. queste attribute pub essere inserite come attribute di IMPIEGATO. Cib perché egni enfitb impiegato partecipa a] pit: a un’istanza di associaziene in LAVOHAJEH. entrambi i tipi di assesiaziene 1:1 e 1:N la decisiene riguardame dove dovrebbe essere pe— to un attribute di asseciazione — come attribute di un tipe di asseciaziene 0 come attribute di un tipe di entita partecipante - b presa clal pregettista delle schema su base seggettiva. Per i tipi di asseciaziene M:N alcuni attributi possene essere determinati dalla combinaI'ene di entire partecipanti in un’istanza di asseciaziene, nen da una singela entitb. Questi at— tributi devene essere specmcati come attributi dell ’asseciaziene. Un esempie e l’attribute Ore dell’asseciaziene M:N LAVORA_SU (Figure 3.13); il numero di ore she un impiegate lavera su n preget‘te b determinate da una cembinazione impiegato—progette e nun separatamente da
'na 0 dall‘altra entita.
ra 3.9). Percib la panecipaziene di IMPIEGATD a LAVOHA_PER e detta partecipaziene totale.
intendende che egni entita nell"‘insieme tetale" di entire impiegate deve essere cerrelata a
un‘entita dipanimento attraverse LAVOFIA_PER. La partecipaziene totale b detta anche dlpen-
3.5 Tipi di entita debele
denza di esistenza. In Figura 3.12 non ci si aspetta ehe egm' impiegate diriga un dipartimen-
to, percib la partecipaziene di IMPIEGATO al tipe di associaziene DIRIGE é parziale, nel sense one alcune 0 “parte dell’insieme delle" entita impiegate some correlate a un’entita diparti—
mente attraverse DIRIGE, ma cib non vale necessariamente per tutte. Si farb qui riferimente a! rapperte di cardinalita e ai vineeli di partecipaziene. censiderati nell’iesieme. come ai Vince-
li strutturali di rm tipe di asseqiaziepe.
M
_
_
1...... law; :-
. 1
Itipi di entitb Che non hanne prepri attributi chiave sono detu‘ tipi di eutitfi debole. Per censte i tipi di entita regelare che hanne un attribute chiave sono talvelta detti tipi di enfiti‘a 30119. Le entita ehe appartengene a un tipe di entita debele vengono identifieate tramite 1} le' cenegamente eon speeifiehe entité di un altre tipe. in cembinaziene con i valor-i di aleuni
......H.
Use del medeIIo Entita-Asseciaziene per modellers i dati
Capitele 3
60
il tipe di entifit identificante 0 predei lere attributi. Chiamereme quest‘ altre tipe di entitfi debeie a1 sue preprietario l'asenfitfi di tipe uu lega ehe ziene assecia di tipe prietarie.“ e il
3.6
entitb debele ha sempre un vinsociazione identificante del tipe di entire debele.” Un tipe Eli ziene identifi-
relative alla sua associa cola a‘i perrecipazione totals (dipendenza di esisteuza} é. preprietaria. Perb non é ehe egni un’entit senza cata identifi essere pub nen essa perché eante, ite di
entitb debele. Ad dipendenza di esistenza abbia some risultate un tipe di
escmpie, un’ent
ita di PERSONA, anche se essa ha una prePATENTE non pub esistere se non e correlate a un’eet e non un’entite debele. pria chjave (NumeroPatenle) e Eli censeguenza O, cellegata a IMPIEGATO, che e usata GARIC NA_A_ PERSO Si censideri il tipe di entité n impiegate uarnite un’asseciaziene 1:N (Fiper tenere traecia delle persene a carice di ciascu Neme (i1 neme di battesime della perse— seno CARICO gura 3.2). Gli attributi di PERSONA_A__ l‘impiegate). Due persone a carice di due na 3 carice). DataNascita, Sesso e Parentela {con valeri per gli attributi Nome, DataNascistessi diversi impiegari possene, per case. avers gli . Esse vengene ricenesciute come distinte entite que cemun essere ta, Sesso e Parentela, ma impiegare alla quale ciascuna. entire lare entitb distinte solo dope aver determinate 1a partice persona a carico ad essa celentita 1e de pessie ate impieg b cellegata. Si dice che egni entité
legate.
le, che é I‘insieme di attributi Nermalmente un tipe di entitb debele ha una chiave parzia proprietaamente 1e entita debeli cailegare aiia stem: enrird
che pessene identifieare univec e a carice delle stesse impiegate non ria.” Nel nostre esempie, so si suppene che due person te Nome di PERSONA_A_GAHICO e la attribu 1' me, battesi pessene mai avere le stesse nome di ste (121 turn" gh‘ arrributi deii’enn‘rc} dechiave parziale. Ne] ease peggiere un attribute compe beie cestituira la cbiave parziale. la sua associaziene identificante venNei diagrammi ER, sia ue tipe di entite debele 5121 lines deppie (Figura 3.2). L’attricon gene distinte circondande i relativi rettangeli e rembi e punteggiata. iata trattegg Erica. una con bute ebjave parziale e settelineato sentati come attributi cemplessi rappre essere velta e qualch e pessen debele I tipi di entitb specificare. per IMPEEGA petute sarebbe si ente (compose. multivalere). Nell’esempie preced e eerepeste cm: atattribut an state sarebbe che ce, eACari Persen lere To, un attribute multiva
La seelta di quale rappresentazie— tributi cempenenti Nome, DataNascita, Sesso e Parentela. usate é quelle di
criterie che pub essere ne usare e fatta dal pregettista della base di dati. Un se ci some melti attributi. Se l'entith dedebele entitit di tipe cen ne entazio rappres ia scegliere diversi dal sue tipe di asseciaziene ziene assecia di bele partecipa indipendentemeute a lipi attribute cemplesse. come ata modetl essere e devrebb non identificante. allera livelli di tipi di emith debele; en tidi si In generale, pub essere definite un numere qualsia debele. ineltre, un tipe di enentita di tipe un stesse esse essere pe di entitb preprietaria pub
um tipe di associaziene identifima debele pub avere pib di un tipe di entitb identifieante e
e 4. cante di grade maggiere di due, come 5i vedra nel Capitol
1' '2 '3
:t. ... ...-...
genitere e tipe di entltb dominante. Il tipe di entilb identificante e laiera anche derre tipe di entitb e tipe di with subordinata. II tipe di entita debeie b talera anche dette tipe di entitb tiglia La chiave par-rials: b detta qualche volta discfiminatore,
61
Raffinamento della progettazione ER per la base di dati AZIENDA
E pessibile era raffinare 1a pregettaziene della base 151' dati di Figure 3.8 carnbiande gli ate-ibuti che rappresentane asseciazieni cen tipi di associaziene. Il rapporte di cardinalith e ii vin-
cele di partecipazione di egnj tipe di asseciazione sene determinati aparlire dai requisiti eleneati neI Paragrafe 3.2. Se qualche rapperte di cardinalitb e qualche dipendenza nen pessene essere determinati dai requisiti1 allera gli utenti devene essere intervistati per determinare ta— ].i vineeli strutturali. Ne! nestro esempio sene specificati i seguenti tipi di asseciaziene.
1. DI BIGE. un tipe di asseciaziene 1:1 tra IMPIEGATO e DIPAHTIMENTO. La panecipaziene di IMPIEGATO b paiziale. La partecipaziene di DIPABTIMENTO non e cl‘tiarita dai requisiti. Si intervistane aliera gli utenti, che dicono che un dipartimente deve avere sempre un direttere, i1 che implica una parteeipaziene tetaie.14 A queste tipe di asseciaziene b asseg'nate I‘ attribute Datalnizie. 2. LAVOHA_PER, un tipe di asseciaziene 1:N tra DIPARTIMENTO e IMPIEGATO. Entrambe 1e partecipazieni sone tetali. 3. CGNTROLLA, un tipe di asseciaziene 1:N tra DIPARTIMENTO e PFIOGETTO. La partecipaziene di PROGETTO b totale, mentre, dope aver censultate gli utenti, si stabiliscc Che quella di DIPAHTIMENTO sia parziale. 4. SUPERVISIONE, un tipe di asseciazione 1:N tra IMPIEGATO {nel ruele di supervisere) e IMPIEGATO (eel ruelo di chi é servegliate). Entrambe 1e panecipazieni sene considerate parziali, dope che gli utenti heme specificato ehe nen ogni impiegato a: un supervisere e nen egni impiegate be en supervisere. 5. LAVOFIA_SU, considerate come un tipe di asseciaziene M:N con attribute Ore, depe che gh' utenti hanne indicate cbe un pregette pub avere melti impiegati che laverano su di esse. Si stabilisce ehe entrambe 3e partecipazieni siano totali. 6. PEHSONE_A__CARICO_D1, un tipe di associaziene 1:N tra IMPIEGATO e PERSONA_A CARI CD. the e anehe l’asseeiaziene idenfificante per i] tipe di entita debole PERSONA_A_C_AHIGO. La partecipaziene di IMPIEGATO é parziale, menu-e quella di PERSONA_A_CAHICO é tetale.
Depe aver speeificate i sei tipi di asseciaziene visti SOPIa, si rimuevone dai tipi di entitb
.
m_Figura 3.8 tutti gli attributi ehe seno stati trasfermafi in asseciazieni. Questi cemprendono:
Duettere e DataluizieDirettere per DIPAHTIMENTO; DipartimenteCene'ellante per PRDGETTO; Dipartimente. Supervisere e LavoraSu per IMPIEGATO; Impiegate per PERSONA_A_CAHIGO.
Quande si pregetta le schema ceneetwale di una base di dati e impertante avere 1a miner ri— dendanza pessibile. Se si desidera uua eena ridendanza a livelle di memerizzaziene e a livel— 10 di vista d‘utente, essa pub essere intmdetta pie tandi, come viste eel Setteparagrafe 1.6.1.
"
Le regele nel mini—mende she deterrninenei vinceli sene talera dette regote aziendah' (mariners rules}. :1 ' meme the ease sene determinate dall’“azienda“ ed erganizzaziene ehe utilizzera [a base di dati.
U30 dal modello Entita-Asseciazione par modeliare i dati
Capitolo 3
Universal Modeling Langua1a notazione del linguaggio universale di modellazione {UML: concemiale a oggetti. ge). che e stats proposta come one standard per la modellazione are vincoli alternativa, per specific Qui di seguito verra invece descritta one notarione ER
associate una ceppia di numeri instrutmrali sulle associazioni. Questa notszione compotta di E a on tipo d5 associazione R, teri (min, max) 3. ciascuna partecipaziene di un tipo di entita entita e in E, e deve pafleci— ogni per che, o indicsn i dove 0 S min 5 max e max 2 1. I numer
67
insiemi di valori (domini) di attributi; 11131 di associazione e loro corrispondenti insiemi di associazioni; ruoh d1 panec1pazione di tipi di entita in tipi di associazione.
O.
65
e
hbbiamo presentato due metodi per specificare i vincoli strutturali su tipi di associazione. [1 prune metodo chstmgue due ripi di vincoli strutturali:
tione in R, quelsr‘ari sie I 'istente dt' tem— pare ad almeno min B a1 pifi a max ismze di associa min >
e rapporti di cardinalith (1:1, 1:N, M:N. per associazioni binaric); o vrncoli di partecipazionc (totale, patziale).
0 indica partecipazione totale. di dati AZIENDA usando la nolazione In Figura 3.15 e rappresentato lo schema della base
. I] secondo specificai numeri minimi c massimi (min, max) della partecipazione di ciascun 11130 .dl emila a un tipo di associazione. Si sono studiati i tipi di entita debole e i concetti cor~ refit] d1 Lipi di enfita proprietaria, tipi di associazione identificante e attributi di chiave par-
pazione parziale mentre pe considerate. Usando questo metodo, min = 0 indies. parteci
cardinalitatfinea singoiat'linea doppia (min, max).'5 Di solito si use 0 1a notazione rapporto di . e pub essere comodamente usaprecise pit] a: ax minlm ne notazio e la notazione mintmax. La quat‘siesi grade. Per?) non e suf— di ta per specificare vincoli strutturali per fipi di associazione come si ve—
zioni di grade maggiore, ficiente per specificare alcuni vincoli di c 'ave su associa mole per lo schema della base di di nomi i tutti anche mostra Figura La 4. am nel Capitolo dati AZIENDA.
zr e. . Gli schemi Enfita-Associazione possono essere Iappresentafi diagrammaticamente come diagraiemi ER. Abbiamo mostrato come progettare une schema ER per la base di dati AZI EN DA commciando col definire i tipi di entita e i lore attributi e quindi rafiinando la progettazione per includere tipi di assesiazione. Abbiamo quindi rappresentato i1 diagramma ER per lo schema della base di dati AZIENDA.
'_ l‘ concetti di modellazione ER che abbiamo presentato fin qui — tipi di entita, tipi di asso-
Sommario azione di un modello di dati conIn questo capitolo abbiamo presentato i concetti di modell Relationship). Abbiamo coEntity~ (ER: azione Associ il modello Entita-
cettuale di alto livelle. dati di alto livelle svolge nel processo di minciato con il discutere il ruolo che on modello di presentato un insieme di requisiti per la o progettazione di una base di dati, e quindi abbiam no usati per tutto i1 Iibro. Abbiamo verran che i esemp degli uno e base di dati AZIENDA, che cioe 1e entiia e i lore attributi. Sono poi staquindi definite i concetti di base del modello ER, anni-
di attributi, che possono essere ti discussi i valori nulli e 50:10 stati presentati i vari tipi ssi: comple ti attribu re dati arbitrariamente per produr o o
ciamerie,_anribufi, chiavi e vincoli strutmrali — possono modellare 1e u-adizionali applicazionj d1 has: :31 dati per l’elaborazione di dati aziendali. Per?) molte applicazioni pin nuove e pit: compiesse — pome la progettazione ingegoeristica, i sistemi informativi a carattere medico 0 1e telecomumcazioni — richiedono concetti aggiuntivi, se desideriamo modellarle con maggiore accuratezza. Noi esaminereme questi concetti di modellazione avanzata nel Capitolo 4 clove descriveremo anche in maggiore dettaglio i tipi di associazione temari e di grade pifi ele: veto: eldiseutererno 1e circostanze nelle quafi queste associazioni some distinte dalle associazaom brnane.
Questionario di verifica
semplici o atomici. composti.
3.1.
e multivalore. fra atuibuti memorizzati e attribim’ deE state anche esarninata brevemente 1a differenza modello ER a livello di schema o "intensiorivati. Abbiamo in seguito studiato i concetti del male": 0 tipi di entita e lore corrispondenti insiemi di entita;
o attributi chiave di tipi di entité;
3.2. 3.3.
ciazt'ene, attribute cempesto, attribute multtvelere. attribute derivete, attribute cem— ptesse. attribute chieve, insteme a‘t vetert' (dominie). '
.3‘4'
Cos'e un tipo di enfitfi? Cos‘é 1m insieme di entith? Si spieghino le differenze eaistenti
_ .5.
tra entita, fipo di enfité e insieme di entita. Si spieghi Ia differenza esistente tra attribute e insieme di valori.
6.
..
modellazione a oggetti, i (min. max) vengono posizio‘5 Ir: alcune notazjoni. e in particular: in queue usate nella per 1‘ sssociazione LAUGHAJEH in Figura 3.15. (1.1) esempio, Ad mostrati. qui quelli a rispetto naii sui taxi oppostt' di mPIEem‘O. Qui si e scelto di cleare la notaparte dalle sarehbe (AN) :2 ENTO _ sarebbe oalla patte di DIPARTIM .. t . _ (1.074;' ' " M mn 1e m'n' " . ._- ....-—v
_..._.—...--
W
Si discuta il mole di un modello di dati di aito liveflo nel processo di progettazione di one base di dati. Si elenchino i vari casi in (mi risulta appropriate l’uso del valore null. Si definiscano i seguenti termini: entitd, attribute. velere dt' attribute, Esteem e't‘ esse-
: 53.7.
C-osfé un ripe di associazione'? Si spieghino Ie differeuze esistenti tra istauza di asso~ ' crazmne, tipo di associazione e insieme di associazioni. Cos’e un molo di partecipazione? Quando e necessario usare nomi di ruolo nella de- I scnzione di tipi di associazione? _.\
_
.. _:,
.
-_
_:
'_1
68
Capitele 3
3.8.
struttlirali su tipi di asSi descrivane 1e due altemative esistcnti per specificare vinceli a? seciaziene. Quali some i vantaggi e gli svantaggi di ciascun
binaria pub essere trasfeSotte quali cendizieni an attribute di un tipo di asseciaziene anti‘l partecip entita di tipi dei une di e rite per diventare an attribut gii insiemi di valori di sone quaii ti. attribu come zieni assecia alle mo pensia 3.10. Quande cencetto? queste su basata e questi attributi? Che classe di modelli di dati alcuni esempi. ane femisc rte Se a? ricorsiv zziene assecia di 3.3 1. Cesa si intende per tipe Si defini-
3.9.
i1 cencette di entita dcbele? 3.12. Quando viene usato nella modellaziene dei dati di enrird deboie, ripe di associazione ripe rart'a. scane i termini: ripe di entire pmprie . parzieie idemificamc e chiave debele puo avere grade maggiore di 3.13. L’ asseciaziene identificante di un tipo di entita . rispesta la e due? Si femiscane esernpi per illustrar graficamente une schema ER tracntare rappres per usate zioni cenven 1e 3.14. Si discutano mite un diagramma ER. per i diagrammi di schema ER. 3.15. Si disentano 1e convenzioni di denominaziene usate
Esercizi una base di dati universita, usata per te3.16. Si consideri i1 seguente insieme di requisiti per degli studenti. Essa e simile ma non ner traccia delle trascrizioni dei libretti universitari 1.2. identica alla base di dati illustrate in Figure del some, numere di matricela, nu— a. L’ universits tiene u'accia. per ciascune students. teiefone corrente. indirizze e numere di previdenza sociale. indin'zzo e numero di anne di cerse (prime. secendo. sesso. , nascita di mero di telefone permanente. data
in cui viene seguita une spe...), dipartimente priecipale di afferenza, dipartimente 13.3.. ...,
del cerso di studi (B.A.. cializzaziene cemplementare (se c‘é). nenché ita di fare riferirnente a citta. necess hanno ente Ph.D.). Alcune applicazieni dell‘ut e at cegneme delle studente. te, studen dello nente perma dirizze state e CAP dell‘in ela hanne valeri unici per matric di Sia il numero di previdenza secialc sia quello ciascuno studente.
di dipartimento. numero di effib. Ogni dipartimente ‘e descritto da un neme. codice neme sia i1 cedice hanno valeri i1 Sia . cie. telefene di ufficie e dal relative college . meute unici per ciascun dipartj una descrizione. un codice di in— c. Ogni insegnamente ha on neme di insegnamento. to oflivelle e Lln dipartimente che 'segnamento, un numere di ere per semestre. un
ciascun insegnamente. fre. Il valere del cedice deii‘insegnamento e unice per an numere di
anne, an insegnamente e d. Ogni module ha un decente. un semestre. un
stesse insegnamente che somodule. 11 numero di modulo distingue i moduli delle nu-
valori some 1, 2, 3, .... fine a] no tenuti durante le stesso semesu'elanne; i suei
mere di moduli insegnati durante ciascun semestre.
te, un module. on vote in lettere e un e. Una votazienc e caratterizzata da une studen 4). e 3 2. 1, (0, veto numerice
69
Use del medelle Entité-Asseciaziene per modellare i dati
Si progetti une schema ER per questa applieaziene e si tracci un diagramma ER per questo schema. Si specifichine gli attributi chiave di ciascun tipo di entita e i vineeli strutrnrali su eiascun tipo di associaziene. Si prenda neta di tutti i requisiti non specifi— cati, e si facciane assunzieni appropriate per rendere complete 1e specifiche.
3.17. Gli attributi cemposti e multivalere possene essere annidati fine a un numere qualsiasi
di livelli. Si suppenga di velcr pregettare un attribute per un tipe di entita STUDENTE per
tener traccia della precedente educaziene universitaria. Un tale attribute avra rm valore per ciascun college precedentemente frequentate. e ciascun valore di questo tipe sara composto da neme del college. date di inizio e di fine. titoli (titoli censeguiti in quel ceilege. se ve rte sene) e trascrizieni del libretto universitario (insegnamenti cempletati in quel college. se ve ne sene). Ciascun valere relative a un titelo contiene i1 nome del ti— telo e il mese e 1’ anne in cui i1 titele e state conseguito. e ciascun valere relative alla trascriziene del libretto universitario centiene un nome di insegnamento. semestre. anno e veto. Si progetti un attribute per censervare queste infermazioni. Si usine 1e cen— venzioni di Figure 3.5. 3.18. Si musei un progetto altemativo per 1‘ attribute descritto nell’Esercizio 3.17. che usi se— le tipi di enfita (cempresi tipi di entita debele. se necessario} e tipi di associaziene. 3.19. Si consideri i1 diagramma ER di Figure 3.16. che illustra une schema semplificate per un sistema di prenetazioni aeree. Si estraggano dal diagramma ER i requisiti e 1 viewli che hanno predette queste schema. Si cerchi di cssere i piu precisi possibile nella spe-
cificazione dei requisiti e dei vinceli. 3.20. Nei Capitoli 1 e ‘2 some stati discussi l‘ambiente e gli utenti di una base di dati. E possibile considerarc molti tipi di entita per descrivcre un tale ambiente. come i1 DBMS. la
base di dati memorizzata, i1 DBA e il catalogoldizionario dei dati. Si cerchi di specificare tutti i tipi di entite che pessene descrivere completamente un sistema di basi di da-
ti e il sue ambiente; quindi si specifichine i tipi di asseciazione tra questi tipi di entita,
e si tracci un diagrarnma ER per descrivere un tale ambiente generale di basi di dati.
3.21. Si pregetti use schema ER per tener traccia delle infermazioni sui veti raccelte nella Camera dei Rappresentanti statunitense durante la sessiene cengressuele biennale cor—
rente. La base di dati deve memorizzare. per ciascuno STATO. it sue Nome (ad es. Texas,
New York. California). e cemprende la Regiene delle state (i1 cui demieie e [Northea— st. Midwest. Southeast, Southwest. West}). Ciascun MEMBHODELGONGHESSD nella Camera dei Rappresentanti e descritte dal sue Nome. e comprende i1 Distrette rappresentato. la DataInizie in eui e state elette per la prima volta e il Partite politice a cui appartiene (ii cui dominie e {Repubblicano. Demecratice, Indipendente. AitreD. La base di dati memerizza egm' PROGETTODILEGGE (ciee legge propesta) e cemprende i1 NomePregettelxgge. la DataDiVetaziene sul progette cli legge, infermazioni se i1 proget
to di legge a state ApprovateORespinto (i1 cui dominio a (Si, NOD e i Sosteniteri (. I membri deI cengresso che hanne sestenuto — ciee preposte — il pregette di legge).
base di dati tiene traccia di come egni membro deI cengresse ha vetato su ciascunfp gette di legge (dominie dell’attribute relative a1 vote :3 {51. Ne. Astenute. Asse
tracci un diagramma deIie schema ER per l‘applicaziene sepra descritta. Si 'Ii: mode esplicito qualsiasi assunziene venga fatta.
3.22. Si deve cosmfire one base di dati per memorizzare 1e squadre e 1e gare di una tiva. Una squadm ha un certe numero di giecatori. dei quali nen tutti partec' I
"
70
U50 del madello Entitfi-Associazfone per modeHare J dati
Capitoio 3
71
@ @
i
‘39
1
AEHOPDRTD mam
N
NL'PTGEIQ -
Godmmrunom
AEROF'ORTO
Figure 3.17 Un diagramma ER per una base di datl BANCA.
a. Si elenchinb i tipi di entita (non dcbole) ne] diagramma ER.
AEROPLANO
1). CF: un tipo di entita dcbolc'? Se 51. si fomisca il suo nome, la sua chiave parziale e la sua associazione identificante. c. Quali vincoli specificano in questo diagramma la chiave parziale e l‘associazione
identificante del tipo di entita debole? NOTE (I) UNA TRA'I'TA {SEGMENTUI EUNA HHHTE DI VOLO CGMPHESA TRADUE scan SUGC ESSM 12: UN'ISTIDNZA D! THATTA E UN'OGCDHRENZA SPECIFIGA DI UNR TWA IN UNA mm SPECIFICA
Figure 3.18 Un diagramma ER per una base df datl COMPAGNIMEHEA.
gara. Si desidcra tener traccia dei giocatori che partecipauo_a ciascuna gal-a per‘ognj
squadra, del 111010 che hanno ficoperto in quella gara 6 del nsultatto (iella gara. S1 cer-
chi di progettarc 1m diagranma dello schema ER per que.sta app-hoazmne. enuiicwndo
espficitamente ogni assunzione Che viene fatta. Si scelga 11 propno sport prefento (cal-
. cio, baseball, football amelicano 600.). 3.23. Si consideri il diagramma ER illustrate in Figura 3.17 per una pane (16119. has; dj diati BANGA. Ciascuna banca pub aver: pit! filiali, e ogni filiale pub avert numeross com a : ._ prestiti.
(1. Si elenchino i nomi di tutti itipi di associazione e si'specifichi i1 vincoio (min, max) par ciascuna partecipazione di un tipo di enfité a un tipo Eli associazione. Si giusti— fichino Ie proprie scelte. e. Si clenchino concisamente i requisiti d’utente che hanno ponato a questo progetto dello schema ER.
f. Si supponga che ogni clients debba avers almeno un coma ma possa godere a] pin di due prcsfiti contemporaneamente, e che una filiaie della banca non possa gestire pin di 1000 prestiti. Come si pub matters in luce cit: can i vincoli (min, max)? 3.24. Si consideri i1 diagramma ER di Figum 3.18. Si supponga Che un impicgato possa la~ vorare 81 pin in due dipartimenti, ma che possa anche non assert: assegnato a nessun die panimento. Si supponga chi: ciascun dipartimento debba avere almeno un numero di t I lefono c possa aveme fine a tre. Si fomiscaao vincoh' (min, max) at questo diagram. Si enunci chiammeme ogm' msmione aggimiriva che venga firm. Sotto quali co_
zioni l'associazione HA_TELEFONO sambhe ridondante nell‘esempio sopra illus
3.25. Si consideri i1 diagramma ER cli Figura 3.19. Si supponga che un memento
113311: 0 menu 1m fibre di testo, ma Che un testo per definizionc sia un libro .ch pa: un oerto msegnamento. Un insegnamento non pub usare pifi di cinquc 1i I
-
_
l
.
d_.
_
-r
__
——-4
72
H._ .....
Uso do! modello Entita-Associazione per modellare i dati
Capitolo 3
73
Bibliografia selezionata LAVO RA-lN
collegati si trovano ]] modello Entith—Associazione a: stato introdotto da Chen (1976) e iavori Da allora sono in Schmidt e Swenson (1975), Wiederhold e Elmasri (1979), e Senko (1975). inn-Odette state sono quali delle alcune ER, modello a1 étate suggerite numerose modifiche studiati in Abrial nella nostra presentazione. I vincoli struttorali sulle associazioni sono Gli attributi multivalore (1974), Elmasri e Wiederhold (1930) e Lenzerini e Santucci (1983). Anche se in questo (1985). altri e Ehnasri in ER modello nel inserifi sono composti é quelli
1e sue estencapitolo non sono stati esaminati linguaggi per 3.1 modello Entita-Associazione e
TELEFON! iraccia del talefoni d1 un'azienda e degti imFigure 3.1 8 Un diagramma ER per one base di dati ehe tiene piegatl.
vincoli (min. max) a quecenti tengono da due a quattro iusegnamenti. Si forniscano i 'va che venga farm. Se aggiunn one sto diagrmnma. Si enunci chiammenre ogm‘ assunzi (min. max) 51 do vincoIi quali TESTO, e E DOGENT tra ADOTTA si aggiunge l'associazione vrebbero porre in essa‘? Perché?
che descrive 1e . In una base di dati UNIVERSITA si considezi un tipo di entita MODULO, Modulo. SeNumero sono: MODULO di attributi Gli menti. insegna degli offerte di moduli
(in cui il modulo 5 inse— mestre, Anne, Codicelnsegnamento, Docente, NumeroAula imana (i1 dominio e co~ ellaSett GiomiD to). insegna e gnato). Edificio (in cui i1 modulo cui i1 modulo pub essein a settimau della giomi di li possibi azioni combin stituito dalle tutti ipossibili interda o costituit a dominio re offerto {LMV, LM, MG ecc.}) e Ore (i1
10-1050 A.M., vaili di tempo durante i quali sono offerti i moduli {9-9.50 A.M.,
NumeroModuio sia unico per 3.30-4.50 RM, 5.30—6.20 PM. eec.}). Si sopponga che i1 azione semesueianno (cioe, combin xe pai‘ticola una di o ciascun insegnamento all‘intem semestre, 1e sue offene di lare partico un durante volte piu offerto e mento se un insegna te per MODULO, e alcompos cbiavi moduli sono numerate 1, 2, 3 ecc.) Ci sono diverse chiavi composte, tre uino individ Si chiave. una di piil di nenti cuni attributi sono compo
ma di schema ER. e si iliustri come esse possono essere rappresentate in un diagra
1NSEGNAMENTO
DOGENTE
LIBRO-DI—TEsto memorlzza i 11hr] d1 taste uaati per i vari insoFigura 3.19 Un diagramma ER per una base di dati che
gnamentl.
Wiederhold (1981) Sioni, ci sono state molte proposte di linguaggi di questo tipo. Elmasri e U11 attro linguaggio propongono il linguaggio di intenogazione GORDAS peril modello ER. preseuta un lindi interrogazione ER e proposto da Markowitz e Raz (1983). Senko (1980) di operazioni formaie insieme Un Senko. di DIAM modello i] per ione interrogaz di guaggio e Hohenstein Gogolla (1985). tra Spaccapie 'chiamato algebra ER e stato presentato da Parent e
pre(1991) presentano un altro linguaggio formale peril modello ER. Campbell e altri (1985)
del punto di vista sentano on insieme di operazioni ER e dimostrano che esse sono complete al modello ER 6: relativi Iicerca di Iisultati dei one relazionale. Un congresso per la divulgazi o Intema— Congress come noto ora , congresso I] 1979. dal partiIe a regolarita con state tenuto 1983, BR ER 1979. (ER Angeles Los a -zionale per la Modellazione Concettuale, e stato tenuto York New 1936), (ER Francia Digione1985), (ER Chicago 1997), Washington (ER 1981). (ER 1990), San MateoSvizzera Losama— 1939), (ER Toronto 1988), (ER Roma 1987), (ER (ER 1993), MancheCalifomia (ER 1991), Karlsruhe-Germania (ER 1992), Arlington-Texas a (ER 1996) e Germaui Cottbus1995). (ER a -Australi Brisbane 1994), -ster-Inghilterra (ER Singapore (ER 1998).
$5
y .
12',
Capitolo 4
Modellazione Entité-Associazione estesa e modellazione a oggetti
I concetti di modellazione ER studiati nel Capitolo 3 some sufficienti per rapprcsentare molti
schemi di basi di dati per applicazioni ‘fiadizionali”, che comprendono soprattutto applicazioni di elaborazione dati per il commercio e per l’industria. A partire dafla fine degli anni settanta, tuttavia. sono diventate comuni alcune applicazioni innovative — quali basi di dati per la pro-
gettazione e la produzione ingegneristica (CADI'CAMJ,1 nonché per telecomunicazioni, immagini e grafica, multimediafith} data mining (esplorazione di dati). data warehousing, sistemi di informazione geografica (GIS), e basi di dati di indici per i] World “Wide Web — con requisiti pill complessi. Per rappresentare il pifi accuratamente e chiaramcnte pos sibile questi requisiti, i progettisti delle apph‘cazioni di basi di dati devono utilizzare concctti aggiuntivi di modellazione semantica def dari. In letteratura sono stati proposti diversi modelli semantici di dati.
In questo capitolo descriveremo alcune caratteristichc Che sono state proposte per modelli semantici di dati, e mostreremo come i] modello ER possa esaere ampliato per commendere questi concern, anivando al modello ER-esteso o modello EER (Enhanceci-ER).3 Cominceremo I16] Paragrafo 4.1 introducendo i concetti di associazfone classe/sottociasse ed eradi— tarietd di ripe n61 modeflo BR. Quindi. nel Paragrafo 4.2, aggiungaremo i concetti di specia- _ .
Iizzazione e generafizzazione. Nel Paragrafo 4.3 esamineremo i vincofi sulla specializzaziO-' nefgenerafizzazione, e 1181 Paragrafo 4.4 mostreremo come possa essere modellato il cosu'ntto UNIONE tramite l’inserimento del concetto di caxegoria nel modsllo EER. Ne! Paragraffl
4.5 fornjremo uno schema esemplificativo di basi di dati UNIVERSITI‘. nel modello HER}: ' sumeremo i concetfi dc] modello BER fornendo definizioni fonnali. '
'
Quests sigie stanno per computer-aided designlcamputcr-aided manufacturing (progeltazione .a ' ' Ialnrefproduzione assistita daI calcolatore). '. '
‘
Questc basi dj dali memorizzano dati multimediali, come immagini statiche, messaggi vac
I ’
BER é stain snub: usato per extended ER.
'. '
s..— _._ ._.
Modeflazione EntitavAssooiazione estesa e modellazione a oggettl
77
Capitolo 4
75
di .dati semolti dei concetti proposti per i modelli 11 modello di dati a oggetti comprende come 1’ GMT (Object Modeling Tech
xiii?:21: has: (i; dati AZIENDA. In molti casi un tipo (ii entita ha numerose sotto-orga13131 e e sue entita che sono significative e che dev . ' ' 3559113 faPPl’esemate 0110Ad d1' basn' d1' dati ' ' esphcitamente per la loro importanza per] ‘ applicazmne 16 i' n311mg SE I raweu‘ate che sono membri del lipo di entita IMPIEGAT0 possono essere ulteriormente
e delle ettazione dettagliata di moduli software basi di dati, fine a specificare una prog che costituiscono i,4 class delle i ramm diag I i. di diagramm terazioni, tramite l’uso di sari tipi ammi BER. ie, sono per molti versi simili ai diagr una parte importante di queste metodolog azioni sugli oggerti.
W 501107 . e cosi v18. L maieme d1 entita in ciascuna delle ultime organizzazioni in npi e Dgnj en$513112eedlelllle 6111.25 clge appattengono all‘insieme di entiti IMPIEGATO nel senso che ' ‘ ato. Cia‘i to meIn r0 ’ . di queste aotto-organizzazioni e anoh e um 1m . 1 una ' ET: ((1)) Egljueste sotto—orgamzaazwm rappresenta una sottoclasse del tipo dj entitapIMiIEGATo ’ Lasso entita IMPIEGATD e detto la superclasse per ognuna di queste sottoclassi. sociaziunfasflgle:1;: 113a stipei’classe e una qualsiasi delle sue sottoclassi rappresenta un’as-
ellazione a oggetti, mantici. Le metodologie della mod Language: linguag« tti} e l‘U'M'L (Universal Modeling ogge a nique: tecnica (ii modellazione progettaaione e nelia lari popo pin re semp o diventando gio universale di modellazioae), stann ettazione di prog delia Queste metodologie vanno a1 di 19 nell’ingegnerizzazione del software. 10:0 in-
ciazioni, sono pure specificate le oper pero in essi. oltre ad attributi e asso ii duraate la progettaper specificare i mquisiri funziona Le operazioni possono essere usate 3.1. Presenteremo la ra Figu in rate grafo 3.1 e illust zione di basi di dati. come visto nel Paxa e 1i confronteremo rammi delle classi nel Paragrafo 4.6, notazione UML ei concetti peri diag etti BER. brevemente con la notazione e i oonc ivi alla modella— i dei problemi pil‘i complessi relat alcun rno ntere prese 4.7 Nel Paragrafo esamineremo le astra—
piit elevate. Nel Paragrafo 4.8 zione di associazioni temarie e di grade i modelli di dati semantici. molt per basi come zioni fondamentali usate dowebbe esellazione concettuale, i1 Capitolo 4
mod Per un’introduzione dettagliata alla era solo un’inn‘odudel Capitolo 3. 'Dittavia, se si desid sere considerato una continuazione . Alternativamente ciato tralas re esse pub queste capitolo zione di base alla modellazione ER, grafi 4.3-4.8]. (Para i o in tutto o in pane, i paragrafi final i1 lettore pub scegliere di saltame.
4.1
ereditarieté Sottoclassi, superclassi ed
modello ER presentati concetti di modellazione propri del 11 modello EER comprende tutti i zciasse e i concetti supe classe e di
de i concetti di sotto nel Capitolo 3. In pitt esso compren e 4.3). Un altro ralizzazione (si vedano i Paragtafi 4.2 gene di e ne collegati di specializzazio 4.4), usato per grafo Para i1 veda (Si goria cate di é quello concetto compreso nel modello EER entita. Asso— di tipi rsi dive tti che e 1‘ unione di oggetti di ciazioni. rappresentare una collezione di ogge asso e buti attri di ta itarie ered meccanismo di qui cia a questi concetti e 1‘ importante usera si cui per conoetti.
inologia standard per questi Purtroppo non esiste alcuna term note a pie di pagiaa. VeIra gia altemativa sara fomita nelle inolo etti quella pill commie. Una term resentate graficamente questi conc
matica per rapp anche descritta uaa tecnica diagram taati saranno indima EER. I diagrammi di schema risul quando essi si presentano in one sche rammi EER. cati come diagrammi Eli-astute o diag zione e quello di sottoclasse di
da prendere in oonsidera ll primo coneetto del modello EER tesentare sia un 3, un tipo di emits é usato per rapp itolo Cap nel un tipo di entita. Come visto sussistono nelche ripo quel di d entit di zione o la coile tips off un’emitd sia 1‘ insieme di enritfi attributi e le gli (cioe tipo ii di entita IMPIEGATO descrive la base di dati. Ad esempio, i1 tipo di entita nte corre e siem all‘in to men egato. e fa pure fiferi associazioni) di ogni entita impi
EEEZAEIEEEINGEGNEBE’ PaTTORE.’ TEGNIGO, IMPIEGATO_STIPENDIATO. fiflglEgiATO PA-
ss so 0c asse o semplicemente un’associazione classefsottoclassfi
_
’
22:35:12!) fliecizdenteé IMFIEGATOISEGEETARIO e IMPIEGATOH'EGNICO sono due associa so on asse. i noti che un’entita membro della sott l ' a '13 SIB-Ha ’ io rapprcseflta 00 3556 enritr‘z del mondo reale di un certo membro della superclasse' adesem Clint H d1 SEGHE ‘ P s 1111 d ‘ ' i1 memh TARIO ‘Joan Logano' 6 Pure l‘IMPIEGATO ‘Joan Logano’. Quindi l 1'0 6s' a' SDttOClaSSB ' no main specifico distinto Quando _ .all’entita della superclasse , ma in , e uguale resen1 ”HP ra Cinema - ' si uo on associazmne superclassefsottoclasse nel sistema d'1 1mm' d1' dati,' tuttaVIa, :1;:1: i:lneinbro della sottoclasse come no oggettodistiato deila base di dati — Ed esergigio un [33m E353mm che é collegato u'amtte l’attn'buto chiave alla sua enfita di superclasse (nellPa—
. venanno presentate vane OlOIl‘l per rappresentare associazionj superclassefsottoclasse nelle has: d1 dan relazionali). se- :25:13:3::sdérceiatl nlon puo lgsisilere un’entita che sia solamente membro di una sottoclas’ anc e mom to eIIa superclasse. Tale entita uo es ,_ mimpie gato sti' en, un eventualmeflte ‘ 56m P di sottoclasst.' Ad esemplo . come' membro di . un numero qualsiasi senta . $153101 53:92::32hfmiri étéghergonere appamene alle due sottoclassi (del tipo di entité IMPIEPGA' ' ' STIPENDIATO. Tilttavia non é necessatio che gm smith d1 Ulla superclasse 51a membro d1 una qualche sottoclasse. .
r
I
—
0
da in tintiortante ooncet‘to associate alie sottoclassi e quello cli ereditarieta di tipo. Si ricote 1 tips- di un entita e defimto dagli attributi propri dell’entita e dai tipi di associazione _ a cm 1 entita partecipa. Dato che un‘entita nella sottoclasse rappresenta la stessa entita del mondo reale presente nella superclasse. essa dovreb'be disporre di valori per i suoi attributi 3 specifici cosi come di vaiori per gli attributi posseduti in qualita di membro della superclasse ELEZnttta ctljae sia membro di una sottoclasse eredita tutti gli attributi dell’entita cansiderata
a la mem ro della superclasse. L‘ entita eredita anche tutte le associazioni alle quali partecip
superclasse. Si not: che una sottoclasse, con i suoi attributi e 1e sue associazioni specifi-
c]. (0 1003.11) , Ins1eme a tutti gll Eta-1butl e 13 assoclazlonl Che eredfia daHa 5“ p EICI 3.556 9 p Eb as ' . 6 Ff l. . . . E. . . 1
Un associazione classefsottoelasse a Spesso chiamata associazione EUN (o EUNO, E-U'NA) per i] moddineui I I I ‘ " 'IMPIEGAT: “an a] concetto - Infatti Si (1'leg " un SEGRETAHIO E—UN IMPIEGATo I! , ll un TECNIGCI E-UN fa riferilnento esi c031 I
____'_________H
‘
Una classe a per moiti aspetti simile
a un ripa di enlim.
I
. . ‘ . . t . . I.“ ale passnugelgiiaggodgpmggménanone oriental: a oggetti, nna restrizione eon-lune e che un’entita (a un oggctto) I I pa. 1?: generalmente troppo rcstrittivo per la modeilazione conoettuale di basi-d'i' anti. .
Modellazione Enflta-Associazfone estesa e modefiazione at 099811}
Capitolo 4
78
79
colare sottoclasse _ come VeloeitaDattiIografia di SEGRETAHIO - some uniti a1 rettangolo che
m cm» «a; «m:-
rappresenta quella sottoclasse. Questi some detti attributi specifici (o attributi locali) della
sofloclasse. Analogamente, una sottoclasse pub partecipam a tlpi dj associazione specifici, come ad csempio 1a sofloclasse IMPIEGATO_PAGATO_A__ORE che pmtecipa afl‘associazionc APPARTI ENE_A. fl simbolo d presents nei cal-chi e la notazione diagrammatica aggiuntiva EER
IMPIEGATO
saranno spiegati fra breve. In Figura 4.2 50110 mostrate alcune istanze di emité chc apparlengono a sottociassi della specializzazione {SEGHETARIO, INGEGNEHE, TEDNICG}. Si noti ancora che un’entité che appartie—
o Q9 SEGRETAHIO
TECNIGO
me a una sottoclasse rappresenta la stem: enrfta del mondo reale dell’entitfi collegata ad essa
\\‘0
presente nella superclasse IMPIEGATO, anche se la stessa smith :3 mostrata due volte: ad esempic in Figura 4.2 21 e mosh-am sia in IMPIEGATO sia in SEGHETAHIO. Come questa figura sug-
@
GEE, lNGEGNERE
LMHEGATO_PAGATOJLOFI‘E
mamas
SEGHETAFIIO
NPIEGATOfiTlFENmATO Tm lpanhizzmlnnl d IMPIEGATO: {SEWAHIOJ‘EGMCQ 1NQEGNEHE} IDIHE‘TORE] MFIEGRTOJPAGATDJLORE.
$Mmsenm§1lpmumo1
@
gppgflnauu
9909510
SINDAGA
To
claSSI. per rappresentare specializzaziona e SOt'EO Figure 4.1 Notazione de1 diagramma EER
IMPIEGATO
one 4.2 Specializzazione e generalizzazi
INGEGNEHE
23;:oifggiigxggi
?? :11s$3121 Per specializzazione si intende i1 processo di :32? . tita; uesto ti 0 di smith é detto supe
'
e e a
.
‘ .
._
te sun? ba’sle (11 mm germ caizggnfélggfiili f:c'lljals:?che Eormanolima specializzazione B defini A§esemp10, 1 maleme d1 sgtézémo Ch: fa um stintiva delle entita presenti nella superclasse. ”A E 08$.i: mne dflla superglgsse IM TARIO, INGEGNERE, TEGNIGO} é una speciafizzaz
di— sul ripe c-h Iavaro d1 c1a§cuna en 1 Em51;aka distinzione fra 1e entita di IMPIEGATO basata a1luogo d5; $g geo< fipigg baiif1 tipoddi1 gum:avere divers: specializzazioni dello stesso -
' '
.
1 d esem in. un’altra speciafizzazione 3 £1c 1 en
_A;0afifilér:uesta _STIPENDIA:I'0, IMF IEGATO_P§93T§ $323211: di sottlzlclassi {IMPIEEATG méini smegma-
TECNICO
ubasa-ta sulla mafia Ir specializzazione fa una distinzione tra gli-irnp'ega Ellagrammaucaul- meme some unisenta rappre 51 come In Figura 4.1 viene illustrate defimscono una spec1 :12: [l simbolo di zione in un diagramma EER. La sottoclassi she collegato afla .sug‘mrcf asieh‘ zjone d51— volta sua a E te tramjte line: rette a un cerchio, Che tfoclass'e a1 cerchlo inrilca gm]: um panisorroinsieme su ciascuna lines. che college: una-so attribuu ch: nguardano so 0 e an l‘associazione supexclasseK-s011136121554:.‘I Gli
5
RE."
_____...._._._._._._—-.—.——
7
.
‘ ne UML n21 ‘ one; qul' s:‘ presentermno [a notazlo ' ’ hzzazt Esistono molt: nolazioni altcmaLive per la spectaEMF” A.
1'1 rd.
ziofi.’
He mg;_--- in
-
-
t ‘_._d
-' ._......_._-
Paragrafn
-: '
fin ra 4.2 Aicune isianze della specializzazione di IMPIEGATO naii'instame dl sottoc1assi {SEGHETAHIt}. INGEGNERE. TEDNICO}.
«
-
-
.}
.1
.51':
--.'
'.
I!
"‘
.nr
-
__
.
i'
',.-
.
z"... _._ .t
Medellaziene Entlta-Asseciaziene estesa e modellaziene a eggettl
BO
81
Capitele 4
ATOISEGRETARIO assemiglia 11:1 gerisce, un‘asseciaziene superclasseisetteclasse come IMPIEG differenza principale a she in La 3.12}. ('Figura 15e di iiveflo a 1:1 e pe’ a un‘asseciazien . menu-e in un’associaziene distinte entird un'associaziene 1:1 seno messc in relaziene due
(a)
Tennellaggle
stessa entith del monde reale dell‘entith superclasselsottoclasse 1’ entita nella settoclasse e la
M9
ad csempio. un IMPIEGATO specianella superclasse, ma essa svelge on male specializzaro ~ nel mole di TECNIOO. lizzato specia ATO lizzato nel mole di SEGRETARIO, e an IMPIEG classelsettoclasse c specializazieni asseci inserire per emali fondam i Ci sene due ragien ma
attributi si pessene applicare ad alcune zazieni in un modelle di dati. La prima :2 she certi é definita allo scope di raggruppare le asse settecl Una lasse. non a tutte le smith deila superc cen-
della sottoclasse pessono ancera enrich all: quali si applicane quesli attributi. I membri lasse. Ad esempie,
NumPassaggeri
AUTOMOBILE Nun-flange
NumTarga
(b)
membri della superc dividere la maggieranza dei 1010 at 'buti cen gli altri thDattilegrafia, mantra la setteclasse Veleci te attribu an avcre pub TARIO la setteclasse SEGRE TAHIO e INGEGNERE cendivideSEGEE ma re, INGEGNERE pub avere tin atlributo TipeIngegne
IMPIEGATO. no i lore restanfi attributi come membri del tipo di entita aziene possene partee per usare setteclassi e che ad aicuni tipi di asseci
La seconda ragien Ad esempie, se pessone appartenere a un cipare sole entith che siano membri della setteclasse. ile rappresentare queste fatte ereande la setsindacate solo gli impiegati pagati a ore. é pessib E ecoliegando la setteclasse a un tipe (ii an_A_OR tociasse di IMPIEGATO IMFIEGATO_PAGATO
A, come illustrate in Figura 4.1. tith SINDAOATO attraverse i1 tipe di associaziene APPAHTIENE_ e di fare quante segue: Riassumende, ii processe di specializzazione conslem
o definire un insierne di sottoclassi di un tipe di entita; sse; stabilire attributi specifici aggiuntivi per ciascuna settecia na setteclasse e altri tipi di enciascu tra tivi aggiun ci specifi aziene associ di tipi o stabiljre tith e altre settoclassi. inverse di astraziene, nel quale si sepprimeGeneralizzazione. Si pub pensare a un processo le lore caratteristiche cemuni e 1e si geno le differenze tra mold tipi di entité, si individuano di entith eriginari sene sottoc'lassi spetipi neralizzane in una singela superclasse, di cui i OBILE e OAMION mestrati in Figura AUTOM smite di tipi i erine ciali. Ad esempie, 5i censid di entita VEICOLO, come most-ate in Figura 4.3[a); essi pessone essere generaljzzati nel ripe lassi della superclasse generalizzata VEI settec era 43(1)). Sia AUTOMOBILE sia GAMION sene
ento al processe di definiziene di un COLO. Si usa i1 tannins generalizzazione per far riferim
dafi. Lipo di entita generalizzate a partire dai tipi di entita considerate come funzionalmente inessere pub ne ljzzazio genera Si neti che i1 precesse di {AUTOMO-
4.3 e possibile censiderare verse a1 processo di specializzaziene. Percie in Figure. to Che considerare VEICOLO cepiuttes O, VEIOOL di ne BILE. CAMION} come una specializzazie mnente in Figura 4.1 si pub censime una generalizzaziene di AUTOMOBILE e OAMION. Analeg In a]-
SEGHETARIO, TEONICO e INGEGNEFIE. derare IMPIEGATO Genie una generaljzzaziene di ne diagrammatica per distinguere tra genetazie one use si cune metedelegie di pregettaziene punta afla superclasse generalizzata rapneraljzzaziene e specializzazione. Una freccia che e aile setteclassi specializzate rap~ puntan che frecce presenta una generalizzaziene, menu‘e
questa netaziene. perché la decision»: presentane una specializzaziene. Qui non verra adottata situaziene é spesse seggettiva. L’Aplars: so quale precesso sia i1 piii appropriate in una particu alternative preposte per diagranb che mmati diagra eni netazi pendice A presenta alctme delle ' mi di schemafdiagrammi delie classi.
Tennellaggie
AUTOMOBILE
CAMION
F [gum 4 . 3 ES 6| [I pi d i g a] Iel a IZZBZ f OI IS . (3} Due t1 p I di 9” t ta AUTOMOBI LE B CMIOW . (b) Gel lelai ZZaZIOI 8 dl
Fmera sene stati intredotti i concetti di settoclasse e di associaziene superclassefsetto— classe. cosi come i precessi di speciafizzazione e generalizzaziene. In generale una superclassc elsetteclasse rappresenta una cellcziene di enfité defle stesse tipo e pcrcie descrive anche un ripe di entird; ecco perché le superclassi e16 sotteclassi nei diagrammi BER sene rappresentate graficarnente cntre retrangeli (come i tipi di entith). Ora verrarme esaminali in mggier dettaglio 1e proprieth delle specializzazieni'e generafizzazieni.
4.3 Vinceli e caratteristiche di specializzaziene e generalizzaziene In goes-to paragrafe verranne tranafi in prime luoge i Vinceli che 3i applicane a una singela spemalizzamene e a una singela generalizzaziene; tunavia. per brevith, la trattazione si rife— '
lira sele alla specializzazione, anche se 5 valida sia per la specializzazieue Sia per 1a genera— llzzazmne. Quindi samnne prese in esame le differenzc tra i reticoli {ereditarietd multiple) 6
Medellaziene Entité-Aeeociaziene estesa e medellaziene a eggetti 82
83
Capiteie 4
ralizzazieui e ieuedetfi particelari 1e gerarchie {creditor-tent singeia] di specializzazieuilgene pre-
suile differenze tra ii preeesse di specializzaziene e quello di generah
zzazrene duraete la
gettaziene eencettuale di une schema di basi di dati.
, pesserio esserci molte specializaa: Vineeii su specializzazienelgeneralizzaziene. In generale
e in Figure 4.1..1n zieni definite suile stesso tipe di entita (o superciasse). ceme illustrat
east d1
ssi preseuti in ciaseuna spectaltzzaztone. queste tipe, 1e entita pessene appartenere a sottecia solo in una singoia setteciasse. eemeila ere censist aucbe pub ne izzazie Cemunque una special non si use 13. numeric cen 1i cerchle. specializzazione {DIRETTOHE} in Figure 4.1; in tal case
ente 1e enmb che dwerranne In aicune speeializzazioni e pessi‘eile determinare esattam valere di un certe attribute delia membri di ciaseuna setteelasse peneude una cendiziene sul
tramite an predicate (e definite superelasse. Tali settoclassi some dette settoclassi definite ATO ha un attribute TlpoLaIMPIEG entita di tipo i1 se e. esempi Ad tramite una cendiziene). di appartenenza alla setene condizi 1a vere, come mestrate in Fig-era 4.4, si pub specificare che chjameremo pre: arie‘). ‘Segret = vere (TipeLa te predica teclasse SEGRETARID IIaI‘nite il che specifica che 1 vincoio iorte e um dicato di definizione della setteclasse. Questa condiz tutte Ie entita del che e te predica i1 are seddisf membri della sotteclasse SEGRETAHIO deveno arie‘ devone ap‘Segret e vere 'I‘ipeLa per e attribut di valore cui tipo di entita IMPIEGATO i1
una settoclasse defimta trarmte partenere alla setteclasse. Qui si rappresenterb graficarnente linea che cengiunge la settealla vicine te predica one del un predicate scrivende 1a cendizi classe al eerchio di speeializzaziene.
IMPIEGATO TipoLavere
"Segretarie"
Veieettattiiegrafia
"ingegnere"
Se rune Ie setteclassi in una speeiafizzaziene hanne la coudizione di appartenenza basata _ suilo Nessa attribute della superclasse, la speeializzazione b detta specializzaziene definita tramite un attribute, e i’attribute e dette attribute che definisee la specialjzzaziene.B Graftcamente essa verra qui rappresentata penende i1 neme dell’attribute che definisee la specia-
lizzaziene vieino all’arce che va dal cerchio alla superelasse, come mostrate in Figura 4.4.
Quando non si ha una cendiziene per determiuare 1‘ appartenenza a una setteclasse, la sot-
teclasse b detta definita dall’utente. L’appartenenza a una settoclasse di questo tipe a deter— minata dagli utenti delta base di dati quande essi esegueee l’operaziene di aggiungere un‘en-
titb alia setteclasse; percib l‘appartenenza e specy'icara individuaimente per ciascuna entire dait 'utente. e non da una condizione che pessa essere valutata autematieamente.
A una specializzaziene pessene essere applicati altri due vineeli. ]] prime e il vincele di disgiunziene, che specifica che 1e setteclassi della speeializzazieue devene essere disgiunte. Cib significa che un’entitb pub essere membre at pit} di una delle settoclassi della specializ-
zaziene. Una specializzaziene che sia definite tramite un attribute cemperta i1 vincolo di di— sgiunzione se I‘attributo usate per definire il predicate di appartenenza b a valore singole. In Figura 4.4 :3 illustrate questo case, dove la d ncl cercbie sta per disgiunta. Si 1133. la netazione d ancbe per specificare i1 vincele che 1e sottociassi di una specializzaziene definite dali’utente devene essere disgiunte, come illustrate dalla specializzazione {IMPIEGATG_PAGATO_A_OHE. IMPIEGATO_STIPENDIATO} in Figura 4.1. Se 1e settoclassi non sone vincolate ad essere disgiunte, i lore insiemi di entita possono sevrappersi; cieb la stessa entitb (del monde reale) pub essere membro di pib di una setteelasse della specializzaziene. Queste case, che e quel.lo che si assume implieitamente, b rappresentato grafieamente peuendo una e (per “everlap”) ' nel cerehie, come mostrate in Figure 4.5. 11 secende vincole sulia specializzaziene e dette vincole di completena, che pub essere tetale e parziale. Un Vincele di specializzazione totale stabilisee che ogm’ entitb nella super.cIasse deve essere membre di una qualche sottoclasse della specializzazione. Ad esempie, se egni IMPIEGATO deve essere 0 un IMPIEGATO_PAGATO_A_0RE 0 un IMPIEGATO_STIPENDIATO, 'aIlera la specializzaziene {IMPIEGATO_PAGATO_A_ORE, IMPIEGATO_STIPENDIATO} di Figu— re 4.] e una specializzaziene tetale di IMPIEGATG; cib b mestrate nei diagrammi BER usaude una linea doppia per cellegare la superclasse a1 cerchie. Una Ijnea siugola b usata per rappre_sentare graficamente una specializzaziene paniale, che censente a un’entita di nen appartenere a nessuna setteciasse. Ad esempie, se certe entitb di IMPIEGATO neu appartengene a nessuna delle setteclassi {SEGRETAHIQ INGEGNERE. TECNIGO} delle Figure 4.1 e 4.4. allera quel-
la speeiaiizzaziene e parziale? Si neti che i Vinceli di disgiunziene e di cempietezza some indipendenti. Percib si hanno i seguenti quattre pessibflj vineeli sulla specializzaziene: disgiunta. tetale; disgiunta. parziale; sovrapposta, tetaie; sevrappesta, parziale.
“”I'ecnice"
1 SEGREI'ARIO | r TECNICO
I F INGEGNERE J
eutl‘attribute fipeLavere di IMPIEFigure «L4 Una epscialtzzazlene definite tramite un attribute basata
Un attribute siffatte a delta discrimbmrore nelia Lemfinelegia UML. _ La netaziene censistente neli‘usme linee singelefdeppie e sirnile a quella per in partecipaziene pjaritjal It 1111 tipe di entitb a un tipe (ii associezjone. come v
e'pel Cagitole 3.
'
I '-
34
Medellaziene Entita-Asseeiaziene estesa e medeHaziene a eggetti
Capitele 4
85
IMPIEGATO Deseriziene
DataFabbricaziene
NemeFemltere
FreueDlListIne PAHTE_FABBHiCATA
[EEGREI’AFIIOj LTECNICO
] IINGEGNERE!
IRE-reg
IMPIEGATO_PAGATO_A_OFIE _1MFIEGATO_STIPEND1ATO
PAR'I'EfiCOUisTATA
sl che si sewappengene {non disgiunte}. Figura 4.5 Netaziene per specializaziene con setteeias
te che assume ciascuna speNatuxalmente i1 vineele cerrette e determinate dai significa
stata individuata ate—averse cializzaziene nel mende male. Cemunque, una superclasse che é sse e derivara daHe settesupercla la perché il precesse di generalizmziene di selite e totale.
classi e percie centiene seie 1e entité Che sene nelle setteciassi. certe xegele di inserimente e Alla specializzaziene (e alla generalizzazione) si applicane di queste regele some Alcune ati. specific septa Vinceli dei enza cancellaziene, come censegu he seguenti: che cssa venga autemaficamente - la cancellaziene di un‘entité da una superclasse impljca ne; appartie canceliata da tutte le setteclassi a cui l’emith venga ob‘eligatoriamente o l’inserimente di un’eutith in una superclasse implica Che (o definite rmmz‘te we attribute) te predica 1m inserita in tune 1e setteclassi definite Immire ene; definizi di te predica ii per Ie quali l’entite seddisfa specializzaziene rotate impiica Che o l'inserimeme di un’entita in una superclasse di una delle setteclassi della specializza— una almene in l’entité venga ebbligateriamente inserita
none. di inserimente e cancellazione 11 letters e imitate a stendere un clenco complete di regele
per i val-i tipi di specializzaziene. Una setteclasse pue avers altre sotGerarchie e reticeli di specializzazionii‘generalizzazieni. um reticele di specializzazieni. Ad e ia gerarch una teciassi specificate su se stessa, a fennare ATO ed a anche una superclasse IMPIEG di sse seuecla una e EHE INGEGN 4.6 esempie, in Figura
reale che egni direttere del di DI RETTORE_INGEGNERE; cie rappresenta i1 Vincele del mende izzazioni presenta i1 special di ia gerarch Una re. ingegne un repute ingegneria deve essere ziene classefsetteassecia sofa vineeie ehe egni setteclasse partecipa come sortoclasse a ma
DIRETTOFIEJNGEGNERE
Figure 4.6 Un retieeie di specializzazieni con la sottoclassa condivisa DIHETTOREJNGEGNERE.
elasse. Al centrarie, per un reticolo Iii speciafizzazioni una selleclasse pub essere soiteclasse in pm di una assemazmne classefsetteclasse. Percie la Figura 4.6 rappresenta un reticole. In Figura 4.7 e mostrate un altre reticele di specializzazieni con pit di un livelle. Queste ' pub essere pane di une schema cencettuale per una base di dad UNIVERSITA‘ Si neti cite questa disposiziene sarebbe una gerarchia se non ci fesse la setteclasse ASSISTENTE STUDENTI
che e setteclasse in due distinte associazieni ciasselsetteclasse. 1n Figura 4.7 tu_tte le emits, persona rappresentate nella base di dati sone membri del tipe di entita PERSONA, she 53 spemahzza nelle setteclassi {IMPIEGATO, EX_ALLIEVU, STUDENTE}. Questa specializzaziene e sovrappestl; per esempie un ex allieve pub essere anche un impiegate e pue essere anche uno studente che presegue gli studi per ottenere un Litele pin avanzate. La sotteclasse STUDENTE é superclasse per la speciafizzaziene {STUDENTE__LAUHEATO, STUDENTE NON LAUREATO}. men— tre IMPIEGATO é supemlasse per la speciafizzaziene {ASSISTENTE —STUD—ENTI, CORPO DO‘
CENTE, eEnseNALEjIjUPPeaTO}. Si neti che ASSISTENTE_STUDENTI e anche una Simo— classe d1 STUDENTE. Infine, ASSISTENTE_STUDENTI e superclasse per la specializzaziene in {ASSISTENTE_DI_HICERGA, ASSISTENTE_DI__DIDATTICA}. In un reticele e gerarchia di specializzazieni una setteelasse eredita gli attribufi non sele . '
-della sua diretta superclasse, ma anche di tutte 1e superclassi Che la precedenefino ad arr-Eva ' Ire eila radicedelle gerarchia 0 dc} reticele. Ad esempie. un’entith di STUDENTE_LAUFIE_AT eredlta tutu‘gh etmbuti che queil’entita pessiede in quanta STUDENTE e in quanta PERSONA :
not] Che un entith pub trevaxsu m pill nodifagfia della gerarchia, Cleve un node foglia 9‘. tin elasse che non ha nessuna sofioclasse. Ad esempie, un membm di STUDENTE_LAUFIEATO=' anche assume an membre di' ASSISTENTEJIJIGEHGA.
Una setteciasse con pi!) dz‘ ma superclasse e detm sottoclasse condivisa. Per 'eseni‘pi eg'ni DIRETTDHE_INGEGNEBE Cleve essere un INGEGNERE ma deve anche essere m1 IMEIEGA:
. :.'
as
Modoilazione Entité-Associazione estesa a modellazione a oggetfi
Capitolo 4
87
la collegata all’ereditarieth multipla pub essere illustrata tmmjte I‘esempio della sottociasse condivisa A331 STENTE_STUDENTI di Figura 4.7, Che credita attributi sia da IMPIEGATO sia da
@
1%
g
STUDENTE. Qui sia IMPIEGATD sia STUDENTE ereditano gh' sressi arm‘buri da PERSONA. La re— goia stabilise: che so no attribute (o associazione) che ha origine neila stessa supemiosre [PERSONIO b oreditato pill di una volta passando amaverso percorsi divorsi ncl reticolo (IM PIEGATD e STUDENTE), allora esso Cleve essere insorito solo una volta nella sottoclasse condivisa (ASSISTENTE__STUDENTI). Porcib i amibuti di PERSONA sono creditati solo Lma who nclla sottoclasse ASSISTENTE_STUDENTI di Figura 4.7.
0
A quosto proposiio b importante notare che aloe acoezioni cli meccanismi dj ereditariota non consenrono l’ereditarieté multipla {sottoclassi condivisc). In on modello che non consen— te l’ereditarieth multipla b necessario creare sottociassi aggiuotive per coprire tune le combi— nazioni possibih’ di classi Che possono aver: una aorta entith appartenente ad ease simultanoa-
meme. Quindi ogni specializzazione sovmpposra richiederebbe sottoclassi multiple aggiunti—
mm
STUDENTE
1 1
xi, w i.
5 ve. Ad esempio, neIla specializzazione sovrapposta di PERSONA in {IMPIEGATIL EX_ALLIEVO, STUDENTE} (o {1, E, 8} per brevith), per coprire tutti i tipi possibili di entita sare’obe necessario create sette sottoclassi di PERSONA: I, E, S. I__E, I_S, E__S. I_E_S. Ovviamente cib pub porter: a complessita aggiuntiva. E anche important: notare che alcuni meccanisnfi di ereditarieta chc conseotono l‘eredita-
.7 riotb multipla non consentono a un’entith di avers pifi tipi, e pcrcib un’entita pub essere. mem-" _ bro 5010 di and done.” Anchc in un modello di questo tipo b necessario creare sottoclassi 5 condivise aggiuutive come nodi foglia per coprire tune 1c combinazioni possibili di classi che possono avers una certa entité appartenente ad esse contemporaneamente. Percib si avra bi-
0
DisclpilnaDI
® @ Spedallzzazlcne
} sogno defle stesse sette sottoclassi cli PERSONA. STUDENTL LAUREATO PERSONALE. DLSU PPORTO
STUDENTE_ NON_LAUREATO
ASSTSTENTE. STUDENTI FrograrnmaDIStudl
' Anche se qui si e parlato soitanto di specializzazionc, concétti simjli sz' applicant) agitat'- meme alla generalizzazionc, come detto all’inizio di questo paragrafo. Percib si pub anche § parlare di gerarchie di generalizzazioni e refiooli di generalizzazioni.
' Uso della spedalizzazione e della generalizzazione nella modellazione concettuale di dati. Si vedano ora particolari sulle differenze In H processo di specialjzzazione e quello di gene-
ralizzazione durante la progettazione concettualo di una base di dati. Nol processo dj specia.- Iizzazione si injzia tipicamente con un tipo di entitb. per poi dofirnjre sottoclassi do] Lipo di onma atIraverso specializzazioni successive; ciob 5i definiscono ripetutamcntc sotto-organjzzazioni in gruppi sempre pill specifiche del tipo di entita. Ad esempio, quando si progctta il rc-
WSSISTENTEJLHICEIfll
ficolo di specializzazioni di Figura 4.7. b possibile dapprima specificarc un tipo di entita PER SONA per una base di dafi UNIVERSITA. Poi ci si rende conto do] fatto che nella base di dati
[ASSISTENTLDLDIDAWIGAJ
SITA. ereditarleté mumpia) per una base di datl UNIVER Figura 4.? Un retico'lo dl specializzazioni [eon
saranno rappresentau' Ire tipi di persone: impiegati dell’universiia, ex allievi e studenti. A que~ gto scopo si crca Ia spacializzazione {IMPIEGATQ EX_ALLIEVO, SWDENTE} e si scegiie iI vin-
oolo di sovrapposizione perché una persona pub appartonere a pin :11“ una sottoclasse. Quindi 5i efl’ettua un‘ulteriore specializzazione di IMPIEGATO in {PERSONALEJIMSUPFORTL}. COR-
GEGF~IEHE dovrebbe essere um sotTo sTIPENDIATO o no DIHETTGBE, allora DIRETTDRE_IN assi (Figural 4.6)..915 pol-ta a1 concerto notEi‘Eomo
toaasse condivisa di tune a tre lo supercl area isa DIR’ETTOHEfiINoEGN ereditarieté multipia, dal memento Che la sottoclassc corrdlv un ainieno d1 za ousten 'i Che non Si classi. piil da dita direttamentc attributi e associazioni go fiielsz iglozra g; netd mirrorin sottoclasse condivisa porta a un rcticoio (o porci‘b a eredz‘ta
flrrnniqssu‘nflivisehsi avrehbeIuria oorarcflgomtiosaohe un 12cc 0.
11- p
-: .
PO_DOCENTE, ASSISTENTE_STUDENTI} e di STUDENTE in {STUDENTE_LAUREATO, STUDEN -
TE_NON_LAUHEATO}. Infine, si opera una specializzazione di ASSISTENTE_3TUDENTI in {A_S«
P——_
I
_
In alcuni casi la ciasse é. ulterionneme vincolata a asaere un nodofogfia nclla geramhin o relicolo.. _ _ = = ~53 _z- -' -. -' '
:.‘_:__:
Modellezione Entite-Asseciazione esteee e modellazione a oggetti
89
Cepitolo 4
83
sive DIDATTICA}. Queste specializzazioni succes SI STENTE_DI_RIOEHCA, ASS!STENTE_DI__ du— ) besso a1 alto (dall’ te concettuale top-down corrispondeno a un preceeee di raffleemen ren5i ci i quind hia; gerarc una he si qui Fin rante la progettarione dello scheme eoneettuele. a une settoclasse cendivisa, da] memento che de conte del fatto che ASSISTENTE_STUDENTI eosi a1 retieele. e enche una settoclesse di STUDENTE, arrivendo te. In tel case it
le dalla direziene eppos E possibile enivare alla stesse gerarchia 0 retice lizzazioni e corrispende a una sintwi epecie che sto piutto zioni alizza processe prevede gener case i pregettisti possono prime scoounce-finale bottom-up (dal besso all’elto). In questo
prirc tipi di entite come
, STUDENPERSONALE_DI_SUPPOBTO, COHPO_DOCENTE, EX_ALLIEVO
_DI__DI O, ASSISTENTEJJIJIIGERCA, ASSISTENTE TE_LAUREATO. STUDENTE_NON_LAUREAT UREATO} in
ENTE_LAUREATG, STUDENTE_NON_LA DATTIGA e cesi via; poi generalizzeno {STUD TICA} in ASSISTEN -
A, ASSISTENTE_DI_DIDAT STUDENTE; quindi {ASSISTENTE_DI_HICERO E_STUBENTI} PPOFITO, CORPO_DOCENTE. ASSISTENT TE_STUDENTI; poi {PERSONALE_DI_SU LIEVO. STUDENTE} in FERSONA. in IMPIEGATO; infinc. {IMPIEGATQ EX_AL
che rieultene da entrembi i precessi possene In termini strutturali, 1t: gerarchie o i reticeli state specificete 1e su-
essere identici; la sole differenze riguarda i1 mode
0 l'erdine in cui some
e e probebfle che non venga seguito fedehnenperclessi e 1e sottoclessi dello schema. In prefic serve di une
di specializzazione, ma che ci si te :16 i1 precesse di generalizzaziene n6 i1 precesse no ripetutarnente inserite, in una gererchie venge case questo In combinazione dei due processi. diventene evidenti a utenti e
memento stesso in cui o in une specializzazione, nueve classi, nel li di e deti e cenescenze usendo gerarchie e retice progettisti. Si neti che l'idee di rappresentar esperi sistern e cenza conos in sistemi basati sulle superclassifsottoclessi e ebbestanze comune Ad deti cen tecniche di intelligenze artificiale. di basi delle legia tecne 1e ineno comb ti, che essemiglieno forteframe su i beset cenze conos della ziene esempie, gli schemi di reppresenta profizzaziene e cemune in quelle metedolegie di rnente elle gererchie di cles si. Anche Ia specia ti. ogget e ate orient igma parad sul besate sono gettezione dell’ingegneria del software che
4.4
finore presentene em: sofa ruperctasse. Una
in GNEHE nel reticolo di Figure 4.6 e sotteclasse sotteclesse cendivisa come DIEETTOREJNGE une he i iezion , dove ciescune delle tre essec tre diverse asseciazieni superclessefsettocieese che serge 1e necessite di modellere uue sinia, tuttav , uente infreq e Non superclaese singela. di una superclasse, dove 1e superclessi rep» pie con gola associaziene superclaeselsottoclesse 1e sottoclesse rappresentere une collezione di presentano diversi tipi di entite. In questo case lasse e e) di diverei tipi di enfite; questa settec eggetti che e I‘UNIONE (0 on 5110 sottoinsiem dette tipo unione e cetegerie.“_
ship: smite-Categorie-
”
ery—Reiation baseto sul meddle ECR (Entity-Ceteg L’uso qui Eetto tie} termine categoria e
Associezione} (Elmasri e altri 1985).
in un dregramme HER seno reppresentete greficemente come mostrato in Figure 4.8. Le suPsrelassr AZIENDA, BANCA e PERSONA sono cellegate e1 cerchio contenente il simbelo U che retiree l’eperazione uniane di insiemi. Un area con il simbelo di sotteinsieme college i1. cer— clue alla cetegoria (sottoclasse) PROPRIETARIO. Se 51 he bisegne di uu predicate di definizione. essolviene rappresentato graficetnente vicino eile linea che perte dalla superclasse e cui si apphce Ll predicate. In Figure 4.8 si hanno due cetegorie: PROPRIETARIO, che e une settecIesse deil’unione di PERSONA, BANCA e AZIENDA; e VEICDLG IMMATHICOLATO che e una set-
teclasse dell’unione di AUTOMOBILE e GAMIeN.
-
I
Una categorie he due 0 pie superclassi che pessono rappresentere tipi diversi di entire mentre 1e elu-e associazioni superclasse/sottoclasse hanne sempre uua sela superclesse. E pos: sibtle confrontare uue categoria, come {DROPHIETARIO in Figure 4.8. con la sottoclasse condivise DIEETTOREJNGEGNERE di Figure 4.6. Quest’ulfime e une setteclasse di cfascuna delta tre superclessi INGEGNERE, DI BETTORE e IMPIEGATO_STIPENDIATO, e pertento un’entite che sre memere di DIRETTOREJNGEGNERE deve esserci in tutte e tre. Cie rappresenta i1 Vincele che un direttore del reperto ingegneria deve essere un INGEGNERE. un DIHETTGHE e un IMPIEGATD_STIPENDIATO; cioe DIRETTORE_INGEGNEHE e un settoinsierne dell'inrersezt'ene
delle tre superelessi (insiemi di entitfi). Una cetegeria, invece, e un sotteinsierne dell’tmt'one delle sue superclassi. Percie un’entite che sia membre di PROPRIETARIG deve esistere in una sole delle superclessi. Cie rappresenta i1 vincole di Figure 4.8 che un PROPRIETAHIO pub essere un’AZIENDA, una BANCA a una PERSONA. . Nel case di categorie l‘erediteriete di attributi opera in mode piu selettivo. Ad esempie in Figure 4.8 une generica eutite di PROPRIETAHIO eredite gli attributi di AZIENDA, PERSONA o
BANGA e seconde delle superclasse a cui esse epparliene. Viceversa una settoclasse cendivise
Modellazione di tipi UNIONE attraverso l’uso di categorie
vista "lune 1e associazioni superclasseisotteclesse
{\d elsempie, si suppenge di avere tre tipi di entite: PERSONA, BANOA e AZIENDA. In una base d1 dau per l’immatrieolazione di veicoli. il proprieterio di un veicelo pub essere una persona, une hence (che he un’ipoteca sul veicolo), o un’ezienda. Si he quindi bisogne di creere una classe.(cellezione di entite) che commends. entite di tutti e tre i tipi e che sostenga il ruolo di propnetario def vet‘cele. A questo scope vienc create una categoria PROPRI ETAH IO che sie una rertacfesu'e dell’UNIONE dei tre insiemi di entite AZIENDA. BANCA e PEHSGNA. Le categorie
come DI RETTOREJNGEGNERE (Figure 4.6) eredite tutti gli atlributi delle sue superclassi IM' PIEGATO__STIPENDIATO, INGEGNEBE e DIRETTGRE. F. interessente notare la differenze tre la categoria VEICOLOflIMMATaIGOLATO (Figure 4.8) e la superclesse generalizzete VEICOLO (Figure 4.3b). In Figure 4.3(b) ogni automobile e ogni
cannon e un VEICOLO; d’altra parte in Figure 4.8 1a categorie VEICOLO IMMATHICOLATO comprende alcune eutemobfli e alcuni carnien, ma non necesseriamente tutti (ed esempie. alcuni eermenlo automobiii pessone eseere non human-icoleti). 1n generele une specializzezione o -
generahzzezione come quelle in Figure 4.3(b). se fosse perzt'afe, non precluderebbe a VEICD: ' L0 d1 contenere altri tipi di entite, come ed eserepio moteciclette. Invece. une categoria come. -' - I VEICOLD_IMMATRICOLATO di Figure 4.8 prevede che sole automobih' e cannon, ma non en'ti' I i I: di altri tipi, pesseno essere membri di VEICGLD_IMMATHIGOLATO.
. Unecetegerie pue essere tetale o parziale. Ad esempio, TITOLAHE CONTO a unit I rte pemeIe definite tremite un predicate in Figure 4.9(3). dove c. e r:2 time Is. predicate che specificane queli entite di AZIENDA e PEBSONA, rispettivamente TITOLARE_CONTO. Viceveree 1a cetegeria PROPRIETfi in Figure 4.9(b) e total
Modellazione Entité-Associazbne astesa e modellazione a oggetti
Capitolo 4
90
@-
AZIEN DA
m
PERSONA
97
TITOLAHE_ CONTO
BANCA
(b)
PROPRIETARIO PegnoONormaIe
I PROPRIETA
DataAcquisto
M @
Figure 4.9 Categorle totali e parziali. (a) Catagorla parzials TITOLAHE_CGNTO, sottoinsieme dell'unione di due tipl di entita AZIENDA e PERSONA. (b) La categorta totals PROPRIETA a una generalizzazlo— ne analog-a.
N
-
EDFF'C'O
W
VEICOLOJMMATRICOLATO
ficin e lotto dove esserc membro di PHOPHIETA; cib é rapprcsentato graficamente tramitc una
linen doppia she collega Ia caxegoria al ccrchio. Le categoric parziaii sono indicate da una linea singola Che collega Ia categoria a] anarchic. come in Figura 4.8 9. 49(3). Le superclassi di una categoria possono avers attributi chiave diversi, come dimostrato Mamac
Modeuoc
-
Modeilomto
dalla categoria PROPRIETARIO di Figura 4.8, 0 viceversa avere lo stesso attribute chiavc, come dimosmato dalla categoria VEICOLO_IMMATRICOLATO. Si noti che se una categoria e totale (non parzéalc), cssa pub essere alternativamente rapprescntata come una specializzazione
@
0
(0 mm generafizzazione), come illustrate in Figura 4.9(b). In questo case la scelta su quale Tonnall
1o
T‘IpoAuto
AUTOMOBILE
GAMION
rappresemazione usare é soggettiva. Se 1e due classi rappresentano Io stcsso tipo di entitfi e ndividono numerosi atuibufi, comprcsi gli stessi attributi chiave, si preferisce 1a speciaiiz— azionelgeneralizzazione; altrimenti é pill appropriata l‘introduzione Eli una categoria [tipo 'one).
-
M...
:
L-
‘ tipi d:‘ enti'Wdassi usando la ' a di come rappresen’cara I ‘ UNIONE :11‘ due 0 plu ' trazmn 4.3 Un'lllus e VEI antate graficamenta due categurre: PHOPRIETARIG rappres Sana rla. catego di ne notazio Figura . ¢ . {r'c' _: Inn-n
_
rm
L;
p'mnl n10.
Ed
;.-,_
M
lab”...
I.
H
l
I
'
Modellazione Entita-Associazione estesa e modeliazione a oggetti
93
Capitolo 4
92
IVERSITA 4.5 Uno schema EER esemplificativo UN EER
@@®@
® ®@“®@
e definizioni formali peril modello
dati nel modello to un esempio di schema di basi di 1n questo paragrafo sara dapprima forni essivamente saSucc vat-i concetti studiati qui e nel Capitolo 3.
EER, per illustrate l‘uso dei in cui nel e definiti fonnalmente nello stesso modo ranno ripresi i concetti del modello EER base. di ER llo mode del etti conc i Capitolo 3 erano stati definiti formalmente UNIVERSITA che ERSITA. Si consideri una base di dati La base di dati esemplificativa UNIV libretti ializzazioni principali. delle u'ascrizioni dei tenga traccia degli studenti e delle loro spec 61 base La sita. niver dell‘u nti name dell‘ offerta di inseg universitari c dell‘iscrizione, nonché nti laureastude degli e nte doce corpo del ziati a finan dati memorizza anchci progetti di ricerc ntato uno studio dei re-
Di seguito viene prese ti. Questo schema e mosh-am in Figura 4.10.
quisiti che hanno portato ad esso. ro di previden— infonnazioni su nome [Nome], nume Per ogni persona la base di dati tiene Sono state inN]. [Data ta nasci sesso [Sesso] e data di za sociale [Sen], inditizzo [lndirizzo], ENTE. Attributi STUD e E GENT O_DO GORP ONA: PERS dividuate due sottoclassi del tipo di entita iato, professore {Fascia} (assistente, professore assoc specifici di CORPELDOCENTE sono fascia [TelefonoCD] io uffic no telefo ], ioCD ecu), ufficio [Uffic suaordinario, ricercatore, visitatorc tirnenti unidipar ai bxi del corpo docente sono collegati e stipendio [Stipendio], e tutti i mem afferixe a pub nte doce corpo del __DI] (un membro versitari ai quali afferiscono [FA_PAHTE ENTE E: {AnSTUD di ifico spec uto atu‘ib Un ). M:N ne e molti dipartimenti, cosicché 1‘ associazio e anche college— studente laureate = 5}. Ogni studente noCorso] (prime = 1, secondo = ‘2, ..., ECJHING] e [ESP noti se a, ndari seco e e principale to al suo dipardmento di specializzazion ITTO_A1, e [ISCH do nti che sta attualmente frequentan [SPEG_SEC]). ai moduli di insegname rizione del trasc di za istan Ogni 01. SCRIZIONE_LIBRETT agli insegnamenti gia completati {TRA inseguamento. dell‘ ulo mod nel ] [Veto uto ricev nte ha libretto comprende il voto che lo stude definizione Ane di STUDENTE, con il predicate di STUDENTE_LAUREATO e una sottoclass dentemen— prece titoli dei o elenc un to ato viene conserva noCorso = 5. Per ogni studente laure nte laureate viestude lo re, Inolt li]. [Tito re ivalo e mult te conseguiti in an attribute composto R] e a una commissione di tesi
corpo docente [TUTO ne collegato a un tutor facente pane dei
[COMMISSIONE]. se ne esiste una. fonoD], e nuattributi nome {NomeDL telefono [Tele Un dipartimento universitario ha gli tore [DI « dixet il e me che nte doce al membro de] corpo mero di ufficio {Ufficiol ed e collegato ge [Nocolle del Ogni college ha come attributi nome RIGE] e a] college di cui fa paste [CD]. ide]. [Pres }, e il uome del suo preside meC], numero di ufficio {UfficioC insegnamento {Nouti codioe insegnamento [Iii]. nome attrib come ha nto name Un inseg un insegnamenciasc cl]. Sono offerti molti moduli per meI] e descrizioue insegnamento [Des nei qua-
e del modulo [Mod#] e 1‘ anno e il trimestre nto. e ogni modulo be per attributi i1 codic i del modulo identificano uiuvocame e ["[l'im]).12 I codic lj il modulo e stato offal-to ([Anno]
9wgura 4.10 Uno schema concettuale EER per una base (it dati UNIVERSITA.
:liascun modulo. I moduli ohe vengono ofi'erfi durante il trimestre in corso sono in una sot-
AmajsEmUElBOHRENTE d1 MODULO. con i] predicato di definizione Txim = TrimCorrente e o on'ente. Ciascun modulo e collegato al docente che Io ha insegnato o che lo sta — segnando ([INSEGNA], se quel docente e nella base di dati). La categoria DOGENTEJiICERCATORE B an sottoinsieme dell‘unione tfi CORPO_DOCENTE e
UDENTE_LAUREATD e comprende tutto i1 corpo docente, cosi come gh’ studenti laureati .che' ' '_____________.__
12
quello dei semstri. usato i1 sistcma dei trimestri anziché Si assume che in quests universita venga
mantengono con l'insegnameuto o la ricerca. Infine, il tipo di entita BOFISA_EII STUDIO tie-
Medellazione Entita‘a—Asseciaziene estesa e modellazione a eggettl
Capitele 4
94
ti all‘universita. Ogm bersstdilt ne traccia delie berse di studio e dei centratti di ricerea assegna numere delle bersa (1:511:11 e i1 [Titele]. studio di bersa della titelo il studio ha come attributi Una bersa d1 studiec 0211:; ]. [Nam], Fame the la assegna [Elite], e la data d’inizie [patent [FINAttt'ZI-fil].1 13:3 di finanma ehe ten ricerca i tutti a e gata a un dirett'ore di ricerca [DR] del finanztarnento [ling]. a 1 1-0istanza di FINANZIA ha come attributi la data di inime d1 tempo Che-viene d cata a p tuale fine that finanziamente (3e neta) [Fine], 6 1a percen
getto [Tempe]. dal ricercatere finanziate.
Una ulasse13 e an msmme e eageziprgz Definizieni formali per i cencetti del modello EER. BER che raglgmppginuzla.c1355c schema delle te costrut si qualsia di emits; con cie si include Una sottec asseln-a class: deg. a. eategon ad esempio tipe di entita, sotteclasse, superclasse e 0 L1,“. aspresentl m and: h entita delle ieme setteins un le cui entita devene sempre essere 3 sem61:33:3 e I? . E—UN) {o sse ta la superclasse C dell’asseciaziene superclass-elspttocla 0 asse ttec assefse supercl zmne assoc1a seciaziene di queste tipe con CIS. Per tale sgc pie avere
Sn} a un insieme di sotteclassi che hanne la stess: $1:-
Una specializzazione Z = {31.32,
e per I = I, 2,... n.'G e detu: perclasse G; ciee, G.-’S-l e un‘asseciaziene superclassefsotteclass ne e .
lizzaztene,le generalizzane tipo di entita generalizzate {e superclasse della specia sempre (in egm istante d1 tempo). ha si se totale s Z che Sal). Si dice setteclassi {S1, .53,
U sI = G
Un predicate pi sugli attributi di Di pub essere usate per specificarei membri di ciascun l!)i
che sono anehe membri di T. Se un predicate é specificato su eiascun 1),, Si ha T= (DIL911 U DELP2]
U DnLPnD
Ora si devra estendere la definiziene di fipe di asseciarjene data no] Capitole 3 consentende a egni classe — non solo a egni tipe di entita — di partecipare a un’asseciaziene. Percie si devra sostituire in quella definjaione 1e parole ripe dt' entitd con cfasse. La notaziene grafiea del medelle EEK e ceerente con quelia defl’BR perché tutte le classi some rappresentate tramite rettangeli.
4.6
Use dei diagrammi delle classi UML per la modellazione concettuale a oggetti
Le metedelogie di modellazione a eggetti, come ad esempio l’UML (Universal Modeling . Language) e l‘OMT (Object Modeling Technique), stanne diventartde sempre piu pepolari. Anche se esse sono state sviluppate principalmente per la pregettazione del software. una parte important: di questa riguarda la progettazione delle basi di dati a cui si aceedera tramite i moduli software. Percie una pane impertante di tali metedelogie — costituita dai diagramm‘ . delle ctassi ~14 e per melti aspctti simile ai diagranunj BER. Purlreppe e la terminologia che ‘. spesse differisee. In questo paragrafe vet-ta passata brevernente in rassegna parte defla notaziene, tenninelegia e cencetti usati nei diagrammi delle classi UML, e cenfrentata con la ter-
minologia e la netaziene EER. In Figure 4.11 viene mestrate come 10 schema ER della base
sempre: altrimenti Z s detta parziale. Si dice che Z {2 disgiunta se si ha
‘ di dati AZIENDA di Figure 3.15 pessa essere rappresentato usando Ia notaziene UML. I ripi' di' emitt} in Figure 3.15 sene medellati come clarri in Figure 4.11. Un’enn‘ra neI medelle ER cer-
Sr 0 SJ = tl) (insieme vuote) per i at j
' rispende a un oggetro in UML. _
. esta. ta tramite 1m predicate dice cheS ZdieCsevra ' 'leelasse 311531;:Eoi ' si diEEdefini se .51 use. an predt_cato p 3:-
d1 5;;1? ia—Uinbgge un gli attributi di C per specificare quali emits di C sono anche membn non e at sse settoela Una p. ano seddisf che ve Cp] 9 l’insieme di entita d3 C e. dall’utent definite detta ‘ DrefiifZSecializzaziene Z (0 ma generalizzaziene G) e detta definite tramlte 11:, :tltribgie
Nei diagrammi delle elassi UML una classe e rappresentata graficamente con un riquadre che eemprende tre sezieni: la sezione in alto femisce i1 Home della elasse; Ia sezione in mez_-zo comprent‘le gli attributi per i singeli oggetti della classe; I’ulfima sezione comprende ope'- tazieni che pessene essere eseguite su questi oggetti. A differenza che nei diagrammi UML, nei diagrammi BER non seno specificate 1e eperazioni. Si consideri la classe IMPIEGATO in Figure 4.11. I suoi attributi sone Nome, San, DataN. Sesse, Indirizzo e Stipendie. Se lo desi—
51 d1 Z, rienziuia S. mg che se, per specificare l‘insieme dei membri di ciascuna setteclasse 'unta'
dera, il progettista ha facelta di specificare i1 dominio di an attribute, penendo un carattere:
zmztetltle imam-gloom; se cl a C1 per i is j, eA a un attribute a valere singele, allera la spe01ah ssn c e a supercla n d1 ene dell’um ietne settoins classe una Te ia Una categor
0). Un attribute cempeste e modeliate con un dominio strutmraro, come illustrate dall‘attrir bute Nome di IMPIEGATO. Un attribute multivalere sara generalmente modellate con una clas-
cestante del dominio sate (A = 0.), dove A e an attribute di G e c, e um valere
DUDE.
. 3:115
D“, n > I , ed a formalmente specxficata come segue:
T g1). u D1... u on)
U
“......
95
seguite da neme e deseriziene del deminie (gli attributi Nome, Sesso e DataN di IMPIEGA-
6 separate, come flluszrate dalla classe SEDE. . I tipi di asseciaziene some detti Iegamt' (associations) nella tenninelogia UML. e 1e is'tah \e di associaziene sene dette cellegamemt' (links). Un legame binarie (tipe di assesiazie aria) e rappresentato con una lines che cellega 1e elassi partecipanti (tipi di entita}, e pd
e orien— fl smuurm ‘di _ p redgrznmmazien ‘ ' cement: she no a fatte net’ [malaigg-i dall ' use pm ' ' Qui I‘use delle parela classe differisee pe I lnilllE nella consiste classe una infatti, lati a oggetti some ad esernpio C++. In C++, ‘Mieme alle fi-Mieni at man nnplicshili rnnemzienil. I-.
-
-"“ ..
1
“a
_
met—...:
-
.
-
-:
-'-:.,..:§..-'-
—
4,.
-&
_
-
:.
_‘_
-.
(II-IIm
W
Inlzlnt Gannon-Le
Notazlcmo OMT all no
DIPAHTIME‘NTO
IMPIEGATO
_____._ Nome: DarnNome NumeBm
,,
__
E
'
-
-
__
Modellazione Entita-Associazione este'sa e modellazione a oggeiti
Capitoio 4
96
Hm.
"
1 1
:
Sen DmN: Data
0-3
Ilcflfi
PERSONA Nome
1.3 . a .
Name Nunato
San
" ———O 11.1
aanlunuLknplegala
97
WENEMM Seem indlfizzo
nLrneirrrpaagato cambia_dh'eflore
eh}
Seawwfl
Intflrino Su-endlo
ale oambla_d1pafllmenlo
cambhjmgefll
O
Nome Pulsar-ammon- .
0 FERSONMGRRLCO
Sasau:[M.FJ Datalln: Data Paranieln
IMPIEGATG Stipentlio
BLAUEVO
assume-Imp
nucnm_ex_alaaw
1
ompaimm
Spaclaflzzazlona
A Name Nut-note .99”n
STIJDENTE DIpSpscrauuazinna
TITOLO _ #0;
camblLdPGG ...
i new
Newman; UML dl aggressions: m
aanluwuarosm mahILdlruunre
m.
PERSONALL oLsupomo
CORPO oocafi‘e
”S'WNTE-STUDEN"
smm_munmo
F Hone
l.
7‘ ,
assufllfirsfi‘supp
promumrl
'°‘“""“ ass sludan
... urnL
l8
115d
“mmdL’ME
STUDENI'EJONJAUHEATO AnnaCorso
J ”mm-mu-m"
base all dafl AZIENDA d'I Flgura 3.15. Figure 4.11 Lo schema coneefiuala UML par la ASSISTENTEJLRICERGA neflo camblurouetto
detto attribute d'i callegamento, e pesto re no name (opzionale). Um attribute di associazione, notazio-
tramite one linea ttatteggiata. La in un riquadro che é collegato alla linea del legame usata per specificate vincoli di associa«2 3.7.4, fo atagra ne (min, max), descritta nel Sottop specificate
Le moltepljcita sono zione, che sono detti molteplicitd nella terminologia U'ML. limiie massimo alla partecipa— esiste non che nella forma min..max, e um asterisco (*) indica partt' opposte dell’assaciazione se conzione. Ad ogni mode, 1e molteplicité sono poste su fo 3.7.4 (si confrontino le Figure 4.11 e frontate con la notazzione esaminata nei Sottopatagm pliciti di 0..*, e an 1 da solo indica una molte una 3.15). In UML, un asterisco da solo indica
(si veda Sonoparagrafo 3.4.2) e detta legume rimolteplicith di 1..1. Un‘ associazione ricorsiva licith — vengono posizionati su lati oppoflessivo in UML, e i nomi di ruolo — come 16 moltep dei nomi di 111010 in Figura 3.15. nto oname posizi il con sti di un legame, 5e confrontati e 1’ aggregazione. L’aggregaziane e In UML esistono due tipi di associazioni: il legame ete :3 1e sue part1 componenti. compl o oggett un u-a ne pensata per rappresentare un’associazio
e ha una notazione diagrammatica distinta. In Figuta
4.11 1e sedi Eli un dipam'mento e la sin—
1e» con aggregazioni. Comunque aggregazioni e gola sede di un progetto some state modellate associazione usare e
su quake tipo di gami non hanno proprieta strutturaji diverse. e la scelta e da i legami 51a 1e aggregazioni sono rappresentat
piuttosto soggem'va. Nel modello EER sia ilaggregazioni unidirezt’ortali — che sono rapassociazioni. L’UML distingue anche tra legam accedere a ogindicate che c’é bisogno di una sola direzione per
presentate con una fteccia 3. li — che sono queue assume implicitamente getti collegati — e legamilaggregazioni bidireziorta e di associazione per poterle ordinate. In (default). Inoltre e possib'ie specificaxe 1e istanz
rapopzt‘anali, e gli attributi d1 associations sono UML i nomi di associazione (legame) sono il lesenta rappre she linea alla giata [ratteg linea una uniio con
presentati dentro un riquadro
4.11}. gmnefaggregazione (Datalm’zio e 011: in Figure
ASSISTENTEJLDIDATHCA Insagnamanw anemilnsegnamanlo
UNIL di specialiuaionefgeneralizzazione III ustrata tramite on d] Figure 4.12 Notazione . class; corrlspondente al diagramma EER di Figure 4.7.
agramma dens
Le opetazioni fornite per ogni classe sono derivate dai requisiti funzionali dell'applicazioneacot-ne wsto nel Paragrafo 3.1. All’inizio e in genere sufficiente specificare i nomi delle ope— Iazmm per indicate 1e opetazioni logiche che si prevede di eseguire sui singoli oggetti di una classe, come mostIato in Figural 4.11. Man mam che i1 progetto si raflina, vengono aggiunti maggion dettagli. come i tipi esatti degli argomenti (parametri) per ogni operazione, nonché
.une descrizione funzionale di ciascuna operazione. L‘UML dispone di descfiziom' difimzioni e di diagrammt’ dt‘ sequenza per specificare alcuni dettaglj delle operazioni, ma cio va a1 di 1a :fimrtata della presente discussions. ed a generalmente descritto nei testi di ingegneria del are.
In UML 1e emité deboli possono essere modellate usando i1 costrutto detto legame quali1, ficato (o aggregazt’one qualificata); 3550 put) rappresentare sia l’associazione identificante 5121
la chiave parziale, posta in an riquadro attaccato alla classe proprietaria. Cio e illustrate dalla elasse PEBSONLAFCARIGO E: (18118 sua aggregazione qualificata a IMPIEGATO in Figura 4.11.'5
,5
. , . . . . . . . . be assoctazlom qualtfioate non s: Inmtano alla modellazlone d: ennui deboli, ma posseno essere uLilizzate per modellare anche altre Sltuazioni.
Modellaziene Entitia-Associazlone estesa e modellazfone a eggetti
Capltolo 4
98
fizzazienefspecializzazione, ferIn Figure. 4.12 é illustrata la netaziene UML per la genera e a] diagralruna EER in Figura endent cerrisp UML classi delle rna nendo un pessibile diagram ziene disgiunra. e um triange4.7. Un triangele mete indica una specializzazienefgeneraljzza
FORN!TOHE
le picne indica sovmppesizione. una rapida visions: d‘insicme sui diaLa discussione e gli esempi septa ripertati femiscono alcune
rafia a fine capitele fernisce grammi dell: classi e sulla tenninelegia UML. La bibliog li dell’UML. dettag i e tament comple one indicazieni dj libri che descriv
4.7
Tipi di associazione di grade maggiore di due
di un tipe cli asseclaziene come '11 numere Ne] Setteparagrafe 3.4.2 :3 state definite il grade . e chiamate binario un tipo di associa— di tipi di entita chc partecipano a1 tipe cli asseciazione di grade tre. In questo paragrafe veraziene asseci di tipe ziene d3 grade due, 6 reman'o un e associazieni di grade maggiore, quanranne analizzate le differenze Ira asseciazioni binarie di grade pie elevate, c i vinceli su asne de sceglierc un’asseciaziene binaria e un‘asseciazie due. seciazieni di grade maggiere di
FURNITURE
ie (e di grade piil elevate). La notaScelta tra associazieni binarie e asseciazieni ternar Figura 4.13(a}, la ER per 1111 tipe di associazione ternario é mostrata in
ziene diagrammatica di associaziene FURNITUFIA {the E: state quale rappresenta gmficameme lo schema per il tipo le, un tipe di asseciaziene R di gragenera In 3.10. Figura in rappresentate a livello di istanza dci quali cellega R a un diverse tipe di ende n avra n spigeli in un diagramma ER, ognune
ma partecipante. di asseciaziene binari PUCLFOR La Figura 4.13(b) prescnta un diagramma ER peri tre tipi azie-
ziene ternario fornisce piil inferm NI BE, USA c FOBNISCE. In generale, un ripe di assecia Si censiderine i tre tipi di asseciaziobinari. aziene asseci di tipi ni di quanto nen facciane ire ga che PUELFORNIRE, Ira FURNITURE e ne binari PUO‘FOBNIRE. USA c FGRNISGE. Si suppon re s puefomire parte p (a am pmfemito il Che velta PARTE, cemprenda un’istanza (s, p} egni
getto qualsiasi); USA, tra PROGETTU e PARTE, cemprende
{c} " -
PHOGETTO
un’istanza (j, p) egni velta Che il pre-
TTO, cemprende un’istanza (s, j] egni gene j use 1a pane p; FOHNISGE, tra FORNITORE e PROGE di
e j. L'esistenza delle tre istanze velta che il femitore sfemisce um qualche parts a1 pregett e, non im—
c FOHNISCE, fispettivamem associaziene (s, p), (f, p) e (s, j} in PUO_FORNIRE. USA seeiaziene temaria FOHNITUHA, pernell’as nza (.w', p)
plica necessafiamente Che esista un’ista decidere se una parficelare asse« ché 1:: due eese hanne significare diverse! E spesse difficile di grade 11 e se invece debeiaziene debba essere rappresantata com um tipe di associaziene que-
e. II pregettista deve basare ba essere suddivisa in pie tipi di associaziene di grade inferier ne Che viene rappresenta— situazie are particol dclia ate signifie o ica semant sta decisions sulla asse—
e anche mm 0 pie dalle ta. Seluziene tipica é quella di inserire l‘asseciaziene ternaria
ciazieni binarie, a secenda delle necessita.
su vafiazierfi del modelle Alcuni strnmcnti per la pregettaziene dj basi di dat'l send basatl come ‘
tt ‘ C __LL m_-._
as
{.v-‘f' “u i ;-.‘~._- Eu uf'm‘. "aso m‘acupeiazinne tamaria
_.--__.‘._.;-'L
PAFlTE
.igura 4.13 illustrazlone di tipi di associazione temarl. {a} ll tipo dI assoefaziene ternar'ro FORM ternarie Fe dl asseclazlone ' ' ' at ripe ' Tre tipf di assoclazlona binari . non e qulvalenu fl FURNITURA rappresanta‘to come un tipe di entita debacle.
99
100
Capitolo 4
PHOPOSTO_DURANTE
ENSEGNAMENTO
GOLLOQUIO
OFFERTILLAVORO
Figure 4.15 Un tips d: antita debole CDLLUOUIO, con un tipo di assoclazione fdentificante tornario.
associazlone ternari e tipi dl associazione ulnar}. Figura 4.14 Un altro esemplo d1 confronto fra tlpi d1
debole, senza chiave parziale a FORNITURA dove essere rappresentata come on tlpo di entita FURNITURE. PAHTE e PHOGET panti parteci canti. I tre tipi di entita
con tre associazioni identifi (Figura 4.13c). Percio un‘entiti del tiTo costiruiscono nell’insieme i tipi di smith proprietari identificata dalla combinazione delle sue po di smith debole FURNITURA di Figura 4.13(c) é PROGETTO. e PABTE tre entita proprietatie press da FURNITURE, di associazione temario PROPONE raptipo 11 4.14. Figura in to mostra é Un alt-o csempio amenti durante semestri specifici; per— presenta la situazione di docenti Che propongono insegn volta she i1 downte 1' (“i" come inogni c) s, (i. zione. associa cib esso comprende un’istanza d1 durante i1 semestre s. I tre tipi d1 assostructor) propone l’insegnamento c (“6‘ come course) tc significato: PUCLTENERE collega un seguen i1 hanno ciazione binan' mostxati in Figura 4.14 ento; TENUTO_DUHANTE collega un seinsegnamento a1 decente Che pub tenere quell'inscgnam quel semestro; PROPOSTELDU durante msstre a1 docente ah: ha tenuro am cerm imegnamento semestre da qualsiasi doquel durante t'l propos amenfi RANTE collega un semestre agli insegn
rappresemano situazioni diverse, ma cente. In generals queste associazioni temarie e binarle n‘onj. Ad esempio, in PROPONE non associa 16 ha cormmque dovrebbero sussistcre certi vincoli (i, s) in TENU-
c} .98 non esiste un’istanza dovrcbbe esistere un‘istanza di associazione (1'. s. e un’istanza (i, c) in PUO_TENEFIE. Per?) TO_DURANTE, un’istanza (s, c) in PRGPOSTOJJURANTE (f, s). (s, c) e (i, c) nei tre tipi di as~ istauze cioé. were o '11 contrado non é sempre veto; si posson cordspondentc (i, s, c) in PROPONE. In presociazionc binaxi senza per questo avers l‘istanza quest’ ultima proprieth — ad csempio. se senza di cerLi vincoli aggiunn'vi, pert}. pub valene anche un solo insegnamento, a un insegna— tenant. pub docente (up 1:1 63 1‘ associazione PUO_TENERE ista dello schema Cleve analizzare ogni mento pub assert tenuto da un solo doceme). Il progett binarie e tornado sono necessari. azioni associ di situazione specifica per decidero quali tipi
un tipo di associazione identifiSi noti che é possibile avere un tipo di entith debole con pub avere pit} tipi d‘; entith prodebole cante tornado {o n-axio). In questo caso i1 fipo di entita 4.15. Figura in prietari. U11 csempio e mostrato
Vincpli su aosociaziotfi ternarie (0 di grado maggiore}. Ci sono duo possibili notazioni per spoolficare vmcoli strutnjrali su associazioni n-arie, ed :55: specificano vincoli diversi. Dowebpero percio essere mate emrambe S: E importante spacificare pienamente i vincoli su-utturall su un‘associazione temaria 0 di grade pit elevato. La prima notazione é basata sulla notazmnc del rappono di cardinalith per associazioni binaric, rappresentata in Figura 3.2. lo questo case 1, M o N sono specificati su ogni arco partecipante. Si illustra qui tale vincolo usando l’associazione FGHNITURA di Figura 4.13. . Si ricordi Che l’insiemc di associazioni di FURNITURA E on insieme di istanze cli associanope (.S' j. p), dove .s' E on FURNITURE, j E un PROGETTO e p E. una PAHTE. Si supponga che esist_a 11 vmcolo ch: per una specifica combinazione progetto-paite possa essere usato solo on for!utorf: (solo un fornitore fomiscc una parte specifica a uno specifico progetto). In questo caso 1n Figura 4.13. si pone 1 511113 partecipazionc di FURNITURE. e M, N sulle panecipazioni chz PROGETTO, PAHTE. Cio stabifisce i1 vincolo cho una specifica combinazionc (j, p) pub apparire alpia um: volra nell‘insieme di associazioni. Percio ogni istanza di associazione (s, j, p] e mivocamenre idennficam nell‘insieme d1" associazioni dalla sua combinazione (j, p), i1 che rende (j, p) una chiave per l‘insierne di associazioni. In generale, ails partecipazioni che hanno su di
36 esplicitato on 1 non é richiesto di fa: pane della chiave per l’insiemc dj associazionj.16 La': socopda notazione e basata sulla notazionc (min, max} rapprescntata in Figura 3.15 per
assomazmm binarie. Qui un (min, max) su una partecipazione procisa che ogni entith é collega-tta'ad almeno min e 31 pifi a max istanze di associazione nell’insieme di associazionj. Que~ sh. vmcolj non hanno alcun rapporto con la detcnninazione della chiave di un‘associazionc n-
ona. so It > 2,” ma stabiliscono un tipo diverso di vincolo che pone restrizioni sul numero di lstanze di associazione a cui pub panecipare ogni cntitfi.
lo I?
cm e \Iecr'o apche per i rapporli di cardinalita dell: associazionj binarlc. Tunawa :I vmcolo (min, max} puo determinate 1c chiavi per associazioni b'umrie.
Modellazlone Entité—Associazione eetesa e modellazione a oggetti
Capitolo 4
102
4.8
dxlciassflizgzione e istanziazione $0110 uno l’inverso dell’altro, cesi come 1a generaljzzazione
Concetti di astrazione dei dati e di rappresentazione della conoscenza
25:£11m2:31.03;(light:I; cdncett: d1 aggregaeione e associazione sane collegati. Qui si
modem EER . . as art: 6 le [em relaeiom con 1e rappresentazioni concrete usate nel 0 per {:11l 11 processo d1 astramone dei dati e per migliorare la com ren ' de] precesso collegato di progettazione dello schema concettuale. P Slime
alcuni. dei concetti di modellazione In questo pamgrafo verranno esaminati in termini astratti dei modelli ER e BER nei Capitoii azione present nella ato dettagli o descritli in mode pimtost sulla modeliazione concettuale dei 3 e 4. La terminologia adottata e usata sia nella letteratura
rappresentazione della conn— dati sia in quella di intelligenza artificiale quando si tratta la are
4.8.1
nza sono simili a quelli spondere a domande. Gli scopi della rappresentazione della conoscc e diffe— ici, ma 6- possibile elencare aicune importanti somiglianze
I] precesso di c_ia_ss_ificazione compona un’assegnazione sistematica di oggettifentita simili a class: d1 oggettiltipi di smith, rispettivamente. E possibile descrivcre (nelle basi di dati) o Iagienaee e11 (nelle rappresentazione della conoscenza) classi piuttosto Che oggetti sin oli Col lezmni d1 oggett: coridividono gli stessi tipi di attribuzi. associazioni e vincoli e u-amifc la: clas: s1ficaf10ne dz oggem si samplifica i] processo di scoperta delle loro propriei‘a L’istanziazi ne e I pppo'stoldella classificazione e si riferisce alla generazione e all’esame epecifico di 0-
tecniche KR e quello di svilupp scenza (knowledge representation, KR). Lo scope delle discorso tramite la creazione di del o concetti per medellare accuratamentc un certo domini ia e poi usata per immaontolog Questa . dominio del i concen i un'ontologia'a she descrive i o sempficemente ri— decision e gazzinaxe e gestire conoscenza per tram: conclusionj. prender
dei modelii d1" dati semant renze tra 1e due discipline.
a comuni e aspetti im0 Entrambe usano un processo di astrazione per individuam propiiet po per climinare contem me] 6 mini—mondo [dominio del discorso)
portanti di oggetti nci differenze insignificanti e dettagli ininfluenti. linguaggi per dcfinire dati e rappreo Entrambe forniscono concetti, vincoli, operazioni e sentare conoscenza.
pit ampia dei modelli di La rappresentazione della conoscenza ha generaimente pottata ntaze forms diverse di conedati semantici. Negli schemi KR (KR schemes) some rapprese nza incomplete e per conosce , ricerca) e ne scenza, come Iegole (usate in inferenza. deduzio via via espansianno dati di basi di modelli l . spaziale e le tempora difetto e conoscenza dendosi per includere alcuni di questi concetii.
0
che deducono faiti aggiunti— o Gli schemi KR comprendono meccanismi di raginnamento r pane degli attuali si— maggio 1a mentIe Percib. dati. (11 base una in izzati vi dai fatti memor i sistemi basati sulla dirette, azioni interrog stemi di basi di dati si limitane a Iispondere a che compottano inazioni interrog a ere rispond o posson KR conoscenza Che usano schemi
gia delle basi di dati. sta per essere ferenze sui dati memorizzati. Aimalmente 1a tecnolo estesa con meccanismi di inferenza.
sulla rappresentazione di sche- Mantra la maggior part: dei modelli di dati si conccnuano mescolano schemi can istenspesso mi cli basi di dati, o meta-conoscenza. gli schemi KR comporta inefficienze spesso Cib ni. eccezio entare ze per femire flessibilite nel rappres
quando vengono confrontali con quando gli schemi KR sono implemented, specialmente quantita di dati (o fatti). gran una basi di dati e quando e necessario immagazzinare
di dati semantici, come ‘11 moQuatlro sono i concetti di astrazione usati eia nei modelli zione, {2) identificazione. (3) istanzia dello BER, sia negli schemi KR: {1) classificazione e zione. I concetri accoppiati associa e zione aggrega (4} e e, specializzazione e generalizzazion
“3 ......_....;
103
can pie canoseenza, regele ed eccezioni. Un‘omoioflg e sane molti aspeui simjle e um schema concenuaie, ma m.
.5;
EMU“.
.:
I...
).
i;
I-_'
-
..
Classificazione e istanziazione
gettidisnnn di una claese. Percit‘) un’istanza di oggetto é collegata alla sua clas d' 03: (ran-nit: I’associazienc E-lJl\I’IS'I‘A1NlZA-DI.lg 56 1 Oggem
cumliggggflgig oggem di una claese dowepberp avere una struttura di tipo'simile. Per?) algem della (5:556. :11? IEOSIIBICI pregame-t2 fhe dif-fenscono per cent aspetti da quelle di aim" ogconsemoflo 6086501; c'guesti oggetn d eceezlone devono essere modellati, e gli schemi KR . applicano ana Classe 0511“ vanate nspetto a1 inpdelii di basi di dati. InolIIe cene propn'ete 51' 3:3 Pmpfieté ai Classe-me a un rum: 6 mm 81 smgoh oggetti; gii schemi KR consentono qua-
101-0111133333? bEaESE. é:1:232:23:I51:1asstfifatelin tlijjiai di smith secondo 1e lore proprieta e la
_ . . . . . ormcn e c ass' cate in sottociassi e cate orie uiterliontiiomiglian'ze. e dflererge (eccezioni) csistenti fra loro. Le istanze di esgsociafzjiatflzlfsl:1If no c aes: cate 1n iipi d1 assomazmne. Percib fipi di entire, sottoclassi catcgoric e 11‘ i d' somazwne edsntuiscono i diversi tipi di ciasse nel modello ER. 11 riiodello ER :on 1 as~ temple esphcflamente propriete di classe, ma pub essere esteso per fare cit). In UML gig: . . ‘ ' ' getti sono classificati in classi classe 5121 oggetfi
. ed a possflnle rappresentare Sla propneta d1
singolj.
Ha I Eofidelll c111 rappreseiitwone della conoscenza consentono pifi schemi di classificazione . :1 11113. c asse e131: {stanza dl un‘altra classe (detta meta-classe). Si noti che cib non at) $21!;rappresiantato direiiamente nel niodello BER, perché si hanno 5010 due fivelli _ clasii e dasse 531:: Etnagitflmtipe #:5112153 nel Ipotiello BER e I’associaziene superclasselsoitopresm‘tata dir n ec emi un'asspmazipne aggiuntiva classefistanza pub essere rap_ e amente 111 um grumble (31 0121531. Un’istanza pub essere essa stessa un’a‘lfisa
asse, consentendo cosl schemi di classificazione a livello multiple.
a .
"
I diegmmmi UML cens-entono una forma di istanziazione permenendo In re ppresentazione gi'afi gem. Qpeeta mattensuca non e perb stain descritta nel Paragrafo 4.6. ache: diagram: UM; consentono la specificazione dl prom-feta di classe. I
'
I
"'-1
‘ ..
""3 h'-.---
I?"
:5'
fi
-'
“—4
-w
MM
.. .
1 i
Modeflazione Entita-Asseciaziene estes'a e modellazione a eggetti
4.8.2
ldent‘rficaziene
tti some resi unjziene per mezzo del quale elassi e ogge L’identificazione e il precesso di astra di ciasse idennome an identificatore. Ad esempio, vocamente identificabili grazie a un certe distinguere per e anism mecc or-e ulteri un E necessario tifica univecamente un’intera classe. iduare maindiv ssarie tificatori d1 oggetti. Ineltre e nece istanze di eggetti distinti tramite iden pio, pub esem Ad . reale e mend del tto delio stesso ogge nifestazioni multiple, neiia base Eli dati, relaziene PERSONA e
e, 6I0618, 376-98215 in una capitare di avere una tupla CS, 36,
un'altra rupla 60164-08 ti due oggetu' (tumode di identificate i1 fatte che ques entith del mende reale. Non e‘e alcun prevvede a! mo~ si non stessa entita del mende reale se ple} della base di dad rappresentane 1a questa idenentire cons per te opria mento incrociate appr meme delta progetmziane a un riferi i: livell due a a ssari e nece tificazione. Percie l’identificaziene
i della base di dati; per disfinguere gli oggetti e le class
i del mende di dati e per collegafli ai lore equivalent 0 per individuare git eggetti della base
0
105
Capiteio 4
104
reale. un sistema di nedei costmtti delle schema e basata su Ne! modello BER 1' identificazione una settoclasse, ogni ciasse —.sia essa un tipe di entita, mi univoci peri cestrutti. Ad esempie i attributi di degl i nem I to. ene - deve avers un meme distin una categoria e an tipe di associazi identificaper le rego defile e ssari neee e distinti. Sono aneh una data classe devene pure essere specializdi rchia gera non-1e di attribute in un reticeio e re senza ambiguita i riferimenti a on zazieni e generalizzazieni. ziene Ira enuti chiave sone usati per fare una distin A livello di oggetto, i valeri degii attrib te da una tifica iden some a entit 1e . Per tipi di entita deboli, tita di un particelare tipe di entita a proprietari. a entit di tipi dei a. entit delle e iali chiavi pazz cembinaziene dei valor-i delle lore cembinazione del— ciaziene some identificate da una certa asso di ze istan Le late. corre sono cui cardinalita specificato.
del rapperte di ie entita che ease ceiiegano, a seconda
lizzazione 4.8.3 Specializzazlene e genera ificazione di una classe precesse che censiste nella class Per specializzazione si intende que] esse inverse. che cenpreC il azione e
ate. La generalizz di oggetti in setteclassi pie specializz le, cite compren— i in una classe astratta di pie alto livel class e eres num siste nel generaiiazare nto concettua— ame ciassi. La specializzaziene e um raffin da gli oggetti presenti in tutte queste usate 1e setsone BER elle s' tesi concettuale. Nel mod 1e, meets 1a generalizzaziene a one 11a one sete zien ocia Uass e. azion ralizz gene azione e la toclassi per rappxesentare la specializz o sem— E-DI ASS OCL OTT ene e nota come E-UNA—S teclasse e la sua superclasse asseciazi
piicemente associaziene E—UN.
4.8.4 Aggregazione e associazione Erggdgarfigamonee un ooncetto di astrazione che censente di costruire oggetti composti a a: so in 151;?n che h cempengene. Ci sono tre casi in cui questo concerto pub essere agesn-jbuti dj III :2::2:(311951038110 EEIR. Il prime case a quello in cui si aggregane i valori di at . . . or on'nare . . intero. [l secendo case si e senta uand ' ’eggetto page??? assoctazmne d1 aggregazmne come un’associazione ordirtpgria. Il tgrzo c2321 r1:1)J Siam ctputt o eIspllcnamente dal modello BER. prevede Ia possibilita d.i combinare eg etti chn . menu Giggle d; 1:3 paroceIlaIe Istanza di associaziene in un eggerro aggregate digpifl air: so essém CDIIEuatc e voita utile quando l’eggetto aggregate di pin aite iivello deve esse stes— aggregam smgn 2: an alt}: I(IJIiIgette. L’ associazione tra glj eggetti primitivi e il lore eggette 0 I come - A-PARTE-DI. , l’asseciazione in versa 5 detta E-U ‘ POESNEEDDI; UMLIcerIrtempla tutti e tre i tipi di aggregaziene. N COM panda“: er 2:; I: aIssoclamoneI e usata per associate eggetti prevenienti da pie classi indideuo .. p Itetpaetépste smule a1 secondo use dell’aggregazione. E rappresentata net me
BER atrann 1p1 asseciaziene e n 1 modeiie UMl. trami te legatm.' Questa assoclazio— I ma asuam datae EASSOCIATocoNe ' A]
o
.
.
.
.
I
‘
defi 101352;:£11115;nugitore cemprenstene der diversi usi possibili defl'aggregazione si consim sostenufi da drilestrato m Flgara 4.I 16(a), che contiene infermazieni su celloqdi di lavetribmj (0d oggeffloiau mergeINrat-1e azrende. La classe AZIENDA e un‘aggregazione degli at ponen 1 omeA (Home azienda) e Indiri A ' ' ' ' Ire CANDIDATE) e on aggregate di Ssn , N ome, Indmzze ' ' (Indmzzo e Telefe13° Glj ' 'agenda), ' ' men' ne so NemeCentatto e TeiefenoContatt . I . . . o rappresentane i1 nome e iI110numero“11131111 d‘1telefone 61 3550013110d c1:1;atllczmergia responsablle del coilequle d1 lavore. Si supponga che alcuni colloquiligfe: Per associafl: 601': ch lavero e altn no. Si vertebbe qui trattare COLLOOU IO come one ciasse .3350 fiChIEde ah FEIi‘IIA_LAVORO. Lo schema mostrato in Fi-gura 4.16(b) e sbagfiate pcrché SDta mow; eIoglgit tstaflza dell’asseciaziene colloquio comporti un'offerta dj Iavere Lo .. . . em . . 1guta , . .16(c) non e consentite , perché 11 ' modell E . crazttIIem fra assectazmm (11 modelle UML. invece. Ie censente} 0 R I10“ commie 8550alto Iflgfiedo per rappresentare questa situaziene é quello di create una elasse aggregata di i1) FEBTA Svatgpggflfa AZIENDA, EEANDIDATO e COLLOOUIO e di collegare questa ciasse a OPF I .335m _ In quesm lib“) . non in igura 4.1601) . Sebbe no 1'I modelle BER, per come E statemestrate IIII . . questa possibilith , alcuni mod e 1 11' semantltn , . censenta ' ' (:11' da '
HiggiflerhgdCManI-itano I oggetto nsuitaate eggette cemposto e melecelare Altri medial]: I eumormeitiidjentita 3mm fia assodaflonj (Figum 1160) e 1'ti' 131 ch' assectazmne ‘ ‘ e per-ole ‘ pennettone . assocra— '
. . . Per pgiméscnm CoIrrettamente questa sttuazwne neI modello ER, cesi come esse é 513:0 descrittga q , necessane creare un nuove tipo di entita debole COLLOQUID. come mestrate je ' I' ' I Fi m$::fiiff:)s’ifil:zorml'aflj a OSFEHTJLLAVOHO. Percie si pub sempre rappresentare eel-rattaromne moeoERtramitelacreazion di ' 'di ‘ ' " "9e pub essere concettuahnente pm ' destderabtle ' ' consentire 8una“Pl 31' ' d‘ ' t 38311111“: rappre6111333 . senIazmne cejEma ' ‘ ' fra assoctazieni ' assoc1azrom 4_16(c)_ cemeinFi gnra 4.1601). 0 consent-ire ggregazmne um La
.
.
.
.
-.:.'
'
pnncrpale daffercnza strutturale tra aggregazwne e asseciazione e che, quandeuttt
106
Medellaziene Entité-Asseclaziene estesa e modellaziene a egget'tf
Capitele 4
107
stanza di associaziene viene cancellata. gli eggetti partecipanti pessene continuare a esistere. Pei-e. se si suppozta la neziene di oggetto aggregate - ad esempio, un’AUTOMOBILE che a: costituita dagli eggetti MGTORE, TELAIO e PNEUMATICI - ailora la cancellazione dell’eggetto ag~ gregato AUTOMOBILE equivale alla eaneellaziene di tutti i suoi oggettj componenti.
Sommario
{a}
In queste capitole abbiame prhna di tutto studiate aleune estensieni dei modeilo ER che aumentane 1e sue pessibflita di rappresentaziene. Abbiame chiatnato i1 modelle risultanle medello ER—esteso e modelle BER (enhanced-ER}. Sono stati presentati i1 cencetto di setteclasse e relative: superclasse e i1 correlate meccanisme di ereditarieta di atoibutifasseciazieni. Abbiame visto come sia talora necessarie creare classi aggiuntive dj entita, e per la presenza di attributj agginntivi specifici, e per la presenza di tipi di asaeciaziene specifici. Abbiamo esa— minato due precessi principaii di definizione di geraxchie e reticoli di superclassifsotteclassi — la specializzaziene e la generalizzaziene. ' Abbiame poi mesh-ate come rappresentare g-raficamente questi nuevi cestruttj in un dia-
CANDIDATO
AZIENDA
gramma EER. Abbiame anche esaminate i vari tipi di Vinceli che si pessene appiicare alla specializzaziene e alla generalizzaziene. I due vineeli principali sono tetaiefparziale e di' sgiuntafsevrappesta. Inoltre pub essere specifieate un predicate di definizione per una setteciasse e an attribute di definizione per una specializzazione. Si sono quindi discusse 1e differenze tra setteelassi definite dall’utente e sotteelassi definite tIarnite un predicate, nonché tra
{d} CANDlDATO
specializzazieni definite dail‘utente e specializzazieni definite trainite un attribute. Infine abbiame studiato il concette di categoria, che a un sottoinsieme dell'unione di due 0 pit! classi, e abbiame date definizieni formali di tutti i cencctti presentati. Si .3 poi introdetta la netaziene e Ea ternfinelegia del linguaggio universale di medeliazie-
ne {UML: Universal Modeling Language). che e sempre pill usate nell‘ingegneria del software. Abbiame quindi esaminate brevemente 1e semiglianze e 1e differenze tra i cencetti, 1a no-
OFFERTA_LAVORO
taziene e la terminologia UML e BER. Abbiame anche discusse alcuni dei prehiemi riguar-
danti 1e differenze tra asseciazioni binarie e asseciazioni 61' grade pifi elevate. in quali Circestanze ognuna di ease dovrebbe essere usata quande si pregetta uno schema concettuale. e come pessano essere specificati tipi diversi di Vinceli su associazienj nuarie. Nel Paragrafe 4.8
abbiame brevemente studiate 1a diseiplina di rappresentaziene della conoscenza e come essa é collegata alla modeliaziene semantica di dati. Abbiamo anche femito nna visiene d‘insieme
8 un sommario aui vaIi tipi di cencetti di rappresentaziene astratta dei dati: classificazione e istanziazione. identificazione. specializzazione e generalizzazione. aggregazione e asseciazio-
ne, e abbiame viste come i concetti EER e UML sene collegati a eiaseuno di questi. ‘ . (b) Insarlmanto di OFaziene. (a) ll tipe di asseclazlone COLL ooum lt'a :83:::|::::;rg-$V:Efi 21:33 ).1t(rc3 iterrate aziene ternarle Figure 4.16 :Efiazflsgflgein Engage: di associ ette cempeete {molecu— 1e. partac pa un'a d! [m _ tramtte‘ i ' use dl un ’ assoclazmne alla qua ‘ egg 9 azlene aggreg deti al modelle ER}. (C!) Use ta eat me cerret ziena esenta Flappr (3) ER). le model fafeir}:gtaflnoepe cie non é censantlto nel I
"9
S
Duestienario cli verifies: Cos’e una sottoelasse? Quando e necessaria una sotteciasae nella medeiiaziene dei dati? _ M: 1;“; -
_ .4
_____..
L__
L_H__
.
_
__ ‘ H'H"
‘-"-‘-—--
w... a“;
Modellazione Entita-Associazione estesa e modellazione a ogget’ti
109
Capitolo 4
108
una sortociasse, associazione superSi definiscano i seguenti termini: superclasse di alizzazione, categoria.
4.2.
lizzazione, gener classe/sortoclasse. associazt'one E-UN, specia che. specifi i azt‘on associ arm‘buti specifici (locaii).
4.3. 4.4.
4.5.
4.6. 4.7. 4.8. 4.9.
-
tifassociazioni. Perché ‘e utile‘? Si esamini i1 meccanismo di ereditarieta di attribu definite tramite un predicato, e si quelle e tente Si trattino 1e sottoclassi definite dall’u _ lassi. identifichino le differenze tra questi due tipi di sottoc te, attribu un e tramit te defini queue e Si trattino 1e specializzazioni definite dall‘utente
tipi di specializzazioni. e si identifichino 1e differenze tra questi due specializzazione e generalizzazione. su li vinco di pali princi tipi due i Si esaminino lizzazioni e no reticolo di specializza— specia di hia Qual e la differenza tra una gerarc ' zioni? maeviden non noi é Perch zione? alizza gener Qua] a la differenza tra specializzazione e a? mo questa differenza nei diagrammi di schem ls sottoclasse condivisa‘i' Per cosa e usata norma una da ria catego una sce differi In cosa tuni esempi. oppor con una categoria‘? Si illustfi 1a risposta
ni il termine corrispondente nel model— 4.10. Per ciascuno dei seguenti termini UML si esami alizzazt’one, molteplicitd,
gazione, gener 10 BER. se esiste: oggetto, classe, legume. aggre a‘i collegamento, Iegame riflessivo. lete attribu ta. amen attributi. discriminatore, colleg game qualifimm. notazione per i diagrammi di schema BER e . Si csaminino 1e differenze principali tra 1a ntartdo come some rappresentati nei due queiia per i diagrammi delle classi UML, confro . . . . . . . casi i concetti comuni. t illustr s1 e . vincoli su assoctazmru n-ane Si esaminino 16 due notazioni per specificare una. ciasc di use il possibile dati e i eon-ispondenti concetti di modella. Si clenchino i vari concetti di astrazione dei zione del modello EER. nel modello BER? Come pub essere ulte. Quale caratteristica di aggregazione manca
riormente esteso i1 modello EER per supportarla? tetistiche comuni tra 1e tecniche di model. Quali some he principali differenae e carat tecniche di rappresetttazione delia cono1e e lazione concettuale di time base di dati scenza?
Esercizi ione di basi di dati a cui‘si a interessati. Si 4.16. Si progetti uao schema BER per un’appiicaz base di dati. C1 st accent che
sussistere nella specifichjno tutti i vincoli che dowebbero . quattro tipi di associazione. un npo d1 en— entita di tipi e cinqu o lo schema abbia almen lasse, una categoria e um tipo di associatita debole, un’associazione superclasselsottoc zione rt—ario (rt > 2). tenet Figure 3.17, e si supponga che sia necessario 4.17. Si consideri 1o schema ER BANGA di I_00RRENTI. ...J c PHESITI_HISPARiflIO. CONT traocia di diversi tip't di CONTI (DEPU
...). Si supponga che si desideri anche tenetSTITI (PHESTITLAUTO, PHESTITLCASA, nti, aaioni di ogni conto (depositi, prelevame traccia (tramite TRANSAZIONE) delle trans
assegni. ...) e (tramite PAGAMENTU) dei pagamenti di ciascun prestito; sia 1e transazioni sia i pagamenti comprendono l‘importo, la data e l’ora. Si modifichi lo schema BANCA usandoi concetti ER e EEK di specializzazione e generalizzazione. Si enunci espiicita— mente ogni assuuzione fatta riguardante i requisiti aggiuntivi. 4.18. Il seguente resoeonto descrive una versione semplificata dell’organizzazione delle strutture olimpiche progettate per le Olimpiadi di Atlanta del 1996. Si disegni un diagramma EER che mosh-i i tipi di entita, gli attributi, le associazioni e 1e speciaiizza—
zioni per questa appficazione. Si enunci esplicitamente ogni assunzione fana. Le strut-
ture olimpiche souo distribuite in compiessi sportivi. I comples si sportivi si suddividono in compiessi per un solo sport e complessi palirportivi. I comp‘lessi polisportivi
hanno aree intcme destinate a ciascuno sport con un indicatore di collocazione (ad es .,
centro. angolo-NE ecc.). Un complesso ha una collocazione, un organizzatore capo, un’area totale occupata e cosi via. In ogni complesso e tenuta una eerie di eventi (ad es. nello stadio di atletica possono tenersi molte gare diverse). Per ogni evento c’e una data prevista. ana durata prevista, un numero previsto di partecipanti, un numero previsto di giudici eccetera. Sara tenuto un elenco di tutti i giudici insieme con la lista di eventi a cui partecipera ciascun giudice. E necessaria un’am‘ezzatura diversa per gli eventi (ad es. pa]i delle porte, aste, parallels), come pure per ia manutenzione. I due tipi di struttura (per un solo sport e poiispom'va) avranno tipi diversi di informazioni. Per ciascun tipo di struttura si memorizza il numero di servizi necessari, insieme a on
budget approssimato.
4.19. Si individuino tutti i concetti importanti rappresentati nei caso di studio della base di dati biblioteea sorto descritto. In particulate, s't individui l'astrazione di classificazione (ti-
pi di entita e tipi di associazione), aggregazione. identificazione e specializzazionelge— neralizzazione. Si specifichino i vincoli di cardinalita (min, max), quando possibile. Si elenchinoi dettagli che incideranao su un future progetto. ma che non hanno alcun rapporto con la progettazione concettuale. Si elenchino separatamente i vincoli semantici. Si disegui un diagramma BER della base di dati biblioteca. ha Case di Studio: La Biblioteca Tecnica della Georgia (GTL: Georgia Tech Library)
approssimativamente 16.000 soci, 100.000 titoii e 250.000 voiumi (ossia una media di 2,5 copie per libro). In an generico istante circa i1 10 per cento dei volumi e fuori in pre—
stito. I bibliotecari cercano di garantire che i libri siano disponibili quando i soci vogliono prenderli a prestito. lnoltre i bibliotecari devono sapere in ogni istante quante copie di ciascun libro ci sono nella biblioteca o sono fuori in prestito. E disponibile in 1i-
nea un catalogo di libri che elenca i libri per autore, titolo e soggetto. Per ciascun titolo presente nella biblioteca si tiene nel catalogo una deserizione del libro, di dimensioni che vanno da una Erase a molte pagine. Ibibliotecari addetti alla consultazione vo-
an un gliono poter accedere a questa descrizione quando i soci richiedono informazioni libro. Il personale deila biblioteca a diviso in bibliotecario capo, bibliotecari associati dipartimentali, bibliotecari addetti alia consultazione, personale di controlio e assisten-
ti di biblioteca. I libri possouo essere tenuti in prestito per 21 giomi. Ai soci e consentito avere in prestito solo cinque libri alia voita. I soci di solito restituiscono i libri nel
pri— giro di tre o quattro settimane. Molti soci sanno di aveie una settimana di preroga finiche prima libro ii restituire di ma che venga loro irwiato un avviso. percio cercano
sca il periodo di proroga. Al 5 per ceuto circa dei soci devoao essere inviate lettere di
110
Capitelo 4
sellecito perehé restituiscano i1 libro. La maggier pane dei Iibri con prestite scadute viene restituita entro an mese dalla data devuta. Approssimativamente il 5 per cento dei libri con prestito scadute viene ulteriormente trattenuto e addirittura non e mai pie restiruito. Soci pin attivi della biblioteca some definiti quelli che ricorrono a] prestito almeno dieci volte l’anne. L’l per canto pie attive dei seci effettua il 15 per cente dei pre— stiti, mentre i1 10 per cente pii‘l attivo dell’insieme dei soci effettua i1 40 per eente dei prestiti totali. Circa il 20 per cento dei seci e totalmente inattive, nel sense che some so-
ci ma non ricerrene mai 33 prestito. Per diventare secie della bibliotecai candidati Iiempiene un module che richiede il lore SSN, indirizze postale a1 campus e di casa, non-
Modellazione Entité-Asseclaziene estesa e modell azione a eggetti
3'11
o Gil eggetti d’arte seno anche classificati come di COLLE ZIONE PERMANENTE che seneo uellj posseduti dal museo (che ha infermazieni suila Datajkcquisto
suI 'fatto che sra InMestra o in magazzine. e sul Coste) o PRESTATO, che ha firforma’zieni sul— la lCellezrene (da cui e state prese a prestito), DataPrestite e DataRestituziene u 611 oggettr d‘arte hanno anche infermazioni che
descriveno il lore paesefctilnrra usande mfonnazieni su paeselculnrra d’Origine (italian e, egiziane americane indrano ecc.). Epeea (Rinascimente, Medema, Antica see). i . o [l museo fiene traccia di inforrnazioni sull’AR TISTA, se note: Nome. DataNascita DataMerte (se 11011 e vivente), PaeseOrigine, Epoca, StilePrincipale, Descrizione Si
ché i lore numeri di telefene. Dope di CR) 1 biblietecari rilasciano una tessera numerata. leggibile da una macchina, con la fetografia del socio. Questa tessera e- valida per quattre anni. Un mese prima della scadenza delta tessera viene inviate a1 secio un avviso per il rinnevo. I prefesseri dell‘istitute sene autematicamente censiderati seci.
e E organizzata pie di una ESPOSIZIONE. egnuna delle quail ha un Nome. una Data!3:121:52,1:51:22?! ed e cellegata a tutti gh eggett i d’arte che sene stati esposti du-
Quando un nuevo membre del cerpe decente entra a far pane dell‘istitute, 1e informa-
o
zieni a let relative sene prelevate dal record degli impiegati e una tessera della biblioteca viene inviata a1 sue indirizze nel campus. Al professor-i e cencesse di tenere i libri in prestite per periodi di tre mesi, con un per-lode di prerega di due settimane. Gli avvisi di rinnove rivelti ai professed sene inviati all‘indirizze del campus. La biblieteca non presta alcfini libri, come ad esempie libri di censultaziene, libri rat-i, e cane geo— grafiche. I biblietecari devene distinguere fra libri che pessene essere prestati e lihri che
non pessene essere prestati. ineltre, i biblietecari hanne un elence di libri al cui acquiste seno interessati rna che non pessene ottenere, come ad esempie libri rari e esauriti, e un elence di libri che sene stati persi o distrutti ma non sone stati sostituiti. I bibliotecari devone avere un sistema che tenga traccia dei libri che non possone essere pre-
stati. nenché dei libri a1 cui acquiste sene interessati. Alcuni lihri pessene avere lo stesse titele, e pertante i1 titelo non pub essere usate come one strumente di identificaaie— ne. Ogni libre e identificate dal sue cedice ISBN (International Standard Book Num—
ber: numere intemazienale standard per libri), un cedice univeco intemazionale asse— gnate a tutti i libri. Due libri con lo stesso titelo pessone avere diversi ISBN se seno scritti in lingue diverse e hanne diverse rilegature (cepertina rigida o pieghevele). Le varie edizieni dello stesso libre hann'o diversi ISBN. 11 sistema di basi di dad preposte deve essere pregettate per tener traccia di seci. libri, catalege e attivita di prestite. 4.20. Si proget‘ti una base di dati che memorizzi informazioni per un museo d‘arte. Si supponga che siano stati raccolti i seguenti requisiti. 0 I1 musee ha una cellezione di oggetd d’arte. Ogni OGGETTO_D 'AHTE ha un NumId universe. un Artista (se note), 1111 Anna (in cui a state create. se note}. on Titolo e una Deserlziene.
o Gli eggetti d’arte some classificafi in base at lore tipe. Ci some are tipi principali: DI « PINTO, SCULTURA e STATUA. pi!) un altro fipe detto ALTRO per accegiiere oggetti che non ricadeno in one deal tre tipi principali. . 0
Un DIFINTD he an 'I‘ipePittura (elio, acquerello ecc.). un materiale sul quale e sta-
a
te Stese (car-ta, tela di canapa, legne ecu). e um Stile (modemo, astratto ecc.). Una SCULTUHA ha un Materiale con cui e stata creata (legne, pietra em). un‘Altez— za, an Peso B into Stile.
Un eggette d’arte nella categoria ALTHD ha un Tipe (stampa, fore ecc.) e une Stile.
suppene che i1 Nome sia univoce.
I
:81 tengene infermazieni {tramite GOLLEZIONE) su ale‘e cellezieni con cui il museo mteraglsce; queste infermazieni cemprendene il Nome (univece), i] 'fipe (museo persenale ecc.), 1a Descrlziene, l‘Indirizze, i1 Telefene e la PersonaCentatte attuale:
Si disegm . ' 1m diagram.ma _ di schema EER per questa ap hcazro ' ' ne. Sr' d ' t ' senzlene fatta e che gmstrfichj le scelte di progen azienepEER. 15011 a Ogfll as 4.2]. In Frgura 4.1? e mesh-ate an esempie di un diagra mma BER per la base di dati di un piccolo aereperte pnvate, usata per memerizzare Ie Mormazioni relative agli aeroplanr, ai lore proprietari. agli impiegati dell’aereport o e at piloti. A partire dai requisiti per " questa base di dati some state raccelte le seguen ti infennazieni. Ogni aeroplane he an numero d1 matucola {Mat#], fa parte di uno specifi co tipo di aeroplane [DI TI P0] 6 viene pesto In an hangar specifice [POSTO_IN]. Ogni tipe d1 aeroplane ha u—n numere di medelle {Modelle}, una capacita [Capacita] e an peso [Peso]. Ogni hangar ha un nurnero [Numero], una capacita [Capacita], e un’ubi caziene [Ubicaziene]. La base di dat1 Irene anche tracera dei proprietari di egm' aeropla ne {PUSSIEDE} e degh' impiegati che haene effettuate Ia manutenziene dell’aereplan e [EFFETTUA MANUTENZIONE] 0 rd istanza d1 asseciaziene in POSSIEDE cellega an aeropla ne a unpreprietarie e corn regude la data d1 acquiste [DataA]. Ogni istanza di associa ziene in EFFETTUA MANUE’ENZIONE collega un impiegate a una nota di servizi e {SERVIZIO} Ogni aeroliano e set toposto molte volte a1 servizie di manutenziene; percie e cellegate tramjte [SEHVI: ZIO_AEROPLANO] a un certe numero di note at servizi o. Una neta di servizie com rende come attributi 1a data di manutenziene {Data} , i3 numere di ore dedicate a1 lfvem [Ore] e 11 tipe di Iavero svelte [CediceLavere]. Usiame un tipo di entita debele [SEE YIZIO}
perrappresentare i] servizio su an aeroplane. perche i] numer o di mate‘cola dell aeroplane e usate per identificare una note :11" servizz i . Un proprietarie pue essere e um: persona e un‘azaenda.
Percie usiame una categoria uniene [PROPRIETA HIG] she a an settemsaeme dell’unione dei tipi dj entita aaienda [AZIEN DA] e persona [PERSONA] Sra 1 prion
{PI LOTA] sia gli impiegati [IMP IEGATO] seno settecl assi di PEHSO
NA. 0 : pileta haceme attributi specifici numero di licenza [NamLie] e limitazieni [Limigi]11
egm impregato ha come ate-thud specifici stipen die {Stipendie} e fume
laverato (Tut: no]. Per tutte 1e entita persona nella base cli dau' venge ne memorizzati i dati sul ris eteve numere di previdenza sociale [Ssn]._neree meme ] indiriwe [Inflow-*1} e twp-'_
I
.
I. .,
:= .'
'5;
r”. ’l,
f
I.
£I
f}
Law.
—
1......
L_,_..,
L“..-
1;-
z".
I|_.._...._.
.
i
i.._._.._..,.
'-..—..—._.
s. .—
Modeliazione Enfita-Associazione estesa e modellazione a oggetfi
Capitolo 4
112
. \ "i
113
Bibliografia seiezionata Molti articolj hanno proposto modelli di dati conccttuali o semantici. Qui se me fornisce un elenco rappresentativo. Un gruppo di articoli, fra cui Abrial (1974). i1 modello DIAM di Sanka ' (1975). i1 metodo MAM (Vcrheijen e VanBekkum 1982), e Bracchi e altn' (1976), presenta modelli semantici basati 5151 001166110 Eli associazione binaxia. U11 altro gruppo di articoli, frai prinfi scn'm' sull’argomcnto, esamina metodi per estcndere i1 modello relazionale in mode da
Capaclta —-—
“POJAEHOPLANO
aumentare 1e sue potcnzialita di modellazione. Questo gruppo comprende gli articoli di Schmid c Swanson (1975), Navathe e Schkolnick (1978), i1 modello RMIT Eli Codd (1979), Furtado (1978), e i] modello strutturale di Wiederhold e Elmasri (1979). Il modello ER E state proposto originariamente da Chen (1976) ed E state formalizzato in
@Cfii
@—
N3 (1981). Da allora some state proposte numerose estcnsioni delle sue potenzialita di modellazione, come in Schenermann e alu-i (1979), Dos Santos e altri (1919), Teorcy e altri (1986). Gogolla e Hohenswin (1991), e il modello Entita-Categoria»Associazionc (ECR) di Elmasri c altri (1985). Smith e Smith (1977) presentano i concetti di generalizzazione e aggregazione. 11 modello semantico di dati di Hammer 8 McLeod (1981) ha inlIodotto il concetto di reficolo di classifsottoclassi, cosi come altri conceni d1 modellazione avanzata. Uno sguardo generals sulla modellazione scmantica di dati é presente in Hull 6 King (1987). Eick (1991) esamjna 1a progettazione e 1e trasformaziorfi di schemi concettuali. In Soutou (1998) E: fomita un‘analjsi dei vincolj per associazioni n-arie. L’UML é descritto in
N
dettaglio in Beach, Rumbaugh e Jacobson (1999). 1
PEHSDNA
@wm PIGCOLO AEHDFOHTO. Figura 4.17 Schema EER par una base di dati
memorizzati compregdong game [Notelefonico [Telefono]. Per le enfité azienda i dati ['i‘elefono]. La base (11 clan time anche me}, indirizzo [Indirizm] e numero telefoniw autorizzato a far vglare [FLYOLARE] e E traccia dei tipi di aeroplani Che ciascun pilota
1111 lavoro d1 fnanutenznone [LA— dei tipi di aeroplani su cui ciascun impiegato p116 fax: ORTO d1 Figura 4.17 possa AEROP LO i come 10 schema BER PIDOO
VORA_SU]. Si illustr ND.“ essendo state qm esarmnato coass/are rappresentato con notazicme UM}... (Nora: UML. m questa domanda a nella success» m: rappresentare 1e cattgorie [tipi unions] in fie). catego Siva non E, richiesta 1a trasformazione defie
di Flgura 4.10 possa essere rappresentato 4.22 Si mosh-i come 10 schema EER UNIVERSITA con la notazione UML.
Capitolo 5
Memorizzazione dei record e
organizzazioni primarie dei file
Le basi d.i dati sono fisicamente memorizzate come file di record, che a loro voita sono tipicamente memorizzati su dischi magnetici. 1n questo capitolo c ncl successivo tratteremo i'or-
ganizzazione fisica delle basi di dati e 1e tecm'che per accedere efficientemente ad esse usando vari algoritmi, alcuni dei quak' richiedono strutture dati ausiliarie dette indici. Cominceremo neI Paragrafo 5.1 introducendo i concctti di gerarchie di memorizzazione nel computer e vedendo come essi vengono usati nei sisterni di basi di dati. Ne] Paregrafo 5.2 descriveremo i dispositivi di memorizzazione a dischi magnetici. con Ie loro caratteristiche, e i dispositivi di memorizzazione a nastri magnetici. mentre nel Paragrafo 5.3 on sistema alternative di memo—
rizzazione dati pit} recente detto RAID (Redundant Arrays of Inexpensive [or Independent] Disks: vettori ridondanti di dischi economici [o indipendentil), che fornisce 1111a maggiore affidabilith e migliori prestazioni. Volgeremo poi l'attenzione ai metodi per organizzare i dati su dischi: nel Paragrafo 5.4 tratteremo la tccnica deHa doppia bufierizzazione, che e usata per accelerare i1 recupero di pin blocchi di disco, nei Paragrafo 5.5 modi diversi dj formattazione e memorizzazione dei record di on file so disco e nel Paragrafo 5.6 i var-i tipi di operazioni che
vengono tipicamente eseguite sui record di 1113 file. Presenteremo poi tre metodi primed di organizzazione dei record di on file so disco: record non ordinati nel Paragrafo 5.7, record ordi-
rnati nel Paragrafo 5.8 e record hash nel Paragrafo 5.9. Nel Paragrafo 5.10 esamineremo molto concisamente i file di record misti e altri metodi primari per organizzarei record. come gli alberi B. Questi sono particolannente importanti per
Inemofizzazione di basi di dati a oggetti. Ne! Capitoio 6 esamjneremo le tecniche per creastnnmre dafi ausiiiarie, dette indici, che velocizzano la ricerca e il recupero dei record e che
revedono la memorizzazione di dati ausiliari, detti file di indici, in aggiunta ai record dei 'fij . ' stessi. . .- : I lettori che hanno gih studiato 1e organizzazioni dei file possono limitarsi a dare una ragif _ da scorsa ai Capitoli 5 e 6, o addirittura passare oltre. La Ioro lettura poo essere anch'e riman-.- Q
13"
mm
r",
eta a dopo aver studiato i] modello reiazionale.
" II
1-.
. III?
.;.:: i=1:
.
:2: -
i '3
_' ‘.
.
3
L...__-
a...“
s..-“
LN“,
L.__
,__g_,'
W“
.;
Memorizzazlone del record a organlzzazioni primarle dei file
if?
Capltolo5
116
(Compact Disk — Read-Only Memory: compact disk — memoria a cola lettura), e infine nastu',
5.1
i meno costosi. La capacith di memoria a misurata in kilobyte (Kbyte o 2'" byte), megabyte
lntroduzione
(Mbyte o 21“ byte), gigabyte (Gbyte o 23" byte) e anche terabyte (2“D byte). I programmi risiedono e vsngono eseguiti nelia DRAM. In genere basi di dati permanenti di grandi dimensioni risiedono in memoria secondaries e quando necessario porzioni della base di dati sono posts in. e trascritte da, buffer di memoria centrale. Ora che 1 personal cornputsr e 1e workstation hanno decine di megabyte di dati in DRAM sta diventando possibile caricare un’ampia frazione della base dj dati in memorial csntrale. 1n alcuni casi intere basi di dati possono essers memorizzats in memoria 'centrals (con una copia di backup su disco magnetico}. portando a has! d1 dati in memoria centrale; esse sono particolannente utili in ap— plicazioni in tempo reale che richisdono tempi di risposta sstremamente brevi. Un esempio e costituito dalls applicazioni di commutazione telefonica, che tengono in memoria centrale baI si di dati che contengono inforrnazioni di instradamento (routing) e di linea. Tra la memoria DRAM e il disco magnetico, un’altra forma di memoria, la memoria fla-
’ ame nte ta deve essere fisrc ' ce una base d1' dati' computerizza poall§ me“ orfi DBM La collezione di dati che costituis del supp 1 e o. war ssm soft 11 nece ore. ando olat _ ia dei calc do' memor “' ata so on qualche supporto ‘ memonzz _ elaborare ques ti dati on no or' rscuperars, aggi' ornars ed comprende due categone fo
gemrchia d: memona che morpia del calcolatore forrnano una darnentali.
a-
.
. . comprends support:. d1. memona so cul puo oper gona cate sts Que ls. cipa . Memoria prin unit) del calco— ng essi proc di elaborazione (CPU: central re direttamente l’unitd centrale velocl' rne mo' pm ' ma ‘ entt capt o men 1e e dei calculators . accesso a1. dati. ma he on a lilatore come In memoria centrale . . consents un raptd o di sollto u-i, ris cache. La memoria principals . ' . . . . 1 — ne. azio orizz ::no mitata capacita di mem ::111 0th] hr netici, drsc categoria comprende dischi mag e Mcmoria secondaria. Questa costano meno 121a Idafi naicrta, capa giore mag una te men Questi dispositivi haano solita ne prmcrp e. rto ai dispositivi d1 memonzzazro un accesso pin lento ai dati rispe nte dalla CPU, ma devono tarne diret i orat elab re esse ono , la memoria secondaria non poss , principals. essere prima copiati nella memoria
sh, sta diventando comune, in particolare perché non a volatile. Le memoris flash sono me-
morie ad alta densita e ad alte prestazionj che usano la tecnologia EEPROM (Electrically Erasabls Programmable Read—Only Memory: memoria a sola lettura prograrnrnabile cancellabils elsttricarnente). Il vantaggio della memoria flash risiede nell‘elevata velocita di accesso; lo svantaggio nei fatto che dove essere cancellato e riscritto on intero blocco alla volta.‘ I CD-ROM memorizzano i dati otticarnente e sono letti da on laser; contengono dati preregislrati che non possono essere sovrascritti. l dischi WORM (Write-Once~Read-Many: scri-vi una volta e leggi piil volts) costituiseono una forma di memorizzazione ottica usata per archiviare dati: essi consentono che i dati vengano scritti una volta e letti un numero qualsiasi di volte senza avers la possibilita di cancellarli. Memorizzano circa mezzo gigabyte di dati per disco e durano molto pill a lungo dei dischi magnetici. I juke-box di memorie ottiche usano una schiera di CD-ROM, che vengono caricati nei drive (unita di lettura) su richiesta. Anche se i joke-box ottici hanno capacita dell‘ordine di centinaia di gigabyte, i loro tempi di recupe-
mem:;:zalsrit:;r;e ne d‘insietne dei vari dispositivi di p Si fornira qui innanzitutto una visio come a esarrunare ipals e secondaria, per pct passare
usati per la memorial princ gerarchia di memoria. mente geslite 1e basi di dati nella
5.1.1
positivi di memorizzazione Gerarchie di memoria e dis
ioggffigtgifi:23:01:21.;d; orazione i dati risiedono use; :f3c . _ In on modemo sistema di elab _ . Pl anizzati in erarchia. La memona ma' n ' nast dar a rturt cost e ce velo apacita; 1a memoria .meno stadca (W: gifaEl—lozggzfibzlfcon minorsgc RAM . firuta mde cita onibile con capa maria “Che gnetici ed a sostanzialmente disp one L la memorla cache, costrtutta da A livello dt' memoria principale [M3110 suc— mile] a osa. cost pm) (3-13 ale) oria ad accesso casp fia] Che dinm Random Access Memory: mem ‘Mrr11. a.;‘rlrfli per accelerare l esecuarone dei prog.r1 a cam“ed viene tipicarnente usata della CPU dati . . RAM amic costituita daila DRAM (Dyn cessivo di memoria principals e e rarnrru ls della CPU per memortzzare prog mlstenfi1 Sue forrrisce 1’ area di lavoro principa l 0 d511 a DWe 0 a } B “an tgg in memo1'}. IIIOIia centrale (ma Henlente dalta IDE ‘
. as ' ' nurr' e,' lo svantagginél a dmn ' continua
’
.
_
secondono 1a gen-reg: 1:31; on. A livello di mermnzzazrone confrontata con la RAM stati a d1 disposmvi fonn nella massa
basso costo, che
memoria di prende dischi magnetici some pure
_________se__————— della mod e dell‘alirnemazione. a1 contrario contenuto nel caso d: an interruzion La msmoria volatile perde i1 suo ‘ _..:_ -.... Mum.
ro sono dsll‘ordine di centinaia di millisecondi, e sono quindi sensibilmente pill lenti dei dischi rnagnetici.3 Questo tipo di memoria non e diventato cos} popolare come ci si aspettava a cause della rapida diminuzione di costo e dei rapido aumsnto di capacita dei dischi magneti' ci. [1 DVD (Digital Video Disk: video disco digitale) e one standard recente per i dischj ottici ' che consents da quatlro a quindici gigabyte di memoria per disco.
Infine, i nastri magnefici sono usati per archiviare e salvare grandi quantita di dati. I juke-
box di nastri — contenenti una banca di nastri che sono catalogati e che possono essers carica' automaticamente nei drive psri nastri — stanno diventando popolari come memoria terziarla per conservare terabyte di dati. Ad esempio i1 sistema EDS (Earth Observation Satellite: sa~ ellite d5 osservazione terrestre) della NASA memorizza in questo modo basi di dati d’archivio.
Si prevede che nei giro di pochi anru' molte organizzazioni di grandi dimensioni conside— rerarmo normals avers basi di dati delle dimensioni di terabyte. La locuzione base di dati
Ad csempio i‘INTEL DDZSFOSZSA 5 one memoria flash eon aria capacita di 32 megabit, con una velocitidi ao- - . cesso di 70 nanosecondi e tasso di rrasferimento in scrittura oi 430 KBlsecondo. Le loro velocita di rotnzione sono minori (circa 400 rpm [revolutions per minute: giri a] minutoD e do da lodge a maggiori ritardi di lahenaa e bassi tassi di trasl'erimento (rm 100 e 200 KB a1 secondo}.
Memorlzzazione dei record e organlzzazloni primarfe dei file
Capitelo 5
118
nte, perché 1e camolto ampia (very large database) non pot) pie essere definite. precisame diminuendo; po— stanno costi i e ndo aumenta stanne disco su pacita dclla memorizzazione no dccine di terabyte. u-ebbe pereio essere ben presto riservata alle basi di dati che coutenge
5.1.2
Memerizzazione di basi di dati
i quali devone persistere per Le basi di dati tipicamente memerizzano grandi quantite di dati, 6 1i si elabera ripetutemente. dati ai accede si periodi questi Durante tempo. di periodi lunghi persistene solo per un temCR) 3 in contraste con la noziene di strutture dati nunsimn'e clic delle basi di dati e memopane maggier La me. program del ione po limitato durante l’esecuz ria a disco magnetico, per rizzata permanentemente (e persisremememe) su memoria seconda
le seguenti ragioni:
nte contenute in me— di selite le basi di dati sono treppo ampie per peter essere interame
e
moria eentraie; si verificano metro e le circestanze che causano una perdita permanente di dati memerizzati
la memorizzazione prifrequentemente per la memerizzaziene secondaria su disco che per
di memoria seconmaria; per queste motive ci si riferisce al disco — e ad altri dispesitivi chiamata mespesse e centrale memoria la daria — come a memoria non volatile, mentre moria volatile; inferiore per i! cliil eesto di memorizzaziene per unite di date e di un ordine di grandezza . principale sce che per la memoria ettici, 1 DVD e ijukcB verosimile che alcune delle pie recenti tecnelegie — come i dischi
box di nastn'
-
-
fomiranno valide alternative all‘ use dei dischi magnetici. Inoltre in futum 1e
rispette a quelli debasi di dati pen-acne risiedere, nella gerarchia di memoria, a livelli diversi studiare e capire le prote importan e tuttavia, , memento i1 Per 5.1.1. grafe Sottopara nel scritti posseno essere erpriete e 1e caratteristiche dei dischi magnetici e il mode in cui ifile di dati
ganizzati su disco, per progettere basi di dati reali con prestazioni accettabili.
119
no dei dati per peterle implementare cfficientemente e pereie fornire a DBA e utenti un nu—
mero sufficiente di epzioni. Le spplicazieni tipiche di basi di dati hanne bisegno per l’elaborazione solo di one piece— la pomone alIa voita deIIa base di dati. Tutte le volte che c'e bisegno di una certa porzione dei dati: essa deve essere lecalizzata Sll disco, copiata in memoria centrale per l’elaborazione, e qumdi riscritta su disco se i dati sono cambiati. I dati memorizzati su disco sono organizza— ti come file di record. Ogni record 5 costituito da time cellezione di valori di dati che posseno essere interpreted come fatti relativi alle entite, ai loro atlributi e alle loro associazioni. I record devrebbero essere memorizzati su disco in mode da renderc possibile individcarne efficientemente la cellecaziene egni volta che se me ha bisegno.
C'i sono melte organizzazioni primarie dei file (si vedano i Paragrafi 5.7-5.10) che ale-I terminano come sono collocarifisicamenre sul disco i record di on file, 9 percib come sf pur‘i cccedere ad essi. Unfile heap (heap: ammasso, cumulo) (ofile non ordinate) colloca i record
su dlsce senza un ordine particolare, semplicemente aggiungendo nuevi record alla fine del fi— le, mentre on file ordinate {0 file sequenziale} tiene i record in ordine sulla base del valore di un campe particolare (detto chiave di ordinamente). U11 file hash (to hash: tritare, smiuuzzare) use one funzione hash applicata a un campo particelare (detto chiave hash} per determinare la coilocazione di on record su disco. Altre organizzazieni primarie dei file, come gli albe-
n B, usazce per l’appunte strutture ad albero. Un’organizzazione secondaria, c struttura di accesso ansiliaria, censente on accesse efficiente ai record di 1.11] file basata su campi alternatwr nspctto a quelli Che sono stati usati per l’erganizzazione primaria dei file. La maggier parte di questi esisteno come indici e saranne studiati nel Capitole 6.
5.2
Dispositivi di memoria secondaria
In queste paragrafo verrarmo descritte alcune caratteristiche dei dischi e dei nastri magnetici.
I letter: Che hanuo gm studiato questi dispositivi possono limitarsi a una rapida lettura.
per fare ima coI nastri magnetici sono frequentemente usati come supporto di memoria
scene delpia di backup della base di dati, date che la memorizzaziene su nastro costa ancor
I dati memorizla memefizzaziene su disco. Pete l’accesso ai dati su nastro e piuttoste lento. — e on eperatore un di to l’interven io zati su nastro sono off-line (non in linea); cioe e necessar
si rende— dispositive automatico di caricamento —— per caricare on nastro prime che questi dati a cui si linea) (in on-line i dispositiv sono dischi i contraiio, A} li. disponibi ente effettivam no pue accedcre direttamente in egni memento. imperLe tecniche usate per memorizzare grandi quantite di deli strutturati su disco sono I proget— tanti per i progettisti di one base di dati, il DBA e gli implementatori di un DBMS. tecnitisti della base di dati e il DBA devene conoscere i vantaggi e gli svantaggi di ciascuna dati so one ca di memerizzazione quando progettano. implementano e gestisceno one base di
specifico DBMS. Di solito i1 DBMS fornisce molte epzioni per organizzare i dati, e il pro~ cesso di progettazione fisica di one base di deli prevede la scelta, fra 1e epzieni, delle par-
ticolari tecniche di organizzazione dei deli che meglio si adattano ai requisiti propri dell’apio15““"ne. G“ -'--*:lerne*‘*‘"i di 55 "W's DEM" devono ”hi-“fire le fecniche d5. nrcanizzaz
M
l
(WMMMAJW
5.2.1
Descrizione dell’hardware di dispesitivi a disco
I dischi magnetici sono usati per memerizzare grandi quantita di dati. La pic elementare unite clan su disco e il singelo bit di infecnazione. Magnetizzancle un’area so disco in certi modi s1 pee flarsi‘che essa rappresenti 1m valere di bit di 0 (zero) 0 1 (use). Per codificare 1e infer: remain, I bit sene raggruppati in byte (0 caratteri}. Le dimensioui dei byte vanno da 4 a 8 blt, a‘ seconda del computer e del dispositivo. Noi supporremo che un cerattere sia memoriz— zato m 1111 singolo byte, e useremo i termini byte e cararrere indifferentemente. Per capacitfi _di un disco si intende i1 numero di byte che esso pub memorizzare, che di solite e melto gran" ' ' 1 I
do. I piccoli floppy disk usafi nei microcomputer tipicamente centengono da 400 Kbyte :a. 5 Mbyte; i dischi rigidi per questi elaborated tipicamente centengono da melte cehfinaiei'di ' 5Mbyte a qualche vte; e 1e grosseipile di (ii iii (disk Decks) usate ,nei miniccmpum e mi
W
120
W
L...__..._.:'
.._,_._,
_.
_' “d
-n.-— --
I --
m...»
H.--”
-.- i.
Memorlzzazione def record e organizzazioni primarie dei file
Capltoio 5
121
set-tore (arco dl traocia] (a)
traccia
braccio
alluetora
teatime di Iatturefscrlttura
assa
rolazlone del disco
\
(b) ire sattori due setter! on eettore
(b)
cilfndro dl traces flmmaglnarlo}
organizzazionl a settori di disco . (a) Settorl che sottend one on an olo flssato. b Se ~ Figura 5.2 Diverse _ t ( J g ton che mantengono una densité di registrazione uniforms.
se nelIo spazio. i] concerto di cilindro e importante perché i dati memorizzati in un cilindro possono cssere recuperati molto pin velocemente che se fossero distribuiti Ira cilindri diversi.
moflmento dall'attuatore
are di iettura/scrittura. (b) Una pita di dischi eon Figure 5.1 {a} tin disco 2: singola facela con i'hardw crlttura. Ietturafs di l'hardware
' II numero di u'acce per un disco va da qualche centinaio a qualche migljaio, e la capacité d1 Ciescuna traccia va tipicamente daIie decine di Kbyte fine a 150 Kbyte. Dato cfie una trac613d solito confiene one gram quantitfi di infomazzione. essa viene suddivisa in blecchi 0 setton pill piccoli. La suddivisione di una traccia in settori é codificata nell’hardware sulla fac— cia del disco e non poo essere cambieta. Un tipo di orgarfizzazionc a settori chiama settore una pormone di naccia che sottendc un fissato angolo al centro {Figura 5.2a). Sono possibili moi-
te altre organizzazioni a settori, una delle quaIi consists nell’avere settori che sottendono ana centinaia di Ghyte. Le capacité dei mainframe hanno capacita che vanno da qualche decina
gia migliora. dischi continuano ad aumentare man mauo che la tecnolo di materiale magnetico della forma Quaiunque sia 1a loro capacita, i dischi sono tutti fatti
copertura di plastica 0 di acriiidi sottile disco circularc (Figura 5.1a) e protetto u-amite una solo dei suoi
rizza infonnazioni su uno co. Un disco 6 a singola faccia (single-sided] se memo bi i lati. Per aumentare la capacite entram usati lati e a doppia faceia {double-sided) so some {Figure 5.1b}. che pub comdischi di pile una in biati assem sono di memorizzazione i dischi un di—
e memorizzata sulla faccia di prendere molti dischi e percio molti lati. L’informazione quali ha un diverso
zza.‘ ciascuna delle sco su oil-conference concentriche di piccolo Iarghe Per 1e piie di dischi 1e tracce con 10 star.. (track) traccia detta e ercnza dimnetro. Ogni circonf struttura che fonnercbbero so oonnesla so diametro sulie varie facce sono dette ciiindro per
‘
made do fat-mare um specie di spirale continua. In alcuni dischi 1e circonferenze sono ora collegate. in
goli a1 centro pit piccoli man mano che ci si allontana dal centro stesso. mantenendo cosi una donate di memorizzazione costante (Figure 5.2b}. Non tutti i dischi hanno leitracce suddivise m sattori. La divisione di una traccia in blocchi di disco (0 pagine) di uguale dimensione e fissata ' dal sistema operative dmante la formattazione (o inizializzazione) del disco. La dimensiono
di un blocco e fissata durante l’inizializzazione e non pub essere cambiata dinamicameme. Tipiche dimensioni di un blocco di disco vanno da 512 a 4096 byte. Un disco con settori codificati nell‘hardware ha spesso i settori che'vengono suddivisi in blocchi dusrante l’inizializza~ none. I blocchi sono separati da spazi tra blocchi (interblock gaps) di dimensioni fisse, che comprendono informazioni di coutrollo codificate appositamente, scritte dutante l‘inizializzaEzione del disco. Queste informazioni sono usate per determinate quale blocco della traccia se- - :giie ciascuno spazio Ira blocchj. In Thhella 5 .1 50110 rappresentate Ie specifichc di un disco - 3 co. Co on continue miglioramento nella capacita di memorizzazione e nei tassi di waste mento assocxatl 31 dischi; 1a memorizzazione so disco sta anche divamando via via pifi'ec
Memorizzazione dei record e‘organizzazloni primarie dei file
Capitolo 5
122
dalla Seagate. Tabella 5.1 Specifiche del upici dischl di fascia alta Cheetah. prodottl
one 05323:; modalio Nome modello Fattore oi forma {Isrghena} Peso ntertaccia ' 038232;; fonnattato Tipo di intertaccia Configurazlone
Numero di dlschi {fisict} Numero d1 testine {tlsiche} Citindri totall (solo SCSI) Traces totaii [solo SCSI} or settore BDEIse dalle traces (1131) Densita d1 registrazione (BPt. max) Prestazioni Tassi di trasferirnanto Tasso di trasfedmento intamo (min) Tasso di trasferimento Interno (max) Tasso di trasterimento int.. formattato {min} Tasso di trasiaflmento int. formartato (max) Tasso di trasierimento esterno {I10} (m) Tempi oi posizionamanto Tempo di posizionamento medic. Iettura
ST138403LC Cheetah 30 3.5 pol'lici 1.04 kg
ST318203LC Cheetah 10L? 3.5 oofiic: 050 kg
36,4 Gbyte, formattato 80-pin Utter-2 SCSI
18,2 Gbyte. formattiato 80—pin Uflra-2 SOS
12 24 9172 :3
E 12 9001 $2612
MIT) traccet’poflice NED bittpoilice
193 101m 308 Mbitisec 10 Mbifisoc 28 Mblta'sec 30 Mb'ltfsec ‘ 5.? msac, tlplco
_ 12580 traccefpclhce 253048 bttr’polllce
193 Mbiflsec 308 Mbrhisec 1B Mbitfsec 28 Mbltfsec 80 Madison
_ 5.2 msec,_ tlpico 6 msec. ttpico
6.5 msec. tlpico
0.6 msec, tiplco
0,6 mean. ftplco
Posizionamento da tracc‘ta a traccia, scrittura
0.9 msec. tiplco
0.9 msec. ttplco
Posizionamento su traccia esterna, scrlttura Latenza media
13 msec, ttpico 2.99 msec
Posizionamento su traccia esterna. lattura
Mire Dimensions :11 default del buffer (cache) Ve1ocite di rotazione deli‘asse Tasso d1 encore non riparebile Errori di posizionamento {SCSI}
12 m5ec.t1pico
1024 Kbyte 10000 RPM 1 ogni 10‘5 bit letti 1 ogni 108 bit lett:
L’effettivo meccanjsmo hardware che legge o scrive un blocco e la testina di letturalscrittura. Che fa parte di un sistema detto unité disco (disk drive). Ufl disco 0 one. pila di dischi sono inseriti nell'um'ta disco, che ha un motore che fa ruotare i dischi. Una testina d1 letturafscrittura e costituita da un componente eiettronico fissato a un braccio meccanico. Le pile di dischi con pill facce sono controllate da molte testine di letmrafscrittura — mm per ogni faccia (Figure 5.1b). Thttii bracci sono collegati a un attuatore unito a tin altro motore elettrico.
Tempo di poslzjonamento medic. scrittura
Pesizionamento da traccia a tracoia. lettura
123
12 msec.iip1_co 13 msec, tlplco 2.99 msec
1024 Kbyte tti 10010 HFE 1 ognt 10 time 1 ognt 10“ bit lettl
che muove 1e testine di letturalscrittura all’unisono e 1e posiziona esattomente sopra il oilindro d3 tracce specificato nell‘inditizzo di un blocco. Le unita disco per i dischi rigidi fanno ruotarc la pila di dischi ininterrottamente a una ve— locita costante (compresa tipicumente Era 3600 c 7200 rpm). For no floppy disk i'unita disco inizia a far ruotare il disco ogni volta che viene dato inizio a una particolare richiesta di lettura o scrittura e cessa Ia rotazione subito dopo che e state completato il trasferimento dati. Una
volta che la testina di letturafscrittura e stata posizionata sulla ttaccia corretta e il blocco specificato nell’indiiizzo di blocco si muove sotto di essa, i1 componente elettronico della testina di letturalscrittura vieue attivato per trasferire i dad. Alcune unite a disco hanno testine di letturafscritmra fisse, con tante testine quanta sono 1e tracce. Queste unite sono dettc dischi a te-
stina Essa. mentte 1e unita a disco con un attuatore sono dette dischi a testina mobile. Per 1 dischi a testina fissa, Lina traccia o cilindro e selezionata u'amite 1a commutazione elettronica all'appropriata testina di letturafscrittura piuttosto che tramite un effettivo movimento meccanico; di conseguenza questa imita e molto piu veloce. 'lllttavia, iI costo delle testine di lettu—
raz'scrittura aggiuntive e piuttosto alto, e pertanto i disclu' a testina fissa non sono usati cornunemente. Un disk controller (controllore di disco), tipicamente inserito nell’unita disco. controlla
’unita disco e la interfaccia a1 sisterna di elaborazione. Una delle interfacce standard usate oggi per lo unite disco uei PC e nelle workstation e detta SCSI (Small Computer Storage
Interface: interfaccia di memoria per piccolj computer). 1! controller accetta comandi di 1/0 di alto livello e intraprende azioni appropriate per posizionare il braccio, facendo sI cite abbia luogo l’azione di letturafscritntra. Per trasferire un blocco di disco, date it see indiriz-
20. i1 controller dove prima di tutto posizionare meccanicamente 1a testina dt lettura/scritnira
Par cortesia della Seagale Technology o 1099.
sulla traccia corretta. Il tempo necessario per fare cio e detto tempo di posizionamento seek time). Tempi di posizionamento tipici sono di 124-14 msec per i personal computer e di 3+9 msec per i server. Segue un ritardo — detto ritardo Iii rotazlone o latenza (latency)
te. I costi stenno d1nomica _. costando attualmente solo una frazione di dollaro per megaby o d1 dollaro per centesim un di ine minuendo cosi rapidamentc che si prevedono costi dell’ord
~ per attendere che l’inizio del blocco desiderato ruoti fino alla posizione sotto la testina di etturafscriltura. lnfine, c’e bisogno di un tempo aggiuntivo per trasferire i dati, detto tempo di trasferimento di blocco. Percio il tempo totals necessario per localizzare e trasferire un
‘ . megabyte ossia 10.000 dollari per terabyte entro la fine del 2001. nento dan tra la ruetrasfenr 11 cosmic. accesso ad abile indirizz ivo disposit on e Un disco zo hardware :11 un blocmoria centrale e il disco avviene in unite di blocchi di disco. L’indiriz
numero d1 blocco — una combinazione di numero di faccia, numero di Iraccia (nella faccia) e anche formViene disco. del co (nella traccia) — e foroito all‘hardware dell’inputioutput (U0) che centrale mentor-1a in contiguc i iocaziou di riservata to l'indirizzo di un buffer »- un’area
uel buffer. menpub contenere un blocco. Con on 00111m read il blocco dal disco :3 copiato Talora possodisco. del blocco nei copiato e tre con un comando write it contenuto del buffer
no essere trasferiti come one cosa sola molti blocchi contigui, detti cluster (grappolol- 111 0115'
nel etc case In dimensione del buffer 9 adattata per corrispondete a1 numero di byte presenti J-__
....
blocco arbitrario, dato iI suo indirizzo, e costituito daila some do! tempo di posiziooamen—
e, ritardo di rotazione e tempo di trasferimento di blocco. I1 tempo di posizionamento e il ri'ardo di rotazionc sono solitamente molto pill grandi tit-.1 tempo di trasferimento di blocco. fer rendere pin efi'iciente i1 trasferimento di pit: blocchi, e comune trasferjre moiti bloc-
chi consecutivi suila stessa tt-aocia o cilindro. Cio elimina il tempo di posizionamento e il fitardo di rotaziorte per tutti i blocchi trarme i1 primo e puo avere come risultato un sostanu e risparmio di tempo quando vengono trasferiti nmnerosi blocchi contigui. Di solito i (:06 .
non' di dischi fornjscouo un tesso di trasferimento di one mole di dati (bulk transfer" ' ' te) per calcolare il tempo richiesto per trasferire bloochj coneecutivi (si veda l’App" " '
_.._' "L__._' 1. 124
.g
: ”— Memorizzazione dei record e crganlzzazioni primafie dei file
Capitoio 5
125
50blocco richiede da 12 a 60 msec, ma il trasferimento dei blocchi successivi pub richiedere
ramente o superati, ma richiestj per mantenere una registrazione storica, possono essere archiviati su nastro. Recentemente stanno diventaado popolari per i] salvataggio di file di dati per le workstation e i personal computer nastri magnetici ridotti. di 8 mm (sirnili a quelli usati nelle videocamere), che possono memorizzare fino a 50 Gbyte, nonché 1e car-tucce di dati a scansione elicoidale di 4 mm c i CD—ROM. Essi sono anche usati per memorizzare immagini
elabora~ dei inillisecondi a considera piuttosto alto se confrontato con il tempo richiesto per
e librerie di sistema.
I1 tempo necessario per localizzare e trasferire un blocco di disco e dell’ordine dei milli-
del prime secondi, andando di solito dai 12 ai 60 msec. Per blocchi contigui 1a localizzazione
di blocchi lo da 1 a 2 msec ciascuno. Molte tecniche di ricerca traggono profitto dal recupem nto dell’ordine trasferime di tempo un caso ogni In disco. su dati cercano quando vi consecuti
dati su disco e on coire dati in memoria centrale dalle CPU attuaii. Percie la localizzazioae di file che esarninerelo dr‘ bcrtiglia importanre nelle app‘ficazioni di basi di dati. Le strutture di nti di blocchi netrasferime di numero ii minimo ai ridurre mo qui e nei Capitolo 6 tentano di centrale. memoria a disco da richiesti dati i trasferire e localizzare per cessari
5.2.2
Dispositivi di memorizzazione a nastro magnetico
si puo accedere “a I dischi sono dispositivi di memoria secondaria ad accaaso casuaie. perché I nastri maindirizzo. suo il o specificat e si che volta una disco1 di case" a no arbitrario blocco blocco sul nastro, gnetici sono dispositivi ad accesso sequenziale: per accedere ali‘mesimo ati su bobine di na— occorre prima scandire gli n —— i blocchi precedenti. I dati sono memorizz richiede a un’unith Si video. 0 audio nastri ai simili molto capacita. elevata stro magnetico di di nastro. Di sobobina una in, a nastro [tape drive) di leggere i dati da, 0 di scrivere i dati memorizaa— sono byte i e nastro, sul ato memorizz e byte un lito ogni gruppo di bit che for-ma ti consecutivarnente. Anche irecord di Per leggere o scrivere dati su nastro si usa una testina di Ietturafscrittura. notevolmente essere possano blocchi i sebbene — blocchi in zati memoriz sono dati su nastro Con le dengrandi. piuttosto pure siano piu grandi di quelli per i ch'scbi, c gli spazi tra biocchi tra blocspazio tipico un pollice, per byte 6250 a 1600 da varmo che sita tipiche per un nastro byte. 3750 a 960 da va che chi5 di 0.6 pollici corrisponde a uno spreco di spazio di memoria solo un in insieme are raggrupp dine consuetu e spazio Per una migliore utilizzazione dello record. blocco molti ai blocchi di dati La carat‘teristica principale di un nastro sta ne] suo requisito di accedere bobina di nauna di mezzo nel blocco un ere raggiung a riuscire in ordine sequenziaie. Per
richiesto si trova stro, quest’ultimo viene inserito e quindi analizzato, fino a quando i] blocco essere lento e i pub nastro al l’accesso ragione sotto la testina di letturafscrittura. Per quests. ioni specializapplicaz alcune per non se linea, in dati zare memoriz per nastri non sono usati (salvataggio) backup di quella zate. Per?) i nastri forniscono una funzione molto importante, caso in cui i nel utili disco, su presenti file dei copie della base di dati, che permette di teaere testina di la se i verificars pub cite disco, di rottura una di causa a persi dati vengano
o meccanico. Per questa letturafscritmra tocca la superficic del disco per un malfunzionament anche essere usapossono nastri I nastro. so mente periodica copiati sono ragione i fiie su disco
5.3
Rendere parallelo I’accesso al disco attraverso I’uso della tecnologia RAID
Con la crescita esponenziale delle prestazioni e delle capacita dci dispositivi e della memorie a semrconduttore, si stanno diffondendo microprocessori piu veloci con memorie principali sempre piu grandi. Per far fronte a questa crescita. e naturale aspettarsi che anche la tecnolo_ gia della memoria secondaria tenda ad adeguarsi, per prestazioni c affidabilita, alla tecnologia dei processed. Un miglioramento importante nella tecnologia della memoria secondaria é rappresentato dallo sviluppo della tecnologia RAB), che originariamente stava per Redundant Arrays of Inexpensive Disks [vettori ridondanti di dischi economici). Pit] tardi la “1“ di RAID E: state . interpretata come Independent (indipendenti). L’idea RAID ha ricevuto un‘ adesione molto po; srtwa dall‘indusuia ed e stata sviluppata in un insierne variegato di architetture RAID alterna—
tive {livelli RAD) da 0 a 6).
Lo scopo principale della tecnologia RAID a quello di uguagliare i tassi molto diversi di migiiorarnento delle prestazioni dei discbi rispetto a quelli della memoria principale e dei mi— crcproceSStturi.fi Mentre 1e capacita della RAM sono quadruplicate ogni due 0 tre anni, i tempi
Tabella 5.2 Tendenze nella tecnologia del dlschi.
Valori dei parametri ml 199::-
Tasso storico dl miglioramento annuo ("for
Valcrl pnevlstl per II 1999"
Danette areale
50-150 Mbitfpoliice quadrato
2?
2-3 GBipoHica quadrato
Densila llneara
40000—50000 bitfpoillce
13
233 Kbllfpoilice
Densita inter-trancla Capacita [faitore d! forms: 3.5") Tasso di trasferimento Tempo dl poslzionamento
1500-3000 traccefpoIHce 100-2000 MB 3-4 Ms ?-20 ms
1E1 2? 22 8
_
11550 traccefpollice 36 GB 17-28 MBIsec 54' msec
' Fonts: Chan, Lee, Glbson. Katz 3 Patterson (1994]. Hlpruduzlone autorlzzata. “ Fame: Unite a disco rigtdo lBM Uttraalar SW 9183.
di dati usati rati per memorizzare file troppo grandi della base di dati. Infine, file della base ‘ 5
Nella terminologia propria dci nastri si parla di .9s Ira record (inter-record gaps).
Gordon Bell ha previsto che quesu' fossem circa del 40 per cento ogni anno tra i1 1974 e il 1934. e 9“?“ ' pa che superino i1 50 per canto annuo.
Memorizzazione dei record 9 organizzazioni primarie dei file
Capitolo 5
125
Una tecnica per introdurre ridondanza s detta mirroring (to mirror: riflettere) o shadowing (to shadow: seguire come un'ombra). I dati sono scritti con ridondanza in due dischi
disco 3
disco 2
127
fismi identici. che sono nattati come un solo disco logico. Quando i dati vengono letti, cssi possono essere recuperati dal disco con minor-i ritardi di accodamento, di posizionamento e di rotazwne. Se on disco si guasta. 1‘ altro disco viene usato finché i1 primo non s stato riparato. Si supponga che ii tempo medic per la riparazione sia di 24 ore; allora ii tempo medio per la perdita di dati in un sistema a disco fiflesso {mirrored disk system) che use 100 dischi con MTI‘F di 200.000 ore ciascuno e di (200.000)2l(2 #24) = 8.33 Se 10‘1 ore. cioe di
Figure 5.3 Data striping. I] file A e suddlvlso (striped) su quattro disohl.
95.028 anni." La riflessione di disco raddoppia anche ii tasso con il quale sono gestite 1e rie i tassi di trasferidi accesso al disco stanno migliorando meno del 10 per cento all‘anno, verita le capacitd In annuo. cento memo stanno aumentando approssimativamente del 20 per nclla velocits nenti migliorar mai all’anno, cento per 50 del pin dei dischi stanno aumentando illustrate 1e tendene no] tempo di accesso sono di entité molto inferiore. 1n Tabella 5.2 sono e dei tassi di snize nella tecnologia dei dischi in termini dei valori dei parametri del 1993
chieste di lettura. dal momenta che una Iettura puo essere indirizzata ali’uno o all'altro disco. ll tasso di trasferirnento di ciascuna lettura. perb, rimane uguale a quello che si ha per no singolo disco. Un’altra soluzione al problema dell’affidabilits e quella di memorizzare informazioni sup—
glioramento. speciali che Esiste poi una seconds differenza qualitativa tra la capacitit di microprocessor-i di imaudio, video, dati di ione l'elaboraz o riguardan che oni si rivolgono a nuove applicazi insiemi di dati conmagini e spaziali e la cortispondcnte mancanza di accesso rapido a grandi
rare due probiemi: la scelta di una tecnica per calcolare l‘informazione ridondante e la scelta di un metodo per distribuire l’informazione ridondante sui vettore di dischi. Si affronta i1 prié mo problema tramite l’nso di codici a correzione d’errore che utilizzano bit di parité, o codi— ci specializzati come i codici Hamming. Con 10 schema di parita si pub considerare che un di-
plemcntari che non sono nonnalmente necessarie ma cite possono essere usate per ricostruire ie informazioni perse in case di guasto del disco. L’introduzione di Iidondanza deve conside-
divisi.
sco ridondante contenga la somma di tuttii dati presenfi negli aitri dischi. Quando un disco si
enti che si La soluzione naturale consiste in on grande vettore di piccoli dischi indipend
, fomendo cosi di U0 complessive consentcndo che IlO multipli vengano serviti in parallelo
guasta 1e informazioni mancanti possono essere ricostruite tramite un processo simile a una sottrazione. . Per ii secondo problem. i due approcci pin importanti consistono nel memorizzare 1e mfonnazioni ridondanti so on piccolo numero di dischi o no] distribuirle uniformemente su tutti i dischi. Quest‘uitirno he come risultato un miglior bilanciamento del carico. I diversi li— velii di RAID scelgono una combinazione di quests opzioni per implementare 1a ridondanza, e percio per migliorare 1‘ affidabilité.
dabilith.
5.3.2
1m concetto detcomporta come on singolo disco logico di maggiori prestazioni. Viene nsato
1e preto data striping (suddivisione dei dati), che utilizza i1 parallelism per incrementare
fra pill dischi, cosi che stazioni del disco. 1] data striping distribuisce i dad in modo trasparente e rappresentato un fi5.3 Figura 1n veloce. essi 5i comportino come un unico disco, grands e 1e prestazioni migliora one suddivisi La dischi. quattro fra (striped) le distribuito o snddiviso
realizza anche un bilancia— alti tassi di trasferimento complessivi. La suddivisione dei dati ridondanti sui dischi con ioni informaz zando memoriz lnoltre, dischi. i fra memo del carico essere migliorata i‘affipub l’uso della parita 0 di qualche altro codice a correzione d’errore,
Miglioramento delle prestazioni
l Yettori di dischi si servono della tecnica del data striping per ottenere tassi di trasfcrimento
5.3.1
: Inigiiori. Si noti che i dati possono essere letti o scrit'ti solo un blocco alla volta. cosicché un ': optco nasferimento comprende 512 byte. La suddivisione su disco puo essere eseguita a un Ii-
Miglioramento dell’affidabilité
. veilo di granularité pill fine, scomponendo un byte di dati in hit e distribuendo i bit so dischi
che si ha per un solo diPer un vettore di :1 dischi la frequenza di un gnasto e n volts quella
diversi. Percio il data striping a livello di bit (bit-level data striping) consiste nello spezzae on byte di dati e nello scrivere i1 bit j nel j—esimo disco. Con byte di 8 bit. otto dischi fisici . _ . .
un guasto) {ii sco. Percio, so I’MTTF (Mean Time To Failure: tempo medic perché si verifichi
tipici vanno fine a un’nnitii disco 9. considerato di 200.000 ore, ossia circa 22,8 anni (tempi di 2000 ore, ossia solo circa ] milione di ore), quello di un banco di 100 unite disco diventa una significauserh dischi di vettore tale un in dati 83,3 giorni. Mantenere one sola copia di
possono essere considerati come un solo disco logico con on aumento di otto volte .d'eli'afsso. d1 trasfemnento dati. Ogni disco partecipa a ciascuna richiesta di IlO e l'aromontare totaie di dam letti per ogm nchtesta e di otto volte i dati letti dal singolo disco. Lo striping-a IiireHo-di
a. cativa perdita di affidabilith. Un’ovvia soluzione e quella di servirsi di una certa ridondanz moiti: sono i svantagg Gli tollerati. dei dati in modo tale che i gnasti ai dischi possano essere 1a ridondanoperazioni di 00 agginntive per la scrittnra, calcoli supplementari per mantenere memorizzare per a aggiuntiv disco di capacita e etrori, dagli ripristino i1 effettuare per e za
.._... .32- mcm: 1: .da '
2'
l.
.3|:1.__
.
..
‘-
.
.
_
I
_ .
Le fol-mule neri calcoli dell‘MTTF sonopresenti in C on c altrl (1994).
130
Memorizzazione dei record e organizzazioni primarie dei file
Capltolo 5
. ‘ blocco dI disco.
Bufferizzazione di blocchi
5.4
.i I [+ 1 [WSII'LMO I rimpimeolo
”O:
I
I e sono noti tutQuando devono essere trasferiti da disco a memoria centrale numerosi bloeclu',
centrale ti i loro indirizzi, per accelerate i1 trasfefimento possono essere riservati in memoria buf— nell'altro dati i elaborare pub CPU la buffer, un molti buffer. Menu-e viene letto o scritto
ELABORAZIONE:
disco (controller) che, fer. Cio e possibile perché esiste un processore indipeudente per 1110 di e il disco inmemoria la tra dati di blocco una volta avviato, puo procedere ncl trasferire un essa. con parallelo in e CPU, della azione dipendentemente dall’elabor Iprocessi A e In Figure 5.5 e illustrato come due processi possano avanzare in parallelo.
I
I : flampfiento
L:
|
I
i
' I' ‘
I
I
I
:
IN
parato, o perché esistono piIZI processori di CPU. In Figure 5.6 e illustrate come la lettura e l’elaborazione possano prooedere in parallelo
del tempo riquando i1 tempo richiesto per eiaborase un blocco di disco in memoria e minors e a elacominciar puo CPU La buffer. un riempire e successivo cl'fiesto per leggere i1 blocco o; allo compietat e centrale memoria in nto trasferime suo i1 che volta una blocco un borare trasferinot e lettura nella irnpegnato essere stesso tempo il processore dell’IlO di disco pub bul‘ferizzamento del blocco successive in un buffer diverse. Questa tecnica e detta doppia memoria a disco. zione e pub essere usata anche per scrivere un flusso continue d.i blocchi da vi, che eli— Essa consente una lettura o scrittura continua di dati su blocchi di disco consecuti i blocchi tutti di rrti trasferirne i per rotazione di ritardo il e ento posizionam di tempo mina i1 il tempo cosl riducendo elaborafi. escluso il prime. Inoltre i dati sono tenuti pronti per essere
di attesa nei programmi.
A
I I l
I
l ‘. I
I I I
=.
I
I
I
I .
l
:
I
‘I + 3
I
I' + 4 procasso A
I processo A
I
women B
I prOCESSO E
1
H——)-v
H——>
H—h
H—h—
H—-—-—-——h
I I 4 I
I I I I
r I I I
I I I l
l I I —> Tempo
Flgura 5.6 Use of due buffer. A e 3. per la [ettura del disco.
5.5
Collocazione su disco dei record di un file
in questo paragrafo saranno dcfinitii concetti di record, tipo di record e file. Verranno poi ana~ lizzate alcune tecmche per la collocazione su disco dei record di on file.
5.5.1
Record e tipi di record
I
:
l
1
-
|
I
I
'
I
I I I
i r ‘I I I81
I: : I
l l 1
l
l
E
‘=
|
l
I:
r
lt2
is
A
I
E
I—‘——I
B
_ Spendeoti costituisce una definizione di fipo di record 0 formato di record. Un tipo di da5 zigssocrato a ciascun campo, specifica i1 tipo di valori che possono essere assunti da quel po. 11 ttpodi dati di un campo e di soIito uno dei tipi di dati standard usati in programme. Quesu cornprendono i tipi di dati numerici (integer. long integer o floating point), suin-
|
|
I
t1
|
'
SCITA, S'TIPENDIO o SUPERVISDRE. Una collezione di nomi di campi e dei tipi di dati don-i-
I—“i
:
:
seun campo del record specifica alcurti attributi di quell’impiegato. come NOME, DATA NA-
delle operezlonl G e D.
delle operazlonl A e B.
di A
I dati sono normalmente memorizzati sotto forma di record. Ogni record consiste di una collenone di valori o voci di dati collegati, dove ogni valore e formato da one o pin byte e cor— nsponde a on particolare campo del record. I record di sofito descrivono 1e entita e i loro at- lIllJutI. Per esempio, on record IMPIEGATO rappresenta un‘entita impiegato, e il valore di cia-
Esecuzlone parallels
Concorrenza interleaved
: rimlplrrlgnto .._ I
i+2 I proceuo n
e D sono eseB sono eseguiti concorrentemente e in modo interleaved, menu-ei processi C
pill processi. l’eseguiti concorrentemente e in parallelo. Quando una sola CPU controlla cencorrenteeseguiti essere ancora possono cuzione parallela non e possibile. Pero i processi essere possono processi i quando utile piu e zione bufferizza La d. meme in mode interleave e di 1’0 di disco se— eseguiti concorrenternente in parallelo, o perché e disponibile un processor
dl B
I
I
I
biocco dl disco:
I I +2 I rlempirnento
d] B
131
I
|
: I j
E
E
C
he d1 caratten (a lunghezza fissa o variabile). booleani (che assumono solo i valon‘ 0 e I o
‘=
i——-—-D———i
r——-—__‘
l
Fioura 5.5 Qonfronto tra Ia concorrenaa Interleaved e 1'esecuzione In parallelo.
I
l
—-—-
‘4
Tempo
YERO e EALSO), e talora i tipi di dati codificati in mode speciale date 6 time. Per ciascun stenia d1 elaborazione i1 numero di byte richiesti per ogoi tipo dj dati e fissato. Un integer 1pm rrchiedere 4 byte, on long integer 8 byte, tin numero reale 4 byte, un booleano 1 byte una aka-10 byte [assumendo un fonnato del tipo YYYY-MM-DD) e una stringa a Iungheziz; fi 'a di k caratten k byte. Le stringhea lunghezza variabile possono richiertere tanti byte qtt
'I-q-‘l—IIII’
Memorlzzazlone del record e organlzzazieni primarie del file
Capitole 5
132
la seguente sere definite — usando 1a notazione del linguaggio di programmaziooe C — con
SSN
struttura:
CODICEJJNORO STIPENDIO DIPARTIMENTO
133
DATMSSUNZIONE
struct impiegatc { char nome[3@];
char ssn [ 91 ; int stipendio;
int codicewlavor‘o;
CODICE_LAVOHO
char- dipar‘timento [2%];
lE
'
zare voci di dati In applicazioni di basi di dati recenti pub sorgere 1a necessita di memeriz digitalizzati flussi , immagini tanti rappresen i. strutturat non oggefii che censistone di grandi granObject: Large (Binary audio 0 video. 0 testo libero. Queste sono indicate come BLOB sue dal ente separatam ata memorizz te tipicamen e BLOB dati de oggette binario). Una voce di puntatore al BLOB. un record nel inserire a limita si ci 6 disco. di blocchi di pool un in record
STlPENDIO 4 sen
NDME
lemnn. John [123455759
1
12
DIPAFlTiMENTO
lxxxx gm [Computer I
21
25
I
sgrgtéteélfl
29 Caratterl Separator: separa I! name del campo dal \ralore del compo
INOME=SmIth.John I ssu=123455759 1 DIPAFITIMENTO=Computer N
5.5.2
File, record a Iunghezza fissa e record a lunghezza variabile
in un file fanno parte delUn file e una sequenza di record. In molti casi tutti i record presenti dimensione (in byte), stessa la te esatteroen ha file nel record ogrLi Se record. di 10 stesso tipo nel file haono didiversi record Se fissa. si dice che i1 file 5 costituito da record a lunghezza Un file pub variabile. a lunghezz a record da costituito e file i1 che mensioni diverse, si dice avere record a lunghezza variabile per melte ragioni:
seno di dimensiene i record del file sono dello stesso tipo di record. ma uno o pifi cempi
o
O puo var-labile {campl di lunghezza variabile), ad esernpie, il campo NOME di IMPIEGAT ; var-labile a lunghezz di campo essere un pub avere valeri o i record del file sono delle stesso tipo di record. ma one o pifi dei campi g field) e (repeatin ripete si che campo detto e campo tale on multipli per singoli record;
ripete (repeating on gruppo di valor-i per quel campo e spesso detto gruppo che si
up);
gro opzlonali, cioé 0 i record del file sene delle stesse ripe di record, ma one o piu campi sono 0
del file (campi opzlonali); pesseno assumere valor-i per alcurti ma non per tutti i record ne variabile (file misto). dimensio di percib e record di ripr' il file contiene record di diversi raggrupparr‘ (clustered: Cib potrebbe verificarsi se record collegati di tipi diversi fossero NE di one specifico stuVOTAZIG irecord esempio ad collocati insieme) su blecchi di disco;
dente possono essere collocati di seguito al record di quelle STUDENTE.
no una dimensione di re1 record a lunghezza fissa IMPIEGATD in Figure 5.7(3) presenta sorro fisse, cosicché campi dei e cord di 71 byte. Ogni record he gli stessi campi. e 1e lunghezz relativamente alla campo ciascun di iuizio di byte del e posizion la il sistema pub individuare
campo da parte dei posiziene iniziale del record. Cio- facilita la lecalizzazione dei valon del un file che da un ntare rapprese possibile e che noti programmi che accedeno a questi file. Si
l E
p
.
53 mm camp
I
ten-nine ll record
Flgura 5.? Tre formati di memorizzazione dI record. (a) Un record a [unghezza frssa con sei campi e dimensuene d1 71 byte. (b) Un record con due campl 'di lunghazza variablle e tre campi di lunghezza fissa. (c1 Un record a camel variablli con tre tipi dl caratterl saparatori.
unto dJ' vista logico dovrebbe avere record a lunghezza variabile come no file di record a lunghezzefissa. Ad esempio, nel case di campi opzionali sarebbe possibile aver inserite tutti i ampi 1n ogni record delfile, ma poi memorizzare uno speciale valore nullo se non esiste alun valore per quel campo. Per 1111 compo che si ripete, si poo‘ebbere allocare in ogni record
anti spazi quant’e il momma nonzero di valon' che i1 campo pub assumere. In entrambi i ca-
r yiene _sprecato spazio quande certi record non presentano valori per tutti gli spazi fisici formtr m mascun record. Si considerino era altre opzioni per formattare record di un file di record :1 lunghezza var-labile.
Per campt’ a‘i lunghezza variabile ogni record presenta un valore in corrispendenza a ognl ampo. ma non a note la lunghezza esatta dei valor-i di alcuni campi. Per determinare i b '
he all’interne di un particolare record rappresentane ogni campo, si possone usare spe aratten separatori (come ? o % 0 3) — Che non si presentano in nessun valore del c' or terminare campi di lunghezza variabile (Figure 5.71)}, oppure memorizzare la
. in byte del carnpe in one] record, prima del valore del campo. U11 file di record con campi opzionali pub essere formattate in diversi modi. Se otale di campi per il tipe di record e grande, ma i1 numero di campi che si prod
amente in on record tipico e piccolo, e possibile inserire in ciascun record .oppre meme-compo, valere-campo> piuttoste che solo i valori del cam one usati tre tipi di caratteri separated, anche se si potrebbe usare lo St on: per i primi due scepi —— separare iI neme del compo dal valore del cam
134
135
Memorlzzazione dei record e organizzazioni primarie dei file
Gapitele 5
breve codice tipo di campe dal successive. Un‘epzione piu pratica e quella di assegnare un in ciascun record una sequenpo — ad esernpio un numero intero — a ciascun campe e inserire
{a} blocco l
1
record ‘1
W
I record 3
record 2
I
campo. valore-campo>. za di coppie piuttosto che ceppie R, perché consent dei record. Per record a lunghezza valocazione nota del blocco. semplificande l‘elaborezione
riabile pub essere usata sia un'orgarfizzazione spanned sia un’erga
nizzaziene unspanned. Se i1
c11e l’aumento delle dimensioni dc] file. Nell’allocazione collegata egni blocco condene un untatore al successive blocco dei file: cib faciljta 1' aumento delle dimensieni del file ma ralenta Ia lettura dell’intero file. Una combinaziene delle due alloca cluster di blocchi di disco
ousecutivi, con i cluster cellegati tra lore. I cluster sono talera detti segmenti del file 0 eatenoni dei file. Un’altra possibilita e quella di usere un‘allocezione indiclzzata, dove one 0 pin
Ilocchi di indici contengono puntateri agli effettivi blocchi dei file. E anche comune usare ombinazioni di queste tecniche.
e con spanning per ridurre lo spazio record tipico e grande, e vantaggioso usare l‘organizzazion
tipi di organizzazione. perse in ciascun blocco. In Figure. 5.8 50110 messi a confronto i due d, ogni blocco pub me— spanne Per record a lunghezza variabile che usane 1‘ organizzazione bfr rappresenta i1 blocco di fattore il case questo In record. morizzare on diverse numero di _,_.__._——«.——
.
'r app r;
are: or
_
g heme
' _':iie song...
.''-bilian_"‘ "‘h‘is c h e1“: MPMW
- .5.5
Header dei file
header di tile (header: intestaziene) o descrittore di file condene inforrnazienj an un fi- = necessane in pregrmnmi di sisterna che accedene ai record del file. L’header comprende onuazrom oer detenumare g1.i indirizzi di _d5 co dei blocchi dei file, nonché per le de
Lywwwhlmfl
‘__._.-.
136
Memorizzazione dei record a organizzazioni primarie del file
Capitolo 5
zioni dei formati dei record, che pessono cemprendere lunghezze di campo e ordine dei cam— pi all‘interno di on record per record a lunghezza fissa senza spanning. c codici di cipo di carn-
po, caratteri separator-i e codici di tipo di record per record a lunghezza val-labile. Per la ricerca di on record su disco, uno 0 pie blecchi seno copiau‘ nei buffer di memoria 1e centrale. Quindi i programmi ricercano il record o i record desiderati entro i buffer, usando
informazieni presenti nell‘header del file. Se I'indjrizzo del blocco che contiene i1 record de— i side-rate non e note, i programrni di ricerca devono efiettusre una ricer-ca lineare attraverso a record il che a fine esaminato ed buffer un in copiato e file del blocchi del file. Ogni blocco
a sistema. Si presents qui di seguito un insieme di Operazioni rappresentative. Tipicaroente
programmi di alto Iivello, come i programmi software del DBMS, accedono ai record usando - quest: comandi, e percie talvolta nelle seguenti descrizioni ci si rifen'ra a variabili di programs. 0
'
Imposta il file pointer {puntatore a1 file) all‘inizio del file.
0
di'trasferimenti di blocco.
o
Operazioni sui file
C
cellazione di record 0 con la modifica dei valeri di alcuni campi. In entrambi i casi e possibile che 5i debba selezionare uno o pit] record per il recupero, ia cancellazione o la modifica ba— sandosi su una oondizione di sclezione (o mndizlone di filtraggio), che specificai criteri che
di seOgni record localizzato viene poi esaminato per decidere se soddisfa l’intera condizione lezione. Ad esempio, si puo estrarre la condizione semplice (DIPAHTIMENTO = ‘Ricerca') dal-
; ogni rela cendizione complessa ((STIPENDIO 2 30000) AND (DI PAHTIMENTO = ‘Ricercs‘D vedere per esamjnato poi e localizzato viene ‘Ricerca') = ENTO {DIPARTIM cord che soddisfa se soddjsfa anche (STIPENDIG 2 30000]. te leQuando molti record di on file seddisfane una condizione di ricerca, viene inizialmen
recalizzato il prime record — relativamente alla sequenza fisica dei record del file ~ nominate ll o localizzan e record questo da o cord corrente. Le operazieni di ricerca seguenfi comincian
successive record del file che soddisfa la condizione. da sistema Le operazioni effettive per localizzare e accedere ai record di un file variane
Find (0 Locate}: cerca i1 prime record che soddisfa una cendiziene di ricerca. Trasferisce il blocco che contiene quel record in un buffer in memoria centrale (se non e gia 1a). II fi— le pointer puma al record nel buffer ed esse diventa i1 record carrenre. Talvolta vengono usati verbi diversi per indicare se i1 record localjzzato deve essere recuperate e aggiomato. Read (0 Get): copia i1 record corrente dal buffer in una var-labile di programma del programme utcnte. Questo comando pue anche far avanzare i} puntatere al record corrente al Serge; successive del file, il che pub richiedere la let‘t‘ura da disco del successive blocco e.
V
o FindNext: ricerca nel file if: successive record che soddisfa la cendjzione di ricerca. Tra— sferisoe il blocco che centiene quel record in un buffer di memeria centrale (se non si trova gia la). Viene localizzato il record nel buffer ed esso diventa il record corrente. 0 Delete: cancella i1 record corrente e (alla fine) aggioma i.l file su disco per rispecchiarc Ia cancellazione. o Madific modifica i valori di alcuni campi del record corrente e (alla fine) aggierna i1 file su disco per rispecchiare la modifica. _ 0 Insert: inserisce un nuevo record nel file lecalizzando i] blocco in cui dove essere inserite i1 record, trasferendo quel blocco in un buffer in memoria cenu'ale (se non e gia la), scrivende 1] record nel buffer e (alla fine) scrivende i1 contenute del buffer sn disco per rispecchiare l‘in serimente. - Close: complete l’accesso al file rilasciando i buffer ed eseguendo tutte 1e altre Operazioni di pulizia neocssarie.
operaLe operazioni sui file sono di soljto raggruppate in Operazioni di recupero (retrieval alcun cambiane non prime Le ). operations (update tions) e operazioni di aggiornamento campi lore dei valeri i che tale mode in record certi lecalizzare a limitane si date nel file, ma possane essere esaminati ed elaborati. Le seconde cambiane i1 file con l‘inserimento o la can-
i] record oi record desiderati devono soddisfare. — Si consideri on file IMPIEGATO con campi HOME. SSN, STIPENDIO, CODIGE_LAVORO e DI eguadi confronto un comportare puo semplice PAHTIMENTO. Una cendizione di selezione G= glianza so on certo valore di campo — ad esempio (SEN = ‘123456789’) o (DI PARTIMENT confi'onto. ‘Ricerca’). Condizioni pin complesse possono ceinvolgere altri tipi di operated di come come > e 2: un esempie e {STIPENDIO 2 30000}. It caso generate censiste nell'avere condizione di selezione un’espressione booleana arbitraria sui campi del file. semLe eperazieni di ricerca su file sono generalmente basate su cendizioni di selezione tore) programma del (0 DBMS dal decomposta essere deve cemplessa cendizione Una plici. disco. so record i localizzare per usata per estrarre una condizione semplice che pessa essere
Open: prepara i1 file per la lettura e la scrittura. Alloca buffer appropriati (tipicarnente al-
meno due) per contenere blocclu' del file prelevati da disco, e rccupera l’header del file.
o Reset: imposta i1 file pointer di un file aperto all‘inizio del file.
molto localizzato e tutti i blecchi del file sone stati esaminati senza successo. Clo pub essere di ione erganizzaz buena una di scope Lo dispendieso in termini di tempo per on file grande. numere minimo il con dcsiderato record on contiene che blocco i1 localizzare di file e quelle
5.6
137
_
Le precedenti operazioni {tranne Open e Close} sono dette Operazioni un-rccord-alla—vol_ ta, perché ogni operazione si applica a un solo record. E pessibile snellire 1e operazioni Find, i-‘FindNext e Read in una sola eperazione, Scan.
0 Scan: se sul file sono appena state applicate 1e operazioni Open 0 Reset, restituisce il prime record; alu'imenti fomisce i1 record successive. Se con l’operazione e specificata una
condmone, il record restituito e il prime 0 'd successive record che soddisfa la cendizione.
Nei sistemi di basi di dati possono essere applicate a on file operazioni aggiuntivc di pin alto livello un-insieme-alla-volta. Esempi di queste operazioni some i seguenu‘.
o Fimfllll: localizza tutti i record nel file che soddisfano una cendizione di ricerca. FindOrder-ed: recupera tutti i record nel file in un certo ordine specificato. o Reorganize: comincia i1 processo di riorganizzazioue. Come si evra mode di vedere, alcune organizzazioni di file richiedone una riorganizzazione periodica. Un esempio consiszc nel riordinare i record del file classificandoli sulla base di un campe specificato.
Memorlzzazione dei record e organizzazioni primarie dei file
138
139
Capitolo 5 file. Un’organizzazione di questo tipo e detta file heap o file pile (pile: pile).9 Essa viene 5 es—
azione dt'file e meA questo punto vale la pena di notare la differenza tra i termini organtzz dati di un file in dei e izzazion all‘organ fiferisce si file di ne nlzzazio todo dr‘ accesso. Un‘orga
so usata con percorsi di accesso opzionali, come gli indici secondari esarninati nel Ca itolpo 6 o per‘raccoglrere e memorizzare record di dati in vista di un use future. P . L trtsenrnento di un nuovo record e molto efii‘cr'enre: l'ultimo blocco di disco del file viene copiato in un buffer, viene aggiunto iI nuovo record e poi il blocco Viene riscritto sul disco. L indinzzo dell‘ultimo blocco del file viene tenuto nell’header del file. Pero la ricerca di
i record e i blocchi sono record, blocchi e strutture di accesso; cio comprende il mode in cui ,
collegati. Un metodo di accesso posti nel supporto di memorizzazione e il mode in cui sono quelle elencate sopra — che esempio ad come — rii operazio di gruppo un fornisce lato, d’altro
e molti metodi di accesso a possono essere applicate a un file. In generale e possibile applicar applicati di file. Alcuni metodi di accesso, tuttavia, possono essere
on record attraverso una qualsiasi condizione di ricerca compona una ricerca lineare sul file blocco per blocco — una procedure dispendiosa. Se un solo record soddisfa la condizione di ri—
una stessa organizzazione e applieare un metodo di acsolo a file organizzati in certi modi. Ad esernpio, non e possibil
cerca, tillora, in media, on programme leggera (portandoli in memoria) e ispezionera meta dei blocchr del file pnma di trovare i1 record. Per un file costituito da b blocchi cio puo richiedere in media I‘tspezicne di (3)12) blocchi. Se nessun record 0 viceversa molti’record soddisfano la condtzrone di ricerca, i1 programrna deve leggere e ispezionare tutti i b 1310c del file Per cancellare on record, an programme deve dapprima uovare il suo blocco copiare il blocco in un buffer, quindi cancellare iI record dal buffer e infine fiscrivere il blocco su di— sco. Clo lascia spazio inutilizzato nel blocco di disco. La cancellazione di un gran numcro di record in questo modo ha come risultato uno spreco di spazio di memoria Un’altra tecnica usata per la cancellaziorte di record consiste nel tenere memorizzato con ogrti record 1111 bit 0 byte supplementare, detto indicatore d3 cancellazione. Un record viene cancellato sem lice— meute ponerido l'indicatore di cancellazione a un certo valore. Un valore diverse dell'irfdicatore indica: on record valido {cioe non cancellato). I programmi di ricerca considerano solo i record valid: dl ogui blocco. quando conducono la ioro ricerca. EnLrambe questo tccniche di . caucellazrorte nchiedono una riorganizzazione periodica del file per recuperare lo spazio inu- ulizzato dei record cancellati. Durante la riorganizzazione si accede consecutivarnente ai bloc~ clu del file, e 1 record vengono compattati rimuovendo i record cancelled. Dopo una riot a— mzeezrone dt'qluesto tipo i 1310c sono di nuovo riempiti firto al limite delle loro ca acigta E): altra possrbdita e quella di usare Io spazio lasciato libero dai record cancelled quaido si 16 1:22:11: 11:13:record, anche se cm nchiede una contabilith aggiuntiva per tenor traccia del-
cesso a indici a no file che non ha un indice {si veda i1 Capitolo 6).
che altre. Alcurti file Di solito ci si attende di usare alcune condiziorti di ricerca piuttosto raramente eseguite sono ameuto agglom di oui possono essere stafici, nel senso che 1e operazi é 1e operazioni cosicch , temente frequen e cambiar possono ci, dinami piu su di essi; altri file, di file di suc— ne nizzazio Un‘orga essi. ad e di aggiornamento vengono costantemente applicat oni che ci si operazi 1e le possibi temente efficien piu il e eseguir di cesso dovrebbe consentire ATO (FiguIMPIEG file i1 ri conside si attende di eseguirefiequemememe sul file. Ad esernpio, ci si attenche Clo rtda. un’azie di ti irnpiega attuali ra 5.7a} che contierte i record relativi agli re record (quando cancella ti), impiega assunti vengono (quando record inserire de e di clover quando cambia lo stipendio 0 impiegati iasciano l‘azienda} e modificare record (ad esempio record richiede una condizio— un di a modific la o zione cancella La il lavoro di un impiegato). record. Anche il recupero di di ne di selezione per identificatc un particolare record 0 insierue e. selezion di rte uno 0 pi!) record richiede una condizio condizione di ricerca basata su Se gli utenti si aspettano di applicare principalmente una facilili la localizzazione di un che file di one SSN. i1 progettista deve scegliere un‘organizzazi
cnto fisico dei record basa— record data i1 valore del suo SSN. Cib puo comportare un ordinam supponga
(si veda il Capitolo 6). Si to sul valore di SSN, o la definizione di un indice su SSN degli impiegati, e richieda che paghe 1e e generat per file il usi che una seconda applicazione applicazione e meglio memorizzare le paghe siano raggruppate per dipartirnento. Per questa stesso valore di dipartimento, rag— lo hanno in mode contiguo tutti i record impiegato che
. Per un file non ordinato e possibile usare sia un‘organizzazione spanned sia un’organizza—
no di ogni dipartimento. Pero gruppandoli in blocchi e magari ordinandoli per nome all’inter SSN. Se
atone unspanned; inoltre esso puo essere usato con record a lunghezza. fissa 0 con record a lun-
record sulla base dei valori di questa disposizione e in conflitto con l’ordinamento dei be scegliere un‘organizzazionc dovreb ista progett i1 nti, entrambe le applicazioni sono importa Purtroppo in molti casi cio orti. operazi 1e e entrarnb e ternent efficien e eseguir di che consents conto dell‘ importanza e tenga che messo non e possibile e deve allora essere scelto un compro
gliezza vanabile. La modifica di un record a lunghezza variabile puo richiedere la cancellazrone del record vecchio e l’insei'imento di on record modificato perché i1 record modificat pub non trovar pesto nel suo vecchio spazio su disco. , 0 . Per Ileggere tutti i record ordinati secondo i valori di un certo campo si puo create una co—
. della combinazione prevista di operazioni di recupero e aggiomarnento per organizzarei remetodi vat-l ranno esarnine si 6 Capitolo nel e ivi success fi paragra Nei
pra ordinate del file. L‘ordirtamento e un’operazione dispendiosa per un grande file su disco' vengono per questo usate tecniche speciali per l’ordinamento estemo. ’
usate molte tecniche generali, cocord di un file su disco. Per create metodi di accesso sono tecniche generali per gestire gli svariate Inoltre . zazione l‘indiciz e l’hash rne l’ordinamento, di file. zazioni organiz inserimenti e le cancellazioni funziortauo con molte
5.7
File di record non ordinati (file heap)
fondamentale. i record sono collo1n questo tipo di organizzazione, la pin semplice e la piu ntlafme;_ 'del cord mneinsefifi 'm‘r‘re '“théir uiseé: ‘ Eerie, '.' rdine' . l _ i -fl M% -“.I.
WW
Per un file di record a lunghezzafissa non ordinati, che usa bloccht' senza spanning e allocaztone conngrm, viene naturale accedere a ogni record a partire dafla sua posizione nel file. Se 1 record del file sono numerati 0, I. 2, .... r - 1 e i record in ogni blocco sono numerati 0, l. ..., bfr— 1, dove bfi‘ e il fattore di blocco. allora l'i-esimo record del file e pesto nel blocco Ltr/bfrfl ed 5 1’ (i mod bfr)—esimo record di quel blacco. Un file di questo tipo viene spesso
Talvolra quests organizzazione e delta file sequenziale. _.
“jg—I- :-
——-g—-
i-_..._._.....
Memorlzzezione dei record e organizzazioni primarle dei file
141
Capitelo 5
140
a agevolmcnte accedere direttarnente ai record chiamato file relative o dirette perché si pee ainnon ione posiz sua dalla e a un record a partir partire dalle loro posizioni relative. L‘accesso iziene di ricerca, pero facilita 1a costituzione cond una su desi basan d recor on zzare ta 3 locali ati nel Capitolo 6. esernpio gli indici studi di percersi di accesso al file. come ad
5.8
File di record ordinati (file sorted)
i cli nno dei led di no file so disco basandosi sui valor E pessibile ordinare fisicamente i recor enziale.” Se sequ file 0 ate. ordin Cio perta a un file ro campi, detto compo (1i erdinamento. cui e garantita l’eper o camp un — file del e chlav o ii campo di ordinarnento e anche un camp arnente del d —— allora esso e detto chiave di erdin sistenza di un valore univoce in ogni recor chiave di ordinarnento
con NOME come campo file. In Figure 5.9 e mostrato un file or 'nato ti). distin nomi no (supponendo che gli impiegati abbia non ordinati. 1n prime ntano alcuni vantaggi sui file di record
if K < (valore del campo chiave d1 erdinamento del PHIMO record nel blocco i) then u é— i — 1 else if K > (valere del campo chiave di ordinamento dell'ULTIMO record nel blocco i) then 1 e— i + 1 else if 11 record con valore del campo chiave di ordinamento = K e nel buffer then goto trovato else goto nontrovato;
end; goto nontrevate; e Un criterio di ricerca che coinvolgc le condizieni >, , dove v, e il valure curn-tupla I di una relaziune :{R} e indicata con t: eon-ispundenti agli atuibuti Speifieati nella lista; ettere Q. R e S indicano nomi di relaziuni: ettere q, r, s indieano stati di relazione; ettere r, u, v indicanu tuple. eneraie. il nume di unu schema (fi relazione, come ad esempiu STUDENTE, indica an-
l’insieme correlate di tuple in quefla relaziune — 10 state con-ems di relazione — men,TUDENTE (Nome, SSN. ...) fa fiferimentu solo allu schema dj relazione:
éruibutu A pub essere cuntraddistinto con 11 nome di relaziune cui appartiene usando la ' zione puma (do: notation) RA - ad esempio. STUDENTE.Nome o STUDENTEEta. Que— rché Io stesso name pub essere usato per due attributi presenti in relazioni diverse. . specy‘ica relazione. invece. tutti i numi d'z attribute devunu essere diversi.
sempio, si consideri la tupla r = = 2;
dei dipaf— INTERROGAZIONE 21. Si calcoli la soma degli stipendi di tutti gli impiegaii questo d1d.1 media quello c minimo quello massimo, stipendio lo anche e ‘Ricerca’ timento partimento.
I21:
277
L'interrogazione nidificata con-elata calcola i1 numcro di persona a carico che ha ciascun dipendeme; se a maggiore o uguale a 2. e selezionata la tupla c dipendente. Ln mold casi si vogliono applicare 1e funzioni di aggregazjone per create Joflogmppi di ruple in una reiazione. sulla base dei valori di un attribute. Ad esempio. si pub voler trovare la “ stipendio medic dei dipendenti di ciascun dipartimento o i} numero di dipendenti che lavorano su ogni psogetto. 1n questi casi e necessario raggruppare 1e tuple che hanno lo stesso valo~ re di mm 0 pin atlributi chiamati attributi di raggruppamento e applicare la funzione a ognuno di questi gruppi indipendentemente. SQL ha, per questo scape, una ciausola GROUP BY -la quale specifica gli attributi di raggruppamento. Che devono upper-ire anche new domain
SEIECT, in mode che i1 valore risultante dall’applicazione di una funzinne a un gruppo di tu« : 1e cumpaja insieme a] valore dell‘attributu o degli amibuli di raggruppamento.
‘°
Ordinamcntu mull: significa che presi due valori quatsiasi uni dom'iniu, si put) detenninare qeale eompare‘primal dell’altro nell‘ordinamcnlo; ad esempio DATE, TIME 2: i domini TNESTAW hmno degh urdmamenu totai: sni lam valori. 1:053}:n 1c stringhe aifnbeliche.
SO; I; 1;. L «WW—W- __i-.- 4“
A menu the elcune Lupie abbiano iI vaiore NULL per l'at tribute STEPENDIO. ne! qual case non sum chute-.gigiei ,..:
.. H..,i
I
.
”if;-
,___
I”
"'I‘
I
'
I
SOL - Lo standard delle basi di dafl relazionatl 282
283
Capitolo 8
ga— a preferibile scrivere un‘interro per il sisterna generalmente . ente sia per '11 pmgranmatore sia egu cons ento e la nidificaz'rone e 1' ordinam e che zione evitaudo i1 pit pussibil are Ia stessa interrogazione a di moiti modi per specific tenz esis dell’ ie particulaper e Le svantagg usar ica tecn le qua te te. iI quale pub non sape pub causare confusion: nell’uten efficace eseguire un‘intcrro— problema e che pub essere piu altm U11 ne. azio rreg ri tipi di inte o. In teoria quests non si nafiv alter odo e piuttosto che in un met mogazione specificata in un mod interrogazione nel medesimo dovrebbe eiaborare la stessa o difficile in wst piut e dowebbe verificare: i1 DBMS sto Que . ione gaz e a specificata I'intcrro do, indipcndememente da com 1e interrogazioni specificate in metodi differenti per esegu'rre usa S DBM i ogn hé pratica. poic ilire qua] e la piu efficace tra stab é nte ore responsabilita dell‘ute modi diversi. Percib un‘ulteri Idealmeute l‘utente dovrcbbe e della stessa interrogaziune. varie specificazioni alternativ dovrebbe essere responsahilith e te nen eitar l‘imerregaziene corr preoccuparsi solo di indicare tuttavia, e meglio se l’utenca, nc in mode efficace. In prafi azio rrog . l‘inte uire cseg S del DBM osi da eseguire rispetto ad altd un'interrogamone seno pifi cost te sa quali tipi Iii costrutti in
e e Update in SQL Le istruzioni Insert, Delet
8.4
in SQL —- INSERT, DELETE si possum: usare tre comandi Per modificare la base :11 dati d. DATE — qui [ii seguito presente
8.4.1
e UP-
ll comando INSERT
a a una reaggiungere una singola tupl e INSERT viene usato per per la tupla. I vari valo di Nella sua forma piu semplic co elen 1111 e e '11 name della relazion staIaziorre. Si devono specificare attributi currispundenti sono neflo stem) ordine in cui gli cati :11— elen a re tupl esse va ero nuo rebb una Iori dov per aggiungere ATE TABLE. Ad esempio. TABLE ATE CRE o and ti specificati dal comando CRE com nel ata trata in Figura 7.5 e specific la relazione IMPIEGATO mos ruzione U1: I’Ist re usa pub si 8.1 re Figu IMPI EGATO. . . in
U1:
INSERT INTO VALUES
TMPIEGATO 293653', ‘1962-12—30'.‘98 (‘Richard‘, 'K’, ‘Marini’, ‘653 00, ‘987654321’, 4]; Oak Forest,Katy.TX‘ ,‘M’, 370
di specific-are esplicita— ne INSERT consente all'utente ando INSERT. Cit: e Una seconda forma dell‘istruzio com nel iti forn ri nu ai valo ti i. valuri degli attributi che corrispendo
meme i 1101111 di questi vanno assegna ti atu'ibufi. ma solo ad alcuni T utile se una relazione ha mel lli con la specificazione NO que tutti bufi devono includere DEr“; valo 110 111111 e LL nella nuova rupla. Questi attri NU tono i1 efinito; gli attribufi che censen ve impiega— NULL e nessun valere pred insefire 1111a mpla per 1111 mo per o, mpi ese Ad ti. scia :rala FAULT possonn essere NJ] e SSN si pub usare UlA:
attribufi NOMEflBATT, COGNGME, in di cui si commune sole gli
UIA:
INSERT INTO VALUES
iMPIEGA'IU (N OMB_BATT, COGNOME, N_D, SSN) (‘Richard’, ‘Marini'. 4, ‘653298653‘);
val GI1 ata'ibuti non specificati in UIA sono impostati ai Ioro valori DEFAULT 0 a NULL 6 i 53;; :fngoneEeiencau nello steam erdine in cui gli atrribuu‘ sane etencan‘ nel comanda INusando ease. possflmle anche msenre in una relazione ruple multiple, separate da virgole ’ 1111 51113010 camando INSERT. I valori degli attributi che format-10 ciascuna m 1' P a van— no posh tra parentesi. i dIJu DEF: ehe iruplemcnta completamente SQLZ dovrebbe supporlare e imporre tutti 1 ti— £0.11£35;‘1: 1mtegr1ctla fihe possum essere specificati nel DDL. Tuuavia in alcuni DBMS ciu ' ' a causa e a perdita di efficienza che pub derivare dall ’ " 11' II del far ' a comPiCSSHQ ' ad esem ' tutti i’ vincoli. Se 1m sisterna non su pporta aleum' vmcolr spettare ‘ ‘ 111m“' que 0 dell referenzrale , 50110 311 utenti oi programmaton' a doverh' far‘ ris ettareP10Ad gnta . . non su 55oSII che3561111310: 7.6. unP DBMS ' ' F1gura . di dati most:ata 1.11 . nella base 1.1‘ comandu U2 mimetic .LaEil-gtiflgaggggingmée esegurra l’inserimento anche se non esiste alcuna tupla DIPAEEI'JI'II’ a con NUMEHO‘_D = 2. Spetta alI‘utente verificare che non s ' a v1' 1 ' ’ 1:51;:— DBMSldem;J il 'Drttavia, DBMS. dai 1mplemenraro a nor: confront? car 1! :rmcelo (:11 Ch:r1:re 1 comt per far nspertare and i vincoli d’integrim di SQL che supper-m. Un DBMS amib:ogc{iai: d1 far nspettare 11 vincolo NOT NULL rifiuteré an comando INSERT in cui 1111 c arato come‘NOT NULL non ha un valore; ad esernpio U2A dovrebbe essere rifiutaro perché non e formto alcun valore di SSN.
IMPIEGATO (NOME_BATI‘. COGNOME. SSN, N D)
U2:
$8113: INTO
02A:
utato se 11 controllo deli‘integrith referenz'rale e fornit d D INSERT INTO MEGATO (NOME_BATT, COGNOME, NOD)a EMS *) — (‘Robert‘, ‘Hatcher'. 5); ViALUES . [ UZA e nfiutato se 11 controllo di NOT MILL é fumim da DBMS *)
(a; 112 a :fi
( Robert’. ‘Hatcher’, ‘980760540’, 2):
_
filming \lritnante uel cornmdo INSERT inserisce tuple multiple in una refazione in corrisponn9 ad 31::a crleaaroae della relazmne, usando per l‘inserimento 1'] 11311111110 di un'inren-ogazio‘11 numem deg; 2:113:21. id eselgnpro. 13:: create una tabella temperance che contiene i1 nome ' 1e ’ to. 51‘ possum: scnvere ' drpartunen ‘ ' ga e 3 anp en ' t u ta 11' per cmscun ismmom U3A e U33:
U3A:
U38:
CREATE TABLE [NOME__DIP NUMJMP TOTALSAL
INSERT INTO
$16!:w GROUP BY
1111:0319 VARCHARUS). INTEGER. IN I'EGER);
[NFO_D[P (NOME_DIP, NUMERO mam ‘ _ STIPENDIO_TOTALE) NOME_D, COUNT (*1, SUM (51195111310) (DIPARTIMENTO 10m IMPIEGATO ON NUMERO D=N NOMLE_D; _ JD)
284
285
SQL - Lo standard dalle hast di dati relazlonati
Capitolo 8
1e informazioni di sintesi recu— Una tabella INFCLDIP a create da UBA ed 5 caricata con
interrogate INFO_DIP coperate dalla base di dati dall’interrogazione in U33. Ora a possibiie si pub eliminarla usando piii. serve non quando e e. me si farebbe con qualsiasi altra relazion contenere dati non aggiorna» i1 comanclo DROP TABLE. Si noti che Ia tabella INFO_DIP pub e IMPIEGATO dopo l’immisti; cioe se si aggiomano 1a relazione DIPARTIMENTO o la relazion aggiomare. Se 5': desidera i‘agg'ior— sione Eli U313. 1e infonnazibni in INFO_DIP nan sorta pit)
azmni mferZenziafi che vengono innescate perché specifieate in vineOli d’integrita referenziaie del DDL (s; v-eda i1 Sottoparagrafo 8.1.2). Un‘ulteriore clausola SET specifics. i attributi da moriificare e 1 lore nuovi valori. Ad esempio. per cambiare 1a posizione e il numero del dipammento che controlla il progettO numerO 10 rispettivamente in ‘Beliaire’ e 5. 5i usa U5:
U5:
UPDATE SET WHERE
o 8.5). namentO automatico si deve create una vista (si veda i1 Paragraf
PROGET’FO SEDE_P : ‘BeHaiIe’. NUM_D = 5 NUMERO_P=1 D;
Pit: tuple possono essere modificate con un unjco comando UPDATE. Un esempio consi-
It comando DELETE
mento d1 stipendio due! 10 per cents. come mostrato in U6. In questa richiesta il valore modi-
clausola WHERE simile Il comando DELETE elimina 1e tuple da una relazione. Inciude una e. Le tuple sono cancellar da tuple le rc a quella usata nelle interrogazioni SQL. per seleziona propagaisi a tupub zione l’elimina . Thttavia volta. per tabella una da rimosse esplicitamente iale del DDL referenz ité d'integr vincoli da te ple di altre reiazioni 56 vi sonO aziom' specifica di tuple sele— numero del seconda A 8.1.2}. IagrafO SOttOpa i1 veda {si e che vengono innescat veniI canpossum mple pin 0 una . zionate dalla condizione neIIa clausola WHERE, nessuna . tutte 1e tuple presente a non WHERE clausola la Se . DELETE o comand cellate da un singolo base di dati come tabella nella relazione vengono eliminate; tuttavia la tabella til-mane nella entemente alla base 'mdipend applicat't se U4D, a fine e U4A in DELETE \mota.‘2 I comandi e tutte 1e tuple dalla quartz-O una. ncssuna. di dati di Figura 7.6. cancelleranno rispettivamente TD: IMPIEGA relazione
U4A: U413:
U4C:
DELETE FROM WHERE DELETE FROM WHERE DELETE FROM WHERE
MEGATO COGNOMfiz'Brown‘; MEGATO SSN=‘123456789’; MEGATO N_DIN [SELECT NUMERO_D DLPARTMNTO FROM
DELETE FROM
MEGATO;
WHERE
U4D:
8.4.3
ficeto STE-PENDIO dipende dal valore originale STIPENDIO in ogni tupla. quindi sono necessan due nfefimenti all’attributo STIPENDIG. Nella clausola SET. i1 n‘ferimentO alI’atu-ibuto STIPEN-DIO a destra 5i riferisce a] vecchio valore di STIPENDIO prima delta modifica e quellO a sunstra si riferisce al nuovo valore di STIPENBIO dope in modified: U6:
‘ E possibile anche specificare NULL O DEFAULT come nuovo vaiore di un attribute. Si nO— t: che ogni comando UPDATE speeifica esplicitamente 1e modifiche a una singola relazione. maiidi SQL) potrebbero essere ineorporati in un pmgramma di uso generale, come si vedra nel Capltolo 12.
8.5 Viste (tabelle virtuali) in SQL
NOME_D='Ricerca‘);
yam qui introdotto i1 concetto di vista SQL. illustrando come viene speeificata, aggiornata e nnplementata una vista dai DBMS.
II comando UPDATE
8.5.1
0 piil cuple selezio11 comando UPDATE e usato per modificare i valori degli attributi di ma.
valore di una Chiatuple da modificare in una singola relazione. Thttavia, Paggiomamento de1 se vi sono reiazioni altre di tuple di estema ve primal-it: pub pmpagarsi ai valori delta chjave
.E._-.___. l
ll concetto di vista
Una vista nella tenm'nblogia di SQL e una singOIa tabella che deriva da altre Izabelle.I3 che p05— ono essere tabelle base 0 elm: vista definite precedentemente. Una vista non esiste necessa-
‘
Came _ e usato qui , i] terrain e wsta ' é pm ' lmutato ' ' aspetbo ‘ n1l‘es Tessione vim meme ‘1] pmché una vista utente pub includere pit Ielazioni.
Si dew. usare il mmandn DROP TABEE per eliminate complemmente 1s tabella.
1W IL".
NOME_D=‘Rice1-ca’);
WHERE
Per modifieare pit relazmm si devono hmnettere pin comandi UPDATE. Questi (e altri co-
UPDATE seleziona 1e nate. Come nel comando DELETE. la clausola WHERE del comando
11
UPDATE IMPLEGATO SET S'I'IPENDIO = STIPENDIO *l.1 WHERE N__D IN {SELECT NUMERO_D FROM DIPARTEMENTO
-
n
I-
F.
5'-
P
'-
.
'
‘
'
l “5mm “31 capital] 1 e 2'
.
.L
.
-
8.4.2
ste nelIa- medifica necessaria per dare a tutti gli impiegati nel dipartimente ‘Ricerca‘ an au-
-
~__. _.,
286
L. -...‘..,
'
E—-—_....&
'
'
-__-.w—-
w--————u
'
i
M
'
Ir-n—-—--
'
\~\-—-v..
-
__——J
W
_.._....._.
._........_,
Capitolo 8
Specificazione delle viste
ll comando per specific-are on vista (2 CREATE VIEW. Alla vista :2 assegnato un nome di una azione per tabella [virtuale) [o nome di vista), un elenco di nomi di atu-ibuti e un‘inten'og dell‘ap— risultato il e vista deila. attributi degli nessuno specificare i contenuti della vista. Se degli plicazione di funzioni e di opetazionj aritmetiche, non e necessario specificare i nomi defini— di tabelle nelle enti con-ispond attributi degli nomi ai atuibuti, perché risuitano uguali Figura zione. Le viste in V1 e V2 creano delle tabelle virtuali i cui schemi sono illustrati in 1.5. Figura di dati di base delta 3.5 quando sono applicate allo schema
V1:
V2:
CREATE VIEW SELECT AS FROM WHERE CREATE VIEW AS
..
___.,‘..Q
_ ,___..=
A._ . — —..F
... \ .. ..
SQL - Lo standard delle basi dl datl relazionali
tabelle riamente in forma fisica; e considerata una tabella vii-male, in comrapposizione alle operazioni le limita Cio dati. di base nella te memorizza nte base le cui tuple sono effetLivame limitad1 aggiomamento possibili ehe possono essere applicate ad essa, ma non pone aleuna one. zione alla 511a interrogazi Si pub considerare una vista come no mode per specificare una tabella che si deve utilizSi possono zare di frequente anche se pub non esistere fisicamente. Ad esempio. in Figura 745 i nomi dei eseguire facilmente delle filterrogaziorfi che recuperano i1 name dell'impiegato e , LAIMPIEGATO tabelle delle join i1 specificare clover di Piuttosto lavora. egli cui progetti in vista Che VDRA_SU e PROGETTD ognj volta che si esegue l‘interrogazione, si puo definite una te sulla vi:2 un risultato di questi join. E possibile cosi effettuare 1e interrogazioni direttamen ioni che interrogaz di invece tabella singola una su sta, specificandole come interrogazioni sono Chiacoinvolgono due join su tre tabelle. Le tabellc IMPIEGATO, LAVDRLSU e PHOGETTO mate tabelle di definizione della vista.
8.5.2
.._.i.
SELECT FROM WHERE GROUP BY
LAVORA_SU1 NOMIELBATT, COGNOME. NOMEJ’, ORE IMPLEGA'IU, PROGETTO, LAVORA_SU SSN=S SN_I AND N_P=N1MERO_F; INFO_DIP(NOME_DIP, NUMJMP. STIP_TUTALE] NOME_D, COUNT (*), SUM (STIPENDIO) DIPARTEMENTO. EMPIEGATO NUMERO_D=N_D NOME_D;
__ _ I
237
In V1 non a: state specificato nessun nuovo nome di attributi per la vista LAVOFIA SU1 (anchelse sarebbe possibile farlo); LAVORA_SU1 emeditai nomi degli attributi di vista da—lle tabel2e {11 definizione IMPIEGATO, PHDGETTO e LAVOHLSU. La vista V2 specifica esplicitamente i nuovi nomj degli atlributi deila vista INFO_DIP, usando una corrispondenza one a uno tra gli atmomi specificati nelia clausola CREATE VIEW e quelli Specificati neila clausola SELECT defl‘liiten'ogazione che definisce la vista. Ora si possono specifieare intenogazioni SQL 511 una vlsta, o tabella virtuale, esattamente nello stesso mode in cui si specificano 1e interroga~ zioni che coinvolgono 1e tabelie base. Ad esempio. per recuperate il cognome e il Home di tutti gli impiegati che lavorano su agenoX‘, si poo utilizzare la vista LAVORA_SU1 e speeificare l’interregazione come in
QVl:
SELECT NOME_BATT, COGNOME FROM LAVORLSUI “(HERE NOME_P=‘ProgettoX’ ;
. La stessa interrogazione se specificats sulle relazioni base richiederebbe la specificazione di'due Join; uno dei vantaggi principalj di una vista e sempljficare la specificazione di determinate mterrogazioni. Le viste sono spesso usate anche come on meccanismo di protezione e autonzzazione. Unla vista 5 sempre aggiamara; 5: Si modificano 1: my}: nelle tabelle base su cui e definite la vista. automaticamente la vism riflette questi cambiamenti. La vista. quindi, non e reahzzata a1 memento della definizione. ma piuttosto quando si specified un'inrermgazione su di essa. B responsabilita del DBMS e non dell‘utente assicurarsi che essa sia aggiomata. Se una vista non serve pifi. si puo usare i1 comando DROP VIEW per eliminarla. Ad esempio per eliminate la vista V1 si pub utilizzare I'isn'uzione di SQL in VIA:
VIA:
8.5.3
DROP VIEW
LAVOMS U1;
Implementazione e aggiornamento delle viste
1] problems! dell’hnplementazione efficace di una vista per l’inten'ogazione e complesso. Sono stati suggeriti due approcci principali. Una strategist. chiamata modifica a] momenta dell’intermgazione, richiede la modifica dell‘interrogazione defla vista in un’interrogazione sul~
WORKS_ON1
l—NOMEfiATr ICOGNOME
NOME_P | one 1
DEPTJNFO I—NOMEJDIP l NUMJMP [ STIPJODALE L Figure 8.5 Due vista speeificate sulio schema della bass dl datl di Figure 15.
ie tab-clle base sottostanti. Lo svantaggio di questo approecio 9 Che non e efficace per le viste definite tramite interrogazioni complesse, che richiedono molto tempo di esecuzione, supra:tutto se sono effettuate interrogszioni multiple alla vista in on breve periodo di tempo. L‘altra strategia. deIrLa matefializzazione della vista, richiede la creazione fisica di una Labella tem-
poranea della vista quando viene eseguita per la prima volta un‘interrogazione su di essa e il mantenimemo di tale tabella presupponendo che seguiranno ain‘e interrogazioni. In questo se? " condo caso. per mantenete la tabella deIla vista aggiomata deve essere sviluppam una stra I gla efliciente che esegue il suo aggiomamento automatico quando sono agglomate 1e tab' di base. Per questo motive some state sviluppate delle tecniche che ussno il coneetto d1
..
..._.
SOL - Lo standard 'delle hast di datl relazionaii
Capitolo 8
288
e, canuina quali nuove tuple devono essere inserit 'omamentu incrementale, in cui si deten iamento in una dcfle camb un e avvien o quand ta, ializza mater cellate o modificate in una vista ire innuta purché su di essa si continuino a esegu tabelie base. 'La vista in genere viene mante a interrogaziene, i1 sialcun ita esegu vieue non tempo di o terregazioni: se per ml certo pefiod successitabeila fisica e ricaicolaria (is zero quando stema pub rimuovere automaficamente la vista. ve intenogazioui fanno riferimento alla a— e pub essere ambiguo. In generale un aggiom licate comp 6 vista delie ento ‘aggiomam pub ne gazio aggm a‘i rubella, senza nessunafimzione mento su una vista definite. su una singala richiede tabella base sottostante. Per una vista che sulla nto mame aggio un in tto essere trado mo mame aggio di zioni pub essere lradotta in opera dei join, un‘operazione di agglomamento nascono che ziali poten emi probl i ate illustr Per sulle reiazioni base sottostanti in vari modi. in vista LA su piit tabeile. si prenda in considerazioue dall‘ aggiomamento di una vista definite JI di ‘John NOME buto l‘attri rnare aggio per ndo il coma VORA_SU1 e si supponga di immettere in WI: ato mastr b vista Questo aggiomamento della Smith’ da ‘ProdottoX’ a ‘ProdottoY’.
UVl:
UPDATE LAVORA_SU1 NOMEJ’ = ‘ProdottoY‘ SET NOME_BA'I‘T=‘John’ AND WHERE COGNOME=‘SmiIh‘ AND ; ‘ ottoX NOME_P= ‘Prod
aggiernamenti delle relazioni base per ottene Quwta interrogazione pub riehiedere molti del(b) e [a] euti rnam agg'ie ibili poss sulla vista. Due re i‘effetto di aggiomamento desiderato erato su U'Vl some illustrati qui di seguito. ie relazioni base che datum l‘effetto desid LAVORA_SU O (SELECT NUMEROJ’ FROM PROGETT N_P = WHERE NOME_P=‘ProdottoY’) GATO SSN_I IN (SELECT SSN FROM IMPIE AND NOME_BA’IT=‘Jehn‘) ith‘ E='Sm OIVE COGN RE WHE
(3): UPDATE SET
WHERE
AND N) [N
(b): UPDATE SET WHERE
_-
O (SELECT NUMEROJ’ FROM PROGE'IT X’J: WHERE NOMEJ’r-‘Predotto PROGE'ITO NOMEJ’ = ‘ProdottoY‘ NOME_P = ‘PredottoX’;
tupia PROGETTO di ‘ProdottoY‘ a1 pesto della L'aggiomamento (a) coilega 'Iohn Smith‘ alia mamemo migliore. Tuttavia. anche (b) fa— aggio di tupia PROGETTO di "ProdettoX‘ 3 la tecnica tupla vista, anche se lo fa eambiando i1 name dells rebbe raggiungere l’effettb desiderato sulla ha specishe te l‘uten che babile impro E dot‘. ‘Pro ‘ProdotteX‘ nella relazione PHOGETI‘O in in ri che l‘aggiomamento sia interpretato come ficato l‘aggiomamento della vista UVl deside ttuX‘. ‘Prodo = P NOME_ con vista della tuple le tutte (b). poiché esso ha l‘effetto di cambiare o non avers moito sense; ad esempio modiAlcuni aggiomamenti della vista possone persiu non ha sense perché STIPflTOTALE é defiDIP INFO_ ficare l‘atIIibuto STIP_TOTALE della vista stae mostrata in UV‘Z: ; _.'; fendi .;"'°f~na]i def" iI'vftiegat'i. Guestarichie ' '
I
unfit
.n
UV2:
289
UPDATE INFCLDIP SET STIP_'IUI‘ALE=100[}DO WHERE NOME_D=‘Ricerca';
1: 3:;:ggtrz:$65211: dt agglzrubmaJ-nenfi allc relaziuni base sottostanti pOSsouo soddisfare ta[0 0 I“ . vista. aggmnianaento d1 una vista b fattibile solamente quando wt sop .95: I e agglomam-ema delle relazmni base corrisponde all‘effetto desiderato di a ‘oma [beige sulla vista. Ogni volta che un aggiomamento della vista pub essere eseguito atgtrgalversb pm 1 an aggt-omamemo nelle relazioni base sottostanti, b necessario avere una procedura sicura psi- sceghere una delie possibilita. Alcuni ricercatori haunt) sviiuppato dei metodi er sceghere l agglomamento che b pib pmbabile, mentre aitri vogliono che sia l‘utente a P ]i queIlo desiderato durante la definizione deila vista. 5963 are Rieptlogando si possono fare 1e seguenti osservazioni:
a
“1:1 vlsta‘defiiuta su una singola tabella é aggiornabile se i suoi attributi contengono la e. ave pnmana (o qualche aim chiave candidate) della relazione base perehé cib ll elaseuna mpla (virtuale) della vista a una singola tupla base' ‘ CO ega 1e viste defirute su tabelle multiple usando i join. in genere Ilifln sane aggiomabili' le nabm viste definite us an d o Ie funzmm ' ' d1' raggruppamente e d1' aggregazmue non sono aggior— ‘
-
dent: :32 la clausola WITH CHECK OPTION deve essere aggiunta alla fine della defini1'a . air-ism se questa deve essere aggiomata. Cib consente a1 sistema di controllarne ggmm 1th e di progettare una strategia di esccuzione per i suoi aggiomamenti.
8.6
Specificazione di vincoli generali come asserzioni
{33$}: glidutenti possono specificare vincoli pib generali - che non rientrano in alcuna del5m; 3.13:33303f nel Szgpirgfif. 1 .2 — arm-averse asserzioni dichiarative usando l’iCRE ION. A ogni assertibne viene asse at , ' Ecolgbslldneligicato alu'averso una cendizioue simile alla ciausola WHEREgréli :n’rilttrtlgrrféagg! _ ne . . esempio . per _ specificare . ‘ i1 vines-lb she “10 s bpendio non deve' ' (is' un Imptegato ‘ ‘ essere subenore a quello da un dmgente dei diparfimento per cui egli Iavora” in SQL2 é — stblle scnvere la seguente asserzione: , P08 I
.
u
0mm??? As'eR'HON VINCOLO_STIPENDIO (N EXISTS (SELECT * FROM MIEGKI‘O DIPARTIMIENTO D I, MEGATO M‘ WHERE I.S'I'[PENDIO>M.ST[PENDIO AND I.N_D=D.NUMERO_D AND D.S_SN_DIR=M.SSN)); ._
-
-
.h‘
.
:4n
_' La.
.. ../ ”ii
:3“
1" h.)
-
l...
'-
.- '
-
all.
nall SQL - Lo standard delle basi di dat! raiazio 294
295
Capitolo a
specificare (come nell’Esercizio 8.149.). Si pub memo invece che tutti i dipendenti no? hé pere o hé? questa interrogazione in SQL? Pem i comandi di aggiomamenti dell’Esercizio 7.19, usando 8.15 Si specifichino gli aggioma memo di SQL.
SQL $1110 $1161“ 516113 base d1 dati ‘fi Fi‘ 8.16 Si specifichino 1e seguenti in interrogazioni ma 1.2.
E. Si recupeiino inomi di tutti gli studenti
ulfimo anno ehe si specializzano in CS
dell‘
(Computer Science. Informatica). dal professor King dal 1993 al 1999. b. Si recuperino i nomi di tutti i corsi tenuti numero del cor— o dal professor King, si recuperi il c. Per ciascun modulo di cui-so tenut ulo. mod i1 ono scelg di studenti ehe so. il semestre, l'anno e il numero del libretto universitatio di ogui studente del— ione nascriz la e nome il ri recupe d. Si l'ultimo anno (AnnoCorso = 5) che si specializza in CS. Una trascriziune include ii segnamento. 1e ore di frequenza, ii seme nome dell'insegnamento, il codice dell‘in nts. stude nto completato dallo stre, l‘anno 6 it vote per ciascun insegname
pifi meriti di specializzazione degli studenti e. Si recuperino i nomi e i dipartimen in tutti i lore insegna-
il massimo dei voti tevoli (studenti c‘ne hanno conseguito
enti che non nti di specializzazione di tutti gii stud f. Si recuperino i nomi e i dipanime ti. enta frequ loro da enti narn gli inseg hanno ii massimo dci voti in tutti le segucuti operazioni sulSQL cli aggiomamenio per eseguire i zion istru 1e ano scriv Si 8.17 .-. . 1.2. ra in Figu lo schema della base di dati mostrato di dati. nelia base a. Si inserisca un nuovo studente 2. in th‘ ‘Smi 13. Si cambi la ciasse dello studente ‘CS4390’. 3.'CS‘> 100000. D" S MEDIO
’
Si‘NEESI DIP
c > (SEL—ECI‘ 0 FROM SlNTESI mp WHERE D=4 L — DIP SLN‘TESL D=3 13:4; SINTESI DIP
C > 4;
_
rt#, 8.20 Si prenda in considerazione lo schema della relazione CONTAINS (Parent_pa P,— parte la che significa CONTAINS in trovi si
tupla Sub_part#); il fatto Che una Pk che contiene la parte 2. come componente diretto. Si supponga di seegliere una pane -' non include altre parti e di voler trovarei numeri delle parti che di tutte {e parti contenazia~ gone Pk direttamente o indirettamente. a un qualsiasi livello; questa e un‘r‘merrag mostri ne ricorsiva che n'chiede i1 caleolo della chimra transitive di CONTAINS. Si i11che questa interrogazione non pub essere specificata direttamente con una singola speciterrogazione SQL. Si possono suggerire delle estensioni a SQL per consentire 1a ficazione di tali interrogazioni? e 121 die si 11'— 8.21 Se specifichino 1e interrogazioni e gli aggiomamenti degli Esercizi 120 feriscono alla base di dati COMPAGNIA_AEREA. 8.22 Si sceiga un’applicazione di base di dati con cui si ha familial-ha. di dati. a. Si progeni uno schema relazionale per la propria applieazione di basi b. Si dichiarino 1e proprie relazioni usando ii DDL di SQL. applicazione 6. Si specifichino alcune interrogazioni in SQL neeessarie per la propria di base di dati. attributi ehe d. 11: base ail'utiiizzo prevéntivato per ]a base di dati, si scelgano alcuni dovrebbero avere degli indici specificati su di Ioro. e Si implemenfi la base di dati se 5i ha un DBMS che supporta SQL. 8.23 Si speeifichino 1e risposte degli Escrcizi da 7.24 fine a 7.28 in SQL.
AZIENDA di Figure 7.6:
Bibliografia selezionata
CREATE VIEW AS SELECT AS FROM AS GROUP BY
sul linguaggio SQUARE l] linguaggio SQL. clfiamato oi'iginariamente SEQUEL, si basava zioni come Espresluterroga di zione Spedfica ons. Expressi l Relationa as (Spemfymg Queries
EDIO} SIN'I'ESLDIP (D. C. SJUI‘ALE. S_M 'DIO), AVG (STIPENDIO) N_D, COUNT C"), SUM {STIPEN INIPIEGA'IU N_D;
300
Traduziane da sehemi ER 9 ER a schemi reiazianali
Capitala 9
301
primal-is delle relastruenda la relaziane LAVORA_SU di Figura 15.2 Si insertseana 1e chiavi ina rispeturidenom Si 1:: e SU LAVORA_ di esteme ziani PROGETTO e IMPIEGATD came chiavi SU, per rappresentate LAVORA_ in ORE ath‘ibuta un anche inserisae Si SSNflI. e P N vamente relaziane LAVOHA_SU e data l‘attributa are del tipa di assaciaziane. La ehiave primaria della
PASSO 7. Per agni tipa di assaciaziane n-aria R, dove n > 2. si castruisca una nuava relazia— ne 5' per rappresentare R. Si inseriseana in 5 came attributi di chiave cstema 1e chiavi primarie delie relazionj che rappresentanai tipi di entita partecipanti. Si inseriseana anche came attriburi di S tutti gli attributi sempljci del tipa di assaciaziane n-aria (a campanenti semplici de— gli attributi campasti). La chiave primaria di S e di salita una combinaziane di tutte 1e chiavi
R deve essere spemfiSulle chiavi esteme della relazione canispandente ail’assaciaziane jale innescata (si veda ti Pareferenz azione 1’ per DE) (CASCA ziane propaga di e l‘opzion cata una dtpendenza d1 e51ragrafa 8.1), dal momenta che agni istanza di assaciaziane presenta per ON UPDATE 51% per stenza da ognuna delle entita che collega. Cit) pub essere usata sia
esteme che dfefiscona le relaziani rappresentanti i tipi di entita partecipanti. Pera, se una qual«
0N DELETE.
Ad esempia. si cansideri il tipa di assaciaziane FGHNITUHA di Figura 4.13(a). Essa pub es— sere tradatta nella relazione FOHNITUFtA mastrata in Figura 9.1, la cni chiave primal-in a data dalla combinaziane di chiavi primarie {HOME}, NUILPAHTE, NDME_PF.OG}. II punta fundamental: da natare in una schema relazianale é che. al contraria di quanta av— viene in una schema ER. i tipi di assaciaziane nan sana rappresentafi esplicitamente; essi 50na piuttasto rappresentati can l'uso di‘ due attributi A e H, mm chiave primaria e l'altro chia- ' ve estema — sulla stesso daminio — inseriti in due relazianj S e T. Due tuple di .S' e T sono coliegate quanda hanna lo stesso valare per A e B. Usando l’aperaziane di EQUIJOIN (a IOLN NATURALE) su SA e IE, 6 possibile combinare tuttc 1e cappie di tupie callegale da S'e Te da: corpa all’assaciazione. Quando a: interessato un tipa di assaciaziane binaria 1:1 0 1:N, e di solito necessaria una snla operaziane di join. Per un tipa d.i associazianc MzN binaria sana necessarie due aperaziani di join. met-1m: per tipi di assaciaziane n-ari sano necessari I: join. Ad esempia. per fannare una relaziane comprendente il name dell'impiegata, il name dei pragetta e 1e are lavarate dall‘impiegata su agni pragetta. ocean-e callegare agni tupla IMPIEGATO alle relative tuple PROGETTO, tranfite la relazione LAVOHA_SU di Figura 7.5. Percia si deve eseguire l’operaziane di EQUIJOIN sulle relaziani IMPIEGATO e LAVOHA_SU can 1a candiziane di join SSN = SSN_I, e quindi eseguire un‘altra operaziane di EQUIJOEN sulla relazianc risultante e sulla relazione PROGETTG can condiziane di join (L? = NUMERO_P. In gene-
N__P}. dalla cambinaziane degli attributi di chiave esterna {SSN_I,
.
mode analoga a quanta Si noti she a sempre possibile tradurre associazioni 1:1 0 1:N in utile quanda eststana pafatta per le assaciazioni M:N. Questa possibilité e particolannente nelle chiavi estcme: In que— che istanze di assaciazione. per evitate la presenza di vaiari nulli mm delie ehjaw esterne sta caso 1a chiave primaria della relaziane “assaciaziane” 53:5 3010 lzN questa saxa 1a ch13.iaziane un’assac Per nti. partecipa “entith” i che riferiscano 1e relazion 1:] e scelta came iaziane un‘assoc Per ve estema che riferisce la relazione entita al lato-N.
entita can partecipaziane tatale (se chiavc primaria la chiave esterna che riferisce la relaziane esiste).
relaziane R. Questa relaPASSO 6. Per ogni attribute multivalare A, 5i oostruisca una nuava dj chiave pnmana K — l‘attributa pit) A. ad dente con-ispan ziane R comprendera un attribute 0 i1 tipa di assoc1acome chjave esterna di R — della relazione che rappresenta il tipa di entita ziane di A e K. Se cambina dajla data 3 R di primaria chiave La ziane che haA came attribute. semplici.3 nti l’attributa multivalare é campasta. si cansiderana 1e sue compane SEDE_D rappresenNel nastro esempia. si castnlisce una relaziane SEDI_DIP. L’ attribute chiave estei'na —_ came — JJ NUMEHD ta l'atuibata multivalore Scdi di DIPARTIMENTO, mentre primana d1 chiave La ENTO. DIPARTIM relazione della primaria rappresenta la chiave una tupla esistera P SEDI_DI In . SEDI DIP E data dalla combinaziane di {NUNTEBO_D. SEDE_D} . nta. dipanime un di separata per ognj sede
8.1) davrebbe esscre spec1ficata Per l’aziane referenziale innescata {si veda i1 Pamgrafa
siasi dei tipi di entita partecipanti E in R ha 1 came vincalo di cardinalita. allora la ehiave priman'a di 5' non devc camprendere l‘attributa di chiave esterna Che rifen'sce la rclaziane E“ can rispandente a E {si veda il Paragrafa 4.7). Can cia si conclude la procedure di traduziane.
FORNHORE
..... —
canispandente all‘ apziane di prapagaziane (CASCADE) sulla chiave esterna della :elaziane . l'attributa multivalare, sia per ON UPDATE sia pet 0N DELETE
le'attenuta seIn Figura 7.5 (e Figura 7.7} e mastrato la schema di base di dati relaziana canvo del: esemplifi stata uno ntata rapprese e 7.6 Figura in mantra ti. guenda ipassi preceden di assactazmne n-an la base :1} dati. Si nati che non é stata finara trattata la traduziane di tipi simile ai tipi di as[n > 2), perché in Figura 3.2 non cc ne sane; essi vengana tradatti in mode di traduziane. saciaziane M:N inserenda il seguente passe aggiuntiva nell’algoritma
PHOGE‘ITO
m—em — PARTE
mm .FURNITURA
3
-.
'r-wm
i
a un'istanza di aasaciaaiane. Quest: Sana taiara dctte netazfom' associazr'ane perché agni tupla (rig-a) canispande aleuni degli attuchiave di R acme richiesn sala In alcuni casi quanda LI1'I attribute multivalarc e compasta, nella
pantale di un um 01 entita debuti campanenti; questi auributi svalgana funziane analaga a quella di una chiave a V ' te all". ' 'multi'fix't :..'. .“°m- ”I.
W -flaw “flaw—m-
J
No
NOM FROG
NUI’LLF‘ARTE
J
QUANTrrA
1
Figure 9.1 Traduzione dal tipa dl a__ssaciazlane n-arla FDRNITUHA di Figura 4.13{ ].
awn.- v—aaé- M inguuni’fi-J‘
’--...
'I
.
=-.
.
.:.I
-
:1'
l”.
..;:
-,....___
-_,..____.-
302
Traduziane da schami ER 3 EER a sahemi relazianall
Capitele 9
devene essere specificete numerese rate. quande é necessarie attraversare pit) asseciaziani, deve essere sempre inflermate su nale relazie dati di base una di e eperaziani di join. L‘utent ato- tuple
da usarli carrettamente nel combin quali sane gli attributi di chiave estema, in made vicne eseguita an EQUIJOINt tra tattt'tbutt d1
cellegate pravenienti da due a pm reiaziani. Se chiave estemafchiave prunana, 1! mauldue rclazieni che nan rappresentana un‘assaciaziane a dati spuri (non validi). Ad esempla, partate pub e ato signific di priva tata pua essere spessa TTG e SEDI_DIP sorta la candlPRDGE ni relazie i1 lettere pua pravate a unite tramite join it: ’ anche i1 Capitala 10). veda ata(si i1risult quindi are esamin ed SEDE_P ziane SEDE D = telemautla ta castrui viene Che 5 nale relazie schema _ Un altro—aspette degne di nota nclla spec‘fica entité canlun 1n51eme d1 valert per ne separata pet ogm' attribute multivalore. Per una dell’enfité e ripetuta in mm tupla separachiave ributo l’attributo multivalare, il valet-e dell’att perché i1 ta per egni valet-e dell‘ attribute multivalare. Cie
medeile relazianale di base nor: can-
pet un attribute di una tupta smgala. Au sente vaiori multipli (una lista, a un insieme di valeri) reiazione SEDI_I?IP d1 Figure 7.6 e51esempia, data che i1 dipartimente 5 ha tre sedi, nelia esempia, 51 apphcal EQUiIOIN nostra Nel sedi. delle una a stane tte tuple; ogni tupla specifie _D pet ottenere i valor; d.1 tutte NUMEHO e a SEDI DIP e DIPARTIMENTD sulla base dell‘ attribut e n'sultante. i vaiari degli altelazion Nella . IMENTO DIPAHT di i attribut altri 1e sedi i—nsieme con egni sede del dtpartimento. per e separat tuple tri amibuti di dipartimente vengano ripetuti in C'PQ-O COMPRE§S {NIDIFI NEST raziane un’ope ha non base di L’algebra relazienaie ch tura 7.6 un tnIP SEDI_D e relazian (COMPRIMI). 1a quale produnebbe a pam're dalla e, :Sugarland: Flea; {Bellair Y, Ira due insiemi di attributi X e Y che sis310 sottoxnsremi d1 R specifica un vincolosulle tuple che possone formare uno state di rela—
d one r d: R. I] vmcolo e che, psi: ogpi coppia di tuple r; e :2 in r per le quali é r1[XJ = r2[X]. si dive avere anche {AF} = :2[Y]. C16 Significa che i valori della componente Ydi una tupla in r 1 pesdene da, 0 sum determined da, i valori della eomponente X, o, in altemativa, che i vacl; lella cemponente X ch tina tupia determinant} univocamente (o fnnzionalmente) i valoftime-la componente Y. S: dice anche che c'é una dipendenza funzionale da X a Y o che Y a mglnggdni‘egteg‘iipendente da X. L’abbreviazione per dipendenza funzionaie e DF 0 d f. (in . .: Pam: ncn’anai dependency). L’insierae di attribu n' X e detto parte sunstra DF, .6 Y 5 edemo destra_ ‘ ' .delia
PenantoX determina funzionalmente Yin uno schema cfi relazioneR as e 5010 se, ogni veita che due tupIe di rtR) eoncordano su] loro valore X, esse devono necessaiiamente concorda-
re anche sul Ioro valore Y. Si noti quanto segue: e
se un .vincolo su R stabilisee che non ci possa esseze pifi di una tupla con un data valore
per X in una genenca istanza di reiazione r(RJ — cioe X a una chiave candidate (H R — cib implicafiche I]: —> Yper qualsiasi soHeinsieme Y di amibuli di R (perché i1 vincolo di chiave c c e nessuna coppia 101-31111Iii-3X)? ' d1' tuple in ' un qua151as1 ' ' stato valido r(R) and I0 stcsso va'
0
seX—> Yin R, cib non dice seinR Y—aXoppure no.
isa dipendenza funzionale e una proprieta della semantica 0 del significato degli attribiitl. .1 progelnsti della base di dati useranno la 10m conoscenza della semantica de Li atil'rlbuil‘dl R — vale a dire come sono collegati tra di lore — per specificare 1e dipendenzge funzmnali che doirrebbero sussistere su tutti gli stati di relazione (estensionj) r di R Ogni volta che ia semantica di due insiemi di attributi in R indica che deve sussistere unaidipendenza
10.2 Dipendenze funzionali
funzionale. ia dipendenza viene specificata con un vincolo. Estensioni di reiazione r(R) che snddlsfano 1 vincoli di dipendenza fimzionale sono deIIe estensioni valide (a stati validi
di schemi relazionali e quelio di dipendenI] concetto pits importante nella progenazione nente questo cuneetm. mentre nel Para’ fonnah e za funzienale. In questo paragrafe si definit definite forme normali per schemi di regrafo 10.3 si 'vedxa come esso posse essere usate per lazione.
di relazmne) d: R, perché soddisfanu i vincoh' di dipendenza funzionaie. L’uso principale delle dipendenze funzienali e percib quello di descrivere ultefiormente 11110 schema di relazione SI. tralmte 'una specflicamone dei vincoli sui suoi attributi che devono valere sempre. Certe lpendenze funnonali possum) easere specificate senza riferirsi a una particolaxe relazione ma come una propneta degli attributi coinvoln'. Ad esempio, {Stan}, Numer‘o patente} —; S_SN dew: vaiere per ogni adulto negli Stati Uniti. E anche possibfle che certe dipendenze funzmnali possane cessare di esistere nel mondo reale se l’assoeiazione cambia. Ad esempio
10.2.1
L....__.__
321
10.1.5 Sommario ed esame delle linee guida di progettazione
aggiuntivo durante l‘inserhnento in una anomalie che n'chiedone che venga fatto un iavoro o causare una perdita aceidentale posscn che e ne. telazio una di relazionc e la modifica ne; relazio d’informazione durante una cancellazione da una lta di eseguire operazioni di difficu e nulli valori di causa a ria - perdita di spazio di memu nuili; valori di za presen aggregazione e operazioni di join a causa della base unite in mode imdi ni reiazio su join i e durant spuri e validi generazione di dati non proprio. lti formali e um leon'a che possono essere Nel resto del capitolo vermnno presentati conce a qualim" e “catfiva qualith" dei singali “buen di tti usati per definite pi!) precisamente i cence tutto la dipendenza funzionale come strumento schcrni di relazione. Vena esaminata prima di normah' e la fun-11a normaie di Boyce e Codd d‘ analisi. Quindi si speeificheranno 1e Ire forme relazione. Nel Capitelo 11 verranno forniti di i schem per form) l (BCN'F: Boyce-Cedd norma i di relazione formi, nei complesso, un criteri aggiuntivi per verificare se un insieme di schem ted anehe degli algeritrni che fanno presen no Venan nale. relazio dati di buono schema di base Le forme normali definite in quenali. reiazio parte di questa teoria per progettare basi di dati aie, descritte nel prossimo parafunzion enza dipend di to concer sul sto capitole seno basate grafo.
«4......
Dipendenze funzionali e normalizazione per basi d! dati Eelazlonan'i
Capi‘ioio 10
Definizione di dipendenza funzionale
attributi della base :11 dati. Si supUna dipendenza funzionale a un vincolo In due insiemi di n atm'buti AhAz. ..., A,,; 5i pensi abbia penga che i1 nostro schema di base di dati reiazionaie di relazione universale R = schema solo un da deacr'ma fosse at; come “‘infera base rli dati ..'-f M. -_.._-.._-— -‘.._.. m -_......__ M
Queslo 59, d; daficoncerto mafionalech" relazione universal e a. :m ' par: a nle neilo studlo ' degl:‘ .11go'r'mm' per 19 pmgeltazmne d1’ unq ba—_ ‘ I "85m m
.
.
. ‘ . I I 3mm fa“Gum:3:12:13."33:1egg-13:30:“) nefla base :1:‘ dan‘ debba avere un name dim‘mo. Ne! Capitolo 7313—:
a fl
_
.-
:_
{1
e. .. . : .‘
19');a djstint? Dunn-gnu 10 “MM ..
.
.
.
,
‘
. .
.
a' ' . .
:
'i'ef non-u dl relazionl per onenere l uniclla ogm volts che anti-abut} In ,3. _- . .eii.'... . .4. .' \ .J ‘I
I
-.._
é
.
'
Dlpendenze funzlonall e ncrrnallzzazione per basi di dati relazionali 322
323
Capltolo 1O
10.2.2
Regole di inferenza per dipendenze funzionali
INSEGNA ‘ DOCENTE Smlti'l
Smith Halt Brown
1NSEGNAMENTO Shm‘Lura dafi
Gaatiom dafl Compilatofi Strutmre dafi
TESTO Barnum
N-Ncur Hoffman-I Augerrthelar
INSE‘ una dipendenza funzlonaie apperante TESTO —9 figure 10.? Lo state deiia relazlone INSEGNA con re. BNAMENTO. INSEGNAMENTO —; TESTO é Invece da eeclude
Si indichi con F l'insicme di dipendenze funzionali specificate sullo schema di relazione R. 'flpicarnente i3 progetLista dello schema specifica le dipcndenze funziunali semanticamnm evidenri; di solito, pcrb, sussistcnc Inclie altre dipcndenzc funzionali in rune 1e istanze di relazicne valjde che soddisfano 1e dipendcnze in F. Questc altre dipendenze possonc essere in— feritc o dedotre dalle dipendenze ftmzionalj presenti in F. Per esempi tratti daIIa vita reale é praticamcntc impossibile specificare mite 1e dipendenze funzionali che posse-no sussistere. L’insieme di tutte quests dipcndenzc a dettc chiusura di F ed :3 indicate can F“. Ad esempio. si suppcnga di specificare i1 seguente insiemc F di uvvic dipendenze funzjcnali sullo schema di relazicne di Figura 10.3(a):
trai codici di Wamento pcstale e 1 pre1m tempo negli Stafi Unifi esisteva un'associazione dipendenza funzmnale Godlce_evv_pola tramite ere esprim potcva si che jci, fissi telefon azione dei prefissi telefcmm C16 nan a prolifer la con ma stale —> Prefisso_talefonicc, ‘
_
pit veto.
F={SSN—>{NOME_I, DATA_N, INDIRIZZD, NUMEROJJ}, NUMERG_D —> {NOME__D, SSN_DIR_DIP}} E possibile infen’re da F {e seguenti dipendcnze funzionali aggiuntive:
10.3(b); dalla semantica degh atSi consideri lo schema (ii relaziene IMP_PROG in Figure nze funzionali: tribufi sappiamo che devono sussistere 1e seguenti dipende
SSN —-> {NDME_D, SSN_DIR_DIP}. . SSN —-) SSN, NUMEHOJJ —-> NOME_D
a. 531-: —> NOME_I b. NUMERO_P—> {NOME_P, SEDE_P} c. {35m NUMERO_P} —-> one
Una DF X ——> Ye inferita da un insieme di dipcndenze F specificate su R se X —-> Y sussiste in ogni state di relazione r che sia un’estcnsione valida di R; cicé. ogui Volta che r scddisfa cutie 1c dipendenze in F. in r sussiste anche X —> Y. La chiusura F“ di F e l‘insieme di tutte le dipendenze funzionali che possono esserc dedotte da F. Per determinate un mode sistematico per inferh'e dipendenze, cccon'e Imvare un insieme di regole di inferenza che possum: essere usate per inferire nucve dipendenze a partirc da un insieme date di dipendenze. Ora si considereranno alcune Iii queste regole di inferenza. Verrh usata la notazionc F I: X ——) Y per indicare Che la dipendcnza funu'onale X —> Y e inferita dall’insieme di dipendenze funzicnali F. Nelle discussione segueme quando vengono esaminate 1e dipendenze funzionali si usera
(a) ‘il valore de‘ll nuE-nero di prewdenza Queste dipendcnze funziunaii specificano che [1 name dell 1mp1cgeto (NOME_I). (1:) ameme uIfivoc ina determ (SSN) ato impieg sociale di un ina univecamcctell name del prodeierm O__P) (NUMER i1 valore del numero di un progetlo
_FIG_P (c) una combinazione del valor: d1 SSN e‘ltlUME getto (NUME P) (:13. sua sede (SEDE_P). e to dell enplegato
te a settimana sul proget determma fiivocamente i1 numero di ore lavora funziocalmeete da {0 efunzmne‘lmen— inato dctenn e I NOME_ che dice si tiva (ORE). In altema sappxamo 11 valere d1 NOMEJ e conoi SSN. di valore un {e dipcndente da) SSN, 0 Che ”date ‘
.
' . erd deHo schema di regazione (mtensmne) R. Vanda di djpendenza funzionale a una propri sicne) r d1 R. Perelb una DF non pub esnon di un panicolase state valido di rclazione (esten di relazicne r. ma deve essetc defimla ione estens data una da eme sere dedotta automaticam degli ateibuti di R. Ad esemplc, 1n F1tics. esplicitamcnte da qualcunc che conosce la seman ne INSEGNA. Anche se
si
late dello schema d1 relane gura 10.7 viene mostrato uno state particu
AMENTO. nee e posslbfle confermare qcesta a prima vista si pub pensare che TESTO -—r INSEGN start valid: (11 IN§EGNA. E perb suffiuente ibili I'poss tutti per veto a ipotesi se non si 59. she cit} Ad esempm, data
enza fccmcnale. descfivere un 5010 ccntrcesempic per escludere una dipend 11e concludere che DOGEN -
one dati‘, a poss1b Che ‘Smim’ insegna sia ‘Stmtture dati‘ che ‘Gesti TE mm determine funzicnalmente INSEGNAHENTO. mmatica per :appmeentme 'graficmentfi In Figuxa 10.3 e introdotta una notazione diagra
mecte con uca new on'zzontale. G 1e dipendenze funzionali: ogni DP 3 rappresentata grafica e knee xterucap alla knee. Che raptramit ati colleg scno DF della attributi della pane sinistra u traxmte frecce che pumasono ccllega presenta la DF, mentre gli atuibuti della partc destra no verso gli atu-ibuti stessi.
una netazicne abbreviate. Le variabili di attribute vcrranno concatenate e 1e virgole omesse
per comedité. Percic) la DF {XX} —-> Zt‘: abbreviate. in 37—) Z, e 19, DF {X,Y,Z} —-> {H.V} e abbreviate in XYZ _, UV. Le seguenti sci regole (da R11 3 R16) sono note regole d1 inferenza per dipendenze funzionali:
R11 (regola riflessiva):" se X 2 Y. aflora X —> Y;
R12 (regola di arricclfimemo):5 {X -> Y} I=XZ —) YZ;
R13 (rcgola transitiva): {X —> Y, Y» Z} 1: X —> Z;
R14 (regcla di dcccmposizionc, 0 di pmiezione): {X —> YZ} I: X —-) Y;
La regola riflessiva pub anche assert: enunciatn come X —9 X. 03519, 03,111 insicme di attdbun' determine funnie— nalmente se stucco. La rcgcia di sm-icchhnenm puc anche esscre enuncizra come {K —v Y]: I=XZ —» Y. cssin. l'ardcchimento dcgli 3!tributi d3 pane sinistra di una DF produce un'alun DF valida.
Dipendenze funzionali e normaflzzazione per basi di dafi relazionali
Capitolo 10
Z. R16 (regoia pseudo-transitiva): {X -> Y. WY—a Z} [= WX —> i determine sempre se stesso o La regola riflessiva (R11) afferma Che on insieme di amibut genera dipendenze che sono R11 che Dato ovvio. e che i1 uno quaisiasi dei suoi sottoinsiemi, ona dipendenza funzionale meme sempre vere. queste dipendenze sono dette banali. Fonnai
nnie. La regola di auicchimento (R12) sostieX —> Y e hanale se X 2 Y; altrimenti e non-bo attriboti aila pane sinistra e alla parte destra di una
ne che aggiungendo lo stesso insieme di o la R13 1e dipendenze funzionali sodipendenza si ottiene un’ altIa dipendenza valida. Second e she 51 possono rimuovere attributi no transitive. La regola di decomposizione (R14) sostien di questa regola puo decompom ripetuta zione applica 1‘ nza; dalla pane destra di una dipende A“ X —> A2. X -> A,,}. La re——> la DF X 4 {A,, A3, 21"} nell‘insieme di dipendenze {X are un insieme di dipen— combin le possibi é to: l‘oppos fare di gola di unione (R15) consente An]. A2, {A,, X—> denze {X ——) A“ X -> A2, X —~> AH} nella singola DF a partire dalla definiata dimostr essere puo a inferenz di Ognuna deile precedenti regole per assurdo supprova Una o. assurd zione di dipendenza funziona1e. can prove diretla 0 per ora dimostra— Verra . dizione contrad una a porta cib che mostra e pone Che la regola non valga . assurdo per e prova seconda La to che 1e prime tre regole (da R11 3 R13) 5011:: valide.
, PROVA DI R11 una certa istanza di relazione r di R Si supponga che X 2 Y e ehe esistano due tuple r, e :2 in 2 Y; percib in r deve valere X -> Y. tali che rflfl = 1;.[X]. Allora tfl’] = £2[Y} perché X
PROVA D1 R12 (PER ASSURDO) Y. ma che non valga la XZ—-> YZ. Si suppenga che in un’ istanza di relazione r di R valga Ia X —-> I,[X], (2) I;[Y] = r1[Y1, (3) IJXZ] = IIIX] (l) Che Devono percib esistere due tupIe I, e r; in r tali e (3) si deduce (5) t,[Z] = t3[Zj. (1) da perché e, possibil e non Cib IEEYZ]. ¢ = QUIZ]. e (4) film (4). e da (2} e (5) si deduce (6) I,[YZ] = tziYZ], contraddicendo
PROVA DI R13 (2) Y—; Z. Allorn, per ogni Si supponga che in una relazione r sussistano sia (1) X -—) Yche = 120’}. dall’assunzione MY] (3) avere deve si coppia d1 tupie r. e :2 in r tali chc QEX] = rapt], (2); quindi in rdeunzione dall‘ass e (3) dalla r,[Z]. = £,[Z] (4) avere anche (l); percio oceorre ve valere 1a X —> Z.
PROVA D1 R15 (USANDO DA R11 A R13) . X —> 1’ (data). . X —-9 2 (data). X -> XY [115m R12 so 1 arricehendo con X; si noti che 101' = X). KY ——> YZ (usando R12 so 2 airicchendo eon Y).
P‘PP’NH
I: X —> 12; R15 (regola di unione. o additive): {X —> Y, X —+ Z}
325
X —) YZ {usando R13 51: 3 e 4).
PROVA DI R16 (USANDO DA R11 A R13) 1. X ——> 1’ (data). . WY—> Z (data). WX—> WY (usando R12 su 1 anicchendo con W). WX—> Z (usando R13 so 3 e 2).
PM:
324
E state dimostrato da Amsnong (1974) che 1e regole di inferenza da R11 2. R13 sono cor— rette e complete. Per corrette si intende che, date on insieme di dipendenze funzionali F speCIficate su tmo schema di relazione R, tutte 1e dipendenze che e possibile inferire da F usando 1e regole da RI] a R13 sussistono in ogni stato di relazione r di R che soddisfa 1e dipendenze in F. Per complete si intende che, usando Iipetutamente le regole da R11 a RB per infenre dipendenze finché non se me possono dedun‘e pin, si ottiene come risultato l‘insieme complete di mm: 12 possibiii dipendenze che possono essere dedotte da F. In altre parole l‘inSIeme di dipendenze F‘, che a state detto chiusura di F, pub essere determinate da F usando solo 1e regole di inferenza da R11 a R13. Le regole di inferenza da RH 51 R13 sono note come regoie di inferenza di Armstrong} Tipicamente i progettisti di basi di dati dapprima specificano l‘insieme F deIle dipendenze funzionali che possono essere facilmente determinate dalia semantiea degli atu-ibuti di R; poi usano R11. R12 e R13 per inferire uiteriori dipendenze funzionali, 1e quali saranno pure valide su R. Un mode sistematico per determinare queste dipendenze funzionali aggiuntive e quello di detenninare prime di tutto ogni insieme X di attributi che appare come pane sinistra d1 qualc‘ne dipendenza filnzionale in F. e poi di determinate I‘insieme di mm" gli arm'bun' che sono dipendenti da X. Percib per ogni insieme X di attributi di questo tipo, si calcola l’insieme X” di attributi che sono determinati fimzionalmente d3. X sulia base di F; X+ e detto chinsura 111 X rispetto a F. Per caleolare X‘ pub essere usato l'Algoritmo 10.1. ALGORITMO 10.1 Determinaziona d1X‘. chlusura dl X rispetto aF.
X‘ := x; repeat
:13 R14 a R16 e Usando argomentazioni simili e possibile provare 1e regole di infereoza re che una regedimostra per semplice pifi mode un Perb valida. inferenza di regola ogni altra usando regole di infeia di inferenza per dipendenze funzionaii e valida consiste neI provarla 1e regole da R14 21 R16 renza Che sono gia state dimostrate valide. Ad esempio. si poo provare usando 1e regole da RIl a R13 come segue:
oldX‘ := X'; for ogni dipendenza funzionale Y -+ z in F do
if X“ 2 Y then X' := X' U 2;
until {X' = our);
PROVA DI R14 (USANDO DA R11 A R13) 9
1. X -—) YZ (data).
w LWL
w
A one II vero.lesse sono note oome auiomi di Armstrong. Peru. in sense mammadco strello. gli assiarm' (fatti dam) sane le dipenoenae funzionali in F. dam che si supp-one che ease siano corrette. meme 1e regole da RI: :1 RB-sono le regal: (If irgferenza per inferire nuove dipendenze funziormli (nuovi fatti).
2. Y2 —> Y (usando R11 e sapendo Che Y2 Q 1"). -
-
' f-
.
. Ea
:-. ';.' w? "'5;
;._ "
.
'
‘
a
‘3
.
-_..
:
n.
.
_.... _ I.
325
IMP_PROG: F'= {sew —. N0ME_;, NUMERO_P -+ {NOME_P, SEDE_P}, {$3N, NUMEHO_P} —» ORE}
1. 2. 3.
} {NUMEHU_P}‘ = {NUMEHD_P, NOME_P, SEDE_P
NOME_I, lllOM'!E_PJ SEDE_P, ORE} (SSH, NUMERO_P}‘ = {SSN. NUMEROJ’,
4.
10.2.4
ale se soddisfa le seguenti condizioni: Un insieme F di dipendenae funzionali e minim destra un solo attributo; 1. ogni dipendenza presente in F ha come pane X -+ A. di F con una dipendenza Y a A. doenza dipend una ire 2. non 5 mai possibile sostitu un insieme di dipendenze equivalente ve Y e un sottoinsieme proprio {11’ X, e avere ancora
aF; enza da F e aware ancoza un insieme di dipen3. non 5 mai possibile rimuovere one dipend denze equivalente a F.
Poni G := F. Sostituisci ogni dipendenza funzionale X —» {A1, A2, ..., A} in .., X —: A 6 con la n dipendenze funzionali X —> A1, X —> A2, Per ogni dipendenza funzionale X ——> A in G ”I per ogni attribute 8 che sia un elemento di X so ((6 - {X —) A}] U {{X — {8}) ~—) A}) e equivalents a G, allor'a sostituisci X —a A can (X - {5}] —> A in G. Per ogni dipendenza funzionalo rimanente X —9 A in 6
se (o - {x —+ A}) e equivalents a e,
ionali Equivalenza di insiemi di dipendenze funz
li lnsiemi minimali di dipendenze funziona
32?
ALGOHIWO 10.2 Home di una coparlura mlnimale G (if F.
{SSNP = {SSN, NOME_I}
un insieme di dipendenze funzionali F — Un insieme di dipendenze funzjonali E e coperlo da in E e presente anche in F2 cioe se ogni DF ogni se — E copre F che altemativamente si dice i E e F di dipendenze funzionali sono insiem dipendcnza in E pub essere inferita da F. Due ogni DF in E posse essere inferita da che implica alenza l’equiv Percio F". equivalenti se E+ = lente a F so sussistono entrambe equiva c E ossia F. e ogni DP in F possa essere inferita da E, E. copra F e F le condizioni E copre o a 1" per ogni DF X—> Y in E, e quinSi pub determinare se F copre E calcolando X+ rispett ti in Y. Se e eosi per ogm' DF in E, presen ti amibu gli nde compre X+ questo se di verificando ndo se E copre F e F copra E. verlfica lenti equiva sono F allora F copre E. Si detemfina so E e
._.._ “a
51 pub pensare a un insieme minimale di dipendenze come a 1m insieme di dipendenze in unafan‘na Random! 0 canonica e senza ridondonze. La condizione 1 assicura Che ogni dipendonz'a S]. preseou in una fonna canonica con un solo attribute nella pane destra.m Le condinom .2 e 3 asstcpxano che non ci siano ridondanze nelle dipendenze. 0 per la presenza dj atoebutl ndondanu nella pane sinistra di una dipendenza (coudizione 2), 0 per la presenza di una dlpendenza'che pub essere inferita dalle altre DF in F (condizione 3). Una coperlnra minimale ch 1111 msieme F dj dipendenze fimzionali e on insieme miru'tnale di dipcndenze F - equivalents a F. Pufteoppo per mm stesso insiemc di dipendenze funzionafi ei possono essemrne moltelcoperture mmmali. Usando l‘Algoritmo 10.2 si puo sempre Home almeno mm copertura mlmmale G per ogni insieme F di dipendonze.
seguenti insiemi chiusura rispetto a F: Usando 1‘ Algoritmo 10.1 si possono calcolare i
10.2.3
25F.-.J
Dipondenze funzionali e normalizzazione' per has! di dati relazlonali
Capltolo 10
attxibuti in X. Da RIl e noto che tutti Tale algoritmo inizia ponendo X+ uguale a tutti glj dosl delle regole d1 inferenza R13 Serven X. questi attributi sono funzionalmente dipendentl da funzionali in F. Si continuano enze dlpend lc tutte usando X". a ti e R14 si aggiungono attribu vengono pit) aggiunti attrinon finché ) a considerare tutte 1e dipendenze in F 61 ciclo repeat in F. Ad esempio, 5i consienze dipend sulle for} ciclo (ll te comple buti a X+ duronre mt ciclo tica degii attributi e: pos— scman dalla ); 10.303 deri lo schema di relazione IMP_PBOG di Figura nali Che devono valore su funzio enze dipcnd di F e insiem e seguem il sibile specificare
M“...
allora rimuovi X -—> A da G.
10.3
Forme normali basate su chiavi primarie
Dopo ave; studiato 1e dipendenze funzionali e alcune delle loro proprietfi, si e ora pronti a usarle come fonti d‘informazione sulla semantica degli schemi di relazione. -Si suppon'h qui che‘per ogm relazione venga dato un insieme di dipendenze funzionali, e che ognj relazione abbla una chieve primaria designate; queste informazionj, combinate con i test [condizionfl
per forme normah, guidano i1 processo di normalizzazione. Si rivolgera l’attenzione alle priroe no forum normali per schemi di relazione e all‘intuizione che sta dietro di esse, e si stu— dxere come sono state svfluppate storicamente. Definizioni pit generali di queste foune nor_ mob. eke tengono conto di tutte le chiavi candidate di una relazione anziché solo della chjave pnmana, sono mviate al Paragrafo 10.4, menu'e nel Paragrafo 10.5 verra definite la forma normale di Boyce e Codd (BCNF).
m
Questo e um forma Stan-dare], non una necessita. ed a richiesu per semplificm 1e condizioni e 311’ algoritmi che garmuscono che non eelsls. nas‘una ridondanza in F. Usando la regal: di inferenza R14 6 R15. si pub couverrire una singola dipondenza con p‘rll am'ibuti nelle pm: desire in un insieme di dipendenzc. e viceverse.
Dipendenze funzionali a nermalizzazlone per baa] di dati relazionaii
329
Capitole 10
328
10.3.1
Intreduzione alla normalizzazione
inizialmente prepesro da Cedd (1972b), set11 precesse di nermalizzaziene, cesi come e state test per “certificare” se seddisfa a una certa fortopene une schema di relaziene a una serie di top-down valutando egni relaziene con i en'— ma run-male. Il precesso, ehe precede in mode oni quande necessarie, pue pertante esserelazi 1e de pnnen teri per 1e ferme nermali e dccem anab'si. Injzialmente Cedd ha preposte per onale re considerate cemc unaprogetrazione refazi fenna normals. Una definizione pie terza e da secon , prima ate tre fer-me nerrnaii. che ha chiarn F) — e stata preposta in seguite (BCN' Cedd e resaittiva di SNF -— detta forma normale di Boyce dipendenze funzienali tra gii sufle basate seno ali nerm ferme da Boyce e Cedd. Time queste ferma nermale (4N?) e una quarta una ste propo attributi di una relaziene. Pitt tardi some state alore e dipendenza di multiv enza dipend di tti conce sui basate , quinta ferma nerrnale {SNF} pessane esscre sinBNF in eni relazi 1e ra come join, rispettivamente. Nel Capitele 15 si studie pmgetrazz'cne relazianadetto e ccio ‘appre Quest DF. di date e tetizzate a partire da un insiern 1e per sinresi.
considerate come un processo di analisi La nermalizzaziene dei dati pub percie essere enze funzienali e chiavi primarie, per dipend tore deglj schcrni di relazione femiti. basate sulle izzazione della ridondanza e (2} minimizzaraggiungere 1e proprieta desiderate di (1) minim fe ilaziene e medifica discusse nel Setteparagra zionc delle anemaiie di inserimente, cance forma di test —i ieni soddisfane cefie cendiz 10.1.2. Schemj di relaziene inadeguati. che non relaziene pie pieceli che superane i test e pernormale - vengene decompesti in schemi di i 1a precedura di nemalizzaziene fernisce ai tante pessiedone 1e proprieta desiderate. Quind pregenisti di basi di dati: dii di relaziene basata sufle lore chiavi e sulle a una struttura female di analisi degli schem pendenze funzienali tra i lore atuibuti; ne essere effetruati sui singeii schemi di relaa una serie di test di forma normale che pesse pessa esscre nermalizzata fine a1 livelle dezione, in mode che la base di dati reiazienale siderate, qualunque esse sia.
ente 3113 pin aha condiziene di fer-ma La ferma nermale di una reiaziene fa riferim a state nermalizzata. Quande vengequale al livelle il indica percie normal: soddisfarta. e normali non garantiscene una buena fez-me 1e , ne considerate separaramenre da aitri fatten verificaxe separatamentc che egni nte sufficie e non selite Di dati. di pregettazione di basi e in SN'F. Il precesse di nerBCNF in ie. esemp ad schema di relaziene nella base di dati sia. te cenfermare anche l’esistenza di prornalizzaziene tramite decempesizione deve piuttes ered nel lore insierne, devene possedere, consid ne, prieta aggiuntivc Che gli schemi di relazio
La proprieta di join nee—additive e estremamente critica e deve essere raggiunta a ogni coSte, mentre la proprieta dj censervazione dclle dipendenze, scbbcne desiderabile. viene qual— chclvelta sacrificata [si veda il Setteparagrafo 15.1.2). Si rimanda 1a presentaziene dei concem e delle tecnichc fonnali che garantiscone 1e due proprieta supra espeste al Capitole 15 Per seddisfare altri criteri desiderabili pessene essere definite altrc ferme nermali. basate su altn up] di vincoli. L'utilita pratica delle ferme normalfi divema pcre diseutibile quande i runcoh su cui seno basalc sene difficili da capire e da rilevare dai progettisti della base di dane dagh ulenti che devcno sceprirlj. Percib eggigierno 1a progettaziene d1 basi di dati nel1‘1ndustna presta particolare attenzione alla normaljzzaziene fine alla BCN'F e alla 4NF. 1Jn altre punto degno di neta e che i pregettisti di basi di dau‘ non some obbfigan‘ a nerInahzzare fine alla pin aha ferma normale possibile. Le relazieni pessone essere laseiate a un hvelle pill basso di nerrnalizzaziene per ragioni di prestazienj, del tipe di quelle esaminate a1la fine dc} Sotteparagrafe 10.1.2. 1.1 precesso di memorizzaziene del join di relazieni in fer-ma normale pie alta come una relazione di base - in una fen-ea nermale pin bassa —- e nete come denermalizzaziene. . Prune di procedere clue, occorre riprenderc 1e definizioni di chjavi di uno schema di relazmne Taste nel Capitele 7. Una superchiave di uno schema di relaziene R = {An A;
A } e
un 1n51eme di atu-ibuti S g R con la proprieta che nessuna coppia di tuple I} e L, in uh genuerico state vallde di rclaziene r di R avra M3] = r2[S]. Una chiave K a una superchiave con 1a proprtetd eggiunn‘va che la rimczicne dj un qualsiasi attribute da K fa si che K cessi di essere superclnave. La differcnza tra una chiave e una superchiave sta nel fatto che una chiave de— ve essere minimale; cioe, se si ha Lina chiave K: {A,. A2, 11.} di R. allera K— {A} non é and chew: di R, qualsiasi sia i, I S i s k. In Figure. 10.1 {SSN} e um ehiave per IMPIIEGATO ‘ mentre {SSN}. {SSN, NDME_I}. {SSBL NOME_I, DATA_N} ecc. sone tune superchiavi. Se uno schema di relaziene ha pie di una chiave. ognuna di esse é dena chiave candidata. Una delle chiavi candidate e arbitrariamente neminata chiave pr'rmaria, e 1e altne seno dette chiavi secondarie. Ogni schema di relaziene deve avcre una chiave pn'maria. In Figure 10.1. {SSN} e la sela chiave candidate per IMPIEGATO, e penante essa é anche la chiave pri— mane. Un attribute di uno schema di relaziene R e dette attribute prime di R as esse a memhre di una quafche chime candidate d1 R. Un attribute a delta non-prime se men a un attri‘ buto 1)a — cine se non e membre di nessuna chjave candidata. 111 Figure 10.1 sia SSN 5ia [sitii'ul'IEm-LJ.= seno attributi primi di LAVUHA_SU, mentre glj ale-i attributi di LAVDHA 5U sane " non-pnnn. Verranno qui era presentate 1e prime tre forme nermali: INF, ZNF e 3NF, propeste da Cedd (1912b) cerne una sequenza per raggiungere 10 state :11 reiazieni in 3NF attraversande 1 se necessarie, gli stan' intermedi di INF e LINE
come:
0 di join non-additive (nonadditive la proprieta di join senza perdita (lossless join) dope una decemposiziene non si creati join), che garantisce che negli schenfi di reiazione e nei Setteparagrafe 10.1.4; discuss spurie mple di ziene presenti il problema di genera preservation), che assi» dency (depen I la proprieta di censervaziene delle dipendenze relaziene risultante quaiche una in entata rappres sia a1e fen§ien ’“l‘ra che ncmi dipenrlfmza
0
10.3.2
Prima ferma normals
La priuia ferma nermale (1NF) :2 era considerata pane integrante della definiziene female piat:11\relaz:_ene nel modeHe relazmnale di base {dette anche, in queste centeste, flat: piano . ’ . . . . . . h", . “ “an“ a. O . -57... _ ”.151 per;-flA“.. met-g3- 13930 d‘ "Nahum mf‘m'rnlore, r" aflnhun came ..... a. “cater: ._ u-
wh ..
.2.
li Dipendenze funzionalt e normalinazione per basl di dati relaziona
331
Capltolo 10
330
DIPARTIMENTD
(a)
[ NOME_D
NUMERO_D
1
1 SSN_DIFLDIF'
J
SEDLD
i
ico; in questo case NU 3 il dominiu di SEDI__D contiene insiemi di valori e percib e non-atom del deminio deimembm unico un te MERD_D —-> SEDLD. perche ogni insieme é considera .I2 l’ai‘lrilnum in lNF; di fatto essa In entrambi i casi la relazione DIPAHTIMENTO di Figura 10.8 non t‘.
1a definjzione di relazione data nel non si potrebbe nemmeno definjxe relazione, considerando
DIFAHTIMENTO
lb}
NOME_D
i
NUMERCLD
1
333445555 98T654321 888665555
5 4 1
Ricarca Ammlnlsirazione Sedecentrale
1 SSN_D1R_DIP
DIPARTlMENTO
(51 i
NOME_D
‘
Ricerca
Rica-ca hurrinis‘traziona Sedeaentrale
{admire Sugarlend. Houston} {Stafford} {Houston}
SEDE‘D
5
333445555
Behahe
5
333445555
5 4 1
333445555 987654321 868665555
J
SEDLD
SSNADIPLDIP
NUMEHO_D
Ricerca
i
\
Sugafiand
Houston Stafford Houston
one d‘e— non e In 1 NF. (b) lstanza di relazi 1NF. (a) Schema di ralazione che Figure 10.8 Normalizzaziene In danza. r'Idon con 1NF in ione Relaz (c) sempio.
unettribluto comprencia i.” Essa richiede che i1 dominio di composti e delle loro combinazion uto in- una tupla sia amb iasi quals di e vaior ii che e isibilj) solo valor-i aromici (sempfici, indiv nte d1 avere un iti— onse noec lNF l’attributo. Percie la url valore singolo del dominio di quei valore :11 up aflceme mbi entra di one inazi comb a una sieme di valon’, una mpla di vaiori, entro relaslem e zmm “rela ette parole, 1a INF non perm buto per una mpfa singaia. In allIe 50:10 1 51113011 INF daila I 5011 valori di attributi consentiti ‘ “relazioni come attributi di mpie". , valori atomici (o indivisibili). 10.1. la cm chiave ra Pigu in trato mos ENTO RTIM DIPA Si consideri lo schema di relazione SEDI_D come mesme— di estenderlo insanendo 1‘ attribute primal-iii é NUMEROfiD, e si supponga numero d: sech: ogni dipartimemo possa avere un certs to in Figure 10.8(a). Si supponga che 1.0.8. Come 51 re Figu in 'ati mosu tensione d‘esempio sono Lo schema DIPARTIMENTO e un'es come illustrate dal-
LD non a an attribute atomice. pub vedere, essa non e in INF perché SED i di vedere 1’ atlributo SEDI_D:
due mod la prima mpla in Figure 10.803}. Ci some avere un insieme ri atomici, ma alcune tuple possono 0 ii dominio di SEDI_D contiene valo da NUMEHOJJ; dente dipen te _D nor: a funzionalmen d.'1 questi valori; in quests case SEDI_ ___________———-
1'
4 agent (abject-relational syd Mariana! mode!) e sisremi relazianafi [i modem Maximal: nidgfimta (nme namalizzare. alumni nor: stems) [ORDBMS), commons invece
fonna nonnale per una Paragrafe 7.1. Ci sono ire tecniche principali per raggiungere la prima tipo. relazione di questo una relazione separata SE 1. Si rimuova l'attributo SEDI__D che viola la INF e 10 Si ponga in ENTD. La chiave primaria DIFARTIM di JI NUMERO primaria chiave la con DI_DIP insieme mostIato in Figura di questa relazione e la combinazione {NUMEHO_D, SEDE_D}, come ento. Cie decomdipartim un di Jade ogni per distinta tupla una esiste IP 10.2. In SEDI__D INF. in pone la relazione che non e in INF in due relazioni neila :elazione DIPAHTI 2. Si espanda ia chjave in mode tale che ci sia una tupla separata in Fig-era 10.80:). In mostrato come NTU. MENTO originaria per ogni sede di un DI PARTIME . Questa soluSEDE_D} _D, {NUMERO ione combinaz la diventa primaria chime questo case relazione. neiia a zione ha 10 svantaggio di introdun'e ridondanz S: e note che per un 3. Se :2 note i1 numero di massimo di valori dell‘attributo —- ad esempio, SEDI_D can tre atattribute 1' a sostituisc si — sedi Ire dipanimento possono esistere a! pi!) 10 svantaggio di inha e seluzion Questa . SEDE_D3 c . SEDE_02 1, SEDE_D tributi atomici: tre sedi. trodm're valon' nulh' se la maggior pane dei dipartimenti ha meno di presenta ridondanDellc tre soluzioni supra presentate, la prima a la migliore perché non di valeri. Infatmassimo numero sui 21: ed a completamente generalc. non presentando limiii i successidurante sta, decompo ente ulterierm verth essa , soluzione seconda ti, 5:: si sceglie is. vi passi di normalizzazione, nelIa prima soluzione. re che siana essi stessi La prima forma normals non permette neppure attributi multivalo tupla pub avere a! we ogni perché e nidificat i relazion composti. Quest: reiazioni sono dette apparire la relazione potrebbe come mostrato viene 10.9 Figura In . relazione una inremo impiegato, e un‘cntilh nta rapprese tupla Ogni ione. IMP_PROG se fosse concessa 1a nidificaz xappresema i progetti su cui mph: ogm‘ di o afl’inrem ORE) ’. UMERUJ PROGGW e relazion una su ogni progetto. Lo schema di lavora l‘impiegato e 1e ore settimanalj lavoratc dall’impiegato segue: questa relazione IMP_PFIOG pub essere rappresentato come
IMP_PRDG{SSN, NOME_I, {FHOGG(NUMERO~P, ORE”)
multivaiorc, mentre glj atuibuti. Le parentesi graffe {} indicano che 1‘ amibuto PROGG e interessante notare Che uua reE 0. si componenti che formant) PROEG sono posti tra parente e formaljzzare 1e relazioni niire consent di o tentand Sta ale ceme ricerca sul modello relazion
dificate, Che erano state inizialmente proibite dalla lNF.
ne IMP_PROG nelle Figure 109(3) e (b), Si noti Che SSN e la chiave pfimaria della nelazio
e nidificata; cioe la relazione nimentre NUMEHLLP e la chiave prhnaria pansiale della relazion
'3
l'insiemc potema dell'lnsieme deile singeIn questo case a pessibiie considerate i] dominiu d1 SEDI_D come e delle singole sedi.
i sorrofnsfemf possibfli deil‘insiem le sedi; vale a dire che i1 dominie e costituitu da tutti
332
Capitolo 1a
Dipendenze funzionalf e normalizzazione per has! dl dati relazlonalf ‘333
ti fiveIlIdi “idificaz‘lone in EIaZiom‘ in INF. L’Operatorc unnest fa pane: del modeuo rclazia-
mamas
(a)
0a]: mdlficato. Lirmtare 1e rclazioni alla INF porta ai problemi associati all: dipendenze mu}— 111011011: 1: 311a 4NF.
FROG-G
NOME 1 '
SSN
NUMEHCLPI OFIE
10.3.3 Seconda forma normale
[Mame
{b} I
saw
I
0001::
INUMEFIO_PI
453453453
Smtohn E. afiamh K. Engflshdoyceh
033445555
nfranklin'l'.
9998mm
Zelayaflicla J.
907980387
Jabbar.Ahmad\.I[
937554321
Wallace.JemiferS.
88866555
Borg.Jamas E.
1234563139 666%
3:: 40:0 20.0 20.0 100 10.0 10.0
30 10 10 00
30.0 10.0 35.0 50
20
In]
OFIE I
g 3 1 2 2 3 10
30 20
20
La se00nda forma nlormale [ZNFJ si basa sui ccncetto di dipendenza funzz‘onale complera. Una dlpendenza funnonale X -—> Ye una dipendenza funzionale completa se la rimozione CH quaISIaSI annbutoA daX comporta che la dipendenza non sussista pin; cioé, per 0gni attribu—
{a}
|MP_F'fiOG
NUMERO_P I one I NOMEJ I NOME_P I
I SSN
10.0
SEDE_P
I
DFT L__I__I m |__h_j
I
I
I
on;
200 15.0
nun
NORMAUZZAZIONE IN 2NF
IMP_PFIOG1
I SSN IMP_PFI002
NUMERD} I ORE I Lfirg I NOMEJ I I NUMEROJ: I NOME_P I —-—
“relazione nidlflcata" PHUGG. [b]: Estenslona d'asamplo della ralazlona IMP__PROG che mostra
NOMEJ I SEE I DATA_N I INDIHIZZO I NUMEFt0_D I NOME_D ISSN_DIR_DIPI
relazioni nIdIflcata alI‘Intarno di clascuna tupla. {c} DecomposizIone dl IMF_PHOG nelle rela—
dificata deve avere valori umvoci per NUMERO_P, all‘intcmo di ogni tupla. Per normalizzare questa relazionc in INF si spostano gli attributi della relazione nidificata in una nuova reIazione e .si pmpaga Ia chime primaria 31 500 intemo: Ia chiave plinmia dclla nuova relazjone combinerfi la chiave parzialc con la chiave primaria deila relaz'mne originaria. La decomposi-
I
I
I
zionf in 1NF IMP_PROG‘I e IMP_PH062 tramIte propagazlone deIIa chlave prImarla.
I
NORMALIZZHZIONE IN GNF
LD2
I_D1
I NOMEJI Q I DATA_N I INDIFIIZZO I NUMERO-DI
IMP FPHOG 2
Questa procadura pub esscre applicata ricorsivamente a una relaziune con nidificazione a piD livclli per eliminate la nidificazione (unnest) dalla. reIazione, penandola a un insieme di relazioni in INF. Cit: 5 mile per convertixe 11:10 schema dj relazione non normaljzzato con mo}-
Dpa
IMP_DIF'
{b}
una Figure 10.9 Normallzzazlone In INF dl relazionl nldificate. {a} Schema delta reIazione IMP_PROG con
‘ produconn gll‘ scherm' IMP_PROG1 e ' 1 a chi ave pmnana ' .210115631 ' 30:52:11:$09PI:§E
OH I__}
”F1 |_____L__I
SEDE_P I
I_ I
I
I
I NUMEROJ) I NOME-D ISSN_Drn_DI1=I
I
Figure 10.10 II prpcesso df normalizzazione. (an Normallzzazlone di IMP PHOG in relazioni in 2NF. (b) I'IIcirm I
.
mahzzazfone di :MP_DIP 1n ralazloni in aNF.
3- .
a
.
I},
I
..
'
J i” -
334
Dipendenze funziensii e nermaiizzaziene per has} di dati relazionali
Capitole 10
to A E X, {X w {A}) non determine funzienalmente Y. Una djpendenza funzionale X —> Y e una dipendenza paniale se si pessono rimuovere da X certi attribnti A E X e la dipendenza continua a sussistere; cioe, per qualche A E X, (X — [AU ——> Y. In Figura 10.38)) {SSN , NUiiERO_P} —> DRE e una dipendenza completa (non sussiste né SSN —» ORE né NUMERO_P —) DRE). La dipendenza {SSN,
NUMEBO_P} ——> NOME_I é invecc parliale perché sussiste la SSN
_» NGME__I.
11 test per la ZNF cemperta l'esame di dipcndenze fiinzienalii cui attributi di pane sinistra fanne parts della chiavc pmnarie Se la chjave primatia centicne un solo attribute a inutile effettnare il test. Uno schema di relaziene R a in 2NF 3: ogni attribute non-prime A di R dipende funzienaimente in mode complete dalla chiave primal-la di R. La reiazione IMP_PROG di Figu-
a cause di ra 10.33)) E in 1NF ma non e in 2NF. L’attribnte non—prime NOME_I viola la ZNF
DFZ, come fanne glj attributi nen-primi NOME_P e SEDE_P a cause di DF3. Le dipendenze funzionaii DF2 e DF3 rendene NOME_I. NOME_P e SEDE_P parzialmente dipendenti daiia chiave primaria {SSN , NUMEHO_P} di IMP_PF.OG. vielande cost il test di 2NF. Se une schema di relazione nee e in 2NF. esse pub esscre “normalizzate in 2NF", seempenendele in un certe numero (ii rclazioni in ZNF, neile quaij glj attributi nen—primi seno asmode seciati sole alla parte della chiave primaria da cui sene funzienalmente dipendenti in de— complete. Le dipendenze funzienali DF1, DF2 e DF3 di Figm'a 10.3(b) pertano percie alla 1010(2). Figura di I_Pa e I_P2 I_Pt, relazjene di schemi tre nei IMP_PROG dj cempesiziene egnune dei quali e in 2NF.
10.3.4
Terza ferma nermale
dipenLa terza fol-ma nermale (3NF) :2 basata snl cencetto di dipendenza transitive. Una csiste denza fnnzienale X —> Yin uno schema di relaziene R e Lina dipcndenza transitive se chiave una di e settoinsiem un né candidate chiave un insieme di atn'ibuti Z, chc non e 116 mm a SSN —+ di it,13 per cui valgcne centemperaneamente X —-> 2 e Z —> Y. La dipendenz sussistoperché NUMERO_D attraverse n’ansitiva 6 SSN_DIR_DIF in IMP_DIP di Figura 10.31121) nen no enn'ambe 1e dipendenze SSN -+ NUMEHOJJ e NUMEHBJJ -> SSN_DIFI_DIP. e NUMERO_D puo si nte Intuitivame IMP_DIP. cii chiave della e e né una chiave di per 56 né nn sottoinsiem memento vedere che la dipendenza di SSN_DIR_DIP cia NUMEROJ! in IMP_DIP e sgradita, dai IMP_DIP. cli che NUMERDJI non a una chiave Stande aila definiziene originaria di Cedd une schema di relaziene R e in 3N1“ se sodchiave disfa 1a 2NF 9 nessun attribute non-prime di R dipende in mode n'ansitive dalla che non primal-in. Lo schema di relaziene IMP_DIP in Fignra 10.3(a) e in 2NF, dal memento cansa esisteno dipendenze fnnzionaii parciaii da una chiave. IMP_DIP non e pen“: in 3NF a MERO_D. delia dipcndenza transitiva di SSN_DIH_DIP (e anche NOME‘D) da SSN attraverso_NU
335
Tabeila 10.1 Semman‘e delie ferme nermeli beanie su ehiavi primarie e cerrispondents normaiizzezione.
Ferrna Nerrnaie
Test
Himedie [Nermalizzazierte]
Prima {1NF}
La relaziene non deva aware attributi nonatemici e'raiazieni nidiiicate.
Fermara nueva ralazionl per egni attribute nowatemiee e relaziene nidiflenta.
Secenda {QNH
Per ralazioni in cui ra chlava primaria centle— na pit‘: attributi. nassun attribute norkchiave dsva essere funzienaimanta dlpendente da una parts delta chiave primeria.
Dacemperre e preparare una nueva relazie—
La ralaziene non nave avers un attribute non-chime determinate funzienaimanie de
Decemperre a preparare una relaziene che eemprenda gli attributi non-chiave che da-
un aitro andbute non—chlave (e da un insia-
terminane ftmzienalrnente aitri anrlhuti non—
ma di athibuti non-chime). Cine non deve esserci nessuna dipendenza transitive di un attribute non—chiava daiia chiave primal-Ia.
chiave.
ne per ogni chiava parzleie cent suci attributl dipandenti. Asslcurarsl dl mantenere una re— iaziene con la chiave primaria originaie 9 tot-
ti gii attributi funzienaimente dipendenti In mode complete da essa.
Terza(3NF)
Si pue normaijzzare IHP_DIP decempenendele nei due schemi di relazione in SNF I_D1 e I_DZ mesn'eti in Figura 10.10fb}. Intuitivamente si vede che I_Di e I_Dz tappresentane fatti di entita indipendenti sugli impiegati e sui dipartimenti. Un‘eperazione di JOIN NA— TURALE su I_D1 e I_D2 recuperera ia relazienc eriginale IMP_DIP senza generate tuple spunc. La Tabella 10.1 rilssume informahnente 1e Ere forme nermali basate suile chiavi primarie, i test usati nei vari casi e il corrispendcnte “rimedio” e nonnaiizzaziene per ottenere la forma normale.
10.4
Definizieni generali cii seconda e terza forma nermale
In generale, si vegljene pregettate schemi di rclazione in mode tale che non presentino né dipendenze parziaii n6 dipendenee transitive, perché questi tipi di dipendenze prevecane 1e anemalie di aggiernamente discusae nel Settoparagrafe 10.1.2. I passi per la nermaiizzaziene in relazioni in SNF trattati finera non censentene dipendenze parziali e n-ansit‘tve sulla chiave primaria. Queste definizieni, pet-e, nen tengone come defle altre chiavi candidate di una rela-
rintone, ammesse che ve ne siane. In queste Paragrafo si forniranne 1e definizieni piii generali
di ZNF e BNF, cite tengene cento di time he chiavi candidate Eli nna relazione. Si neti che cio nen riguarda la definiziene di INEdaJ memento che essa non dipende da chiavi e dipendenan atze funzienaii. Come definiaiene generaie tii attribute prime, verra considerate prime
‘3
ci interessiame soie deiQuesta e la dcfiniziene generate di dipcndenza transitive. Date che in qnesm paragmfo
easel-c (seminle chiavi primarie, concediame le dipendenze transitive in cut X e la chjaw. primaria. ma 2 put:
sieme di) una chinve candidata.
tribute chc faccia parte di um: quaisiasi chiave candidate. Le dipendenze funzionali parziaii e tetaJi nonché 1e dipendenze transitive satanno era relative a tune is ckirmi candidate di una ielazione.
338
Dipendenze funzlenali e nermalizzazlene per basi d1 dati relaztenali
Capitele 10
E! 'a relaziene LOTTI1 B. Sia LOTTI1A sia LOTTI1 she proveca la dipcndenza transitive} in un‘alu 3NF: di al: gener iene definiz a1 riguardo della 50:10 in 3NF. Ci sono due aspetti degei di nota ivamcnte dipendcnte da ognuna delle chiavi 0 LOTTI‘I viola la SNF perché PHEZZO e transit rime AREA; non-p ute l'attrib candidate di LOTTI1 tramite mente per verificare se uno schema di reladirerta ata applic csscre pue ziene defini questa 0 attraverso la 2NF. Se si appljca la definipfima c passar sario neces é ziene e in BNF; mm da DFl a DF4. si trova che DF3 e DF4 enze aiene di 3NF septa vista 21 LOTTI con 1e dipcnd decemperre direttamente LOTTI in ile pessib percie e Sarebb 3N'F. la vielano entrambe ive e parziali che vieiano la BNF transit enze dipend LOTTI 1A, LOTTI1 B e LOTTIZ. Quindi le possene cssere rimesse in qualsiasi ordine.
10.4.3
di 3NF Interpretaziene della definizione generale
generale di 3NF se sussiste in R una dipcn— Une schema di relazionc R viola la defitfiziene ioni (a) e 03) di 3NF. La vielazionc cii cendiz 1e be enrram viola denza funzienale X —> A che iene di (3) cemporta che X non sia un violaz La (b) cemperta che A sia un attribute non-prime. non-prime e petrebbe essere un essere be potrcb X pereie R; di chiave sevrainsieme di qualche ha tipicamente una dipcndenza 51 rime non-p e settoinsieme preprio di una chiave di R. Se X e di una chiave di R si ha una prepri sieme settoin un é seX a mantr transitiva the viola 1a 3NF. pessibile enunciare una depercio E 2NF). 1a dipendenza parziale che viola la 3NF (e anche di relaziene R e in 3NF se a schem une segue: come 3NF di ative finlzlone generale altern ti: seguen ioni cendiz le eg-ni attribute non-prime di R soddisfa entrambe
L’area di un lotto che determina la centea, come specificate da DFS, pub essere rapprc— sentata da 16 tuple in una relazione separate R(AREA, NOMEfiONTEA), dal memento che ci sono solo 16 pessibfli valeri per AREA. Questa rappresentaziene riduce la ridondanza insita nel npctere la stessa infermazionc in rejgliaia di tuplc di LOTTI 1A. La BCNF a una fame nar~ male pit‘t restrirtiva, chc non permette LOTTI1A c fornisce indicazioni per decomperla. La definizionc female di BCNF differisce sole leggetrnente dalla definiziene di SNF. Une schema di relaziene R e in BCNF se, ogni veita che sussiste in R una dipendenza funzionale non-bangle X —> A. X a una superchiave di R. La seia differenza tra 1e defiuizieni cli BCNF e di dalla BCNF. 3N'F e the la cendiziene (b) della 3NF, che censcnte adA di essere prune, é assente
. Nel nestro esempio DFS viola la BCNF in LOTTIIA, perché AREA non é una superchiavc d1 ILDTTI1A. Si neti che DFS seddisfa la 3NF in LOTTI1A perché NOME_GONTEA é um attribute prime [cendiziene b), ma questa cendizionc non esiste nclla definiziene di BCNF. Si pub decompozre LOTTI1A nelle due relazieni in BCNF LOTTI1AX e LOTTI1AY cli Figura 1012(3). Questa decomposiziene perde la dipendenza funzienaje DH perchéi suei attributi non cecsistone pie nella stessa relatione. In pratica. la maggier patte degli schcmi di relaziene in 3NF 5 anche in BCNF. Sole se in use schema (ii relaziene R sussiste X —> A. con X che non é superchiave e A attribute prime,
i1 case R sara in 3N? ma non in BCNF. Le schema di relaziene R oi Figura 10.12(b) illustra
rela— generale di una relazione di questo tipe. Idealmcnte la progcttazione di una base di daft 11 zmnale dovrebbe sforzarsi di :aggiungcre la BCNF e la 3NF per egnj schema di relazionc.
terms
{a}
#ID_PROPRIETA
I
Ferma normale di Boyce e Cedd
lice F} a state preposta come una ferma pin semp La ferma nermale di Boyce e Cedd {BCN in anche e BCNF in ne relazio ogni . infatti SN'F; di 3N'F, ma si e rivelata pit} restrittiva della . Si puo inteitivamente ravBCNF in eme sariam neces e mm 3NF in ne SNF, mentre una relazio della BNF temande allo schema di reiaziovisare la necessita di una for-ma nermale pie forte o dipendenze funzionali, da DFI a DF4. Si supue LOTTI di Figure 10.1101). con la sue quattr : ma che i lotti vengane solo da due contee ne, penga di avere migliaia di [otti nella relazio di t contes malls letfi dei bili 1e dimensieni pessi Dekalb e Fulton. Si supponga ineltre che letc 3,0 acri, mantre 1e dimensieni pessibili dei Dekalb siane ristrette a 0.5, 0.6, 0.7. 0.8. 0.9, la avra si ione situaz questa In ..., 1,9 e 2,0 acri. ti nella centea di Fulton si limitino a 1,1. 1.2. ge alle aloe d1» aggiun lasi Se EA. _CONT NOME -) AREA dipendenza funzienale aggiunfiva FDS: e in SN'F perché NOME_CONTEA e on atttibupendenze, lo schema di relaziene LOTTI1A riman te prime.
NOME_COI\FI'EA
l
ml
ete da 0q chiave di R; o e funzienalmente dipendente in mode compl a chiave :11 R. nessun da tive transi mode in ente 0 non a dipend
10.5
339
l #LOTTO | AHEAJ
l
l
JVLNormallzzazlena In BCNF
L01TI1AY
LOTI'I1AX
[— #lD_PFtOPFlIEI'A
[ AREA I #LOTI’OJ
l—fl | NOME_OONTEA j
a
{D}
B DF‘I
DF2
k—J
In BCNF con la dipendenza DF2 eha Flgura 10.12 Fermalnermale dl Boyce 3 Code. {a} Nomallzzaztone
vlene parse" nella dacempesiztone. (b) Una relaz1ene Fl in SNF ma non in BCNF.
340
Dipendenze funzlenall e nermalizzaziene per basl dl datl relazionali
Capitele 10
INSEGNA lSTUDENTE
Semmarie I INSEGNAMENTOI DOCENTE
Nam-an
Baal d1 dafl
Mark
Smllh
Baa! dl dafl
Navathe
Smllh
Siam eperatlvl
Arms:
Smith
Inlemalieateorlea
Smuh'lan
Wallace
Baal dl da‘fl
Mark
Wallace
Sisteml eperafrvl
Ahamad
Wang
Baal dl dati
Untiedneld
Zalaya
Basi didatl
Navathe
J
Figure 10.13 Una relaziene INSEGNA che e in 3NF ma non in BONE
raggiungimente dello state di nermalizzaziene a livelle dclla sela INF 0 ENE non e considerate sufficieme. dal memento che esse sene state stericamemc sviluppate come punti dj pa:tenza verse la 3NF 8 1a BCNF. In Figure 10.13 E mestrata una relaziene INSEGNA cen 1e seguenti dipendenze: DFI: {STUDENTE, INSEGNAMENTO} —) DOCENTE
DF2115 DOGENTE —> INSEGNAMENTO
Si neti che {STUDENTE,
INSEGNAMENTO} e una chiave candidata per questa relaziene e
the le dipendenze viste seguene i1 modelle illustrate in Figure 10.12(b). Part-ante questa rela— ziene e in 3NF ma non in BCNF. La decomposiziene d1 queste schema di relazione in due schemi distinti non e immediata, dal memento che esso pub essere deeempeste in una delle tre coppie pessibili: 1. 2. 3.
341
{STUDENTE, DDCENTE} E {STUDENTE, INSEGNAMENTO}; {INSEGNAMENTO, DOGENTE} e {INSEGNAMENTO, STUDENTE}; {DOGENTE, INSEGNAMENTO} e {DOCENTE, STUDENTE}.
Tulle e tre 1e decempesizieei ”perdene“ la dipendenza funzienale DFl. La decempesizie— ne preferibile tra 1e tre supra vista e la terza, perché non genererh tuple spurie dope un join. Un test per determinare se una decempesiziene é nen~additiva (senza perdita) sara esaminate ncl Setteparagrafe 11.1.3 Bells. preprieté. LI]. In generale una reiaziene non in BCNF devrebbe essere decempesta senza perdita. rimmciande eventnahnente a preservare tutte 1e dipendenze funzienali nefle relazieni decempeste, come accade in queste csempie. L'Algeritme 11.3 fa esattamente cie. e amb‘ne petute essere usate sopra per fernire la stessa decompesiziene per INSEBNA.
In queste capiteie abbiame studiate su base intuitiva melte insidie presenti nella pregettaziene di una base di dati relazienaie, abbiame individuate informalmente alcune delle misure usate per indicare se une schema di relaziene e "beam" 0 “cattive”, e fornite Iinee guide infermali per una buena pregattazione. Abbiame quindi presentate alcuni cencetti fermali che ci censentene di effcttuare la pregettaziene relazienale in mode top-down, analizzande 1e relazieni una ad una. Si :2 definite queste precedimente di pregettaziene per analisi e decomposiziene intreducende i1 precesse di normalizzaziene. Gli argementi studiati in questo capitele saranne ripresi nel pressime capitele, dove esamjnereme ceneetfi pie avanzati di teefia di progettaziene relazienale. Abbiame esaminato i preblemi delle anemalie di aggiomamento, Che si presentano quande si verificane ridendanze nelle relazieni. Misure infer-malt di bueni schemi di relaziene prevedene una semantica degii attributi semplice e chiara e pechj valeri nuIli nelle estensienj delle relazieni. Una buena decempesiziene. ineltrc. Cleve evitare i1 prehlema della generaziene di ruple spurie come risultato dell’operaziene di join. Abbiame definite iI cencctte di dipendcnza funzienaie e discusse alcune delIe sue preprietfi. Le dipendenzc funzionali cestituiscene la sergente fendamentalc di informaziene semantica sugli attributi di une schema di relaziene. Abbiame mostrate come da un insieme date d.i dipendenze funzienafi pessane essere inferite altre dipendcnze usando un insieme di regele di inferenza. Sene stafi definiti i cencetti di chiusm'a e cepertura minimale di un insieme di dipendenze ed e state fomite un algoritme per calcelare una cepertura minimale. Si :3 anche mestrate come vertficare 5e due insiemj di dipendenze funzienali sene equivalenti. Abbiame quindi descritte i1 precesse di nemafizzaziene, che permette di ettenere pregetti di buena qualila csaminande relaziem' alla ricerca di dipendenze funzienali indesidcra— te. Estate femite un trattamente di nonnalizzaziene successiva basato su una chiave prima-
ria predefinita in ogni relaziene, quindi si e riiassate queste requisite e some state femite definizieni piil generali di secenda fez-ma normals (2NF) 1: terza ferma normal: (3NF) Che prendene in censideraziene tutte 1e chiavi candidate di una relaziene. Sene stati presentati pei degli esempi che permettene di illustrare come. usande 1a definiziene generals di 3NF, una data relaziene posse essere analizzata e decempesta per predurre alla fine un insierne di rela~ zieni in BNF. Infine abbiamo illustrate la fem nemale di Boyce e Cedd (BCN'F) e si 6 Vista come essa sia una ferma pill forte di 3MP. Abbiame anche mesUate come debba essere effetruata 1a decomposiziene di una relaziene nen-BCNF censiderande il requisite di decempesiziene non-additive. 11 Capitele 11 presentera algeritmi di sintesi e di decempesiziene per la pregettaziene di basi di dati relazienali basata su dipendenze funzienali In relazione alla decempesiziene esa— mineneme i concetti di join senza perdita (non-additive) e conservazione delta drpendenze,
che sane impesti da alcuni dj quastj algeritmi. l5
Cib presume che un Vincele di quests applicaziene sia "egni decent: :iene un solo insegnnmcnte".
. . -_ - x: .mm'-___— ._._..-.__.m‘ -
m. .__.
M
.
..-;I
W
.'
'
'é‘l'
W
»__.__I
w
IN..._n‘-._,_'A
t.- #:k
9M._.A'ui'
Dipendenze funzionall e normalizzazione per basi di datl relazionali Capitolo 1D
e dipartimento di specializzazione secondaria (CODICE_DIP_SPEG_SEC) (se esiste) programma di studi (FROG) {B.A., 8.8., ..., PH.D.}. Sia SSN sia numero studente
Questionario di verifica misura informale di qualita di uno 10.1. Si discuta sulla semantica degli attributi vista come e. schema di relazion lazione e modifica. Perché sono con— 10.2. Si esaminino le anomalie di inserimento. cancel . esempi con a rispost la illustri Si siderate pericolose? in una relazione? 10.3. Perché non E: consigliabile avere molti valori nulli ino 1e relative modalita di preven10.4. Si tratti il problema delle ruple spurie e si esamin ZiCIIlE. tazione di schemi di relazione di— 10.5. Si enuncino le linee guide. informali per la proget one d1 queste linee guida posviolazi una come illusu'i Si scusse nel corso del capitolo. sa essere dannosa. 1e dipendenze funzionali esistenti fra 10.6. Cos'e una dipendenza funzionale? Chi specifica gli attributi di uno schema di reiazione? ale oa uno specifico stato di rela10.7. Perché non si pub dedurre una dipendenza funzion zione? ong — le tre regole di inferen— 10.8. Perché sono importami 1e regole di inferenza di Armstr za dalla R11 alla R13? regole di inferenza di Armstrong? 10.9. Cosa si intends per completezza e correttezza deile di dipendenze fuozionali? . 10.10. Cosa si intcnoe per chiusura di un insieme funzionali sono equivalenti? Come posnze dipende di insiemi due the . 10.11. Quando si dice siarno determinare la loro equivalenza'? ali‘? Per ogni insieme éi dipenden10.12. Cos’é un insieme minimale cli dipendenze funzion no esiste un insieme minimale equivalente'? nonnafizzata? Come si sono svilup10.13. A cosa fa riferimento 1a locuzione refazione non pate storicamente It: forms normali'? le considerando solo le chiavi pri— 10.14. Si definiscano prima, seeonda e terza forma norma ZN'F e 3N'F. che considerano tutte di li genera marie. Come differiscono 1e definizioni solo le ohiavi primarie? rano conside che quelle da e. relazion una di 1e chiavi relazione e in SNF? una quando evitate sono 10.15. Quali dipendenze indesiderabili differisce dalla SNF? Perehé cosa In Codd. e Boyce di e normal forma la a 10.16. Si definisc e considerata one format pifi forte di SNF?
Esercizi una base :11 dati miiversita usata per 10.17. Si supponga di disporre dei seguenfi requisiti per degli studenti. itaii univers libretti dei ioni trascriz delle traccia toner (NOME__STUD). numero dello stu~ e student ogni di moms :18] a. L’universita tiene uaccia (SSH), indjrizzo currents sociale dente (numfisruo). nonzero di previdenza D), indirizzo pennaRFI_STU ND_CO (TELEFO e correm o telefon (IND_GOHR#STUD) e HM_STUD), data di ON0_PE (TELEF nente {INDflPERhLSTUD} e telefono pennaoente (ANNO_GORSO) (primo. secondo, ..., nascita (WHEN). sesso (SESSO). anno di corso
(GODIC laureate), clipartimento di specializzazione principale
EnnIPfiSPEtLPRINC),
assumono valori univoci per ogni students. ), 1). Ogni dipartimemo e descriito danome (NOME_D). codice dipartimento (CDDICEfiD numero di ufficio (UFFICD_D), telefono di ufficio (TELEFONOHD) e college (COLLE
GE_D). Sia nome sia codice assumono valori univoci per ognj dipartimento.
un codice c. Ogni insegnamento he no nome (NOME_I), una descrizione (DESC_I). (LIVELLO) e on [CODICE_I), un numero di ore per semestEe (CREDITI), un livello
dipartimento Che lo offre (DIP_I). Ii codice dell'insegnamento é unjvoeo per ogni insegnamento.
(ANNO). d. Ogni modulo he no assistant: (NOMEJ), un semestre (SEMESTFIE). un anno
Ii un insegnamento (INSEGNAMENTO_MGD} e un codiee di modulo (GODIGEJ-IOD). codice do} modulo permette cli distinguere moduli diversi dello stesso insegnamento. tenuti durante lo stesso semestrefanno; i suoi valori sono 1, 2., 3. ..., fino a1 numero totale di moduli tenuti durante ogni semestre. e. Una regisuazione di vote fa riferimento a uno studente {SSN}, a un modulo speci— fico e a un voto (VOTO).
di daSi progetti uno schema di base di daft relazionale per quest” appiicazione di basi fra sussistere devono che funzionali ti. Prima di tuno si iilustrino tune 1e dipendenze dei ciascuno dati. di base la per relazfione di schemi quindi progettino Si gli attributi. Si quali sis. in 3NF 0 in BCNF. Si specifichino gli attributi chiave di ogni relazione. per appropriate assunzioni facciano si e , specificato non requisite ogni di nota prenda
Iendere completo l‘insieme di specifiche. e 10.18. Si dimosui 1a correttezza o la falsita dclle seguenti regole di inferenza per dipendenz specifintazione un'argome namite o svolta funzionali. Una dirnosttazione pub essere esseca 0 tramite l’uso delle regole di inferenza da R11 a R13. Una confutazione dove dipenden1e e i condizion 1e soddisfi ohe relazione re svolta presentatido un‘istanza di ze funzionali a primo membro deila regola di inferenza ma non soddisfi 1e clipendenze a secondo membro. {W—i Y.X—> Z} I: {WX—» Y}. {X4 Y] eYQZI= {X-—>Z]. {X—> Y,X—> W.WY—> Z} I: {X—>Z}. {XY—rZ,Y—-> W} |= {KW—>2}. {X—bZ,Y-—> Z} I: {X—)Y}. {Xe Y.XY—oZ} I: {X——) Z}. {X—> Y.Z—-> W} |= {XZ—> YW}. {XY—+Z,Z—>X} I: {2—) Y}. {X—a Y, Y—> Z} I: {X—a YZ}. j. {KY-92,26 W} I: {X—-> W}. -> C, AC —> 10.19. Si considerino i due insiemi seguenti di dipendenze fimzionali: F = {A equivalenfi. sono se conu-olli Si —»-AH}. E CD, —> {A = G e H} —r E AD, —> D, E insieme G seguente il e 10.3(a) Figura di 10.20. Si consideri lo schema di relazione IMP_DIP , di dipendenze funzionali su IMP_|JIP: G = {881% —> [NOME_I, DATA_N, INDIRI-ZZO
We‘ve-9999'?
342
343
NUMEFILLD}. NUMEF10_D —» {NOME_D, SSN_DIFI_DIP}}. Si 62116013110 Is chiusme {SSNP
e {NiJhIERtLD}+ :ispetto a G.
.._...,
Capitolo 11
Algoritmi per la progettazione di basi di dati relazionali
Come abbiamo vista nel Capitolo 10, esistono fondamentalmente due approcci per la progettazione di basi di dati relazionaii. I! prime consists nella progettazione top-down. una leanica ampiamente usata per le applicazioni commercialj di basi di dati che prevede 1a progettazione di uno schema concettuale in un modello di dati di alto liveilo. come i1 modello BER, e quindi Una sua traduzione in un insieme di rclazioni. ate-averse procedure quali queue studiate nel Capitolo 9. Seguendo tale approccio ogni relazione viene analizzata sulia base delle dipendenze funzionali e dclle chiavi primarie assegnate. applicando Ia prucedura di normalizzazione descritta nel Paragrafo 10.3 per rimuovere dipendenze pmiali e transitive, se ne rimangono. L‘analisi di dipendenze indcsiderate pub anche essere svelta durante la progettazione concetmale, tramite un esame delle dipendenze funzionali presenti fra gli attributi dj ti— pi di entita e tipi di associazione, ovviando cosi alla necessita di un’ulteriore normalizzazione successiva alla traduzione. 11 seconds: approccio consists nella progettazione bottom-up. una tecnica pifi purista che vede la progettazione di uno schema di base di dati mlazionale figurosamente in termini di die pendenze, funzionali e di altro tips, specificate sugli attributi Elena base :11 dati. Dope che i progettisti della base di dati hanno specificato 1e dipendenze, viene applicato un algoritmo di normalizzazlone per sintetizzare gii schemi di relazione. Og'ni singolo schema di relazione dowebbe raggiungere i1 liveilo di qualith associate alla BN'F o alla BCNF, 5e non a qualche fol-ma normal: superiors. In questo Capitolo descriveremo alcuni di questi algoritmi. Descriveremo anche in maggior dettaglio 1e due proprieth desiderate di join non-additive (senza perdita) e di conservazione delle dipendenze. GE algoritmi di normalizzazione comincianu tipi« cmente sintetizzando uno schema di relazione gigante, detto relazione universale, che comprende tutti gli attributi della base di dati. Si eseguono quindi decomposiziani ripetute, basandosi sulle dipendenze funzionali specificate dai progettista dj basi di dati, finché non di~ ventino non piil possibili 0 non pix‘l desiderabfli. Il Paragrafo 11.1 presents: diversi algoriimi di nonnalizzazione, basati sulle sole dipen-
34B
Algoritmi per la progettaziohe di basi d1 dati relazionalf
Capitolo 11
sultato
zare schemi in 3NF e in BCNF. Co— denze funzionali, Che possum essere usati per sintetiz delle decomposizioni — vale a dire rabili deside tx‘a proprie mincercmo col descrivere 1e due proprieté di join senza perdita (o non-ad— 1a proprieta di conservazione dclle dipendenzc e la per ottenere decomposizioni desideazione progett d1 i algoritm ditive). entrambe usate dagli a‘i siano per sé insufiicienrf a garantire una rabili. Mostreremo anche come la forme- normali nali: perpmcr essere considerate frutto di relazio dati di basi di i buona progettazione di schem o neli‘insieme soddisfare quest: due ulteriori buona progettazione, infatti. le relazioni devon proprieth.
11.1.1
nza delle Decomposizione delle relazioni e insufficie forme normali
nali qui presentati prendono inizio da un Gli algoritmi di progettazione di basi di dati relazio .... A,,} contenente tutti gii attributi della A2. {A;, = R sale univer ne unico schema di relazio la quale stabilisce zione di relazione universale, base di dati. Si fare implicitamente l’assun
e' sieme F di dipendenze funzionali Che deve sussist Che ogni name :13 atuto 5111 unico. L‘m i algoritm agli fornito é ed dati di base della tisti re sugli attributi :11 R E specificato dai proget mi decompongono 10 schealgorit gli nali, funzio enze dipend sulle dcsi di progettazione. Basan i di relazione D = {R,. R1, ..., Rm} che dima d1 relazione universale R in un insieme di schem detto deeomposizione di R. E D nale; relazio dati di base ventera lo schema defla in R 5111 anche presents in almeno mm te presen te E necessario assicurarsi che ogni attribu non ci siana amibuti “persi”: formal1: ch cosi ne. posizio decom nella R, schema di relazione ,,. mente 51 ha
11,. = R U f-l
e degli attributi di una decomposiQuesta condizione é detta condizione di conservazion none. ne R; nella decomposizione D sia in Un alto obiettivo E quello che ogni singola relaziu nte a garantire :11 per sé una buona sufficie perb E 11011 BCNF (o in 3N'F). Questa condizione decomposizione nel complesso, olla rare conside infatti Occone dati. di basi di progettazione punts, si considen' la relazione quesm re illustra Per tre a esaminarc 1e singole relazioni. 3NF sin in BCN'F. In ream ogni IMP_SEDI (ND'ME_1 , SEDE_P] (11 Figure 10.5, che e sis. in in BCN'F.1 Anche sc IMP_SEDI te ticmnen automa é i attribut sofi schema di relazione con due viene unite tramite join can quando E in BCNF, essa dz comunque origine a mple spurie
-
‘
-
uno Schema di reIazione PMiZEfleflgnieclinfilEum 106)- IMP'SEDI rapprescma percit. 1a sede di um def r0 3_ 10, a eausa della eua semanfica contorta in (mi SEDE P fornisce
E 3mm” quah 18mm “n mpicEam' rum“ “mite 3010 di—IMP SEDI
con PROGETTOINONf J—P; §EPE_P, 11111.13) di Figura 10.2 — che e in BCNT‘ & d1 pure origin: a m 16 s- ’. ”SEER‘ 1 he qI-lch blsogno lill 31111 criteri CheI insieme alle condiziom' di 3NF 0 BCNF evgfiuopmle.
grafi seguenti venanno esa111mate 121:0 3:“? d1_catu1ra ‘Iuam d1 questo tipo. Nei tre Suttopara CDnSiderata nel s _ . 11 Im aggluntwe che devono sussistere su una decomposizionc D 110 mswme.
11.1.2
Decomposizione e conservazione delle dipendenze
infightiégljlle :lhe egei dipendcnza funzionale X —> Y specificata in F apparisse dircttamente 13 dipennE: :1: darelazmne R, della decomposizione D, oppure potesse esscre inferita dalSewazmne dd? den :11 qualehe RI. Infonnalmente, quella enunciata é Ia candizione :11" conFrap msema e IPBMEHZBI 31 des1dera conservare 1e dipendenzc perché ogni dipendenza in Singog; lielfli::ev;nfjtffias:l: base d1dafi. Se una delle dipendenze non é rappresentata in una . ,’ . omposmon e. mm a: possibfle imporre questo vmcolo ' ' :31;$:::esola'n:lf.azzo11e, once-Ire plut-tosto unjre tramite join due 0 pit! relazioni defiafiiflfi minimal-i 311:“ 1 venficare che mi nsultato defl’operazione di join sussistano 1e dipendenze Non é n arareente ques'ta é una procedura ine‘ficiente e poco pratica. 1e malionjegzflsamggccohe 1c QIPendenzgspecificate in F si presentino esattamente nelle sings stone suns Stigma mhfioni mp051z1one mp . D. sufficient: . . che l’uni . one d 6 He d1pendenze ‘ che sussi-‘ sfi concem, 5121110 eqmvalenn a F. S1 daré ora definizione formalc di que— D to . . . . . R a un ms1en13 d1 dlgendcnze F s11 R, la prolezione di F 511 R denotata con 11: d :1]: y, é um sottomswme di R}- E l‘insieme di dipendenze X —) Y di 1'; tali che gli tm'lwgaldio}; szano tutti decomposizj onecontenuti D 911mm: in 1H,. den Percib . la pmieziome d'I F 511 1:13:11' schema d1' relazione R. a “'1della l _ . . . . ‘ e dlpendenze funzionali in F“,ch1usurad1 ' ' F,tahch ' r tu ' ' 9:128?m a]; gas-{eslmstra e chlparte destra siano in R3. 51 dirh che una demmptusiztizonétjl!)l ”. RI. . su 03m 2...., in D n,e equivaleme 1 conserve a F; edi do: enden ze nspetto ' a F 5:! ‘ meme ' delle prmezlom ‘ ‘ ' :11' F -
11.1
Algoritmi per la progettazione di schemi di basi di dati relazionaii
' '
349
((75111[F}) U
U (fiRm(F')))+ = F'-
. ' ' Seu la decontififigposémme non coneerva Ie dlpendenze, qualche dipendenza viene persa nel-
coif time flew} p1111111, per Yerificm 5" ”113 dipcfldenza persa sussiste munqma 3 otlene1I-coccon‘e 11:13 11:15 e1: are 1.1 JOIN ch due 0 p111 relazioni presenti nella decamposizione fins destra ’della di. panenza Sims” partesuss1ste gli‘ Eta-lbwdeldiJON tutu » lae dlpende _ Un’openza Pcrsa 1513:3? diPCnd ' Care“ se veEssa “1“ gills n e1 nsultato .
2.10m: poco pratica.
e in BCNF (si veda ‘11 11‘111119110131 (3511, 11111115903, one, NOME_P, SEDEflP}, che. non
: .
... .0 u
I. .
1--.
1 _-
NanaI secs llI {in (d IZIOI‘IE ( 1n] I l 1'! g LIE m g I ese)d1 qllESBO 11bm, 51 5 1.1881318 “Uta-ZION: 1: F( Ila 1) (III “ace Che 1512'“ D Del
' s a : manna-lion;
......_...
;_,_ ..—..
Eva‘s—'3'
-.._....a
type—a
Algerltmi per la pregattazlene di basi dl dafi relazienali
351
Capitolo 11
350
Flguta erva le dipendenze E: ptescntate m 10 di decem esiziene che non cens gilpeizac: defe e vmn TI1A LOT de quau e le D‘FZ-é Pars 1;::1“Sui 1a dipendeglza funziena pi;6 dc“
10.1
ce. censervaltie E;1) mpesinen: :11 Eggs: 10.11, mve {LOTTI1AX. LOTTI1AY}. Le dece ente da qu e “Len-r0 ntcm nde dPe 3, 10.1 l‘esempie in Figura
‘, 2,2 Analogamente. per ENTE, INSEG ‘ ta per la relaziene INSEGNMSWD c1a enun SI e. e'mpesizieni mestrate venga scel ven‘gene pars ndenze eriginafiamente presenu IEDGENTEm mm o entrambe le dipe la dimestrazwne. e dam a senz rieté prep ta1e a qui una preposiziene relativa che. conserve 1e dipenteevare 1111a deeeutpesizienc D Prepeaiziene 1: E sempre pessibile . i rel-amen: R, (11 D 51a m 3N'F denze rispette a F a tale che egn funzienali F, una decompoa arfire da un insieme d1 dipcndcnze ' ' erva 16 aipentcileflzede tale cens the R, iene universale 5123:2130:T2311: .ifnH} g: una relaz ervazxenel. e e. £1132: garantisce sole-1a prepneta 1:11I cens she egni R, di D sia in 3NF. Esse merl‘filk.1 cefsts :0 2 aigem dell e pass e a perdita. I] prun gen mo . . denze, mm 13 preprieth di jein senz o usat rc di F; per queste passe pue esse u-evaxe una cepertura minimale G ervazlene da11e dipendenze. d1 sintesl relazlonala con cens ALGORITHO 11.1 Algerltme
ze funzienali F sugii ambuu ch R.
a un insieme d1 dipcnden Inpnt- Una relnziene universale R
geritme male 6 per F (si usi 1‘A1 Si trevi una cepertura mini ‘ 1e.2 ' LOnale eresente X di una dipendeaza funZ Per Lani parts sinistra but1 {X U attrz can D in e di ralazien in G, 51 crei une schema --., X —? AK SOHO
1
2
'
{A1} U {A2}
3
I
"'
U
{Aid}:
2.; dove X —’ A1, X 9.14
a (X é la can X come parts alnlstr . la sole dipendenze in G ziene); CHIAVE d1 quests rela t; sta sene nen ibuti rimaaenti (aha Si pengane tutti gli attr e per in un solo schema d1 relazten a) zien rala una ness in ti pes tt. ibu attr lz deg di censervaziene garantire 1a proprieta
SIN-1F _(nen 5e 11: iene create dall’Algexiune 11.1 e in Pro osizlone 1A: Ogni schema di relaz mswme Immun a G che fatte il za utiliz iene dimestraz da :11 una dimestraziene fol-111319.;3 la
male :11 dipendeflfifll
egnédépenaig: 1e dipendeuee presenti in G, perché equture E evvie ch: 1‘ algoritme censerva tutte smene D. Dal memento che _
i Rf della decempe za compare in una delle relazien decempesmene epg di sent) direttamcnte censetvate eella lentc a F. tutte 1e dipendenze in F de eesi la; prilpr'te “e euran ass1 , tanu nsul ienj nelle relaz sane derivabifi da quell: preseuti ch strum ‘re autumn. n l-mu alga L’Algoritme 10.1 P: eette censenraziene dell: dipendenze. e (cestrmte) a p -nam Stare é nc smo mpe dece R, nella perché egni schema di relazione X. tra suus ienali in G con la stessa pane dall‘insieme di dipcndenzc fimz
11.1.3
Decomposizione e join senza perdita (non-additivi)
Un’altra preprieté che una decempesiziene D deve seddisfare E quella di join senza perdita e join non-additive. ch: assicura che non vengane generate tuple spurie quando alie relazieni della decempesiziene viene appficata un‘epexaziene di JOIN NATURALE. 11 preblcma é gia state illustrate nel Setteparagrafe 10.1.4 cen l‘esempie dell: Figure 10.5 I: 10.6. Date Che si ttatta della prepricté di una dccemposiziene di schemi di relaziene, la eeudiziene di assenza di tuple spun'e devc sussistere per ogm‘ stare valido di relazione — cieé par egui state di relaziene Che soddisfa le dipendenze funzienah' in F. La preprieta di join senza perdita é percie sempre definite. rispette a un insieme specifice F d1 dipendenze. Fonnalmente, una decompo— siziene D = {R1, R2. .... Rm} di R seddisfa 1a preprieté di join senza perdita (non-additive)
rispette all‘insieme di dipcndenze F :11 R se, per ogni state di relaziene :- di R ehe seddisfa F, sussiste quante segue, dove * e il JOIN NATURALE di tutte la relazieni in D: *(nfil(r), ..., aha» = r
La parela perdita in senza pera‘fra si rifen'sce a perdita di infannaziene, non a perdita di tuple. Sc una decomposizione nen soddisfa 1a proprieta di join senza perdita. é pessibile che si presentine tuple spurie aggiuntive, dope che sene state eseguite 1e eperazioni di PROIEZIONE (1:) e di JOIN NATURALE (*); quests tuple aggiuntive rappresentano un‘inferma— ziene errata. Si preferisce qui 1a lecuziene join non-additive perché essa deserive pih fade}— mente la situaziene; 56 per una decempesiziene sussiste questa proprieta P.- sicure Che, depe che sene state eseguite le operazieni di PROIEZIONE e JOJN NATURALE. non verranno aggiunte a1 fisultate mple spurie, che pertane infermaziene sbagfiata. Owiamente 1a decempesiziene di IMP_PROG[SSN , NUMERO_P , ORE, NOME_I , NOHE__P, SEDE_P). di Figura 10.3, in IMP_SEDI (NOME_I , SEDE_P) e IMP_PHOG1 (SSN , NUMEHELP ,
ORE, NOME__P, SEDE_P)l presents in Figura 10.5, mm seddisfa la proprieta di jein senza perdita, come illustrate in Figura 10.6. Per verifictu'e sc una data deeempesiziene D seddisfa la proprieta dj jein senza perdita. rispette a un insicme F di dipendenze funzienali, si pub usare 'l’Algeritme 11.2. ALGORiTMO 11.2 Verlflca defla preprieté dl join senza perdita (non-additive).
Input: Una relaziene universal: R, una decemposiziene D = {Rh R2, ..., Rm} di R. 6 un insieme F di dipendenze funzienali. 1.
2.
3.
SJ. cestruisea una matriee iniziale 3 con una riga 1’ per egni relaziene R,- di 0, a una celenna j per egni attribute A, :11. R. Si penga 3(1, 3'] '.= 3“ per egni elemento della matriee. (* egni Hu 9 un simbele distinte associate ati indici (i. J} *J Per egni riga .t' eha rappresenta 10 schema di relaziene H, {per egni celenna j che rappresanta l'attribute A, {se (la relaziene R, centiene l'attribute #1,} allera si
ponga 5(1. 3') == mm};
____________——Maia: (1983) e Uliman {1982). ! Per nna dimesuaziene si weds.
(* egni AI é un simbele distinte associate all'indiee (J) *)
Algon'tmi per la progettazlone d1 basi di datl reiazionali
Caplioio 11
356
3
ALGORITMO 11.43 Rioerca dl una chiave K per lo schema di relazione R sulla base di un insleme F cll oipendanze funzz'onali.
1. 2.
E importante sottofineare che la teorla delle decomposiziom' con join senza perclita si basa sull assumone chc mm mm- consentiri valor-i nulli' per glz' attriburi dijoin. ll pmssimo Paragrafo atfronta alcum probiemi che nelle decomposizioni relazionali possono essere causati dill valon nulli.
..., X _, AK sono 1e sole dipendanze di G eon X come parte sinistra (X e la CHIAVE di questa relazione). Se nessuno degli schemi di ralazinne in D contiane una chiave oi H, allora si costruisoa un altro schema di relazione in D che contenga attributi che formano una chiave :15. R.
Si pub dimosiIare che la decomposizione formata dall’insieme di schemi di relazione co— struiti dall’algorilmo precedente conserva le dipendenze e gode della proprieth di join some perdita. Inoltre ogni schema d1 relazionc nella decomposizione b in 3NF. Quests algoritmo b an miglioramento dell‘Algoritmo 11.1, dato che quest’ultimo garantiva solo la conservazione delle dipenclenze.‘I Il passo 3 dell‘Algoritmo 11.4 prevede l’individuazione di una chiave K di R. Per individuare una chiavc K di R sulla base dell’insicme date F di dipendenze funzjonali pub essere usato l‘Algoritmo 11.43. Si comincia ponendo K ugualc a tutti gli attributi di R; ouindi si rimuove un attribute alla volta e si verifioa se i restanti atu'ibuti formano ancora una superchlavc. Si noti Che l‘insieme di dipendenze funzionali usato per determinate una chiave nell'Al— goritmo 11.4a pub CSSCI‘C F o G, dal momenta che essi sono equivalenti. Si noti. inoltre, che 1’ Algoritmo 11.4a determina solo ma chime fra 1e possibifi chiavi candidate di R; la chiave fomita dipende dall’ordine con cui gli attributi sono rimossi da R 31 passe 2.
Si ponga K := H. Per- ogni attribute A in K {51 calculi (K - A)‘ r'ispetto a F; 59 (K — A)‘ oontiane tutti gli attributi di R, allora si ponga K := K — {M};
Non b sempre possibile trovare una decomposizione in schemi di telazione che conservi 1e dipendenze e Che consenta a ogni schema di relazione dolls. decomposition: dj essere in BCNF (anziché in 3NF come nell’Algoritmo 11.4). Si pub peusare di controllare gli schemi
Eli relazione in 3NF della decomposizionc uno a mm per vedere se soddisfano la BCNF. Se qualche schema di relazione R, non b in BCNF si pub scegliere di decomporlo ulteriormente 0 di lasciarlo oosi com’e in BNF {con qualche possibile anomalia di aggiornamento). Il fatto che non si possa sempre trovale una decomposizione in schemi di relazione in BCNF che conservi 1e dipendenze pub essere evidenziato dagli esompi in Figura 10.12. Le nelazioni LOTTI 1 A (Figura 10.12a) e INSEGNA (Figura 10.13) non sono in BCNF, ma 50:10 in 3NF. 0n tentativo di decomporre ulteriormente queste relazioni in relazioui in BCNF ha come risultato una
petdita della dipendenza DF2: {NOME_CONTEA. #LOTTo} «a» {#ID_PHOPHIETA, AREA} in LOTTI1A 0 una perdita di DFl: {STUDENTE INSEGNAMENTO} —> DOCENTE in INSEGNA.
357
11.1.4
Problemi con valori nulli e tuple dangling "
Quando si progetta uno schema di base di dati relazionale bisogna valutare attentamente i problemi associati alla prescnza di valori nulli. A tutt’oggi non é stata presentata nessuna teoria d1 progettazionc relazionale picnamente soddisfacente che comprendai valori nulli. Un pro~ blema si ven’fica quando alcune tuple presentano valori nulli per atu-ibuti che saranno usati per efieltuare il JOIN di singole reiazioni della decomposizione. Per illustrate cib si consideri la base di dati mostrata in Figura 112(3), in cui sono presenti le due rclazioni IMPIEGATO e DI -
PARTIMENTO. Le ultimo due tuple impiegato — Berger 6 Benitez — rappresemano impiegati appena assunti Che non sono stati ancora assegnati a un dipaztimento (si dia per scontato che cib non violi alcun vincolo di integrith). Si supponga ora di valor recuperare un elenco di valori d1 [NOME_I, NOME_D) per tutti gli impiegati. Se si esegue l'operazione di JOIN NATURALE su IMPIEGATO e DIPARTIMENTO (Figure 11.2b). 18 due tuple suddette nan appariranno nel risultatu. Con l’operazione di JOIN ESTERNO, studiata nel Capitolo T. si pub affrontare questo ptoblema. Si rioordi the, 5: Si considera il JOIN ESTERNO SINISTRO di IMFIEGATD con DIPAfiTIMENTO. le tuple di IMPIEBATO che presentano un valore nullo per l‘attributo di join appanranno comunque nel risultato. cong-iunte (joined) con una tupla “immaginaria” di DI PAHTIMENTD che presenta valon' nulli per tutti i suoi attributi. La Figure. 11.2(c) mostra il risultato. In generals, ogni volta che viene progettato uno schema di base di dati relazionale in cui due 0 pi!) relazioni sono collegate tramjte chiavi esteme, dove essere dedicata particulate attcnzione a ricercare potenziali valori nulli nelle chlavi esterne. Cib pub infatu' causare un'inaspeltata perdita d’infon'nazione nellc interrogazionj ch: prevedono joiu su quella chiave esterna. Inoltre. se si presentano valori nulli in ale-i attributi, come STIPENDIO, il loro effetto su funzioni built~in (integrate) come SUM 0 AVERAGE deve essere attentamente valutato. .
Uu problem collegato e quello delle tuple dangling (dondolanti), che possono presentm-
51 se 51 spmge troppo oltre una decomposizione. Si supponga di decomporre ulteriormente la relazione IMPIEGATO di Figura 11.2(a) nelle relazioni IMPIEGATOJ e IMPIEGATO 2, mostrato in Figura 11.3(a) e 11.3(b).J Se si applica 1‘ operazione di JOIN NATURALE aAIMPIEGA TD_1 e IMPIEGATO_2, si ottieue la relazione IMPIEGATO originale. Si pub perb usare la rappresentazione altemativa mostrata in Figura 11.3(c), 'm cui non si insertsce mm tuple in IMPIEGATtLa se all’impiegato non e state assegnato un dlparlimento (anziché insert-e una tupla con un valor: nullo per NUM_EI come in IMPIEGATO_2). Se si usa IMPIEGATO__3 anziché IM PIEGATD_2 e si esegue un JOIN NATURALE su IMPIEGATD_1 e IMPIEGATOHS, le tuple re-
-‘
ll passe 3 dell‘Algmitmo 11.1 mm b necessario nell‘AlgoriEmo 11.4 per conservarc gli attributi, date Che la chia— ve oompi'endcra tutti gli attrihuli non ancorn considered: questi sons gli attributi che non partecipano u uessuna dipcndenza l'unzionale.
_....._.J
,
. . . CJb accade [alum quandu SI. applzca um: frnmmeutazionc vertical: a una relazione nel contesto di unit has: di dati distri buita.
-»...—-—-j'
Qua-4'
”ma!
mad
:.
:1
i
I
I' I
1-"
I
.-
1
'.____,_....
keg—g”;
W
4......_..}
-- _.---- .
.——.— ‘
'
Algorltmi per la progettazione d1 basi df dati re1azfona1i
Capltob 11
358
{35
11112159470
[a1
‘
Smilh. JohnB. mfiarflm'l'.
2414119794194
125453139 33311415555
1965-01-01] 1955-1243
9991397777
1999-0749 1941-05—20 1962-09—15 197207—31 1E9-03-29 1937-11—10 196504—26 1963-01-09
937554321 999954444 453466455 997997997 338655555 399176555 868664444
Wm.Jannflar5. NamflammhK. EI'IQJLBNHJD‘jDeA. Jab'tflrfihmadu Bug. mas E. Bergenmdamc. Banllaz.OarlosM.
114919120
134mm
53931
-
NOMLI
1
NUM_CI
I
4 5 5 4 I nu1'l ml
DIPAH'I‘IMENTO
(b1 3331145555 9518511321 568665555
6 4 1
Enema mum-921m Sedoomuala
fl
1
DATILN
1
1941-96—29
997954321
wakes. 4911111115.
6655344“ 453453453
1962—09-15 WIFE-D7411
Jabber, 4111119911
997957997
1959-99-29
Belg-Jam- E.
383556555
1QGT-11-1D
New Rama-1K. Englls'mduwafi.
i NUM_0 I
NOMEJJ
1 SSN_D1E_DIP
231 Barry. 349119.171
4
Wm
5 5
am m
333N555 383445555
98004195. HDLHIDIIJ'X
4
41mm
967954321
I
Sadacarflrale
MEWS
4505mm. Nov-151100.171
!
33344555 5334145555 937654321
5 5 4
9?5F1m Oak. HunbfiaJX 5531 Hoe.Hou919n.TX
997954321
In) I
NOMEJ
I
5muh.JohnEL Worg,FraI114Tn'E 291m. Mai Wlamdamflss. NaruyenfiamadhK, EngThh. Jayne A MDBnNI'nIflV. Bong. James E. Banger. M91956. Bel-1119239499141.
E
123458789 3331345556 99988177? 987654321 865384444 4534531153 987937957 855865555 9917555 5856614!“
‘
DATA)!
1955-01435 195542-08 1999-9749 191114.320 1932-09-15 1972-13-31 1999-9429 1367-1140 1955-04-23 1963-01-09
l
1NDIF|JZZO
731Fm.H01.IsmTX 638m Hm.“ 8321 099110. Spring.“ 29“ M 5°“m WfifiaOfisHmfi 6531 Fine. 1491.19119m 930 D9199. Hum“ 4511 Shane. Hummfint 5550 Brass. 521151183X 1545M. 1491.1519m
l NUM_D i
5 5 4 4 5 5 11 I nulr nufl
NOMEJJ
Fiona Huang 749mm Wrist-aliens 8091173 m mm Sedamrmle FIJI nili
1 SSNJJHFLDIP
I
335446555 333145555 98765-1321 997654321 353445555 3334-15555 987654321 888665555 "WI IILI
con valor] nuHI. (a) Una base (11 dati con valorl nu1||_ Figura 11.2 illustraziona det problami re1ativi al 30171 e da1 JOIN NATURALE alle relazlom per alcuni attributi d1 ]o‘|n. (b) Htsultato dall'appllcazton JOIN ESTERNO a IHPIEGATD ticazione del IMPIEGATD a DIPAHTIHENTO. (c) Risultato da11'app
e DIPARTIMENTD.
o; queste sono dette, tuple dangling 191179 a Berger 9 Benitez mm 99791190 presenti nel risultat che rappresentano unptegan e per— ni relazio due perché sono :appresentate in 11119 5019 dell: m.“I (it-1113m join di razione un’ope esegue si 59 19.1110 vengono parse
5
:11 mph: che "dondolann": pill precisamenue si dovrehbe parlm Il termine "dangling" viene di solilo tmdollo can
rimangono 591123 1111 collegamcnlo ad altrl dali. (H.411)
941799 1965-91-09 1955-12-99 1969-97-19 1941-9929 1992-99-15 197241791 1999-03-29 1937-11-19 196504-26 1953411419
to)
j
1913191220 731 Fmdren. Hm”. TX 638 was. Houston.“ 3321 099119. Spflng. Tx 291 Barry, Balraka, 1x 97519190914 Hun-1919.714 5931 Rice. Hammon. TX 980 Della. Houston. TX 450 Stone. HoustanJ'X 6530 Brass. 8911:1m 7654 Beecl1.Houslnn,‘l'X
IMPIEGATOJ
919
mm film W
731Fmdr9n. Houston,“ “Willem“ 321%.W.“
1955411439 1956—1208 196643-19
123456789 3334115555 999387???
Sn‘fllh. John E. WangFrlnldlnT. MAIN“.
1NDIFIIZZO
l
993 123459799 399445555 999997777 997954321 995994444 453453453 937937987 939995555 999775555 833664444
11491594103 123456789 339445555 999937777 997954921
FD} NOMEJ
L
Smith. John 5 11mg. Frankiln 1'. 29m Min]: J. Waflaoe. Jannifer 5. Na'ayan. Earnest-1K. English. 40199754 Jabbar. td 11 Ban}. Jarms E. Bags: Mars c. Benita, Carlos M.
4
9321899119. 8mm.“
281 madam. TX QEMMHMTX 5631filcs,Huushun.TX SawduMJX 453 Stumfiwm. TX 65303195159119m 75649994144:m
IMPIEGATOJ
NOMEJ
5 5
731m.HOU-EMTX www.mmmm
359
5 5 4 4
123456799 399445555 999997777 997954321
5 5 4 4
6663344144
5
666334444
5
453453453 997997997 888665555 999775555 399594444
5 4 1 nu'll nu1|
453453453 997997997 999565555
5 4 1
Figura 11.3 11 problema dalla ”tupia dangilng". (a) La relazlone IMFIEGATOJ (ournprende tutti gll attrlbutl d1 IMPIEGATO a ecceflone di NUMEHCLD). (b) La relazione IMPIEGATO_2 (comprancie l‘attrlbuto NUMERQJJ con va1ori nufii). (G) La rerazlone IMPIEGATO_3 (oomprende I'attributo NUMEHD_D ma non comprende tupla per la quah' NUMERO_D assume valorl nulll).
11.1.5 Analisi degli algoritmi di normalizzazione U119 dei problemi con gli algoritmi di normalizzaziune descritti é che il progetfista delta base :11 dafi deve pfima di tutto specificare rune le dipcndenze funzionafi riievanti fra gli attributi della base di dati. Questo non 9 un compito agevole per una grands base di dau' can centinaia di attri-
buti. Una dimanticanza 119110 specificare una 0 due dipendenze importanti pub avers come n'sul-
tato 1m progetto inadeguato. U71 altm pmblema é Che questi algoritmi non sum in general: determilfisfici. Ad esempiu. glj algorimi di sinresi (Algoritmi 11.1 e 1 1.4) fichiedono la specificazionc di una copcfiura minimale G per l’insiemc di dipeudenze funzionalj F. Dato che in generale ci possono csserc molte coperture minimali conispondenfi a F. l’algoritmo pub fomjre diversi progetfi a seconda della specifica copertura minim-19.16 usata. Alcuni di questi pragetti possono non essere desiderabili. L‘algorima di decomposizione (Algoritmo 11.3) dipende daJl’cm dine con cui 1e dipendenze funzionali sono fornite all‘ algoritmo; anche qui B possibile Che 9i de~ rhino molti progctti diversi relativi aJlo stesso insieme. di djpendenzc funzionali. a seconda dell‘ordinc con cui queste dipendenze sono considerate per la violazione della BCN‘F. E ancora, alcuni progetti possono essere sigrfificat'rvamente supefion' mentre 9111-1 possum} assure inadeguati.
Algoritmi per la progettazlone di basi d1 dati relazlonaii 360
361
Capitoio 1‘1
11.11. Si dimostri che gli schemj di relaziune prudotti dall'Aigoritmo 11.4 50:10 in 3NF. 11.12. Si consider}. l‘esempio di normaljzzazione della relazione LOTTI del Paragrafo 10.4. S) deten'nini se la decomposizione di LOTTI in {LOTTI1AX. LOTTITAY, LOTTI1B, LOT— T12} gode della proprieté di join senza perdita, applicando 1’A1goritrno 11.2 e anche usando il test presente nella proprieth L11. 11.13. Si-a'ppli'chi I’Algoritmo 11.43 $11.13 relazione dell'Esercizio 10.26 per determinare una chiairc per R. Si costruisca un insieme minimale G di dipendenze equivalente a F. e si apphchj J‘algoritmo d1 sintesi (Algoritmo 11.4) per decompon'e R in relazioni in SNF. 11.14. Si ripeta l'Esercizio 11.13 per le dipendenze funzionali dell’Esercizio 10.27. 11.15. S1 applichi l'algoritmu di decomposizione (Algoriuno 11.3) alla relazione R e a11’inmeme di dipendenze F dell’Esercizio 10.26. 51 ripeta il mm per le dipendenze G del, l‘Esercizio 10.27. 11.16. Si applichi l‘AlgoriImo 11.421 alle relazioni presenti neglj Esercizi 10.29 e 10.30 per determmare una chiave per R. Si applichi l‘algoritmu di sintesi (Algotimm 11.4] per decomporre R in m1azioni in 3NF e 1’a1goritmo di decomposizione (Algoriunu 11.3) per decompotre R in relazioni in BCNF. 11.17. Si scrivano programmi che implementano glj AlgoriLmi 11.3 e 11.4. 11.18. S: considerino 1e decomposizioni seguenti per lo schema di relazione R dell’esercizio 10.26. Si determinj se ngni decomposizione gude {i} della proprieté d.i conservazione delle dipendeuze e (ii) della proprieta di join senza perdita. rispetto a F. Si determini and; in $31;£03m normaIc si trova ogni relazione della decomposizione.
Sommario irmi dz' i algoritmi di normalizzazione. Gli algor In questo capitolo ahbiamo presentatu divers univer— one relazi di a schem uno da panire :1 in 3NF. sinresi relazionale cosn'uiscono relazioni della denze funzionaii specificato dal progettista sale, sulla base di un insieme date Eli dipen tramite BCNF in oni relazi o crean onale relazi ione base di dati. Gli aigoritmi di decomposiz . d1 reiadi relazioni non normalizzate in una coppia successive decomposiziuni scnza perdita ioni: la pro— posiz decom deiie ieth propr tanti impor zioni compunenti. Abbiamo esaminato due denze. Si e la proprieté. d1 conservazione de11e dipen prieth di join senza perdita (non—additive) pcrdita. e un pil'l senza ione posiz decom di test i1 are is quindi descritto un algoritmo per effettu che ta di decomposizioni binarie. Abbiamo visto semplice test per verificare 1‘assenza di perdi proprieta sud1e be entram sfanu soddi che SNF in e possibile smtetizzare schemi di relazione 1a conservabile aspirare sale 5111' assenza d1 perdita; dette; invece. nel case di BCNF, é possi rata. assieu zione delle dipendenze non é necessariamente
Questionario di verifica
, . R3 = {3.171.194 = {RC}. " 1= 1, 2, 3,R4,R};R=A.B,C, a. H}.R5={D.LJ}. 2 {A . DE} } R= 5 1 1
ne degli amibuti in una decomposizioCosa si intende per condizione di conservaziu ne? sufficienti come condizione di buona praPerché 1e forms nonnali da sole non sono gettazione di schemi'? denze per una decomposizione? Perché Cos’é la proprieté di conservazione delle dipen é importante? tti gii schemi di relazione in BCN'F vengano prodo 11.4. Perché non é possibile garantire che CNF? non-B one re1azi di i schem di enze dipcnd da decomposizieni che conservano 1e punto. Si fomisca 1m controesempio per illustrare questo Pera (o non-additive) di una decomposizione? perdit senza dijoin ieta propr 1a Cos‘e 11.5. ché é importante? de-
11.6.
11.7.
13. 32 ={§..£2,§3}1;QR1={A,B, C. D. E}, R1 = {8, F, G. H}, R3 = {D, I, J}.
c.
= {D , E} , R3 = {3.F}.R4 = {R G, . 3: h 2, 3. 4.R};R=A.B.C,D 11?: s | 1 H},R5={D.I,J}.
Prezzo Anne, Stab_Pr'od, Galore), abbreviata con FHIGOHIFEROW, A, P, SP, 0} e che ha i1
11.19. Si consideri la seguente relazione FRIGOHIFERDWModallo ,
(33?“a insieme F di dipendenze funzionali: F = {M —> SF , {1.1, A} —> P, SP —>
a. Si valuti ciascuno dei seguenti insiemi come possibile chiave candidata per FRI BORIFEHO, giusn'ficando perché pub essere 0 non pub essere una chiave: {M}
m. A}. m. 0}.
enze e assenza d1 perdita. quale
Tra 1e due proprieta di conservazione delle dipend
'
b. Sulla base di questa determinazione della chiave, si stabilisca se la relazione FRI GDRIFERO e in BNF e in BCNF. fomendone 1e opportune giustificazioni.
ve essere assulutamente soddisfatta? Perché‘? tuple dangling. Si discutano 1 problem relativi a1 valuri nulli e alie
c. Si consideri la decomposiziune di FRIGOHIFEHO in D = {H1 (HI. A, P} . new, SP , .C) }. Questa decomposizione e senza perdita? Si dica perché. (Si pub consul-
tare 11 test presents nelIa proprieta LII del Sottoparagrafo 11.1.3].
Esercizi 11.8. 11.9.
goritmo 11.1 sum in 3N‘F. Si dimostri Che gli schemi di relazione prodotti dall‘Al e 11.2 non ha una rigs. can tutguritm dafl’Al nte Si dimestn' Che, se la. marries S risu1ta e la successiva riunione trainine posizio decom sulla S di ione proiez la ti simbolj “a", spmia. tupla te join produrré selnpre almeno una
W m.hmwm
' LE" "H3 ”‘1..c
Bibliografia selezionata ,
filibri di Meier (1983) e Atzenj e De Antonellis (1993) contenguuo un’esauriente tranazione eila {em-1a della dipendenza selfizjonale. L’aigoritmo di decomposizione (Algoritmo 11.1) E I...
.
it
362
Capitolo 11
basa sull‘algotitmo di normalizzazione predovuto a Bernstein (1976). L‘ Algoritmo 11.4 si un algoritmo polinomiale c Fischer (1932) e fomito sentato in Bislcup e altri (1979). In Tsou
‘ per una decomposizione in BC . 1n Ullman fomita e a perdit senza join dei e La teoria della conscrvazione delle dipendenze discussi. La proprieta d1 Jom qui tmi algori degli i alcun per prove ti (1938), dove sono presen re). Algoritmi per determinare le chiavi di una senza perdita é analizzata in Aho e altri {1979 ); i1 test per la BCI‘l’F (1976 rn Osbo in i fornit sono nali fonzio lazionc a partire dallc dipendenze —
r (1982). Algorit per la 3NF a trattato in Tsou e Fische e analizzato in Osborn (1979). 11 test ) e Hernandez c Chart (1991). (1990 g inWan i fornit sono BCN'F in mi per progcnare relazioni deile idce Illustrate
ione teorica di molte in Abiteboul e alts-i (1995) e presents una trattaz 10. io Capito in questo capitolo e nel
Capitolo 12
Esempi di sistemi di gestione di basi di dati relazionali: Oracle e Microsoft Access
alcuni In questo capitolo analizzeremo l‘implementazione dei mode1lo relazionale di dati in dati basi di gestione di relazionali sisterni dei famiglia la sistemi commerciali. Poiché non e [RDBMS: relational database management system) comprende moltissimi prodotti, no in possibile in quests sede confrontare o valutare 1e caratteristiche di tutti; si esamineran deltagiio, invece, due sistemi particolarmente rappresentativi: Oracle, che fa parte dei prodot— rivolti di fascia alta che cbbero origine dai computer mainframe, e Microsoft Access. che si ge afl‘utente di personal computer. L’obicttivo e mostrare come questi prodotti pur offrendo e interfunzionalita e caratteristiche relativamente simili. sianc caratterizzati da architetrure facce molto diverse. Nel Paragrafo 12.1 fornircmo una panoramica storica dello sviluppo del RDBMS, menu-e ra e 1e fund3} Paragrafo 12.2 al Paragrafo 12.5 descriveremo i1 RDBMS Oracle: l‘architettu i Iinguaggi di dati. dei oggetti a ne modellazio la 12.2); (Paragrafo sistema del principalj zioni di memoprogrammazione c i trigger (Paragrafo 12.3); come Oracle organizza i1 suo spazio Oracle rizzazione interno (Paragrafo 12.4); alcuni esempi di programmazione in ambiente lo svie dati di basi delle ne progettszio la per Oracle in ['Paragrafo 12.5); strumcnti dispouibilj luppo delle applicazioui (Paragrafc 12.6). Offi— II pacchctto Microsoft Access atmslmente viene fomito insieme agii altri prodotti di 2000. N61 ce 2000 e pub essere usato su macchine Windows 95:98, Windows NT e Windows tecniche di deParngrafo 12.7r daremo una panoramica 511 Microsoft Access comprendente 1e interrogafinizione e gestione dei dati, nonché Ie funzioni grafiche interattive per facilitare 1e ta d1 funzionali delle e iche caratterist delle riassunto un mo zionj; nel Paragrafo 12.8 presentere . Access relative a11e maschere. ai report e alle macro e considereremo brevememe alcune fun~ zioni aggiuntive del prodotto Microsoft.
364
Capitolo 12
12.1
Esempi di sisteml dl gesfione delie hast dl dati reiazienaii
Sistemi di gestione di basi di dati
12.2
365
Struttura base del sistema Oracle
relazionali: una prospettiva storica L‘introduziene del modelle relazienale nel 1970 segno l‘inizie cIi un’intensa attivita di ricerca e sperimentazione sulle idee relazionaii. I principali sforzi di ricerca fureno iniziati presse il Centro di Ricerche di San Jose [era chiamato Aimaden} dell’EBM. Negli anni ettanta si 211'rive cesl all’annuncio di duo prodotti DBMS relazienali dell’IBM: SQUDS per ambienti DOSNSE (disk operating systemi'virtual storage extended) e VMICMS (virtual machinefconversatienal monitoring system). introdotti nel 1981. e D132 per il sistema operative MVS, introdetto nel 1983. Un altro DBMS relazionaie, INGRES. fu sviluppato presso l'Universita della California, Berkeley, nei pn'rni anni settanta e messe in cermnercio dalla Relational Technology alla fine di quel decennio. Da pretetipo di ricerca. INGRES divento in breve un RDBMS commerciale per opera della Ingres, una consociata della ASK; attuaimente viene venduto da Computer Associates. Altri notissimi RDBMS cemmerciali sono: Oracle della Oracle; Sybase della Sybase; RDB della Digital Equipment. era di proprieta della Compaq: INFORMIX della Informix e UNTFY della Unify. Oltre ai RDBMS appena menzionati negli anui ottanta apparvero molte implementazieni del modeilo (ii dati relazienale per personal computer. Tra queste vi some RIM. RBASE 5000. PARADOX, OSIZ Database Manager, DBase IV, XDB, WATCOM SQL, i1 Server SQL della Sybase, i1 Server SQL della Microsoft e, pie recenternente, Access (anch‘esse della Micro-
soft). Inizialmente si trattava di sistemi menoutente; era. pere. i preduttori harme iniziato a of— frire su personal computer l‘architettura delle basi di dati clientfserver rendende i lore RDBMS compatibili con 10 standard ODBC (Open Database Connectivity) che permette di eseguire inlerrogazioni SQL :1 questi sisterni. Anche se i prodotti per personal computer hanno subito una notevele eveluzione, occerre notare che i1 termine relazionale viene ancora usate da molti fomitori in mode inappropriate. Perché una base di dati possa essere definita rclazionale, Cleve avere alrnene 1e seguenti preprime:1 1. memorizzare i dati come relazioni in mode che ciascuea celonna sia identificata indipendenterneme dal suo norae e l’ordine delle righe sia irrilevante; 2. 1e operazioni disponibili per 1’ uterite cosi come quelle usate intemameme dal sistema sono vere operazioni relazienali in grade di creare nuove relazioni partendo da quelle esi-
Tradizionalmente i femitori di RDBMS hanno scelte di usare 1111a terrm'nolegia specifica per la documentazione dei lore pmdotti. L‘organizzazione del sistema Oracle verra descritta oercan» do di mettere in relaziene queste tenninologia con quella di use pill generale. E interessante vederc come i venditeri di RDBMS hauno progettato pacchetti software Che seguono fondameetalmeme i1 modeflo relazienale, ma effrono anche diverse funzioni aggiuntive per eseguire il progetto e l’implementazione delle basi di dafi cli grandi dimensieni e delle applicazioni che ne fanno use. U11 server Oracle censiste in una base di dati Oracle, contenente i dati memerizzati (cempresi i file di registre 0 log file :1 di centrelle). e nell‘istanza di Oracle, cioe i precessi esecutivi. Questi ultimi si suddividono nei processi di Oracle (0 processi di sistema] e quelli degli utenti, relativi a una specifica istanza delle base di dati. 1] server Oracle Lisa ‘11 linguaggio SQL per definire e gestire i dati. Dispene, inelIIe. di un linguaggio procedurale, chiamato PUSQL, per controllare i1 flusse esecutivo di SQL. per trasferire i risuitati delle interrogazioni in variabiJi e per gestire eventuaii errori. A Gracie si pub accedere anche attraverse linguaggi di pregrammaziene di uso generale come C 0 Java.
12.2.1
La base di dati Oracle ha due strutture principali: (1) una sfl'urrurafisica che si fiferisce ai da11' effettivamente memorizzati e {2) una straining Iagica che corrisponde alla rappresentazione astratta clei dati. Quest’uitima e approssimativamente equivalente alle schema cencettuale deila base di dati.2 La base di dati centiene i seguenti tipi di file:
0 mm o p11‘1file 151:" drm' contenenti i dati effettivi; 0 due 0 pi!) file di registro chiamati file (11' regisrm delle azieni di riprisrino (redo fog files) che regisuane tutti i cambiamenti fatti ai dati c 30110 usati nei precesso di ripristino delle base di dati nei case di modifiche che non devono essere scritte nella memeria permanente, ad esempio per il fallimento di una transazione; e um o piu file di contmilo (conrmlfiles) centenenti informazioni di controllo come i1 nome della base di dau','1 nomi e 1e localizzazioui degli altri file e um timestamp di creatio-
stenti;
3. i1 sistema deve suppertare almeno una variante dell'eperaziene JOLN.
Anche so sarebbe possibile aggiungere altri elementi ali’elenco appena femite, i criteri appena considerati sene quelli minimi per controllare se un sistema e relazionale: e facile notare come alcuni dei DBMS presentati commercialmente come relazionali non li seddisfine affatto.
‘
Struttura delta base di dati
a
ne delle basi di dad; i file dr' traccia {tracefiies} e 1111 regime dz‘ altar-me (alert log); i processi del server hanne un file di traccia ehe ne registra 1e azioni, mentre il registro di allarme contiene i principa~ li evemi relativi alla base di dati.
Sia il file :15 regislIo sia i file di centrofle pesseno essere mantenuti in copie multiple, scrivenclone piu copie su dispositivi multipli.
Codd ([985) indica I2 regal: per detenuinare 5: un DBMS a relazionale. Cedd (1990) si eccupa di modetli
relazionali estesi. identificando pill di Irecentetrerlta funzioni dei sistemi relazienaii, suddivise in diciotto calegerie.
sisal-dim- .
In queste paragrafo vengono urilizzati alcuni rennini che non sono encore stati defmu formalmente. Sane tum.w via essenziali pea una discussion-1e complete sull’architetrara di Oracle. “A...
- '3
' -
...
-
hen-yum
- - A ”W
HAMWM'
Esempi dl slstemi di gesfione detle basi dl‘ dati relazronali
Capltolo 12
fa st che tutti lbuffer o Puma di controllo (CKPT: checkpoint). Si traua di un evento che trascritli nei modificati dopo l’ultimo processo di CKPT e presenti nell’area SGA vengano i1 memento stabilire per DBWR processo 1 1 ' con coordina si file d1" dati. ll processo CKPT opportune per fissare un punto di controllo. deB‘istanza della base 0 Monitor o‘i sistema (SMON: system monitor). Esegue il ripristino memoria coutigue condidi arec occupare a andando memoria di aree le gestisce dati, di le operazioni di ripristino. vise e recupera 1e transazioni eventuahnente tralasciatc dutante di un processc utente recupero il Esegue . monitor) process (PMON: processo di 0 Monitor gestione della cache della anche abile respons B quando si interrompe a causa di un errore. utente. processo un da usate risorse altre e delle o
amente i file di registro in linea nella Memorizzarore (ARCH: archiver). Archivia periodic co) se configurato per farlo. magnefi nastro esempio (ad livello secondo memoria di
transazioni distribuitc Che soe Process-0 a‘r‘ rfiorisrino (RECO: recover process). solve 1e in one base dafi distrisistema di e rete di to ionamen malfunz un di causa a no in attcsa buita. esecutivi multipli, smista 1e o Smisratori (Drum: dispatcher). Nelle configurazioni a flussi server condivisi d3processi ai utente processi dai richieste d’instradamento provenienti di comunicazione. standard lo protocoi ciascun per re smistato processo an e V1 . sponibili alle istanze accessi degli blocco i1 no Assicura . o Processi di bloc-co (LCKn: lock process} . parallela server modalita in eseguito viene quando Oracle
12.2.3
Awio
server Oracle non E state avUna base di dati Oracle non e disponibile per gli utent'l fin che i1 disponibile agli utenti sorcnderla e dati di base viato e la base di dati aperta. Per attivare una seguenti. ni no necessarie lc operazio allocate l'area SGA e sonc I. Avvr'o di un’istanza delfa base di dad. In questa fase viene nza viene preparato dell‘ista zazione l'inizializ gestirc creati i processi di background. Pcr ni dell' area SGA. il dimensio le cui fra . controllo di dati contiene che i parametr di file on via. cost e si connetter pub nome della base di dati alla quale l‘istanza base di dati a un‘i» 2. Montaggio (mounting) :13 um: base dr’ deli. Questa fase associa una l’istanza di eseguita, venga razione quest'ope che stanza di Oracle appena avviata. Prime ione uno a molOracle e disponib'de solo per gli amnfinistraton'. I} montaggio e un‘operaz te la medesima ti, nel senso che pill istanze di Oracle possono montare contemporaneamen in mobase di dali. E compito dell’amminisu'atore della base d'x dati scegljere se attivarla modain dati di base una manta Oracle di dalita parallela o esclusiva. Quando un'istanza e Iitd esclusiva, solo quell'istanza pub accederc alla base di dati. D‘altra pane se l‘istanza modalita in awiate sono che istanze altre anche attivata in modalita parallela o condivlsa,
parallela possono montare la base di dati. 3. Aperture: di one base di dart. Si tratta cti un’altivita di amnfinistrazione della base (11' dati. L’apertura di una base di dati montata. la rende disponibile per le normali operazioni di ida‘ ' inea e i file di re fstro. sibifi -' ndo ’on -
. chiusura della base d3 dafi; . srnontaggio (dismount) della base di dati;
3. chmsura (shut down} dell'istanza di Oracle.
11 file di parametri che regola Ia creazione dj un‘istanza di Oracle confiene:
parapet; che assegnano nomj a elementi (ad esempio i1 nome della base all dati. i1 nome c a or: zzazione dei file di conu-ollo della base di dati, i nomi di ' ‘ ' ' ripristino o rollback);
-_...-
5335139“ Prim“ Per 11
o paramctn dimensionafi (ad esempio 1e dimensioni massime possibili per l’area SGA e [e duncnsmm massime dei buffer); 0 paramerri che influenzano. i1 carico ' 1]' parametro DB_ _ . denominafi variabili (ad esemp10 BLOCK_BUFFERS che unposta 11 numero di blccchi di dati da allocate nell’area SGA).
L‘amministratore _ ‘ defla base di dati pub modificare tali arameLn' dur t 1 ' gesnone e d: controllo della base di dati. [J an E e PIOCEdl-"e d1
12.3 Struttura delta base di dati e sua manipolazione in Oracle In origine Oracle fu progettatc come sistema di gestione di basi di dati relazionali Dalia ver— srone 8 del prodotto. Oracle e stato trasformato in un sistema di gestione di basi di dati a oggetu relazronale [ORDEMSz object relational database management system). NeI seguito si data one vrsmne d‘insieme di Oracle, comprese 1e sue funzionalita di modellazione relazio— descfifle n31 paragafg nale e a oggetti 12.6.Le principali difference tra Oracle 8 e l e versrom relazionale. ‘ ‘ precedenn' sono
12.3.1
Oggetti dello schema
In Oracle il ten-nine schema si rifen'sce a una serie di oggetti che definiscono dati Gli oggett1 dello'scherna sono singoli elementi che descrivono tabelle. viste e cosi via. Vi é oumdi una
netta drsunztone tra questi oggetti dello schema logico e i componenti di memorlzzazione fistca cluamatl spazt' defile rabelle. Qui di scguito si presentano gli oggetti dello schema supportatr da Oracle; :3 da notare cbe per denominarlj Oracle utilizza una propria terminologia chc s: aggmnge alle definizioni dei concetti di base deI modello relazionale.
o
Tabellfzungta [381:6 conformi a1 modelio relazionale presentato nei Capitolj 7 e 8. Ogm‘ coonna a In me a on name, an tipo di dati e u na grandma (che dende precisione}. dal ttpo ‘ ' e dalla
o Were (51 veda anche i1 Capitolo 8): tabelle virtuali che possono essere definite partendo da tabelle base 0 da altre \nste. Se la chiave di una vista di join (una vista Ia eui imerroga‘
m4...
369
OWJamente V: a: una serie di cperazioni oppcste per chiudere un’istanza di Oracle: NI—l
368
'
a
-__:_- Iii
1‘ “ ._:__
‘5
I' .Jé
fl_-_
'
:1_
-
i— ' WWW
1a.: «ms/mam
.._--.
'
mum-“a"- -
Esempi dI' slstemi di gestlone delle basi di dati relazionaii
Capltolo 12
372
ente l‘at— Oltre alle informazioni di dizionario appena descritte. Oracle conirolla costantern i. prestazion delle dinamiehe tabelle ehiamate tivita della base di dati e la registra in tabelle
sisteL’amministratore della base di dati ha accesso ad esse per eontrollare 1e prestazioni del ma e pub concedere ad alcuni utenti l’accesso a tall viste.
SQL in Oracle
12.3.3
SQL ANSIIISO. For11 linguaggio SQL implementato in Oracle e compatibile con 10 standard varianti. Time 1e alcune con ma 3, Capitolo nel descritte SQL iita funziona 1e nisce, quindi, quindl stringhe SQL, i istnrzion usando eseguite operazioni su una base di dati Oracle sono ne. Si fa riferimento a l’esecuzio per Oracle server al fornite vengono che SQL io linguagg del Sono gestire le seuna interrogazione completa SQL come a una frase SQL (SQL sentence).
grafo 12.2.1 e o istruzioni DDL: definiscono gli oggetti dello schema tratlati nel Sottopara accesso; di privilegi revocare c fornire di o permetron to. cancellazione e o istruzioni DML: specificano operazioni di interrogazione. inserirnen tabella 0 di una viuna di blocco il anche DML i operazion delle pane Fa ento. agglomam di esecuzione di piano del l'esame oppure sta per regolare gli accessi a dati condivisi ‘ azione: un’interrog ne sui dati e isrruzioni di commiio di Iransazione: specificano unite. atorniche di elaborazio con un'i— della base di dati. Una transazione e un‘unita atomica di elaborazicne che inizia slati sono nti cambiame (i commit it eseguito struzione eseguibile e finisce quando viene annullati). Le trascritti su memoria permanente) 0 ii rollback (i cambiamenti sono stau'
SAVEPOINT e istruzioni di controllo delle transazioni in SQ]... sono COMMIT (WORK).
ROLLBACK: le proprieta delisrruzioni di comroHa delle seSsioni: consentono agli utenti di controllare
o cambiando 1e imla loro sessione, se necessario abilitando o disabilitando alcuni ruoli
postazioni iii linguaggio (ad esernpio ALTER SESSION, CREATE ROLE); impostao isrruzioni di commlto del sistema: consentono all’ammirdsu'atore di cambiare L‘usessione. una eliminare di 0 condivisi, server cli zioni di base. come i1 numero minimo mica istruzione d1 questo tipo e ALTER SYSTEM; linguaggio 0 isrmzioni SQL incapsulate: 1e isn'uzioni SQL possono essere incapsulate in un elaborare di programmazione procedurale come PLr‘SQL di Oracle 0 il linguaggio C. Per tore. precompila apposite un usa Oracle C. programma un in le istruzioni SQL incapsulate FETCH, Queste istruziom' comprendono operazioni di gestione del cursore come OPEN. CLOSE e altre come EXECUTE. Il linguaggio PUSQL E un‘estensione del linguaggio‘procedurale di Oracle che agglunge funzionalita proceduralj a SQL. Compilando e salvando il codice PLISQL in una base cfi dati Oracle come procedura memorizzata. i1 traffico di rete tra 1e applicazioni e la base di dad é ri— dottc con un evidente guadagno in termini di prestazioni. I blocchi PUSQL possono anche essere trasmessi—da un’applicazione a one. base di dati Oracle per eseguire localmente operazio— -
L—.-__..
l
_‘
Metodi di Oracle 8
I rnetodi (operazioni) sono stati aggiunti 3 Oracle 8 come parte dell’estensione a oggetti relazionale'del s‘lstcma. Un metodo a una procedura o una funzione che fa pane deIla defimzrone di un hpo di dati astratto definite dall’utente. I metodi sono scritti in PLISQL e memonzzau nella base (it dati oppure seritti in un linguaggio di prograunnazione come C e :nemonzzau estemamente. Essi difieriscono dalle procedure memorizzate per i seguenti motwi:
a
a
un programme esegue un metodo facendo un fiferimento a un oggetto del tipo che gli e associato; 1m metodo Oracle ha complete accesso agli attributi dell'oggetio che gli a associate e alle informazioni sul suo tipo (si noti che cio in generale non vale per i modelli di dati a oggetti). Ogni tipo di dati (astratti) ha un metodo costruttorc definite dal sistema che a un mero-
guenti istruzionj SQL (Capitolo 8):
e
12.3.4
373
'
d1
.
WWWRWW "WWW” ”a 4-.
u
I -
do che crea un nuovo oggetto seguendo la. specificazione del tipo di dati. ll nome del metodo costruttore e identico al nome del tipo definite dall’utente; si comporta come una funzio-
ne e restituisce i] nuovo oggetto come suo valore. Oracle supporta alcunj tipi speciali di metodi:
o :1 metodi di confronto definiscono una relazione d’ordine Ira gli oggetti di un dalo tipo di an; o i metodi di map sono funzioni definite su tipi lncorporati per confrontarli rapidamente (ad esernplo un metodo map chiarnato area pub essere usato per confrontare dei rettangoli in base alle loro arse);
o i metodi che ordinano usano una loro logica intema per restituire un valore che codifichi 1:0rdine tra due oggetti delle stesso tipo. Ad esempio per un tipo di oggetto insurance_pohey. {che condene una polizza assicurativa) possono essere definiti due diversi metodi di ordmamento: uno che ordina le polizze per (issue_date, lastname, firstname}. cioe secondo la data di stipulazione e il cognome e Home del clienle e an altro per (policiumber), cioe secondo il numero della polizza.
12.3.5
Trigger
Oracle permette di impostare delle regole arrive attraverso i trigger. Si tratta di procedure (0 regole) memorizzate che sono eseguite {o attivate) automaticamente quando nella tabella 3 am 50:10 associate awiene un inserimento, un’eliminazione o 1111 aggiomamento. I trigger possono essere-mad per imporre \rincoli di integrita 0 per eseguire automaticamente operanom aggumnve che sono richieste da regole 0 da polifiche gestionali che varmo 31 di 1a dei consueti vincolj di chjave, d’integrita d’entita e d‘integn'ta referenziale imposti dal si-
stema.
.lW.»
. warm»
“may;
376
Esempt di sistemi dl gestlone'delle basi dl datl relazlonari
Capltolo 12
tuale minim di spazio nel bloceo che deve essere raggiunta (grazie aIle istruzioni DELETE e UPDATE che riducono 1e dimensiorli dei dati) prima che nuove righe possano esserc agglutite al blocco. Ad esempio. se nell‘istmzione CREATE TABLE si imposta
Segmemr‘ a‘ei dan': ogni tabella non raggruppata a cluster e ogni cluster di5pone di no sin— golo segments per mantenere tutti i suoi dati. Oracle crea ll segmento dei dati quando l‘applicazmrte crea 1a tabella 0 i1 cluster con il comando CREATE. I parametri di memorizaa— zrone possono cssere impostati e modificati con i comandi CREATE e ALTER.
FCTUSED 50
o
per i1 blocco di dati usato peril segmento di dati di questa tabella. che ha gia raggiunto i170 cento del suo spazio di memoria come determinate da PCTFREE. e considerato non dispon't— bile per l’inserimento di nuove righe finché la quantita di spazio usato nel blocco non dimiper nuisce sotto i1 50 per cerito.s In questo modo i1 30 per cento del blocco rimme utilizzablle la quando solo introdotte essere possono rlghc nuove esistenti; righe delle agglomamenti quantita di spazio usato scende sotto il 50 per cento. menu-e gli inserimenfi possono esserc eseguiti finché il 70 per cento dello spazio non e utilizzato.
Segmeati dell 'z‘ndz‘ce: ogm’ indice di una base di dati Oracle dispone di un unico segmen-
to dell'mdice che viene create con il comando CREATE INDEX. L’istmzione Cleve indi— caretlo spazio delle tabelle a cui si rifen'sce e specificare i parametrl di memoria del segmen 0. o
Segnrent‘r‘ rempamnei: sono creati da Oracle per essere usati dalle isrruzioni SQL che han-
no bisogiio .dl un'area di lavoro temporanea. Quando l‘islruzione complete l’esecuzione 1e estensxom da essa utilizzate vengono restituite a1 sistema per no use future. Le lstruzio: m che richiedono un segmento temporaneo sono CREATE INDEX. SELECT . .
{OR-
DER BY | GROUP BY}, SELECT DISTINCT e (SELECT . . .) {UNION | MINUS“ l ]N-
alQuando si usano tipi di dati specificl di Oracle come LONG 0 LONG RAW o in alcune
tre simazioni che utilizzano oggetti grandi. pub capitare che una rigs abbia una dimensione superiore a quella di un blocco di dafi riservati in quel segmento. In ta] caso Oracle memorizza i dati della riga in una catena dj blocchi di dati riservati per quel segmento: questo processo e detto concatenamento delle righe. Se una riga in origine si adattava a un blocco. ma la sua dimensione aumenta troppo a seguito di un aggiornamento dei dati, Oracle utilizza 1a migrazionc, spostando l‘intera riga in un nuovo blocco di dati e cercando cli adattarla a questa nuova posizione. In questo caso. nella riga originale viene pesto an puntatore al nuovo blocco di dati. Si noti che il concatenamento delle righe e la migrazione richiedono l' accesso a pill bloccbi per rintracciare i dati, e 1e prestazioni di conseguenza peggiorano.
1 2.4.2
3??
TERSECT} (SELECT . . .). Anche alcuni join non indicizzati e 1e sottointerrogazioni re-
lative possono richjedere segmentl temporanei. Le interrogazioni con le clausole ORDER BY. GROUP BY 0 DISTINCT che richiedono un’operazione di ordinamento possono es— sere efiertuate in mode pifi efficiente usando i1 parametro SORT_AREA SIZE. a Segmenrr‘ di tailback: ogni base di dati deve contenere uno o pill segmenti—di rollback, usati per :‘arinuljare" 1e transazionj. Un segmento di rollback registra (che esegua o mcno i1 commit) 1 valori vecchi dei dati usati per garantire la coerenza nella lettura (quando sl usa il conu'oflo multiversione} per realizzare il rollback di una transazione 0 per recuperate la versrone precedente di una base di dati. Oracle crea un segmento di rollback inizlale chlamato SYSTEM ogni volta che viene create one base di dati, i1 quale si trove. nello spazio ztlielle tabelle SYSTEM 6 utilizza i parametri di memorizzazione predefiniti di quello spao.
Estensioni
Quando viene creata una tabella, Oracle le assegna un‘estensione iniziale. Estensioni incrementali vengono allocate automaticarnente quando l’eszensione iniziale non e pifi sufficiente. La clausola STORAGE dl CREATE TABLE viene usata per stabifire per ogni tipo di segmento quanto spazio assegnare inizialmente, la quantita massima di spazio e il numero di estensionifi Le estensiorti allocate ai segmenti di un indice rimangono asseg-nate fin tanto che
12.5 La programmazione delle applicazioni Oracle
esiste l‘indice. Quando un indice associate a una tabella o a un cluster viene eliminate, Ora-
12.4.3
Segmenti
Un segmento e costituito da diverse estensioni e appartiene a uno spazio delle tabelle. Oracle use i seguenti quattro tipi di segmenti.
5 “ Hush-‘1‘;
Queste istruaioni sono esempi di quanta chiamato linguaggio di definiziorte dells memorizzaziorte neI Capitolo ‘1. Ease non fanno parte dello standard SQL. I detragll degli algoritmi diallocaaione eono descritti in Oracle (1997a).
La programmazione in Oracle pub essere effettuata in pi!) modi:
-
scrivendo interrogazioni interattive SQL nella modalita di interrogazione SQL; 2:331:30 programmr in un linguaggio host come COBOL, C o PASCAL e incapsulando a 'interno del programme. In questo caso, viene usato un
recorn ilat
PRO*COBOL o PRO*C per collegare l’appficazione 3 Oracle; P P 0T3 001116 scrwgndlo ilalJSQL. che e il linguaggio procedurale proprio cli Oracle; o usan o e i ren‘e 0C1 (Oracle Call Interface, Interfaccia di Chi ta d' ‘ breria routine SQLLIB di Oracle. 31713 1 Oracle) 5 13 h-
?
MINUS 9 equivalent: a EXCEPT [Capitolo 8).
....-
M... .4.
.. ”5h
:
.
a
51-
-
cle riutilizza lo spazio.
li Esempi dl slsterni di gestlone delle basl di datl relaziena
378
379
Capitele 12
12.5.1
Pregrammaziene in PUSQL
dere lnterregazieni SQL. ale di Oracle che pennette di inclu PUSQL a un linguaggie procedur del software. quali l'in~ ia gner inge di principalj funzieni — Esse effm agli sviluppateri tutte 1e nascendere inferrnazieni [infer dei dati {data encapsulation], i1 pie ca capsulamente e la preteziene tecn'r la e ed , zieni ecce delle rloading) e la gestiene matien hiding), i1 sevraccarice (ove in Oracle. eei icazi appl di ppe svilu le per usata edure, funzieni e e a blecchi. Le unite base. aloe proc turat strut e PUSQL e um linguaggi ere di setteblecchi ni— i e pessene centenere qualsiasi num bleechi anenjmi, sene blecchi legic e istmzieni. Le diieni iaraz raggruppa legicamente dich dificati. Un blecce e setteblecce a1 di fueri di esse. ili visib sene non e farce ene cui veng chiarazieni sene lecali al blecce in dichiarati variaene veng cui in : {1) 111121 parte dichlarativa Un bleeco PLJ'SQL ha tre parli e (3) una parte te ipula man sene bili varia rali eui in bili e eggett'r. (2) una parte eseguihile me I‘esecu— dura serti i errer gli e e gestite 1e eccezieni delle eccezieni in eui pessene esser
zrene. [ DECLARE
—-declaratiens ]
BEGIN —— -statements [ EXCEPTION —-handler‘s }
END ;
bili. Le variabili pesltatlva, vengene dichiarate 1e varia Nella pane diclfiarativa. che e face i prepri di PUSQL. untiv aggi dati dl SQL e anche di fipi sene essere di qualsiasi tipe di dati eggetti sene pei Gli ri. gnatl alle variabilj anche dei vale In questa part1: pessene veuire asse pessene esserc dati i Qul ria. igate , che e l’un'rca parle ebbl ali come IFmanipelati nella parte eseguibile iziee e cend ralle di flusse sequenziali. iterative la pane sue. elaborafi usande istruzieni di cent e cam Dal TD. GO— e E-LOOP, BET-WHEN TH'EN-ELSE, FOR-LOOP, WER eseguib'rle. Le ecparte nella si cata verifi e errer di e cendizien delle eccezieni gestisce qualsiasi e erreri di sistema. iti dall‘utente. eneri di basi di dati cezieni pessene essere erreri defin ccezieue e la nerrnale esecuun’e ata evec e vien . iene e un‘eccez Quande ha luege un errere eccezieni del settetrasferite alla parte di gesfiene delle ziene si bleeca e il centrelle viene pregramma 0 del blecce PUSQL. di dati di Figure rammi PUSQL per elaborare la base Si suppenga di veler scrivere preg starnpa alcune infer— scritte un segmente clj programme che 75. Come prime esempie. El. si e ndie plil alto: mazieni sul dipendente che ha 10 stipe E1 : DECLARE vfinemeatt v#1niz_int v_eegneme v__ind1rizze v stipendie
; impiegate . nemeflbatfiaTYPE impiegate . inizflintgaTYPE; impiegate . cegnemafisTYPE; impiegate.indirizze’aTYPE; impiegate . st ipendie’sTYFE;
BEGIN EEEECT
neme_batt, iniz_1nt, cegneme, indirizze, stipendie v_neme_batt, v_iniz_int v cegneme v indirizze v St
IMPIEGATO
FROM
I _
stipendie = (select max (stipendie) from impiegate}
WHERE
'
’ " ipendle
t "
;
DBMS_0UTPUT.PUT_LINE (v_nema_batt, v_iniz_int, v eegneme, — v_indirizze, v_stipendie); EX GEFTIDN WHEN OTHERS DBMS_OUTPUT.PUT_LINE ['Individuate error-9'); E ND;
‘ In E} a: state necessarie dichiarare alcune variabili delle stesse ti o e che centenarm :teg: gli avere non 0 agere pessene Esse elaboreré. e programm i1 the dati di armburr della base che sr nem: deglj atlIibuti cerrispendenti. La clausola %TYPE in egni dichiarazione significa tabella. DBMS QUT— quella var-labile e delle stesse tipe della eelenna cerfispendente nella
erreri d_eI prePUT.PUT_LINE e la funziene dj stampa di PUSQL. La pane di gestiene degli I’esecuziene durante se, errere di messaggie un di stampa [a effetrua afive gramma esemphfic
si verifica se viene seledella frase SQL, Oracle individua un errore (in queste case l'enrere
specifica 1e zreraate-plfi di un dipendente). I] programme cem'prende una clausela INTO che dati. di base dalla estratfi attributi vanabrh eel-programme che centengene i valeri degli degii irn— stipendie le aumentare per a pregrarnm semplice un a: 32, , successive ‘ L esempre e ricalcela e programm I1 medie. cempense a1 pregatr 1] cm salarie e infer-lore del 10 per cente mente. l'aggierna eseguite velta una 50.000 a superiere e se medie stipendie stampa le
'
52:
'
DECLARE stipendie_medie NUMBER; BEGIN SELECT avg(stipendie]INTO st ipendie_medie
FROM impiegate; UPDATE impiegate SET stipendie = stipendie*1.1 WHERE stipendie < stipeneie_medie;
SELECT avgtstipendie) INTO stipendiegmedie FROM impiegate; IF etipendie media > 53300 lHEN dbms Output.put line ('LO stipendie medic é '
COMM IT;
sti p9 n d i 0 m e d 10
'
330
Esempl di sisteml di gestione delle basi dl dati relazionall
Capitolo 12
LOOP
EXCEPTION
FETCH cur-sore_stipendio INTO ssn_imp, stipendio_.i.mp, superssn imp;
WHEN OTHERS THEN
EXIT WHEN cursore_5tipendio%NOTl—‘OUND;
dbms_outpu't.put_line ['Er‘r'or'e in aggicrnamento stipendio '] ROLLBAOK;
In E2, stipendio_medio é definita come one variabile e contiene i1 valore della media dello stipendio dei dipendenti calcolato dalla prima istruzione SELECT; tale valore é usato per scegliere gli impiegati i cui salari saranno agglomati. La pane EXCEPTION annulla l‘intera. transazione (cioc elimjna qualsiasi cffetlo della transazione sulla base di dati) 9: un errore di qualsiasi tipo awiene durante l'esecuzione.
IF stipendio_imp > super_stipendio_imp THEN dbms_output.put_1ine(ssn_imp); END IF; END IF; END LOOP; IF curscre_stipendio%ISOPEN THEN CLOSE cursore_stipendio; EXCEPTION WHEN N0_DATA_FOUND THEN dbms_output.put_line ('Errari negli ssn ' | | ssn_imp}; IF cursore_stipendio9sISDPEN THEN CLOSE cursore_stipendio;
Cursori in PL/SQL
L‘insieme di righc rcstituitc da un‘interrogazione pub consistere in zero, una 0 pin righe, a se— conda di quantc righe soddisfano i criteri di ricerca. Quando un’infien'ogazione restimisce pifl righe e necessario dichiarare csplicitamente un cursore per elaborarle. Un cursorc e simile a un puntarore afile (file variable 0 file pointer) che fa riferimento a una singola riga (tupla) del risultato di un’inten'ogazione. Esso cleve essere dichiarato nella pane diclliarativa dei program PUSQL. ed é controllato :13 Ire comandi: OPEN, FETCH e CLOSE. Il cursor: é inizializzato con l'istruzione OPEN che esegue l‘inten‘ogazione, recupera l‘insieme oi righe risultato e posiziona i1 cursore prima della prime. riga nel risultato dell’interrogazlone: tale pasizione diventa la riga corrente per il cursore. L’istruzione FETCH quando e eseguita per la prima volta, copia la prima riga del Iisultato nelle variabili dc! programna e posiziona il cursore su quella riga. L: esccuzionj successive di FETCH fanno avanzare i] cursore alla riga successiva dell’ insieme risultato, copianclo quella riga nelle variabili del pmgzamma. Questo procedimento é simile ali‘elaborazione tradizionale dei file, un record per volta. Quando l’ulrjma riga E'stata elaborata, il cursore viene rilasciato con l’istruzione CLOSE. L’esempio E3 visualizza i] numero di previdenza sociale (SSN) degli impiegati il cui stipendio e superiore a quello dei loro direttore. £3: DECLARE stipendio_1mp NUMBER; superustipendio_imp NUMBER; ssn_imp CHAR
(9);
superssn_fimp CHAR (9}; CURSOR cursorenstipendio IS SELECT ssn, stipendio, superssn FROM impiagato; BEGIN fill] cur-screilnfi[Tendigsi I
_
IF superssn_imp is NOT NULL THEN SELECT stipendio INTD super_stipendio_imp FROM impiegato WHERE ssn f superssn_imp;
END ;
12.5.2
381
END;
l‘rlell’eseomio precedente CURSORE_STIPENDIO scorre nell’imera tabella dei dipenfienu linché 11 cursore non localjzza altre Iighe. La pane delle eccezioni gestisce 1a situazione 111 cu: un codice di supervisore ssn non corretto puo essere assegnaic a un dipcndente. %NOTFOIJND e uno dei quattro possibili attributi del cursorc. Ecco un elenco: *
%ISOPEN restituisce TRUE. cioé VERO, se il cursore e gill aperto; %FOUND restimisce TRUE se l‘ultimo FETCH ha restituito una n'ga e restituisce FALSE, cioé FALSO, se l’ultimo FETCH non é rjuscito a restituixe una riga;
%NOTFOUND é l’opposto logico cli %FOUND; %ROWCOUNT fomisce il numero di righe locafizzate.
Come ultimo esempio. E4 mostra un segmento del programme che prende un elenco di tut— n i dipendenti, aumenta del 10 per cento lo stipendio di ogni impiegato e visuafizza i1 vecchio e 11 nuovo salario. E4: DECLARE v_nome__batt
impiagato. nome_bstt%TYPE;
v_iniz_1nt
impiegato. iniz_int9aTYPE;
v_cognome v_indirizzo v_stipendio
impiegato . cognome%TYPE; impiegato.indirizzoRsTYPE; impiegato. Stipendio95TYPE;
CURSOR IMP IS SELECT ssn, nome_hatt, iniz_int, cognome, stipendio
FROM inn-inqato‘ a .
.z
:-. _ “g
384
Esempi di sisternl' dl ges‘tione d'elle basi di dati relazional'r
Capltolo ‘12
solilo. glj attribuli impliciti del cursore contengono informazioni sull’eaecuzione di un‘istruzione INSERT, WDATE, DELETE o SELECT INTO. I valori di questi attributi del cursore
12.6
385
Strumenti di sviluppo di Oracle
fanno sempre riferlmento all’ istmzione SQL eseguita per ultiroa. Ad esempio, in E6 l‘attribu-
lo del cursore NUTFOU'N'D e una variabile implicita che restituisoe TRUE se 1‘ istruzione SQL non ha restituito nessuna riga. E6:
. 1* stessa istruzioni include e dichiarazioni di variabili di E5
main H
{ strcpy {usernammarr‘ , “Scott") ; username.lan= strlantusernamémrr‘); strcpymassword. ar'r , "TIGEH') ; passworddan = strlen(password.arr):
EXEC SCL WHENEVEH SQLERROR DO sq1_error'(]; EXEC 30L CONNECT :usarname IDENTIFIED BY :passwor‘d ; EXEC SOL DECLARE IMP CURSOR FDR ssn. nome_batt, j.rliz_irttl cognome, stipendio SELECT impiaga‘to ; FROM
obbligatori, quelli facoltativi e quelli univocamente identificafivi (chiavi). Le entita e 1e rela-
EXEC 80L OPEN IMP ; EXEB SflL WENEVEH NUTFOUND D0 BREAK ;
f0? {:5} {
EXEC SOL FETCH EMP INTC :v_ssn. :v_nome_batt, :v_iniz_int, :v_cognome, :f_stipendio ; printf ('Numaro d1 previdenza sociale : 96d , Vacehio stipendio : 95f " , v_ssn, f_stipendio) ;
EXEC 50L UPDATE impiegato stipendio = stipendio*1.1 SET sen = :v_ssn ; WHERE EXEC 50L COMMIT; printf {"Numoro di previdenza sooiale : 95d Nuovo stipendio : 95f " v_ssn, f_stipendio*1.1
} } sql_arror()
{ EXEC SOL WENEVEH SDLERRDR CONTINUE; printfl‘ Individuato errors \n"); W
1'
1'
If
.
‘54: 7; m“..'7
Esistono vari strumenti per sviluppare appficazionj e per progettare basi di dati con HDBMS. e molti assistono i1 progettista in tune le fasi del progetto della base di dati. a parLire dalla pro— gettazione concetruale attraverso variami dei diagrammi estesi entita—relazione per arrivare aI progetto fisico. Oracle. per questo specifico scopo, metre a disposizione un proprio strumcn— to. chiamato Designer 2000. Designer 2000 consente 10 sviluppo rapido basato su modelli e forniscc diagrammr’ EmiraRelazione per la modellazione dei dati, l’approccio a gerarckiafimzionale per la modellazione dei processi e la gesriane difiussi di dati per catturare i flussi d’infonnazione all'intemo di un sistema informativo. L‘unita per lo sviluppo di diagrammi Entith—Relazione di Designer 2000 supporia la creazione, 1a visualjzzazione e la manipulazione di tutti i tipi di entita e relazioni. Questi cosh-uni. compresi gli attributi, vengono definjLi in termini di proprieta. Le proprieté degli atlributi sono visualizzate usando simboli grafici predefirliti per indicate attriburj
zioni sono visualjzzate tramite diagramrni per consentire una miglior comprensione. L’unita di sviiuppo diagrammi a gerarchja funzionale rappresenta invece 1e attivita (pro< cessi organizzafivi) sviluppate da un’azienda. Si utilizza la tecnica di decomposizione funzio— nale. per cui Ea descrizione ad 3110 livello di una funzione professionale o commerciale e divisa in funzioni progressivamente piu dettagliate. Questo aiota a identificare 1e funzioni azicrldali candidate a essere informatizzate e 1e aree comuni a tutta I‘orgarfizzazione. L’unita di sviluppo diagram-mi a matrice e uno strumento di uso generale che pub essere usato per calcolare la portata del progetto, eseguire l‘analisi d'impatto, la pianificazione della rete e il controllo di qualita del progetto dj sviluppo di applieazioni di basi di dati. Foraisce anche informazioni relative ai differenti nodi di rete su cui localizzare 1e tabelle della base di dati e i moduli che usano queste tabelle Per sviluppare ie applicazioru‘ sono disponibili molti strumenti interattivi di prototipizzazione Ira cui Powerbuilder di Sybase. Oracle mette a disposizione uno strumento chiamato Developer 2000 che permette all’utente di costruire la GUI del progetto e di sviluppare interattivamente progranuni composti da interrogazioni e transazioni. Lo strumento di sviluppo interagisce con 1e basi di dati di Oracle e il back end. 11 Developer 2000 comprende una sen’e di generaton' di moduli, report, interrogazioni; inoltre, offre la possibifita di coeuire oggetfi, grafici e procedure che rendono pifi sempfice per gli sviluppatori coslruire applicazioni Che si basano su una base di dati. La versione 2.0 comprende varie autocomposizioni grafiche per rendere automatica 1a creazione delle applicazioni. L’amhiente di sviluppo visuale pelmette ai programmatmi di riutilizzarei componenti semplicemente trascinandoli nelle loro applicazioni. Se necessario, glj sviluppatori possono usare l‘ambiente visuale anche per spostare '11 codice dal client 5.1 server. in modo da ridurre i1 traffieo sulla rete. Developer 2000, infine, com— prende uno strumento di gestione dei progetti che consente lo sviluppo cooperative delle applicazioni e no debugger che permette di identificare e correggere i errori in tutti gh’ strati dell‘applicazione. Developer 2000 si integra perfettamente con il Designer 2000 di Oracle, offre l’accesso a time 1e piu diffuse basi di dati oommerciali e conscnte d’incorporare controlli
Active-X nelle applicazioni. -
-, -. .H—
-—
—.
—:'.
..:—
_
_.:_
__ _:‘-
.3:
:.
.2.
.'l
"
L:
Esernpi di sisteml di gestione delle basi dl dati relazlenali
38?
Gapitelo 12
386‘
12.7
Una visione d’insieme di Microsoft Access
modelle di dati relazionale suila piat~ Access a: una delle implementazioni pie diffuse del per creare e gestire 1e basi di dati sulnti strume di ta integra taforma PC. Fa pane di una serie di dati Access possono andare da applicala piattaferma Windows. Le applicazioni delle basi cellezione personsle di video 0 (31 CD. una di entarie dcil’inv e zioni persenali, come la gestion di una piccols azienda. Ineltre. clienti dei e a piccolo applicazieni aziendali, come la gestien (Open Database ConnectiODBC d standar allo oft Micros e prodett del grazie 311a confers-nits relazionali su PC possedati di basi 1e erver, vity} e la prevalenza oggi di architetture clienU‘s izzate su piattaforme non memor dati di basi verso rfaccia un’inte come no anche essere usate mente delle interregazieni in Access PC, ad esempie un utente finale pub specificare grafica no server UNIX. so ta installa Oracle dati di base una per poi eseguirle su e un‘interfaccia utente grafica per la Access mette a disposiziene un motors di basi di dati Fornisce anche Lin proprie linguagSQ]... gio ljnguag in dati dei e gazien definizione e l'interro pessono svilupparc rapidamente utenti Gli Basic. gio di programmazione chiamato Access di dati attraverso l'utilizze delle base snila t ioutpu d'input ioni operaz per report maschere e no l‘utente ponendegli una seassisto che ci dialegi tivi creazioni guidatc, programmi interat report e eseguita interattivarnente dall‘u— rie di demands. La definizione delie maschere e dei pesti sulla maschera o sul report a elecampi diversi i tents che pregetta i1 layout coilegande
gene durante l'utifizm defl’applicazione di basi di dati. Meltc applicazioni semplici possone le funessere scritte interamente usande le macro; altre, pin complesse, pessone Iichiedese Access. da femito ziene preg-ramma di linguaggio i1 zionalitit di Access Basic. s, in Queste linguaggie pet-Incite di strutturare un' applicazione Access come un component apmodulo un is Microsoft) ia terminolog [nella te componen U11 altre. con grade di interagire plicative che rende i suoi eggetti disponibilj per altre applicazioni. 111 Visual Basic, ad esem— pro— pie. :2 pessibile lavorare con componenti sviluppati in altri linguaggi per costruire senza blemi un’appiicazione integrata. Utilizzando la tecnologia OLE {object linking and embedon reding). un utente pub inserire dei documenti creati da un altre components afl’interne di compooggetti a modello del parte fa OLE pen 0 di una maschera di Access. La tecnologia nent} (COM: component object model). une standard propeste da Microsoft.
12.7.2
Definizione dei dati delle basi di dati di Access
Sebbene Access permetta un appreccio pregrammatice alla definizione dei dati attraverse Access SQL. i1 sue dialetto di SQL. la GUI di Access mette a dispesizione uu comodo metodo diretgrafice per definire le tabelle e 1e relazioni ira di esse. Le tabelle possono essere create gui— creazione una seguendo ente. interattivam eppure Struttura tamente in visualizzazione
recente versione di Access) permetie di memomenti delia base di dati. Access 2000 {la piu estende 1e
un apposite ripe di dati. che rizzare collegamenti ipertestuali. definendo allo scope dere infermazioni su intemet. condivi facile pin de renden dati. di base della alita funzien
12.7.1
Architettura di Access
di cui use :3 il motere di basi di dati detto ll RDBMS Access si compene di diversi moduli, e dei dati. Un aitro compenente e l‘inter» gestien della sabile Microsoft Jet Engine,“ respen come is memorizzazjene e il recupere faccia meme che utilizza '11 meters per fomire servizi (tabelle, indici, maschere. report. mazione applica una di dati i tutti dei dati. I] motore salva di dati Microsoft (file con estensiobasi di cre e moduli) in un unico file del fipo preprietarie
capacita twanzste come 1’ accesso s dati eterene .mdb). 11 meter: mette a disposizione anche l'use di
lio della concorrenza con genei attraverse ODBC, la cenvalida dei dati, il centro azioni. “locks“ (biocchi) e l’ottimizzaziene delle interrog
complete. con il motors inteme che Access costituisce un ambiente di sviluppo applicative comprende Creazieni guidaAccess di utente faccia L‘inter S. RDBM un di effre tutti i servizi zioni. 1 Generated seno applica delle azione te e Generateri per aiutare l’utente nella progett . I] modello di programcorrette amente sintattic sioni espres create per tivi programmi mterat e cosouisce una sequenza di operamazjene ussto da Access 6 guidate dagli eventi. L‘utent e in n‘sPosta ad azieni che aweneseguit essere deveno che . macro te chiama 2ieni semplici.
3
come “mature“. Ne]. resto del capitole vi si fare rifetirnento scmplieemente
utente Access. Figura 12.3 Definiziene delta rolazione IMPIEGATO {EMPLOYEE} usando I'Interfacefa
388
Esempi di sistemi di gestlena defile has] dl dati refazionali
Capiteie 12
data. La definjzione di una tabella contiene non solo 121 strurrura della tabella, ma anche la fermanazione clei campi, 1e maschere per gli input dei campi stessi, 1e regole di cenvalida. le didascalie, i valeri predefiniti, gii indici e cos! via, 1 tipi di dati per gli attributi seno Testo. Meme. Numerico. Datafora, Valula, Contatore, SifNe (booleane). Oggetto OLE, Collegamente ipertestuale e Ricerca guidata. Access consente anche d'impertare i dati da tabelle esteme e creare ceflegamenti con tabelle di altre base di dati. In Figure 12.3 e mostrata la tabella EMPLOYEE dello schema defla base di dati relazionale COMPANY. aperta in visualizzaziene Stmttura. E seiezionate (evidenziato) il campe
SSN e 1e sue proprietb sene visualizzate nella finestra Preprieté campe pests nella partc inferiere dello schermo. Viene utilizzato i1 formate di visualizzaziene predefinito che prevede che i1 cedice SSN abbia per convenzione dei trattini dope la terza e la quinta pesiziene. La maschera d’input fornisce i caratteri di formattazione automatica per la visualizzaziene durantc i’immissiene dei dati, rendendo facile la convaljda dei dati d’input. In altri termini. la maschera (3' input del campo SSN visualizza 1e posizieoi dei trattini e indica che gli altri c'aratteri sene cifre numeriche. La proprietb didascalia specifica i1 nome visualizzato suite maschere e sui report per descfivere queste campe. Se l‘etichetta e iasciata vuota viene visualizzate i1 neme predefinite che e il neme stesso del campe. Pub essere specifica anche un vaiere predefinito se appropriate per uno specifice campe. La cenvalida dei campi comprende la specificazione di apposite regole di convalida e dei teste di avvertimento che viene visualizzato quando una regola di convalida viene violate. Ne! case del cedice SSN, la maschera d'input femisce gia la regola di convalida del campo. Altri campi, tuttavia, pessono richiedere regele di convalida aggiuntive; ad esempie pub essere necessario che i1 campe SALARY sia maggiore di un certe valore minime. Altre proprieté dei campi permettene di specifieare se il campe e richiesto. cioe se il valore NULL non e ammesse. e se i carnpi testuali consentono stringhe di lunghezza zero. Un‘altra proprieth dei carnpi include la specificazione dell’indice che da tre pessibiljta: nessun indice. un indice con duplicati 0 1m indice senza duplicati. Poiché SSN e la chiave primarie di EMPLOYEE nell'esempio, il campe e in-
EMPLQYEEDNO. Questa operaziene fa comparire un’altra finestra che chjede afl‘utente ul~ terror] mfermazioni so come stabilire 1a relazieue, come mestrato in Figura 12.4. L'utente sel‘e-zmna‘Ia caselia “Applica integrité referenziale" se Access deve applicare automaticamente l integntb referenziale sp‘ecifieata dalla relazione. Selezionando 1e caselle appropriate l'utente pub artche specificare 1a necessita di aggiemare automaticarnente i campi cerrelati scatena eppure d1 elmfinare 5 record correlati a catena. Ii tipo di relaziene viene determinate automa— ocsmente da Access in base aIla definiziene dei campi cerrelati. Se sole une dei campi corre— latt é’una chiave primal-la 0 ha un indice univeeo. Access crea una reiazione uno-a—molti' que—
ste stgnjfica che egni istanza (valore) della chiave primaria pub comparire moite velte ’ceme istanza defia chiave esterna neIla tabella cerreIata. E ii case dell‘esempie trattato peiché DNUMBER e la chiave primaria di DEPARTMENT e DNO non e la chiave primariz; di EMPLOYEE (si noti che su DNO non e nemmene definite un indice univoco). Sc entrambii cam-
pt some cluavi e hanrte indici univeei, Access crea una relaziene uno-a—uno. Ad esempie si censtderi la definizione di una relaziene tra EWLOYEESSN e DEPARTMENTMGRSSN Se la chiave MGRSSN di DEPARTMENT ha un indice senza duplicati (un indice univeco) e
SSN e la chiave prim-aria di EMPLOYEE, Access crea automaticamente uua relazione uno—a— one.
dicizzato e non e ammesso alcun duplicate. Oltre alla finestra Proprietb campe, Access fornisce anche una finestra Proprietb tabella. Questa viene usata per specificare 1e regeie di convalida delle tabelle che seno i vincoii di integritb esistenti tra le colonnc di una tabeiia o Ira tabelle diverse. Ad csempie l'utente pub definjre una regola di convalida suIIa tabella EMPLOYEE specificande che un dipendente non pub essere ii supervisere di se stesse.
12.7.3
Definiziene delle relazieni e dei vineeli di integrité referenziale
Attraverse la finestra Relazieru' Access censente la definizione interattiva delle relazieni tra
1e tabelle, ohe permette anche di specificare i vinceli d‘integrita referenziale. Per definire una
relaziene, l’utente anzitutto deve aggiungere 1e due tabelle collegate nelie finestra, poi selezienare la chjave primaria Eli una tabella e trascinarla nefl’altra tabella in cui compare come chiave estema. Ad esempio, per definjre la relazione tra DNUMBER di DEPARTMENT e w
l’uta... . ” " 1MPL""“"-., I -
tare L‘W‘TI‘ME‘" I “NUMW” a trascicv‘" . 5!: _se.‘ . . '-|' .lave
389
Figure 1" 4 Gems pier-p stabllite "i“ugrita ref“
file tra,“"'""1£n e I?”
-. -w—...—
-.— w __.a
., - .._...,..
_-.,.,. .,
Esempi di sistemi di gestiene delle has] di dati relazionali
391
Capiteie 12
390
aggiunto un'altra sepia della tabella EMPLOYEE alla finestra Relazioni prima. di trascinare la chiave primaria SSN suila. chiave estema SUPERSSN. Anehe se [a relaziene ricersiva non fosse esistita nello schema COMPANY, satebbe state comunque necessario duplicate EMPLOYEE (eppuxe in altemativa DEPARTMENT) perché esistono due relazioni tra EMPLOYEE e DEPARTWT: SSN in MGRSSN e DNUMBER in DNO.
12.7.4
ManipoIaziene dei dati in Access
Le operazieni di manipoiaziene dei dati nel moéello reiazienale seno divise in due categorie: 1e interrogazieni e gii aggiornamenti (operazioni di inserimente, eliminazione e medifica). Access consente la definizione visuale delie interregazieni ate-averse un’interfaccia grafica dei tipo “point-and-click“ (indica e seleziona} chiamate anche Query-By—Example (QBE), perehé l’interrogazione viene formulate femendo indicazioni grafiehe e non con l‘uso di una sintas— si esph'cita. E possibile. pert, operate anche in mode pregrammatice amaverso Access SQL. L‘utentc be In pesaibiiita di progettare l‘interregaziene in forma graflca e poi passare alla visualizzazione SQL pct esaminare la sintassi SQL create dal programme. Per quanto figuarda gli aggiemamenti. Access consente di eseguire tali operazioni' in vari modi: attraverse ma-
a COMPANY. ionl (Re1ationship) per lo schem Figure 12.5 La finestra Fielaz
pin u‘satolper specifidi una relazione sia i1 meccanisrne Sebbene in Access l'indicaziene i'ei opfieifiaflgfiiii—i nena sele lle,1‘utente non é obbligato a ‘ _ m!c com cai'e l'integrith referenziale tra tabe (were. eche n per . e anch . usate sono ' , ' ' referenz:'ale , perché. 1e reiazmm 't u“ ' rel "integnta pbca mom rega . mter . e delle ' . Durante 1 esecumon regazmm ' ’ per le mter ' cue ' _ o . ‘ ’ tmph d1' Jotn e esegui unqu . com e .wan a , ficat spec1 e stata ' mne ' h tabclle, anche se nessuna relaz l mtegntla refefinzllltghfit: . indipendentemente dal fatto c‘ne elati corr pi cam sui e finit pide fgio . . n‘uen p. nito ‘ ,ma defi . pre " Jom e e com ' "' jOln mtem " za 1‘: ndo 513 e mane.” Access utihz mna ' selez e wm ”I‘tpe tro facende c11c sulla casella 135:3: 1111 join esterne destre e sinis . . . _ . . 12.4) re (Figu join di e r0 riato ti 1‘ me :11 bane d1 ego (fogg: sche lo per mom Rela tra fines la @131 Fligura 155 e mestrata vmcoii . 1nalign ’1 m con la Figura 7.? she mostta git ette in Access. Si noti la semiglianza fiififim22:111 e diCh:g e tgi Y. La 1:!rinr:.ipal:;-.Sif’t‘EIIem renziale delta base di dati COMPAN ‘ ver51 tra ‘ n 1 one. ‘ ' una relan a clase ' ' ' a assocmto one In cardinaltt e EMPLOYEEJ in P‘igut: 121.212.5115 EE LOY EMP come EE LOY ISilicate deila relaziene EMP tra E dj dedo si definiscene relanem multiple Questa duplicazione a necessaria quan air 11:: “3 ha a figut In a). stess se e lla relazione tra una tabe u en 0 one relazione ricorsiva (ciee una N. RSS LOYEESSN ed EMPLOYEESUPE finite time reiaz’tone ricorsiva tra EMP ._...————-———"—'_‘_
u
‘n
.
.
.
1 no
.interrogaatfpm :2:333.1%” . . .. . . . e una candt'ztene duem Imp-liege nelie S ecificare una mlazione equivale a definit d1JOLTI) durantela spem ca:. . Ae: iment (cond e divers ziene una condi . . usate m . lepdue tabelie a matte di precisare (Figure 3.1). me a! paste d: N e a queili usati nei diagtatruni ER 1 repperli di oatdinalite sone simiii oess i1 :r'mbeio di infinite.
schere predisposte d2} programmatore dell‘applicazione, usattde la manipoiaziene diretta dei dati deile tabelle nella visualizzazione Foglio dati eppure attraverse i1 Linguaggio di program— maziene Access Basic. Le medalita di esecuziene dell'intetregaziene sono specificate graficamente tramite l‘in— terfaceia Access QBE. Si consideri l‘Intenogazioee 2 sulla base di dau' COMPANY che recuperai nomi e gli indirizzi di tutti i dipendenti che lavorano per il dipaxtimento “Ricerca”. In Figura 12.6 11105113 l’interregaziene in QBE in SQL. Per definite l‘interrogaziene QBE l’utente sieve ptima aggiungere 1e tabelle EMPLOYEE e DEPARTMENT nella finestra dell’interrogaziene (finestra della query). Ii join predefinito tra DEPARTMENTDNUMBER ed EMPLOYEEDNO Che (E state stabilite attraverse la finestra Relazioni a1 memento della definizione dei dati viene autematicamente incorporate nella definitione dell'interrogaziene, come illustrate dalla rigs. che college i campi correlati. Se questo join predefinito non e necessario per l'interrogazione, l‘utente pub evidenziare il col]egamente nella finestra delta query e premere i1 taste di cancellatione della tastiera. Per stabiljre un join che non era state prespeeificato. basta selezionare 1’ attribute del join da una tabella e trascinarlo sull'attributo corrispondente nell‘altra tabella. Per includere an attribute nell'interrogazione, basta uescinarlo dafla finestra superiere alla finestra inferiore. Perché gli attributi siane visualizzati neI risultato. oecon'e selezionare la easella “Mostra”. Per speeiflca~ re una cendizione di selezione an un attribute, si pub digitare l‘espressiene direttamente nella griglia “Criteri” oppure usare l'aiuto di un Generatere di espressioni. Per vedere l’interrogazione equivalente in Access SQL, l‘utente pub commutare dalla visuafizzazione Struthna QBE alla visualizzazione SQL.”
”
Si neti Che SQL Access eoneente Iii specifieare u11 join nella ciausola FROM. come consentite dallo standard
sou.
392
Esempidisistemidi gesfione defile basi didatireiazionali
Capitclc12
12.8
Caratteristiche e funzionalité di Access
12.8.1
Le maschere
393
Access fomiscc una Creazione guidata maschera per assisterc i1 programmatore ncllo sviluppo di maschere. Uu sue tipico scenario di utilizzo comprende 1e operazionj scgueuti:
o
scelta di una tabella 0 di una interrogazionc da cui provengono o in (mi verrarmc inseriti i dati della maschera; sclczinne dei campi che compaiono nella maschera; scelta de} layout dcsiderato [A colcunc, Tabulare. Foglio dati o Giustificato); scelta di uuc stile per le eu'chettc; specificazionc di un titclc per la maschera.
Si noti chc usare lc interrogazicni nella definizicne di una maschera significa trattarle ccme vista. La Creazione guidata crea automaficamcntc la maschera suHa base delle impcstazioni dcfl’utentc. La maschcra. se 10 Si desidera, pub csscre aperla in visualjzzazione Strutrura per eventuali modifiche. In Figura 12.7 é mostrata una maschera, intitoiata “Employee”, creata attraverso la Creazicne guidata maschera: essa comprende tutti i campi della tabella EMPLOYEE. Dal punto dj vista grafico, E state scclto un layout giusfificato, con uno stile standard per [e didascalie. La maschera mostrata é essenzialmente quella creata automaticamcnte dalIa Creazionc guidata, ma vi souo alcune accezioni. Le dimensioni di alcuni campi scnc state modificate in visualizzazione Struttura selczionando il riquadro con il mouse e trascinandolc in mode che assumesse la dimensicne appropriata. Questa semplice maschera conscntc all’utente di visuaiizzare, inserire, climinare e modificare i record EMPLOYEE, rispettandc perb al— cuni vincoli. L'utente visualizza i dati nclla relazione EMPLOYEE facendc sconcre ripetutameme la pagina usando cm (cppure i} puisante > sulla riga inferiore). E possibile cercare un particulate record usandc la funzione ”Prove“ nel menu “Modifica” di Access. Una volta Che i1 dipendeme desiderato e state uovato, é possibfle aggicmare dircttamente i suoi dati o eliminarlo usandc la funzicnc “Elimina record” che si trcva sempre nel menu “Modifica”. Per inserire un nuevo dipendente, l’utente inserisce i dati in un record vuoto, a cui si pub accedere portandcsi nella pagina successive (cppure usaudo i} pulsante > nella parte inferio-
QBE (a) e Access SOL (b). Figura 12.6 La definlzlcna della lntarregaziona 2 In Access
re), oltrc l’ultimo record nella tabclla.
multipil. {Sana d1In modo simile é pcssibile creare interrogazioni che comcrendonc juin mom, sebbe— interroga delle e definincn nella spcnibili creazioni guidate per assistere l’utente . . necessanc trial quasi renda lo non QBE Access di d‘utilizzc ne la facilitia nia— mezzo-d1 pct escguite mvece scno dati di Le operazicni di aggiornamcnto sulla base Visuaiizuna accrue e Y1 amcne. dell‘applic ento funzicnam di logica la no incurpora schcre che c mfldlfic zazicne clic dati che l’utente finale sofisticatc puc usare per uniting:j ebrcmarc spcc1ficau vmcch a soggetu sonc cnti aggicmam Questi tabelle. nelie nte djxettame dati care i 1e regcle d1 a] Immento della definizicnc dei dati, tra cui i tipi di dad, le maschcrc d‘inpul,
'
‘c ““e eeg’ci cam icy? “lazion‘
_ .
Figura 12.? Una maachera per [a tacella EIJ'IPLQYEE.
1
,1
.
.
.-
.q
'
A
"
"'
__..
394
Esempl di sistemi d! gestione delle has! d1 dati relazlenali
Capitelo ‘12
per la creaL’interfaccia utente di Access fornisce una safisticata visualizzazioae Sis-utters degli stru“casella una di dispene maschere di progettista I1 zione di maschere pi'b complicate. esempio pulrnenti” che mette a disposizione vari controlli cla incorporate nella maschera. ad e 1e caselle di cou— santi. caselle di coetrolle. caselle combinate e sottomaschere. I pulsanti maschera. Le “caselle tralla permettono di scegliere facilmente tra le opzioni presenti nella un elenco di pessicombinate" sane 1m comodo meccanismo per selezionare an elemento da inunessi: ad esernpio. una dati dei za carrettez la cesl do assicuran digitarle, di iuvcce valori bili nto a cui un clipendencasella combinata pub essere usata per scegliere il codice del dipartime e consentono a]te appartiene. Le sottomaschere sane maschere all‘interue di altre maschere esernpio, nelad tabelle: pib cla ti provenien oni informazi la maschera principals di includere oni sui di— la maschexa Project pub essere usata una sottomaschera per visuafizzare informazi che assi” Cone-0110 guidate i “creazion poi sene V1 progetto. quel su pendenti che laverauo stona il progettista di maschere nella scelta dei controlii da usare.
12.8.2
I report
o vari metodi per I report fauna pane integrante di qualsiasi sistema di basi di dati e fomiscon dell’utente. Came esigenze alle base in stampa la per dati rei riassume e ordinare re, raggruppa ne una Creale maschere, i report si bssano su tsbelle o interrogazioni. Access mette a dispasizio i seguenu': ziane guidata Report. Un sue tipico scenario cli utilizzo comprende le operazion
a 0
report; scelta di una tabella a di un'interrogazione da cui provengona i dati del report; eel o compaion che campi selezione dei
Salaries by Department DNO
LNAME
HUME
SALARY
BORE
Jun:
semester:
I
“5.0.0.3! 4
JABW WALLACE IELAYA
Ahmad Jennifer All. 1.: is
525, names $43 I are.“ 325.0“ .89 $03,938.“
5 ENGLISH NARAVAN
Joyce Hlmash
525,680.80 seamen
sum-I
Jenn
53mm. W
WONG
Franklin
540,603.83
8133.3!!8.“ Total Salaries
$281.0“.IB
per Dieadlmento). Figura 12.8 Un report lRecess con il titole Salaries by Department (Stipendi
395
specificaziene di livelli di raggruppamento dei dati all‘intemo del report; indicazione del tipo di ordinamenta prescelto per il report; scelta del layout e dell‘orlentamento; specificazione di uno stile per i1 titolo del report.
La creazione gaidata genera automaticamente il report in base alle impostazieuj; ‘11 report poi pub essere aperte in visuafizzazione Su'uttura per cventuali madifiche. In Figura 12.8 b mastrato no report con il titelo “Stipendj per Dipsrtimente” create con la Creaziane guidata Report usanda i dati dalla relazione EMPLOYEE e sceglienda i campi nell’ardinc in cui dovevana camparire 5111 report: DNO, LNAME. FNAMB e SALARY. Si noti che 5 state specificato i] raggruppamenta dei dati secondo il campe DNO, in made da raggruppare i salari in base 31 codice di diparlimcnta (DNO). E state. inoltre. specificato l’ordinamenta dei record sul campo LNAME ed a state richiesta l’esecuziene della somma del campo SALARY. I1 layout del report, il suo orientamcnto e lo stile sane stati sceiti tra quelli predefiniti messi a disposiziane da Access. 11 report mestrato b essenzialmente quelle fornito dalla Creazione guidata, con alcune eccezioni: ad esernpio. i valeri predefiniti delle didascalie per la eats a pie dj pagina del gruppo e la nota a pie di pagina del report sane stati modificati seleziauandoli in visualizzazione Struttura. L’interfaccia utente di Access fomisce anche una visualizzazione Struttura safisticata per create report pie complicati. La casella degli strumenti dispanibile in quests visualizzazione e simile a quella del pregettista di maschere; anaJegameute a quanta vista per le maschere, varie Creazioni guidate cantrallo sane a disposizione del progettista di report e lo assistono neila scelta dei controlli da aggiungere al report: ad esempio, an contrallo “Settereport” uni— see pib report in uno e pub essere usata per create on report di dipartimente che include dei sottoreport per specificarc analiticamente 1e informazioni sui progetti svolti da quel dipartimenta.
12.8.3
Le macro e Access Basic
II modella di programmazione di Access e guidato dagli eventi. Access b responsabile del riconascimento degli eventi e l‘utente pub specificare come rispondere a ciascun evento scrivendo una macro che a una sequenzs di semplici operazianj chiamate Mani. Gli eveuti rilevati cla Access comprendono 1e madifiche si dati. l‘esecuzione di azioni su una finestra, i1 di— gitare su tastiera e le operaziani compiute con il mouse. Ad esempio si pub scrivere una macro perché n'sponda all‘evento di chiusura di uea finest-a. specificanclo l’azione “ApriMaschera" per apt-ire un'altra finestra. Le azioni dispenibili pennettono at programmatori di macro di costruire intere applicazienj, ma per le applicazionj pie complesse é consigliabile ricerrere a1 linguaggio Access Basic. Si tratta :31" an linguagg-io di programmazione complete che consente l‘utilizzo di castrat— ti di controllo del flusso esecutivo. Ineltre in Access Basic b possibile passare argementi a proCedure persenalizzate (anch‘esse scritte in Access Basic) e manipulate i record une alla valta. I moduli sulla barra degli strumenti principals conispandana ad altrettante procedure prepro— granuuate mine in Access Basic.
396
Esempi di sistemi d? gestlone delle baa] dl dati relazicnafi
Capitolo 12
12.8.4
Altre caratteristiche
increAccess suppona vari tipi di interrogazioni avanzare, come 1e interrogazioni a eampl funciati. che permettono di raggruppare i dati sccondo i valori in una colonna ed csegulre mterroga— queste Excel In gruppi. dei all’intemo medic e some come ne zioni di aggregazio . . ‘ zioni prendcno il nomc di tabelle pivot. m. apphcazro alIIc con ni informazio te agevolmcn scambiare di consente Access. infine, con poca L’uso di controlli Active X all’interno di Access estende l'utilizzo dell’applicazione o nessuna nuova programmazione. s NT Sicurezza. Access ha un modello di sicurezza a livcllo utente simile a quello diWindow ,e programme il attivano quando password una 6 name on Server in cui gli utenti fomiscono unposlati i loro identificativi utente e di gruppo determinano i privilegi one possono essere metodi dall’amministratore usandc una Creazione guidata. Access, inoltre, fomisce i seguenti per proteggere un’applicazione: aIla fi— o l’opzione di avvio dell‘ applicazione Access pub essere usata per Iimitare l’accesso ‘ tasti; di i combinazion alcune ad e dati di nestra Base sual - un'applicazione puo essere salvata come file MDE per eliminare i1 codice sorgenteVi attramoduli dei e report dei maschere, delie struttura alla nti cambiame Basic ed evitare verso indebite modifichc al codice dei programmi.
struReplica. Access suppona anche la replica della base di dati. Amaversc il menu degli pero. menti e possibile impostare la replica complete 0 parziale di una base di dan. Si non. che la base di dati Access deve essere convertita in una “Replica Master” prime che i‘coman— pn‘i-copie di oi replica possano essere usati. Una volta fatto questo, si possono create duec Una looall. oggetu altri anche contenere pub replica ogni repliche; della base di dati chiamate della base d1 Replica Master e la replica su cui e possibile eseguire modifiche ails struttura di una dati e agli cggetti. Il comando Replica sul menu degli strumenti consente la creamone La replica e la sincronizzazione della replica con un altro membro dell'insieme delle repliche. uca~ programma o menu di comando un da eseguita sincronizzazione tra repliche pub essere modulo ag— meme in Visual Basic. Esistono anche un comando di menu Risolvi conflitti e no convernre per visuale ia un‘inrerfacc fomisce clie giuntivo chiamaio Manager delle repliche repliche, le tra relazroni 1e visualizza repliche. ulteriori crea master. repliche in dafi di 1e basi imposta le loro proprieta e cosi via. 11 Manager delle repliche consente anche la smcronizzazione dei dati an Internet 0 su una Intranet.
Operazioni mulfintante. Per rendere disponibile un‘applicazione per l‘accesso multiutente. l‘applicazione deve essere installata so an server di rete. Microsoft Access formsce la noxione di blocco per garantire la correttezza degli aggiornamenti concorrenti. l] blocco pub esse— re eseguito prograrnmaticamente in Visual Basic, ma viene fano automaticamente da Access quando utenti indipendenn' usano maschere che si basano sulla steasa tabelia. Access tiene un file LDB che contiene le informazioni correnn' sui blocchi. Le opzicni di blocco sono: Nessun
blo-
"near:
':Rcc-
pdifica '..."1-n0tir.‘ ‘ aropri‘“ "'cm‘dl“""mm"”“"“e‘
397
ste opzioni puc esaere impostata per una singola maschera oppure per l’intera base di dali (dal menu Strumenti si scelga i1 comando Opzioni e poi il comando Avanzatc). Ediaione dello sviluppatore. Una base di dati Access puo essere salvata come un file MDE compilando i1 codioe sorgente Visual Basic. Con l’Edizione dello sviluppatore (DE: Developer‘s Edition) '1] file MDE consente la distribuzione dell‘applicazione su pin computer, senza che sia necessario che nna copia di Acces sia disponibile su ciascun computer. Questa edizione estesa dell’ambicnte fomisce anche una cena capacita di configurazione. Senza l’edizicne dello sviluppatore on file MDE a: solo una versione compilata e compattata dell’appiicazione. ma non pub essere dislribuita.
Sommario In questo capitolo abbiamo esaminatc due sistemi relazionali di gestione di basi di dati (RDBMS: relational database management system) molto diffusi e rapprescnlzativi: Oracle e
Microsoft Access. L'obiettivo era far conoscere al lettore la tipica architettura e 1e funziona11a di un prodotto di fascia alta come Oracle e di un RDBMS pifi piccolo come Access. Mentre Oracle put: essere considerate un RDBMS complete, Access 5 one strumento di geslione ., dei dati n'vclto all‘utente meno sofisticato. Abbiamo fatto una panoramica storica dello sviluppo dei sistemi relazionali di gestione delle basi di dafi. poi abbiamo descritto l'architertura e le funzioni principali del sistema Oracle. Abbiamo visto come Oracle rappresema inter— narnente 1e basi di dati entrando nel detraglio deil‘organizzazione di memoria nel sistema. Sono stali quindi forniti alcuni esenipi di programmazicne in Oracle usando PIJSQL, il Iinguaggio di programmazione di Oracle con SQI. incorporate, e PRO"‘C. un precompilarcre per il linguaggio C. Abbiamo esaminato alcuni degii strumenti disponibili in Oracle peril progetto di basi di dad e lo sviluppo di appIicazioni. Abbiamo infine dato una panoramica di Microsoft Access, della sua architettura, della definizione dei dati. deIla definizione delle rela— zioni e della manipolazione delle basi di dati usando QBE e SQL, e descritto alcune alrre sue caratteristiche.
Bibliografia selezionata Numerosi manuali descrivono il sister-ca Oracle. e particolarmente significativi sono quelli di Oracle editi nel 1997. Sunderraman (1999) e un bnon punto di panenza per la programmazione in Oracle. L‘editrice Oracle Press ha pubblicato molii libri sui diversi aspctti dei siste- _ ' ' ma e persino un pcriodico intitolato Oracle System Journal clie rende como del cosiante [s hippo dei prodotto. Anche su Access esistono molti manuali. So come utilizzare i1 sisnémii. MI crosofi enno stati nuhblicati diversi volurni ma non ,n} nosgibile dame_.:qui ur- elenco cornnle'm. “3.1.9: “A;
Anallsl multidimensionale dei dati a data mining
Capltolo 13
400
rte cialjzzate e libri d1 suecesso hanno definite quealo We in piu modi, mentre i fomitori hanho hanno sfruttato la popolarita per mettere sul mereato prodotti eterogenei e ‘1 consulentl t messo a disposizione vari servizi, presentmdoli tutti sotto l’etlchetta collett'wa dell’auahs e dalle basi d1 mulddimensionale dei dad. [data warehouse, tuttavia, si distinguono nettarnent dad tradizionali per quanto n’guarda struttura, funzionamento, prestazionj e obiettivi.‘
Terminologia e definizioni
13.1.1
come “una raccolta d't dati inteW. H. Inmon1 ha defmito l'analisi multidimensionale dei dati nel tempo, che pub for-lure grate e penuaneute. ma foealizzata an un argomento e variabile
ai dati neeeaamo supporto alle deeisioni dj gesdone“. I data warehouse foruiscono l‘accesso alle deatsloru: alle procedure di analisi complessa, di scoperta della conosoenza e di supporto informaZIom sulle zioui interroga di uzione nell’esee ni prestazio Essi garantiscono elevate tipi di applicazroe sui dati di un’organizzazione. fomendo l‘ambiente esecutivo per parecchi
nj, come OLAP, DSS e le applicazioni di data mining. OLAP (on-line analytical 911169551119.
Nelle mam dl 9 i] termine usato per descrivere l’analjsi di dati prelevati dal data warehouse.
di elaboraingegneri della conoscenza esperti, gli strumenti OLAP possono sfruttare sistemi
13.1.2
2161
Le caratteristiche dei data warehouse
Per presentare le caratteristiche dei data warehouse ed esplicitarne 1e differenze rispetto alle basi di dad u‘ansazionali e necessarlo definite un modello di dati appropriate. [I modello di dati multidimensionale (spiegato pifi dettagliatamentc in seguito) e specificamente concepito per gli strumenti OLAP e 1e tecnologie di supporto alle decisioni. Rispetto alle muldbasi di dad che fomiscono accesso a basi di dad disgitmte e nonnalruente eterogeuee, 11 data warehouse a una raccolta di dati integrati provenienti da piu sorgenti e memofizzati secondo un modello multidimensionale. Diversamente dalla maggior parte defle basi di dad transazionalj, i data warehouse supportano fipicamente serie temporali e analisi di tendenza, due tecniche che ri— chiedono piu dati eronologici rispetto a quelli che di solito souo presenti nelle basi di dati transazionali. Rispetto a queste ultime, i data warehouse sono non volatilj: eio signifies. ehe 1e informazdorfi presenti in essi cambiano molto meno spesso, non in tempo reale. anche se possono essere soggette ad aggiomamenti periodici. Nei sisterm' u'ansazionali,1e transazioni souo l’uuita atomica e l’agente di aggiomamento della base di dati; al contran'o, 1e irtfonnazioni dei data warehouse 50110 a granular-1th piu grossa e vengono modificate secondo uu’attenta politica di aggiornarnento usualmente incrementale. Gli agglomameuti sono gestiti dal oompouente di acquisizione del warehouse Che esegue tutta la preelaborazione richjesta.
di quanzione distribuiti per eseguire anatisi ehe richiedono pit) memoria e poteuza. di calcoto
te possa dare in modo conveniente ed efficiente una singola stazione di lavoro. Isistemi di
Hetrolrnmiesione d1 datl
sistemi irrforsupporto alle decisioni (DSS: decision-support systems) noti anehe come e con i ststecoofonder non {da systems) n informatio executive (EIS'. dirigenfi per mativi
W WI
mi di integrazione dei dati azieudali) supportano i decisori delle organizzazioni con datt ag-
Data Warehouse
sara presentato in detta— gregati per le decisioni complesse e impel-tend. I1 data mining (che
glio nel Paragrafo 13.2) e usato per la scoperta di conoscenza, i1 processo per ricercare all’m-
Pu1ltura —-—> lorrnattazione —+
terno dei dati conoscenza nuova e non prevista.
Baal d! dati
neuu e cau(In-line transaction processing), che permette di esegu'tre inserimenti, agglomar Interrogaordmale mode in elaborate cellazioni, e auche interrogazioni. e sono progettate per o msenrichiedon che ni transazio e dati di base della parte piccola una o zioni che coinvolgon per f1ottimizzate sono nun quindi, Essa, mend o agglomamenti di alcune tuple per relazione.
Altre Immtssionl d1 dati
Le basi di dati uadizionalj supportano l’elahorazione delle transazioni in lime (pLTP:
nalita di OLAP. D33 0 data mining. A1 contrario, 1 data warehouse sono progettati pIOPnO l3":I
/
HIDE]: AgglomamentNuovl dati
Figure 13.1 It processo dell'analisi multidimenslonele del datl.
supportare un‘effieiente estrazione, elaborazione e presentazione dei dad per analisi e assuri—
nte eon: zfione di decisioni. Rispetto alle basi di dati tradiaionali. i data warehouse generalme baSl d1 re comprende possono che sorgenti piu da tengono grandi quautjta di dati provenienti
dati di diversi modelli di dati e peraino file provenieuti da piattaforme e sistemi eterogeneI.
Nel Capitolo I si e definita one base di dad come um moonlta di dad eonelati e an sistema di 39-5150“?- di basi d1 a one dati come I'iusieme costimito da una base di dad e dal suo sofiware dt gestione. Anette on data warehouse
L'analisi multidimensionale dei dad pub anche essere definite, in modo piu generale. co— me ”l‘insieme delle tecnologie di supporto alle decisioni, progetlate per consentire all’ingeguere della conoscenza (diligente, manager. analista} di prendere decisiord migh'ori e piit rapide“.3 In Figure 13.1 viene fomita una panoramica della struttura coneet‘tuale di un data warehouse; mostrando l’intero processo di analisi multidimensionale dei dati. Questo processo
comprende l’eventuale ripuljtura e rjformattazione dei dati prima dell’esecuzione dell‘analisi
1e heal d1 raccolta di informationi con un siabema software di supports. Estate, comunque. una netta distinzione:
dali tradizionati {relaaionalh clientele 3i oggetti. reticulari o gerarehiche) acme transazionali. i data warehouse,-
irwece. sono lamest principalmente per applicaziont di supporto decisionale e sono altimizzati per 11 13611136?“ ‘1'“ daLi. non per l'daborazione di transazionj di routine. 2
.
"311
i t lgum
‘
""3 it
if}.
__
_
-. _
_
.11: H M? ‘y' “dfl‘
a
W3“"‘""‘J".
!
Chaudhuri e Dayal (199’!) fomisconn un eecelleme saggio inuoduttivo sull‘argomento. dando questa come definizioae iniziale.
Wr- .wm-
w
W
it“. “33‘
.
law‘-
.-.1
lathe-aw”:
$14.2“;
AnaJisi muflidlmensionale dei datl e data mining
8 D55 possono servire a ricavare nuove impor— multidimensionale. Poi, OLAP. data mining ro a classificazione; queste informazioni tomar 0 ione decis di e nazioni come regol
REGICWiE
REG-1
tanli inforr
vista concettuale multidimensionale; dimensionalita generica; ti a priori; dimensioni e livelli di aggregazionc non limita vincolate; operazioni tra una dimensione e 1' altra non gestione di matrici dinamiche sparse; architetmra client!server; supporto muitiutente; accessibilita;
trasparenza; manipoiazione intuitive dei dati; ; prestazioni elevate nella generazione di report struttura flessibile dei report.
some up ordine di dati, 1 data warehouse generaimente Poiché racchiudono grandi quantita ronah. Grantradrz dau d1 basi delle i grand piu ezza) di grandam (talvolta due ordini di grand erso: attrav i possono essere gest'rt di volumi di dati (dell‘ordine dei terabyte) dono on si u'alta di grandi infrastrutture che richie I i data warehouse a livello d’impresa: . . . e; massiccio investirnento di tempo e di risors matenahzsono che uve opera dati di basi su viste o i data warehouse virtuali: forniscono _ . . zate per fornire un accesso efficace; esempro un read one, zzazr rganr dell‘o e insiem un sotto - idatamart: di solito sono rivolti a parto. e sono piil strettarnente focalizzau.
ehouse 13.1.3 Modelli dei dati per i data war inserirli in marelaz'roni implieite present'r nei dau per I modelli mulfidimensionali usano 1e o p‘ru di Ire hann se ubi di dati (di solito chiarnati 'rperc IIici multidimensionali chiamate cubi prestazioni delle interrogarropr su ma-
fione. 1e dimensionj). Per i dati confer-mi a questa opera o— rispetto a quelle delle interrogazroru neilm jori migl e esser trici multidimensionali possono warehouse aziendale arena 1 pe—
dimensioni cli rm data delle di dati relaz'ronale. Tre esernpi di _ opera 1‘ azienda. cui in i region riodi fiscali. i prodotfi e 1e a un fogllo pioue esem Un mle. errsio bidim ce mau‘r Un foglio elemonico standard a una tempo: 1pm— prodotto in un determinate periodo d1 eletuonico delle vendite regionali di un
"
originate di Coed a stem qui menaionb quesve cararledsdche. L'elenco Cudd (1993) conio i1 {ermine OLAP e riordinato.
FlEGZ
nsoa
P123 P124 PRODGfiC
P125 P126
Figure 13.2 Metrics bldimensionaie.
dom possono essere mostrati come righe, meutre 1e vendite per ciascuna regione costiluiscono le colonne del foglio (in Figure 13.2 viene mostrata quest'organizzazione bidimensionalej' aggruugendo una dimensions temporale, ad esernpio i uimesui fiscali, si produce una matri: ee Indurrensionale che pub essere rappresentata usando un cubo di dati. [n F_1gura 33.3 vi a up onto di dati tridimensionale ehe organizzai dati delle vendite dei prodotu per mmestri fiscali e per regioni: ciascuna cella contiene i dati per ciascun prodono, Inmesue fiscale e regione; inserendo ulteriori dimensioni si potrebbe creare un ipercubo :11 dati. sebbenc 1e structure eon piu dj tre dimensiorlj non possano essere facilmente visualizzate o presentate graficamente.
PROEKYTTO -—-‘——————p
ll...
no essere cornum fimostrato in figura. Le sorgenti posso far pane del data warehouse, come le di dati. fondamentali earamaristjche:4 I data warehouse hanno 1e seguenti,
COCO-I'
403
Capitoio 13
402
_ Figure 13.3 Un cubo dl’ dati.
404
Anallsi rnuIt‘Idimansionale dei dati 9 data mining
Capltolo 13
HEGIONE 1
STILI
REGE
R562
STILI P12¢
STILI P125
HEG4
REGONE————__*
HEG'1
P123
FlEGIONE 2
SDTI'OFIEGIONH SOTI‘OHEGIONEB SOTI'OHEGLONEA-
UOCDDOIDBDUDED}
SUTTOREGIDNEI
405
SDTI'UREGIONEI
u.‘._—¢—"m
Figura 13.6 L'operazione drIIi-down.
Figura 1 3.4 Versions ruotata dei cubo di dati.
I dati possono essere interrogati direttamente in qualsiasi combinazione di dimensioni, evitando 1e usuali tecm'che di interrogazione delle basi di daLi. Esistono simmenti per visualizzare i dati secondo le dimensioni scelte dall‘utente.
atIi cambiamento da una gerarchia dimensionale a un‘altra (orientamento) é facilmente Questa tuabile in un cubo di dafi usando un metodo chiamato tecnica del pivot o rotazione.
teonica prevede di motme it who di dati, mostrando un diverso orientamento degii assi. Ad esempio, si poo ruotare il cubo di dati per mostrare i ricavi delle vendite regionali come righe. i totali dei ricavi dei trimestri fiscali come colonne e i prodotti delta societé neila. terza dimensions (Figure 13.4). Essa, quindi, equivale ad avere una tabella delle vendite regionali per ciascun prodotto separatamente; ciascuna tabella contiene 1e vendite tfimestrali per quel prodotto regione per regione. I modelli multidimensionali si prestano ottimamente alle visuafizzazioni gerarchiche, in particolare a quelle conosciute come visualizzazione “roll-up” e visualizzazione "drill-down“. La visualizzazlone roll-up sale nella gerarchia, Iaggnlppando lungo una. dimensione unila pii]
HEGIONE -—+
CATEGOHIE DE[ PHOUOTTI
Prodotti 1XX
Prom PTOdofll SXK Prado!“ 4X!
L__._._._-
grandi (ad esempio riassumendo i dati setIimanali per trimesu'e 0 per anno). In Figure 13.5 e mostrata una visualizzazione roll-up che passa da prodotLi singoli a una granularita pm grossolana di categorie di prodotti. In Figure 13.6 e mostrata una visualizzazione drill-down, che sxjolge la funzione opposta, fomendo una visualizzazione di maggior dettagljo, ad esempio, disaggregando 1e vendite regionali in sottoregioni o dividendo i prodotfi secondo gh' stili. 11 modello di memorizzazione multidimensionale definisce due tipi dj tabelle: 1e tabelle delle dimensioni e 1e {abelle dei fatti, una tabella della dimensione consiste di tupie di attributi della dimensione, una tabella dei fatfi puo essere pensata come se fosse composta di tu-
new DEM DIMENSIONE
Pmoofio
Num. Prod. Nome Prod. Descr. Fwd. Stile Prod. Linea Prod.
_ TAB-ELLA DI
TABELLE DELLE DIMENSIONI
FAT“
TRIMESTFIE FISCALE
FIISULTA‘H COMMEHIAL:
PHODO‘I'I'O TRIMESTRE REGIONE
TRIM ANNE) DATA :l DATA FIN
mom DELLE VENDITE BEGIONE SOTTOHEGIONE
410
Analisi multidimensionale dei datl is data mining
Capitolo 13
come la descrizione di una ll ten-nine metadati. introdotto nel Capitolo 2, a state definite dei metadati a un cornpo~ io dizionar [l seherni. dei ne base di dati comprendente la definizio sia tecnici sia gestionali: 1 mei metadat de compren e se warehou data del ntale fondarne nente di memorizzazione, le detadati tecnici descrivono le operazioni di acquisizione. 1e su‘utture alita di supper-Lo dell‘ ac— funzion 1e e se warehou data del amento funzion il dati. dei scrizioni organizzativi di supaspetti gli e li azieuda regole le no cesso; i metadati gestionali descrivo . se. warehou al porto caratten— una a ne nizzazio dell’orga calcolo di sistema i1 to L‘architettura di come a distribui architetture base: 11 data wastica determinante per il progetto del data warehouse. Vi sono clue use distribuito, haruio wareho data un di progeno Nel rato. rehouse distribuito e quello confede te, come 1a replica. 11 paramo— grande importanza tutti gli aspetti relativi alle basi di daft distribui e consisteuza dei dati. Un‘archi- . narnento, 1e comunicazioni e i problemi relativi all’unifonnita se, ad esempio sfruttando ai— warehou data tcttura distribuita pub garantire elevate prestazioni del oni. E necessano preve— prestazi delle ita scalabil la e carico del mento goritmi evoluti di bilancia del warehouse confeL’idea ione. distribuz di dere la replieazione dei metadati in ciascun sito decentralizzata d1 daone federazi una ate: confeder dati di base one di quella a derato e analoga presente lo sfor— Tenendo i. metadat di raccolta ta warehouse autonomi, ciascuno con la propria oni consistano di corn— federazi tali che e probabil e se, warehou data un cosn-uire per zo richiesto organizzazioni possono sce- . pouenti di scala pit} piccola. ad esempio singoli datamart. Le grandi grand: data warehouse. zero da ereare che piuttosto esistenti t datamar rate confede gliere di
13.1.5
Funzionalita tiptche dei data warehouse
azioui complesse, trequenti ead I data warehouse esistono per rendere pit immediate interrog un supporto alle interrogazrom fomire devono uenza conseg hoc su grandi quantita di dati; di di dati transazionalt. [l oomponente piu efficieute e articulate di quanto sia richiesto alle basi dei fogli elettronici, l’elabora— tipiche alita funzion nde di accesso ai data warehouse compre e quelle ad hoc, '11 data nuate struttur zione efficieute delle interrogarioni, le interrogazioni interagire‘con i piu difpuo use wareho data il che a signific Cid ning e 1e viste materializzate. zmnr OLAP. Queapplica 1e con e fusi programmi di foglio elettrouico (ad esernpio MS Excel) i: seguent to come e rarrunat preprog sti ultimi offrono funzionalita rita e aumentando la generalita (ad o roll-up: i dati vengono riassunti diminuendo la granula anuualmente); esempio da settimanalmente a uimestralmeute ad
ti (complementare a roll-up); drill-down: i dati vengono mostrati con livelli di dettaglio crescen e); rotazion anehe (detra ta incrocia ne pivot: viene eseguita la tabulazio ns; slice e dice: esecuzione di operazioni di proiezione sulle dimensio ordinamento: i dad vengono oudinati; . lo; selezioue: i dati sono resi disponibili per valore o interval oni sui valon operazi do eseguen ti calcula sono i attribut nuovi ti): attributi derivati (calcola memorizzati e derivati. ambiente transazionale, vi e Poiché i data warehouse non hanno 1e resu-izioni tipiche dell‘ Tra gli strumenu e 1e tecruche azioni. interrog delle e orazion uell'elab efficacia r una maggio
411
usati vi sono: la trasformazione delle interrogazioni, l’unione e l’intersezione di indici, fun-
zioni speciali ROLAP (OLA? relazionali) e MOLAP [OLAP multidimensionali), estensiom’ SQL, metodi di join avanzati e tecniche intelligeuti di scansione (quali sono 1e interrogazioui multiple integrate in un’uniea soluzione). Le elevate prestazioni necessarie sono state raggiunte anche rieorrendo all’elaborazioue parallela. Le architetture parallele utilizzate peril data warehouse comprendono le architettu— re a multiprocessor-i simmeuici (8MP: symmetric multiprocessor), cluster ed elaborazione ad alto parallelismo (MPP: massively parallel processing) e 1e loro combinazioni. Gli ingegneri defla conoscenza e i responsabili delle decisioni usano strumenti che vanno dalle interrogazioni parametriche alle interrogazioui ad hoc a1 data mining. Il componente di ac; cesso del data warehouse, quindi, deve fornire il supporto necessarlo per le interrogazioni strutturate (sia parametriche sia ad hoc); prese insieme oostituiscono un ambiente di interrogazioni assistito. [I data mining stesso utilizza tecniche di analisi statistical e d‘intelligenza artificiale. L’analisi statistica pub essere eseguita usando fogli elettrouici avanzati, software di analisi statistica commerciali oppure :icorrendo a programmi personalizzati. Vengouo usate comunemente anche teeniche come 1e medie mobiii e l‘analisi delia regressione. Le tecniche di intelligenza artificiale come gli algoritmi genetici e le reti neurali sono utilizzati per la classificaziome e per scoprire la conoscenza presents. nel data warehouse che pub essere inattesa e difficile da specificare nelie interrogazioni (i1 data mining sara trattato in dettaglio nel Paragrafo 13.2).
Analisi multidimensionale dei dati e viste. Alcuni hanno considerate 1 data warehouse come un‘estensione delle viste delle basi di dati. Come ricordato sopra. le viste materializzate sono considerate un metodo per soddisfare irequisiti di un Inigliore accesso ai dati {per ulteriori informazioni sulle viste si consulti i1 Capitolo 8). Le viste materializzate sono state studiate perché permettono di ottenere un ufiglioramento nelle prestazioni. Tuttavia, esse forniseouo solo alcune delle funzioui dei data warehouse. Le viste e i data warehouse sono simili per il fatto che entrambi sono costituiti da dati in sola Iettura estratti da basi di dati e focalizzati su uno specifico argomento, mai data warehouse se ne differenziano per i seguenti motivi:
o richiedono una memorizzazione persistente invece di essere materializzati a richiesta; e
di solito sono multidimensionali, mentre 1e viste di one base di dati relazjonale sono rela-
zionali; o possouo essere indicizzati per ottimizzare 1e prestazioni, menu-e le viste non pUSsono essere indicizzate indipendememente dalle basi di dati sottostanti; o forniscono funzionalita specifiche, mentre 1e viste non possono farlo; o gestiscono grandi quantita di dati integrati. spesso temporali, di solito pit] di quanti ne siano contenuti in una base di dati, mentre le viste some 1111 estratto e quindi un sottoinsierne
di one base di dati.
13.1.6 Difficoita di implementazione dei data warehouse L’analisi muifidimeusionale dei dati comporta alcuni problemi operativi significativi: la eostruzione, l'amministrazione e il controllo di qualita del data warehouse. La gestione del pro-
' . ....-.J'
Analiai multidimensionaie del dati 3 data mining
415
Capltolo 13
414
naie che pennettono a un utente di sebase di dati. SQL supporta operazioni di algebra relazio collegare informazioni provenienti da pib lezionare dati da tabeile (righe e colonne) oppure di ente si a vista che la tecnologia di dapreced afo paragr Ne} i. comun labelle sulla base di carnpi l‘aggregazione e la sintesi di dati; come 'a, ta warehouse fornisce oggi altri tipi di funziona sioni. In questo paragrafo si con~ dimen pib su azioni inform 1e inoiue consente di visualizzare re nota come “data mining". I! popola molto cantata l'attenzione su un'altra area di interesse forum di modelli o regoie parin azioni inform nuove di ta scoper data mining si riferisce aila eseguito su file e basi di daessere deve tcndo da grandi quantita di dati. Per essere utile esso con i sistemi di gestione di te integra ben sono non ni funzio sue 1e oggi ti molto estesi. Fino a basi di dati. enze iecnico-scientifiche in questo Verra qui presentata una breve rassegna sulle conosc , come 1‘ apprendimento automatidiversi ambiti da campo, in cui ci si affida a tecniche prose i. Verrb posts. in rilievo la natura delie co, la statistica. 1e reti neurali e gli algoritmi genefic o incontrare nelle basi di dati e ie poposson si che mi informazioni scoperte, i tipi di proble stato deli‘arte di un grande numero di teuziali applicazioni. Si effettuera una rassegna dello e si descriveranno quali sono i pro13.25) fo aragra Sottop strumenti commerciali {si veda i1 rea possibile. gressi nella ricerca necessari 211 fine di renders quest'a
13.2.1
data mining Una visione d’insieme della tecnologia del
o Rapporto Gartner.s i1 data mining b 51a In rapporti sulle tendenze di mercato come ii farnos i] prossirno future. In questo paragrafo per anti import piu ogie indicato come una delle tecnol piuvasto denominato "scoperta di conosceni] data mining viene messo in relazione al eampo rti per mezzo di un esempio illustrauvo. Alrappo nei uando individ za” {knowledge discovery), discussi nel Sottoparagrafo 13.2.3. poi o cune tecniche e algoritmi di data mining sarann data warehouse b quello di aiutare il processo Data mining e data warehouse. Lo scopo del usato insieme :11 data warehouse per aiutadecisionale con dei dad. 11 data mining pub essere applicato alie basi di dati funzionanu con essere re ad assumere alcunj fipi di decisioni e pub piu efficace, i1 data warehouse dovrebbe comtransazioni singole. Per renders 11 data mining zzati. 11 data mining aiuta a estrapolare nuosinteti o prendere una raccolta di dati gia aggregati e possibile trovare interrogando o elabovi modefli previsionaii significativi che non sarebb azioni di data mining dovrebbero quinapplic Le ouse. rando i dati o i metadati nel data wareh nti iniziali delia progettazione di un data wadi essere prese in considerazione fin dai mome 1n-
beru essere progettati per essere usat: rehouse. Inoltre gii strumenti di data mining dovreb occupano terabyte di dab.
estese che sieme ai data warehouse. Nel caso di basi di dati molto mining dipende prim di tutto dalla disponibilita infatti. i1 successo delle applicazioni di data
di on data warehouse.
5
ti d'a' pubblicazioni d’indagine tmnologica su cui i dirigen Il Rappotto Gamer e on esempio dell: motleplici i. zienda si basano per premiere decision
I] data mining come parte del prooesso di scoperta di conoscenza. La scoperta di conu— soenza nelle basi d! dati, in genera abbreviata come KDD [knowledge discovery in databases). comprende tipicamente ben pib del serupljce data mining. Il processo di scoperta di conoscenza b cosutuito da sei fasizfi 1a selezione, la ripulitura, 1’ arricchimento. la trasformazione o codifica dei dau', il data mining e infine la visualiazazione delie informazioni scoperte. Come esempio si prenda in considerazione una base di dati transazionaie mantenuta da una in— catena di rivendite a1 dettagljo di beni di consumo. Si supponga che i dati relativi ai clienti d'accludano il nome del cliente. i] codiee di avviamento postale, i1 numero telefonico, la data di quisto, '11 codice del prodotto, i1 prezzo. 1a quantita e il totale. Eseguendo una procedura di fase Nella utile. conoscenza molta estrane possibile e KDD su questa base 61' dati di clienti seiezione dei dati possono essere selezionati i dati che riguardano prodotti specifici o categoarea rie di prodoixi, oppure prodotti acquistati in negozi posti in una specifica regione o in an” erdel paese. I] processo di ripulimra def dati pub correggere i codici di awiamento postale solidi nro L’arricchime sbagliati. telefonici prefissi con i regisIIazion rati oppure eiiminare 1e teto ampliai dati con uiteriori sorgenti d‘informazione: ad esempio dati i nomi e i numeri cui di credito sul e reddito sui sull’eta, dati altri acquistare pub catena la iefonici dei clienti, one godono e aggiungere questi dati a quelli gia disponibili nelle registrazioni. La trasfannazi codici i esempio ad dati: di quantila la ridurre di scopo lo invece hanno e la oodifica dei dati di prodegli arucoli possono essere raggiuppati in categorie di prodotto pib vaste. come quella avviamendi codici i via; cosi e accessed re. videocame elettronici, gadget dotti audio, video. classificato to postaie possono essere raggruppati in regioni geografiche. i1 reddito pub essere come pas— ripulitura chiamata fase una mostrata stata b 13.1 figura In via. cosi e in dieci fasce warehouse so prelimiuare delia creazione del data warehouse. Se i1 data mining si basa su un stata apgia esistente per qucsia catena di negozi, ci si pub aspettare che 1a ripulitura sia gia mining data del tecniche 1e applicate plicata. E 5010 dopo tale preelaborazione che vengono scopn're: pub mining data dei risultato Il li. previsiona andamenti e regole ]e per esuarre chiarura o regole di associazione (ad esempio. ogni volta che un cliente acquista un’apparec elettronico); gadget un anche video, compera cfiente acquisti I modelli sequenziali di comportamento (ad esempio. si supponga che un i e nel giro di fotografic prodotti comperi mesi tre di giro nel poi . fotografica una macchina morti, properiodi nei volte due di pib altri sci mesi un accessorio: uu cliente che acquista Natale); di periodo i1 durante volta una aimeno compete babilmenie o
in base alla frealberi di olassificazione (ad esempio, i clienti possono essere classificati
5
Quosra descrizione si basa arnpiamente su Adriaans e Zantinge (1995).
di prodot— quenza delle visite, secondo i tipi di finanziamento a cui ricorrono, per quantim ione classificaz della base sulla prodotti; di tipi ti acquistau' 0 per la propensione ad aluuni rivelatrici). statistiche alcune calcolare b possibile di acquisto Esistono, quindi, molte possibilita per scoprire nuova conoscenza sui modelli proquanti e quali e residenza di luogo il reddito. il l’eta, come fattori mettendo in relazione per lodotti vengono aequistati dai clienti. Queste informazioru possono poi essere utilizzate promozioni, calizzare nuove sedi di vendita in base alla presenza demografica, per eseguire
Analfsi multidimensionale def datl 6 data mining
Gapitelo 13
per abbinare i predetti nelia pubblicita oppure per pregettare strategic di vendita stagienali. L'esempie cemunque meetra anche che i1 data mining deve essere precedute da una significativa preparaziene dei dati prima che posse fornite infetmazioni utili che pessano influenzare direttamente 1c decisioni cemmerciali. I risultati dei data mining pessene essere visualizzati in melti formati, quali elenchi, gra~ fici. indici o visualizzazioni.
Scopi del data mining e deiia scoperta di cenescenza. In generate gli scopi del data mining rientrane neile seguenti classi: previsione, identificazione, classificaziene e ottimizzaziene. dei dao Previsiene. Ii data mining permette di stimare l‘andamente future di certi attributi ti. Esernpi di data mining previsionale comprendeno 1‘ analisi delle transazioni di acquisto per predire cie che i censumateri acquisteranno con cerli. sconli, i1 volume delle vendite che fara il ncgezio in on date petiodo e se l'elii'ninazione di una finca di prodotti portera e mene maggieri profitti. In queste applieazieni la logica cetmnereiale viene usata insierne al data mining. In un conteste scientifice i modelli di cette onde sismiche possono servixe a predire con alta probabilita un tenemoto. o Identificaziene. La presenza di andamenti iipetitivi nei dad pub essere usata per identifi-
di care l’esistenza di un articelo, un evento o un'atfivita. Ad esempio, intrusi che cercano
violate un sistema infomatice pessene essere identificali attraverso i programmi che esegueno, i file a cui accedone e il tempo di CPU impiegate per sessione. Nelle applicazioni biologiche l’esistenza di un gene pub essere identificata da alcune sequenze di nucleotidi nella sequenza del DNA. Anche l'area nota come autenficazione a una forrna di identifi— caziene. Ci si assicura se un utente a: veramente chi dichiara di essere oppure proviene da una ciasse auterizzata; cio ricluede un confronte di paramcu'i, immagini o segnali in una
base di dati. Classificazione. ll data mining pue suddividere i dad in mode da identificare diverse classi e categorie in base a cembinazioni di patametri: ad esempie i clienu' di un supermercato pessono esseie divisi in clien‘d alla ricerca di scenti, clienti frettolosi, cfienti tegelati e clienti eccasienaii. Tale classificaziene pub essere usata nelle successive analisi delle transazioni di acquiste dei clienti come attivita post-mining. Talvolta la classificaziene che si basa sulla cenescenza del deminio viene usata come input per suddividere i1 prehlema del data mining e reuderle pifi semplice da affreutare: ad esempie, gli alimenti biologici. gli stuzzichini per aperitivi e i cibi per le mense scelastiche sone categerie dislinte nel cemmercie di azimentari del supermarket. E quindi censigliabile analizzare 1e relazioni tra le categorie come prebiemi separati. Questa classificaziene empitica pub essere utilizzata per cedificarei dati in mode appropriate prima di settepnrli a ulteriere data mining. o Ottlmizzaziene. Un peasibile scope del data mining e ettimizzare l‘ulilizze di risorse ii— mitate come il tempo, le spazie, il donate 0 i materiali massimizzando 1e van'abili di output come In vendite o iprefitti teneude conte di alcuni vinceli. In queste case 10 scope del data mining e Simile alla funzione ebiettive usata nei problemi di ettime vinceiate tip'tci delia ricerca eperativa.
-
ll tennine “data mining" e usato in sense melte ampio. In aleune situazieni cemprende l’a— nalisi statistical e l'ottimizzaziene vincelata, eltre all‘apprendimente automation. Non vi e li« nea di demarcaziene netta che separa i1 data mining da queste discipline. Va :11 di la delle fi-
-1
1.
LmWiw—
III
in
417
nalita di questo libre, quindi, discutere dettagliatamente l‘intero panorama di applicazioni che cosutuiscene questa vasta area di n'cerca e di attivita.
:I‘lpi di cenescenza sceperti durante il data mining. Il temiine “cenesccnza” a interpretate in mode molto ampio e implica un certo grade di intelligenza. La conescenza apesso e classificata in indutliva e deduttiva. I] data mining si eccupa della conoscenza induttiva. La conesccnza pub essere rappresentata in val-1e forme: in mode non strutturato. da regole oppure attravcrso Ia logica preposizionale. In forma pin strutturata puo esscre rappresentata usande aiberi di decisiene, reti semantiche, reti neurali o gerarchie di classi e strutture (frame). La co— nescenza scepeita durante il data mining pub essere desctitta nei cinque modi seguenti.
1. Regele di asseciaziene. Queste regele mettene in relazione ia presenza di una serie di elementi con una sen'e di valet-i per 1111 altre insieme di variabili. Esempi: (1) quando una donna acquista una bersetta, e probabile che comperi anche 1e scarpe; (2) un’immagine a
raggi X che centiene le caratteristiche a e b e probabile che mesh-i anche la caratteristica c. 2. Gerarchie (1i classifieazione. Lo scopo é elaborate on insieme di eventi o transazieni per create una germ-chin di classi. Esempi: [1) ma popolaziene puo essere divisa in cinque fasce d1 aflidabflita in base alla storia delle richieste di credito precedenti; (2) a possibile sviluppare uu medelle dci fattori che detenninane i.l posizienamcnto di un negozio in una certa zona su una scaia 1 a 10; (3) i fendi cemuni d'investimento possono essere classificati
In base ai dati reiadvi alie prestazieni finanziarie che esprimone carattetistiche come le quotazieni, Ia rendita e la stabilita. 3. Medeili di cemportarnento sequenlali. Viene cercate un modelle in grade di giustificare una sequenza di azioni e di eventi. Esempio: se un paziente a state setteposto a un intervente chimrgico di inserimente di un bypass cardiace a causa delle arterie estruite e di un aneurisma e nel giro di tin anne si treva un alto livello di urea nel sangue, é prebabile che entre 18 mesi soffra di insufficienza renaie. La sceperta di modelli di compottamente sequenziali equivale alla scepcrta di un‘associaziene tra eventi con detenninati rapporti temperali. Strutture all’inteme di serie temporali. Si possono sceprire similitudini tra 1e posiziom delJe’serie temporali. Ecco tre esenipi in cui il prezzo di meroate azienario cesdtuisce
.‘t
416
una sene temperaie: (1) 1e azioni delle societa elettrica Energia ABC e della societa fi-
nanzmia Titeli XYZ mestrane 1e stesse andamento durante i1 1993 in termini di prezze di chiusura delle azieni; (2} due predetti ptesentane lo stesso andamento delle vendite in estate, ma un diverse andamento in inverno; (3) la configuraziene deI vente magnetice solare pue essere usata per predire i eambiamenti nelle cendizieni atmosferiche deiia Terra. 5. Categorizzazione e segmentaziene. Un date insieme di eventi e di elemenli pne essere parliaienato {segmentato} in settoinsiemi di elementi “simili”. Esempi: (1) un intere grap— pe dIIdati riguardanti la cura di Lute malania puo esseze divise in sottegruppi basati sulle Simzlitudini-degfi effetti collaterali; (2) 1a pepelaziene adulta degli Stari Uniti pub essere
classificata in cinque gruppi. da “queue che acquista eon probabifita pill alta” a “quello che acquista cen probabilita pin bassa” un nueve pmdette: (3} gli accessi eseguiti da tm groppe d1 uteuti a una eerie di documenti sul Web, ad esempie in una biblioteca digitale. pessone es‘sere analjzzan' in relaziene alle parole chiave presenti nei decumenti per tivelare categene e gmppi di utenti. -
'-
-
1...“;
3
'3-
c. ..
m.
-
- '
Analisi multidimensionale dei datl a data mining
419
Capitolo ‘13
418
desiderata r: una combinazionc dei Per la maggior parte delle applicazioni, la conoscenza io i tipi di conoscenza qui predettagl r maggio in nno trattera si ti Lipi visti. Nei paragrafi seguen sentati.
13.2.2
Regole di associazione
quella relativa aila scoperta delle regoUna delle piu importanti tecnologie del data minn a di transazioui, ognuna deile quaraccolta una rate conside e dati di base La le di associazione. dei dati del paniere d‘acquiquello e comune o li coinvolge una serie di elementi. Un esempi a durante una visita a 1m superacquist atore consum un che do a onde corrisp sto. I] paniere di un campione casuale: mercato. Si considerino 1e seguenti quattro transazioui
Ora 6:35 7:38
Prodotti acquistati latte. pane, succo di frutta latte, suceo di frutta
1130
8:05
latte, uova
1735
8:40
pane, biscotti, caffé
ID della transazione 101 792
La forma di una regain di associazione e la seguente: X=>Y,
insiemi di elementi, con J:f e y, che sodove X = {x,, xi, ..., x,}, e 1’: {y,. y1,...,y,,,} sono due zione specifica che se un cliente acassocia Questa j. e i ue qualunq per distinti no elemenfi si regoia di associazione ha la forqualsia genere In Y. quista X, e probabile che acquis'd anche side, parte destra), dove LHS e and (right-h RHS => ) sinistra parts side, nd ma LHS [left—ha bero gar-entire insieme il supdovreb zione associa di RHS sono insierni di elementi. Le regole porto e il livello di confidenza. tuale di transazioni che coinvolgono tutI] supporto per la regola LHS => RHS e la percen i1 supporto e basso, implica che non esi— ti gli elementi nell‘unione,1’insierne LHS U RHS. Se e, perché
RHS si verifichino insiem ste una schiacciante evidenza che gli elementi in LHS U Latte => Succo di fret—
ioni. La regola l‘unione accede solo in una piccola frazione di transaz ha un supporto solo del 25%. Un frutta di Succo => ta ha un supporto del 50%, mentre Pane di una regola. altro termine che indica i1 supporto e la prevalenza in considerazione tutte 1e transazioni che Per calcolare il livello di coufideuza si prendano enm della regola di associazione LHS => includono gli elementi di LI-IS. [l livello di confld uo Rl-IS n'spetto a1 totale delle transazio‘ includo che RHS e la percenmale di tali transazioni nza e laforza della regola. ni. Un altro termine sinonjmo del livello di confide delle Ire
enza e 663%, ii che significa che Per Latte => Succo di frutta ii Livello di confid il succo, e Pane => Succo di fiutta ha i1 anche gono conten due latte, il e vi cui in transazioni gono il.
una dclle due transazjoni che conten livello di confidenza del 50%, i1 che significa Che succo. i1 anche e pane contien nza non vanno necessariamentc di paCome si pub vedere i1 supporto e il livello di confide ations: del data mining e create. tune 1e reri passe. Lo scope della ficerca di regole di associ
gole possioili che superino un valore di soglia minimo, specificato dall’uteme. di supporto 6 d1 hvello d1 coufidenza. l'l problema viene quindi suddiviso in due sottoproblemi:
l. generare tutti gli insiemi di elementi, detti insiemi mtesi, che ham-m un supporto che oltrepassa il livello clel valore di soglia (si noti Che i1 tenn‘me “esteso” in questo caso indica un grand: supporto); 2. per ciascun insieme eSteso, tutte 1e regoie che hanno almeno i1 livello di confidenza minirrm sono create come segue: date on insieme esteso X e Y C X [si legga “Y a un sottoin— sreme propno di X"}, sia Z = X — Y; allora se supporto (X)!supporto (Z) => livelio di confidenza minimo, la regola Z => Y(cioe X — 1’ => Y} a una regola valida. Creare Ie regole usando tutti gli insiemi estesi e i loro supporti é relativamente semplice. Scopnre, tuttavla, tutti gh Insiemi estesi insieme a1 valor: dc! loro supporto e on problema comple‘sso se la cardrnahta dell‘insieme di elementi e molto alta. Un superrnercato ha in genera nughata d1 prodotti: i1 numero dei sottoinsiemi di prodotti distinti e 2’", dove m e il numero_de1 prodotn, e calcolare 11 suppono per tutti i possibili insierni di prodotti diventa computatuonalmente molto oneroso. ' _ lier ndurre lo spazio di ricerca combinatoriale, gli algoritmi per trovare 1e regole di asso— crazrone devono avert: 1e proprieta seguenti:
o no sottoinsieme di un insieme esteso deve essere a sua volta esteso {ad esempio og'nj sot~ tommeme di un msreme esteso deve superare il supporto minimo richiesto); n all contrano,_anche l‘estensione di un piccolo insieme deve essere piccoIa (i1 che implica che non abbla suppofio sufiiciente). La' seconda proprieta aiuta a eliminare un insieme da ogni ulteriore considerazione di estensrone se nsulta essere u'oppo piccolo.
Algoritnu’ base-per trovare Ie regole di associazione. Glj algoritmi utilizzati per identificare luster-m estest souo progettati per operate come descritto qui di seguito. 1. Si esamina i1 supporto degli insiemi di cardinalita I, chiarnati 1-insiemi, esaminando in dettaglio la base di dati, e si eliminano quelli che non soddisfano il supporto minimo richiesto. 2. Si estendono gli 1-insiernj estesi per ottenere i 2-insiemi aggiungenclo un elemento alla
volta in mode da generare tutti i possibili candidati di cardinaljta 2. Si verifica i1 supporto
per tutti gli insiemi candidati esaminando in dettaglio la base di dati ed elirninando i 2-insiemj che non soddisfano il supporto minimo. 3. Si ripetouo 1e fasi precedenti; alla fase k, i (k— I) insiemi precedentemente trovati vengeno estesi per ottenere i k-insienfi, e conu-ollati per valutare il supporto minimo. ‘ 11 procedimento viene ripetmo fine a quando 5i riescono a trovare insiemi estesi. La ver-
sions pin sempljce di questo algoritmo, tuttzwia, e no vero incubo combmatorio. Molti algo-
ntmi piu sofisticati sono stati proposti per ricavarc 1e regole di associazione. Essi differiscono Ira lore soprattutto in relazione a come vengono creati gfi insiemi candidati e a come some calcolati i loro supporti. Alcuni algoritnfi utilizzano slrutture di dati evolute come mappe di bit (bitmaps) e alberi hash per ruantenere le infomazioni sugli insienu'. Sono stati proposri diversi algoritmi che utiliz— zano pm scansioui della base di dati perché i1 numero potenziale dj insiemi, 2'”, pub essere trop-
420
Anallsi multidimensionale dei datl 9 data mining
Capltclc 13
EEVANDE
/ GASSRTE
/CDiLE\
NON GASSATE
BIBITE
CDCKTNL
SUCCHI 'IN
/ l\
/ l\
Bowel-N“
BOTTIGUA
/ l\
AHANCIA
MEM
TE FHEDDI
ACQUA [N
MTUHALE
ALTFII
OLIGOMINEFIALE
DESSERT
YoyT £11)
DA Fla-TS
GELATI
PARZLALMEN’TE BIOLOGHCO SCREMATO
CON TANTA PANNA
Figure 13.1 D Una tassonomla dei prodottl di un supermercato.
llama po grande per i contamri se si esegue una singola scansione. Gli autori di questo libro presentato. brevemente qui f partizlone di algoritmo chiamato algoritmo. loro proposlo un Se viene data una base di dati con un piccolo numero di potenziah' insiemi eslesi, ad esem— pio alcune migliaia, i1 loro supporto pub esserc esaminato in una scansione usando una tecnica di partizione. La partizione divide la base cli dati in parti disgiunte. Ogni parte vienc presa in considerazione come base Eli dati separata, creando tutti gli insieme estesi relativi a una parte in un solo passe. Alla fine della prima scansione. quindi, si ottiene l’elenco degli insicmi estesi di 111t ie parti che compongono la partizione. Quando questi elenchi vengono unificati, si scopre che contengono alcuni falsi positivi, cine alcuni degli insiemi considerati sono estesi rispetto a una parte ma possono non qualificarsi come tali in moite alu'e paru' e quindi non superare i1 supporto minimo rispetto alla base di clati originale. Si noti Che non esistono
estesi idenfdsi negativi. cioe nessun insieme esteso verra pcrso. L‘unione di tutti gli insiemi
tificati nel passe 11110 50110 usati come input del passo due come insierni candidati e viene calco]ato i1 loro supporto cffettivo per .l'inrem base di dati. Alla fine della fase due sono stati identificati tutti gli insiemi estesi effettivi. La paxfizione viene eseguita in modo che tutte 1e pani possano essere collocate in memoria pfincipale e um. parte venga letta uua volta sole in ogni fase. L‘ algoritmo di partizionc. peril quale sono stati suggeriti ulteriori miglioramenti,‘ si presta all’implementazione parallela, per efl'icienza.
Regole di associazione tra gerarchie. Esistono alcuni tipi di associaziorli parficolanncnte interessanti perché si vetificano tra geramchie distinte di elemenfi. A volte e possibile attribuirc
7
Si veda Savascrc c altn' [1995) per ultericri dettagli sull'algoritmo. sulle minim di dati usate per implementap lo a per una valutazionc delle sue mutation-Ii.
“.
”" "onsultitm 4’3“"n c eff-5 "‘96) e LE;
-
421
gli elementi da classificare a gerarchie disgiunte in base alla natura del dominio: ad esempio, i cibi in un supermercato, iproclutti in un granule magazziiio oppure gli articoli in un negozio sportivo possono essere classificati in classi e sotloclassi che danno origine a gerarchie. Si prenda in considerazione la Figura 13.10 che mostra la tassoncmia dei prodotti di un supermercato. Essa mostra due germhie, rispettivarnente di bevande e des‘sert: i gruppi completi pnsmno anchc non create associazioni della forms. bevande => dessert, oppure dessert => be» ' vande. Le associazioni del tipo yogurt gelato della linca biologica => acqua in hottiglia oppure gelato della linea con tanta panna => té frcddi possono produrre un livello di confidcnza e un supporto tali da garantire la loro validita come regole di associazione. Allora, se l'area applieativa ha una classificazione naturale degli insierni in gerarchie, non e di particular: interessc scopriIe associazioni all’intemo delle gerarchic. Ben pifi intercssanti 50:10 ie associaziom’ Ira una gerarc‘nia e l’aitra, che possono verificarsi tra gruppi di elementi posti a diversi livelli.
Associazioni negative. 11 problema delia scoperta di un’associazione negativa é pit: impegnativo rispetto a quello della scoperta di un‘associazione posifiva. Un’associazionc negativa «2 del seguente tipo: “i1 60% dei clienti che ha acquistato patatine non acquista acqua in bettigfia“ (qui i1 60% si riferisce al livello di confidenza per la regola di associazione negative). In una base cli dati con 10.000 elementi, esistono 21mm possibili cornbinazioni cli elementi. la maggioranza dei quali non appare neanche una volta nella base di dati. Se 1‘ asseuza di una determinata combinazionc di elementi inducesse un'assuciazione negativa, si avrebbero a livello potenziale milioni e milioni di regole di associazione negative. con RHS di nessun interesse. 11 probiema é aliora trovare solamente 1e regole negative interessanti. In generale si e interessati ai casi in cui clue specifici insiemi di elementi appaiono molto raramente nella stessa transazione. Cio pone due problemi.
a
Data un catalogc (11 10.000 prodotti, la probabilita she due qualsiasi di essi vengano ac— quistan' insieme a (l!10.000)*(1l10.000) = 104. Anche 56 Si scopre Che i1 supporto effetlivo dell'evento dell‘acquisto congiunto é zero, questo non significa necessariamente an al— lontanamento significativc dalle aspettative. e quindi mm P. un’associazione negativa inte—
ressantc. o L‘altro problema E: pifi serio: si stanno cercando combinazioni di prodotti con supporto molto basso, 6 Ci sono rniJiorIi di combinazioni con mi supporto basso o anche uguale a zero: ad esempio. 1m insieme di 10 milioni di tansazioni relative a 10.000 prcdotti gene— ra pifl di 2,5 miiiardi di combinazioni mancami che corrispondono a mifiarcli di regole inu—
tili. Di conseguenza. per trovare regole di associazione negative interessanti. si deve utilizzare la conoscenza dispunibile sugh' insiemi di elementi. Un approccio E l‘utilizzo delle gerarchie. Si supponga di usare 1e gerarchie di patatine e di bevande analcoliche mosttate in Figura 13.11. Tra 1e bevante anajcoliche e 1e patatine é gia stata indicata una forte associazione posi» tiva. Se 3i trova un supporlo ampio per il fatto che quando i clienti acquistano pataiine Days di solito acquistano anche la bevanda Topsy, e non Joke e mm Wakeup, cio sarebbe interessante._ Questo 5i verifica perché‘di solim F5? 5i asgerm ghe se esiste un’aemrfiaziane fnrre tra
424
Capitolo 13
Analisi multidimensionale de} dati 9 data mining
Sceperta di modeili iii cemperlamento in serie temperali. Le serie temporaii sane se-
quenze di eventi; ciascun evento pue essere un date tipo fisso di una transaziene: ad esempie. i1 prezzo di chiusura di un’azjene e di un fende d’investimente a un evento che si verifiea egni gieme lavorative per ciascuna azione e ciascun fondo; la sequenza di quest‘t valeri per aziene e fonde cestituisce una serie temporale. All'inteme di una serie temperate e possibile eercare configurazieni significative analizzando sequenze e sottesequenze come si e fatto preeedentememe: ad esempie si pub trevare un periodo durante cui l'aziene é salita o si e mantenuta stabile per :1 giemi, oppure trovai'e i1 periedo piu lunge in cui l‘aziene ha avute una fluttuaziene di non pin di 1% sul prezze di chiusura precedent: eppure i1 trimestre in eui l’azione ha avuto i1 maggiore guadagno e la maggiere perdita percentuale. Le serie temporali posseno essere confrontate stabilendo delle misure di simiiitudine per identificare 1e societa 1e cui azioni si cempenano in mode simile. L‘analisi e il mining delIe serie temperaii e un’estensione delle funzionalith delle basi di dati temporali.
Scoperta di regele di classificaziene. La classificaziene e i] precesso di apprendimente di una funzione che classifica un date eggette di interesse in una di molte ciassi possibili. Le classi possone essere predefinite oppure determinate durantc i1 compite di classificazione. Un semplice esempie e il seguente. Una banca desidera classificare chi fa richiesta di un mutue nelle categorie di queiii che meritano di avere il prestito e di quelli chc mm In meritane. Per fare questo si pub utilizzare una'semplice regola ehe dice che se 1a rata. mensile del mutuo (che e un elemente note per ciascun richiedente) supera ii 25% delle entrate nette mensiIi (uu altre
elemente note per il richiedente), il richiedente appaniene alla classe dei "non medtevoli dei mutuo"; altrimenti appartiene alla classe di “chi pub usufruire dcl mutuo". In generale 1e regele di classificazione possono essere piu eomplesse e della format se— guente:
(var, nel]‘intervallo,) e (var2 nell‘intervalioz) e partiene alla classe C1.
(V211;1 nell’intervallofl) => l’Oggetto 0 ap-
E neeessario stabilire una serie simile di regole per ciascuna classe. Le variabili varl. ..., var“ seno gli attributi dell’eggetto 0 e costituiscene le colonne di una relazione con una tupla per oggette. Ciascuna tupia di questa tabella deve essere amibuita a una classe. Ln questo mode e possibile scrivere una eerie di interregazieni SQL Che convene la pepelazione della tabella negli elementi delle classi. una velta ehe queste elassi seno definite. Il preblema del mining e scoprire 1e classi e 1e cendizioni Che Ie definiseono. La principale differenza tra la sceperta delle tegele viste precedentemente e la sceperta
deile regole di associazione e ehe 1e variabili nelle regole precedenti prendene i valori da un dominio discrete 0 continue (ad esempio i1 numero di bambini, 1e entrate in dollari), mentre
nel case :11 regole di associazione gli insiemi sane formati da una eerie di elementi predefiniti. hieltre. una regela di asseciazione si riferisee a un insieme di transazioni (registrazieni di input), mentre una regela di classifieaziene Specifica come attribuire eiascuna registrazione a una classe.
Regressions. La regressione e mi’ applicaziene speciaie della regola di classificaziene. Se una regela d': classificazione viene definite come una funziene calcolata suite variabfli che attri—
425
buisce 1e variabili stesse a una classe di destinaziene, 1a regola e detta regela di regressione. Un’applicazione generale della regressiene si vex-jfica quando. invece di ate-ibuire una tupla di dati di una relaziene a una classe specifiea, i1 valore di una var-labile viene previsto in base a quella tupla, Ad esempio si prenda in censideraziene 1a relazione LABJ‘ESTS (ID paziente, esame 1I esame 2, ..., esame n)
contenente valori Che seno i risultati da una serie di 11 esami di laboratorie eseguiti su un paziente. La Variabile di destinazione Che si desidera prevedere e P, la probabilith di sopravvi— venza del paziente. La regeia di regressione prende la forma seguente: (esame l neD’intervaflo.) e (esame 2 nell’intenrallog) e oppure x < P < y
(esame n nell’intervallon) => P = x
A velte a possibile predire un valore uniee per P. mentre in altri casi bisogna accoutentar51 d1 un intervallo di valori. Se ci si riferisce a P come a una funzione: P =f(esame 1, esame 2. ..., esame n}
la funzione e detta funziene di regressione per prevedere P. In generale. se la funzione ha la forma y =f{xh x2) "'i I"),
e f e fineare nelie variabili di dominio x,, i1 processo di derivaziene di f da un date insieme di tuple per < x” x2, x". y > e chiamato regressiene lineal-e. La regressiene lineare e una tecnica statistica eomunemente usata per adattai‘e un insieme di esservazioni e di punt't in n-dimensioni rispetto alla variabile di destinaziene y. L’anaiisi di regressione e uno strumento molto comune per l'analisi di dati in moIti demini di ricerca. La scoperta della funziene per predire [a variabile di destinaziene equivaIe a un‘operaziene di data mining.
Reti neurali. Le reti neurali seno una tecnica derivata dalla ricerca in intelligenza artificiale che utilizza la regressiene generalizzata e fornisce un metedo iterative per eseguirla. Esse realizzane I‘adattamento progressive di una curva per ricavare una ftmziene da urn insieme di campieni. Tale tecnica costituisce un “approccio di apprendimente”: a. govemata da un campiene di esempi che viene usato per l’apprendimento e l'iuferenza iuiziali. Con questo metedo di apprendimente, 1e n'sposte a nuevi input posseno essere interpolate dagli esempi neti. Questa interpelaziene dipende dal modello della realté d'interesse [rappresentazione interna del dominio del problema) adottata dal metedo di apprendimento. Le reti neurali possono essere classificate in due grandi categorie: 1e :eti con supervisiene e queHe senza supervisione. I metedi adattativi che tentane di ridurre I‘errore in output sono metedi ehe realizzano nu apprendimente con supervisiene, meme queIli che sviluppane rappresentazioni inteme senza output ottenuti a seguito di campionamento, some chiamati metedi ad apprendimento senza superfisione — '
’
n
: III-
.
E‘i
:
“WAN,"
gamma“;
raw - "a
423
Analisi multidimensionaie dei dati at data mining
Capltolo 13
Taheila 13.1 Alcuni stmmenti di data mining panlcolarmente reppreeentatlvi.
c, una raplfrcszntamszizje 2e e l'analisi statistica. Vengcno utilizzati anche gli all-Jeri di dccismn statue; _e1,1:a:op;oecm_ anabsr 1e e g. clusterin nel o azione classific delle regole utilizzata nella
1 id1a di casi 1e no comprendere la regressiene e molte altre tecniche. Aim prodoitt commerc Che avanzatc come gli algoritmi genetici. tecniche d1 I-aglonamerito basalt) 5‘; stut m matching atcnale. 1 pat e rcti Bayesiane. la regressione non lineare. l'otiimizzamone combm
elalo 'ea fuzz .
‘
cma ODB'CdEOdEfingzzzaiiiz Lagiiiaggioriarte degli sirumenti di data mining use l’interfa me Access com If: best _ operate di permette che industriale Connectivity), uno standard inter: pm diffum, cc l‘acccsso ai dati nella maggior pane dei pregrammi d1 has: d1 dati
pacchetti software fcfsmilicggger La dBASE. Iafnmiix, Oracle e SQL Server. Alcuni di questi
face: a specifiei program-iii di basi di dati; ipih comuni scno Oracle, graces
e £10m di e55‘:
Win owsfirn.Eli fare in made maggior pane deglj strumenti funziona nell’ambiente Microsoft evguei a 5 tendcnza La UNIX. 5011:: disponibili anche per il sistema operative 1111 ow (:1 sin ola macft Microso iente nell'arcb operaIe di grade in siano prodotti ch: tutti i e su unfu g mum d1 a sequcim modo 1n In generale questi programmi vengono csegum ate nzmme can incorpor pro-doth Alcuni ver. clientiser modalita in no funziona china e molti interope possono e parallele ure architett su claborazione paraflela per essere eseguiti (OLAP). linear in analitica one elaborazi di strumenti altri
Societa
Prodotto
Tecnica
Plattaferma
Interfaccia‘
Acknosoft
Kate
Albert cll decisione, tecniche di regionamento basate su studio di casl
WIn NT UNIX
Microsoft Access
Angoas
Knowledge Seeker
Alberi di decisione. tecniche statistiche
Win NT
0080
Business
Business
Fieti neurali.
Win NT
ODBC
Objects
Miner
apprendlmento automation
Crossz
OueryObJect
Tecnlche dl ottimizzazione di anallsl statistica
Win NT MUS UNIX
ODBC
Data Disiiileries
Data Surveyor
Repartcno complete di tecnlche. use integrate dI vari
UNIX
ODBC
IBM
Intelligent
Classificazione.
Miner
regole di assoclazione.
Polynaiyst
Acquisizione delia
Win NT
0080
concscenza simboiica.
OSI'2
Oracle
Win NT
0030
ODBC
.
UNIX
IBM
(AIXJ
DBQ
modelli d1 predizicne
terfaccia utente grafica (GUI). e sonn anc e 1‘1; 5:;uni neglj cate per visualizzare dati e regole, ad esempio MineSetldi 861. usatc e p1 memo sane caratten a e nipolare i dati interattivamentc. Le interfacc
Megaputer
Intelligence
programmezione evolutlva
NCR
Management
Regele di associezlone
DBZ
Discovery
strumenti per UNIX come Intelligent Miner di IBM.
Tool (MDT)
faccialeeyfogfinpifi Interfaccia per programmi applicatlvi. La dispcnibilita di un'mter . a Alucgflg;i di es— garantita sempre é non ) interface ming applicativi (API: application program Lamag1r1t.e1'rie.‘:li lfiinzioni delle'lcro l’utiiizzo permette non mining data di prodotti te dei
SAS
Enteprise
Alberl di decisione.
UNIX
Miner
regole d1 aseociazione,
(Solerls)
Oracle
retl neureii,
Win NT
ASMUD
regressions. clustering
Macintosh
Albert di decisions regcle di assoclazlone
UNIX (Irixi
e ll lore c:lj 051.16 amensi, ruttavia. consentono ai prograrnmatori di applicaziom d1 nauhzzar
da hierene ‘cdi cfimandi gior pane delle interfacce applicative sono costituite da librerie C e hngilflggl mcludono strumenti Alcuni ti dinamici (DLL: dynamic link libraries).
' i dati ID rietari.
ODMG
algoritmi DM
con l:uterite mtestlfliS1:11: Interfaecia utente. La maggior parte degli strurnenti interagiece d1 manila-222101;: di mahe atecnic o ricorron i prodott Alcuni
d'
429
.
..
1 bitilTibella €3.11) scno elencati 1i} snumenti di data miniagpaltlfmlafli'lffrili? rapprealentat; lilpml tuttoiistrfl:he Vi. Oggi vi sono pin di 70 prodotti commerciali di data mmmg dlSpDnlb o yana y . e , olandese e che . Surveyor Data some vi i american do. Tra i predotti non e russo. evoluziene :lilla $261331; Svilnppi futuri. Gli su-umenti iii data mining 50:10 in continua no g3: a 6 nd‘ incorriora ess: d1 Molt: recente. pin scientifica idee sviluppate dalla ricerca ricerca sta 5 1»: a punto nell‘intelligenza artificiaie (AI: artificial intelligence), nella
disnibuita. su architetture I ozflzjzzilgiiche modeme di basi di dati, come l‘elaborazione
e'bfiii; clienu'scrver, in basi di dati parallele e nell’analisi multidimensionale de1 dart garantisc delle capacrt ne prestazioni. Pm il future la tendenza e decisamente quella dello eviluppo
__¥_+.._.let£_i.-- 7H a 71"“? ibl'ld; 4;...ntempnn nil] col-mini e. pelaborazi‘t‘ine \Icl’rfi esegulta
Siilcon Graphics
MineSet
Oracle Sybase Informlx
‘ODEC: Open DataBaea Connectivitn ODMG: Object Data Management Gmup
usando tutte 1e risorse disponibili e traendo vantagg'lo sia dagli ambienfi di calcolo distribuiti sia da quelli paraIIeIi. Questa evoluzione i: importante soprattutto perché 1e basi di dati moderne contengono quantita moito grandi di informazioni. Le basi di dati multimediali stanno diventando pit} diffuse, ma i1 recupero e la memorizzazione delle immagini some ancora ope— razioni lente. El caste della memoria di massa sia perb diminuendo e il massiccio immagazzi—
namemo di informazioni Sara utiljzzabile anche da piccole societa. I futuri programmi di data mining dovranno quindi essere in grade di operare su pin grandi insiemi cli dati di pin orgamzaazioni.
Analisi multidimensionale dei data a data mining
Capitolo 13
430
ft Windows NT e UNIX In un prossimo future probabilmente i sistetni operativi Microso s. La maggior parte del Window di nanza predomi una con , standard rne saranno le piattafor dalle basi di dati aziendati i estrarre per software di data mining usera ODBC come standard ire. scompar a destinati sono ri proprieta dalj; i formati di input standard, tra cui immagiVi e una precisa necessita di eseguire il data mining su dati non su dati non standard non mining data il per ici algoritm sviluppi Gli diali. ni e altri dati multime conunercializzazione. la per te sufficien hanno pero ancora Iaggiunto un livello di maturita
Sommario nti della tecnologia delle ba— In questo capitolo abbiamo esaminato due aspetti molto importa : l‘analisi multidimensiodecennio prossirno nel tivo significa si di dati che avranno un ruolo nale dei dati e il data mining. processo che richiede diL’analisi multidimensional: dei dati puo essere vista come no che estrae la conoattivita 1' come pensato verse attivita preliminari; il data mining pub essere ntali relativi all'afondarne coneetti ti introdot stati Sono dati. di se scenza da on data warehou visualizzazione delia lita funziona ri nalisi multidimensionaie dei dad, discutendo 1e particula no a chi defornisco se warehou data i cui con modalita le uattato o _ multidimensionale. Abbiam izaazioun‘organ a base in . dettaglio di . ve prendere decisioni informazioni al livello corretto ate. appropri F ne e a una prospettiva della oonoseenza nelle basi Abbiamo esaminato anche un esempio eloquente di scoperta tra 1e varie tecniche. si mining, data i1 Per mining. data :11 rispetto vasto pin di dati, un ambito dettagliata alduzione un‘intro o fornend e dato particolare rilievo alie regole di associazione, . genetici i algoritm gli e neurali reti 1e u' trascura stati sono non la loro scoperta, ma dati sia su dei le ensiona multidim lisi dell'ana La ricerca e oggi impegnata sia sul fronte ricerca pin prometdi i direzion delle alcune ate sottoline state sono e quello del data mining, dei prodotti della tecnologia delle tenti. L’attenzione. infine, a state rivolta al futuro mercato mining egg-i disponibili; ci si data di nti suume 70 dei 10 ato esamin o basi di dati. Abbiarn e le funzionalita. numero i1 te tivemen aspetta che 1a ricerca future ne aumenti significa
Esercizi 13.1 13.2
13.3 13.4 13.5
Cos'e un data warehouse? In cosa differisee da one base di dati? ing), ROMP {Relational Si definiscano i termini: 0MP (Online Analytioa} Process Support Systems). n (Decisio DSS OLAP}. nal mensio OLAP), MOLAP (multidi endole tra 1e funzionaSi descrivano le caratteristiche di un data warehouse, suddivid . derivano ne utenti gli che i vantagg i e se lita di on data warehou nel data warehousing? Cos‘e an modello multidimensionale di dati? Come viene usato
a fiasco di nave, cassetteSi definiscano i seguenti termini: schema a Stella. schema zione deifam’, daramert.
13.6 3.; .
431
Quali tipi di indici vengono usau' per i data warehouse? Si illustrino gli utilizzi di ciascuno con un esempio. gr ismivano 1e fasi di creazione di no data warehouse. u ' con 51'd ermoni ”house? ' ' giocano ' un ruolo importante ' nella progettazrone ' di' on data wa-
13.9 Si descrivano le artivita else on utente puo eseguire so on data warehouse e si illustri13 10 nQo :11lsfiltau d1 queste attivita an on data warehouse multidimensionale. . u Mal-mono? c053 concetto di vista relazionale in relazione a1' d ata warehouse e at' datamart '? In
13.11 Si elenchino i problemi implementativi di on data warehouse. 13.3 (5:1 eienehino 1e anestioni aperte e i prohlemi di ricerca nel settore dei data warehouse. 13.14 0:]? 11 data mini- ng? Come si collega tale tecnologia a quella del data warehouse? . uQflu sono. 1e divlerse fas: della scopena di conoscenza nelle basi di dati? Si desoriva o scenario app 'cativo completo in cui nuova conoscenza no essere Ira base di dad transazionale esistente. P es in d3 “113 13.15 Quali sono gh' scopi che i] data mining si propone? 13.16 Quail 50110 i cinque tipi di conosoenza prodotti dal data mining? 13.17 (1.053 sono 1e regole di associazione come tipo di conoscenza? Si diano 1e definizioni di supporto e di hvelio d1 confidenza e 1e si utilizzi per definire una regola di associaatone. 13.18 Si descriva una regola di associazione tra gerarchie con un esempio. 33;: Cos e una regola d1 assooiazione negativa nel contesto delia gerarohia di Figural 13.10? 13.21 Euzhfisgjno le d1fi:1t:t:llct1a1 d1 estrazione delle regole di associazione da basi di dati estese? . 1 e sca no mo Hemsets0 di compofiamento sequenztale che St' has:' sulle sequenze d1' 4 ' 3%: 51 the un esempio di una configurazione ripetitiva in una serie temporale. , Cosa :ono 1e regole d1 classificazione? Quale legame c'e tra regressione e classificaalone. 13.24 Si desm'ivano 1e reti neuraii e gli algoritmi genetici visti come tecniche per il data mirung. Quah sono le pnncipali difficoIta neI loro utilizzo? 3.25 Si de‘scnvano 11 clustering e la segmentazione come tecniche di data mining. .26 goal-1 sono Ie carattenstiche principali deglj strumenti di data mining? Si valutino le nmom ch uno strumento del data mining non menzionato nell'elenco di Tabella 13.1.
Bibliografia selezionata Lianalisi multidimensionale dei dati negli ultimi anni e stata oggetto di molte pubblicazioni Si announce a Inmon (1992) I'aver fatto acoettare in modo difiuso i1 termine “anafisi multi; dimension—ale”. Codd (1993) ha reso popolare il termine OLAP (oniine analytical processin )
e ha defimto una serie di caratteriatiche dell’analisi multidimensionale dei dati atte a fornife suipono OhAP. Madison. (1996) fornisce una rassegna completa delle tecniche dell’analisi :1 tidlmenSionale dei dau disponibiii presentando 1e strategic che 1e societa dovrehbero utizzare nel loro swluppo. Bischofl" e Alexander (1997) offrono una raccolta di consigli forniti
Tecnologie e applicazlonl emergentf delie basi di dati
Capltolo 14
434
pi sono caratterizzate dalla lore nature “strafica”: una siniszione in cui i’utente finale pub solo
recuperare dati dalla base di dati. mentre l’aggiomamento con ulteriori infomazioni e limitato :1i esperti che controllano e analizzano i nuovi dati che vengono immessi.
14.1
Basi di dati e World Wide Web
11 World Wide Web (WWW), conosciuto da tutti come “i1 Web". fu sviiuppato in origine in Svizzera presso il CERN' all'inizio degli anni novanta come on sisterna ipermediale1 so large scale che consentiva ai biologi di condividere 1e informazioni. Oggi quests tecnoiogia permette l' accesso universale a informazioni condivise a chiunque abbia l’accesso su Internet: essa condone centineia di milioni di pagine ails. portata di milioni di utenti. Nella tecnologia Web tutte 1e attivits si basano su un’architettura clientfserver. Le infor— mazioni sono memorizzate in calcolatori denominati server Web in file condivisi e accessibili pubblicamente, codificati attraverso il linguaggio HTML (hypertext markup language}. Molti strumenti consentono agli utenti di create pagine Web formattate con i marcatori (tag) HTML. includendovi anche contenuti multimediali, sia immagiue sia audio 0 video. Una pa— gina Web contiene molti collegamenti ipertestnaii; letteralmente un collegemento iperte— stuaIe e no collegamento che permette a un utente di passare da un punto all‘altro all'intemo di una pagina o muoversi da una pagina all'altra attraverso Internet (in inglese "browse”). Tale possibilitb ha permesso agli utenti finali notevole liberté nella ricerca e nella ‘havigazione” tra informazioni correlate. memorizzate su server posti in paesi o in continenti diversi. Le informazioni sul Web sono organizzate tramite i1 localizzatore universale di rlsorse (URL: uniform resource locator). Un URL e sin-file a on indirizzo che foroisce i1 percorso completo per la localizzazione di on file. l] percorso di ricerca consiste in una strings di norni di directory e computer separati da barre oblique e termina con il nome di un file. Ad esem~ pio, i1 sommario di questo libro si nova all’U'RL seguente:
14.1.1
Aceesso Web alle basi di dati
La tecnologia odiema si e spostata rapidamente dalle pagine Web statiche a quelle dinamiche in cui i1 contenuto puo variare in continuazione. ]] server Web use un’interfaccia standard chia— mats inter-fascia cornune d1 gateway {CGI: Common Gateway Interface) che funge da middleware: si tratta di uno strato software aggiuntivo posto tra l'interfaccia utente e il motore della base di dati che consente l‘ sccesso a basi di dati eterogenee. Ii middleware CGI esegue programmi estemi o script per otteuere Ie informazionj dinamiche e restiruisce 1e informazioni al server in fonnato HTMI.; quest'ultimo provvede poi a inviarle a1 browser che 1e ha richieste. In questo mode, e diventato necessario consentire agli utenti l‘aecesso non solo ai file presenti no] file system. ma anche alle basi di dati e ai DBMS. supportando l'elaborazione delle interrogazioni, la creazione di resoconti e cosi via. Gli approcci esistenti possono essere diviS1 in due categorie.
Accesso usando script CGI. Si puo far interagire '1] server di gestione della base di dati con il server Web atlraverso I’interfaccis CGI. In Figure 14.1 e mostraro uno schema di arcl'ljtettura per l‘accesso alla base di dati via Web attraverso script CGI scritti in linguaggi quali PERL1 Tel 0 C. I} principale svantaggio di questo approccio e che per ogni richiesta utente il server Web deve attivare un nuovo processo CGI: ogni processo crea una nuova connessione con il DBMS e il server Web deve aspettare finché non gli sono forniti i risultati. Raggruppando 1e ricbieste di pix) utenti, non si ottiene quindi alcun vantaggio; tra l‘altro, lo sviluppatore deve memorizzare gli script solo nelle sottodirectory CGI-bin. fatto che rende possibile delle intru—
CLtENT
' ’
cine Consiglio EuraCERN e acron'uno fiancese che sta per ‘Cmseil Europeen poorla Recherche Nucleaire“. pea per la Ricerca Nuclcsre. e altri ([992, Quests idea d'ineredibile successo e sttn'buits a Barriers-lee e a] sub gruppo; 5i veda Beaters—Lee
1994).
Browser Web
3'
http:ww.awl.cotrtfcsengfauthorsr'ehnasfibasfie.htm1 Un URL inizia sempre con un protocollo per il trasferimento di ipertlsti (bttp: hypercotext transport protocol) che indies il protocollo usato dai browser Web, programmi che documeni presentano e interpretano Web municano con i server Web e viceversa. Ibrowser e ti HTML agli utenti. 'Il'a i browser Web pit) diffusi vi sono Internet Explorer di Microsoft ataccessibili file altri da e HTML documenti da Netscape Navigator. Una raccolta formats. traverso l‘U'RL 511 on server Web viene definite un sito Web. Nell’URL precedente “www.awl.com" indica ii sito Web dell‘editore Addison Wesley.
435
I r
E
hepazlone
‘-.
---------------Server Web
‘~
BESS C" datl
Rlsuitato dalie lnterrogazlo him nl
5 5
-.
DBMS -'
4- """""" risposifl
f “‘ My
s % Script CGI
SERVE!
Figure 14d Acceseo alle basi di dafi via Web attraverso gFI script CGI.
.I‘ ,.
436
437
Tecnologle a applicazioni smergenti deila basl di dati
Capitolo 14
CLiENT
sioni e perdita di sicurezza. Il fatto che CGI non abbia un linguaggio standard, ma richieda aspetto neagli sviluppatori di applicazioni di basi di dati di imparare PERL 0 Tel e um aitro ovunque. sparsi sono se soprattutto script, degli gestione 12. come cosi gative,
ms per Accesso usando JDBC. JDBC e on insieme di classi Java sviluppato da Sun Microsyste Si SQL. ioni interrogaz di ne l’esecuzio tramite i consentire l’accesso alle basi di dati relazional aggiunprocessi di e attivazion 1' richiede non che dati di basi alle accedere di tratta di un modo registrato cotivi per og-ni richiesta ulteriore da parte di nn client. Si noti che JDBC e an nome e l'acronimn non credono, molti quanta di contrario a1 che, e Sun dalla depositato rne marchio dati, inviarle istrudi Java Data Base Connectivity. JDBC permette di connettersi a una base di Java Conzioni SQL e recuperarei risultati dell’interrogazione usando rispettivarnente 1e classi one l‘applicazi a, piattaform dalla nte indipende 5 nection, Statement e ResultSet. Visto che Java Java dal sercodioe il scaricare di cioe Java, eseguire di grado in browser quaisiasi su pub girare sono i driver ver ed eseguirlo sul browser del client. 1] codice Java e trasparente al DBMS; DBMS specifico 10 con no interagisco che server lato sul DBMS specifici per specifici JDBC e su interament gira ne l‘applicazio client, sul nova si usato dall’ applicazione. Se il driver J'DBC Per interroquest’ultimo e ie sue richieste sono cornunicate al DBMS diretzamente dal driver. o di JDBC gazioni standard SQL, si pub accedere a molti RDBMS. 11 late negative dell’uciiizz da JDBC a e la necessita di eseguire Java usando macchine virtuali a bassa efficienza. 1] ponte
Brcweer Web
:
.1
Baa d er dl aI
lnterrogazlone
SEWER
Web
,_
Tecnica di Integrazione Web
Drlver Web
.
Figura 14.2 lmplementazione CGF della tecnlca dl integrazione Web di lnformix.
ODBC (Open Database Connectivity) a un altro mode per interrogate iRDBMS.
middlewa~ In aggiunta a CGI, altri fornitori di server Web stanno Eanciando i loro prodotti (Interre per permettere la connessione simultanea a pin basi di dati. "Ira questi vi sono ISAPI Applicativa azione Programm di Jnterfaccia Interface, ation net Server Application Programrn del Server Internet) di Microsoft e NSAPI (Netscape API di Netscape). Nei prossirno sottopa—
ragrafo viene descritta la tecnica di accesso 211 Web fomita da Informix. Altri produttori DBMS
di dati sul Web. forniscono gia o fomiranno soluzioni simili per supportare l‘accesso alle basi
14.1.2 Tecnica di integrazione Web di INFORMIX Informix ha affrontato le limitazioni di CGI e 1e incompatibilita tra CGi, NSAPI
e ISAPI crean—
degli do W10 (Web Integration Option, tecnica d'integrazione Web} che elirnina la necessita delle base script. Gli sviluppatori nsano appositi strumenti per create direttamente all‘intemo in di dati pagine HTML intelligenti, dette Pagine Applicative. Queste eseguono istruzioni SQL agii mode djnamico, ristrutturano i risultati in HTML e restituiscnno la pagina Web risultante il Driutenti finali. L’ architettura e mostrata in mode schematico in Fignra 14.2. W10 utilizza URL ver Web, nn processo CG] “leggero” che e attivato automaticamente quando una ricbiesta per sessione di univoco re identificatc un generato viene se Anche viene ricevuta dal serverWeb. ciascuna richiesta. l‘ applicazione W10 e persistente e non termina dopo ogni richiesta. Quando riceve nna richiesta dal driver Web, l’applicazione W10 si connette 2111a base di da-
ti ed esegne Web Explode, una funziune che esegue 1e interrogazioni SQL presenti all’intemo
i1 delle pagine Web e ristmttura i iisultatj come pagina Web restituendoli a] browser attraverso
W
m“... S‘n~"°‘bm—~ air” I‘m-r rim—rm“
’ Le estensioni ai marcatori HTML proposte da Informix consentono agli autor'i di siti Web d1 creare applicazioni che possono costruire in mode dinamico scherni di riferirnento (templates) per pagine Web con il Server Dinarnico di lriforrnjx e presentarli agli utenti finaii. . W10 consente anche agli utenti di creare marcatori personaliz-zati per eseguire compiti spec1fic1l. In questo mode si possono progettare applicazioni complesse, senza dover ricorrere a1lo svrluppo di script 0 di program. Un’altra caratteristica di W10 e {a possibilita di scrivere appbcazioni transazionaii utilizzando un’interfaccia di programmazione applicafiva (API; Application Programming Interface) che offre una serie di servizi transazionali di base, come 19. gestione delle sessioni e la connessione, che possonc essere incorporate nell’ applicazione Web. . W10 supporta applicazioni sviluppate in C, C++ e Java. Questa flessibiiita consente agli svlluppatori di portare le applicazioni esistenti sul Web 0 di sviluppame di nuove in tali lin— guaggi. W10 E into strumento siftware integrato con il server Web e utilizza il meccanismo di
srcurezza nalivo dc] Server Dinarnico di Informix. L’architettura aperta di W10 consente l‘u— so di diversi server Web e browser.
14.1.3 WebServer di ORACLE ORACLE supporta l‘accesso Web alle basi di dati nth-averse i componenti mostrati in Figura 14.11]. 1] client richiede dei file che sono chiamati “statici” o “dinamici” dai server Web. I file stanci hanno un contenuto prefissato, mentre il contenuto di quelii dinamici pub includere i risultati di interrogazioni SQL alla base di dati. L’ architettura proposta da Oracle comprende un daemnn H |"|‘P:(nn nrocessn chef: in continua esegivzinne) chiamatn Web I ish‘ner che aim sul ill I
--
.o
-
9 ..
iii h
“ii-1“ i.
5'“)
.
'
E!
j.
.
.
.
I u
.
a
i
'
444
Tecnologie e applicaziont emergenti delle basi cli dati
Capitolo 14
Indicizzazione delle immaginL Vi sono due approcci per indieizzare le immagini: identificare gli oggetti presenti nelle immagini automaticamente utilizzando teeniche di elaborazione di immagini e assegnare frasi e termini indice attraverso 1’indicizzazione manuale. Un problele figuma importante nell’utilizzo delle tecniche di elaborazione di immag-‘mi per indicizzare automare e legato alla scalabilita. Lo state attuale della tecnologia consente l’indicizzazione caratteristiw tiea solo di semplici motivi geometrici. La complessite aumenta con il numero di gazione. ehe riconoscibili. Un'altra questione rilevame e collegata alla complessith dell‘interro earatterisemplici da dedun'e per usati essere possono inferenza di i Le regole e i meccanism interrogazioni stiche delle immag'mi dei fatti a livello superiore. Cio consente d1 incorporare espemassima la o consenton Che apeni atri harmo che alberghi gli “trova di alto livello come ale. Attualmensizione a1 sole nell’area riservata alla reception” in un'applicazione architettur ione seguentl. te l’indicizzazione delle immagini si base so uno dei tre sehemi d1 indicizzaz predetermiI. Sistemi classrjicarari. Classificano le immagini gerarchicamente in categorie conoscenbuona una avers o dovrebber l’utente e torc nate. In questo approccio l’indicizza pifi fini di za delle categorie disponjbili. Non possono essere colti e registrati i dettagli un'immagine complessa e le relazioni tra gli oggetti in un’immagine. simile a. quel2. Sistemi basan' su parole chiave. Utilizzano un vocabotario di indicizzazione semplici fat— registrati esscre Possono testuaii. i document dei lo usato nell'indicizzazione ghiaccio“) ti rappresentati nell‘immagine (ad esempio “una regione avvolta dalla calotta di urna— esseri di parte da livello alto ad tazione un‘interpre di e i fatti derivati come risultato polare)‘ ni (come la distinzione tra ghiaccio permanente', una recente nevicata e il ghiaccio ine e le 3. Sisremi entird-attfibuto~relaziane. Vengouo identificati tutti gli oggetti nell'irru'nag relazioni fra gli oggetti e gli attributi deglj oggetti.
zione principale e stata la gestione di dati industriali e gestionalj, che sono principalmente uumenci. Nei prossirnj anni le informazioni testuali e non numeriche probabiimente domine— ranno il eontenuto delle basi di dati. Di conseguenza, ai DBMS verranno aggiunte molte funzioni relative al eonfronto, alla concetmaljzzazione, alla comprensione, all'indicizzazione e alla produzione di sintesi dei documenti. I sistemi di gestione delle informazioni multimediali pennetteranno di am'rvare a no collegamento tra discipline che storicamente sono state aree separate: i1 recupero delle informazioni e la gestione dj basi di dati.
14.2.4 Applicazioni delle basi di dati multimediali E prevedibile ehe applicazioni di basi di dati multimediali di grandi dimensioni interessino un gran numero di discipline e quindi migljorino le propfie funzionalith. Di seguito sono clencate aicune applicazioni importanti. -
'
-
parole chiave Si noti che nel easo di doeumenti testuali un indicizzatore pub seegliere 1e cio ehe non e o, indicizzat essere deve che o document nel lj disponibi parole di serie da una possibiie nel case di dati video e visivi.
chiave nelle applicazio— Problemi del recupero di dati twtuali. Si tratta da sempre dell‘elemento sia gia stato fatto, xilavoro molto sebbene e teche. dellebiblio gestione di sistemi nei e ni gesfionali questioni seguenti. 1e riguarda quanto per mane la necessita di ulteriori miglioramenfi, soprattutto
'
'
-
se ai documenIndicfzzazione difrasi. Migliorarnenti sostanziali possono essere realjzzati costituiti da sinti vengono assegnafi descritton' a frasi (a differenza dei termini a indice. dei documenti gole parole), purché le frasi prescelte siano buoni indicatori del contenuto capacita di Urilizzo a‘i rm vacabolario dei sinonimi 0 di un thesaurus. Una cause della scarsa é diverse rlchiamo (recall) dei sistemi correnfi :3 die i1 vocabulario usato dall‘utente
d9. quel-
sinonimi lo usato per indicizzare i documenti. Una soluzione e utilizzare un vocabolan'o dei collegati. i aggiunfiv termini con dell'utente zione l‘interroga 0 un thesaurus 'per ampliare del numeRisoluzione dell 'ambiguitd. Uno dei motivi della scarsa precisione (i1 rapporto ) nei siv recuperati oggetti degli totale mnnero a1 rispetto recuperati ro di oggetli pertinenti piil stemi di recupero delle informazioni e che nel linguaggio naturale molte parole harmo cona altro un linea; in dizionario on usare e ambiguita l‘ risolvere per significati. U11 modo frontare i eontesti in cui Ie due parole si presentano.
w grim? Mania-“4"m‘osvilupflr dei DEW. nit o manna: 1965 al 1995.1’annlica-
Lawn m
W—w—z- _._._._ '
_—
445
-
Gestiane delle registrazioni e dei documenri. Molte industrie e organizzazionj tengono registraziom‘ molto dettagliate e produeono una grande quantita di documentj. I dati posso— no comprendere dati di produzione e progom' meceariici, cartelle mediche dei pazicnti, materiale destinato alla pubblicazione e registrazioni delle compagnie di assicurazione. Diflirsione delta canoscenza. L‘editoria multimediale, un mezzo molto eficace di divulga— zione delle conosoenza, eomprendera una crescita fenornenale dei libri elettronici, dei cataloglfi, dei manuali, delle enciclopedie e delle raccolte di informazioni sui pifi diversi argomenti. Didam’ca efonnazianepmfessionale. Materials d’insegnamento per tutti gli ordini di scuola, dagli studenti elementari agli operatori di strumentazione ai professionisti, puo essere progettato partendo da fonti multimediali. Le biblioteche digitalj avranno in future una grande influenza sul mode in cui studenti e ricercatori, ma anche altn' utenti. avranno accesso a vaste raccolte di materials didattico (si veda il Paragrafo 14.6 sulle biblioteche digitali). Vendite, pubblfcitd, distfibuzione, intratrenimemo e viaggt'. In queste applicazioni non vi sono limiti all’utih’zzo di informazioni multimediali: si va da efficaci presentazioni di merce in vendite aile gite virtuali in citta e in gallerie d'arte. L‘industria cinematografica ha g-ia dimostrato la potenza degk‘ effetti speciali nella creazione di animazioni, animalj e alieni progettati artificialmente. L’utiljzzo di oggetti preprogettati memorizzati in best di dati
multimediali ampliera i1 campo di tall appljeazionj. .
Controllo e monitoraggio in tempo male. La presentazioue mulfimediale delle informazioni. insieme alla teenologia delle basi di dati attive, pub essere uno stmmento molto ef-
fieaoe per monitorare e controllare compiti complessi come operazioni industriali. centrali nuclear-i, pazienti in with mediche intensive e sistemi di trasporto.
Sistemi calmnerciali per la gestione delle informazioni multimediali. Non vi e alcun DBMS pregettato con l'unieo scope di gesfire dati multimediali, e quindi non ve n‘ a nessuno Che abbia 1.1 earnpo di funzzionaljta richiesto per supportare pienamente tutte 1e applicazioni di gestione del«
le mformazioni multimediali che si sono esaminate precedentemente. Molti DBMS, tuttavria, supportano oggi tipi di dati multimediali, fra questi i1 Server Dinamico luformix {Infonnix Dynanfin Server), In has-adj dati Emittirsaleflmfi' Ufigersalflatabme‘n DB2 della IBM. Oracle 8 .0
—-
-- _-
450
- .‘-—.,r.-_.
e- .... w.
..__._‘;
s..- -.._ 7
,
_...~_.
_.fi_.. ._.._..
._..._......
Lem—m» .
I problemi relativi alla gestione del dati distribuiti possono essere applicati anche alle ba« si di dati mobili con 1e considerazioni e variazioni seguenti. I. Replicazione e disrfibuzione dei dati. I dati vengono distribuiti in mode non uniforme tra stazioni base I: unite mobili. La necessita di mantenere la consistenza tra i dati memorizzati sulle unite mobili e quelli presenti alle stazioni base pone un problema di gestione delle memorie cache. Le cache cercano cli fomirei dati a cui si accede e che vengono modificati pit frequentemente alle unite mobfli. che eseguono 1e loro transazioni e possonc es-
sere disconnesse per lunghi periodi. 2. Mode!!!" di transazioni. Gli usuali problemi di tolleranza degli error-'1 e correttezza delle transazioni sono pit critici nell’arnbiente mobile. Una transazione mobile viene eseguita sequenzialrnente attraverso molte stazioni base e su diverse copie dei dati multipli, a seconda del movimento dell'unita mobile. Manea, quindi, un coordinamento cenlrale nell’e-
secuzione della transazione, in particolare nello scenario 2 sopra illustrato. Pub capitare che le proprieta ACID tradizionali delle transazioni, debbano essere modificate definendo nuovi modelli di transazione. 3. Elaborazione defile inrermgazioni. Sapere dove si trovano i dati e importante e influenza l‘analisi costifbenefici dell‘elaborazione delle interrogazioni. 1n ambiente mobile, la risposta alle interrogaziorti deve essere fornita a unite mobiIi che possono essere in movirnento o che stanno attraversando i confmi delle celle, tuttavia devono ricevere i risultati delle interrogazioni completi e corretti. 4. Rlpristino e tolleranza deglr' erran'. L‘ambiente deLle basi di dati mobili deve saper gestire malfunzionamenfi nella comunicazione. nei siti, nei dispositivi e nelle transazioni. I malfunzionainenti del site per un MU sono spesso causati della limitata autonomic. delle batterie. Se poi una MU viene volontariamente spenta. questo evento non dovrebbe cssere gestito come no malfunzionamento. I fallimenti delle transazioni sono pit} frequenti quandc una MU passe da una cella all‘altra. I malfunzionamenti delle MU causano la partizione della rete e influenzano gli algoritmi di instradarnento. 5. Progerro di barf di dati mobili. I] problems globale della risoluzione dei nomi per gestire 1e interrogazioni é particularmente complesso a causa della mobilita e dei frequenti spegnirnenti delle unite. Per questo motive. il progetto delie basi di dati mobili deve incorporare tecniche avanzare per la gestione dei rnetadati, come il costante aggiomarnento della
informazioni relative alla posizione delle unita mobili.
14.3.4
Basi di dati mobili sincronizzate a intermittenza
ll telelavoro basato sulla comunieazione mobile sta diventando aernpre pin comune e 30:10 in molt": a svolgere i1 proprio lavoro lontano dagli uflici e dalie abitazioni ricorrendo 3. units mobili: si pensi ad attivita come la vendita di beni di consumo, industriali e fannaceutici. 1e consu—
lenze e pianificazioni finanziarie e assicurative. le atfivita relative alla gestione di proprieta e beni immobili e cos! via. In queste applicazioni Ltn server 0 un gruppo di server gestisce one base
.._ .. ._.
-_.‘._..—.—
n. Lam—é
.(_-- an.»
Tecnologie e applicazioni emergentl' della basi df dati
Capltolo 14
2. la base di dati e distribuita tra componenti cablati e unite mobili; la responsabilita di gestione dei dati e condivisa tra stazioni base e unite mobili.
We
451
(ii dati centrale e gli utenti si servono all computer portatili o palmari con on software di gestio— ne di basi di dati residente per esegnire transazioni che restano “locali” per la maggior parte del tempo. I client si collegano con i server attraverso una rete 0 ma connessicne telefonica (c attraverso Internet), Iipicamente per una sessione breve, ad esernpio da 30 a 60 minuti. Inviano i loro aggiomarnenti a1 server, che deve a sua volta immetterli nella sua base di dati centrale Ia quaIe deve tenerei dati agglomati e preparare copie appropriate per tutti iclient sul sistema. Ogni volta che i client si connettono, ricevono. attraverso un processo noto come sincronizzazione del client con il server, una serie di aggiornamenti Che devono esserc eseguiti sulla loro base di dati locale. La caratteristica principale di questo scenario e cbe iclient sono per lo piu sconnessi dalla rete e il server non e necessariamente in grade di raggiungerli. Questo ambiente pone problemi simili a quelli delle basi di dati distribuite e dclle basi di dati clienb’server e alcuni anche del1e basi di dati mobfli. ma presenta anche alcuni problemi agg'iuntivi di ricerca che vanno studiati. Esso e detto ambiente di hasi di dati sincrom'zzate a intermittenza (ISDBE: Intermitten-
tly Synchronized Database Environment) e 1e basi di dati corrispondenti vengono definite basi di dati sincronizzate a intermittenza {ISDB: Intenrtittently Synchronized Database). Le caratteriso'che seguenti contraddistinguonc gli ambienti ISDB rispetto alle basi di dati mobiti finora esaminate:
1. on client si eonnette al server quando vuole ricevere o inviare aggiomamenti oppure eseguire transazioni che necessitano di dati non locali: questa comunicazione pub essere urticast. cioe uno-a—uno tra il server e il client, oppure multicasr. quando on server comunica periodicaInente con una serie di riceventi o aggiorna 1e basi di dati locali di un gruppo di client; 2. on server non puo collegarsi a un client a piacimento. 3. i problemi delle connessioni del client mobili, al contrario delle connessioni dei client ca— blati e del mantenimento dell‘ alimentazionc eletlrica. sono problemi di scarso rilievo; 4. on client a libero di gestire i propri dati e di eseguire transazioni locali rnentre non e con— nesso. e pub inoltre effettuare delle funzionalita di ripristino; 5. un client ha piu modi per collegarsi a un server: nel caso ve ne siano molti a disposizione, puo scegliere un parficolare server per connettersi in base alla distanza, alla disponibiiita di nodi 0 ad altri fattori.
A causa di tali differenze, molti problemi relativi agli ISDB sono diversi da quelli dei si— stem-ii di basi di dati mobili. Tra questi vi e il progetto della base di dati del server per le basi di dati server. la gesn'one della consistenza fra 1e basi di dati del client e del server, l’elaborazione delle transazioni e degli aggiomamenti, l’utilizzo efficaoe della larghezza di banda disponibile al server e la scalabilith negli ambienfi ISDB.
14.3.5
Bibliografia selezionata per le basi di dati mobili
Negli ultimi cinque—sei anni 6%. state un’improvvisa ondata d’interesse per il calcolo mobile con Una crescita significativa della ricerca su basi di dati mobili. Tra i libri scritti an questo argomento. Dhawan (1997) e un‘eccellente fonte di informazioni sul calcolo mobile. Le reti di cornunicazione mobile e il loro fimrro vengono discusse in Holtzrnan e Goodman (1993}.
Imielinski e Badrinath {1994) forniscono una buona panoramica dei problemi relafivi alle ba-
452
Tecnologia e applleazloni emergenti delle basi di datl
Capitolo 14
si di dati in ambiente mobile. Dual-lam e Helal (1995) trattano i problem 5“ elaborazione d9!“
453
Applleaziuni GIS
le interrogazioni. distribuzione dei dati e gestione delle transazioni per le basl di dati mobili.
Foreman e Zahmjan (1994) descrlvono le funzionalite e i principali problemi del caleolu mobile e offrono argumenti convincenti a sun favore, in quanta possibile soluziune in future per
molte applicazioni di sistemi infomativi. Pitoura e Samaras (1998) illustrano tutti gii aspetti dei problemi e delle soluzieni delle basi di clati mobili. Chintalapati e altri (1997) dESCFiVOI‘lU un algoritmo adattivo di gestione delle posizioni, mantra Bertino e a1m(1998)considerano Eli approcci al ripristino e alla tolleranza degii cram-i nelle basi di dati mobili. Il numeru di giu-
gm) 1995 della rivista Byte affronta diversi aspetti del ealcolo mobile. Per una discussione ini-
ziale 5111 problem delta scalabiljta degli ISDB e la desczizione di un suo approccio attraverso l'aggregaziene di dati e il raggruppamento di client si consuiti Mahajan e altn' (1993)-
Canagrafia
— Irrigazlone
Applicazioni digitali dl
Applicazlonl di gestione
mudellaziune dei suolo
di oggatt': geografiel
Studi dalle risorse — di sclenze delia tarra
_ Anallsl del
raecnltl
__ Valutazlona def terreno
Valutaziona
_ militate a Ingegnerla civlle
— HHevamanti Plenlficaziene _ e gestlcne
14.4 Sistemi informativi geografici
defile rlsoree _ Studio del paessgglo
Islstemi informativi geograflci (GIS: geographic information systems) vengono usati per raccogfiere, modellaxe, memoriZZal-e a analizzare 1e informazioni che descn'vono Ie proprieta fisiche del mondo geografico. L’ambito dei GIS comprende due tipi di dati: (1) i dati spaziali Che hanno origine da mappe. immagini digitali, confini politici e amministrativi, strade, reti di
Analisl dei —- oomportament] de! trafiico
topograficl
Studl dell‘lnqulnamento — delle acqua e dell‘arla
Sistemi dl nayllgaziofil per automohlll _
“Hal‘s; gaqgrafica de] mercatl
‘ . Consume a distrlhuzmne
39' sandzl Anallsl econem1ca
def SSWiZ'F dad Fifi-1011' d' consume
— Controllo delle ascndazlanl _ Gestlone dells risotsa ldriche
Figure 14.5 Una possibile classificazlone delie ap plicazionl GIS (edattatada Adam e Gango padhyay. 199?)
trasporto, nonché i dati fisici quali i fiumi, 1e caratter‘tstiche del terreno. le regioni climatiche; (2) i dati non spaziali come eonteggi del censimente. dati economici, infannaziuni sulle ven— dite e cos} via. I GIS rappresentano attualmente un camps in rapids sviluppo che offre approcci altamente innovativi per rispondere ad alcune I'iChieste tecniche di difficiie soluzione.
14.4.1
Applicazionl GIS
E possibile divider: i GIS in he categorie: applicazioni cartografiche. applicazioni digitali di
modellazione del terrene e applicazioni per 1e gestioni di oggetti geografici (Figure 14.5).
no richiede una rappresentazione digitale di parti della superficie terrestre, usando l’altezza rilevata in punti campione Che vengono poi collegati per fornire un medeilo della superficie terrestre come una rete u'idimensionale (line: collegate in 3D). La modellazione digitale de] terreno richiede l‘impiego di funzioni d'interpolazione tra i punti ossenrati e la visualizzazione. Nelle applicazioni geografiche basate su oggetti, sono necessatie delle funzioni aggiuntive per trattare i dau' relativi a strade, oleodotti, cavi di cumu— nicazione, linee elem'iche e c051 via. Ad esempio per una data regione, posseno essere usate delle mappe confrontabili per mostrare i cambiamenti in diversi momenti di certi dati come quelli della localizzaziene delle strade, dei cavi. delle costmzieni e dei corsi d’acqua.
Nelle applicazioni di modellazione del tel-rent: e canografiche vengottc registrate 16 ”3113' zionj negli attributi spaziali. ad esempio 1e caratteristiche del suolo, la densité del raccolte e
la qualité dell‘aria. Nelle applicazioni per la gestiune di oggetfi geografici, gli Oggetfi d’inte-
resse sono identificati all'intemo di un dominio fisico, ad esempio centrali elettriche, distretti
14.4.2 Requisiti di gestione dei dati dei GIS
elettorali, appezzamenti di proprieté, zone di disu-ibum'one dei prodotti e confmi delle citth.
QHBSti OggBtLi geog'rafici sono correlati con i dati di altre appliCaZioni che P51” questu SPCCifi'
co esempio possono esseie il consume energetico, i risultati elettorali. i volumi di vendita del-
I requisiti funzionalj delle applicazioni GIS deseritti precedentemente si traducono nei seguenti requisiti relativi alle basi di dati.
le proprieta e dei prodotti e la densité del traffico.
I primi due tipi di applicazieni GIS consigliano una rappresentazione basata su campi. mentre la terza categoria ne esige una basata 511311 oggetti. L’approeciu cmografico. inoltre, richiede funziuni speciali, come la sovrapposizione di mappe di divarsi livelli per caleolaxe i
:1a di attxibuti che consentiranno. ad esernpio, la misurazione di nuovc distanze Hello spazio tridimmctnnah e In anlassjfinaampe deg-Lane sung permit. La modellazione digitalis del terre“we.“
Rappresentazione e modellazione (lei dati. I dati GIS possono essere rappresentati in due formati: vettoriale e raster. I dati vettoriali rappresentano oggetti geometrici come put-1d, linee e pcljgoni; ad esempio 1m Iago pub essere rappresentato come un poligono e un fiume con una set-1e di segmenti lineari. I dati raster sono caratterizzati da una man-ice d1 punti in cui ciascuno rappresenta i1 valore di unflattributo oer una pr); 'zigne del mouth realfi. lqodo non fut-male Si nub
_
_:
c_o w.
454
h, .4
mom;
....o_ .._.--
. __ ,
Tecnologie e applicazionl emergenti delie best di dati
Capitolo 14
dire che 1e immagini raster sono man-lei n—dimensionalj in cui ogni elemento e un‘unita dell'immagine e rappresenta un ato-ibuto. Le unite bidimensionali vengono dette pixel, mentre quelle tridimensionali sono chimnate voxel. I dati di elevazione tridimcnsionali sono memorizzafi in un formato raster detto modello digitalis dell’elevazione (DEM: digital elevation model). Un altro formato raster e detto rete irregolare triangulare (TIN: triangular irregular network) e si basa so no approccio topologico Che utilizza vettori per modellare 1e superfici; i vetted vengono creati collegando punti campionati per formare Biaugoli e Si ottiene una densita di punti che puo variare con l’irregolarita dei terreno. Le griglie rettangolari o matrici di eievazionc sono strutture a matrici bidimensionali. Anche nella modelluzione del terreno (DTM: digital ter-
rain modeling) puo essere usato questo modello. sostituendo l‘elevazione con un altro attributo d‘interesse come la densita della popolazione o la temperatura dell’ aria. l dati GIS spesso ineiudono una struttura temporale oltre che a una spaziale. Ad esempio la densita del traffico pub essere misurata ogni 60 secondi in una serie di stazioni di campionamento sparse sul territorio.
Analisi dei dati. l dati GIS sono sottoposti a vari tipi di analisi. Ad esempio nelle applicazioni come gli studi dell‘erosione del suolo, gli studi sull'impatto ambientale 0 1e simulazioni di frane idrologiche. i dati DTM possono essere sottoposti a vari tipi di analisi geomorfometriea, misurando i valori di pendenza, i gradiemi (i1 lasso di cambiamento in altitudine). l’nspet— to (la direzione della bussola del gradiente). la conversirc‘t del profile (i1 Lasso di cambiamento del gradients), la canvassitd deHa piama (la convessita dei contomi delle regioni e alt-i parametri). Quando i dati GIS vengono usati per applicazioni di supporto decisionale possono essere sottoposti a operazioni di espansione e di aggregazione usando i1 data warehousing, come si a vista uel Sonoparagrafo 14.1.5. Possono essere eseguiti, inoltre, vari tipi di operazioni geometriche {per calcolare distanze, aree e volumi). topologiche (per ealcolare sovrapposizioni. intersezioni e percorsi pin brevi) e. infine, temporali (per calcolare interrogazioni basate su eventi o interne). Un‘analisi approfondita in genera richiede moite operazioni spaziali e temporali.
Rilevazione dei dati. La prime fase nello svfiuppo di one. base di dati spaziale per la mo— dellazione cartografica consiste nel registrare 1c informazionj geografiehe bidimensionali o tridimensionali nella fauna dig-kale. Tale procedure. talvolta e resa diffieilc dalle caratteristiche della mappa da digitalizzaie, per la risoluzione, il tipo di proiezione. la scale utilizzata. 1a diversita delle tecnielie di mismazione e dei sistemi di coordinate. I dati spaziali possono essere rilevati anche da sensori remoti nei satelljti come Landsat. NORA e iI radiometro avan— zato a risoluzione molto alts (AW-ERR: Advanced Very High Resolution Radiometer) cosl come SPOT l-IRV (High Resolution Visible Range Instrument), uno strumento di facile interpretazione e moito preciso. Per la modellazionc digitale del territorio i metedi di rilcvazione dei dati vanno dai tradizionali sistemi manuali a quelli totalmente automatizzati. I rilevamenti topografici sono l‘approccio tradizionale e il piu precise, ma riehiedono molto tempo. Altre tecniche ineludono il campionameuto con fotogrammi e i documenti cartografici digitalizzati.
14.4.3
tastali locali sono usati per localizzare localita. I dati Che vengono originati con sistemi di coordinate diversi richiedono appropriate trasfonnazioni. Le principali fonti pubbljche di dati geografici. tra cui i file TIGER gestiti dal Dipartimento del Commercio deglj Stati Uniti d’America, vengono usati per u-acciare cane stradali da mold snumenti di disegno di mappe presenti sul Web (ad esempio http:llmaps.yahoo.com). In queste applicazioni capita spesso che mappe con pochi attributi e alta precisione debbano essere integrate con altre che comprendono tanti attributi. ciaseuno rilevato con poca precisione. L’integrazione vlene allora eso— guita con un prooesso detto “a banda elastica" in cui l‘utente def‘misce una eerie di pumi di controllo in entrarnbe le mappe e la trasformazione della mappa di bassa precisione viene eseguita teneudo allineau' i punti di controllo. Una questione fondamentale relativa all'integra— zione e creare e mantenere i dati relativi agli attributi {come In qualita dell’aria o la densita del traffico) che posscno essere messi in relazione e integrati con informazioni geografiche appmpriate nel tempo. man mane che 5i modificano.
Operazioni specifiche dei dati GIS
Le applicazioui GIS richiedono 1a definizione di operatori speciali come quelli di seguito iicordati.
-
-
Integrazione dei dati. I GIS devono integrare dati vettoriali e raster provenienti da diverse fonti. Talvolta 5i calcolano i profili dei bordi e 1e regioni di un‘immagine raster per creare un modello vettoriale, in altri casi, vengono usate immagini raster come In fotografie aeree per agglomare i modelli vettoriali. Diversi sistenu di coordinate come mercatore trasversale universale (UTM: universal transverse mercator), il sisteme latitudineflongitudine e i sistemi ea-
455
Interpolazione. Questo process'o permette di ottenere dati di elevazione anehe per i punti in cui non e stato eseguito alcun campionamento. L’inteipolazione pub avvenire in punti singoli, su una griglia retrangolare o lungo un contomo e cosi via. I principali metodi di interpolazione si basano sulla triangolazione che use il metodo TIN per interpolare 1e elevazioni all‘interno di un triangolo sulla base di quelle campionate ai suoi vertici. Interprerazione. La modellazione digitale del suolo comporta 1’ interpretazione di operazionj sui dati del territorio come la modifiea. lo smussamento. la riduzione dei dettagli e l‘evidenziazione dei contorni. Altre operazioni sono relative a1 far coincidere e fendere i bordi di triangoli {in dati TIN). i1 che implies. riconciliare i modelli e risolvere eventuali
-
-
conflitti ha i dati degli aIu-ibuti. Le conversioni tra i modelli di griglia, modelli di contorno e i dati TIN sono altre operazioni necessarie per l‘interpretazione del ten‘itorio. Analist' defile pmssimt'ra. Diverse tipologie d5. anaIiSi di prossimité permettono il calcoio di “zone d’interesse“ attorno agli oggetti, ad esempio la determinazione della distanza di sicurezza attomo a una macchina in viaggio su un‘autostrada. Gli algoritmi per il calcolo del pereorso pin breve Ira due punti che usano informazioni 2D 0 3D sono una classe importame di strumenti allo scopo. Elaborazione di immagini raster: Si tratta di un insieme di tecniche che pub essere diviso in due categorie: I‘algebra delle mappe usata per integrate le carattexistichc geografiche di mappe sovrapponibili 211 fine di ereare algebricamente nnove mappe; l‘analisi delle immagini digitalj per funzionaiim quali i.l riconoseimento di confirli e il rilevamento di oggetti all‘interno delle immagini. L’individuazione delle shade in un’immagine satellitare di una cine e on esempio di individuazione di oggetti. Analisz‘ dt‘ reti. Le red in GIS sono presentiin molti contesti e possono eseere analjzzate e soggette a segmentazjoni. sovrapposizioni e cosi via. La sowapposizione di reti si rifensce a un
9-.....“
462
Capltolo ‘14
melto utili. Ad esernpio. 1a sesegna integrare pie contesti pessibili. I valon' isolati non seno informazioni aggiuntive che senza utile arrnente particel e non quenza di un segmento di DNA nucleotide pesto so no cersingolo Un ne descrivano l‘organizzazione. la funzione e cesi via. che non causano malattie. DNA di ti segmen altri di coateste nel visto to segmento di DNA. celiule. delle pee essere individuato come causa pericelosa anemia
azioni compfesse é esrremaCaratteristica 8. La definiziane e la presenrazt‘one di interrog are interregazioni cemsupport devene i bielegic sistemi I . biologe il per meme importante
dati (Caratteristica 6). gii utenti medi non plesse. Senza alcuna eenoscenza della su'uttura dei eemplessa sui dab'. Quindi, per essere verameme
possone cestruire da soli un'interrogaziene tali interregazioni. Come detto preutili, i sistemi devone femire alcuni strumenti per create di interregazieni predefinite. i modell ofrno sistemi attuali degii cedentemente, molti
richiedono I’accesso a valari Caratteristica 9. GI urenti di informazioni biologiche spesso risuirati ortenuti precedenrere venfica a't' cercano quando dei dati "vet-chi", parricolamrenre che perrnetta 1' accesso a diverse sterici archivi di sistcma un erre predisp rio necessa E meme. ati ma anehe alie versioni delle versieni dei valeri. E necessario accedere a't dati pit aggiern i dati pib aggiernati in mode ate infermazieni precedenti: i ricercatori voglione peter interrog i1 lavere precedente e vaiire ricestn di grade in essere stesso tempo censistente. ma devene a1 Di censeguenza. in attuali. aiie lutare nuevamente informazioni usate in precedenza insierne essere sempessene non ati agglom essere per stamo che valeri i a una base di dati bielogic plicemente eliminati.
odiemi non soddisfano pieTime queste caratterisu'che mestrane chiaramente cbe iDBMS sviluppare una nueva diquindi arie necess E ci. biologi dati ssi comple namentei requisiti dei orientate alla gearnente specific datis. di reziene di ricerca sui sisterni di gestiene delle basi i. stiene dei dati biologic
14.5.3
ll progetto del genoma umano e le basi di dati bielogiche esistenti
zionj genetiche tetali che si possono etIl tennine genoma viene usate per indicate 1e inferma genera si riferisce ails eerie cempleta in o, esempi ad , umane e tenere su un’entita. ]1 genom tra 100.000 e 300000 e organizessere di geni richiesti per creare un essere urnano, stimati miliardi di nucleotidi. [1 fine del 4 ai 3 dai ndono cempre che emi cromos zati so 23 coppic di era queue di ettenere la sequenProject) progetto del genoma umano (HGP: Human Genome giugno 2000 e state infatti annel idi: nucleot quei di basi. deile l’ord'me za complete, ossia
3
463 Tecndlegle e-appileazlonl éin'é'rgentt deile basl di dafi
deti. chisrnato GENOME, di gesrione reticolare deKogelnik (1998) descrive ii pmtotipo dell‘ambienle di basi di (GENOME: Georgia Tech Emory Network Object Emory a Georgia della ieo Tecnolog to dell‘Istim oggetti. gli vedere anche Kogelnik e aitri indicate precedentemente; Management Environment) per afirontare 1e questioni
(1997, 1993).
i1 giusto ordine di tutte 1e “lettere” con cui e nunciata a1 mende la mappatura del DNA, eioe da sola, la sequenza umana del DNA non Pnesa . umano essere d‘un seritto il codice della vita essere usata come on utile siren-Lento pub dad e parficelarmente utile. ma se associate. ad altri
ica, medicine. antropelegia e agrieoltora. per affrontare svariati problemi di genefica, bieebjm e i1 punte principale a state raccoglieNella cosu‘uziene delle basi di dad esistenb' del genom inforrnazieni sulla sua sequenza. Ol1e care classifi e ) qualité di lle re (con l’opperttmo contro osi numer erganismi come Ecoft‘, Dros'ophi— tre al genome umano, sone stati studiati quelli di di dad esistenti
dei sistemi di basi Ia c Celegans. Verranno qui brevememe presented alcuni
usati per il Progette del Genome Uroano, e nati da esso.
ante nel mendo e Genbank, sviGenbank. Oggi la base :11 dati di sequenze DNA pie import della National Library of
ation (NCBD) luppate dal National Center for Biotechnology Inform
del depesito centrale di dad relativi alle sequenze Medicine {NLM}. Istituita nel 1978 come no ori di sequen-
includere dati sui marcat DNA. da aJJera i suei obietljvi-sono stati arnpljati per proteine, sulla classificaziene e sui delle le nsiena ze, sulla sequenza e sulla strnttura tridime La sua ultima versione centicne pie di collegamenti aila letteratura biomedica (MEDLIN'E). pit: di 16.000 specie, e approssimativada ze sequen 0 601000.000 nucleotidi di pifi di 920.00 La dimensione della base di dati meme dieci nuovi organismi vengone aggiunti ogni gierno. anni. cinque per mesi dicietto ogni ta si e appressimativameme dupiica l‘ambito del sue interesse si focalizza Pur essendo una base di dati complessa ed estesa. ura. Altre fonti di dati (ad esernpio sulla sulle sequenze urbane e sui collegamenti alla letterat tato nel seguito) sene state aggiunte restruttura b'idimensionale e il sistema OMIM presen sisterni OMIM e PDB e ripregettande la dei ti esisten dati di basi 1e centemente ristrutbnrando serie di dad. nueve struttura del sistema Genbanl: per includere queste basi di dati relazienali e file che piatti. file di azione combin una da ite ll sistema e eestitu ct Syntax Notation One], Abstra 1: (ASN. 1 ta contengone la Notazlone Slntattica Astrat delle telecemunicazioni. u'ia l‘indus per ate svilupp dati di re struttu 1e e una sintassi per definir Agli aggiornamenti NCBI. dal e unjvoc catere A ogni voce di Genbank e assegnate un identifi
l’identificatere dell‘entita originale rimane viene assegnato un nuevo identificatore, mentre devene iridi-
a un’entita, quindi, non invariato per metivi di archivio. Ififerirnenti pin vecchi questo motive i dati pie recenti riPer valore. opriate inappr forse e nuevo an care per errore ers) che mar-
univoci (UID: Unique mentifi ceveno anche una seconds serie di identificateri 'ti te, permettende pert“) ancers l’accesse alIe versiot
cano la forrna pin aggiomata di an concet preeedenti attraverso i lero identificatori originab'. di accedere direttamente alla struttura dei L'utente medic della base di dafi non e in grade e istanze complete della base di dati sobben ni. funzio dati per eseguirc interrogazioni o altre . Il meecaaisme di interrogazione forpossane essere esportate in molti formati. Ira eui ASN.1 versione World Wide Web] che consua la (o Entree nito awiene attraverso l’applicazione
di Genbank attraverse un‘interfaccia sente Ia ricerca termite parole cbiave, sequenze e l’UID
stance. Database). Create net 1989. GDB e en estaLa base at dati del genome (GDB: Genome specific-a informazione a una specifica posiaiolego dei dati sul gene urnano che associa one di quests pesizione sulla mappa dip-code dalla iene precis di ne nel genome umano. 11 grade i nucleotidi. Tia i daft del GDB vi sono fonte dei dab", Che di solito non e a1 livello dei singol
464
' Tecnologie e applicazioni emergent? delie basi di dati
Capltolo 14
(compresi i limiti di quelli che descrivono 1e informazioni principali della mappa genornica zazione (PCR: polimeriz di catena a reazione sulla taii sperimen dati i e distanza) e a confidenz usafi). Pin reagenti e PCR del inneschi tali. polymerase chain reaction) (condizioni sperimen i collegandoli mutazion sulle dati del re aggiunge per sforzi degli fatti statl sono recentemente indagini sul DNA e ai Ioci genetici, alle celiule usate negli esperimenti, alle biblioteche delle . fenotipico smo polimorfi al 6 ni popolazio aile relativi dati ad alcnni le commerciale i cui ll sistema GDB é coslruito attomo a SYBASE, un DBMS relaziona (si vedano i Capitoli 3 e 4). dati sono modellati usauclo 1e tecniche standard Entith—Relazione
modello per rappre(iii implementatori di GDB hanno rilevato molte difficolta neli‘usare tale e. Al fine di migiiosentare qualcosa di pin di una semplice mappa genomica e dati d‘indagin applicazioni. rare l’integrith dei dati e semplificarc la programmazione per chi Cleve scrivere
clad (Database Access Toolkit). GDB distribuisce una serie di strumenti di accesso alle basi di
eseguire le interroga— La maggior pane degli utenti, tuttavia, utilizza un‘interfaccia Web pm dei collegamenti per zioni collegandosi ai vaii gestori del servizio. Ogni gestore tiene traccia agli utenti viene for, Genbank con Come GDB. sistema del o una delle dieci tabelle all‘intern rendendo difficile nita solo 11:12. vista di livello molto alto dei dati al momento della ricerca, ricerca sono pill di metodi I GDB. tabelle delle struttura dalla l’uso della conoscenza estratta mappa o i dati d'inda— utili quando gli ulenti stanno semplicemente cercando un indice nella presenti. L‘in— gine. L‘esplorazione diretla della base di dati non e incoraggiata dalle interfacce
465
Escoii. gli enzimi codificati da questi geni e le reazioni biochimiche catalizzate da ciascun enzuna, nonché la Ioro organlzzazione nei percorsi metabolici. Cosi facendo EcoCyc si occupa sia della sequenza sia dei domini delle funzioni delle informazioni dei genomi. Contiene 1283 composti con 965 strutture ed elenchi di legami e atomi. pesi molecolari e formule empiriche. Contiene altresi 3038 reazioni biochimiche descritte usando 269 classi di dati. Il modello di dati orientato agli oggetti fu usato per la prima volts per implementare il sistema. con i dati memorizzafi in Ocelot. un sistema di rappresenmzione delia conoscenza‘ I dati di EcoCyc sono stati ordinati in una gerarchia di classi di oggetu' basandosi suil'osservazione che 1e proprieta di una reazione sono indipendenfi dall’eozima che Ie catalizza e che mi enzima ha molte proprieta che sono "logicamente distinte" dalle sue reazioni‘ EcoCyc fomisce due metodi di interrogazione: uno diretto (attraverso interrogazioni predefinite) e um indiretto (attraverso la navigazione ipertestuale). Le interrogazioni dirette vengono eseguite usando dei menu e delle finestre di dialogo che con-isponclono a un reperton'o esteso, ma finite di interrogazioni. Non e supponata Ia navigazione delle structure di dati effettive. Non e documentato, inoltre, alcun meccanismo che permetta l'evoluzione deilo scheme.
In Tabella 14.1 sono riassunte 1e earatteristiche delle principali basi di dati del genoma e delle basi di dati HGMDB e ACEDB. Esistono anche altre hasi cli dati delle proteine che contengono informazioni sulle scrutture proteiche. di cui 1e principali sono SWISS-PROT al— l‘UniversiIh di Ginevra, la Banca di Dati deIle Proteine (PDB: Protein Data Bank) a! Brokha—
0M1M(siveda oltre) non e stategrazione tra 1e strutture della base di dati di GDB e quelle iii
ta pienamente stabilita.
(OMIM: Eredith mendeliana in linea nell’nomo. L’eredité mendeliana in linea nell’uomo oni sulie maon-iine mendeiian inheritance in man) e on riepilogo elettronico delle informazi 1500 voci, fu con— lattie genetiche umane. Iniziato su carta da Victor McCusick nel 1966 con 1991 la sua gestiovertito in forrna elettronica a pieno testo trail 1987 e 1989 dal GDB. Nel fu convertita nel ne fu IIasferita dall’UniversiLe Johns Hopkins all‘NCBI e l'intera base di dati formato Genbank di NCBI. Oggi contiene pin di 70:30 voci. e sistemi. QualOMIM contiene materiale so cinque aree patologiche suddivise per organi sotlo studio, viene siasi proprieta morfologica, biochimica. comportamentale 0 di altro tipo che i geni possono definita fenotipo di un individuo (0 di una celiula). Mendel si rese conto ali’efietfiva compoesistere in molte forme diverse note come alleli. Un genotipo si riferisce sizione ailelica di un individuo. non fortemente Le voci di struttura del genotipo e del fenotipo contengono dati testuali
Tabella 14.1 Riepllogo deile principall basi dl dati relative al genome. Nome dell: base all dad
Genbank
to reEcoCyc. L’Bnciclopedia del Metabolismo e dei Geni di Escherichia coli 6: un esperimen
~_._..._-
o di eente che si propane di associare 1e informazioni sul genoma a queile sul metabolism l’Istltuto di RiEcoii K—lz. La base di dati fu creata me! 1996 grazie a una oollaborazione tra ssac- ' ted: 'iiger""“di ..bora1; i‘olo "‘5". “"— “k
Sequenza DNNFNA.
Tecnologla lnlzlale
Flle testuali
Tacnologia annals
Area di problemi di has! dE datl
Fils piafloiASNJ
Consultaziona degli schsml. evoluzlone degli schemf. collegamento ad arm dbs
protslna
Tlpl o‘i dot] principali
Tesla. datl numsrlci. eicunf tip]
complsssl OMIM
GDB
AGEDB
th. variazioni, strurtura strutturati come descrizioni generali, nomenclature, modi di ereditarie
convertite nel clei geni. mappaggio genomico e altre categorie. Le voci a pieno testo furono ne ha miconversio Quests. NCBI. at] trasferito fu OMIM formato strutnirato ASN.1 quando ha definite angliorato molto 1a capacita di coilegare i clati di OMEM con altre basi di dati e rimane difficiv che una struttura rigorosa peri dati. La for-ma base della base di dati, tuttavia, 1e da modificare.
Contenum
Genoiipl e fenotlpl
Schede dl
Flre
Vocl in testo libero. non
dl malattia 8 cos] Vla Dali dl collsgamento dolls [nappa geneitca Dail d: collegamento
indiclifila testuali File piano
piatloiASNJ
00
00
slrutturale. che 31 collegano ad altrl dbs Evoluzlonefespsnslone degli scheml, oggetti oomplassl, collegamenti ad altrl dbs Evoluzloneiespansione degll schemi, coliegamentl
Helazlonale
Tesio
Testo. deli numerici
Tasto, dati numericl
ad ellrl dbs
della mapps
genetics. dati di sequenza {non urnanij HGMDB
EcoCyc
Seguenza e
Flle piano,
Filo pistttor
Evoluzioneiespanslone
Taste. dau
vansnli delle
applicazione
applicazlone
degll scheml. oollegarnenfl
numeriei
sequenza
speclfica
specifics
ad artrl dbs
Peroorsi e reazlon!
00
00
blochfmiche
Gerarchla delle classl,
evoluzlone degli scharnl
Tlpl
ocmplesel. testo. deli
numerloi
. .... .
\_._.e _.
-._._..__-
L._.
...
Tecnologie e applicaztoni emergenti delie basi di dati 466
467
Capitolo 14
delle Proteine (PER: Protein Identifivan National Laboratory e la Risorsa di Identification: on. Foundati Research cal cation Resource) alla National Biomedi
le applicazioni delle basi di Negli ultimi dieci anni vi a state an aumento di interesse per come archivi centrali di crean' stati sono OMIM e GDB . Genbank . dati in biologia c medicina ancora 1’ intcro coprono non utili alcuni tipi di dati biologici, Ina pur essendo estt'emamente facendo destanuo si pero, mondo, i1 tutto In umano. genoma spemo dei dati del progetto dei
problemi (ii gestionc dei dagli sforzi per progettare nuovi strumenti e tecniche che Iiducano i ti per biologi e ricercatori medici.
Tabella 14.2 Bani dl dati e biblloteche digitali: afflnlta e dlfferenze. Aflinita iomlscono datl. I Entrambe rluniscono, organizzano. memorizzano. carcano. recuperano. etabornno a I Entrambe contengono e geatisoono pit] media.
- Entrambe contengono e gestlscono tlpi d1 dati aterogsnei e oggatti oomplessl. Differenze Base d! dati Bibfloieohe digital? Nessun gesture centralizzato (In gestiona é attuata attravarso interfaces concordate)
Guam dei dati mono controllatafnon eontrollata
14.5.4
a Bibliografia selezionata per le basi di dati del genom
negli ultimi anni. Molti convcgni e La bioinformau'ca t‘: diventata un‘ area di ricerca importantc (1993) fornisce una. buona panoRobbins mo. congressi sono stati organizzati su questo argome
‘11 progeno del genome. umano. evidenramica. mentte Frenkcl (1991) tratta in modo diffuse ia e altri (1993), Benson e alui Cuticch matica. bioinfor ziandone i1 ruolo fondarnentale nella utili su GDB, Gcnbank e OMIM. Walzioni informa no fomisco (1994) altri e Pearson e (1995)
driale che tratta di unn pane spc~ lace (1995) e stato un pioniere nella ricerca sul genome mitocon zativi di quests: area appaiuno in Ancifica del genoma umano; la sequenza e i dettaglj organiz Kugelin Kogelnik e altri (1997, 1998) e in derson e altri (1931). 11 lavoro recente documentato
al problema delle gestione dci dati nelnik (1998) afironta lo sviluppo di una soluzione generics. a in Kogelnik (1998) e vi si pub acdescritt e AP MI'I‘OM dati le scienze biologiche. La base di nl. La piu grande base di dati di procedere all‘indirizzo httpzllwwwgenemoryeduinfitomaphtr uge.c11!sprotl. Le informazioni pasy.hc httpzflex o indirizz all‘ bile teine SWISS-PRU!“ e accessi usdagov:SDSOIacedocsl. robenal sulla base di datiACEDB sono dispouibiii all‘indirizm httpn’fp
14.6
Biblioteche digitali
nte. Coneettualmente. una bi— Le biblioteche digitali sono un’area di ricerca attiva e importa raccolta di fonti informavasta una — ale blioteca digitale e analoga a una biblicteca tradizion 1n nealth. 1e bibfiotedigitali. ie tecnolog delle i vantagg i piil in can — supporti tive su diversi e e digitale. l‘aczzazion memori la ativi: signific che digitali si distinguono per diversi aspetti originale. Tenere a versione una da copiati sono nti docume i e facile e veloce cesso remoto e dai limiti di memoria e di bilandisposizione altre copie. inolire. a: facile e meno dipendente ie digitali. quindi. superatecnolog Le ali. tradizion he bibliotec delle i problem li cio, i principa ali. tradizion he bibliotec delle fisiche e no matte delle limitaziuni economiche rivista Communications deila digitali he bibiiotec sulle specials numero a1 uzione L’inu-od realizzare i1 vecchio sogno di ofrhe ACM dell‘aprile I995 1e dcscrive come “l‘oppoitunita per zioni deli’umarfita”. Nel Cainforma di 'vio arc o all’inter o l’access avere umano: ognj essere correiati“: a. differenza dei dati di raccoita “one come pitolo 1 una base di dati a state definita comprende varie fond, molte digitale a bibliotec una dati, di base una in raccoiti correlati dati
Gesture oentrallzzato (DEA)
Qualita det datl contentious
delle quali non collegate n'a loro. Logicatnente 1e basi di dati possono essere viste come componenti delle biblicteche digitali (Tabella 14.2). L'Iniziafiva della Bibliotcca Digitale (DLI: Digital Library Initiative), fondata congiunta~ meme da NSF, DARPA e NASA, e stata ii principale acceleratore allo sviluppo delle biblioteche digitali. NeIla sua prima fase, essa ha fornito un finanziamento significativo a sci pro. getti principali di sei universita, che coprivano un vasto spettro di tecnologie. Le pagine Web di questa inizintiva (si consulti dli.gra.inger.uiuc.edulnationaihtm) definiscono lo scopo della ricerca come segue: ‘Migliorare in mode sostanziale imetodi per raccogliere, memorizzare e organizzare 1e informazioni in forma digitale e renderlc disponibile per la ricerca. i1 recupero e l’elaborazione attraverso reti di comunicazione — e tutto in modo ami-
chevole per l’utente finale". 1] grande volume di queste raccolte di dati cosi come in diver-sits e la inolteplicita dei formati costituiscono sfide di un diverso livello. La future progressione nello sviluppo delle bibljotcche digitali probabilmente passera dalla tccnologia attuale di ricerca trarnite Internet, attraverso ricerche in rate di infonnazioni indicizzate Iaccolte in archivi comuni, a nuovi sistemi di correlazione temporale delle informazioni e analisi tramjte reti intelligenti. Le tecniche per raccogliere 1e informazioni, memorizzarle e organizzarie per supportare requisiti informativi appresi nei decenni di progenazione e irnplementazione di basi di dati, costituiranno i1 riferimento per lo sviluppo di approcci appropriati per Ie biblioteche digitali. 1a ricerca. i1 recupero e l'elaborazione di diverse tipologie di dati digitali utilizzeranno 1e lenioni apprese dalle attivita svolte nelle basi di dati su quelle tipologie di dati digitali.
14.6.1
L’lniziativa delle Biblioteche Digitali
naL’Urnversita defl‘fllinois a Urbana Champaign ha coordinate la siucronizzazione a livello zionale di sei progetti della D11 in corso negli Stati Uniti presso 1e sci universita che partecisviluppano all’iniziativa. I progetti si ptopongonc di indifiduare i requisiti fondamentali di po delle bibljoteche digitali. 1 partecipanti e i temi principali sono i seguenti.
*
Universita delta California :1 Berkeley: Sisremt' di Informazioni Geografiche e Pianificaprogetto zione Ambiemale (si veda i} Paragrafo 14.4 per dettagfi sui sistemi GIS). Questo
.
468
Capitolo ‘14
implementera una biblioteca. digitale vista come one raccolta di servizi infomaiivi distribuiti, mettendo l’accento sull‘indicizzazione automatica, la riccrca intelligente, i1 suppor-
to di basi di dati distribuite. un protocollo clientiscrver migliorato per il recupero delle informazioni, una miglior acquisizione dei dati 6 un nuovo paradigms! di interazione.
Universiid della California a Santa Barbara: nerta Alexandria. Infomazioni suile
-
mappc otlenute lramite referenziazione spaziaie. Questo progetto sviiuppera servizi di biblioteca distribuiti per raccolte di informazioni geografiche indicizzate spazialmentc (si Veda i1 Paragrafo 14.4). Univem'rci di Carnegie Mellon: Bibiioreca Digitaie Video "Infonnedia". Usando bibliote-
-
the di video digitali, i1 progetto e focalizzato sulla n'ccrca e 1’ interrogazione basata sul contenuto.
Universira deii’l’liinois a Urbano: Champain: Archivi Federari di Lerreramra Scientifica. Questo progetto si propone di sviluppare con legge di scala una biblioteca digitalc affinché possa esscre utilizzata da migliaia di utenti e documenti. Universiti: dei Michigam: Agenri Intelligemi per la Localizzazione delle Infomazioni. Questo progeno venera suila tecnologia degii agenti, mettendo 1' accento suli‘utijizzo di agenti d'interfaccia utente, agenti di mediazione per coordinare le ricerche c agenti per la costituzionc delle raccolte. Universird di Sranford: Meccanismi dI' Intemperabilira Ira Servizi Ereragenei. Questo progetto sviluppera 1e tecnologie necessarie per una biblioteca digitale integrate, che fornisca un accesso uniforms a nuovi servizi usando rac'colte di informazioni disponibili in rete.
.
°
Appendice A
Notazioni diagrammatiche alternative
In Figure A.1 sono illustrate aleune notazioni diagrammatiche usate per rappresentare 1‘. conEli basi cetti del modello ER e EER. Purimppo non esiste una noiazione standard: i progettisii
(computer-aided di dafi preferiscono notazioni diverse. Analogamente, vari strumenti CASE
software engineering) e metodologie 00A (object-oriented analysis: analisi orientata a ogget—
14.6.2
Bibliografia selezionata per la biblioteche digitali
Il numero speciale della rivista Communications of the ACM dell’aprile 1995 e interameme
dedicate ails biblioteche digitali. In quella sede Mederhold (i995) discute il mole delle bi-
blioteche digitali nell‘aumento delia produttivita umana nel trovare nuova eonoscenza. I1 numero deli’apriie 1998 di Communications afrhe ACM é dedicate ad ampliarc lo scopo c a fornire un accesso illimitato alle biblioteche digitali. Schatz (1995, 1997) offre un’eeceilente irat—
tazione sul recupero delle informazioni, sulla ricerca e sull‘analisi e di come esse sono effet-
tuate in Internet. Le universita che partecipano all‘Iuiziativa delle Biblioteche Digitali posse-
no essere raggiunte ai seguenti URL: -
Iniziativa delle Biblioteche Digitali: dli.graingeruiucedufnationaihtm
'
Universita di Berkeley: elib.es.berkeley.edu
'
Universita di Santa Barbara: alexandriasdeucsbedu Universita Carnegie-Mellon: www.informedia.cs.cmu.edu Universita dell’Illinois a Urbana Champaign: dli.grainger.oiuc.eduldefauit.htm Universita dei Michigan: www.5i.umich.edu.-'LMDL Universita di Stanford: walrus.stanford.eduidiglib
' '
_...:
e vinti) usano notazioni differenti. Alcune sono associate a modelli che presentano concetfi
coli aggiuntivi oltre a quelli dei modelli EH e EER descritri nei Capitoli 3 e 4. mentre altri modelli hanno meno concetti e vincoli. La notazione utilizzata nel Capitolo 3 e abbastanza vicina 3113 notazione originale dei diagrammi ER, che é ancora ampiamente usata. Qui discuteremo alcune uotazioni altemative. di 1n Figura A. l (a) sono presentate diverse notazioni per la rappresentazione grafica di tipi figura in che simboli i usati stati 50:10 4 c 3 Capitoli Nei i. cnfitalclassi, attributi e associazion
di ensono indicati con (i), ossia rettangoli, ovali e rombi. Si noti che il simbolo (ii) per i Lipi
titaiclassi, ii simbolo (ii) per gli attributi e il simbolo (ii) per le associazioni sono tra loro simili. ma sono usati da metodologie diverse per rapprescntare Lre concetti diversi. ll sirnboiodi iinea retta (iii) per rappresentate associazioni e usato da pin) strumenti e melodologie. In Figure A.1{b) sono presentate alcune notazioni mate per collegare atm'buti a lipi di en— ma. Qui é stata usata la notazione (5.). La notazione (ii) 1153 la terza notazione (i) (ii Figura A.1(a) per gli attributi. Le ultime due notazioni di Figura A.1(b) — (iii) e (iv) — sono frequentemente usate nelle metodologie DOA e in qualche strumemo CASE. In particulare. l’ultima notazione rappresenta sia gli atuibuti siai metodi di una classe, separati da una iinea oriz~
zontale. iii Figura Alto) sono mosu'ate varie notazioni per rappresentare ii rapporto di cardinalita {ii associazioni binarie. Nei Capitoli 3 e 4 e stata usata la notazione (i). La notazione (ii) .— nota come notazione a zampa di gaiiina — é abbastanza populate. La notazione (iv) Ilsa la freccia come riferimento funzionale {dal lato N al law 1} e assomiglia alla notazione qui usata per la 9hiavi eszerne nel modello relazionale (Figure 1?); la notazione (v) — impiegata nei dia—
.-
' :-
.
‘15:
2-19
_Is
x
l_
_ .
-=-
ItHt0
Appendice B
Parametri dei dischi
Il pit: imponante parametro di disco 5 i1 tempo richiesto per localizzare un arbitrario blocco di disco, dato il suo indjn'zzo. e quindi per trasferire ii blocco tra i1 disco e on buffer in me— moria centraJe. Questo e il tempo di eocesso casuale (random access time) per accedere a un blocco di disco. Le componenti temporali da considerate sono tre.
1. Tempo di posizionamento (seek time: 5}. Per dischi a testina mobfie e il tempo necessario per posizionare meccanicamente 1a testina di letturafscrittura sulla traccia corretta (per dischi a testina fissa, e il tempo necessario per commutare elettronicamente all’appropriata testina di letturalscrittura}. Per dischi a testina mobile questo tempo varia. dipendendo dalla distanza esistente fra la traccia 3.1 momenta sottostante la testina di ietturafsctittura e la traccia specifi— cata neli’indirizzo di blocco. Di soiito i1 cosu'uttore di dischi fomisce un tempo di posizionamento medic in millisecondi. La tipica gamma di valori per il tempo di posizionamento inedio va da 10 a 60 msec. [l tempo di posizionamento e il principale “colpevole” del Iitardo che si presenta nel trasferimento di blocchi Ira disco e memoria.
2. Ritardo di rotazione (rotational delay: rd). Una volta che la testina di letturafscrittura si trova suIla traccia convetta1 l’utente dove attendere che l’inizio del blocco rictliesto moti fino
311a posizione Che sta sotto la testina di lethiralscrittum. Cio richjede in media i1 tempo neceSSan'o a efi‘etmzme un mezzo giro di disco, ma in realta va dall‘aocesso immediato (so subi-
to dopo ii posizionamento l‘inizio del blccco richiesto é nella posizione sottostante la testina di letturafscrittuxa) fino a un giro completo di disco (so dopo i1 posizionamento l‘inizio del blocco richiesto ha append superato la testina di lettumisctittura). Se la velocith di Iotazione del disco e di 9 giri a1 minuto (rpm: revolutions per minute), allora i1 ritardo di rotazione medio rd e dato da rd = (If2)*[llp) min = (60$1000)_!(2*p) meet; W5
n...” ._ -L..—— mq;-i;n....c-__fi_9..- __'...m_ M
.-
.-_
”.3.
2.:3
’
,9
.9...
.9. .
_
9...
HF
»-. _»-
474
w_.“ __
Parametri dei dischi
Appendica B
rd = 3msec. Fer Un valore tipico per p e di 10000 rpm, cbe da un ritardo di rotazione di component: quests ile, trascurab e mento posiziona di tempo i1 quali nei fissa. testis-m dischi a disco. di biocco on di nto causa ii maggior ritardo nel o'asferime
volta che 1a testina di 3. Tempo di trasferlmento di blocco (block transfer time: btt}. Una on certo tempo per traletturafscrittura si e portata all‘inizio del blocco desiderato, e richiesto blocco dipende dalla disferixe i dati presenti nel blocco. Questo tempo oi trasferimcnto di . Se il tasso di tramensione del blocco. da quella della traCcia e dalia velocite di totazione
dimensione del blocco e di B sferimento (transfer rate) del disco e pad a II bytefmsec, e la byte, allora
btt = Bitr msec
1pm, i1 tasso di tra— Se 1a dimensione della traccia é pari a 50 Kbyte e p e uguale a 3600 sfeiimento in bytefmsec e
tr = [50*1000)f(60*1000!3600) = 3000 bytelmsecl byte. In questo caso. btt = 833000 msec. dove B e la dimensione del blocco in
1] tempo medio necessario per trovare e oasferire un blocco, date it 5110 indirizz
. e stimato in
(s + rd + btt) msec per ridurCi?) vale sia per la iettura che per la scrittuxa di un blocco. II 1:18m principaie defio stesre questo tempo consists nel trasferire pit blocchi memorizzati st: one o pit tracce il ptimo blocco. so ciiindro: in questo modo il tempo di posizionamento e richiesto solo per 51 ha. apctlindra. stesso nello presenfi Per trasferixe consecutivamente k blocchi nan contigui, di bisogno prossimativamente
5 + (k 1: (rd + btt)) msec
che si statmo con~ In questo caso sono necessari due 0 pit) buffer in memoria centraic. dato tempo di trasfeI! 4.3. o Paragraf nel visto come blocchi, tinuamente leggendo o scrivendo ik btccchi consecutivi defla u'asferiti vengono quando pifi di anche riduce si blocco di timento i blocchi ozone il prime. stessa traccia o cilindro. Cio elimina i1 ritardo di mtazione per tutti diventa tivi consecu blocchi it trasferire per stimato tempo i} e cosi s + rd + (k. * btt) msec
done some dello spazio tra Una stima pin accurata del trasferimeoto di bloochi consecutivi che consentono alla te— ioni informaz 1e condone che 5.2.1), agmfo Sottopar i1 Veda biocchi {5i
’
(Matt) Nei calcoli si e suppOsto, per semplicite. 1 Khyte = 1000 byte.
475
stina di letturalscfittura di detenninsre quale blocco sta per leggere. Di solito i1 costmttore di dischi fomisce 1m tasso di trasferimettto di una 'mole di dati (bulk transfer rate: btr) che none conto delta dimensione deflo spazio tta blocchi quando si leggono blocchi memorizzati consecutivamente. Se la dimensione dello spazio tra blocchi e di G byte, allora
btr = (BIOS + (3)) at tr bytefmsec I1 tasso di trasferimento di una mole di dati e il tasso di u‘asferimento di byte urfli presenti nei bloocbi di dati. Quando i1 disco roots. la testina di letturs/scrittura dove psssare sopra
tutti i byte presenti in una traccia, compresi i byte dcllo spazio Ira bloocbi, che contengono infomazioni di controlio ma non dati effettivi. Quando si 1153. i1 lasso di trasferimento di una mole di dati, il tempo necessario per trasferire i dati utili di un biocco posto fra molti blocchi consecutivi e Blbtr. Percio il tempo stimato per leggere it 1310c memorizzati consecutivameme sullo stesso cilindro diventa S+rd+(k*(B/btr))msec
Un altro parameoo di disco e il tempo di riscrittura (rewrite tlme). Esso si rivela utiie quando si leggc on blocco da disco, lo si trasferisce in on buffer in memoria centrale, si modifies i1 contenuto del buffer, e quindi si riscrive il contenuto do! buffer nello stesso blocco di disco in cui era iniziaimente memorizzato. In mold casi i1 tempo ricbiesto per modificare i1 buffer in memoria commie e inferiore al tempo ricbiesto per una rotazione compieta del disco. Sc sappiamo che i1 buffer e pronto per is riscrittura, i1 sistema pub tenere 1e testine di disco sulla stesso craccia, e durante la successiva rotazione del disco i] contenuto modificato del buf-
fer viene riscritto nel blocco di disco. Percio si stima cite i1 tempo di riscrittura Tn, sia i1 tempo necessario per una rotazione complete del disco:
Tm=2=erdmsec In sintesi. si fomisce qui di seguito 1m elenco dci parametri esaminati e dei relativi simboli usati: tempo di posizionameoto: s msec ritatdo di rotazione: rd msec tempo di oasferimento di blocco: btt msec tempo di riscrittora: T,w msec tasso di trasfenimento: t: bytelmsec tasso di oasfefimento di una mole di dati: btr bytefmsec dimensione di blocco: B byte dimensione dello spazio tra blocchi: G byte
4 78
Bibliografla
Bibliografia
Association Rules [Agrawal e altri 199331 R. Agrawal, T. Imielinski e A. Swami, “Mining Between Sets of Items in Databases", in {SIGMOD 1993]. Mining: A Perfor[Agrnwa] e altri 19931:] R. Agrawal. T. Imielinski e A. Swami, "Database mance Perspective". IEEE TKDE. Volume 5. Number 6 (Agosto 1993). s for Mining Association [Agrnwal e Srikant 1994] R. Agrawal e R. Srikant. “Fast Algoritlnn Rules in Large Databases". in [VLDB 1994]. "The Quest Data Mining [Agrawal e altri 1996] R. Agrawal. M. Mehta, I. Shafer e R. Srlkant, System". in {KDD 1996]. of Joins in Relational Databa[Aho e altrl 1919] A. Aho, C. Beeri c J. Ullman. "The Theory 1979). (Settembre 3 Number 4. ses". TODS. Volume
de Web: The Information Universe". Electronic Nenvorh'ng: Research. Applications and Policy.
Volume 1, Number 2 (1992). [Berners-Lee e altrl 1994] T. Banners-lee, R. Cafllian. A. Lautonen. H. Nielsen e A. Secret, “The World Wilde We ", CACM, Volume 13. Number 2 (Agosto 1994).
[Bernstein 1976] P. Bernstein. “Synthesizing Third Normal Form Relations from Functional Dependencies”. TODS. Volume 1, Number 4 (Dicembre 1976).
{Bettina e altri 1998] F. Bertino. Rabbitti e S. Gibbs. "Query Processing in a Multimedia Environment“. T013. Number 6 (1998). [Bischofi' eAlexander 1997] J. Bischoff e T. Alexander. a cure di. Data Warehouse: Practical
Advice fiom the Experts, Prentice-Hall (1997).
and Versatile Method for Asso[Amir e altri 1997] A. Amir, R. Feldman e R. Kashj. “A New 1997). (Settembre 6 Number 22. Volume Systems. n Infomott‘o n“. Generatio ciation
{Biskup e altri 1979] J. Biskup. U. Dayal e P. Bernstein, "Synthesizing Independent Database Schemas". in [SIGMOD 1979].
deBruijn. A. Coulson. J. {Anderson e altri 1981] S. Anderson. A. Bankier. B. Harrell. M. Smith, R. Staden e 1. Young, “SeDrouin, I. Eperon. D. Nierlich, B. Rose. F. Sanger, P. Sohreier, A.
[Blakeley e altri 1989] J. Blakeley. N. Cobum e P. Larson. “Updated Derived Relations: Detectmg irrelevant and Autonomousl}r Computable Updates". TODS, Volume 14. Number 3 (Settembre 1989).
290, pagg. 457quence and Organization of the Human Mitochondrial Genome". Nature. Number 465 (1981). on Data Base Management [ANSI 1915] American National Standards Institute Study Group
Systems, Interim Report. FDT. Volume 7. Number 2. ACM (1975).
Language SQL". Docu{ANSI 1986] American National Standards Institute, “The Database
ment ANSI X3.135 (1936). hips”. Pro— [Armstrong 1974} W. Armstrong. “Dependency Structures of Data Base Relations ceedings of the IFIP Congress (1974).
Database Theory, Benja[Atzeni e De Antonellis 1993] P. Atzeni e V. De Antonellis, Relational miniCumnungs (1993).
{VLDB 1997]. [Atteni e altri 1997] P. Atzeni, G. Mecca e P. Merialdo. "To Weave the Web”. in nce of Bl-trees with [Been-Yates e Larson 1989] R. Becca—Yates e P. A. Larson. “Performa 1989). (Giugno 2 Partial Expansions". TKDE. Volume 1. Number
ce of Lar[Bayer e McCreIght 1972] R. Bayer e E. MoCreight. E, "Organization and Maintenan 1972). (Febbraio 3 Number 1. Volume . Itgfonnatica ge Ordered Indexes“. Acre
Acids [Benson e altri 1996] D. Benson. M. Boguslci. D. Lipman e I. Ostell. “GenBank”. Nucleic Research. Volume 24. Number 1 (1996).
(1989). [Berg e Roth 1989} B. Berg e J. Roth, Sewer-afar Optical Disk, Meckler
_. t... -a_._;‘.,_._. l...... ,_o.._-.r-_ . J
[Beach e altri 1999] G. Bench. 3. Rumbaugh e I. Jacobson. Unified Modeling Language User
Guide, Addison-Wesley (1999). [Boyce e altri 1975] R. Boyce. D. Chamberlin. W. King e M. Hammer, “Specifying Queries as Relauonal Expressions". CHCM. Volume 18. Number 11 (Novembre 1975).
[Breechi e altri 1976] G. Bracchi, P. Paoiini e G. Pelagani. "Binary Logical Associations in Da— ta Modelling", in [Nijssen 1976].
[Burkhard 1976] W. Burkbard, "Hashing and The Algorithms for Partial Match Retrieval". TODS, Volume 1.Number2 (Giugno 1976), pagg. 175-187. [Burkhard 1979} W. Burkhard. ‘Tanial—match Hash Coding: Benefits of Redunancy“. TODS, Volume 4. Number 2 (Giugno 1979). pagg. 228-239. [Cannnarata e altri 19893 S. Cammarata, P. Ramachandra e D. Shane, ‘Extending a Relatio-
nal Database with Deferred Referential Integrity Checking and Intelligent Joins“. in [SIGMOD 1989]. [Campbell e altri 1985] D. Campbell. D. Embley e B. Czejdo. “A Relationallg.r Complete Query
Language for the Entity-Relationship Model". in [ER Conference 1985}.
{Carlls 1986} J. Carlis. "HAS, :1 Relational Algebra Operator or Divide Is Not Enough to Conquer", in [ICDE 1986]. [Cattei 1997] R. Catteli., a cure di, The Object Database Standard: ODMG. Release 2.0. Mor-
, “World-Wi[Beaters-Lee e altri 1992111 Beaters-Lee. R. Cajllian, .l. Grooff e B. Pollermann 1...._.__..._
479
-
,
gan Kaufmann (1997).
.g
mm;
t.
I.
.
1'.
.
him;
480
Blbllografla
Blbliografia
"A Dynamic Hash Method with Signature", [Cesarini e Soda 1991] F. Cesarini e G. Soda. TODS, Volume 16. Number 2 (Giugno 1991).
R. Boyce, “SEQUEL: A Structured English [Chamber-lit: e Boyce 1974] D. Chamberlin e
Query Language". in [SIGMOD 1974].
“SEQUEL 2: A Unified Approach to Data De[Chamberlin e altr‘l 1976] D. Chamberlin e altti. l of Research and Development. Volume 20. Journa IBM l", Contro and lation, Manipu . finition Number 6 (Novembre 1976).
“Extensible Buffer Management of Indexes“. in [Chan e altri 1992] C. Chan. 13. Ooi e H. Lu.
[VLDB 1992].
481
sfliaggnZb] E. Codd. “Further Normalization of the Data Base Relational Model". in [Ru-
[Codd 1974] E. Codd, “Recent Investigations in Relational Database Systems". Proceedings of the IFIP Congress (1914). [Codd 1979] E. Codd. “Extending the Database Relational Model to Capture More Meaning".
TODS. Volume 4. Number4 (Dicembre 1979). [Code] 1985] E. Codd, "Is Your DBMS Really Relational?" e “Does Your DBMS Run By the Rules?". COMPUTER WORLD, (14 e 21 Ottobre 1985). sley (193%)?“ 1999] E. Codd. Rotational Model for Data Management-Version 2. Addison-We
Dayal. "An Overview of Data Warehousing and [Chaudhurl e Days! 1997] S. Chaudhuri e U. Number. 1 (Marzo 1997). 26. Volume Record. OLAP Technology”. SIGMOD
oward a Unified View of Data", TODS. [Chen 1976] P. Chen. “The Entity Relationship Mode-T Volume 1, Number 1 (Marzo 1976).
izing Performance in a Striped Disk [Chen e Patterson 1990] P. Chen e D. Patterson. “Maxim New York (1990).
t’tecture. IEEE. Array“. Proceedings of Symposium on ComputerArch
[Codd e altr'l 1993] E. F. Codd. S. B. Codd. e C. '1‘. SalJey. “Providing OLAP (On—Line Analytical
Processmg) to User Analyst: An IT Mandate“, httpzllwwwarborsoftcornlOLARhn-nl (1993).
[Corner 1979] D. Comer. “The Ubiquitous B-tree“, ACM Computing Surveys. Volume 11. Num— ber 2 (Giugno 1979).
[Cutieehia e altri 1993] A. Culicchia. K. Fasman, D. Kingsbury. R. Robbins e P. Pearson. ‘The
Katz e D. Patterson. "RAID High Perfor[Chen e altri 1994] P. Chen. E. Lee, G. Gibson. R. 26, Number 2 (1994).
13 Eggsfluman Genome Database Anna 1993”. Nucleic Acids Research. Volume 21. Number
W. Fu eA. Y. Fu. "A Fast and Distributed [Cheung e altri 1996] D. Cheung. J. Han. V. Ng, A. dings of International Conference on Parallel Procee . Rules“ ation Associ Mining for hm Algorit
[Date 1983] C. Date. "The Outer Join". Proceedings oftlte Second International Conference on Databases HOOD-2) (1983).
ting Surveys. Volume mance. Reliable Secondary Storage", ACM Compu
and Distributed Irg’orrnotion Systems. PDIS (1996).
[Date 1984] “A Critique of the SQL Database Language. ACM SIGMOD Record. Volume 14,
re Theoretical Data Structure - A General Structu [Childs 1968] D. Childs. "Feasibility of a Set Congress (1968).
dings ofthe IFIP Based on a Reconstituted Definition of Relation". Procee
e A. Datta. “An Adaptive Lacation Ma[Chlntalapati e altri 1997] R. Chintalapati. V. Kumar on Local
dings of 22nd Annual Conference nagement Algorithm for Mobile Computing“. Procee Computer Nemarks {LCN '97J. Minneapolis (1997).
ues, Wiley (1983). [Chlaybmok 1933] B. Claybrook, File Management Techniq [Codd 1970] E. Codd. “A Relational Model for Number 6 (Giugno 1970).
Large Shared Data Banks". CACM. Volume 13,
Founded on the Relational Calculus". Pro[Codd 1971] E. Codd. “A Data Base Sublang'uage Description, Access, and Control (Novembre Data on op Worksh ET SlGFID ACM the of s ceeding
19':r 1).
Base Suhlanguages", in [Rustin [Codd 1972a] E. Codd. “Relational Completeness of Data 1972].
Number 3 (Novembre 1984).
'
[Date 1995] C. Date, An Introduction Database Systems. VI ed.. Addis::tn—_‘it'\"esle3«r (1995).
[Date 9. Darwen 1993] C. J. Date, H. Damon. A Guide to the SQL Standard, DI ed., Addison-
Wesley (1993). [Dayal e Bernstein 1978] U. Dayal e P. Eematein, “On the Updatability of Relational Views", VLDB (19TH).
[DBGT 1971] DBGT, Report oftlte endow! Data Base Task Group. ACM (Aprile 1971).
[Dhawan 1997] C. Dhawan. Mobile Contouring, McGrnw-Hifl (1997).
[Dlpert e Levy 1993] B. Dipert e M. levy, Designing with Flash Memory, Annabooks (1993).
[Began 1993] A. Dogac, “Special Section on Elecuonic Commerce". ACM Sigmod Record. Volume 27, Number 4 {Dicernbre 1998).
486
Bibliografla
Bibllografia
t Bl—Ti‘ecs". in [SIGMOD 1991]. [Lenka e Mays 1991] S. Lenka e E. Mays. 2Fully Persisten
[Larson 1978} R Larson. “Dynamic Hashing". BIT. Number 18 (1978). Overflow Chaining". TODS. [Larson 1981] P. Larson. “Analysis of Index—Sequential Files with 1981). [Dicembre 4 Volume 6. Number
on. Fundamentals of Spatial Information [Laurini e Thompson 1992] R. Laurini e D. Thomps Systems. Academic Press (1992).
for Concmrent Operations on B[Lehman e You 1981] P. Lehman e S. Yuo. “Efficient Looking
487
[Matti-ion 1996] R. Mattison. Data Warehousing: Strategies. fichttoiogies. ana‘ Ibchniqttes.
McGruw—Hill (1996). [Melton e Simon 1993] J. Melton eA. R. Simon. Understanding the New SQL: A Complete Guide, Morgan Kaufmann (1993).
[Mendea e altrl 1997] A. Mendelzon. G. Mihaila e T. Milo. “Querying the World Wide Web". Journal ot'gital‘ Libraries. Volume 1. Number 1 (Aprile 1997).
[Miller 1987] N. Miller. File Structures Using PASCAL. Benjamin Cummings (1987). [Mohair e Narang 1992] C. Mohan e I. Narang, “Algorithms for Creating Indexes for Veryr Lar-
Trees". TODS. Volume 6. Number 4 (Dicembue 1981).
ge Thbiw without Quiescing Updates". in [SIGMOD 1992].
i. “Cardinality Constraints in the Entity [Lenuerini e Santucci 1983] M. Lenzerini e C. Santucc . 1983] e Conferenc Relationship Motlei“, in [ER
1968).
Hara, “Hierarchical Image Modeling [Li e altri 1998] W. Li. K Seluk Candau. K. Hiram e Y. 2 (Settembre 1998). pagg. 139—176. Number 27. Volume DKE. ". Retrieval for Object-based Media
[Navathe e Schkolnich 1978] S. Navathe e M. Schlcoluick, “View Representation in Logical Database Design". in [SIGMOD 1978].
on Rules". in [ICDE 1998]. [Lin 2 Dunham 1998] J. Lin c M. H. Dunham. “Mining Associati
ng with Neural Nets", lEEE ASS? [Lippman 1987] R. Lippman. “An Introduction to Computi Magazine (Aprile 1987).
File and Table Addressing". in [Litwin 1980] W. Litwin. “Linear Hashing: A New Tool for
[VLDB 1980]. Hall {1989}. [Livadas 1989] P. Livadas, File Structures: Theory and Practice. Prentice— a cum di. Geographical Infor[Banguire e nltri 1997] D. Maguire. M. Goodchild e D. Rhind. Scientific and Technical. New mation Systems: Principles and Applications. voll. l e 2. Longmau
York (1997). M. Ammar e S. Malik. [Mohnjan e altri 1998] S. Mahajan, M. 1. Donahoo. S. B. Navathe.
d Databases , [CBS "Grouping Techniques for Update Propagation in Intermittently Connecte (1998).
r Science Press (1983]. [Meier 1983] D. Meier, The Theory of Relational Databases. Compute Algorithms for Di[Mannila e altri 1994] H. Mannila. l-l. Toivonen e A. Verkamo. “Efficient e Discovery tn Databases, scovering Association Rules". RUDD-94, AAA! Workshop on Knowledg
Seattle (1994). SIGMOD Record. Volume [Manolo 1998] F. Manolo. “Towards a Richer Web Object Model“.
27, Number 1 (Metro 1998). . Role OrienMarkowitz e Ran 1983] V. Markowitz e Y. Raz. "ERROL: An Entity-Relationship ted. Ouenr Language". in {ER Conference 1983].
[Morris 1968] R. Morris. "Scatter Storage Techniques". CACM. Volume] 1. Number 1 (Germain
[Negri e altri 1991] M. Negri, S. Pelagatti e L. Sbatella. “Formal Semantics of SQL Queries". TODS, Volume 16. Number 3 (Settembre 1991).
[Ng 1981] P. Ng, “Further Anaiysis of the Entity-Relationship Approach to Database Design“. TSE. Voiume 7. Number 1 (Gennaio 1981). [Nievergelt 1974} J. Nievcrgelt. “Binary Search Trees and File Organization". ACM Comparing Surveys. Volume 6. Number 3 (Settembre 1974).
[Nievergelt e altri 1984] J. Nievergelt. H. Hinterberger e K. Seveik, “The Grid File: An Adaptable Syrrunetric Mullikey File Suucture“. TODS, Volume 9. Number 1 (Marzo 1984). pagg. 38— 71.
[Nijssen 1976] G. Nijssen, a cure. di. Modelling in Data Base Management Systems. North-Hol-
land (1976). [Nwoeu e nltri 1996] K Nwosu, P. Berra e B. Thuraisingham. a cure. di, Design and Implementation aat‘timedia Database Management Syrtemr, Kluwer Academic (1996).
[Olle e altri 1982} T. Oile. H. Sol e A. Venijn~Smait a cure di. Ity’onnation System Design Methodology. North-Holland (1982).
[Oracle 1997a} Oracle. Oracle 8 Server Conceptr, voll. 1 e 2. Release 8-0. Oracle Corporation (1997).
[Oracle 1997b] Oracle. Oracle 3 Server Distributed Database System. Release 8.1] (1997).
[Oracle 1997c] Oracle. PUSQL User’s Guide and Reference. Release 8.0 (1997).
"——-—-
488
-——