You are on page 1of 260

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.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
1.4 Glj attori in scena
1.4.1 Amministratofi
1.4.2 Progenisti
1.4.3 Utenu' finafi
1.4.4 Analisti di sistema e programmatori di applicazioni (ingegneri del
software) 12
1.5 I lavoratori dietro 1e quinte
1.6 Vantaggi dell‘uso di un DBMS 13
1.6.1 Coqtmllo defla ridondanza 13
1.6.2 Divieto all’accesso non autorizzato 14
1.6.3 Memofizzazione persistente di oggetti e strutture di dati 15
1.6.4 Definizione di regole di inferenza e regole Che usano azioni 15
Indies 1x
1-
V111 Indice

42:2q 61
.. 16 3-5 Réffmmeyto 516113 Prngfattagione ER per la base di dan' mi 62
1.5.5 Disponibilith d1 numerose interfaccc meme 16 . 3'7 131133111a ER,COI1V€n2.l F“ denominazione *3 Pl'Oblfl
di progettamme
{)2
1.6.6' Rappresentazione di associa zioni complessc fra dati _ 16 g - 3.7.1 RJemlogo d-efla notaz1one 11ei ding-131111111 ER
1.6.? 1:11 integrith
hnposizione di Vino011 '54
3.7.2 Denotmnauone propna de: costnltti 136110 schema
17 '
1.6.8 Fomitura d1 backup 5 recovery
17 3-7-3 5%“?p la progsmione concettuale ER 65
1.7 Impficaziorfi dell’approccio con basi di dati 18 E”. - 3.7.4 Notanom altemauve per i diagrammi ER
1.8 11011 users 1111 DBMS
Quando 66
19 Son-11:13:10 _ . . 57
Sommario 20 QUCSIIIEEIIanD d1 Vcnfica 68
Questionmio di verifica 20 E11619” ‘
Esercizi
73
21 : Blbhografia 561°30‘11““
Bibliografia selezionata 75
azioné, a oggetti
23 Capitolo 4 Modellazione Enflti-Associazione estesa e modell
Capitolo 2 Concgtti e ambit-13mm! di un sistema (1i basi di dati 75
24 '5 4.1 Sofiuclassi. supcrclassi ed creditarieté 78
2.1 Modelli di dau, schemi B lstanze 24 4.2 Specializzazione e generaljzzazione 81
nc
2.1.1 Catcgorie di modglli di dati 25 s 43 Vincoli e caratteristiche di specializzazione c generalizzazio
2.1.2 Schemi, istanze. e 5111t di una base di dat1 88
27 4.4 Modeuazione di tipi UNIONE arm-averse l‘uso d1 categorie
2-2 Architetmra di un DBMS 6_ Indfpcndenza del clan 27 4.5 Uno schema BER esempfificativo UNTVERSITA c definizioni formali per 92
2.2-1 L‘axchitetura :1 tr: 11116111 29 .3 i1 mods-.1110 ER
Indipendenza dei dati . 95
4.6 Usc dei diagrammi dell'e classi UML per la modellazione concettualc a oggetti
2.2.2
30 ii 98
2-3 Linguaggi e interface-e di 13351 5“ dati 3'3 :5 4.7 Tipi di associazione di grade maggiore di due
2-3-1 nuaggl d8} DBMS 4.8 Concetti di astrazione dci dati e Eli rappresentazione defla conoscenza 102
103
23-2 Interfaces del DBMS ‘ 32 43'1 cazione e istmziazione
Classifi
.. 33 : 104
2.4 L’ambiente di un sistema d1 basi (11 1:18.11 33 ;5 432 Idenfificazione
2.4.1 Moduli componenti un DBMS 104
35 _; 4.8.3 Speciafizzazione e generalizzazione
2-4-2 Programmi di utilith ‘11 “11 sistcma 11113351 di dati
comunicazione 36 ' 4.8.4 Aggregazione e associazione
105
107
2.4.3 Strumenti, ambienti applicativi e funzioni di 36 .' Samaria
2.5 Classificazione dei sistenfi di gestione di basi di dati 107
. 33 i Questionario d1 verifica ' 103
Sommario 39 '2 Esercizi
Questionario di verifies. 113
40 . Bibliografia selezionata
Esercizi 40
Bibliografia selczionata .
dei file 115
41 Capitolo 5 Memorizzazione dei record '3 organlzzazioni primarie 116
i dati
Capitolo 3 Use del modello EntithaAssociazione per modellare 5’1 mmdumne _ _
di modem
Use :11
3.1 basi di 11m concettuali di alto livcllo per la progettazione d1 42 . 5.1.1 Germ-121111:- d1 memoria e dispositivi di memorizzazione 116
dati 113
dati 44 531-2 ,MFmPnzzaflfime d1 basi fii dati 119
3.2 Un’applicazionc esemplificativa di basi ed1chiavi 45 5-2 DIS13051mm dl‘réfimuna secondana 119
3.3 Tipi (11 mm, insiemi d1 entith, attribu ti 5-2-1 13135011410118 dcll’hardware di dispusitifi a disco
46 .. 124
3.3.1 Entith e attributi 49 1 5-2-2 13159051111111 fii memofizzyionc a nastm magnetico
3.3.2 T1131 di em, insiem i di 111115113, chiav': e insicmi (11 1.411011 52 5.3 Renders 39.116101 accesso 31 1:113:16 amaverso l'uso della tecnolog
ia RAID 125
333 concettuale iniziale della base (Li dad AZIENDA
Progcttazione 126
53 53-1 M1glforamento dell‘affidabfl‘ita‘ 121
3.4 Associazioni, tipi di associazioni, 11101.1 e vincoli strutturali d1 associazione 53 5-3-2 Nbghéramfintq de111: pfestamm .
3.4.1 Tipi d1 associazioni. insiemi di associazioni e istam e 54 '1 5'3'3 _ Olga-11111226210111 1: 1-1c RAID
12.3
. .1230
3.4.2 Grade 111 un’associazione. nomi di mole e associazioni ricorsiv 5? 5 5-4 Bufienzzlanane ch b10cc111 131
3.4.3 Vincoli sui lipi d1 associzione 59 5.5 Collocamone su 1313430 (151 record di un file
Atlributi di tipi di associazione 131
3_4_4
59 is 5-5-1 Word e W 61' record
3.5 Tipi d1 entith 11.21391:
x Indice lndlce X:

7.1.2 Cmuerisfiche dell: rclazioni 202


5.5.2 File. record a lunghezza fissa e record a lunghczza variabile 132
7.13 N01371:“: do} modello relazionale 205
5.5.3 Ripartizione dei record in blocchi c confronto Ira record can spanning
:3 record senza spanning 134 ;§ 7.2 Vincoli relazionali e schemi di basi di dati rclazionali 206
f 7-2.] Vincoli sul domjnio 206
5.5.4 Ailocazione dei biocchi di on film: so disco 135
5.5.5 Header dei file 135 E 7.2.2 Vmoolj di chiave e vincoli sui valori nulli 206
5.6 Operazioni sui file 136 7.2.3 Basi di dati 1: schemi di basi di dati relazionall 293
138 ?- 7.2.4 Integn'ta dell’entitd, 1111633111 referenzialc e chjavi esterne 210
5.7 File di record non ordinati (file heap) 212
5.8 File di record ordinati {file sorted) 140 7.3 Operazioui di aggiomamento c gostionc dcllo violazioni dei vincoli
5.9 cnichc hash 143 7.3.1 L’operazione di inscrimento 213
143 E 7.3.2 L’operazione di cancellazione 214
5.9.1 Hash intemo
7.3.3 L’operazionc di modifica 215
5.9.2 Hash estcmo par file. so disco 146
7.4 Operazioni di base dell’algebra rclazionale 215
5.9.3 cm'che hash che 6011581110110 “H’CSPEESEODC dinamica dei file 143 I.
7.4.1 L’operazione di SELEZION'E 216
5.10 A1116 organizzazioni primarie dci file 152
5.10.1 Filo di record misti 152 . 7.4.2 L‘opcrazionc di PROIEZIONE 218
5.10.2 Albcri B c 3166 suuttm'e dad 153 ? 7.4.3 Sequcnze 61 operazioni e operazione di RIDENOWAZIONE 219
Sommario 153 7.4.4 Operazioni insiemistichc 221
154 i 7.4.5 L‘operazione di JOIN 225
Questionario di verifica
155 7.4.6 Un insiemc compieto di operazioni dell‘ algebra relazionale 228
Escrcizi
Bibliografia selezionata 153 7.4.7 L'opcrazione di DIVISIONE 229
= 7.5 Altre operazioni reiazionalj 231
Capitolo 6 Le strutture di indie: per 1 file 161 7.5.1 Funzioni aggregate e raggruppamento 231
162 75,2 Operazioni 31 chjusura marshy. 233
6.1 mi di indici ordinati a un solo livello
Indici primari 153 7.5.3 Operazioni di JOIN ESTERNO e di UNIONE ESTERNA .. 234
6.1.1
6.1.2 Indici di cluster 165 7.6 Esempi :13 interrogazioni in algebra relazionale 236
168 Sommario 238
6.1.3 1ndici secondari
171 Questionario di verifica 240
6.2 Indies multilivello 241
175 Escrcizj
6.3 lndici dinamici mulfiljvcllo implemcntati d3 2113611 B e albcri 13+
176 Bibliografia selezionata 247
6.3.1 Alberi di ricerca c alberi B
6.3.2 Alberi 13+ 181
6.4 mdice su chiavi multiple 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
6.4.1 Incline ordinate so pifi attributi
6.4.2 Hash partizionato 190 8.1.1 I concetti di schema e di catalogo 251
6.4.3 File a griglia 191 3.1.2 11 comando CREATE TABLE I: i vincoli di tipi di dati 252
6.5 Altri 1161 di indici 192 3.1.3 I comaudi DROP SCI-[EMA 6 DROP TABLE 256
192 3_1_4 ]] comando ALTER TABLE 257
6.5.1 Utiljzzo di hash e di altre stratum: di daft come indici ..
3.2 mtgflogazioni fondmentafi in SQL 253
6.5 .2 Confronto tra indici logici e indici fisici 192
6.5.3 Discussione 193 8.2.] La struttura SELECT-FROM-W'E—IBRE delle interrogazioni SQL 253
Sommario 194 8.2.2 La problematica dei nomi di attributi ambigui e la loro ridenominazione
194 (assegnando pseudonimi) 261
Questionario di verified
195 E 8.2.3 La clausola WHERE non specificata c l‘utjh'zzo dell’asterisco [*) 262
Escrcizi
Bibliografia selezionata 198 ,7 3.2.4 1:. 13135116 come msicmi in SQL 263
E 8.2.5 Confronti di sottosuinghe. oporaton' aritmetici e ordinamento 265
199 g 3.3 [ntm-Iogaziorfi SQL pit 30311313533 267
Capitolo 7 [l modello di dati, i vincoli e l’algebra relazionali
7.1 Concetti dcl modello relazionalc 200 E. 8.3.] luterrogazioni nidificate e confronti di insiemi 267
200 E 8.3.2 Funzioni EXISTS e UN'IQ 270
7.1.1 Domini, ato'ibuti, tuplc e relazioni
I -. -‘.7 . -7 — ,— ’— '— — fi - = - " ‘- . .2- 1:33 »' _ r . l' I
——_————-—*__——_—

lndice x111
x11 lndice

10.2.4 Insiemi minimali di dipcndenze fimzionali _ 326


8.3.3 11151131111 cspliciti e NULLS 273
327
274 10.3 Forms normali basate su chiavi 1111111311:
8.3.4 Ridcnominazione 11c1 attributi e tabcllc collegate can i join 328
2'16 10.3.1 Introduzionc 1111a nomafizzazioae
8.3 .5 Funizoni di aggregazione e. raggruppamento. 329
281 ' 10.3.2 Prima forma normals
8.3.6 Discussione e riepilogo dell: interrogazioni SQL 333
232 -. _' ' 10.3.3 Seconda forma non-naie
3.4 L1: istruzioni Insert. Delete e Update in SQL 334
11 comando 111513111" 232 g 10.3.4 Tel-2a forma normals
3.4.1 335
284 1 10.4 Definizioni generali di seconda c terza fol-ma normale
8.4.2 11 comando DELETE 337
284 ' 10.4.1 Definizione generalc d1 scconda forma normals
8.4.3 11 comando UPDATE 337
285 10.4.2 Dcfmizionc generals di term forma normals
8.5 Vista (tabelle 1111111311) in SQL 338
235 10.4.3 [merpretazinnc dclla dcfinizione generalc di 3NF
8.5.1 11 concetto di vista 338
286 5' " 10.5 Forma normaie di Boyce e Codd
8.5.2 Specificazionc delle 111311: 341
287 3? _ Sommaxio
8.5.3 Implementazione e aggiumamcnto dell: vista 342
289 f. Questionario di verifica
8.6 Specificazione di vincoli generali come asserzioni Esercizi
342
290 i; ' .
8.7 Ulteriori funzioni di SQL 345
291 Bibliografia seiezionata
Sommario
292
Questionario di verifica 347
293 Capitolo 11 Algofitrni per la progettazione di basi di dati relazionali .....
Esercizi ..... 348
295 11. 1 Algorinni per ia progettazione di schemi cli basi di dad mlazionali...
Bibliografia sciezionata 348
11.1.1 Decomposizionc dclle relazioni c insufficienza dclle forme normali
11.1.2 Decomposizionc e conservazione dclle dipendenze..- 349
Capitolo 9 Traduzione da schemi ER e EER a schemi relazionali- 29?
11.1.3 Decomposizione e join senza pcrdita (non-additivi) 351
9 1 Progeltazione di basi di dati rclazionali attraverso la traduzione da ER"-:1 357
298 11.1.4 Probiemi con vaiori 11111.11 2 tuplc dangling
rclazionale . 359
298 11.1.5 Analisi degli algoritmi di normalizzazione
9.1.1 Algoritmo di traduzione da ER a relazicnale... 360
. 302 Sommario
9.1.2 Sommario della n-aduzionc per costrutti e vincoii dei modcllo ER .. 360
303 Questionaxio di verifica
9.2 Traduzione dei concetti del modello BER 1n relazioni. 360
Esercizi
9.2.1 Associazioni superclassefsottoclasse e specializzazionc 361
303 3 Bibliografia selezionata
(o generalizzazione)
306 1'.
9.2.2 Traduzione delle sottoclassi condivise
306 Q: Capitolo 12 Esempi di sistemi di gestione d1 basi (11 flat! relazionall:
9.2.3 Traduzione d1 categorie
Oracle e Microsoft Acces 363
Sommario 307 364
308 12.1 Sistemi 111 gcsfione di basi di dati rclazionali: una prospettiva storica
Questionario di verifica 365
308 12.2 Struttura base del sistema Oracle
Esercizi
31 12.2.1 Struttnra deua base :11 dati 365
12.2.2 Processi 367
Capitolo 10 Dipendenze funzlonali e normalizzazione per basi di liati 368
309 1 12.2.3 Awio
relazionali 369
311 .1 12.3 Slruttura dclla base di dati e sua mauipolazionc in Oracle
10.1 Linc: guida informali di progettazione di schcmi di rclazionc .. ' 369
.. 311 i 12.3.] Oggetti dello schema
10.1. 1 Semantica dcgli attributi di una rclazione 371
314 12.3.2 Diziunafio 1:11 0311 di Grade
10.1.2 Infomazioni ridondanti 11c tuple c anon-1111i: di aggiomamento 12.3.3 SQL in Oracle
3'12
316 = -
10.1.3 Valori 1111111 nelle tuple 12.3.4 Mctodi di Oracle 373
317 3
10.1.4 Generazione d1 tuplc spuric 12.3.5 Trigger
373 _ _ .
320 g
10.1.5 Sommario ed csame delle liners guida di pmgettazione 374” , _:' I
320 3 12.4 Organizzazicnc dclla memoria in Oracle
10.2 Dipendenze fimzionajj 375 ' '-
320 i. 12.4.1 Blomhi di datj
10.2. i Dcfiniziune di dipendcnza funzionale.. 12.4.2 Bstensioni 37-6
10.2.2 colc di infcrcnza per dipcndenze funmonah 323 376
326 12.4.3 Segmenu' _
10.2.3 Equivalenza di insiemi d'i dipcndenzc funzionali
Indice XV
XIV lndloe

37? 14-2 Basi di d3“ multirnedi-ali _ _ _ ’ ‘ _


12.5 La programmazione delle applicazioni Oracle
373 14.2.1 Nature dei dam edeile aophcazmm mulumedlah
12.5.1 Programmazione in PUSQL
12.5 .2 Cursori in PUSQL 330 14-2-2 Problem d} 3mm datfi
332 14 2. 3 Problem d1 ncerca aperti
1253 Un esempio in pR0*C .
335 14 2. 4 Applicazione delie basi di dati multimediali-
125 Strumenti di sviluppo di Oracle
12.7 Una visione d‘insieme di Microsoft Access 386 14 2 5 Bibliografia 531°30‘13“ 13"I 1"- baSi di dafi mulumedrah
12 7.1 Architettura di Access 386 14-3 3351 C“ M 11011111 _ ,
12.7.2 Definizione dei dati delle basi di daIi diAccess. . 387 14'3'1 Wyatt"? d1 “31°“? “3"“? ..
388 14'3-2 “I" d‘ daddelleapplicazmrii mob111
12 7.3 Definizione delle relazioni e dei vincoli di integrita referenziaie _ _
391 14'3'3 1310131161111 ‘1} 335110.“? de1 d?“
12.7.4 Manipulazione dei dati'1n Access 393 14.3.4 Basidi datl mfl-l smcromzzate a_m1:erm_1ttenza’..........
123 Caratteristiche e funzionalita :11 Access ..
1231 Le maschere 393 14.3.5 131b110grafia selemonata per le ba51 d1 clan mflblh
123.2 I report 394 14.4 S1stemi informed“ geografic:

12.8.3 Le macro 6 Access Basic 395 14-4-1 APPlfcjaémfu GIS _ _ .


12.3.4 A111: caratleristiche 396 14-4-2 Regina“ d} 365150113 dei flan $161 613
397 14.4.3 Operamoni spec1fichede1 dau GIS
Sommario .
Bibliografia selezionata 397 14.4.4 Un esentpm d1 GIIS:_ARCIIN'FO_
14.4.5 Problemi e quesnom future relative ai GIS
14.4.6 Bibliografia selezionata per 1 GIS
399 145 La gesfione dei dafi genetici
Capitolo 13 Analisi multidimensionale dei dati e data mining
399 1451 Le scienze biologiche e la genetica
13.1 Analisi multidimensionale dei dati
13-1-1 Terminologia e definizioni 400 14.5.2 Le caratteristiche dei dati biologici
401 14.5.3 11 progeno del genome urnano e 1e basi d1 dati biologiche esistenti 462
13-1-2 Le carattcrisiiche dd data warehouse - . 466
”-13 Modelli dei dati per i data warehouse 402 14.5.4 Bibliografia selezionata per le basi di dati del genoma
407 14.6 Biblioteche digitali 466
13.1.4 La creazione di un data warehouse
- 410 14.5.1 L‘Iniziativa delle Biblioteche Digitali.. 457
13 1 5 Funzionalité tipiche dei data warehouse 411 14 6 2 Bibliografia selezionata per le bibliotcche d1g1tah ‘ 468
13.1.6 Difficolta di implementazione dei data warehouse
13.1.7 Problemi aperti nelle tecniche di memorizzazione dei clati. 413
413 Appendice A Notazioni diagrammatiche alternative 469
13-2 II data mining 414
13.2.1 Una visione d’insieme della tecnologia del data mining 473
418 Appendice B Parametri dei dischi
13.2.2 Regole di associazione
13.2.3 Approcci ad altrl problemi :11 data mining 423
Bibliografia 477
13.2.4 Applieazioni del data mining 427
13.2.5 Stato dell’arte degli strumenfi commerciali d1 data mining 427
43‘} Indice anaiifico 493
SDmmaIiO 430
Esercizi
Bibliografia selezionata 431

Capitolo 14 'Ibcnologie e applicazioni emergenti delle has] di dati 433


14.1 Basi di dati e World Wide Web 434
14.1.1 Accesso Web alie basi di dati 435
14.1.2 Tecnica di integrazione Web di INFORMIX 436
14.1.3 WebServer di ORACLE 437
14.1.4 Problemi aperti con 1e basi di dati accessibifi via Web 438
i_vi_a Web 4-40 _.
14 lflih‘linqflgale-2111mm oer ismdi £12111flessibil_ _ - _ - - - J. 1‘ —, l—__. ri- : r_ r, I _“
; _ d8... . ., ,
Presentazione
all’edizione italiana

e al setters delle
Ricercatori e studiosi itaiiani di informatica hanno dedicate graude attenzion
ti a livel-
basi di dati fin dal suo nascere, cona-ibuendo a produn-e risultati di ricexca imponan
to dei cor-
lo intemazionale. Cosi non E state per l’insegnamento di questa disciplina ncli‘ambi
s per le Facolta di Ingegncri a, ch: 5010 con 1' avvio dei corsi di lau-
si uuiversitari, in particular
Infor-
rea previsti dall’Ordinamentu del 1989 hauno attivato il Corso di Lam-ea in Ingegneria
ambito i corai di basi di dati hanno travato naturals collocazio ne. Di consc-
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
adottato e utilizzato i1 iibro Fundame ntals of Database Systems di Ramez Elmasn'
spesso ha
a Shamkant B. Navathc, che fin dalle sue prime edizioui si e rivelato first i migliari — se non i1
o figure scientifico della di-
migiiore - dei testi disponibili. Questo libro combina ii necessaii
ione. alla sampli-
sciplina, ch: sembra facile a chi non ne conosce la complessita e l‘aiticolaz
pensava di renders di-
cita e completezza di presentazione. Di conseguenza, da molti anni si
cdizicue italiana si 6 pre-
sponibile 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 ita-
ma, meglio conosciuta con la formula de] 3+2, che prende i1 via in quasi
anto radicaie dc} si-
liani a parlite dall’anno accademico 2001-2802, cusfituisce un cambiam
cansiderevole per rive-
stema 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
riforma, ch: pennette. anche una maggiore autonomia .
degli autori, ViE'r
Questo testo, Che si basa sulla lunga esperienza come ricercatori e docenti
in italiano in una forma piu snclla rispetto all‘orig'u iale e diventa ua buon
BE. reso disponibilc
audandoa i ad affiancare ad altri validi te-
candidate per ease-re utilizzatu come testo didattico,
nel panoram a nazionale . Neil’ediz ione italiana venguuo presenta ti tutti glj
sti ora dispcmibiii
i ch: piil di recente 9.0110 stati avi-
aspetti di base della disciplina. insiame a quegii argonient
xvm Presentazlone dell'edizione italiana

luppati no] senore e che fomiscono s1 lettore gli elementi per continuare ad ampliare la pro-
pria 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, per-
ché utilizzandolo pub acquisire anche competenze su nuove aree quali sono quelle del data Prefazione
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 10-
re 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 re-
lative 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. 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
11 lettore interessato trovcra nella prefazione degli autori altre inforrnazioni che gli per—
fondamenti della modellazione e della progettazionc di basi di dati, e 31' linguaggi e alle fun-
metteranno di costruire ulterior-i percorsi. piu aderenti alle sue specifiche esigenze.
zioni 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 co-
- me libro di consultazione. Si suppone che il lettore abbia una certa familiarita con concetti ele-
Ringraziamenti
mentari di programmazione e strutture dati, e che conosca gfi aspetti basilari dell‘architettura
Prima di tutto un ringraziamento particolare alla dott.ssa Donatella Pepe, Publishing Director dei oalcolatori.
di Addison Wesley Longman Italia, divisione di Pearson Education, che ha avuto e ha tenace- Si comincera con l’introduzione e la presentazione dei concetti basilari per lo due estre-
mente perseguito l’idea di rendere disponibile in italiano questo testo. per la competenza e la
rnita delio spettro di una base di dati: principi di modellazione concettuale e tecniche di me-
sensibilita con la quale ha costantemente seguito e sostenuto 1e numerose e impegnative atti- morizzazione fisica dei file. Si concludera il libro con una visione d’insieme di tecnologie e
vita che hanno portato alla preparazione di quests. edizione.
applicazioni emergenti, come 1'] data mining, data warehousing e 1e basi di dati su Web. Nel
Un grazie di ouore all’ingegnere Luca Pretto, che ha tradotto la pane pit} consistente del- corso di questo cammino forniremo un‘approfondita trattazione dei pit: importanti aspetti dei
l‘opere. corrispondente aj Capitoli l. 2. 3, 4, 5. 7. 9, 10 e 11 insieme alle Appendici A e B e fondamend delle basi di dati.
alla quasi totalita dell’indice analitico. Luca ha dedicate a questa attivita tutta la 'sua compe- La terza edizione presenta le seguenti caratteristiohe fondamentali:
tenza di studioso, portando a tern-line un lavoro estremamente irnpegnativo con tutto il rigore
e l’approfondimento neoessario. - tutto i1 libro ha un’organizzazione autosufficiente e flessibile Che pub essere adattata a esi-
Un grazie anche alla dott.ssa Cristina Monteverdi e 31 Prof. Ernesto Darniani per aver ac— genre individuah';
cettato e aver portato a ten-nine in tempi ristnetti 1a traduzione dei Capitoli 6. 8, 12. 13 e 14. - e fomita una copertura complete e aggiornata dei modello relazionale — compresa una nuo-
l] ringraziarnento finale 2111a dottesa Gabriella Piazza di Epitesto che. come copy editor del va pane su Oracle e Microsoft Access come esempi di sistemi relazionali;
volume, :3 riuscita nel difficile eompito di rispettare i] rigore della trattazione, rendendo pero - un’esposizione aggiomata della modellazione concetmale EER e stata presentata nel Ca-
i1 testo pib scolrevole e piacevole da leggere. pitolo 4, in mode da seguire la modellazione ER di base presente nel Capitolo 3, e corn-
prende un nuovo paragrafo sulla notazione usata peri diagram-oi delle classi UML;
Padova, ottobre 2001 ‘ due esempi che si ripresentano in tutto il libro — AZIENDA e UNIVERSITA consente-

-
Maristella Agosti no 211 lettore di eonfrontare approcci diversi che usano la stessa applicazione;
Dipartimento di Elettronica e Informatica - e stata aggiornata la materia sulla progettazione di basi di dati. compresa la progenazione
Universith degli Studi di Padova ooncettuale. le tecniche di normalizzaaione e la progettazione fisica:
-- ‘ - ' ‘ g- _ 1-}- ""-'F 3' f w . I I ' ' -'
- . . , .57..“
w ._: '
m

— _ — _ — _ _ '— —

Prefazione xx:
xx Prefazione

applicazioni di basi di da- tanti applicazioni emergenti delle basi di dati: sistemi di informazione geografica (GIS), basi
- e presente un’esposizione aggiornata dei recenti progressi nelle di dati per il genoma umano e biblioteche digitali.
de illustraz ioni introdut tive di data warehou-
ti peril supporto alle decisioni. che compren L‘Appendice A fomisce notazioni diagrammatiehe alternative per rappreaentare graficav
singIOLAP e di data mining; meme uno schema concettuale ER 0 BER. Queste notazioni possono soatituire la notazione
di nuove tecnologie di basi di
- viene fornita una trattazione completa dello state dell’arte usata da mi. se lo si ritiene opportune. Nell’Appendice B sono presenti alcuni importanu' pa»
basi di dati su Web. mobili e multim ediali; \
dati, incluse ie rametri fisici dei dischi.
importa nti aree applica tive delle basi di dati al-
0 viene infine rivolta l‘attenzione su nuove
del nuovo rrnllenn io: basi di dati geografi che, basi di dati per la genetica e biblio-
l‘inizio
teche digitali.
Flingraziamenti1

E per noi un grands piaeere ringraziare 1e numerose persone che ci hanno offerto aiuto e col~
Contenuto di questa edizione
Iaborazione per questo lavoro. Prima di tutto deaideriarno ringraziare i curatori Maite Suarez-
ri per una buona eomprensione Rivas. Katherine Harutunian, Patricia Unubun e Bob Woodbury. Vorremnio ringraziare in par-
Inizialmente vengono descritti i concetti fondamentali necessa ticolare l‘opera e l’aiuto di Katherine Harutunian, che e stata i1 nostro punto di riferimento
di dati. nonché 1e tecniche di modellazione
della progettazione e implementazione delle basi principale per la terza edizione. Desideriamo anche ringraziare quelie persone che hanno con-
nei sistemi di basi di dati. I Capitol i l e 2 introduc ono le basi di dati. i lore
concettuale usate
tmra dei DBMS. Nel Capitolo 3 some pre- tribuito alla terza edin'one e hanno suggerito vari miglioramenti alla seconda edizione. Su-
utenti tipici e i concetti. la lerminologia e l'archite zanne Dietrich ha scritto pane dei Capitoli 10 e 12*, e Ed Omieeinslci ha contribuito
ai Capi-
illustrar e la progetta zione concettu ale delle basi di dafi, i concetti del mo-
sentati, e usafi per
diagrammi ER. 11 Capitolo 4 focaliz— toli l?*-21*. Abbiamo anche particolarmente apprezzato il contribute dei seguenti revisori:
dello Entita-Associazione (ER, Entity—Relationship) e i Francois Bancilhon. Jose Blakeley, Rick Catteli. Suzanne Dietrich. David W. Embley,
Henry
sui concett i di astraaio ne e di modella zione semantica dei dad, ed eslende il
za 1’ attenzione
al modeil o di dati BR~esteso {BER} e ai A. Etlinger, Leonidas Fegaras, Farshad Fotouhi, Michael Franklin. Goetz Graefe, Richard
rnodello ER per includere queste idee, portand o cosi ,
le sottocla ssi, la specializzazione, 1a ge- Huil, Sushi] Jajodia. Ramesh K. Karrie, Vijay Kumar. Tarcisio Lima, Ramon A. Mata-Toledo
I eoncett i present ati compre ndono
diagrammi EER.
state anche inrrodo tte le notazioni per i dia- Dennis McLeod, Rokia Missaoui, Ed Omiecinski, Joan Peckharn, Betty Salzberg. Ming-Chien
neralizzazione e i tipi unione (categorie). Sono
BER e sempre piu usati nella modellazione Shan. limping Sun, Rajshelrhar Sunderraman ed Emilia B. Villareal In particolare Henry A.
gramrni delle classi UML, simili ai diagram ini
una descrizione della struttura fisi- Eflinger. Leonidas Fegaras ed Emilla E. Vfllareal hanno letto tutto il libro.
concettuale a oggetti. Questa prima parte si conclude con Sham Navathe desidera ring-raziare i contributi sostanziali dei suoi studenti Sreejith Gopi-
basi di dati. 11 Capitoio 5 deserive i me-
ca dei file e dei metodi di accesso usati nei sisterni di nath (Capitoli 10, 24*), Harish Kotbagi (Capitolo 25*). Jack McCaw (Capitoli 26, 2?)
e Mag-
dei file di record so disco, compreso l’hash statico e dinarnico.
todi primari di organizzazione di Morsi (Capitolo 13*). Notevole e stato l'aiuto a questa revisione fornito da Rafi Ahmed,
file, comprendenti le strutture dati al-
Il Capitolo 6 descrive 1e tecniche di indicizzazione peri Ann Chervenak. Dan Forsyth. M. Narayanaswaruy. Carlos Ordonez e Aravindan Veerasamy.
bero B e albero 13* e i file a griglia. Gwen Baker, Amol Navathe e Aditya Navathe hanno, in modi diversi. prestato i1 loro aiuto con
nale e i DBMS relazionali. Il Capito-
Si passa quindi a descrivere i1 modello di dati relazio il manosoritto. Ramez Elmasri desidera ringraziare Katrina, Riyad e Thomas Elmasri per
nale di base, i suoi vincoli di integrita e operazioni di aggior—
lo 7 descrive ii modello relazio l'aiuto fornito con l’indice analitico e i suoi studenti dell’Universita del Texas peri commen-
Il Capito lo 8 fornisce una visione dettaglia-
namento, e le operazioni dell’algebra relazionale. ti al manoscritto. Desideriamo anche ringraziare gli student‘i dell’Universita del Texas ad Ar-
compre ndente lo standa rd SQLZ, che e impiementato nelia magg-ior
ta de] linguaggio SQL.
e di due paragr afi che descrivono la proget- iington e de] Georgia Institute of Technology che hanno usato 1e bozze relative alla materia
parte dei sistemi relazionali. ll Capitolo 9 consist aggiuntiva presents nella terza edizione.
nali a parfire da un progett o coneet tuale di base di dati nel modello
tazione di scherni relazio
Ia teoria e gli algoritmi sviluppati per Vogliamo ripetere qui i nostri ringraziamenti a tutti coloro che hanno svolto opera di revi-
ER 0 BER. I Capitoli 10 e 11 riguardano i formal isrni,
normal izzazio ne. Cio comprende le dipen- sione e eomunque hanno contribuito a entrambe 1e ediaioni precedenti di Fundamentals ofDa-
la progettazione di basi di dati relazio naii tramite Scott
present ata la normalizzazione in rabare Systems. For la prima edizione si ringrazia Alan Apt (curatore). Don Batory.
lo 10 viene
denze funzionali e le fol-rue normali. Nel Capito Downing, Dennis Heimbigner, Julia Hodges. Yannis Ioannidis, Jim Larson, Dennis McLeod.
Capito lo ll vengon o forniti algorit mi per la progett azione relazionale. Il ,
mode intuitive e nel
di basi di dati Oracle e Microsoft Ac— Per—Aka Larson. Rahal Patel, Nicholas Rouasopoulos, David Stemple, Michael Stonebraker
Capitolo 12 presenta una visione d’insierne dei sistemi
di beu noti sistemi comme rciali di gestion e di basi di dati.
cess some esempi
i. Nel Capitolo 13 sono esaminate
Infine vengono considered nurnerosi argomend avanzat
Inoltre Ea nume-
I eapitoli contrassegnati con un asteriseo non sono stati lusetiti nella preseme ed'lzione italiana.
gie di data wareho using e data mining per applicazioni di supporto alle deci- raarone dei capitoli presume in questo paragrafo si riferisce all‘edizione americana del testo. ed (7: diversfi dfl quel-
le nuove tecnolo italiana, e i Capitoli
tendenz e nella tecnolo gia delle basi di daft. compren- la rtaliana. In particulate. il Capitolo 10 dell‘ediziane americana con-isponde al 12 di queila
sioni. I] Capitolo 14 riassume 1e nuove 26 e 27 eon-ispondono al 13 e 14. rispettivamente.
una visione d‘insieme di impor-
denti le basi di dati su Web. mobili e mulfirnediali e fomisce
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.
Struttura _dell’edizione italiana
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


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 quin-
Ramez A. Elmasri é professore del dipartirnento di Computer Science and Engineering del— di stabilito di focalizzare questa edizione sui temi maggiormente trattati nei corsi dedicati al-
l‘Universita del Texas ad Arlington. II professor Elmasri ha lavorato in precedenza per Ho- l’argomento, pensando soprattutto a quelii dei primi tre anni d.i studio.
neywell e per I‘Universita di Houston. E stato condirettore del Journal of Parallel and Distri- 1] testo dei professor} Elmasri e Navathe rappresenta per tutti gli “addetti ai lavori" on in-
buted Databases e membro del comitato direttivo dell‘International Conference on Concep— dispensabiie punto di riferimento d.idattico e professionale; riteniamo quindi opportuno, se
tual Modeling. E state inoltre coordinatore del comitato di programme dell‘IntemationaI Con— non doveroso, riportare lo schema di lavorazione che abbiamo seguito in corso d’opera. cosi
ference on Entity Relationship Approach del 1993. Negli ultimi vent'anni ha svolto ricerche che quanti sono abimati a orientarsi sul testo orig-inale americano possano rapidamente ritro-
finanziate da NSF. NASA, ARRI, Texas Instruments, Honeywell, Digital Equipment Corpo— varsi anche ail'interno di quests prime edizione italiana.
ration e dallo State del Texas in molte aree dei sistemi di basi di dat'r e nell’area deil’integra-
zione dei sisterni e del software. 11 professor Ehnasri ha ricevuto i1 prernio Robert Q. Lee per Fundamentals of Database Systems, 3rd ed. Sistemi di hosi di dati - Foudameat'r 1a ed. its}.
ia sua attivita di docente da parte del College of Engineering dell’Universita del Texas ad Ar- Chapter 1 ' Capitolo 1
lington. Ha conseguito ii PhD. ail'Universita cli Stanford ed a autore di pin di 70 pubblica— Chapter 2 Capitolo 2
zioni su riviste e atti di congressi. Chapter 3 Capitolo 3
Chapter 4 Capitolo 4
Shamkant Navathe e professore e coordinatore del gruppo di ricerca sulle basi di dati a1 Col- Chapter 5 Capitolo 5
lege of Computing del Georgia Institute of Technology. [1 professor Navathe ha lavorato in . Chapter 6 Capitolo 6
precedenza con IBM e Siemens nei rispettivi centri di ficerca ed 1‘. stato consulente per varie Ch aptcr 7 Capitolo 7
aziende. fra cui Digital Equipment Corporation, Hewlett-Packard ed Equifax. E stato condi— Chapter 3 Capitolo 8
rettore di ACM Computing Surveys e di IEEE Transactions on Knowledge and Data Enginee- Chapter 9 Capitolo 9 (§ 9.1 e 9.2)
e Di-
ring, e attualmente e nei comitati di redazione di Information Systems (Pergamon Press) Chapter 10 Capitolo 12
di Concepta!
stributed and Parallel Databases (Kluwert Academic Publishers). E coautore Chapters 11 - f3 omessi
Design: Art Entity Relationship Approach {Addison-Wesiey, 1992) con Carlo Batini e Stefano Chapter 14 Capitolo 10
di
Ceri. ll professor Navathe ha conseguito il PM). all’Universita dei Michigan ed (2 autore Chapter 15 Capitolo 11 (§15.1)
pip di 100 pubblicazioni su riviste e atti di congressi. Chapters I6 - 25 amass-i
Chapter 26 Capitolo 13
Chapter 27 Capitolo 14
Appendix A Appendice A
Appendix B Appendice B
Appendix C - D omesse

— 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 hnbattoncLiiLnume-
essenzialc della vita quotidiana. NcB’arco di una giomat
nano una quaich e intern ing: con una base d'1_dau'. Per esempio, 5: an-
rose attivith Che compo
se effettui amo una prgntfazione aerea a a1-
diamo in banca per depositare o prelevare denaro.
mo a un citalgg gcamp uteflzz aggdi una bibliotcca alla ricerca di una v0:
berghiera. se accedia
un abbuna mcnto a una rivista, 1e nos_t_r§__azioni_'£-
cc bibliografica 0 so ordiniamo a un editors
l’zqass so a gna base di dati da parte di qualcu no. Oggigiorno perfino l'acquisto
plichcranno
un aggiornamento automatico della ba-
di 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 asso-
nuove e suggestive applicazioni di sistemi di basi di
slsiemi l 1 0mm ‘ -
1W
rmations
catGIS :geo a hicinfo
‘— ata warehouse (magazzino 0
fichc dati meteorola 'ci e Immaghfi da satelliti. I sis: ' ' in
[among 9' gym a di on—lflfl'
1' c anoni utilj da basi di dati
M50 0 usati in molt: azicnde
in tern 0 tea e a
molto ‘ e di renders decisioni. La tecnologia delle basi di dati
nel contro llo di W W W . Inoitre 1e
dell: basi di dati attive é usata
tccnicmmrie delle basi di dati sono annalmente app 'cate ‘W “
'' t. ‘
' ' rare la ricerca dcll‘informazione desiderata da
Ad ogni mode, per caplre g aspetti fon 51:1a (Sella tecnologia dell: basi d1 dati, oc-
uadizionali. Ne] Paragrafu 1.1 di gue—
corre parn're daj pr'Lmi elementi defle loro applicazioni
cos’é una base di dati e daremn le dcfinizioni dj alpuni
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 3
2 Capitolo 1

Una base di dati pub essemmmnfimfig e di diverse complcssita. Ad esempio,


VERSITA, per illustrare la nostra analisi. Nel Paragrafo 1.3 descriveremo alcune delle princi-
la lista cli nomi e indirizzi a cui si r: fatto riferimento prima poo consistere solamente di ggche
pali caratteristicbe dei sistemi di basi di dati e nei Paragrafi 1.4 e 1.5 quelle categorie di per—
centinaia d1 record, ciascuno e ' ‘ tra parte lo schedario di una
sonale il cui lavoro prevede i’uso e l’interazione con essi. Nei Paragrafi 1.6. 1.7 e 1.8 si offre
garage biblioteca pub contenere mezzo milione di schede immagazzmate sotto diverse cate—
un’analisi pin approfondita delle varie poSSibilita fornite dai sisterni di basi di dati e delle im-
gog'e — per cognome dell‘autore prlnerpale, per soggetto, per nEIo de1 hbn — con ciascuna ca-
pljcazionj insite nel loro uso. Il lettorc che desidera solo una rapida introduzione ai sistemi di
tegoria orgarfizzata in ordine alfabetico. Una base di dati di anche maggior'ampiezza e com-
basi di dati pub concentrarsi sui Earagrafi 1.1—1.5, quindi saltare o dare solo una rapida scor-
plessita e gestita dal sendzio erariale 5mm (IRS: Internal Revenue Service) per tener
sa ai Paragrafi 1.5-1.8, per passare direttamente al Capitolo 2.
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
1.1 lntroduzione 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 cor-
rente, si otterra una base di dati di 4*(10"} byte (400 gigabyte). Questo ampio ammontare di
Le basi di dati e la tecnologia delIe basi di dati stanno esercitando un‘influenza fundamenta- infonnazione deve essere organizzato e gestito in mode tale chc gli utenu' possano cemare, re-
le nell’uso sempre piu esteso del computer. E giusto dire che le basi di dati giocano un ruoio cuperare e aggiomare i dati seconds necessita.
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 bi-
blioteconomia. WM 5 di uso cosi cornune che occorre cominciare col dar—
ne una definizione, scppur abbastanza generaie. W
Una base di dati e ollezione di dati correlati.J Per dati si intendono fatti noti che o -
sono essere memonzzag e che hanno on S} cm. Ecuador-ate ad esempm 1 norm, SISTEMA DI "
i numeri di telefono e gli indirizzi delle persone che co e. Potete aver riportato questi da— BASI DI DATI *
umr rica o Rotate averli memorizzati in un disobetto. usando un personal computer e Programmiapplicativh'lnten’ogazloni ‘
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’. SOFFWARE \f
La precedentc definizione di base di dati e piuttosto generale; ad esempio si potrebbe con- DEL DBMS
siderare la collezione di parole che formano questa pagina di testo come dati correlati e quin- Software par l'elaborazione
di fntarrogazlonlfprogramml
di 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:
1!
0 :- a re enta un ceno as etlo del mondo real , talvolta delta '11 W0 11mm
Software per accedere
Eel Discorso gUoD: Universe of Discourse); cambiamenti nel mini-mondo si riflettono al dati memorizzatl
sulla ase di dati;
a e una collezi ' ' lo ' ' n certo s' 'ficato intrinseco; un assor~
timento casuale di dati non pub essere correttamente considerato una base di dati.
o e progettata, cosuuita e popolata con dati per uno sco cifico; ha uno specifier: grap-
po di utenti e alcune applieazioni che questi utend Eanno mamduato in pmecedenza esse-
re di loro interesse.
Dafinizlono dalla
In alue arole, uua base di dati ha una a sot ente dalla uale i dati sono derivati. un base all dati Ease d] dati
tar-L l' . l" . l i AM 1 memorlzzata memorlzzata
no pubbiico che e attivamen e n-
e ..—_—___..____
_____ (metadati)
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 conte-
Flgura 1.1 Un ambiente di aislerna all best all dati sempllficato. che illustra f conoetti e la terminologia esa—
sto permctbe a] lenore dj capire quando a singulare o plurals. Nell'inglese corrente data a mate solar-name come
m nati nelfParagrafo 1.1.
our.”
- ‘ ' datum: .ingolar. :: ,1;- - _
-_ -s -, ' ' *— *“
Basi di dati e utenti dl basi cil dati 5
4 Capitolo 1 HM] I pom Re

puo essere com- Nome NumomStudante AnnoOorso CorsoLaurea


Una base di dati pub essere generata e mantenuta manualmenle oppure [STUDENTE
CS
a E: on esempio di base di dati che pub essere pro- Smith 17 1
pulerizzata. Lo schedario di una bibliotec 2 cs
ente. Una base di dati compute rizzata pub esscre prodotta c man- Brown a
dotia c mantenu ta manualm
allo scopo 0 da un siste-
tenuta da un gruppo di progranuni appficativi scritti specificamente
ma di gestione di basi di dati. lNSEGNAMENTO
e on in-
Un sistema di gentione di basi di dati (DBMS: dW
e '
siemc :11 program che ermettono a li utenti di create
sofiym'e d li (3 W ) chc
BEES E percigE un sisrema
1 an ear varie applicazioni Roi;
fW costmire e manigolare baeu
Wan che
mm base di dati implica specificaIe i tipi dei dati, {e loro stmtture
base di dati significa immagazzi-
devono essere memorizzati nella base di dati. Costruife la MODULO IdentificatoreModulo Semestra Anno Docenie
entro un certo mezzo di memoriz zazione che a controllato dal DIS—MS. Bin;
narc i dati stessi
la sua interrog azione per recuperare dati spe—
nipolare una base di dati include funzioni come
ndo e la generaz ione di
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
proprio insieme di program mi per produrre e mante-
computerizzata. E possibile scrivere un
base di dati. crcando no software DBMS persona le can scogi sgecifici (special-gum -
ncre la
— te uti—
flln enumbi i cgsi —.._phe si '
we i__m Fin- WOTAsE NumeroStudento IdentificatoreModulo Vote
W W1 on sistema diba-
W-bamti e da] software DBMS verré in metro come
sieme CO 17 112 B
- "E‘
a di dati, illustrate in Figura 1.1.
,__’
17 119 C
B 85 A
8 92 A
8 102 B

1 .2 Un esempio 8 135 A

PROPEDEUTICITA
di dad QHLVEHSITA che contenga
Si consideri un esempio familiare a molti lettori: una base 053320
e 1e votazioni in ambiente universita-
informazioni riguardami gli studenti, gli insegnamcnti 1
o mastrat i la strutrur a della base di deli e alcuni dati campione per que-
rio. In Figura 1.__2_son
quali contiene record di dati
sta. La base-Hidmi a organizigita conic cinque file. ciascun o dei
‘ WW Flgura 1.2 Esemplo dl una base dl datl contenente record sugll
student[ a I tore vofi.
dello stesso tipol: i1 file STUDENTS CW ‘ un ‘ ' '
CW; ii file MODULO con
'enei
file gnLiene i voti ottenuti daglj student i nei val-i moduli da gs-
iWI-B; i1w
DEUTIGITA comiene 1e EroEed euticita di ciascug insegnamento. -
W; il filo PHDPE l cord di INSEGNAMENTD confiene dati per rappresentare il Nomelnseggamento, ii Codicelnse
| I n l’insegnamento);
l . . . ggamento, le Ore di lezione settimanali e il Diparfimento {Che ogganizza
Woo i diversi tiQi di dafi degsnjm' analogo discorso vale Ber gli altri file. Occoi're pure specificare mm
per. ciascug
ntaxe i1 Nome dello studente, '
tax 12 ciascun record di STUDENTE c ntifle dafi per :agprese aato elementare all’intemo di un mgggd: acl e e ‘ '
o i, secondo o 2 ecc.) e Corso‘Laurea
W, II we AnnoCorso (primo Una stringa di caratteri alfahetici. NumeroSmdente di STUDENTE
é un intero e Voto di VOTA-
n'a informatics em); ciaécun re- usare
(Woo. C§_ per Computer Science 0 Ingegne Wefl’insieme di caratlen' {A. B. CTD, F, 1}. Si E'uo Eur'e
Figgra 1.
'uno schema codifica er ‘occorrenza Wad ogmgjg, in
no STUDENTE e rappresentato con 1 per_p_rimo, 2 per secondo. 3 per ter-
——--..
asset: ordinate.
zo e cos] via.
a
A livelio concenuale no file é. um colfezione di lecord, Che pub essere a non ___.___,_._.——.
______...__—_.._.__ -r—-——..—_—--»—-u
6' 03153510101 Basi dl dati e utenti di hast di dati 7

Per costmire la base di dati UNIVERSITA bisogna memorizzere i dati oer rappresentare sta definizione e memorizzata nel engage del sistem . chemtifimifliommflme la
Wnsegamento, modulo, votazione e propedeuticite come un record nel file ap- SWO I e‘ 'l I ' lone di ciascun dato e vari vincoli
. . .
. . .
We. 81 not] the record tfiversr
. -u-—-.'
ne1 van file possono essere collegau. Per esemplo 11 re- su: an. Le mfonnazmru memonzzate nel catalogo sono dette ..._..._.
metadafi e descrivono la strut-
firs—Bah base di dafi 'nci . 1 1
eord per “Smith" nel file STUDENTE e collegato con due record nel file VOTAZIONE che sEeci—
‘ . . ‘
Whfl—Wn catal e usato d 31 so - )-
nel file PEOPE-
f ano i voti ottenuti da Smith in due moduli. Analogamente ciascun record no flbisogm dj infonnazionj WWI] Che da 11 :1 cut della base (11 dati che han-
enta un insegnarnento e l'al-
Wlega due record 3: INSEEKEMENTO: uno ehe rappres --——— ———- “Wat stemssa. MIT—.3:-
Lro Che rapprescnta l’rnscgna mento ad esso prfipedeu tieo. Molte basi di dati di medie e gran- flflmd-LUI‘E- ‘ose non e scritto Eer una sgeifica agglicggione di basi di datiI e di conseggenza de-
di dimensioni com re ' ' ' irecord e presentano moire associazioni fra '1 record. ve nfenrsr a] catalogo yer conoscere lg ma dei file in on database sEecifico, come il tipo
La manigogggiane di basi di dati comprende l‘interrogazwne e l‘eggiomamento. EsemEi di e 11 formato del den 2 out accedera. 11 software del DBMS eve avomegualmemehene con
interrogazione sono: “recu era la trasc re umversrtano — WW quals' . . . . ' di dati — ad esempio uua base di dati universitaria, una
EQ W W f— W mu che hanno soste- ase d1 clan bancana o 11:13 base d1 dati aziendale — per tutto i1 tempo in cui la definizione do]-
W1 modulo del ‘inse amento East di Eat: tenuto nell'autunno 205i ei ]a base d1 dan permane nel catalogo.
Basi di dati?“. Eserfi-
oro voti in questo modulo“; “quali sono gll insegnament: propefieurrm a Nelliggdizionalggesfim; la definizione dei dati e fipicamente Earte dei grogammi
pi di aggiornamento sono: "cambia l'anno di corso di Smith in secondo”:
. . .
“crea un nuovo mo-
. Jflpiisafiifi—Di conse uenza gun: ' E g: mm- isono costrem. aTavorare ”lo—AGO“ ”M b“ ‘1“.
. ento B351
. . .
:11 den per questo semestre“; “msertsct un voto A per .South nel duri specifica , la cuigstruttura est; If]? a ———T""‘F .
dulo per l’msegnarn , . , . ~- . -. . .
u avere dichi '3 {aim I“? program 3P?d1 record; on Emgamma C! I catwr. Ad 5551111310 un PTO‘
. . .
modulo d1 Bas1d1 dati dell ultimo semestre ’. Queste mterrogazroru e aggromame
. nn mforma- P ‘ ‘ .. ’31'8‘8 51-10 Intel-no mun-e
dati pn'ma di es-
di basi di of) :1 er di _
li devono essere specificati esattamente nel linguaggio del sistema. p v e c om d1 struct’ o c as e no 0 mm C a istruzioni della Se.
se segur
. 1I sumI file. Mentre ‘11 software di gestione file poo accedere solo a 132151
Ie e '11. zrone' an' per definite
: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
1.3 . . che . dell’approccio
Caratteristi moslrati.0
. 'v . ce' a'
_ ' adesemio aN ome d1' on re—
con baSI dl datl W41 software del DBMS ricorre a1 catalogo per determinare la suuttura del
WM
e STUDENTE e la Osi '
“STUDENTE. 3X- 1. conrrano: In one uprca applicazione di gestione file, la struttura del file e. a] li-
dall‘approccio tra-
Un certo numero di caratteristiche distinguono l‘approccio con basi di dati mateI la posmone esatt ' e all‘intemo i ' ST D TE so ' co ' cate al-
dizionale della programmazione con file. Nelle. tridizionale estlon ciascun utente defi- l‘mtemo di ciascun programma che accede a questo date.
parte della program-
nisce e implementa ifile necessari per una spe'cifica applicazrone, come '7
ne def von‘, pub
mazione dell’applicazione. Ad esempio. un utente, l’ufiicio per la registrazio
Sono quindi implemen ted programm i per stampare
gestire un file sugli studenti e i loro voti.
voti nel file. Un
la trascrizione del libretto universitario di uno studente e per inserire nuovi 1.3.2 Separazione tra programmi e dati
W
secondo utente. l‘ufficio contabilita, pub tenet ”WW e aStraz‘one dei dati
cia-
WE Per guanto entrer'fibijli utenti siano interessati e dati sugli studenti.
acun utente mantiene file ‘ - e program per mampolare questfik‘rpoiché eiascuno Nelle tradizionale gestione file 121 struttura dei file di dati e inserita nel programmi che devo-
a nel definite e me-
Mdafi non disponibili nei file dell’ aluo utente. Questa ndondanz no 392528511 e pertamo cLualsiasi cambiamento alla struttura di on file puo richiedere on cam-
risultato uno spreco di spazio di memoria e on— doppio sforzo per te—
morizzare i dati he come bmmento d: ram I pmgmmmt' Che accedono E esso. El contrario. i programml di accesso del
un singolo
nere agglomati i dati comuni. Nell’ approccio eon basi di dati, invece, si mantiene
definito una volta per tutte e 31 quale poi possono accedere vari utenti.
magazzino di dati,

Md}??— Posiziene inlzlals del record Lu nghezza 'In caratterl (byte)


_ _ _ _
_ _ . _
Name 1 so4
1 .3.1 Nature autodescnttwa dl un sustema dl has: dl datl NumercStudenta 31
AnnoCoreo 35 4
CorsoLaurea 39 4
base di da—
Una caratteristica fondamentale e Che il sisterna di basi di dati contiene non solo la
E1- :he ur ‘ ‘nizior ‘escri -'. Dmplli" “law? “"""‘ural="°‘ o"oiviwn" Que— Figur ” ‘____formal ' ’ _ :10 on_, ‘ ..
,,"':zzazme ' '- 3? un rem': __ sruoE - \—__._?|
i ‘
_____4
'
...__._J
n— fl“ ‘ _ _'- _ “—
OWIOA/or ‘Hh- ffloq . ml 4“
Basi cli dell e utenti dl basi dl dati 9
8 Capitolo‘l / __
[mama ima‘tdrflimdé
tazione
enti di questo Expo. W dedicate alla loro presentazione e ai oonoctti Che essi usauo per astrarre la rappresen
DBMS nella ma ioranza dei oasi. non richiedono camblam dei dati.
el catalo o aratame n e m to mmi di ac: iea
dei file a dati a me '
r gro-' e Ad esemplo un Con la recente tendenza verso basi di dati orientate a oggetti e basi di dati relazional
mQuesta ro ' ' ndenza tra r a un livello superiore per includere non solo la souttura dei da-
oggetfi, l'asuazion e e portata
accedere solo a mag di S] UDEfl -
wme pub 688813 grim 23‘ modo do. ti ma anche lo operazioni sui dati. Queste operazioni fomiscono un’astrazione
di atlivita del.
in 1 ra 1.3. S ' aggmng ere un'altra page di dati a cia-
TE con a struttu non fun— mini—mondo comu 115W Ad. esempio un‘ogerazione CALCO-
mma di questo tipo
s-cu—n record di WHEd un progra ‘e so 0 150 no - DEW pub essere a licata a un oggetto studente ' ‘ '
ece
zmne [31 e dovra essere cam iato. In on ambiente DB zioni ossono essere invoca e mlerrogazioni q dai grogramn
.
fi dell’utente germ che
..-—-——
e e1 recor d1 STUDEN TE nel catalog o per rispeechiare l’inserimeoto el T——£—— - so.
W 'ulente conosca i deltagli so come esse sian 'ntem
nuovo dato flatm ascmmmmmm one e rnini-mondo e resa disponibil e all‘utente come operazione
a dei recofldi STU - un as
Wcmrfi 31 catalogo acoedera alla nuova struttur as a .
DENTE e la useré.
e a oggetti gli utenti possono
WWWMH
210m della base di dati. Un’oEerazione
definjre le operazioni sui dati come pane e e e
L‘ intefiacg‘g (o segnatura) di un’operazione
(delta anche funzione) é MW. Supporto di viste multiple dei dati
suoi gomenti (o pW W 1.3.3
W2: 3 i figi di dati dei
W W W-
m. n azmnelo “ e una diversa
Wprogrammi applicativi
o operate sui dati invo—
dell‘utente posson Tipicamente una base di dati ha mold utenti. ciascuno dei quali pub richiedern
Huh contenere
cando queste operazioni attraverso i loro nomi e argome
ntl, indipendentemente do come 1e prosperdva o vista. Una vista Pub essere on sottoinsieme della base di dati 0
ma che non sono es licitamenl: e-
operazloni stesse siano implem entate. Questo falto pub essere definite indiggdenza tra Ero- Who sono derivati dai file de
fatto che i da-
morizzati, :[alvolta p115 non esserc necessan'o rendere eonsapevoli glj utenti del
mmi e dati e l’indipendenza tra ati piuttosto che derivati da altri. Un DBMS multiutenle
La caratteristica che consente l‘indipendenza tra progra ti 3. cui si riferiscono sono memorizz
dei dati. Un DBMS $m icui utenp' hanno una ' ' ' ' ' ' dove fornire funzio '
proyammi e operazionj 2-, delta astrazione
m e dell base di dati di Fi ra 1.3 out: ssere interessato solo alla tra-
presentazione concettualg dWW QE- Ie. A
utente E mostrata
e, un modello di dati
rizzati e su come le operaz iogi song implementale. Inform alment WLMIO universitario di ciascuno studente: la vista per questo
memo
. . . . e .——-—-——-—————-. studemi ab-
w

a on
. sale r form: W1 Un secondo uten
tti ' a e 1e loro interrelazioni. che so— ' ostenuto tutu esami relativi a insegnamenti propedeutici a ciascun insegnarnento 21
Wcafi lo ici. com ' - blsogno della vlsta illustrata in Figure 1.40)).
a nozionl di me ' C111 51 sono iscritti, pub aver
no per molti utenti it scm lici 2 ca ire rispetto ' tazio- ”if.“
nose-on e etta ' '
m I'gu s: enza ll modello cli dati
ne che non ____1n_,.M
sono r molti
esse.—— —— menti
—— —-di__ dati.
di basi
__,. .—- 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 Trasorlzlone do! libretto universilarlo dello students
essere definita dalla lunghezza del suo record — {H} l TEASGRIZION E Nomestudente
dal suo byte iniziale all‘intemo del record e dalla sua Godloelnsegnemento Vote Sen-lasts Anne ldentlfioatoreModulo
— e ciascun dato pub essere specificato 051310 :3 Autumn as 119
Win-byte. 11 record di NTE sarebbe erci “WW Aumnno so 112
e interessato a posizione cli ‘a Sm“ MATH2410 e
ra 1.3. 'DJttavia on n ico meme basi di d '
' MA‘I'HZHO A Aulunno 93 55
0 a1 farto che, qualo-
’ 11 record 0 alla sua lun hezza' piuuos 051310 A Autunno 98 92

1 S DENTE , lenga restitu ito ll valore corrett o. Una rappre‘ 553320 B Prlmavera as 102
ra sl fascia rif ' e a am“
ta m igura 1.2. 0 ti altri denagli 135
sentazione concettuale dei record di STUDENTE e mostra 033330 A Autumn 99

izzazio ne Ell file —~ come i percors i dj accesso specificati in


dell’organizzazione della memor
base di dati dal DBMS (si vedano i Capi-
on file — possono essere nascosn' agli utenti della [bl IPFIDPEDEUTICFFA Nomelnsegnamento Codioalnsegnamento Propadeutlclba
toli 5 e 6). 5532” ——
—‘—3—-
izzazione dettagl iate di ciascun file so- Has] dl dell 053350 momm
Nell’approccio con basi di dafi la struttura e l'organ
alla rappresentazione oonoettuale 053320 031310
no memorizzate nel catalogo. Gli utentl fanno riferimento Slrutmre an dell
estrae dal catalogoi deuag li della loro memo rizzazione quando quesu' sla-
dei file, e il DBMS
)
1 .2. (a) La vista della traaorlzio-
dati diversi possono essere usatl per for- Figure 1.4 Duo vlste derlvate dalla base dl datl esempllflcatlvo di Figure
no necessaxi a1 software del DBMS. Mold modem di ne del libretto universibarlo degll atuderrti. {la} La vlsta deile propedeut
iolta agii lnsegnamenti.
di dati: una pane importame di questo libro e
nire tale astrazione dei dati 9.n utenti d.i basi
10 Capitolo 1 Basi di dati e utenti dl basi di dati 11

1 .3.4 CWe 1.4.2 Progettisti


del e transazuonl con utentl multlph
'_-_—-_——l-I__

I progettisti di hast d1 dafi hanno la responsabilita di individuare i dan‘ da memorizzare nel-


Wutente, come dice il non-1e deve consentire spin utenti di accedere eonte — la base di dati e di scegliere strutture adeguate per rappresentarli e memorizzarli. Questi com-
raneamente alla base di dau. [a cosa e essflMfimW piti sono per lo pit intrapresi prima che la base di dati sia realmente implementata e popolata
Wtenmi in una smgola base (ii dau. Il DBMS dge contenere or; sgflgggg pg: di dafi. E responsabilita dci progettisti di basi di dati comun‘icare con i futuri utenti della base
Wm“ che aranu‘sca che in utenti che ecrchino d' ' li di dati. per capime le esigenze e per dar vita a un progetto che 1e soddisfi. In molti casi i pro-
stessi dati lo possano aniera controllata. cosiccR ll nsnitato W gettisti fanno parte deilo staff del DBA e possono essere assegnate loro altre responsabiljta cli
Moira, quanmW staff dopo che é stata completata la progettazione della base :11 dati.
un volo aereo, il DBMS dovrebbe arantire che ciascun osto ssa ess ‘d ra- Essi fipicamente interagiscono con ciascun gruppo di utenti potenziali e sviluppano una vi-
More assegnato a un passeggero da no solo addetto alla volts. Applicazioni di que- sta della base di dati che si accordi con la richieste di dati e di claborazioni del gmppo stesso.
sto tipo sono generalmente done applicazionj di elaborazione delle transazigni in ling Queste viste sono poi anatizzate e imegrare con le viste di altri gruppi di utenti. Il progetto fi-
(0LTP: (an-line transaction processing). Una funzione fon ament e del software di an nale della base di dati deve essere in grado di soddisfare 1c richieste di tutti i gruppi di utenti.
m mulfiutentifluefla 31 assicurare cHe mm
Le carattenstiche ora VlSle sono le principafi per distingoere on DBMS dal software tradi-
zionaie E Eesfione file Ear ullenonfifiol’o'n‘flimenn 51 veda i1 Paragrafo 1.61.
1.4.3 Utenti finali

Gli utenti finali sono quelle persons is cui attivita lavorative richiedono l’accosso alla base di
1.4 Gli attori in scena dati per interrogazioni, aggiornarnenti e generazione di prospetti: la base di dati esiste princi-
palmente per loro. Ci sono diverse categorie di utenti finali.
In una piccoia base di dati a uso personale, come ad esempio l’elenco di indjrizzi d'i (mi si e o Utenti casuali. Essi accedono occasionalmente alts base :11 dati, ma possono aver bisogno
parlato nel Paragrafo 1.1, n’picarnente una sola persona definjsce, costruisce e manipola la ba- ogni volta di informazioni diverse. Usano un Linguaggio di interrogazione sofisticato per
se di dati. Viceversa moire persone sono coinvolte nella progettazione, nell‘uso e nella manu— specificare ie loro richieste e sono tipicamente manager di media 0 alto livello o altre per-
tenzione di una grande base di dati con qualche oenfinajo di utenti. In questo paragrafo ver- sone che accedono occasionalmente alla base di dati.
ranno individuate 1e persone la cui attivita lavorativa prevede l’uso quotidiano di una base di o Utenti finlli non sofisticati (o parametriei). Costituiscono una porzione rirnarchevole
dati di grandi dimensioni; clu'arneremo queste persona gli “attori in scena". Nei Paragrafo 1.5 degfi utenti finali della base di dati. La loro principale funzione lavorativa consiste nel-
verranno invece considerati i “lavoratori dietro 1e quinte”, coloro che lavorano per la manu- l’interrogare e aggiomare continuamente la stessa, usando tipi standard di interrogazioni e
tenzione dell‘ambiente del sistema di basi di dati, ma che non sono direttamente interessati al- aggiomamenti — detti transazioni standard (canned transactions: transazioni “in scato-
la base di dati in 56. la". 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 regi-
strano prelievi e depositi; gli addetfi alle prenotazioni per linee aeree, hotel e societa d.i au-
1.4.1 Amministratori tonoleggio 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 at-
In qualsiasi organizzazione in cui molte persone usano 1e stesse risorse c’e bisogno di un am-
mioistratore capo per Sowintendere e gestire queste risorse. In on oontesto di basi di dati la ri- traverso pulsanti, per aggiomare one base di dati centrale sui pacchi ricevuti e in transito.
sorsa primaria e la base all dau' stessa e la risorsa secondaria e il DBMS e il software correla- o Utenti finali sofisticati. Comprendono ingegneri. scienziati, anabsti commerciali e altre
to. L’amminisn-azione di queste risorse e responsabilita dell‘amministratore della base dl persone che acquisiscono completa familiar-its con la funzioni del DBMS in modo da im-
dati (DBA: database administrator). E responsabifita deI DBA autorizzare l‘accesso alla ba— plementare 1e loro applicazioni per soddisfare 1e loro complesse esigenze.
se di dati, coordinare e monitorare i1 suo uso e aequisire risorse software e hardware quando - Utenti indipendenfi. Mantengono basi Eli dati a use personale usando pacchetti dj pro—
esse si rivalino necessarie. [1 DBA risponde inoltre di problemi quali la violazione a1 sisterna grammi gia pronti che forniscono interfacee a menu di facile uso o interfacce di tipo gra-
o tempi di risPosta scadenti da pane di quest‘ultimo. In organizzazioni di grandi dimensioni 1] fico. Un esempio e 1‘ meme di un pacchetto tributario che memorizza una varieta di dati
DBA e supportato da uno staff che lo ainta a svolgere tali mansioni. personali a scopo fiscale.
“ml
Basi d] dati e utentl di basi di datl 15

14 Capitolo 1
uenza deve essere controllato il tipo
aegis;3:16:11 r::::erarll 51a d1 aggiomorli. Di conseg
amemo . Tipicam ente si fomiscono 3i utentl 0
3 nPi d1 mend accsso — reoupero o aggrom
possono essere usati per ottenere l’acces—
so 311a base, di dafi Lounggrhoitetu da password: che
formre m1 sottosisterna per la sicurezza e l’aulo-
fizzazione usmo (1.31 EBA S dovrebbe
per create gh accoun t e per specificare 1e rcstrizioni per ciascun
Bacon t 11,13
unporr e antorn aticam eme queste restrizioni. Si noti che si-
. . n. EMS dovrcbbe qumd:
del DBMS . Si poo, ad esernpio oonsentire a1
mrh controlh 31 possono applicare 31 software creare nuovi ac-
come il software per
solo staff d1 DBA di usare certo software privilegiato, base di da-
count. Analogamente. agli ntenti parametrici pub essere concesso di accederc alla
mo Codlcelnseonamento tr soio attraverso 1e transaziooi standard svfiupp
ate per essere usate da loro.
tmcarorehnod wm
““3 m——Iden —M e
mfl lncludono NomeSluden
-
ndanzn controllers: sl
oriz zaz lono ridondan‘le d1 datl. (a) Rido nda nza non con trollata: on record dl
Figure 1.5 La mem NE. (bl Rldo '
to e Codloalnsegna
mento nel file VOTAZIO
record di STUDENTE
di Flgura 1.2. perohé
i'I TIOITLB del—
1.6.3 Memorizzazione ersistente d'
e coneisténte con l I ogge ttr
VDTAZIONE che non e strutture di datip
a Smith. non Brown.
lo students numero 1?
rizzazione persistente di oggetti di pro-
Le mar dati possono eesere usate per fornire memo
utenti vengono integrate
durante
d1 dam. Questa a una delle'ra lgioni principaii per cui sono stati sviluppati i
viste di diversi groppi di fiemj deisgumn'e
cio con bas i di dat i 1e ebb e avc re una pro- ggr d1 progra 'one hanno strurrure dati com~
Nell’ approc la consistenza si dow acid! dah a oggetti. I lingua
la bas e di dati. Per assicurare nas cita di uno stu- ioni di classe in C++. I valori di variabili di
la pro get taz ion c del
come '11 mo re 0 la dat a di plesse, come 1 opl record in PASCAL 0 le definiz
a ciascun date logico — tenze e riduce l‘oc— termina, a meno che i1 programmatore
gettazione che memorizz i. Qu est o non pennette inconsis programme sonolscartati una volla che un progra mma
nel la bas e di dat pub essere utile per i1 che spesso comporia uua conversione di
non 1e memonzzr fipficitarnente in file persistenti.
te — in to: solo pos ro con trol lata
den
mo ria. Per altr o in alc uni casi una ridondanza mo rizzare NomeStu- ato adatto per la memorizzazione su file. Quando serge
cupazione di me esempio é possibile me (1;;1eset:ecomplesse strut-tore in un_form
zion i delle interrogazioni. Ad (Figura 1.5a). se programmatore deve attuare la conversione
mig liorare le pre sta
maniera ridondame in
on file VOT AZI ON E dflnfofi‘t: ciliillegfiere quesu den un’al‘tra volta, il
icei nse gna me nto in rare i1 name dello stu— . . le a-strutturn dr var-lab ile d1 progra mma. I sistemi di basi di dad a oggetti so-
dente e Cod E si vogliono recupe no
ra on record di VOTAZION te e l‘identifi- come C++ e JAVA, e il software del DBMS
ogni volta che si recupe o insieme con il vote,
i1 num ero del lo stu den compaubrlr con lmguaggr d: programmazione
ice del l'ins egn arn ent é nec ess ario ricercare pin conver sione neoess aria. Di conseguenza un oggetto corn lesso
dente e il cod iem e, per raccoglierli non esegue automaucamente ogoi
ndo tutt i i dat i ins in mode ta— in un DBMS a oggertl come ObjectSEore o
catore del modulo. Geste controllers la ridondanza Ll'l C++ puo essere memorizzato persistentemente
sti cas i il DB MS dov rebbe essere in grade di rag giu nto ver ifica ndo auto- Un oggetlo di questo tipo e deno persis tente dal memento che so-
file. In que o obiettivo puo essere 02 (em detto Ardent).
ten ze tra i file . Qu est VOT AZIONE in progra mma e pub in‘seguito essere dirett
le da evitare inconsis ente in ogni record di pravvwe alla ierminazione dell‘esecuzione del
che i val ori di Nom eStudente-NumeroStud e di no rec ord di STU - progra mme C++. 3-
maticame nte di Nome-NumeroS tud ent merge recuperato da un alcro
ino con uno dei valori odicelnsegnamento in di pro ramrni e struttu re di " ‘
Figures 15(3) si accord r-i di IdenfiflcatoreModulo-C _ a memorizzezione persistente di oggetti
Ana log am ent e i valo verifiche possono es- bgasi di dati o‘adizionalid2111:1223:15::
DENTE [Fig ure 1.2 ).
con i record di MODULO . Que ste gorgante der Sisterni d3 basi di dati. I sistemi di
son o ess ere con fron ted omaticamente im- to di imped enza (impedance mismatch problem),
VOTAZIONE pos della base di dati e aut dz] (1311;231:122? problemadel conflit
cific ate a1 DB MS durante la progettazione Fig ure 150 0) e mostrato on re d1 den for-rote dal DBMS erano incompatibili con 1e strutture da—
sere spe
file VOTAZIONE e aggiomato
. In ti dd fin a0 0’ e d: struttu
ogn i vol ta che il 1.2 e che pub essere mente i sistern i di basi cli dari a oggettl offrono
poste dal DBMS STUDENTE d1 Figura Wilrg‘gro program'oezrone. Tiprca
é inconsistente con il file
com
di VOT AZI GN E che struttu ra d1 den can one 0 pin lingua ggi di programmazione a oggetti.
rec ord nollora . pat: [ta della
ridondanza e non con
inserito en'oneameme se la

o non autorizzato 1.6.4 Definizione di regole di inferen


1.6.2 Divieto all’access che usano azioni za 8 regole
sate permes-
osimfle che ad alcuni non
doo o una base di dati. é ver ese mpio, sono e regole di deduzione in mode da
Mann: srsterm-dr has: d1 datr fomrecono semzr per definir
divi ad
a commute. I datl fina
Quando pii} ute nti con nzia ri,
info rma zio ni in ess autorizza— questo tipo so-
so di accedere a tim e le e conseurito solo a persone 11 e nuove mformazrom do: fato memorizzafi nella base di dati. Sistemi di
con side rati rise rva ri e di conseguenza l‘aceesso re dari , men tre ad altri Sara
spesso
' '---- = "ran t; mm finse rc nemiesso solo di recupera
'
16 Capitelo 1 Basi dl dati e utenti di basi di dati 17

no detli sistemi di basi di dati deduttive. Ad esemplo, ci possono essere regole complesse re una strings di non pie dj 3O caratleri alfabetici. Un tipo pie complesse di vincolo, che si
nell’appljcazione del nfini-mondo per determinant. quando nno studente e sette esame. Que- presenta frequentemente, cemporta la specificaziene che on record in on file deve essere cor-
ste possono essere specificate con dichierttzieni esplt'cite come regole, che una velta compi- relate a record in ale-i file. Ad esempio. in Figura 1.2 a pessibile specificare che “ogni record
late e mantenute dal DBMS sono in grade di determinare tutti glj studenti sotto csame. In on relative a or: module deve essere correlate a no record di inseg-namento". Un altre tipe di vin-
DBMS tradizionale si sarcbbe devute scrivere un esplicito codice dt' programme pmcea‘urale cele specifica l’unieita d5 valeri per certi dati, come ad esempio “egni record di insegnamen-
per supportare tall applicazioni. Ma se le regole del mini-mendo cambiano, e generalmente to deve assumere an unico valere per Codicchlsegnamente”. Questi vinceli seno dedotti dal
piu cenvcniente cambiare 1e regole di deduzioue dichiarate che riscrivere il codice di pre- s1gnificate o semantica dei dati e del mini-monde che essi rappresentano. E responsabilita del
grammi procedurali. Una funzieealita pie potente é fomita dai sistemi (11 best di dati attive. pregettisti della base di dati individuare i vincoli di integrita durante la fase di progettazioue.
che fomiscone regole attive che possono automaticamente dar inizio ad azioni. 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 ven-
geno inseriti i dati.
Un date pub essere state inserite erreueamente e tuttavia soddisfare i vincoli di integrita
1 .6.5 Disponibilita di numerose interfacce utente 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 vale-
Poiché una base di dati a utilizzata da molti tipi di utenti, con svan'ati livelli di conoscenza tec- re valide peril tipo di dati di Vote. Errori nell'inserimento dei dati di questo tipo pessono es-
nica, un DBMS dovrebbc fornire una molteplicita di interfacce utente. Quests includono lin- sere sceperti sole manualmente (quando lo studente legge il vote e protesta) e cerretti in se-
geaggi di interregazione per utenti casualj, interfacce a linguaggi d.i programmazione per pre- gulto aggiontando la base dj dati. Pere no vote Z pue essere automaticamente rifiutate dal
grammatori di applicazioni. moduli (forms) e codici di comande per utenti parametrici e in— DBMS. perché Z non e an valere valide per '11 tipo di dati di Veto.
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. Sem-
1.6.3 Fornitura di backup e recovery
pre 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.
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 aggioma-
1.6.6 Rappresentazione di associazioni complesse fra dati mento, 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. Alternative-
Una base di dati pub comprendere numerose varieta di dati associati in molti modi. Si consi- rnente il sottosistema di recovery potrebbe assicurare che il programme venga ripreso dal pen-
deri l’esempio mostrato in Figure 1.2. 11 record relative a Brown nel file STUDENTE e associa- to in :ui era state interrotto. in mode tale che venga registrato nella base di dati il sue effetto
te a quattro record nel file VOTAZIONE. In mode simile, ciascun record di MODULE] e associate comp ete.
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 rappro-
sentare una varieta d.i asseciazioni cemplesse fra i dati, cesl come di recuperare e agglomare
i dati correlati facilrnente ed efficientemente. 1.7 lmplicazioni dell'approccio con basi di dati

1? aggiunta ai punti discussi no} paragrafo precedente ci sone altre implicazioni, nell’uso del-
1.6.7 lmposizione di vincoli di integrité I approccm con basi di dati, di cut pessone giovarsi molte orgaru'zzazioni.

Melte applicazioni di basi di dati presentane vincoli til integrita che deveno valere per i da- Petenziale per import-e standard. L’approecio con basi di dati permette a1 DBA di definite
ti. Un DBMS devrebbe fomire servizi per defirfire e imporre questi vinceli. 'l'l ripe pill sem- e impone standard fra utenti dj basi di dad in una grande erganizzazione. Cio facilita la co-
plice di vincole di integrita comporta la specificaziene di un ripe di dati per ciascun date. Ad merucazrene e la ceoperaziene Ira van' dipartimenti. progetti e utenti all’interno dell‘erganiz-
esempie in Figura 1.2 e possibile specificare che l1 valore del date AnnoCorso per ciascun re~ zazrone. Pessono essere definitj standard per nemi e fen-nati di dati elementari, fennati di vi-
'vo a ‘L- 1dent:':= ‘ jesserga g; 'Jtero r .' 1 -- 5 e c‘" " "alore '“ M“me dew mae- cualizzavime. strurhlre di prose“ti “terrain-"infra e co"? "if 11 DP *‘ ""6 irepnm "Ii starch" -
cord ‘ _ .__
»-—-~ -....——~ - W e. _.__ __
_ _ —'

16 Capitclo 1

.ulr— . '
.nm-M- III C' up 886 ‘
I I-tu sistem I1 135 II' dati dedutfive ; I -. u. I I ' ‘ ‘ n.»
..I|_uqn........

‘ ' . l Ifi‘ITfiTu‘lciutolHIaxamudm-'-“m"l' ' _.-. N.


_‘-a.l— . ‘
A .II
. compi-
g___§ I u ‘ u;
I

.
v. 'e. In un
rat-edurale
u - a . . . . : I

a se le regole del mini-mondo camb' . dei dati 8 del mini-mondo che essi rappreseu Er I. . I ' ‘
duzione dichiarate cite rise-'

6
g.
- ..i re

:
'- : ' .' ‘ .; .; :. :.»-.

:1
. , '

DI
I' datiindivi-

.0
progettisti dellabas-
‘ . I ' DBMS c imposti automafiente. E posstbile
«v-ui- 'I a

Un dato IuI - . -. - I m
- I‘ ‘ u
. .
specific I. Ad esempio, 5e unI\ Iente omene so 'I . . I I - .~ _ > . base di dati viene
, ll'l=""t""'r"_n . l‘ - . -> - - I I r Meme. perché C e un v I—
msento
re vaJido per il tipo di dati di _u_- l I . . mmrfillillmi—‘ . I Issono es-
- svariatj livelli di conoseenza tec- se-
Poiehé one base di dati e uti ' - - .. . e . 7. . I I nu Iente (qt: -do 10 studente legg- e protests) e corretu
acce utente. Queste includono lin- dai
nica, un DBMS dovrebbe fom‘ . guito a 9 IIII : . I I 1 ., . .' . - ,-_-,. P..~—--~_v;-.-r'7:‘=7.r«=‘rie. Igmalcamene riuutato
guaggi di programmazione per pro-
guaggi di interrogazione per uten I DBMS, III W — un valore valido Ier i1 tipo di I oto.
grammatori di applicazioni, modun /.
terfacce a menu e in Linguaggio mate I -
quelle a menu sono comunemente no
user interfaces). Esistono molti lingua- ; tenti speeializzati per specificare GUI. Sem- ‘13:; g -' .' . » Bio. w;
via World Wide Web a one base di da-
pre pifi comuni sono inoltre servizi per fI WI; Iccesso
ti — o abilitazione via Web di una base di I f . - '-I' I' I'Iu'- "Ad hardwaree softwarellsottosistema
:» ::-'. .7 ,
.153
_ 1?" ' ' I ill -‘- S e responsabile Ie -rts 0. Ad

(-
l =

:_'...uuhf- ' _ : _ g .. 9 mm ”IEIw-‘ull.;;_-‘ - ll . , ' e Il‘O amma d1 aggloma-


.- ”Lafittfimm... I .. - I use I IT Ia
1.6.6 Rappresentazio -di as iazioni complesse fra dati rnento ' sottosisterna di rec- -. I;
..-:_-_ -.-- - -..= __
flil'l ' at l ' - ' -' =‘- - mm”!nommuufiumm'r‘ .
menteil ' ‘IP. “11W ”Mummy-.7 naripreso dalpun—
II dati associati in molti modi. Si consi-
Una base di dati pub comprend I numerose varieI 0111 «If 1 : o 'I rrotto in ma” :7 '3 : n‘LLla base «1 IE:' '.| effetm
ll record rela ~. . Brown nel file STUDENTE e associa- ‘
deri l‘esempio moslIato in Fig I . 1.2. compieto.
- I scum record di MGDULU e associate
to a quattro record nei file V ' ZIONE. In modo sirni
come a un certo n - I' record di VOTAZIONE — uno per
a no record di INSEGNAMEN .. cosi
Un DB -I eve essere in grade di rappre-
ciascuno studente che ha -. Ierato quel modulo.
comple sse fra i dati. cm I Ie di recuperare e aggiomare :- :‘.: :..... Jig. Ildatl
sentare una varieth di as I - iazioni _p-...;
i dati correlati facilmen ed efficientemente.


//
z; I . ' I nti di _ si nel paragrafo Irecedente c1 sono El. - III . - :-:--:‘., nell'uso
del-

ione divincolidiintegrité l 2- ' ' “ =1: ‘-‘-Ii"qLIItI cut IIssono ; ovarst me e organ“
1.6.7 lmpo
Fotenziale per ' orre standard. L‘approccimemette
di integrilfi che . -vono val-ere per i da-
Molte applicazi I - ' di basi di dati presentano fincofi e imporre stand fra utenti di basi di dati in una grande organizzazione. Cio fa ' '
per definir e e imporre questi Vin OH. I] tipo pill sem-
ti. Un DBMS I Ivrebbe fomire servizi
ciascun date. Ad murficazione e a cooperazione tra vari dipartimenti, progetti e utenti all‘intemo dell rganiz-
e di un tipo di dati
plice di vinCI. I di integrita compona la specificazion or.-. per ciascun re- zazione. Poss no essere definiti standard per nomi e formati di dati elementari, forma
' di vi-
she 11 valore del data AnnoC
esempio in gum 1.2 e possib ile specifi care sualjzzazione, sh'utture di prospetti, terminologia e cosi via. [1 DBA pub imporre gli s dard
rm 1 e 5 e Che i1 valore di NoI - deve esse-
cord relatiVI' a uno studeme deve essere un intero
Basi di dati e utentl di basi di dati 19
18 Capitolo 1

o spese generali per assicurare 1e funzionl di sicurezza, controllo della concorrenza, ripristi-
pib facilmente in un ambiente con una base d'r dati centralizzata che in un ambiente in (mi cia‘
no e integrita.
scan gruppo d'r utenti ha '11 controllo dei proprl file e do] proprio software.
Problemi aggiunt'wi possono sorgere se i progettisti e il DBA non progettano correttamen-
le del—
Tampa ridotto per lo sviluppo di applicazioni. Una ragione di successo fondameuta te la base di dati 0 se le applicazioni dei sistemi di basi di dati non sono implementate correl-
l’approccio con basi di dati e che lo sviluppo di una nuova applieazione - come i1 recupero di tamente. Percio pub essere conveniente usare solo file nelle seguenti cireostanze:
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 la base di dati e 1e applicazloni sono sempljci, ben definite e non si prevede che debbano
tempo che non scrivere una singola e specializzata applicazione su file. Perb, una volts che cambiare;
una base di dati e realizzata e in funzione, generalmente é richiesto decisamente menu tempo ci sono stringenti necessita di tempo realc per alcuni programmj che non possono essere
per create nuove applicazioni usando i servizl del DBMS [d3 no sesto a un quarto di quello r1- soddisfatte a cause del DBMS sovrastante;
chiesto usando 1m file system tradizionale). non e richjesto un accesso ai dati da parte di pin utenti contemporaneamente.

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 informa-
zioru al memento non presenti in essa. In risposta a do pub essere necessario aggiungere un Sommario
file alla base di dati o amuemare i dati elementari in un file esistente. I DBMS moderui con-
sentono alcuni cambiamenti alla strultura della base di dati senza coinvolgere i dati memoriz-
zatl e '1 programmi applicativi esistenti. 1n questo capitolo abbiamo definjto una base di dati come una collezione di dati correlati, do-
ve per dati si intende fatti regisu'ati. Una tipica base di dati rappresenta alcuni aspetti del mon-
do reale ed e usata per scopi specifici da uno 0 pin gruppi di utenti. U11 DBMS e um pacchet-
Disponibilita di informazioni agglomate. Un DBMS rende la base d': dati disponibile a rut-
to software di uso generale per implementare e mantenere uua base di dati computerizzata. La ‘-
ti gli utenti. Non appena in essa vieue effettuato un agglomamento di un utente, tutti glj altri
base di dati e il software nel complesso formauo un sistema di basi di dati. Abbiamo indivi-
utenti possono immediatamente vederlo. Questa disponibilita di informazioni aggiomate e as-
duato diverse caratteristiche che distinguono l‘approccio con basi di dati dalle tradiziouali ap-
senziale per molte applicaz'roni che elaborauo u’ansazioui, come sistemi cli prenotazione 0 ba-
plicazioni di gestione file:
51 di dati bancaJ-ie, ed a resa possibile dal controllo delia concorrenza e dai sottosistemi di n-
pristino disponibili in un DBMS. esisteuza di un catalogo;
indipendenza Ira programmi e dati e indipendenza tra programmi e operazioni;
Economic. di scale. L‘approecio con DBMS permette l’unificazione dei dati e delle applica- astrazione dei dati;
zioni, riducendo cosl l’arrmontare di dispendiosa sovrapposizioue tra 1e attivita clel personale mantenimento di viste per pill utenti;
di elaborazione dati in diversi progetti o dipartimenti. Questo consente all‘iutera organizati- condivisione dei dati tra transaziorlj multiple.
zione 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 (me- Quindi abbiamo esaminato 1e principali categorie di ulenti d'r basi di dati. o i “attori in
no potente). Clo riduce i cosfi operativi e dj gestione complessivi. scena”:

amminjstratori;
progettisti;
1.8 Quando non usare un DBMS utent'r finali;
analisti di sistema e programmatofi dj applicazioni.

Abbiamo notato che, in aggiuuta agli utenti cli basi di dati, ci sono alcune categorie di per—
Nonostantei vantaggi di usare un DBMS, c1 souo alcune situazioni nelle quali un tale sistema sonale di supporto, o “lavoratori dietro le quinte“:
pub componare spese generali non necessarie a {mi non ci 5i esporrebbe nella uadizionale ge-
su'one file. Le spese generali nell’uso di un DBMS'sono dovute alle seguenti ragioru: progettisti e unplementatori di sistema DBMS;
sviluppatori di snumenti;
1! alti investimemi im‘zialj in hardware, software e forrnazione;
dati: operatori e personale per la manutenzlone.
e ""eralifi' Fr"“‘ta da'w DBMS 9;." "‘P-finir‘ew1 elaborare _ _ '- ~. . \H - : .
___., ... . =5...” ..__ .. _’ p . . .3 3. .,.H::' -2 _ _ ...
Basi d1 dati e Lrtentl di basi di datl 21
20 Capitolo 1

dowebbero essere forniti dal software del 1.8. Qual e la difl‘erenza tra ridondanza controllata e non controllata? La si illustri con alou—
Abbiamo poi presentate un eienco di servizi che
progettare, amministraxe e usare una base all m esempi.
DB MS a DBA. progettisti e utenti per aiutarli a 1.9. Si defiriiscano time le associazioni fra 1 record della base di dati mostrata in Figure. 1.2.
dati: 1.10. S1 formscano alcune viste aggiunfive che possono essere necessarie ad altri gruppi di
centroilo deila ridonclanza; menu per la base di dati mostrata in Figure. 1.2.
divieto afl‘accesso non autorizzato; . Si eitino alcum' esempi Iii vincoli di integrita che dovrebbere verosimiimente sussistere
di dati;
memerizzazione persistente di oggetti e sb'utture per la base di dati di Figure 1.2.
azioni;
definizione di regole di inferenza e regoie Che usano
disponibilité di numero se inlerfacce utente;
rappresentazione di asseciazionj cempiesse fra dati;
impesizione di vincoli di integrith;
Bibliografia selezionata
furniture di backup e recovery.
dell'approccio can basi di dati rispetto a si- I] rim-new di ottebre 1991 Eli Communications ofthe ACM e Kim (1995) cemprendeno svariati
Abbiamo elencato alcuni vantaggi aggiuntivi arucoli che descrivono DBMS “delia prossima generazione"; moite deile caratteristiche delle
stemi tradizionalj di gestione file: besi di dafi discusse in questo numere some are disponibili a livelie commerciaie. I.l numero
0 potenziale per imporre standard; di‘merzo 1976 di ACM Computer Surveys ofifre una delIe prime immduzionj esistenti ai siste-
O tempo ridotto per lo sviiuppo di applicazioni; mi d1 basi di daLi e pub femire 3.1 iettore interessato una prospettiva storiea.
O flessibiiita;
gli utenti:
I disponibiiilé di informazioni aggiornate a tutti
O economic di scala.
ail'uso di un DBMS e abbiamo discus-
Infine abbiamo esarninato 1e spese generali legate
non essere vantag giose ricorrere ad esso.
so alcune situazioni neiie quali pub

Questionario di verifica
dan'. DBMS, sisrema di basi di dati, ca-
1.1. Si definiscano i seguenti termini: dati, base di
ndenz a rm progra mmi e dart, vim: d'utenre. DEA, meme
ralago di basi di dari, indipe
a‘an‘ dedum'vo, oggerro persistenre, me—
finale, Immazione standard. sisrema di basi a'i
azione di :ransa zione.
radan', applicazione dt' etabar
lgono 1e basi di dad? Le si tratti bre-
1.2. Quali 50110 i tre tipi principali dj azieni che coinvo
vemente una ad una.
proecio con basi di dati I: come esso dif-
1.3. Si esamininu 1e principali caratteristiche deii’ap
ferisea dai file system tradizionali.
progettisti cii basi di dam"?
1.4. Quali sane 1e responsabiiim del DEA e dei principaii atu'vith
Si disentanu 1e
1.5. Qualj 50110 i diversi tipi di utenti finaii di basi di dati?
di eiascuno di essi.
fumifi da un DBMS.
1.6. Si esaminino i servizi Che dovrebbere essere

Esercizi
zioni di aggiemamente informali Che si ri-
1.7. Si identifichino alcune intermgazioni e upera
zare alla base di dati mostrata in Figure: 1.2.
tiene ragionevole indiriz
..
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-servan-
te}. Questa evoluzione fispeechia la tendenza attualmente esisteme nella scicnza
wdéfEaIcola-
tori dove 1 grandi mainframe cenu'alizzgi vengono man mane sostituiti da centinaia di work-
station 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
111mm utente e fornisce e 11311 0 interfacce utente
grafiche GUI) am L‘ Wdefio modulo server, IIatta 1a memorizzazio-
memo. Lg ricerca e 3n flinzioni.
o ' uodurre concetti pit] basilari she consenfiraimo di raggiunngere una mi»
gliorc comprensione dell: modeme axchitetrure di basi di dati. In questo caEitolo presentme-
mfiiia terminologia_'_ e 1 ounce tto i1 libro.Com1ncerem'o
WW1 emandnumdflhfidaue definendoi concetti di schema e istanza .fOn
damentali perlo stu dibasididati WWW
DBMSel‘h-l » v -:-- Unuzl 'tSO fomiSCCUll'IJI'I'III I ‘

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
24 Capltolo 2

e associazioni. Un’entitfi
I modem di dati coneettuali usano concetti come entita. attributi '_"——I

oncetto del monmmnmmfime


.

2.1 Modelli di dati, schemi e istanze m rosenta un


dwil lg‘bm fim Un attribute rappEEEta una qualche r rieta dj mteresse e e
Un'associazione Ira
descfive pib a fondo un'entitiéeome i| nome 0 il saano HelinELI'ieato.
dati a ehe esso fomisbe un eel-to li‘ iazione lavora-
Una caratteristioa fondamentale dell” approccio con basl d1 WWI-exam un’mterazione tra 1e enfita; per esempio un’assoc
sulla memorizzazione degli stessi che modem) My;
vello d1 astrazione dei dati nascondendo quei dettaglj fi'vE tra on impiegato e an Rroggtto. Nel Cap1tolo 3 vex-ti presentato i1
mgdello di dati — 11:1 insieljae di eon— le di alto livello; nel Ca<
non sono necessari alla maggi or parte degli utent't. Un clazione Entity-Relationship), un populate modello di dati coneettua
di una base di dag: — fomisce imezzi come la genbralizzazio—
cm possono eigegygatiper cl 'vere 1a 51;! t plto o 4 vengono desoritfi altri concetti riguardanti '1 modelli di dati,
e questa astrazi one.‘ Per strutm ra di una base di dati 5i intendono i ne, la specialjzzazione e le categorie.
necessari Eefiifié‘lunger nei tradizionali
bero valere su di essi. La maggior pane dei I podellj di dati implementabili 52110 modem usativpifi frequentemente
tiE' dj dati, le assomanom e 1 vincoli cbe dovreb modelli di
nde pure un insiem e di operaz loni di base per speeificare recuperi e DBMS commerciali, e includoié il diffuse mod ' ti relaziona l cosi come
modelli di dati compre (eredith), cioé imodelli retice-
dati molto usati in passato e che ora costituiso ono una legacy
agglomamenti sulla base di dati. le, alle sue ope
modello di dati sta diventando sempre lare e erarchico. I Capitoli 7. 8 e 9 $0110 dedicati a1 modello di dati relaziona
montage operazioni di base fomite dal d‘insieme di due sistemi relazio-
amico 0W 12 ofire una viaione
pit comune includae "in case concetti per specifioare l‘ Iamom' e linguagg i, menu-e il Capitolo
ttista della base di dati W e nel Capitolo 8. I
mangdiun‘a lic 'ne ' '._§iati. Cio consen te al pggge mall.3 Lo standard SQL per basi di daft relazionafi é descritto in particulat
ente valjde, permesse sugli oggett‘l della ntabili rappreseg mno dati usando sb‘utmre di record e Rergg sono ta'-
cificare un insieme di operazloni definite dall’ut aodelli di dati hugleme

dall‘utente potrebbe essere fJALCOLA_MV, lora chiamafi W
base di daft}. Un esempio di operazione definita di modelli di
che pub essere applicata a un oggetto di STUDEN TE. p’alua pane. operazjgni ' E possibiie considerate i modelli di flafi a oggetti come una nuova fam'tglia
iLsegixe. cancel lge. {1911;1 93:113 reetE gqua lsiasi tigo di oggeno sane sgesso cogprese _dati impleagemabifi a Bit alto hvellg ghe_s_ono pm xjgini ai‘modelli dngfiEejmali. Essi
ortamento sono lar modteL _
' ti. Concett't per specifieare i1 eomp sono spesso anche utilizzati come modelli coneettuali di alto livello. ingartico
Wmm stanno anchc inoorp orando in modelli d1 are: ’
ondamentali per i modelli di dati a oggetti, ma si relazionali e a
" '
dati pin tradizionali — attraverso la loro estensione —, ad esemp io nei model ii I modelli di dati fisici descrivono 1_l_n;19¢unW—
presentando informggniLQmEJIQEDflLi-fig ' ‘ ' ' ' cammini di accesso.
oggetti. i arficolari race 1-
Un cammino di aecaaso é una mttuxaebe rende e '
". Per una tragazion e dettagliat a delle tecniche di memorizz azione fisica e delle
Ease];
Twin
mutton: di acoosso si rim ' ' '
2-1-1 W P...»-

base ai tipi di concetti da essi utiliz-


Sono stati proposfi molti modelli di dati, classificabfli in
zati per descr'were la struttura di una base di
dati. 0mg]; 2.1.2 Schemi, istanze e state di una base di d3};
in c ' mo ' tenti e ' ‘ at} men-
tua_li fonfiscono concetti che sono ' ‘ ' a1 mode tra la ifescriziane della
datl di basso livello o fislci fomisc ono ooncet ti che deserivono i dettagli sul Qualsiasl sia i1 modello di gm; oogfiifieram. a igportante distinguere
tre i modelli di della base di dati data-
' Iconcetti forniti dai modelli di dati di bas- bmdifi gtfila base di dan‘ stessa. La descrizio ne Elena schema
modo W Mi e non e1 si aspet-
so live! 0 50110 genera lmente destin ati a W W W cr, 112;: a umi. Tra Wa)‘; essog specificato durante laptogettazione (Ella base
._.._ .._.. bill cbe fomiscono conoetti di dati seguono oerte convenzio-
questi due estremi c‘e una class: di mode lli di dag‘ 'ggnlementa t_a_c_l;e_cambi frequentemente.‘ La maggior pane dei modelli
tani dal 1110610 in diagram mi. Una rapprese ntazione grafica di uno schema
ch 05 resi da 1i ten ' fin ' _n'1 per rappresentare gli schemi come
s i nasco ndono alcunj dettag li di memorizati-
CWWs erare pifi vicini a1 compu—
si posson o consid
zione dei dafi, ma proprio perché haplementabilj
ter stesso‘
edizione originals (in llngua inglese) di quo-
I modelli d1 dati redeolare e gcmchico sono descritti nella, seconda
sto libro, I: sono aoeessibili in Intemet ael relativo site Web.
usare schema: come plurals 251' schema. anche 9e
dati. per escro— Ne] gage in lingua inglese dello hast di dag a oonggehldine ‘
descriziono. o schema. di una speeifica base di schemata sarcbbe la for-ma pin corretta. La pamla .rchgme a talura
usata al pesto dischemn. ‘ "
3 Talora la parola modetto e usata per indicate una
a data 9.1 Let-mine [ale lntet'pretazionet i requisiti delle applicezioni delta base di dad
pio, il "modello di dati per il marketing". Qui not! I embiamenti nello schema soao generalmente necessari quando
riflette una tandem seegmjo la quale la progattazione j che li rendono possibili, per quanta tale
3 L'inelusione di coneettl per dejerivere ll eompprtamenlo cambiano. Isistemi di basi d3 dafi pin recenti comprendono operazion
via oombinate in una singola attivita‘ Tradi-
di basi di dali e le attivila dl pmgatazione dei
software vengono via proeeaso sia pill complicato dei semplici agglomameuti della base di dati‘
e associao a con la pmgettazione dei software
zfififiénte 1a speeificazione deir"eomportamento
“ A

L «a
26 Capitole 2 Concetti e architettura di un sistema di basi d1 dati 27

STUDENTE allora in poi. ogni volta che viene eseguita un‘operazionc di aggiomamente, si ottiene on al~
1 Nome 1NumeroStudente1AnneCerao1GorsoLaureaj no state della base di dati. QEalsiasi sia l‘istante considerate 11c] tempo, la base (11 dati ha one
state cor-rents.“ E in arteres onsebili ' ' ‘ a-
" ‘ ' ' at ‘ e ivincoli s ec' ' sche—
INSEGNAMENTO
ma. Di censeguenza, specificare uno schema cor-retro a1 DBMS e estremameme importante, c
[Nemelnsegnamente1Codlcelnsegnamente1 Ore 1 Dlpartlmemi1
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
PROPEDEU'I'ICITA software del DBMS puo riferirsi allo schema egni velta che he he bisogge. Le schema é tale-
ICedieelneegnamento1 CodlcePropedeutlci‘ta 1 me e une state della base di dati estensione della schema.
W comefieemnrecgisaga, che lo schema cambifiggnegge-
MODULO Won e Eoi cos! eccezionale che $1m
1 ldentificetoreModule | Codlcelnaegnamento1 Semestre 1 Anne 1 Decente 1 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
VOTAZIONE schema di STUDENTE dj Figure 2.1. Go e note come evoluzione della schema. La maggier
NumeroStudente 1 ldentlficatoreModuto 1 Vetoj parte dei DBMS moderm' include alcune eperazieni per l’evoluziene Hello schema che'gossn;
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 W
1e
di dati iFiggra 1,2; i1 diagramma rappresenta Ia strutrura di ciascun dye di record ma non
istanze cffettive dei record. Si chiamera ciascun oggette dello schema — come STUDENTE o
INSEGNAMENTO — em. TreIi rtanti caratteristiche deil‘ ' n basi di dati, clencate nel Paragrafo 1.3, sone:
'a ramma di schema rappresenta sole cem' aspem' di uno schema, come i need dei ii) a re ammiedati indi endenza re '-datie re ammi’e erazieni);
ad
vari tipi di record e dc: dae, e alcuni tipi di vincoli. Altri asgetti non vengono Ecficad;
1 u . 4
(2) so e ' '11 viste d‘utente; (3) use di un catalogo per memorizzare la descrizione {so c-
W
esempre 1a Flgura 2mm 1]
I u
true
I
d1
a
dau d1
- I
c1ascun date né 1e assoc1amoru Era 1 va- ma) della base di dati. In questo paragfi'fiverra analizzata un‘archftettera per Slstemrm di
r1 file. Meffi tun 31 vincoh non sone rappresentati nei diagramrrfi di schema; per esernpio, un ’d'a‘ti: detta emu-1mm a ire livelli,1 che e stata propose: per ajutare a ragg'xungere e visualiz-
TirTcelo come “ 1i studenti che stauno fiequentando Inge neria infermatica devono superare zare tali caratterisfiche. Verra in secende luege discusso il concerto di indipendenza dei dad.
l’esame dell‘insegnamento di codice C81310 puma della fine clel seconfio anno Hi cogeflI
E
iuttoste r 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
2.2.1 L’architettura a tre livelii
pie, 1&- -. ‘ .
ewmserittulmmmwym m1; one studente. I dati nella base di dati ig un particolare istante di
1 m i ' di and o l’istantanea della base di dad. Sgarla' an—_ L’ebiettivo dell'gchitgmga 11 Ire Livelli, illustrata in Figyra 2.2, a guelle di seEarare 1e appli-
’ 'nsieme c ' ne di dati. In no certe state della ba» cazieni dell‘utente della base dj dati fisica. In quests architettura pessene essere definiti sc e-
se di dati ciascun cestrutte dello schema ha i1 re rio insiem c istanze‘ ad esem 10 mi ai segyenti tre h'velh’.
' enterra l‘insieme di entita ord) di ciascuno studente come sue
1. II livelle inter-no ha uno schema intemo, che descrive la struttura di memerizzazione fi-. _ .
15:31:23, Si possone cestruire me t1 stat: e a base di dati che si accordino a un panicolare srca della base 1:11" Jan. Le schema inferno use on modello fisico di dati c escnve 1 ' _ -'
schema della base di dati stessa. 031101111 che viene inset-lie o cancellate en record. 0 cam- gli completi della memerizzazione dei dati e dei cammini di accesse per [a base di dad.
biate 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 defl-
m'sce one nuova base d1_daLi. si smififl i_1_§uo schema solo a1 DBMS. A queste punto '11 cor-
rispendente state della base di dati e10 state more, senza dau'. Si raggiunge 1o state iniziafe 6 Lo state con-ems é anche dette fsramanea cements della base 111 dati. -- -
de" ‘ se di .g‘ ' land: .. " ' Taper "as vof‘“ Maelstr- n caricata cm- ? dati ini'riafi. Da 7 'e. 9.4.. anche ,1: "m“pctmra ARTCUSPARCTAH: ".9313 dc]: mush-.110 che l‘bn ”a {Tninhr‘nzis g, mom
Kay-«M -. “a..." M M W M W www w:
Concetfl e archltettura'di un sistama dI basi d1 dati 29
23 C '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—
portano viste d’uteme, cafi neilo stesso modellofii datiche de~
VISTA VISTA scrive 1e informazioni di Iivello conccttuale. Aitri ancora consentono di usare modellj di dati
LIVELLO ' ' ' ESTERNA ,
ESTERNO ESTEHNA (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-
no a fivello fisico. In no DBMS sul ‘ ' ' ' ' ' '
mapping W.c W
.
estemolconoetluale spflifinmm uWWW
I’l' . 'II III.—
I I.I‘II: I III I‘ll‘:.|'u:. .
,."Ili‘-II ' .Oi’ll -.

ONCE'ITUALE ‘1 £118- SW dwnmmmmmom


LIVEU-O F L'VELLOC WV ‘ ' ' Wm
GONOETTUALE sformazione (1i ricgjgsjg e risullau’ 1:3 Wfimmazioni). Questi Bos-
sono essere dispendiosi in termini di tempo. cosicché alcuni DBM§ — specialmegm qnglli de—
sWi gafi — non supportano vista esterne. Pure i ' ‘ ' -
mapping concettuaiefinterno
t_a_\;_ia, um certa quantize di mam a necessaria per trasformare le richicste tra i livelli con-
cettualc e intemo.
.__,_..—-—-
LNELLO SCHEMA INTERNO
INTERNO

2.2.2 Indipenden ' '

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 Slste-
BASE DI DATI MEMORIZZATA ma di basi di dati senza dover cambiare lo schema al livello immedjatamente superiore. E pos-
sibile definue ue upi di indipendenza dei dati.
ura a tre livelli.
Figure 2.2 Illustraz‘lone deH'architett
l. Indipendenza log'ca dei dag. E la caEacita di cambiare lo schema concettuale senza glo-
ver cam lare Li sche ' estemi oi ro ammi applicativi. Si pub cambiare lo schema con-
cettuale per espandere la base di dati (aggmngendo un tipo di record 0 un campoJ 0 per ri-
.3 c . .- b “ Hurla irimuovendo un tipo di record 0 on camF o). In quest’ulfimo caso gli schemi estemi
_....-
2. 11 live , co
cettuale ha uno schema
the Si riferiscono 5010 ai dati fimanenti non dowebbero essere intaccati. Ad escmpio 10
se di dati tuna comuoité di 11 L0 “hem concettuale nas _ , 4 d _
sulla descrizi ' _ schema estemo di Figuxa 1.4(21) non dovrebbe essere influenzato dal cambiamento del fi-
ture di memorizzazioge fisica e si concentra
an 3550'
uesto livell essere usato un modello d1 1e VOTAZIONE di Figura 1.2 in quelIo mostrato in Figura 1.5(a). 5910 1a definizione della
ciazioni, geruionj degli mead e vincoli. A orta l’indi endcnza lo-
idati im leme ta ile. vista e i In ' vono essere modificafi in 1111 DB
' u J'Ste d‘u- ema ester-
-. 1 - n' ”1's:
. . gica dei dati. I program-mi app ca 1 e anno rifefimento ai cos '
‘ ' =
art: della base di dati a cui e interessato un nmlavorm come puma. WWII-Hale e ssato sottoposto a una
£11132 Ciascuno schema e temo descriv la usau un
I nasco ndend oi . n'B'rganizzazione logica. Si possano anche eseguire cambiarnenti ai vincoli nelio schema
Rarticolaa'e $11290 di utentj
0 un modelio di dati implementable. con—cefififile senza per'questo influmzare Eli schemi estemj g i Brogan-mi agglicativi.
_____llo
mode .___... .._—di aho livello
di dati
2. Impenaenza fisica e: a . la cagacita di cambiaxe lo schema intemo gemca dover
cm (0 gli schemi estem'). Cambiamenfi ailo ache '
possono essere nmhé a ' ’ ' vggo esserei-iorganizzati — ad esemgio
-———-——————‘ di Iivefla Eagico are le prestazioni di rccupem 0 di ag-
on Is in letterama si parka pill frequentememe creando strutture di accesso addizionali —per miglior
Anziché di Iiveflo concerrmie e di schema contagi
o : imanere adercmi a1 ncslo ofiginsle in lingua ingleee. (ma-r.)

e di schema Iagim rispelti vamen te; qul 51 e prefent
Concetti e architettura dl un slstema di basi dl datl 31
30 Capitolo 2

di prima, non dovreboe assert. cificare 10 hema intemo. I mapping tra quosti due schomi possono osserc specificati nell’u-
giomamonto. Sc rimangono nclla base di dati gli stessi dati 'tetrura 11 Ire livelli si avra bisogm
mmno d1 accesso __ gger Ella var
110 o nell’altro di guesti IlngTa-"T’
n cessario cambiar lo schema concettuale. Ad aemmca non term llnguagglo. i.l lingnaggio di definizione delle vista (VDL: Flew aeEI-Titt'on Ianfiiafifl
lramite Semestro e Anno
Ber miglioraro il moupm g1 record di MODULO (Figure. 1.25 per sgoclficarc I1: vista d‘utoyige i loro mapping nello schema ooncettuale ma nella maggior
e richiede rc il cambimnonto di un’intcrrogazio ne come “elenca tutu 1 modull am-
dovreb
c eseguita £11; DBMS pitl effi~ ELEM E usato per definire sia lo schema concettualc sia lo schema cstcmo.
van ncll’éfitunno 1998", anche so l’interrogazione vetrcbb Una volts che gli schemi sono stat1 compilau' e la base di dati é stata poEoIata. gli utenti de«
oxentcmentc tramlte l‘urifizmoo d1 ago—39:50. vono avers degli SW Le manipulazioni fipicm
dove cssero ampliato Ear ag-
Ognl volta che Si ha umm‘liflalllisuo catalogo no 11 rccugero, l’inserimento, la cancellazione e la modifica dc1 Han. II DBMS fornisce un lin-
so come mappar e richicste e dafi trai var] 11vcl]1.llllDBMS_usa softwa- gnagg'o di manipolazione dei dati {QMIJ data mafigulafiormnggage! pEr questi scopi.
giungcre informazjoni
os1 alle informa m c_ u . - 1 1 - l cata-
re aggiuntivo per realizzare questi mapp1n-ntcrend .II: .
‘-
tuali 1 ti 1
u.‘ .
ljgl, n1cwndenzad' ‘ I =,-_I' . II n ’u
Iinguaggi distinri; pluttosto, é usato un linguaggio integrate glob-ale, che include costrutti per
nnmutato; solo 11 mappmg tra1
vello, lo schema a1 livello innnediatamcnte sugcriore rimane la dofinizione dello schema concettuale, per la definiziono defle 111516 e per la matfipolaziono
catia
due livelli vicne cambiato. Pcrc1o 1 program appfi '
£14311. La dofinizionc dclla memorizzazio'ne 6 ti ic oc c
. . 'one fisica 31 fine di mattere a unto
di pill alto livcll‘o non devono essere cambrau. e usata or e Hire strutture di me '
livelli pub reodere pifi sam plm mm mwl aol ststcma di basi di datl ed 6 usualmcnte utili BA. ‘ '
mtettura a trc
1m aurnento d1 elabgrgmnc
daft, sia logica sia fisica. Tuttavia, i due livelfi di mapping creano IEguaggio global: e il linguaggio per basi dj datl relazionalj SQL (si veda '11 Capitolo 8), che
0 dj un programma, portando a Winazmnc 1 D . L c DML. cosi come 15mmm' ‘
durante la compilazione o I’csccuzione d'1 un’interrogazione
a-
incfficie
’——_——— nze 'n'e1 D‘BM‘ s. A causa di E215, pochi We impleWt ne 1 men 116 c 0 so mama-SET. era nu gogpoggnte di SQL nelle suc grime ver-
1c arclutettura. mato mnosso per mantener o 31 livelli concctm‘hle ed estemo.
___________—————' ”‘Ci 50110 no op1 priocipali di DML. U11 DML di alto livello o nonprooedurale pub esse-
re usato do 5010 or ificare in mode concise o ' ' corn Iesse sulle basi d1 dati. MEI——
t1 FEES consentono chc isu'uzioni DML :11" film 112' 3119 vengano inscrite interattivamente da
2.3 Linguaggi e interfacce di basi di dati un terminale (0 monitor! oggure vengano incaEsulate (embedded) in un Iinguaggio di Ero-
grammazione generflfurpose. In quest’ultimo caso le istruzioni DML devono esscre ricono-
saute all’intomo del programma cosi d3. potfflmere estratte do on precornpilatorc cd elabo-
di un DBMS. Il DBMS dcgg fornire rate dal DBMS. U11 DML di basso livello o procedurale dare esscre incapsulato in un fin— 1-
Nel Paragrafo 1.4 E stata prescntata 1a val-iota di utenti
riati per ciascun a categor ia di utenti. In gugfigo gang. afo vcrranj guaggio di programmazione general-purpose. Questo tipo di DML tipicarnente recupera sin-
linguaggi c intcrf c e a ro
QEMS e le categone d1 utentt a cur We 1i clabora soparatamente uno ad uno. Ha quindi bi-
“no esgmiEati ' ' 6Fc'TjEEuEP1%ifie—rl'fifcc fpm‘ti do un
nno di usare costmtti per fingggggj ' programmazionc, come l’iterazione, Ber rocugcrarc
E destinata ciascuna interfaccia.
m 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 Ero-
priEta. I DML di alto fivello, come_S_0_E possono sggcificare e rec-upstart:- molti record in una
23.mm iii—#5013 istruziooc DML e sono 119mb deitl get-gt-a-fime o set-oriented DML mil—411:.
sicmo-gHg-volta od orientati-all’insiemgL Un‘interrogazigMWlfljmw
Una volta oh: la ro zi ase di dati é stata completata e Che E state scelto L111 sEocifica guali dafi recumraro m’gfigfio ch; game recugerarli; gercio guesti linguaggi sono an-
qucIlo d'1 specificare g1: scherm con- CW
DEIN‘IIS per Myloggentgrla, :‘l principale obiettivo diventa
ta- una se- Ogni voita che comandi DML: di W10, son ' sulati in un linguaggio
tt ale ointemo e 0 mi ma in traidgg. In molti DBMS nei guah non E mantenu
di definizione del . datl . gDDL:‘
u
C:arazion e netta tra livefll 1m solo lingyaggi , dfl fi' flag—{lo WW. quel linggaggio vieoe (lotto linggaggio osnite (host—31L
3 dai Erogott isti Ber definite entramb 1 Eh schema. gage) o i] DML é dotto lin ' ‘ ' la estione dati? D’altrondo un DML _
W), M ni DDL
di elabora te le islxtlzlo
11 S am on com ilatore DDL la cui fup‘zione sarh quella
costrntt i dello salon-1a e per mmotiz zaro la descnn onc delio
WW del
scgqrflpel catalogo del DBMS. Nelle bnsi di dati a oggeni, i1 linguaggio ospite r. i! Iinguaggjo specializzato par la gestione dati formal-10 fipica»
‘1 livelIi concettualo e interno.
In quei DBMS in cui é mantcnuta una netta distinzione tra menu: on solo linguaggio integrate - per sample. C++ con aqnc estensioni per supponare la Eunzionafith per
4 DDL é usato per soecifica oe il solo schema oonccttu alc. U11 altro linguagglo, ll lmggagggo basi di dati. Anche alcuni slstemi relazionali fonfisoono lingunggi lntegrati — ad escmpio il linguaggio I’IJ'SQL
ll
37.“. izion . .. m "132101;“ [on] . fl'nrnaafiefillifinn Wage}. 5115a we; di ORACLE.
> .
_
L.._._._ da—-—- ”KW.“ —--__ ———.._H -——M ‘__. MP; W w
Concert! 6 architetra' dl un sistema d1 basi dl 1:19.11 33
32 Capitolo 2

di interrgggzione (quegg W111. Accettano richieste 56W


di alto livelio 1151110 in modo interattivo kW aecencano di“ca 11113”. WWW—mm;
sia guelfi, 111 11331Ew ento 911 an DML :11
language) 111 gene-tale! sia mew m____1_1_". che E smnle 11110 schema concettuale della base di 111111. e fa rifenmento alle pamle'1n es-
Ifi -
Were WW so contenute 0051 come a un msicmcfigamleflandard, per interpretare 1a richiosta. Selin—
o 11::1one.'D
-«Pa spe- WWW F W-
Gli utgnti casuali fipicamente usano un finWflfiufl natttrale e 13331111111111- al DBMS nerl‘ elaborazione; al-
en e a a richiesta 1n Engaggio
n W
cificare 1e 1010 ric_h__i_este. mentre i programmed gfim 11 DML M
11111131111 1n121a 1111 dlalogo con l‘utente per chian're la richjesta.
1111:1111 non 1101;15:13 1-137.". param etrici ci sono di n01-
Come si vedré nel prossimo paragmfo per
esse possono essere anche usate
ma interfacce amichevoli peWWJELEEfiE Interfacce per utenti mtfici. Gli utenti parametrici, ad esempio i cassieri d1 banca
re i dettagli di un linguaazio di in-
Wm uten1i che non vogliono impara 5136530 11 trovano a dove: eseguine tiLtutamente un piccolo Insieme di operazioni. (111 21112111-
MW.
terrogazione
5111 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 ab-
b_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
2.3.2 We dei DBMS comandi).

o comprendere 1e interfacce seguenti.


Le interfacce amichevoli fomite da un DBMS posson Interfacce per 1] DBA. La maggior pane dei ‘ ' ' ' ' '
ggati che possomwmtmssi inciudonogornandi gar create ac-
nte W111. detti menu, che
W. Offrono ail’ute
I menu eliminano la necessita (ii memo- count Per fissarc Pmmeui d8] wste per WWW—mam—
WW“ M;,piuttosto. l‘inteno— btate uno scfiema e norgamzzare 1e strutture di memorizzazione di una base di dati.
rizzaIe i comandi e la SWWW
flsmflfihLflma
gazione e composta Basso passo selezionandgnm
Wfifl mce
L‘uso dei menu pu11~down(a 1scesa) stW
' cl'te consentono
utente sate su finestre Sono spesso usati 111 interfacce
Hba
a un utente di scorrere il contenuto di una base 1:11 1
(1311' 11 modo esplora tivo e destrut turato. 2.4 L’ambiente di un sistema di basi di dati
I Gli uten ti possono compi-
W.. WWW 10c ——-—.————1-——---].
oduio e1
Ian Un DBMS e 1111 sistema software complesso. In questo paragrafo verranno analizzati'1 tipi di
a, W component; ggfifleare che costituiscono yg DBMS e W
DBMS recuperera= per gym mnceme i 0311121 Emm
specifi cato. I modul i sono usuatm ente progen ati e programmed Eer- utenti non sofisti- DBM tera
quanto
d.
CWCC alle transa_2.on1 stanggxdMol ti DBMS dis
odufi , lingua ggi spe__cia li che aiutano i programmatoori a smificare 911e-
sW un ulo
che sento
smliilLNcuni sistemi hanno 10 ammi di utilita
tramite 1a costruzione mterattiva, da parte dell‘ut
ente finale. di_11_n moduio campione sullo 2.4.1 Moduli componenti un DBMS
55111111110.
1n Figggg 2,3 50m; 11131511afi. in inmasemphficam, WWI-Me
all’u e te :11 dia—
WW1 icamente mosttano di dati e il catalogo dei DBMS somunhtamentennemonzzmmdtaco. L’ accesso a1 disco e
' " 'one mani olando nest’ultimo. In mol- trollato essenz1a1mente dal 5181 11v: 0 eratin 1 st , chone pianifica - - I
331111-113 L’utente 11110 11110111 coW S
uctilizza no sia menu sia modufi MW l'mputfoutput. U11 egestore dei dati men-1011221111, modulo del DBMS a p131 alto Livello. con
11' casi, 1e interfacce grafiche
itivo di 21111111111t . ome 1111 mopse, per se emonare certe parti del diagramma di accesso
troila l‘ac omiazioni del DBMS memonz 5111110 ease pane e 21 11
djgpos
schema visualizzato. 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
moria a pnncipaie 91111321111111.1191: 111a co
in inglese (inrermgazione 11111111111110}. il Linguaggio d0—
1° Se 5i dovesse guardare ii significato della 11310111 query come la gestione di bufi'e_1_in memoria principale. Una volta che 1 a
recupen 11011 aggiomementi.
vrebhe 1n realm essere 11111110 per descrivere solo
Concetti e architet‘tura-di un sistema di basl di dati 35
34 Capitolo 2

muggflgg‘rli ilatore eggs comandi DMl. da un program-ma agglicativo scritto in un lin-r~


guaggio ospite di programmazione. WW
ar 1’ accesso alla base di dati. Il gesto gel @031a
etaltdlDEIA £3; 1mm ”Samba viato a1 comilatore del finggaggio us its. Quindi i1 codice oggetto per i comandi DML e
fluello per il resgg e1 programme sono messiTn collegamento (linked). tonnanoo mama-
”WNW __z_io_ne standard i1 cui codice eseguibile include chiamate al processore di EEEuvinne delayi-

Camplhm “I Con la Figura 2.3 numb intesowwsl gganto Eiuttosto illu-


‘Wm 039““ strar; tigici moduli D_I'3_M_S. II DBMS imeragisce con il sistema operative quando sono ne-
cessari accessi a1 disco — alia base di dati o a] catalogs. Se il sistema di computer é condivi-
r """""""""""""""""""r """"""" ‘ " — 'I
“will?“ ISTglilfiI-ONI mussfigg' : so da molti utenti, i1 sWianifichera 1e richicste d1 WW
:
‘ ' mm L mm dei WWS WWW
'.
: O 1 Mi oWone general—purpose. Interfacce utente amichevoli ai
'l wificaré E‘sye
DBMS Bossono essere fornite 2e: gimme ogni tigo di meme lbw
: :_ " ow.

l i ——d 1 W
Processoredsl: esac - E
i E
:
'. basadldati
Programmi di utilité di un sistema di basi di dati
I
2.4.2
Snuolnslam‘l dl cull-01h) dell: commenter
bsclwpfmcovary di
Oltre a disporre dei moduli sofimreappenadcscritti, 1a maggjor Ear-re dei DBMS dispone
""""""""" .
mernorl .

9 di utilith er basi di dati che aj 0 il ' 'l ' a di basi di dati.


”“
I comuni programmi di utiliié svolgono i seguenti tipi di funzioni.
. . . . . . . .
BASE DI DA.“ MEMCRFZZATA
.
1. Cancamento. Un’utl
. .
e u er owe WSW—=00-
Efiflgfig 0 file sguenziali — nella base di dati. Di solito il formato crgme (sor-
accessi che sono sotto ll gente) dei file di dati e la struttura desiderata gobietdvo)fi§i_fi1efi:ua_hasadafison0-Spflr
Figure 2.3 1fiplci moduli componenti un DBMS. Le linee tratteggiate indicano
controllo del gsstore dei datl memorlzzatl. cificati a o amma di utilité, che guindi Induce m—dp-
‘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
azrende offrono prorlotti che generano programmi di caricamento appropriati, {13$m
moria principale,. essi lags-some essere elaborati da altri moduli dei DBMS, cos] come da pro- scfizioniesistenei dolls modalita di memorizzazionergllo bqsefiésdatisorgente e obieLtiyo
W (schemi intend}. Summidi—qwmfipG-mnoanchacbiamafifimmflfimonefl
“V'? .
gramrm applicatm.
a de-
I! Hfmpiiatore DDL elabora definizioni di schema, specifieate nel DDL, e memorizz
' aziom' co« 2' gggfifWWW—hwm dau‘ dl‘flfi‘ifig
sgigipni defiji sifiEmMmetadatiMelcatalo o 1 B . , ' “ ‘ ‘ _ _
file informazio m 111-311, ' ' -- a - . H
' '
L—fls ernoml ' ‘
(1311553313111 'd ', ' d tta 'dimemori
6? eati-lcofi—gmfi inh .
zzazione diciascun
. . . . ..—- ’. . a— . ase d1 dati 1n caso di 1 asto ata u: . ‘ ”.9
l'E 'flil' _ nei quali sono re 'stra ‘ ‘ ' ti dal backu backup incrementa—
W. . m.
llllLE llSI “11'
”L. E llIJBHSi W

1e e iii comp esso ma consente di 1'13 armi


talogo quando ne hanno bis
. nu ' un’ no 1 morerrrentare lc restazioni.
. lessore di ', ganjzzazione di on file de a base di an.
duranie l‘esecuzigng; ric - - - . i. - . - - -.-_-:_ue sulla base 4. Wazme utilité controlla sistematicam eme l’uso dej._la_bg-_
store dei da' memorizz ati. H mpflatm ‘ _ fil . 11' 1
a esse .
per prendere decisiouj, co—
fling; L‘accesso al disco passa attraverso i1 g W
mm- me ueHau
3:93;;— e formsce siafisncfie a1 EBA. il quale tie
dellejntemgazioni gmmmmflm
jmgw W
W W i me, 3.3m 13 compm_
m
g o inlemregg gn'inm mam
gazjone mamaesegu dj Alt: .1. E no ESSENWWmmC
L .61.;595 analizza e gompfl
mama-ESscan. whimsy a1 processors di esecuzione per
ire :1
MSW base di dati e Hindi .- "'
gli utent i.
-— _.__ _ -_ sione deLdRfimolhre—liaccesso-drpane‘de
unr- -:3-*- _; —-g.-*- '. .55
.4.“ @593 . _ i
. .i . Lg 1'
Concetti e architettura di un sistema di basi di datl 37
36 Capitoio 2

11" marchico e 511 gmeilo reticulare. I DBMS relazionaliw ontinuamente e.


2.4.3 trumenti, ambienti a licativi e ' '
WWW ' ' 133311 :3; E551 di flag gog-‘
funzl'onmo‘lfiufifi'a—zrgne: ge_tti,Ci9_i_1_a mtato a una nuova classe di DBMS: si ma infatti di DBMSfljfizinnalLemaog-
gettirBasanfiQ§i sul modello di dati e percib possibiie classificare i DBMS in: relazionali. a
Spesso sono disponibili altri strumenti er i re tisti e er 1i utenti di basididati no riggtti. relazionali e a oggetti, gerarchiei, reticolari e altri.
trumenti E“ W ro e ' t - 35mm uWe i DBMS e quello del numem dj agent: supporta-
pen
u 'lita 13m 19 dal sistema. SW supportano soio on utente a11a volta e sono per lo pia-
m WE usati con personal computer. Sistemi multiutynte, che ineludooo la maggior parte dei DBMS.
33W“ (0 denosito di dafi). O
dei fiat; j mmagazzina altre informazioni, co— supportano p111 utenti simultaneamente, ‘
di catalogo su 1i schemi e i vincoli: i1 dizignm'o
' ' di r0 mmi applicativi e infor- Illa terzo criterio E-il nmero di siti sui guali e disgjhuita la base di dati. UflMS e cen-
me decisioni di Erogettaziggg, standard d’usoI desc '
e anche detto deposits di 1 ormazrom. A tralizzato sWWWMMQQflLl-flg U...” D__B_,___MS centralizza____to
mazioni ger gii u_t§_n_t_i. Un sistema di questo tipo
Efi utentt o 11 DBA quando esse si rende- W ma i1 DBMS e la stessa base di dati risiedono totalrneote in on
queste informazioni ossWEfle— . Un DBMS distribuitg (DDBWSLnum
arie. Un’u ' ‘ e1 dati simile a1 catalogofiei DBMS, ma mciude una o ' ‘
no necess a -
' ’' ‘ ' ' onnessi da unarmdigpm—
base di dati vera e propria e il software di
I . a

m u . .

$3;m
M p .

Enter. DDB omogene UW‘ Una recente tendenza e que—ll-a’


Wdi sviluppo applicazioni, come i1 sistema PowerBuilder, stanno
diventando di sviiuppare software per accedere a numerose basi di dati autongnwmdz-

sts em; omisco no un ambien te er lo svilu o ' ' ioni di 2W DEW Ci?) ports a un DBMS federato (o sistema a basi di dati gush.
pipttosto popoiari. Quesu '
' ' ' ' ' ' £9.15} in cui i DBMS partecigaoti sono debolmente acgoggiati e godono di un certo grado di
bfiifiifiafi-fljflciudono funzioni che sono d' di interfacce grafiche, 1e interroga- We. Molti DDBMS usano un'archjtettura client-server.
di dati, tra eui la Erogettazione di basi di gatiJ vilu
1. ' '. n quarto criterio 6‘: i1 costo del DBMS. La maggior pane dei DBMS costa trai 10.000 e
13 li aggiomamenti, nonché lo sviluppg (ii Eroggamrm any
3212E54DBMS ha anehe bisogno di interfacciarsi con i
‘ , 1a cui fun- i 100.000 dollgijI Sistemi a utente singolo e a bmeheepfimw-mfifleeefiipmfio-
a di consentire ag 1 utenti in ostazioni remote r1
tto a1 sito del sistema 31 Easi stano tra 100 e SWolifi Al lato opposto c’e qualche 1’aWetto pamcoiarmente sofi-
zi
wonksmfimoilgmnensg; stieato cTne costa m ch 100.
di dati di accedere alla ase
Sipuo classificare un DBMS anche sulla base delle opzioni per i tiLidi cammini di ac-
nal computer locali. u sti sono connessi
ICti locali. o dispositivi di comuni- cesso'zemonzzmfilem fmmummfimmflme tra-
W0, ' ' 'ca—
caz’ ’ ' olt' istemi ' ' ’ ati ' r @3l-
il DBMS . 11 sistema integga to DBMS e Easfer imento dag," é detto siste- mmg-tmpgngza le Brestazioni: un DBMS special-Rumose Euo essere progettato e costruito
zione che lavorano con
alcuni DBMS distribuiti sono ripartiti W on tale sistema non pub essere usato per altre applicazioni sen-
rna DBJ'DC (databaseldata comnmnications}. Inoltre
casg, per conne e ace ne sono nec retl zamodifichemdicali. Molti sisterni di prenotazione aerea e di elenehj telefonici sviluppati nel
fisicamente Ira pit macchine. In guesto
networks). ma anche di altro tipo. awnflBMS—speciflmsgflufifliono neila categoiia dei sistemi di elabora-
di comunicazione, spesso reti Egan (LANs: iocal area
'.———-—.
' ' ' ], che devono supportare un gran numero di transa-
M . .
mom conconeW
’ Siragionj ora brevemente sul principale criteria di classificazione dei DBMS; 11 gogeilo
2.5 Wei sistemi di gestione M110 di glati relazionale di base raporesenta one base di dati come one collezio-
' ne di tabelie, dove ciascuna tabefla pub essere memog‘gzata commute. Lam
cli basi di dati W2 e presentata in mode molto simile a una rappresentazione telazionale. La
maggior pane deile basi di dati relazionali usa i1 linguaggio di interrogazionflLfltofiuello
. Iiprimo e quello de1 modello di d,eLm_S.QL.e suggona una torn-1a limitata di viste d’utente (per 1’ anaiisi de] modeilo relazio-
Possono essere usati svariati criteri per classificare i DBMS
1 due ti idi ' ' ' ' ' ' nlale, dei suoi linguaggi e delle sue operazioni, nonché di due sistemi commerciaii campione.
(139' 511 cui a basato i1 BMS. i. Mmjpplb
lo d1 dati n e 51 rinvia ai Capitofi 7, 8, 9 e 12}.
commerciaji sono i1 modelio di dati relazionale e i] model
1th operano an em: s1 1 ' ' - 11 modello ii dati a oggetti definisce one base di dati in termini di oggetti, delle loro pro-
cazioni lasciateei m er
M Exwmgetfi 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
ring (ingegneria dei software assistita dal computer).
“ Benché CASE stia per Computer Airied Software Enginee
pet-1a progetta zione di basi d1 dati.
W‘
molLi strumenti CASE sono nsati principalmente
Concetti e architetbura di un sistema di basi d! datl 39
38 Capitolo 2

Abbiamo poi disfinto Io schema, 0W base di dati, dalla base di dati stos-
INS EGNAM ENTO sa. Lojguma non cgnhiunolto spesso, mantra invece {o state della base di dati cgflbjgggni.
STU DENTE
volta che vengono insoriti, cancellati o modificati dali. Abbiamo quindi desoritio l’architetru-
,___.___._.._..._..
OFFEHTEJNSEGNAMENTO E-UN WE di u nsente tic livclli di schemi:
HAJJN
if a uno schema antemmmgmmmmmnmmuamfim
TI STUDENTE o uno so a ' 'zione di alto ' ll dell'imera base g" Qati;
V0 ‘ MODULO PHOPEDEUTIGITA
o W dcscrivono 1c vigg di divorsi gruppi di utenti.
[Jn DEMS che separa in modo netto i tre livofli dove disgon‘e di map-0mm gli sc'lggmi
VOTLMODU L0
per trasformare richieste e fixing]; da un liveHo a1 sucoessfiro. La W
non separa complctamente i Ire g‘xgflj. Abbiamo uggto l’architettura a to livclli per definire i
VOTAZIONE c nocttidiindi denz ' '10 i ' a.
del modello di datl roticolare.
Sono stati poi studiati i tipi principali di Wm
Figura 2.4 L0 schema dt Figura 2.1 nel1a notazione linguag i0 1 definizione d ' ' definire lo schema concet’ruale della ba-
se dad. Nella ma 'or 2 doi DBMS il DDL definisce anc e e v15 6
@613 memorizzazzione; in altri DBMS a tale scopo possono esistorc mmscpara—
nali e a o ' ‘ mi relazio-
ti a oggetti e altri sci-vizi; questi sistemi sono detti relazio _ _
411W DBMS compila cutie 1e definizioui di schemi e W
\" . . . zioni no] u ' ' ‘ mani olazione dati ML é usato rs ' -
nali atesi.
tipi di record e on opo inmtato (i1 assoc1a- caper] e aggiomamenti effettuati sulla base di dati. I DML possono csscrc di alto livello (set-
‘ 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 onon o , no 1 0 di basso livollo (record-edema , prose ura 1 . n aito ].i~
tati come retumgoh c 1 tipi ms“:-
la has—m dati 3i Figura 1.2. in cui i tipi record sono presen .modeilo CQDA-
Wsulmggio di prograrmnazionc ospite, o essere usato 5931.8
re, noto anche come
Wmntafi ctichettati. Il modelio reticula linguaggio indipendente; in_qucst‘ultimo caso é spesso detto linguaggio {1i interrogazmne.
-at-a-ti me che dove essero mcapsulato in un Si sono esaminati diversi tjpi d1 Eterfacce fornite dai DBMSI e i npi di utefifi di DBMSaj
I SYL DBTG,‘2 ha un fimfgitfissociato record
osfitc. I] model lo gerarc hico rappresonta 1 oat: come struttu: quaii cm associate. Abbiamo poi esanfnato ramming; gel smmgfilfisi
linguaggio di programmazione
un certo numero d1 record correlao:
rWscuna geraIchia rapprosenta la maggior parfe dei
Whore di DBMS e LpLogrammi di utiliti dei DBMS che aiutano_gli
Non c nessun 111 11a '0 standard per il modeilo gcrarchico, anche se FEE-e Wguirc i lormfi.
BMW e ’ulfimo paragrafo abbiamo classificato i DBMS segucndo diversi criteii: modello di
dati. numero di uionti, numero di siti, cg§_t_q, ti i di camlrum 1 a e generalitiv p'nn-
i‘ev'émmdi-
cm' mm: dei DBMS e basata shim Abhiamo %
s ' ' ' ' tiattualmente nci DBMS commerciali.
Sommario

usati nei sisterni di baoi di do— Questionario di verifica


In quosto Capitolo abbiamo introdotto i concctti fondamenmli
uondonc tre categono pl'lIIClpahZ
Li. Abbiamo dato la definizione di modello di dati, disting
su entita e associaziopi); 2.1. Si definiscano i seguenti tonnini: modello d1" dati, schema ds’ zma base di dati, staro di
I modelli di dati di alto livcllo o concottuali (basati and base di dati, schema inferno, schema concetmaie, schema esremo. indipendenza
o modelli 1 1 3550 livello o fisici;
. def dari, DDL, DML, SDL, VDL, Iinguaggio di' intermgazione. linguaggio aspire, lin-
o W (basati su record, a oggotti} guaggio specializzato per la gesrione dart, programme: di ufilifd per base dz‘ datf. cara-
iogo. amhirermra client-server.
2.2. Si discutano le principali categorie di modellj di dati.
e Data Base Tas‘it Group_ [Iinguaggio‘ per sislemi. di 2.3. Qua! é Ia differenza tra one schema di base di dati e um stato di base di dati‘?
'2 CODASYL DBTG sta par Computer Data Systems Languag
r — task group per basi di clad). che 3 i1 comitato che ha specificato 1| modelio mumlaro e 11 300 2.4. Si descriva I‘architettura a to: livolli. Pcrché ahbiamo bisogno di mapping tra i vari ii»
dati per compute . . ‘ . . .
’ .
lin ua 'o.
soconda cdmonc originals (in lingua inglese) d1 que-
volli di schemi? Como supportano questa architettura i diversi linguaggi di definizione
I cEpiLElgilcomplefi sui modelli reticular : e gen-amni on della
‘3 . _ I ‘ di schemi?
..
' o 11]‘bili . in home! no] reladvo giro Web. . _fl _ .
'
sto horn sopo (11$!)
-
:— -_ fi‘ ' —
"_ Lu !__ __..__,

F"
40 Gapitolo 2

2.5. Qua! e la differenza tra indipendenza dei dati Iogica e indipendenza dei dati fisioa?
2.6. Qual e la differenza :ra DML procedurafi e nonprocedurali?
1i
2.7. Si presentino i diversi dpi di interfacee amichevoli e i tipi di utenti che solitamente
usano.
2.8. Con quale altro software di sistema interagisce un DBMS? Capitolo 3
e le ri-
2.9. Si discutano alouni tipi di programmi di utilith e di strumenti di una base di dati
spettive funziom'.
Use geimodello
Esercizi
Entité-Agsociazione
1.2. Di quali tipi di appli-
démdfijlam'ti
E da
2.10. Si pensi a diversi utenti possibili per la base di dati cli Figura
cazioni avrebbe bisogno ciascun utente'? A quale categoria di utenti appartetrebbe cia—
scuno di essi e di quale tipo di interfaccia necessitei'ebbe?
a. Si progetti uno
I 2.11. Si scelga un’applicazione di basi di dati con cui si abbia familiarit
schema e si mostri una base di dati campione per quella applicazio ne, usando le nota-
zioni delle Figure 2.1 e 1.2. Quali altri tipi di informaz joni e vincoli si potrebbero rap—
Si pensi a diversi utenti per la base di dati e si progetti una vi-
presentare nello schema? "Ion.-
sta per ciascuno di essi.
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—
fi — e fiWW — ad
it Bibliografia selezionata esempio, programnfi Che implementano aggiomamenti in corrispondenza ai depositi e ai pre-
lievi dei clienti- Wm Spesso WW (Gill) an_1i;
altri (1998}, Ramalo'i- chevolj . one utilizzano moduli e menu, Quindi parte dell‘ applieazione dj basi di dati richiedera
Molti 11i di testo sulle basi di dati. tra cui Date (1995). Silberschatz e
l e altti (1995], forniseon o un'analisi dei vari la mgettazioge, YWW i1 test di questi NOW Tradizional—
shnan (I997). Ullman (1988. 1989) e Abitebou
y {1982) a uno dei meme la progettazione e il test di programmi appiicativi sono stati considerati come facenti E -
concetfi sulle basi di dati qui presentati. Quello di Tsichritzis e Lochovsk
s e Klug (1978) e Jardine (I977) presentano te dei dominio deli’ingegnena del software Big ehe di guello delle basi di dati. Oggi pero sta di-
primi libri di testo sui modelli di dati. Tsichritzi
per la prima volta nel rapporto DBTG CODA— ventando sempre pin Chiaro che c’e una certa vicinanza tra le metodologie di Erogettazione del-
l’architert ura a tre livelli. che a stata suggerita
National Standard s Institute (ANSI, l‘I— le basi di dati e uelle progrie fiell'ingemg‘a fie] goftwgge. Dal memento che 1e prime endono
SYL [1971) e pm tardi in un rapporto dell’American sempre pifi a includere concetti per specificare operazioni su oggetti di basi di dad, e che 1e se-
per gli standard) (1975). Un‘anali si approfon dita del modello di
stituto nazionale americano conde specificano in sempre maggior dettagljo la struttura delle basi di dati che sararmo usate
Lo standard
dati relazionale e di alcune delle sue possibili estensioni e fornita in Codd (1990).
e a cui aeeederanno i programmi software, 6 cgrto gfi'file vicinanza aumentera. Discuteremo
‘-
proposto per le basi di dati a oggetti e descritto in Cattell {1997).
di ETI brevemente alcuni dei concetti per specificare 1e operazioni EHGLEISJ.d1, dati nel Capitglo 4.
Un esempio di programmi di utilith per basi di dad a l‘Extract Toolkit In questo Capitolo seguiremo l'approccio tradizionale, che consiste nel concenu'arsi sulle
di Embaroadero
(www.cti.com) e lo strumento di amrninistrazione di basi di daft DB Artisan : ' = i ' 32- . Presenteremo i concetti
.com).
strutture e sui vinli della b e ' =
Technologies [www.ern barcadero
di modellazione propri del .. m . - ' =-: . ' - (ER: Entity-Rolsttionship),I un po-
polare modello di dati coneettuale di alto livello. Questo modello e 1e sue variazioni sono fre-
quentememe 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)
42 Gapitolo 3 Use del modeito Entita-ASsoclazione per modellers l dati 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 pro-
gettazmne 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 re-
quisiti per un‘applicazione di basi di dati esemplificativa nel Paragrafo 3.2, per illustrate i‘u-
so 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 RACGOLTA E
tecnica diagrammatica per la rappresentazione grafica di uno schema ER. Net Paragrafo 3.4 ANALISI
DEl FlEQUISlTl
introdurremo i concetti relativi alle associazioni binarie e ai loro ruoli e quelli relativi ai vin-
coli strutturali, nel Paragrafo 3.5 i tipi di entita debole. Il Paragrafo 3.6 mostra come 1111 pro-
getto di 11:10 schema venga raffinato per includere associazioni. Il Paragrafo 3.7 esamina la no-
tazione peri diagrammi ER. riassume i problemi che sorgono nella progettazione di uno sche- Requisiti funzlonali Requislti delta base all dati
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)
ANALISI FUNZIONALE PROGETI'AZIONE CONCEITUALE
approfondita dei concetti relativi alla costruzione dei modelli di dati e della progettazione con-
cettnale 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’eredita- Specifics della transazlona Schema conoettuale
rieta e i tipi uniene {categorie}, e introdurremo anche la modellazione a oggetti e la notazione di alto livello [in un modello di dati di alto livello)
del lirtguaggio universale di modellazione (UML: Universal Modeling Language), che 1: state
proposto come 11110 standard per la modellazione a oggetti.
T Indipendente dal DBMS
l
PROGEITAZIONE LOGICA
(MAPPING DI MODELLO DI DATI)
l dlpendente dal DBMS
3.1 Uso di modelli di dati concettuali di alto
livello per la progettazione di basi di dati Schema loglco {ooncettuale}
(nel modello di dati dl uno specifier: DBMS}
ll
In Figura 3.1 viene mostrata 1111a descrizione sempliiicata del precesso. .di progettazione di una Fl |
base di dati. II primo passe e quello (1W. Durante quests fase'1 Pfiggfiififigyfiggnw
r 'futuri utenti della base (11 dati
IllélsniIRtD d1' questa fast: 6 nun ms1eme, descritto concisamente. di geguisiti dggli PHOGETFAZIONE FJSICA
ire/term, cite dovrebbero a liata e com 1 ts ossi ile. In
parall 0 fit e speeificare'1 requisiti funziunali ' .Questi consistono
mile 0 z1 ) e te dall‘utente che saranno eseguite suila base di dati e
comprendono sia operazitmi di recupero sia queue di aggiomamento. Nella progettazione IMPLEMENTAZIONE +—_
del software per specificare'1 requisiti funzionalifi coWdati, DELLE TRANSAZIONI 3‘3“” ”“9””
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 Progremmi applicatlvi
_fl____
schema concettuale
di alto livelie Questa fase e detta di progettazione concettuate Lo____ _
a una
descrizione ooncisa dei r uisiti 511i. datide emude demmfimaghmifii 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
44 Capitolo 3

W di alto livello. Poiché non comprendono dettagli


implementativi. eastwa- -@@ I
'c' da compre ndere e ossono essere usati per comunicare con utenti non N
neralmente if: e
essere usato come nfenmento per as-
tfl. Lo schema concettuae di 2110 livelio pub anche
iderati tutti i requisiti de li uten ' ' ‘ ' ' ' on re-
sicurarsi che si ‘
ista della base di dati di concentrarsi
«=3 Dalllllllfl:
L:_ Nummtmpleuau _:
veaano conflitti. Questo approccio consente a1 pmgett memo- IMPIEGATO
preoccupare dei dettagli di
sulla spetnficazmne delle proprieta dci dati, senza doversi 3-m 91
rizzazione. Di conscgyenza e Bib facile che e '
12 della base di dati. ’—
di essa1 1e opegzioni di ba-
Wettazione delio schema concettuale o dope
are 1e operazioni d‘utente di alto livel-
se del modello di dati possono essere usate per specific
lo individuate durante l' analisi funzionale. Cib serve anche per confermaze che Io schema con-
ali ind'vid uati. Posson o essere introdotte modific he al— 5“:s
cettual e soddisfi tutti i re uisiti funzio . . LAVOHA_5U .__.——-— Pace-mo
____‘.._.._ onah non ossono essere s ificatt Hello sche—
1
lo schema concettuale s
mainizme.
1 supemoue N
®
'* - D
' -
W61._,._=";;-;... @
ii}? ddhhafifi—di—dafi, ' - [‘3m PERSONEACAHIGO‘DI

'1! mo ’ . 0 di
cal-1.313135 UW c e1-
subisce una u fo ‘
b31191 dati a oggem' — cosicché lo schema concettuale
imwwfimel ' '' ' . Questa Ease ‘e detta Erogettazio-
ne logjca 0 ma ' ' ' e 3i stigg's’ultato e uno schema della base di dati nel
modello di dati implementabiie del DBMS. FERSONEAMRICO
specifica—
durante la. quaie sono
Infinc. l’ultimo passo consiste nella progettazione fisica. ni dei file del-
t tture ' ' ' ‘ 2 me, i carnmini di accesso e 1e organizzazio
mmi applicativi sono progettati e im- @ cw
la base di dati. In parallelo con queste attivita i progra ' -
dclla base di dati corrisp ondent i alle s ecifiche delie tra
plementafi come transazioni Flgura 3.2 Diagramma di schema ER per Ia base d1 dati AZIENDA.
We. tazione
modello ER per la groget
In ques o capitolo savanna presentati solo i concetti del
tuaie. L’ inserim ento di 0 ' ' definite dall‘utente sara discussa nel
dello schema concer
delia
apt o o , uando vet-re introdotta 1a modellazione
a oggetti. un’azienda. Si supponga che. dope 1a fase di raccolta e anaiisi dei requisiti, i progettisti
del “mini-mon do", 1a parte delt‘azien da che deve essere rappresen—
base di dati abbiano dato
tata con la base di dati. 1a descrizione seguente.
di dati e um numero uni»
l. L’azienda a organizzata in dipartimenfi, ciascuno dei quali ha on come
3.2 Un’applicazione esemplificativa di basi voci, pith sedi e um particolare impiegato da cui viene gestito. Si registrera la data in
cui
quell’impi egato ha cominciat o a gestire i1 dipartimen to.
e an
dati AZIENDA, la quale servira a il- Un dipartimento conu-olla un certo numero cli progerti, ciascuno dei quali ha on home
In questo paragrafo verra descritta l’applicazione di basi di numero univoci e una singola sede.
eflaschflma—Qui saranno
lustrare i concetti del modello ER e il loro umWoued sociale,3 l‘in— _
cosgyL-
261718 base di-datiT-menue fl 3120 schema conceuuale verra 3. Per ciascun impiegato vena memorizzato il nome, i1 numero di prefidenza
clencati i requisiti NEW model- dirizzo, lo stipendio, i1 sesso e la data di nascita. Un impiegato e assegnato a un solodi- . "
to gxadualmente, man memo che verranno inundatti i concetti di rappresentazione del
atiffi'éfaipartimenti e dei progetti di
lo ER. La base di dati AZIENDA tiene traccia degli impieg

re univoco a nave cifre ss


a
11 numero di previdenza socisJe, c SSN (mesa! security member). e an identificato
‘_____,__.———— Stati Uniti s ciaacun individuo per tener traocia del suo impiego, delle sue indermita e delle
l‘e— gnato negli
reso pill correttarnentc in italinno con dipendeme‘ ma identificati vi simiIi. come ad esempio i1 numcro della carts $1d
3 I] ten-cine utilizzato dagli autori (employee) sarcbbe nti impiega rt (N412)
paste. Altri Stati possono avere schemi
in particol are sul tipo di dipende
sempio proposto nel testo 5i focalizza poi
46 Capitolo 3 Uso del modeilo Entité—Associazione per modellare i datl 47

partimento ma pub lavorare su molti progeiti, non necessariamente conu-ollafi dallo stesso Indfrizzo
diparlimento. Si tel-1'5 traccia del numero di ore settimanali lavorate da un impiogato su cia-
scun 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
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 es-
sere rappresentato con notazioni gTafiche note come diagrammi ER.

Numero Via NumeroApparlamento

Figura 3.4 Una gerarchla di attributi composti: il componente IndirlzzoVia cii indirizzo é ulterion‘nente
3.3 Tipi di entité, insiemi di entité, composto da Numero. Via a NumeroAppariamento.

attributi e chiavi
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.
3.3.1 Entité e attributi Nel modello ER csistono diversi tipi di attributi: semplice in contrapposizione a composite;
a valore singolo in contrapposizione a muifivaiore; memorizzam in contrapposizione a deri-
Entith e [are attributi. L’oggetto base rapprosentato dal modello ER e l’entith, che é una “co- varo. Nel seguito ven'anno definili questi tipi di attributi e illustrato ii loro uso tramite esem.
sa” dei mondo reale con un’esistenza indipendente. Un’entita pub essere un oggetto con un’e- pi. Quindi sari introdotto il conceito di vaiore nulls (null value) per un attributo.
sistenza 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— Aitributi composti e attributi semplici (atomici). Gli attributi composfi possono essere di-
scuna entita ha dcgli attributi —le proprieta particulari clie la descrivono. Ad esempio. un’en- visi in pani pib piccolo, Che rappresentano pill attributi di base con significati indipendenli. Ad
ma impiegato pub BSSCIE: descritta da nome, eta. indirizzo, stipendio e Iavoro dell’impiegato. esempio, l’attributo Indirizzo dell’cntita impiegaio mostrata in Figura 3.3 pub essere diviso in
Un’eniita particolare avra un valore per ciascuno dei suoi attributi. I valori degli attributi che IndirizzoVia, Ciua, Stato 3 CAP,‘ con i valon' “2311 Kirby", “Houston”, “Texas" 6 “77001".
descrivono ciascuna entita divengono parts importante dei dati memorizzati nella base di dati. Gli attributi che non sono divisibili sono detli attributi semplici o atomici. Gli attributi com—
In Figura 3.3 sono mostrati due entita e i valori dei rispettivi attributi. L‘entith impiegato posti possono formare una gerarchia; ad esempio, InclirizzoVia pub essere diviso in tre attribu—
:31 ("e“ come employee) ha quattro attributi: Nome. [ndirizzm Eta e TelcfonoDiCasa; i loro va— fi sempljci, Numero, Via e NumeroAppanamento, come mostrato in Figura 3.4. H valore di un
lori sono “John Smith". “2311 Kirby, Houston, Texas 77001”, “55” 3 ‘713-749-2630”, ri- 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-
= Su co OII cificamente ai suoi componenti. Se all’atu'ibuto composto of Si rifefisce solo come a no more,
Nome = John Smith ”we " non c‘é alcun bisogno di dividerlo negfi attributi componenti. Ad esempio. as non é necessa-
rio liferixsi ai singoli componenti di un indirizzo (CAP, Via, em), allora I‘intero indirizzo é
1ndlrlzzo = 2311 Kirby, consideraio un attribute semplice.
Houston. Texas Twin :1
SedaCenirale = Houston
Altributi a valore singolo e attributi mulfivalore. La maggior partc degli attributi ha no va-
Etél = 55 loxe 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-

TalafonoDTCasa = Tia-“$2630 Presidente = John Smith


o
Fi Iura 3.3 Due antita. un Impiaoaio e. g un'azienda o.. e i vaiorl dei loro attribub'. For i Slati Uliiti 5i parla di zip code.
nun - . . —-
Use dai modello Entita-Asseeiazlene per modellare i dati 4.9
48 Capltelo 3

NOME DEL TIPO AZIENDA


ml at- [MPIEGATO
sieme di valeri per la stessa entita — ad esempio, un attribute Celeri per un‘ automobile, 0
DI ENTITA
singolo, men- Nome. SedeCentrale. Presldente
tribute Lauree per una persona. Le automobili con un solo colore hauno un valore Nome, Eta. Stipendio
’ bicolori hanno due valori per Cbleri. Analogarn ente, una persona pub non ave- \
tre 1e automobib K "\ K—
terza pub aveme due 0 pie; pertanto persona diver-
re una laurea, un‘ altra pub aveme una e una a1 . C1 .
tipe sene
se pessene avere numen‘ diver-5i dr’ valori per l’atu'ibuto Lauree. Attributi di questo
e superiori per il numere (Sunco Oil. Houston. John Smith]
detti multivalere. Un attribute multivalere pub avert: limiti inferieri [John Smith. 55, aok]
singola entita. Ad esempie,1 ’attributo Colori di un’autern obile
di valori consentiti per ciascuna '32 .
a1 pie tre celeri.
pub avert: tra uno e tre valor-i, se si suppone che un‘autemebile possa avers
32 .

INSIEME Dt d Bro 4o 30 [Fast Computer, Dallas. Bob Klngl


Attributi memorizzati e attributi derivati. In ceru' casi i valor-i di due 0 piu
attributi seno EN'rn'A (Fm wn' ' K)
una persona. Per una partieelare en- '-
cerrelati — ad esempio. gli attributi Eta e DataNascita di {ESTENSIONE} 83 . '

pub essere determina te a partire dalla data cerrente e dai valore


u'tb persona, i1 valere di Eta
dice abs 5 derivabile [Judy Clark. 25. 20K] I
di DataNascita. L‘ attribute Eta e percib detto attribute derivate. e si
memeriz zate.A1c univalori di attributi pos-
dall‘attribute DataNascita, che e dette attribute
derivati da entire correlate; ad esernpie. un attribute NumereD iImpiegat i di un'en-
sene essere
del numero di impiegati cellegati a
ma dipartimento pub essere derivate u'amite i1 conteggio k j K /

(che lavorane per) quel dipartirnent e.


della eolleziene dl
Figure 3.8 Bus tlpl di entlfi, dettl IHFIEGATO e AZIENDA. e alcune delle entlta membrl
attribu- entlta (e insieme di entlta) di elascun tipe.
Valeri nulli. In certi casi una particolare entita pub non avere un valere adatte per un
sense solo per quegli in-
te. 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 3.3.2 Tipi di entita, insiemi di entita, chiavi e
del sue attribute Nume-
null. Un indirizzo di una casa menofamiliare avra null come valore insiemi di valori
persona senza lauree aura null come valere di Lauree. Null pub anche
reAppartamento. e una
re — ad esempio, se
essere usato se non 6 note i1 valore di un atu'ibuto per un’entita particela Tip] [It entité e insiemi d1 entita. Una base di dati di seljto centiene gruppi di entita similj.
di casa di “John Smith" in Figure 3.3. I] significate del re
non si cenosce il numero di telefene Ad esempie. un‘azieuda che occupa centinaia di impiegati pub aver bisogno di memorizza
i1 significa to del seceudo b sconesci uro. La cate-
infermazieni simili su ciascun impiegato. Queste entita impiegate condividono gli stessi attri—
prime tipe di null 6: non applicab ile, mentre
suddivis a in due casi distinti: i1 prime case
geria dei null scenosciuti pub essere ulteriermente buti. ma ciascuna entita 11a 1’ propn' valon' per ciascun attribute. Un tipe di entita definisce una
i1 valere per quell‘ attribute esiste me e momenta — ad esempio. di entitb
si presenta quande e note che collezione {o inrr'eme) di entith le quali possiedeno gli stessi attributi. Ciascun tipe
e indicate come null; ' 1 1 secende quande nor: a note se il
se l'attribut e Altezza di una persona
una persona e null. nella base di dati e descritte dai suo neme e dai suoi attributi. in Figure 3.6 sone mestrati due
valere dell’attribute esista — ad esempio. 5e 1‘ attribute TelefoneDiCasa di tipi di entice. detti IMPIEGATO e AZIENDA. e un eleuee di attributi per eiascuno di essi.
Sene
La colle-
essere annidati anche illustrate alcune entita di ciascun tipe, insieme con i valor-i dei lore attributi.
Attributi cemplessi. Si neti ehe gli attributi cempesti e multivaiere posseno ziene di tutte 1e entita di un pmticelare tipe di entita nella base di dati in un istante di tempo
raggruppando i cem-
in mode arbitrario. E pessibile rappresentare un amudamente arbitrarie qualsiasi e detta insieme di entita; di seljte ci si riferisce afl’insieme di entita usando le
stes»
nti con virgele.
penenti di un attribute compeste tra parentesi tende () e separando i cempene so nome dc} tipe di smith. Ad esempio, IMFIEGATU si riferisce sia a un tipe dt' entire
sia al eer-
Attribuu' di questo tipe seue
eenehé indicande gli attributi multivaiore tra parentesi graffe {}. rente inrieme di tune le entire impiegato nella base di dati.
esernpio , se una persona pub avere piil di una residenza e cia- con
detti attributi cemplessi. Ad
un tipe di entita Un tipe di entita e rappresentate nei diagrammj ER5 (Figure 3.2) come un renangele
sauna resideuza pub avere piu telefoni, un attribute IndirizmTelefono per all’interne i1 neme del tipe di entita. I nemi degli attributi sene posti dentre deglj ovaii e
PERSONA pub essere specificato come mostrato in Figure 3.5.

{lndlrlzzeTeletone( {TelefenelPr-eflsso. NumereTelefonel}. nte (Chen 1916). Per-


lndirlzzollndirizzeWalNumai-e. Via. NumeroAppartamsnte}.Clttb
. State, CAP] ) } 3 Si sta qui usantlo peri diagrammi ER una notazione simile a quella preposte originariame
in use anehe melte alue notazioni (5i veda I'Appendice A e pie avanti in queste capitoio}.
u-eppe some
ntl multivalere e composti.
Figure 3.5 Ul'l attribute cemplesso IndlrlzzeTelefene eon cempone
Use del modello Entita-Asseeiazlone per modeltare 1' dati 51
50 Capitoio 3

ai 1010 at-
some uniti ai lore tipi di entita tramite lines rette. Gli attributi eempesti sone uniti
’ . AUTOMOBILE
ntati con evali FlegIstrazronetNumereRegmtrazione, State), lDVaicelo. Mama. Madeira. Anne, {Galore}
tributi cemponenti tramite Knee rette. Gli attributi multivale re sone rappnese
( \
deppi. autemoblle1 0
che cendivide~
Un tipo di entita descrive lo schema e intensiene per uu insieme di entire
di entite a raggruppata in ((A80 123. TEXAS), TKBZQ. Ford Mustang. cabriolet, 1998. {rosse, nem}}
no la stessa struttura. La raceelta delle entita di un particulate tipe
un insieme di entire. che e ehiamato anehe estensio ne del tipe di eutita.
autemebllez e

cli un tipe di entita e ({ABC‘123. NEW YORK), WPQBTE. Nissan Maxima, 4»porte. 1999, {mun
Attributi chiave (ii un tipe di emits}. Un vincole importante sulle entiti
tipe di entita di solite ha uu attribute i
il vincolo di cbiave e di univecith sugli attributi. Un automeblle3 e
e. Un attribute con queste ca-
cui valeri sene distiuti per eiascuna singola entita della cellezien
per identificare uni-
ratteristiche e dette attribute chime, e i suei vaieri pessene essere usati
(NSY 720. TEXAS], TD?29, Chrysler LeBaren, 4-perte, 1995. {blaneer blu})
una chiave del tipe di entith
vecamente ciascuna entita. Ad esempie. l‘attributo Nome e
3.6, perché non e consent ito che due aziende abbiano lo stesse ueme. Per
AZIENDA in Figura
. Taiora melti
i1 tipo di entita PERSONA un tipico attribute chiave e NumerePrevideuzaSooiale
una chiave, neI sense che 1a cembina ziene dei valet-i degii attributi
attributi insieme fen-name k J
essere distinta per ciascuna entita. Se un insieme di attribufi possiede questa proprieté.l e
deve
del tipe di entité. Si
pessibile definite ue attribute composro che diventa uu attribute chjave
Figure 3.7 || t1pe di entité AUTOMOBILE. cen due attributi chiave Registraziene e IDVeiceie. Gli attributi
tutti glj attributi cempenenti deve- muitivalere sone Indicati tra parentasi graffe {} I component! di un attri pe
nofi che una chiave compost- a deve essere minimale , cioe. - r I
mdreatu tra parentesl tends 0.
I t
bu 0 com ste SOHO
netazione dei
ne far pane deil‘ attribute cemposte per avere 1a preprieté di univeeitii.‘I Nelia
dcntro I‘evale. come illu-
diagrammi ER ciascun attribute chiave hail sue neme settoiineate
strate in Figure 3.2.
che la precedeete
La speeificaziene che un attribute a ehiave di un tipo di entita significa l’attribute Eta di IMPIEGATD come l’insieme dei numeri intezi tra 16 e 70. Analegamente, si
valere per ogni estensian e del tipo di entita. Di censegue uza. a un
proprieta di univeeita deve pue stabflire Che I’insieme di valori per l'attribute Nome sia l’insieme deile stringhe di carat-
te le stesse va—
vincole che prei‘eisce a qualsiasi ceppia di entité di avere centemperaneamen ten aifabetici separate da caratteri spazie e cesi via. Gli insierei di valor-i non sone rappresen—
e; piuttesto a nu vin-
lore per 1’ attribute ehiave. Non e la proprieta di una particolare estension tati nei diagrammi ER.
fie esteesion i del tipe di entita. Queste vincole di ehiave (come altri Vinceli Che
eelo su tum: Matematicamente 1m attribute A di un tipe d5 entita E ii cui insieme di valeri e V pue es-
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 A:E—>P(V)
e Registra ziene del tipe di entita AUTOMOBI-
celo (identificazione del veicolo) che l'attribut
cestituis cene una ehiave a tutti gli effetti. L’attribu te Regisu‘aziene a 1m
LE [Figura 3.7) Ci si riferiré qui a! valor: dell'atu'ibuto A per l’entita e come aA(e). La definiziene prece-
NumeroRegistra-
esempie di chiave cemposta formata da due attributi cemponeuti semplici. dente cepre sia gli attributi a valore singele sia quelli multivalore. cosi come i null. Un vale»
Ue ripe di .entita put) an-
ziene e State, nessune dei quaii e ehjave. se preso singeiarmeute. re nu]! elraopresentate tiall’insieme vuete. Per attzibuti a valor: singelo, A(e} e vincolato a es- . ..
non avere nessrma chiave, nel qual case e chiamato ripe di entire debate (si veda i1 Pa—
che sere un meleme con un solo elemeute (valere) per ciaseuua entite e di E, meutre non 0% al- ' 5'
ragrafe 3.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. .Vn sene gli insiemi di valeri de-
di un tipe di cntité é
Insiemi Iii valeri (domini) degli attributi. Ciascun atlribute semplice gh attributi sempfici cempeneuti Che formane A:
a un insieme di valeri (e deminio di valori), ohe Specifica l'insieme di valeri che
associate
3.6, se la gamma di
pessone essere assegnati a quell’attribute per ciascuna entita. In Figura V= Pal.) x P012} x x 1304.)
di valeri dei-
eta censentite per gli impiegati va da 16 a 70. a possibiie speeificare l'insieme

1a L‘insieme petenza PU?) di un insieme V e l‘insieme di tutti i setteinsiemi di V.


attributi superflui.
" Gli amibutj superflui nee devene far pane di una chiave: pare ens. super-chime pue ineludere Neila letteratura in iingua inglese, un insieme con un solo eiemente é detto singleton.
.ome verrh spiegate net Ca hole 3'. _
i _ _
W
hi * I“: W
II , *LT 1.
Lh

Use del medelle Entita-Asseeiaziene per medellare E dati 53


52 Capitele 3

3.4 Associazioni, tipi di asseciaziene, ruoli e


3.3.3 Pregettaziene eencettuale iniziale
della base di dati AZIENDA vincoli strutturali
ile identificare per la base di dati
Secende i requisiti clencati nei Paragrafe 3.2, e 013. pessib hifatti, egni veita
tipi di entith —- une per ciascun punte delle specifi
che (Figure 3.8). In Figure 3.8 ci seuo diverse associazioni implicire Ira i vari tipi di entita.
AZIENDA quattre as-
che un attribute di un tipe di smith si riferisce a un aluo tipe di entite sussiste una qualche
ti Nome, Numere, Sedi, Direttere e DataIni~ te a un impiegate
1. Un tipo di entita DIPARTIMENTO cen attribu seciaziene. Ad esempie, 1’ attribute Direttere di DIPARTIMENTO fa riferimeu
Si pub specificare che sia Nome sia Nu- riferimente a1
zieDirettere. Sedi e l‘unice attribu te multiv alere.
Che dirige i1 dipartimente; l’attribute DipartimenteCeutrollante di PROGETTG fa
e stabilite che ciascune dci due deve esse- O fa rifcrimente a
mere seue attributi chiave (separati), perché si diparfimente che cone-011a i1 pregetto; 1’ attribute Supervisere di IMPIEGAT
re univece. impiegate {quelle che sevraiute nde a queste impiegate ); 1’ attribute Dipaifimente di
un alu’o
, Numere, Sede e DipartimenteCentrellan— via. Ne} model—
2. Un tipe Eli entita FROGETTD cen attributi Nome IMPIEGATO si riferisce a1 dipartimente per il quale I’impiega te iavera. e cosi
ati).
te. Sia Nome sia Numcre sene attributi chiave (separ le ER questi riferimenti non devrebbe re essere rapprese utati come attributi ma come associa-
attribu ti Nome , SSN. Sesse, hidirizze, Stipendie, Data- 3.6 per rappreseutare
3. Un tipe di entith IMPIEGATO ceu essere attributi cem- zioni (le schema della base di dati AZIENDA sate raffinate nel Paragrafe
Inditizze pesseue
Naseita, Dipartimente e Supervisors. Sia Nome sia esplieitameute le associazioni). Nel pregette iniziale dei tipi di entité 1e associazi oni sene ti-
requisiti. Occerre riternare dagli utenti per attributi se-
pesti; cemunque cie men a state speeificate nei picamente ceIte come attributi. Man mane che ii pregetto vieee raffinate, questi
fare fifefim ente ai singel j compenenti di Nome - NemeDiBat-
vedere se qualcune di iere ne cenvertiti in associazioni tra tipi di entita.
zo.
tesime, IuizialeIntennedia. Cegneme — e di Indiriz
ti Impiegate, NomePersonaACarice. Ses-
4. Un tipe di entita PERSONAJLGARIGO con attribu
se, DataNascita e Parenteia (con 1' impiegate).

Finera non E state rappresentato i1 fatte che


un impiegate pub iaverare su piu pregetti. 116 3.4.1 Tipi di aseociaziene, insiemi di associazioni e
lavera su ciascun pregetto. Questa caratteristi- istanze dl associazione
'11 numere di ere a settimana che un impiegate
requis ite 3 del Parag rafe 3.2, e. pub essere rappresentata da un at-
ca e clencata come parte del
LaveraSu cen cempenenti sempiici (Pre-
tribute cempeste multivalere di IMPIEGATO dette Un tipe di associazioni: R ea n tipi di entité E.,E2, ETI definisce un insieme di legami —— 0
essere rappre sentat a come un attribute compesto multiva- per i tipi di entita e gli insiemi di
gette, Ore). Alternativamente, pue un insieme d‘l associaz ioni — tra entita di questi tipi. Come
enenti semplici (lmpiegate, Ore). In Figura 3.8 nermalmente
lere di PROGETTO, dette Laveratori. con cemp itti. L'attri- entité, un tipe di asseciaziene e i] cerrispendente insieme di associazioni sene
ne (lei tipi di eutith septa descr
viene scelta la prima pessibilith che mestra ciascu indicati con 10 5:95.30 name R. Matemat icamente , l’insieme di associazioni R e um insiemc .di
é prese ntate come attribu te cempeste1 presumibilmente dope una en), e ciascuna eu-
bute Nome di IMPIEGATO istanze di associaziene ri, dove ciascun r1 lega n entité individuali (21,22,
censultaziene cen gli utenti. 1 S j S n. Percie un tipe di asseciaz iene a una
tité ej in r. e mi membre di un tipe d5 entita E5,
come up settein-
relaziene matematica su EDIE” ..., E“, e altemativamente pub essere definite
sieme del predette canesiano Ei X E1 x x 5... Si dice che ciascue tipe di entith E.,E,,
ciascuna delle singele en—
DIPAHTEMENTO En partedpa a1 tipe di associaziene R, e analegamente si dice che
ettera
Nema, Numare. {Sedl}, Direttere. DatalnizieDlr tith e,,e,. ..., eI1 partecipa all’istanza di asseciazione inl = (299,, ..., en).
eutité. dove il 1e-
Infennalmente, ciaseuna istanza di associaziene r; in R a un legame tra
tipo di entite partecipa nte. Ciascuna istanza di
PROGE‘ETO game include esattamente un'entita per ciascun
Nome. Numere, Sade. DipertimenteCentre
ilante entita partecipanti a ri se-
asseciaziene r, cen quest: caratteristiche rappreseuta il fatte che 1e
me. Ad esempie, si
ne correlate in qualche mode nella cerrispendente situaziene del mini-me
PER tra i due tipi di entith IMPIEGA TO e DI PAHTI -
IMPIEGATO
Indirlze‘ Stlpendie.
censideri uu ripe di associaziene LAVOHA_
Nome {NemeBatt. lniz'lm, Cegneme). SSN, Sesso, asseeia eiascuu impiegat e con il dipartim ente per cui l’impiega te lavera. Ciascu-
Su (Pregette. 0re}} MENTO, she
DataNascite. Dlpanimente. Supervisors. {Lavera 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.
PERSONA_A_GAFI!CO
scita, Parentela asseciaziene r; e mestrata comessa alie entité impiegate e dipartim
Implega’teNemePersenaAGeflee, Sesse. DaiaNa 3.9, gli impiega ti e1. :33 ed e... laverane per il di-
Ne} mini-mende rappresentaio dalla Figural
requiem eene de- per {12; infine :35 ed a, leverane per d3.
dl enfita par la base di dati AZIENDA i cui paxtimeute :1]; e2 ed e4 laverane
Figure 3.8 Pregettazlene preliminare di tipi
scritti eel Parag rafe 3.2.
Use del medelle Entita-Assoeiazlene per medellare i dati 55
54 Capltele 3

DIPARTIMENTO FURNITURE FORNITURA


IMPIEGATO LAVORJLPER
FROG E170

TO. Figura 3.10 Alcune istanze di asseclaziene per un'asseciaziene ternarla FURNITURA.
Figura 3.9 Alcuns istanze dell'asseeiaziena LAUOHAJEH tra IMPIEGATG e DIPAHTIMEN

collegatbce'n li- LAVOHA_PER di Figura 3.9. Si pub pcnsare a un attribute, chiamiamele DipaItimeute, del tipe
Nei diagrammi ER, i tipi di asseciazione sene rapprescntati come rombi,
che rappresentane i tipi di cntith panecipa nti. ll neme dell assoma'zmne di entith IMPIEGATO il cui valere per ciascuna entitfi impiegato é (un riferimente a) l’emx‘m di-
nee matte a1 rettange li
pam’mento per cui lavora l'impiegato. Pcrcic‘), l’insieme di valen‘ per questo attribute Biparti-
é rappresentato demre i1 relative rembe (Figura 3.2).
mento é 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
AZIENDA. Comunque, quande si pensa a un‘asseciazione binaria come a un attribute, esiste-
3.4.2 Grade di un'asseciazione, nomi di ruolo e no sempre due pessibflith. 1n queste esempio l‘altemativa é quella di pensare a an attribute
associazioni ricersive multivalore Impiegati per i] tipo di entita DIPARTIMENTO, i cui valori per ciascuna entitfi di-
partimente cestituiscono l’insieme defile enriré impiegara Che laverano per quel dipartimento.
é il numere dei'tipi di L’insieme di valori di queste attribute Impiegati é I‘insieme di entitfi IMPIEGATO. Ciascuno di
Grade di un tipe di associaziene. I1 grade di un fipe di asseciaziene
ziene LAVORLP ER e di gradedue . Un upo d1 asse- questi clue am-ibuti — Dipanimente di IMPIEGATO e Impiegati di DI PAHTIMENTO — pub rap-
entith Che vi panecipane. Percib. l’assecia
grade due é dette binario. e um Eli grade tea 5 dette ternano. ‘ presenters i1 tipe cli asseciaziene LAVORA_PER. Se sone rappresentati entrambi. essi sene vin-
ciaziene di
in Figura 3.10, deve elascuna colati ad essere fra di 10min direzieni eppestc.9
Un esempio di asseciaziene temaria e FORNITUHA, mestrata
pexte p e we pro-
istanza (1i associaziene ri lega Ire entita —-un fernitete s ("5“ come supplier) una
esse—
getlej — egni velta Che : femisce pane p 31 pregettej. In generale le aeseciaziom Poeserlte
some 16 asseciazie ni binane. Le assecllazxe nl d1 gra-
re di qualsiasi grade, ma queue pie cemuni L'idca di rapprescntarc tipi di associazione come attributi ‘e usata in una classe c1] modelli di dati deni modem di
generalme nte pie complesse delle associazie ni binane (31 veda 11 Cap1tele 4).
de pie alto sene flat! mmlenali. Nelle basi dj dafi a eggeni, le asseciazieni pessono cssere rappresentate da attributi di riferi-
meme. 0 in una sela direzione o in enuambe le direzieni, come opposti. Nelle basi di deli mlazienali (si vedane
ne 1n ter-
Asseciazioni 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
rappresentare associnzjenj.
A 1. . .'- I-_

U50 del modelio Entité-Assoclazione per modellare i datl 57

56 Capitnlo 3

IMPIEGATO
SUPERVISlONE DIF'AHTIMENTO
DIRIGE
IMPIEGATO

a1 1

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 eglla to (2}.
supervisors {1) 3 dl chi é serv
$3.43 Vincoli sui tipi di associazione
-
a a un tipo di asso- ugl d1 associazione hanno generalmentc alcuni vincoli che Limitano le possibili combinatio
zlon i rico rsiv e. Ogni tipo di smith che partecip 5 00015-0t posson0 far parte del c0rfispondcnte insieme di associazioni. Questi vincoli so-
Nomi di ruo lo e ass ocia ca il r0010 ch: un’cntith par,
mo le particulate. 11 name di ruoln Indi 0 ateémman dalla situazmne del Imm-mondo ch: 10 associazionj rappresentano. Ad esem-
ciaz ione recita in essa un nza dl associazione e aiuta a
di smith, recita in ciascuna ista 13:: menu1:311:11 23?, 50’] axlenda ha c0_me regola quella che ciascun impiegato deve
lavorare per
tecipante, faccnte pane del tipo di associazione LAVORA_PEH,
c053 . indi ca que ll‘ ass ocia zione. Ad esempio, nel tipo iene i1 r0010 di di- pDSSibfliodgsgaIEEZnto, .alllora sllvoxzrelaba potar flescrivere questo vincolo nello
schema.
spiegare ratore e DIPAHTIMENTO sosl }e
di impiegato 0 lavo vmcoh d1 associazione: rappono a‘r‘ cardinalitc
1MP1EGATO sostiene i1 mole ég '_necipazi9ne_ gu us up: pnnmpall d1
pam'menro o darore di lavo ro. 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 as-
inti, dal memento ch: 11 name -
.
$313531: di cardmahth per 090001021001 blame. ll r-apporto di cardinalith per un‘assocla
0% : .. . . . . . .
di smith partecipanti sono dist alcuni 0251 10 5:25.90 tipo di
entita pastecipa pill di una Ad
sets usato come name di 1110
10. Part», in
casi i1 name di r0010 diviene
essen- . 'mana apecllica 11 numcro d1 lstanze d1 assocmmone a cui pub partwipare un’entith
zion e con moli diversi. In questi so- , 01013;: 001 0pc d1 associazione binaria LAVOHA_P EH, DIPARTIMENTO: IMP! EGATO ha rapp0rto
v01ta a 1m tipo di associa Associa zion i di que sto tipo
to Eli ciascuna partecipazione. 1;];agitamiflfi, nel $51150 Che: ciascun dipartimento pub esaere correlate con (cioé
da lavom
ziale per distinguere i1 significa un cse mpi o. ll tipo Ell asso ciazio-
e, e la Figura 3.11 00 mostra fito [possibiffiiiau‘ 1:11;]: an a01p10gat0 p0b-easere c0ne1ato a (lavorare par)
011 $010 dipan‘i-
no (latte associazloni ricorsiv clove sia l‘entita impiegato
sia quel—
coll ega un impiegato a un su'panrisore, di entl ta IM- Uni . ' ppo . _ca:dnlaht:i per 0131 d; assomazione binari 50110 1:1, IN, N: 1 e M:N.
ne SUPERVISIONE ATO . Per cib il tipo
sore son o mem bri dell o stes so tipo di emit?! IMFIEG (0 cap o). e . esempi‘c.) d1.assoc1az10ne banana 1:1 3 DIRIGE {Figura 3.12), che correla Lm’entita
di—
la supervi a 001 r0010 01 supervi sore
s :1 SUPERVISIGNE: una volt e r1 in cum all nmpxegalo che dirige quel dipaxtimento. Cit: rappmsenta i vincoli dcl mini-mon
-
PIEGATO panecipa due volt scu na ista nza di ass ocia zion
son-egliato (0 subaltemo). Cia
l’altra volta 00! 111010 di chi é to ej ed a” dell e quali una soatiene i1 mole
di su-
NE ass ocia due enm a imp iega nate con “1“
SUP ERV ISIO 10 lines con tras seg
chi é somgliato. In Figura 3.11
pervisoxe e 1’21a 51 r0010 01 indi can o i] 11:0 1:) di chi 0 s01:—
0 quelle couttassegnate con “2" N Eta per quaisfm! mmem di entim correlate (2.010 0 pifi).
inclicano i1 r0010 di supervisors ia 06 ed 0,; infine es sowcglia a,
ed 04.
03; an soflegl
wnliam: auindi e. surveglia 02 0d
58 Capitele 3 Use de! moderle Entitb-Asseciaziene per medeJIare i datf 59

LAVORJLSU Nei diagranuni ER 1a partecipaziene tetale é rappresentata con una linear deppia che cel-
IMPIEGATO lega il tipe di entire partecipante afl‘assoeiazione, mentre la partecipazione parziale b rappre—
sentata con una linen singola {Figura 3.2).
PROGETTO

.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 particola-
progetto, 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' en-
e 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 cli-
artimente e dall’entita partecipante impiegate (direttere).
Figure 3.13 L'asseciaziene M:N LAVOHA_SU tra IMPIEGATO e FHOGETTO.
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 la-
erare per 131: dipanimento. queste attribute pub essere inserite come attribute di IMPIEGATO.
do secendei quali un impiegate pub dirigere solo un dipartimente e un dipartimente ha un se-
Cib perché egni enfitb impiegato partecipa a] pit: a un’istanza di associaziene in LAVOHAJEH.
lo direttere. I1 tipe di asseciaziene LAVORA_SU (Figure 3.13) ha rapperte di cardinalita M:N,
entrambi i tipi di assesiaziene 1:1 e 1:N la decisiene riguardame dove dovrebbe essere pe—
perché la rege]a del mini-mendo e che mi impiegate pub lavorare su melti pregetti e che un
to un attribute di asseciazione — come attribute di un tipe di asseciaziene 0 come attribute di
progette pub avert: melti impiegati.
un tipe di entita partecipante - b presa clal pregettista delle schema su base seggettiva.
I rapporti di cardinalita per asseciazieui binarie sono rappresentati nei diagrammi ER po-
Per i tipi di asseciaziene M:N alcuni attributi possene essere determinati dalla combina-
nendo l, M e N sui rembi come mestrate in Figura 3.2.
I'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
Vincoii di partecipazione e dipendenze d.i esistenza. l] Vincelo (ii partecipazione specifica
dell’asseciaziene M:N LAVORA_SU (Figure 3.13); il numero di ore she un impiegate lavera su
se l’esistenza di un‘entita dipende rial sue essere correlate a uu’altra entitb attraverse un tipe
n preget‘te b determinate da una cembinazione impiegato—progette e nun separatamente da
di asseciaziene. Ci sene due tipi di vineeli di partecipaziene. tetale e parziale. Se la pelilica
'na 0 dall‘altra entita.
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-
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 sen-
Itipi di entitb Che non hanne prepri attributi chiave sono detu‘ tipi di eutitfi debole. Per cen-
se one alcune 0 “parte dell’insieme delle" entita impiegate some correlate a un’entita diparti—
ste i tipi di entita regelare che hanne un attribute chiave sono talvelta detti tipi di enfiti‘a
mente attraverse DIRIGE, ma cib non vale necessariamente per tutte. Si farb qui riferimente a!
30119. Le entita ehe appartengene a un tipe di entita debele vengono identifieate tramite 1} le-
rapperte di cardinalita e ai vineeli di partecipaziene. censiderati nell’iesieme. come ai Vince-
_ _ ' cenegamente eon speeifiehe entité di un altre tipe. in cembinaziene con i valor-i di aleuni
li strutturali di rm tipe di asseqiaziepe.
M 1...... law; :- . 1
......H. :t. ... ...-...

Use del medeIIo Entita-Asseciaziene per modellers i dati 61


60 Capitele 3

dei lere attributi. Chiamereme quest‘ altre tipe di entitfi


il tipe di entifit identificante 0 pre- 3.6 Raffinamento della progettazione ER
ehe lega uu tipe di enfitfi debeie a1 sue preprietario l'as-
prietarie.“ e il tipe di assecia ziene
entitb debele ha sempre un vin- per la base di dati AZIENDA
sociazione identificante del tipe di entire debele.” Un tipe Eli ziene identifi-
relative alla sua associa
cola a‘i perrecipazione totals (dipendenza di esisteuza}
un’entit é. preprietaria. Perb non é ehe egni
eante, perché essa nen pub essere identifi cata senza
ite di E pessibile era raffinare 1a pregettaziene della base 151' dati di Figure 3.8 carnbiande gli ate-i-
entitb debele. Ad escmpie, un’ent
dipendenza di esistenza abbia some risultate un tipe di buti che rappresentane asseciazieni cen tipi di associaziene. Il rapporte di cardinalith e ii vin-
ita di PERSONA, anche se essa ha una pre- cele di partecipazione di egnj tipe di asseciazione sene determinati aparlire dai requisiti elen-
PATENTE non pub esistere se non e correlate a un’eet
non un’entite debele.
e eati neI Paragrafe 3.2. Se qualche rapperte di cardinalitb e qualche dipendenza nen pessene
pria chjave (NumeroPatenle) e Eli censeguenza
PERSO NA_A_ GARIC O, cellegata a IMPIEGATO, che e usata essere determinati dai requisiti1 allera gli utenti devene essere intervistati per determinare ta—
Si censideri il tipe di entité
n impiegate uarnite un’asseciaziene 1:N (Fi-
per tenere traecia delle persene a carice di ciascu ].i vineeli strutturali.
CARICO seno Neme (i1 neme di battesime della perse— Ne! nestro esempio sene specificati i seguenti tipi di asseciaziene.
gura 3.2). Gli attributi di PERSONA_A__
l‘impiegate). Due persone a carice di due
na 3 carice). DataNascita, Sesso e Parentela {con
stessi valeri per gli attributi Nome, DataNasci- 1. DI BIGE. un tipe di asseciaziene 1:1 tra IMPIEGATO e DIPAHTIMENTO. La panecipaziene di
diversi impiegari possene, per case. avers gli
essere cemun que entite distinte . Esse vengene ricenesciute come IMPIEGATO b paiziale. La partecipaziene di DIPABTIMENTO non e cl‘tiarita dai requisiti. Si
ta, Sesso e Parentela, ma
lare entire impiegare alla quale ciascuna. intervistane aliera gli utenti, che dicono che un dipartimente deve avere sempre un diret-
entitb distinte solo dope aver determinate 1a partice
impieg ate pessie de 1e entita persona a carico ad essa cel- tere, i1 che implica una parteeipaziene tetaie.14 A queste tipe di asseciaziene b asseg'nate
b cellegata. Si dice che egni entité
I‘ attribute Datalnizie.
legate.
le, che é I‘insieme di attributi 2. LAVOHA_PER, un tipe di asseciaziene 1:N tra DIPARTIMENTO e IMPIEGATO. Entrambe 1e
Nermalmente un tipe di entitb debele ha una chiave parzia proprieta-
amente 1e entita debeli cailegare aiia stem: enrird partecipazieni sone tetali.
che pessene identifieare univec
e a carice delle stesse impiegate non 3. CGNTROLLA, un tipe di asseciaziene 1:N tra DIPARTIMENTO e PFIOGETTO. La partecipazie-
ria.” Nel nostre esempie, so si suppene che due person
battesi me, 1' attribu te Nome di PERSONA_A_GAHICO e la ne di PROGETTO b totale, mentre, dope aver censultate gli utenti, si stabiliscc Che quella di
pessene mai avere le stesse nome di
ste (121 turn" gh‘ arrributi deii’enn‘rc} de- DIPAHTIMENTO sia parziale.
chiave parziale. Ne] ease peggiere un attribute compe
4. SUPERVISIONE, un tipe di asseciazione 1:N tra IMPIEGATO {nel ruele di supervisere) e
beie cestituira la cbiave parziale.
la sua associaziene identificante ven- IMPIEGATO (eel ruelo di chi é servegliate). Entrambe 1e panecipazieni sene considerate
Nei diagrammi ER, sia ue tipe di entite debele 5121
con lines deppie (Figura 3.2). L’attri- parziali, dope che gli utenti heme specificato ehe nen ogni impiegato a: un supervisere e
gene distinte circondande i relativi rettangeli e rembi
con una Erica. trattegg iata e punteggiata. nen egni impiegate be en supervisere.
bute ebjave parziale e settelineato
pessen e qualche velta essere rappre sentati come attributi cemplessi 5. LAVOFIA_SU, considerate come un tipe di asseciaziene M:N con attribute Ore, depe che gh'
I tipi di entitb debele
ente si sarebbe petute specificare. per IMPEEGA - utenti hanne indicate cbe un pregette pub avere melti impiegati che laverano su di esse.
(compose. multivalere). Nell’esempie preced
lere Persen eACari ce, che sarebbe state an attribut e eerepeste cm: at- Si stabilisce ehe entrambe 3e partecipazieni siano totali.
To, un attribute multiva
La seelta di quale rappresentazie— 6. PEHSONE_A__CARICO_D1, un tipe di associaziene 1:N tra IMPIEGATO e PERSONA_A CARI -
tributi cempenenti Nome, DataNascita, Sesso e Parentela. usate é quelle di
criterie che pub essere CD. the e anehe l’asseeiaziene idenfificante per i] tipe di entita debole PERSONA_A_C_AHIGO.
ne usare e fatta dal pregettista della base di dati. Un
ne cen tipe di entitit debele se ci some melti attributi. Se l'entith de- La partecipaziene di IMPIEGATO é parziale, menu-e quella di PERSONA_A_CAHICO é tetale.
scegliere ia rappres entazio
di assecia ziene diversi dal sue tipe di asseciaziene Depe aver speeificate i sei tipi di asseciaziene visti SOPIa, si rimuevone dai tipi di entitb
bele partecipa indipendentemeute a lipi .
come attribute cemplesse.
identificante. allera non devrebb e essere modetl ata m_Figura 3.8 tutti gli attributi ehe seno stati trasfermafi in asseciazieni. Questi cemprendono:
si di livelli di tipi di emith debele; en ti-
In generale, pub essere definite un numere qualsia Duettere e DataluizieDirettere per DIPAHTIMENTO; DipartimenteCene'ellante per PRDGETTO;
entita debele. ineltre, un tipe di en-
pe di entitb preprietaria pub essere esse stesse un tipe di
Dipartimente. Supervisere e LavoraSu per IMPIEGATO; Impiegate per PERSONA_A_CAHIGO.
um tipe di associaziene identifi-
ma debele pub avere pib di un tipe di entitb identifieante e Quande si pregetta le schema ceneetwale di una base di dati e impertante avere 1a miner ri—
e 4.
cante di grade maggiere di due, come 5i vedra nel Capitol 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.

genitere e tipe di entltb dominante.


1' Il tipe di entilb identificante e laiera anche derre tipe di entitb " Le regele nel mini—mende she deterrninenei vinceli sene talera dette regote aziendah' (mariners rules}. :1
e tipe di with subordinata.
'2 II tipe di entita debeie b talera anche dette tipe di entitb tiglia meme the ease sene determinate dall’“azienda“ ed erganizzaziene ehe utilizzera [a base di dati.
'
'3 La chiave par-rials: b detta qualche volta discfiminatore,
U30 dal modello Entita-Asseciazione par modeliare i dati 67
65 Capitolo 3

Universal Modeling Langua- insiemi di valori (domini) di attributi;


1a notazione del linguaggio universale di modellazione {UML:

O.
concemiale a oggetti. 11131 di associazione e loro corrispondenti insiemi di associazioni;
ge). che e stats proposta come one standard per la modellazione are vincoli e ruoh d1 panec1pazione di tipi di entita in tipi di associazione.
alternativa, per specific
Qui di seguito verra invece descritta one notarione ER
associate una ceppia di numeri in-
strutmrali sulle associazioni. Questa notszione compotta di hbbiamo presentato due metodi per specificare i vincoli strutturali su tipi di associazione.
E a on tipo d5 associazione R,
teri (min, max) 3. ciascuna partecipaziene di un tipo di entita [1 prune metodo chstmgue due ripi di vincoli strutturali:
i indicsno che, per ogni entita e in E, e deve pafleci—
dove 0 S min 5 max e max 2 1. I numer e rapporti di cardinalith (1:1, 1:N, M:N. per associazioni binaric);
tione in R, quelsr‘ari sie I 'istente dt' tem—
pare ad almeno min B a1 pifi a max ismze di associa min > o vrncoli di partecipazionc (totale, patziale).
pazione parziale mentre
pe considerate. Usando questo metodo, min = 0 indies. parteci
0 indica partecipazione totale. . I] secondo specificai numeri minimi c massimi (min, max) della partecipazione di ciascun
di dati AZIENDA usando la nolazione
In Figura 3.15 e rappresentato lo schema della base 11130 .dl emila a un tipo di associazione. Si sono studiati i tipi di entita debole e i concetti cor~
cardinalitatfinea singoiat'linea doppia
(min, max).'5 Di solito si use 0 1a notazione rapporto di refit] d1 Lipi di enfita proprietaria, tipi di associazione identificante e attributi di chiave par-
notazio ne minlm ax a: pit] precise . e pub essere comodamente usa-
e la notazione mintmax. La zr e.
quat‘siesi grade. Per?) non e suf—
ta per specificare vincoli strutturali per fipi di associazione
di . Gli schemi Enfita-Associazione possono essere Iappresentafi diagrammaticamente come
zioni di grade maggiore, come si ve—
ficiente per specificare alcuni vincoli di c 'ave su associa diagraiemi ER. Abbiamo mostrato come progettare une schema ER per la base di dati AZI EN -
4. La Figura mostra anche tutti i nomi di mole per lo schema della base di DA commciando col definire i tipi di entita e i lore attributi e quindi rafiinando la progettazio-
am nel Capitolo
dati AZIENDA. ne 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-
ciamerie,_anribufi, chiavi e vincoli strutmrali — possono modellare 1e u-adizionali applicazionj
Sommario 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 mag-
azione di un modello di dati con-
In questo capitolo abbiamo presentato i concetti di modell giore accuratezza. Noi esaminereme questi concetti di modellazione avanzata nel Capitolo 4
il modello Entita- Associ azione (ER: Entity~ Relationship). Abbiamo co-
cettuale di alto livelle. clove descriveremo anche in maggiore dettaglio i tipi di associazione temari e di grade pifi ele:
dati di alto livelle svolge nel processo di
minciato con il discutere il ruolo che on modello di veto: eldiseutererno 1e circostanze nelle quafi queste associazioni some distinte dalle associa-
o presentato un insieme di requisiti per la
progettazione di una base di dati, e quindi abbiam zaom brnane.
e uno degli esemp i che verran no usati per tutto i1 Iibro. Abbiamo
base di dati AZIENDA, che
cioe 1e entiia e i lore attributi. Sono poi sta-
quindi 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
dati arbitrariamente per produr re attributi comple ssi: Questionario di verifica
o semplici o atomici.
3.1. Si discuta il mole di un modello di dati di aito liveflo nel processo di progettazione di
o composti.
one base di dati.
e multivalore.
3.2. Si elenchino i vari casi in (mi risulta appropriate l’uso del valore null.
fra atuibuti memorizzati e attribim’ de-
E state anche esarninata brevemente 1a differenza 3.3. Si definiscano i seguenti termini: entitd, attribute. velere dt' attribute, Esteem e't‘ esse-
modello ER a livello di schema o "intensio-
rivati. Abbiamo in seguito studiato i concetti del ciazt'ene, attribute cempesto, attribute multtvelere. attribute derivete, attribute cem—
male": ptesse. attribute chieve, insteme a‘t vetert' (dominie). '
0 tipi di entita e lore corrispondenti insiemi di entita; .3‘4' Cos'e un tipo di enfitfi? Cos‘é 1m insieme di entith? Si spieghino le differenze eaistenti
o attributi chiave di tipi di entité; tra entita, fipo di enfité e insieme di entita.
_ .5. Si spieghi Ia differenza esistente tra attribute e insieme di valori.
6. C-osfé un ripe di associazione'? Si spieghino Ie differeuze esistenti tra istauza di asso~
modellazione a oggetti, i (min. max) vengono posizio- : crazmne, tipo di associazione e insieme di associazioni. '
‘5 Ir: alcune notazjoni. e in particular: in queue usate nella
rispetto a quelli qui mostrati. Ad esempio, per 1‘ sssociazione LAUGHAJEH in Figura 3.15. (1.1) 53.7. Cos’e un molo di partecipazione? Quando e necessario usare nomi di ruolo nella de- I
naii sui taxi oppostt'
ENTO :2 (AN) sarehbe dalle parte di mPIEem‘O. Qui si e scelto di cleare la nota-
_ sarebbe oalla patte di DIPARTIM .. scnzione di tipi di associazione?
1e m'n' mn M " ' ' (1.074;- _ . t _.\ _ .. _:, . -_
.. .
"
._- ....-—v _..._.—...-- W
_: '_1

Use del medelle Entité-Asseciaziene per modellare i dati 69


68 Capitele 3

struttlirali su tipi di as- Si progetti une schema ER per questa applieaziene e si tracci un diagramma ER per
3.8. Si descrivane 1e due altemative esistcnti per specificare vinceli questo schema. Si specifichine gli attributi chiave di ciascun tipo di entita e i vineeli
a?
seciaziene. Quali some i vantaggi e gli svantaggi di ciascun strutrnrali su eiascun tipo di associaziene. Si prenda neta di tutti i requisiti non specifi—
binaria pub essere trasfe-
3.9. Sotte quali cendizieni an attribute di un tipo di asseciaziene cati, e si facciane assunzieni appropriate per rendere complete 1e specifiche.
rite per diventare an attribut e di une dei tipi di entita partecip anti‘l
attribu ti. quaii sone gii insiemi di valori di 3.17. Gli attributi cemposti e multivalere possene essere annidati fine a un numere qualsiasi
mo alle assecia zieni come
3.10. Quande pensia
su queste cencetto? di livelli. Si suppenga di velcr pregettare un attribute per un tipe di entita STUDENTE per
questi attributi? Che classe di modelli di dati e basata
femisc ane alcuni esempi. tener traccia della precedente educaziene universitaria. Un tale attribute avra rm valore
di assecia zziene ricorsiv a? Se rte
3.3 1. Cesa si intende per tipe Si defini- per ciascun college precedentemente frequentate. e ciascun valore di questo tipe sara
i1 cencette di entita dcbele?
3.12. Quando viene usato nella modellaziene dei dati composto da neme del college. date di inizio e di fine. titoli (titoli censeguiti in quel cei-
scane i termini: ripe di entire pmprie rart'a. ripe di enrird deboie, ripe di associazione
lege. se ve rte sene) e trascrizieni del libretto universitario (insegnamenti cempletati in
idemificamc e chiave parzieie . quel college. se ve ne sene). Ciascun valere relative a un titelo contiene i1 nome del ti—
debele puo avere grade maggiore di
3.13. L’ asseciaziene identificante di un tipo di entita telo e il mese e 1’ anne in cui i1 titele e state conseguito. e ciascun valere relative alla
due? Si femiscane esernpi per illustrar e la rispesta .
trascriziene del libretto universitario centiene un nome di insegnamento. semestre. an-
usate per rappres cntare graficamente une schema ER tra-
3.14. Si discutano 1e cenven zioni no e veto. Si progetti un attribute per censervare queste infermazioni. Si usine 1e cen—
mite un diagramma ER. venzioni di Figure 3.5.
per i diagrammi di schema ER.
3.15. Si disentano 1e convenzioni di denominaziene usate 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 view-
Esercizi li che hanno predette queste schema. Si cerchi di cssere i piu precisi possibile nella spe-
cificazione dei requisiti e dei vinceli.
una base di dati universita, usata per te- 3.20. Nei Capitoli 1 e ‘2 some stati discussi l‘ambiente e gli utenti di una base di dati. E pos-
3.16. Si consideri i1 seguente insieme di requisiti per
degli studenti. Essa e simile ma non sibile considerarc molti tipi di entita per descrivcre un tale ambiente. come i1 DBMS. la
ner traccia delle trascrizioni dei libretti universitari
1.2. base di dati memorizzata, i1 DBA e il catalogoldizionario dei dati. Si cerchi di specifi-
identica alla base di dati illustrate in Figure
del some, numere di matricela, nu— care tutti i tipi di entite che pessene descrivere completamente un sistema di basi di da-
a. L’ universits tiene u'accia. per ciascune students.
teiefone corrente. indirizze e nu- ti e il sue ambiente; quindi si specifichine i tipi di asseciazione tra questi tipi di entita,
mere di previdenza sociale. indin'zzo e numero di
di nascita , sesso. anne di cerse (prime. secendo. e si tracci un diagrarnma ER per descrivere un tale ambiente generale di basi di dati.
mero di telefone permanente. data
in cui viene seguita une spe- 3.21. Si pregetti use schema ER per tener traccia delle infermazioni sui veti raccelte nella
...), dipartimente priecipale di afferenza, dipartimente
del cerso di studi (B.A.. 13.3.. ..., Camera dei Rappresentanti statunitense durante la sessiene cengressuele biennale cor—
cializzaziene cemplementare (se c‘é). nenché
ente hanno necess ita di fare riferirnente a citta. rente. La base di dati deve memorizzare. per ciascuno STATO. it sue Nome (ad es. Texas,
Ph.D.). Alcune applicazieni dell‘ut
perma nente dello studen te, e at cegneme delle studente. New York. California). e cemprende la Regiene delle state (i1 cui demieie e [Northea—
state e CAP dell‘in dirizze
di matric ela hanne valeri unici per st. Midwest. Southeast, Southwest. West}). Ciascun MEMBHODELGONGHESSD nella Ca-
Sia il numero di previdenza secialc sia quello
mera dei Rappresentanti e descritte dal sue Nome. e comprende i1 Distrette rappresen-
ciascuno studente. tato. la DataInizie in eui e state elette per la prima volta e il Partite politice a cui ap-
di dipartimento. numero di effi-
b. Ogni dipartimente ‘e descritto da un neme. codice partiene (ii cui dominie e {Repubblicano. Demecratice, Indipendente. AitreD. La base
cie. telefene di ufficie e dal relative college . Sia i1 neme sia i1 cedice hanno valeri
di dati memerizza egm' PROGETTODILEGGE (ciee legge propesta) e cemprende i1 No-
unici per ciascun dipartjmeute .
una descrizione. un codice di in— mePregettelxgge. la DataDiVetaziene sul progette cli legge, infermazioni se i1 proget
c. Ogni insegnamente ha on neme di insegnamento. to of- to di legge a state ApprovateORespinto (i1 cui dominio a (Si, NOD e i Sosteniteri (.
livelle e Lln dipartimente che
'segnamento, un numere di ere per semestre. un membri deI cengresso che hanne sestenuto — ciee preposte — il pregette di legge).
I
ciascun insegnamente.
fre. Il valere del cedice deii‘insegnamento e unice per an numere di base di dati tiene traccia di come egni membro deI cengresse ha vetato su ciascunfp
anne, an insegnamente e
d. Ogni module ha un decente. un semestre. un gette di legge (dominie dell’attribute relative a1 vote :3 {51. Ne. Astenute. Asse
"
stesse insegnamente che so-
module. 11 numero di modulo distingue i moduli delle tracci un diagramma deIie schema ER per l‘applicaziene sepra descritta. Si 'Ii:
valori some 1, 2, 3, .... fine a]
nu-
no tenuti durante le stesso semesu'elanne; i suei mode esplicito qualsiasi assunziene venga fatta. -
mere di moduli insegnati durante ciascun semestre. 3.22. Si deve cosmfire one base di dati per memorizzare 1e squadre e 1e gare di una
te, un module. on vote in lettere e un
e. Una votazienc e caratterizzata da une studen tiva. Una squadm ha un certe numero di giecatori. dei quali nen tutti partec' I
veto numerice (0, 1, 2. 3 e 4).
70 Capitoio 3 U50 del madello Entitfi-Associazfone per modeHare J dati 71

@
Godmmrunom @ N
1

mam
i
NL'PTGEIQ
‘39 AEHOPDRTD

-
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.


1). CF: un tipo di entita dcbolc'? Se 51. si fomisca il suo nome, la sua chiave parziale e
la sua associazione identificante.
AEROPLANO c. Quali vincoli specificano in questo diagramma la chiave parziale e l‘associazione
identificante del tipo di entita debole?
(1. Si elenchino i nomi di tutti itipi di associazione e si'specifichi i1 vincoio (min, max)
NOTE
(I) UNA TRA'I'TA {SEGMENTUI EUNA HHHTE DI VOLO CGMPHESA par ciascuna partecipazione di un tipo di enfité a un tipo Eli associazione. Si giusti—
TRADUE scan SUGC ESSM
12: UN'ISTIDNZA D! THATTA E UN'OGCDHRENZA SPECIFIGA DI fichino Ie proprie scelte.
UNR TWA IN UNA mm SPECIFICA
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
Figure 3.18 Un diagramma ER per una base df datl COMPAGNIMEHEA. 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
gara. Si desidcra tener traccia dei giocatori che partecipauo_a ciascuna gal-a per‘ognj
panimento. Si supponga chi: ciascun dipartimento debba avere almeno un numero di t I
squadra, del 111010 che hanno ficoperto in quella gara 6 del nsultatto (iella gara. S1 cer-
lefono c possa aveme fine a tre. Si fomiscaao vincoh' (min, max) at questo diagram.
chi di progettarc 1m diagranma dello schema ER per que.sta app-hoazmne. enuiicwndo
Si enunci chiammeme ogm' msmione aggimiriva che venga firm. Sotto quali co_
espficitamente ogni assunzione Che viene fatta. Si scelga 11 propno sport prefento (cal-
zioni l'associazione HA_TELEFONO sambhe ridondante nell‘esempio sopra illus
. cio, baseball, football amelicano 600.).
3.25. Si consideri i1 diagramma ER cli Figura 3.19. Si supponga che un memento
3.23. Si consideri il diagramma ER illustrate in Figura 3.17 per una pane (16119. has; dj diati
113311: 0 menu 1m fibre di testo, ma Che un testo per definizionc sia un libro .ch
BANGA. Ciascuna banca pub aver: pit! filiali, e ogni filiale pub avert numeross com a
prestiti. _ .- : pa: un oerto msegnamento. Un insegnamento non pub usare pifi di cinquc 1i
I - _ l . d_. _ -r __
——-4 H._ .....

Uso do! modello Entita-Associazione per modellare i dati 73


72 Capitolo 3

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).
a1 modello ER, alcune delle quali sono state inn-Odette
é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).
é quelli composti sono inserifi nel modello ER in Ehnasri e altri (1985). Anche se in questo
1e sue esten-
TELEFON! capitolo non sono stati esaminati linguaggi per 3.1 modello Entita-Associazione e
Wiederhold (1981)
Sioni, ci sono state molte proposte di linguaggi di questo tipo. Elmasri e
U11 attro linguaggio
Figure 3.1 8 Un diagramma ER per one base di dati ehe tiene
iraccia del talefoni d1 un'azienda e degti im- propongono il linguaggio di intenogazione GORDAS peril modello ER.
preseuta un lin-
piegatl. di interrogazione ER e proposto da Markowitz e Raz (1983). Senko (1980)
di interrogaz ione per i] modello DIAM di Senko. Un insieme formaie di operazioni
guaggio
Spaccapie tra (1985). Gogolla e Hohenstein
'chiamato algebra ER e stato presentato da Parent e
pre-
centi tengono da due a quattro iusegnamenti. Si forniscano i
vincoli (min. max) a que- (1991) presentano un altro linguaggio formale peril modello ER. Campbell e altri (1985)
del punto di vista
sto diagrmnma. Si enunci chiammenre ogm‘ assunzi one aggiunn 'va che venga farm. Se sentano on insieme di operazioni ER e dimostrano che esse sono complete
(min. max) 51 do one dei Iisultati di Iicerca relativi al modello ER 6:
si aggiunge l'associazione ADOTTA tra DOGENT E e TESTO, quali vincoIi relazionale. Un congresso per la divulgazi
regolarita a partiIe dal 1979. I] congresso , ora noto come Congress o Intema—
state tenuto con
vrebbero porre in essa‘? Perché? Angeles (ER 1979. ER 1983, BR
che descrive 1e -zionale per la Modellazione Concettuale, e stato tenuto a Los
. In una base di dati UNIVERSITA si considezi un tipo di entita MODULO,
offerte di moduli degli insegna menti. Gli attributi
mestre, Anne, Codicelnsegnamento, Docente, NumeroAula
di MODULO sono: Numero Modulo. Se-
(in cui il modulo 5 inse—
1997), Washington (ER 1981).
(ER 1987), Roma (ER 1988),
Chicago
Toronto (ER
(ER 1985),
1939),
Digione-
Losama—
Francia
Svizzera
(ER 1936), New
(ER 1990), San Mateo-
York
$5
e insegna to). GiomiD ellaSett imana (i1 dominio e co~ Califomia (ER 1991), Karlsruhe-Germania (ER 1992), Arlington-Texas
(ER 1993), Manche- y .
gnato). Edificio (in cui i1 modulo 1995). Cottbus- Germaui a (ER 1996) e 12',
di giomi della settimau a in cui i1 modulo pub esse- -ster-Inghilterra (ER 1994), Brisbane -Australi a (ER
stituito dalle combin azioni possibi li
dominio a costituit o da tutti ipossibili inter- Singapore (ER 1998).
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
o di una pai‘ticola xe combin azione semesueianno (cioe,
ciascun insegnamento all‘intem
mento e offerto piu volte durante un partico lare semestre, 1e sue offene di
se un insegna
cbiavi compos te per MODULO, e al-
moduli sono numerate 1, 2, 3 ecc.) Ci sono diverse
nenti di piil di una chiave. Si individ uino tre chiavi composte,
cuni attributi sono compo
ma di schema ER.
e si iliustri come esse possono essere rappresentate in un diagra

DOGENTE 1NSEGNAMENTO

LIBRO-DI—TEsto
memorlzza i 11hr] d1 taste uaati per i vari inso-
Figura 3.19 Un diagramma ER per una base di dati che
gnamentl.
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 applicazio-
ni di elaborazione dati per il commercio e per l’industria. A partire dafla fine degli anni settan-
ta, 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, imma-
gini 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 pro-
gettisti 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 model-
li semantici di dati, e mostreremo come i] modello ER possa esaere ampliato per commende-
re questi concern, anivando al modello ER-esteso o modello EER (Enhanceci-ER).3 Comin-
ceremo 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'nt-
to 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


75 Capitolo 4

di .dati se- xiii?:21: has: (i; dati AZIENDA. In molti casi un tipo (ii entita ha numerose sotto-orga-
molti dei concetti proposti per i modelli
11 modello di dati a oggetti comprende come 1’ GMT (Object Modeling Tech
- . 13131 e e sue entita che sono significative e che dev
ellazione a oggetti,
mantici. Le metodologie della mod Language: linguag« ' '
esphcitamente per la loro importanza per] ‘ applicazmne 0110Ad
d1' basn' d1' dati '
3559113 faPPl’esemate '
a ogge tti} e l‘U'M'L (Universal Modeling
nique: tecnica (ii modellazione re pin popo lari nelia progettaaione e che sono membri del lipo di entita IMPIEGAT0 possono essere ulteriormente I raweu‘ate 16 i' n311mg
SE -
o diventando semp
gio universale di modellazioae), stann delia prog ettazione di EEEZAEIEEEINGEGNEBE’ PaTTORE.’ TEGNIGO, IMPIEGATO_STIPENDIATO. fiflglEgiATO PA-
Queste metodologie vanno a1 di 19
nell’ingegnerizzazione del software. e delle10:0 in- W 501107 . e cosi v18. L maieme d1 entita in ciascuna delle ultime organizzazioni in npi e
ettazione dettagliata di moduli software
basi di dati, fine a specificare una prog I diag ramm i delle class i,4 che costituiscono Dgnj en$513112eedlelllle 6111.25 clge appattengono all‘insieme di entiti IMPIEGATO nel senso che
di diagramm i.
terazioni, tramite l’uso di sari tipi ammi BER. ' meIn r0 ’ . di queste aotto-organizzazioni e anoh e um 1m
. 1 una '
‘ ato. Cia-
‘i to
ie, sono per molti versi simili ai diagr
una parte importante di queste metodolog azioni sugli oggerti. ET: ((1)) Egljueste sotto—orgamzaazwm rappresenta una sottoclasse del tipo dj entitapIMiIEGATo
ciazioni, sono pure specificate le oper
pero in essi. oltre ad attributi e asso ii duraate la progetta- Lasso entita IMPIEGATD e detto la superclasse per ognuna di queste sottoclassi. ’
per specificare i mquisiri funziona
Le operazioni possono essere usate rate in Figu ra 3.1. Presenteremo la sociaziunfasflgle:1;: 113a stipei’classe e una qualsiasi delle sue sottoclassi rappresenta un’as-
grafo 3.1 e illust
zione di basi di dati. come visto nel Paxa e 1i confronteremo ’ _ ss so 0c asse o semplicemente un’associazione classefsottoclassfi
rammi delle classi nel Paragrafo 4.6,
notazione UML ei concetti peri diag 22:35:12!) fliecizdenteé IMFIEGATOISEGEETARIO e IMPIEGATOH'EGNICO sono due associa
etti BER.
brevemente con la notazione e i oonc ivi alla modella— so on asse. i noti che un’entita membro della sott l -
4.7 prese ntere rno alcun i dei problemi pil‘i complessi relat ’
io rapprcseflta' a '13 SIB-Ha
Nel Paragrafo esamineremo le astra— enritr‘z del mondo reale di un certo membro della superclasse' adesem
00 3556
piit elevate. Nel Paragrafo 4.8
zione di associazioni temarie e di grade TARIO ‘Joan Logano' 6 Pure l‘IMPIEGATO ‘Joan Logano’. Quindi ‘ ' P s 1111 d
i1 memh H d1 SEGHE ‘
Clint
come basi per molt i modelli di dati semantici.
zioni fondamentali usate dowebbe es- e uguale
, .all’entita
_ ' no main specifico distinto Quando
della superclasse , ma in 1'0 6s' a' SDttOClaSSB
l
mod ellazione concettuale, i1 Capitolo 4
Per un’introduzione dettagliata alla era solo un’inn‘odu- - ' si uo
on associazmne superclassefsottoclasse nel sistema d'1 1mm' d1' dati,' tuttaVIa, ra Cinema
1 ”HP resen-
del Capitolo 3. 'Dittavia, se si desid
sere considerato una continuazione esse re tralasciato . Alternativamente :1;:1: i:lneinbro della sottoclasse come no oggettodistiato deila base di dati — Ed esergigio un
queste capitolo pub
zione di base alla modellazione ER, grafi 4.3-4.8]. [33m E353mm che é collegato u'amtte l’attn'buto chiave alla sua enfita di superclasse (nellPa—
in tutto o in pane, i paragrafi final
i o (Para
i1 lettore pub scegliere di saltame. . venanno presentate vane OlOIl‘l per rappresentare associazionj superclassefsot-
toclasse nelle has: d1 dan relazionali).
se- :25:13:3::sdérceiatl nlon puo lgsisilere un’entita che sia solamente membro di una sottoclas-
ereditarieté ,_ anc e mom to eIIa superclasse. Tale entita uo es ’
4.1 Sottoclassi, superclassi ed senta
. come' membro di . un numero qualsiasi. P
di sottoclasst.' Ad esemplo impie gato sti' en-
, un eventualmeflte
‘ 56m m-
$153101 53:92::32hfmiri étéghergonere appamene alle due sottoclassi (del tipo di entité IMPIEPGA-
modello ER presentati STIPENDIATO. Tilttavia non é necessatio che ' ' '
concetti di modellazione propri del
11 modello EER comprende tutti i classe e di supe zciasse e i concetti . r I —
superclasse 51a membro d1 una qualche sottoclasse. gm smith d1 Ulla
0

de i concetti di sotto
nel Capitolo 3. In pitt esso compren e 4.3). Un altro da in tintiortante ooncet‘to associate alie sottoclassi e quello cli ereditarieta di tipo. Si ricot-
ne e di gene ralizzazione (si vedano i Paragtafi 4.2
collegati di specializzazio goria (Si veda i1 Para grafo 4.4), usato per e 1 tips- di un entita e defimto dagli attributi propri dell’entita e dai tipi di associazione
é quello di cate
concetto compreso nel modello EER dive rsi tipi di entita. Asso— _ a cm 1 entita partecipa. Dato che un‘entita nella sottoclasse rappresenta la stessa entita del
tti che e 1‘ unione di oggetti di
rappresentare una collezione di ogge ered itarie ta di attri buti e asso ciazioni. mondo reale presente nella superclasse. essa dovreb'be disporre di valori per i suoi attributi
meccanismo di
cia a questi concetti e 1‘ importante conoetti. per cui si usera qui 3 specifici cosi come di vaiori per gli attributi posseduti in qualita di membro della superclasse
inologia standard per questi
Purtroppo non esiste alcuna term note a pie di pagiaa. VeIra ELEZnttta ctljae sia membro di una sottoclasse eredita tutti gli attributi dell’entita cansiderata
inolo gia altemativa sara fomita nelle
quella pill commie. Una term resentate graficamente questi conc
etti a la mem ro della superclasse. L‘ entita eredita anche tutte le associazioni alle quali parteci-
matica per rapp
anche descritta uaa tecnica diagram taati saranno indi- superclasse. Si not: che una sottoclasse, con i suoi attributi e 1e sue associazioni specifi-
ma EER. I diagrammi di schema risul p
quando essi si presentano in one sche 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 '
rammi EER.
cati come diagrammi Eli-astute o diag zione e quello di sottoclasse di
. 1 . E. . . . l. Ff . 6
da prendere in oonsidera
ll primo coneetto del modello EER tesentare sia un
nel Cap itolo 3, un tipo di emits é usato per rapp
un tipo di entita. Come visto di entit d di quel ripo che sussistono nel-
tips off un’emitd sia 1‘ insieme di enritfi
o la coile zione
ii tipo (cioe gli attributi e le
di entita IMPIEGATO descrive
la base di dati. Ad esempio, i1 tipo siem e corre nte di entita Un associazione classefsottoelasse a Spesso chiamata associazione EUN (o EUNO, E-U'NA) per i] moddineui
egato. e fa pure fiferi men to all‘in
associazioni) di ogni entita impi a] concetto - Infatti Si (1'leg " un SEGRETAHIO E—UN IMPIEGATo I! , ll un TECNIGCI E-UN IMPIEGAT: " '-
‘ I I I
esi c031 “an
fa riferilnento
‘ . . I I
passnugelgiiaggodgpmggménanone oriental: a oggetti, nna restrizione eon-lune e che un’entita (a un oggctto) I I
I.“ ale . . t . .

____'_________H
pa. 1?: generalmente troppo rcstrittivo per la modeilazione conoettuale di basi-d'i' anti. .
a un ripa di enlim.
‘ Una classe a per moiti aspetti simile
Modellazione Enflta-Associazfone estesa e modefiazione at 099811} 79
78 Capitolo 4

colare sottoclasse _ come VeloeitaDattiIografia di SEGRETAHIO - some uniti a1 rettangolo che


m rappresenta quella sottoclasse. Questi some detti attributi specifici (o attributi locali) della
cm» «a; «m:- sofloclasse. Analogamente, una sottoclasse pub partecipam a tlpi dj associazione specifici,
come ad csempio 1a sofloclasse IMPIEGATO_PAGATO_A__ORE che pmtecipa afl‘associazionc
IMPIEGATO APPARTI ENE_A. fl simbolo d presents nei cal-chi e la notazione diagrammatica aggiuntiva EER
saranno spiegati fra breve.
In Figura 4.2 50110 mostrate alcune istanze di emité chc apparlengono a sottociassi della spe-
cializzazione {SEGHETARIO, INGEGNEHE, TEDNICG}. Si noti ancora che un’entité che appartie—
me a una sottoclasse rappresenta la stem: enrfta del mondo reale dell’entitfi collegata ad essa
o \\‘0 presente nella superclasse IMPIEGATO, anche se la stessa smith :3 mostrata due volte: ad esem-
pic in Figura 4.2 21 e mosh-am sia in IMPIEGATO sia in SEGHETAHIO. Come questa figura sug-

Q9 GEE, @
lNGEGNERE mamas LMHEGATO_PAGATOJLOFI‘E
SEGRETAHIO TECNIGO SEGHETAFIIO
NPIEGATOfiTlFENmATO
@ gppgflnauu
Tm lpanhizzmlnnl d IMPIEGATO:
{SEWAHIOJ‘EGMCQ 1NQEGNEHE}
IDIHE‘TORE] To
MFIEGRTOJPAGATDJLORE.
$Mmsenm§1lpmumo1 9909510 SINDAGA

claSSI.
per rappresentare specializzaziona e SOt'EO IMPIEGATO
Figure 4.1 Notazione de1 diagramma EER

one
4.2 Specializzazione e generalizzazi INGEGNEHE

?? :11s$3121 23;:oifggiigxggi
Per specializzazione si intende i1 processo di :32? . . ‘ . ._
e e a
' tita; uesto ti 0 di smith é detto supe
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 d5; luogo a1-
tipoddi1 gum:- baiif1 fipigg geo< $g
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§ TECNICO
$323211: di sottlzlclassi {IMPIEEATG méini smegma-
ubasa-ta sulla mafia Ir
specializzazione fa una distinzione tra gli-irnp'ega
come 51 rappre senta Ellagrammaucaul- meme some uni-
In Figura 4.1 viene illustrate
defimscono una spec1 :12: [l simbolo di
zione in un diagramma EER. La sottoclassi she
E a sua volta collegato afla .sug‘mrcf asieh‘ zjone d51—
te tramjte line: rette a un cerchio, Che
tfoclass'e a1 cerchlo inrilca gm]: um pani-
sorroinsieme su ciascuna lines. che college: una-so
attribuu ch: nguardano so 0 e an
l‘associazione supexclasseK-s011136121554:.‘I Gli
5

RE."
_____...._._._._._._—-.—.——

7
'
’ hzzazt
Esistono molt: nolazioni altcmaLive per la spectaEMF” A.
‘ ne UML n21
‘ one; qul' s:‘ presentermno [a notazlo
Paragrafn fin ra 4.2 Aicune isianze della specializzazione di IMPIEGATO naii'instame dl sottoc1assi {SEGHETAHIt}.
INGEGNERE. TEDNICO}.
1'1 rd. ziofi.’ He mg;_--- in - - t -' - -: - - .}
.1 .51': --.' '. I! "‘ .nr - __
. ‘_._d ._......_._- ' «
. i' ',.- . z"... _._ .t

Medellaziene Entlta-Asseciaziene estesa e modellaziene a eggettl 81


BO Capitele 4

(a)
ATOISEGRETARIO assemiglia 11:1 NumPassaggeri
gerisce, un‘asseciaziene superclasseisetteclasse come IMPIEG
e 1:1 a iiveflo di 15e ('Figura 3.12}. La differenza principale a she in
pe’ a un‘asseciazien Tennellaggle
entird distinte . menu-e in un’associaziene
un'associaziene 1:1 seno messc in relaziene due
stessa entith del monde reale dell‘entith AUTOMOBILE
superclasselsottoclasse 1’ entita nella settoclasse e la
nella superclasse, ma essa svelge on male specializzaro ~
ad csempio. un IMPIEGATO specia- M9
ATO specia lizzato nel mole di TECNIOO.
lizzato nel mole di SEGRETARIO, e an IMPIEG Nun-flange NumTarga
i fondam emali per inserire asseci azieni classelsettoclasse c specializ-
Ci sene due ragien ma
attributi si pessene applicare ad alcune
zazieni in un modelle di dati. La prima :2 she certi
lasse. Una settecl asse é definita allo scope di raggruppare le
non a tutte le smith deila superc cen-
della sottoclasse pessono ancera
enrich all: quali si applicane quesli attributi. I membri lasse. Ad esempie,
(b)
membri della superc
dividere la maggieranza dei 1010 at 'buti cen gli altri
TARIO pub avcre an attribu te Veleci thDattilegrafia, mantra la setteclasse
la setteclasse SEGRE
re, ma SEGEE TAHIO e INGEGNERE cendivide-
INGEGNERE pub avere tin atlributo TipeIngegne
IMPIEGATO.
no i lore restanfi attributi come membri del tipo di entita aziene possene parte-
La seconda ragien e per usare setteclassi e che ad aicuni tipi di asseci
Ad esempie, se pessone appartenere a un
cipare sole entith che siano membri della setteclasse.
ile rappresentare queste fatte ereande la set-
sindacate solo gli impiegati pagati a ore. é pessib
_A_OR E ecoliegando la setteclasse a un tipe (ii an-
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 Tennellaggie

o definire un insierne di sottoclassi di un tipe di entita; AUTOMOBILE CAMION


sse;
stabilire attributi specifici aggiuntivi per ciascuna settecia
di associ aziene specifi ci aggiun tivi tra ciascu na setteclasse e altri tipi di en-
o stabiljre tipi 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

tith e altre settoclassi.


inverse di astraziene, nel quale si sepprime-
Generalizzazione. Si pub pensare a un processo
le lore caratteristiche cemuni e 1e si ge-
no le differenze tra mold tipi di entité, si individuano
tipi di entith eriginari sene sottoc'lassi spe-
neralizzane in una singela superclasse, di cui i Fmera sene stati intredotti i concetti di settoclasse e di associaziene superclassefsetto—
erine i tipi di smite AUTOM OBILE e OAMION mestrati in Figura classe. cosi come i precessi di speciafizzazione e generalizzaziene. In generale una superclas-
ciali. Ad esempie, 5i censid
di entita VEICOLO, come most-ate in Figura
4.3[a); essi pessone essere generaljzzati nel ripe sc elsetteclasse rappresenta una cellcziene di enfité defle stesse tipo e pcrcie descrive anche
era settec lassi della superclasse generalizzata VEI - un ripe di entird; ecco perché le superclassi e16 sotteclassi nei diagrammi BER sene rappre-
43(1)). Sia AUTOMOBILE sia GAMION sene
ento al processe di definiziene di un
COLO. Si usa i1 tannins generalizzazione per far riferim sentate graficarnente cntre retrangeli (come i tipi di entith). Ora verrarme esaminali in mg-
dafi.
Lipo di entita generalizzate a partire dai tipi di entita gier dettaglio 1e proprieth delle specializzazieni'e generafizzazieni.
genera ljzzazio ne pub essere considerate come funzionalmente in-
Si neti che i1 precesse di {AUTOMO-
4.3 e possibile censiderare
verse a1 processo di specializzaziene. Percie in Figure.
ne di VEIOOL O, piuttes to Che considerare VEICOLO ce-
BILE. CAMION} come una specializzazie
me una generalizzaziene di AUTOMOBILE e OAMION. Analeg
mnente in Figura 4.1 si pub censi- 4.3 Vinceli e caratteristiche di specializzaziene
SEGHETARIO, TEONICO e INGEGNEFIE. In a]-
derare IMPIEGATO Genie una generaljzzaziene di e generalizzaziene
si use one netazie ne diagrammatica per distinguere tra ge-
cune metedelegie di pregettaziene
punta afla superclasse generalizzata rap-
neraljzzaziene e specializzazione. Una freccia che
frecce che puntan e aile setteclassi specializzate rap~ In goes-to paragrafe verranne tranafi in prime luoge i Vinceli che 3i applicane a una singela
presenta una generalizzaziene, menu‘e
questa netaziene. perché la decision»:
presentane una specializzaziene. Qui non verra adottata spemalizzamene e a una singela generalizzaziene; tunavia. per brevith, la trattazione si rife— '
lars: situaziene é spesse seggettiva. L’Ap-
so quale precesso sia i1 piii appropriate in una particu lira sele alla specializzazione, anche se 5 valida sia per la specializzazieue Sia per 1a genera—
netazi eni diagra mmati che alternative preposte per diagranb llzzazmne. Quindi samnne prese in esame le differenzc tra i reticoli {ereditarietd multiple) 6
pendice A presenta alctme delle
' mi di schemafdiagrammi delie classi.
Medellaziene Entité-Aeeociaziene estesa e medellaziene a eggetti 83
82 Capiteie 4

ralizzazieui e ieuedetfi particelari Se rune Ie setteclassi in una speeiafizzaziene hanne la coudizione di appartenenza basata
1e gerarchie {creditor-tent singeia] di specializzazieuilgene pre- _ suilo Nessa attribute della superclasse, la speeializzazione b detta specializzaziene definita
zzazrene duraete la
suile differenze tra ii preeesse di specializzaziene e quello di generah tramite un attribute, e i’attribute e dette attribute che definisee la specialjzzaziene.B Graft-
gettaziene eencettuale di une schema di basi di dati. camente essa verra qui rappresentata penende i1 neme dell’attribute che definisee la specia-
, pesserio esserci molte specializaa: lizzaziene vieino all’arce che va dal cerchio alla superelasse, come mostrate in Figura 4.4.
Vineeii su specializzazienelgeneralizzaziene. In generale Quando non si ha una cendiziene per determiuare 1‘ appartenenza a una setteclasse, la sot-
e in Figure 4.1..1n east d1
zieni definite suile stesso tipe di entita (o superciasse). ceme illustrat teclasse b detta definita dall’utente. L’appartenenza a una settoclasse di questo tipe a deter—
ssi preseuti in ciaseuna spectaltzzaztone.
queste tipe, 1e entita pessene appartenere a sottecia minata dagli utenti delta base di dati quande essi esegueee l’operaziene di aggiungere un‘en-
Cemunque una special izzaziene pub aucbe censist ere solo in una singoia setteciasse. eemeila
non si use 13. numeric cen 1i cerchle. titb alia setteclasse; percib l‘appartenenza e specy'icara individuaimente per ciascuna entire
specializzazione {DIRETTOHE} in Figure 4.1; in tal case dait 'utente. e non da una condizione che pessa essere valutata autematieamente.
ente 1e enmb che dwerranne
In aicune speeializzazioni e pessi‘eile determinare esattam A una specializzaziene pessene essere applicati altri due vineeli. ]] prime e il vincele di
valere di un certe attribute delia
membri di ciaseuna setteelasse peneude una cendiziene sul disgiunziene, che specifica che 1e setteclassi della speeializzazieue devene essere disgiunte.
tramite an predicate (e definite
superelasse. Tali settoclassi some dette settoclassi definite Cib significa che un’entitb pub essere membre at pit} di una delle settoclassi della specializ-
Ad esempi e. se i1 tipo di entita IMPIEG ATO ha un attribute TlpoLa-
tramite una cendiziene). zaziene. Una specializzaziene che sia definite tramite un attribute cemperta i1 vincolo di di—
1a condizi ene di appartenenza alla set-
vere, come mestrate in Fig-era 4.4, si pub specificare sgiunzione se I‘attributo usate per definire il predicate di appartenenza b a valore singole. In
predica te (TipeLa vere = ‘Segret arie‘). che chjameremo pre:
teclasse SEGRETARID IIaI‘nite il Figura 4.4 :3 illustrate questo case, dove la d ncl cercbie sta per disgiunta. Si 1133. la netazione d
iorte e um vincoio che specifica che 1
dicato di definizione della setteclasse. Questa condiz ancbe per specificare i1 vincele che 1e sottociassi di una specializzaziene definite dali’utente
seddisf are i1 predica te e che tutte Ie entita del
membri della sotteclasse SEGRETAHIO deveno devene essere disgiunte, come illustrate dalla specializzazione {IMPIEGATG_PAGATO_A_OHE.
cui valore di attribut e per 'I‘ipeLa vere e ‘Segret arie‘ devone ap-
tipo di entita IMPIEGATO i1 IMPIEGATO_STIPENDIATO} in Figura 4.1. Se 1e settoclassi non sone vincolate ad essere di-
una settoclasse defimta trarmte
partenere alla setteclasse. Qui si rappresenterb graficarnente sgiunte, i lore insiemi di entita possono sevrappersi; cieb la stessa entitb (del monde reale)
one del predica te vicine alla linea che cengiunge la sette-
un predicate scrivende 1a cendizi pub essere membro di pib di una setteelasse della specializzaziene. Queste case, che e quel-
classe al eerchio di speeializzaziene. .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-
IMPIEGATO _sentare graficamente una specializzaziene paniale, che censente a un’entita di nen apparte-
nere a nessuna setteciasse. Ad esempie, se certe entitb di IMPIEGATO neu appartengene a nes-
suna delle setteclassi {SEGRETAHIQ INGEGNERE. TECNIGO} delle Figure 4.1 e 4.4. allera quel-
TipoLavere la speeiaiizzaziene e parziale? Si neti che i Vinceli di disgiunziene e di cempietezza some in-
dipendenti. Percib si hanno i seguenti quattre pessibflj vineeli sulla specializzaziene:
disgiunta. tetale;
"ingegnere" disgiunta. parziale;
"Segretarie"
sovrapposta, tetaie;
sevrappesta, parziale.
Veieettattiiegrafia “”I'ecnice"

1 SEGREI'ARIO | r TECNICO I F INGEGNERE J 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
eutl‘attribute fipeLavere di IMPIE-
Figure «L4 Una epscialtzzazlene definite tramite un attribute basata 1111 tipe di entitb a un tipe (ii associezjone. come v e'pel Cagitole 3. ' I '-
Medellaziene Entita-Asseeiaziene estesa e medeHaziene a eggetti 85
34 Capitele 4

IMPIEGATO
Deseriziene

DataFabbricaziene NemeFemltere [EEGREI’AFIIOj LTECNICO ] IINGEGNERE! IRE-reg


IMPIEGATO_PAGATO_A_OFIE
FreueDlListIne _1MFIEGATO_STIPEND1ATO

PAHTE_FABBHiCATA PAR'I'EfiCOUisTATA
DIRETTOFIEJNGEGNERE
sl che si sewappengene {non disgiunte}.
Figura 4.5 Netaziene per specializaziene con setteeias Figure 4.6 Un retieeie di specializzazieni con la sottoclassa condivisa DIHETTOREJNGEGNERE.

te che assume ciascuna spe-


Natuxalmente i1 vineele cerrette e determinate dai significa
stata individuata ate—averse elasse. Al centrarie, per un reticolo Iii speciafizzazioni una selleclasse pub essere soiteclasse
cializzaziene nel mende male. Cemunque, una superclasse che é in pm di una assemazmne classefsetteclasse. Percie la Figura 4.6 rappresenta un reticole.
perché la supercla sse e derivara daHe sette-
il precesse di generalizmziene di selite e totale. In Figura 4.7 e mostrate un altre reticele di specializzazieni con pit di un livelle. Queste
classi e percie centiene seie 1e entité Che sene nelle setteciassi. ' pub essere pane di une schema cencettuale per una base di dad UNIVERSITA‘ Si neti cite que-
certe xegele di inserimente e
Alla specializzaziene (e alla generalizzazione) si applicane sta disposiziene sarebbe una gerarchia se non ci fesse la setteclasse ASSISTENTE STUDENTI
enza dei Vinceli septa specific ati. Alcune di queste regele some
cancellaziene, come censegu che e setteclasse in due distinte associazieni ciasselsetteclasse. 1n Figura 4.7 tu_tte le emits,
he seguenti: persona rappresentate nella base di dati sone membri del tipe di entita PERSONA, she 53 spe-
che cssa venga autemaficamente
- la cancellaziene di un‘entité da una superclasse impljca mahzza nelle setteclassi {IMPIEGATO, EX_ALLIEVU, STUDENTE}. Questa specializzaziene e
canceliata da tutte le setteclassi a cui appartie ne; sovrappestl; per esempie un ex allieve pub essere anche un impiegate e pue essere anche uno
l’emith venga ob‘eligatoriamente
o l’inserimente di un’eutith in una superclasse implica Che studente che presegue gli studi per ottenere un Litele pin avanzate. La sotteclasse STUDENTE é
1m predica te (o definite rmmz‘te we attribute)
inserita in tune 1e setteclassi definite Immire superclasse per la speciafizzaziene {STUDENTE__LAUHEATO, STUDENTE NON LAUREATO}. men—
per Ie quali l’entite seddisfa ii predicate di definizi ene; tre IMPIEGATO é supemlasse per la speciafizzaziene {ASSISTENTE —STUD—ENTI, CORPO DO‘
specializzaziene rotate impiica Che
o l'inserimeme di un’entita in una superclasse di una CENTE, eEnseNALEjIjUPPeaTO}. Si neti che ASSISTENTE_STUDENTI e anche una Simo—
in almene una delle setteclassi della specializza— classe d1 STUDENTE. Infine, ASSISTENTE_STUDENTI e superclasse per la specializzaziene in
l’entité venga ebbligateriamente inserita
none. {ASSISTENTE_DI_HICERGA, ASSISTENTE_DI__DIDATTICA}.
di inserimente e cancellazione In un reticele e gerarchia di specializzazieni una setteelasse eredita gli attribufi non sele . '
11 letters e imitate a stendere un clenco complete di regele -della sua diretta superclasse, ma anche di tutte 1e superclassi Che la precedenefino ad arr-Eva '
per i val-i tipi di specializzaziene. Ire eila radicedelle gerarchia 0 dc} reticele. Ad esempie. un’entith di STUDENTE_LAUFIE_AT
Una setteclasse pue avers altre sot- eredlta tutu‘gh etmbuti che queil’entita pessiede in quanta STUDENTE e in quanta PERSONA :
Gerarchie e reticeli di specializzazionii‘generalizzazieni. not] Che un entith pub trevaxsu m pill nodifagfia della gerarchia, Cleve un node foglia 9‘. tin
una gerarch ia e um reticele di specializzazieni. Ad
teciassi specificate su se stessa, a fennare elasse che non ha nessuna sofioclasse. Ad esempie, un membm di STUDENTE_LAUFIEATO='
4.6 INGEGN EHE e una seuecla sse di IMPIEG ATO ed a anche una superclasse
esempie, in Figura anche assume an membre di' ASSISTENTEJIJIGEHGA.
reale che egni direttere del
di DI RETTORE_INGEGNERE; cie rappresenta i1 Vincele del mende Una setteciasse con pi!) dz‘ ma superclasse e detm sottoclasse condivisa. Per 'eseni‘pi
un ingegne re. Una gerarch ia di special izzazioni presenta i1
repute ingegneria deve essere eg'ni DIRETTDHE_INGEGNEBE Cleve essere un INGEGNERE ma deve anche essere m1 IMEIEGA:
sofa assecia ziene classefsette- . :.'
vineeie ehe egni setteclasse partecipa come sortoclasse a ma
Modoilazione Entité-Associazione estesa a modellazione a oggetfi 87
as Capitolo 4

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% @ STUDENTE. Qui sia IMPIEGATD sia STUDENTE ereditano gh' sressi arm‘buri da PERSONA. La re—
g 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 condi-
visa (ASSISTENTE__STUDENTI). Porcib i amibuti di PERSONA sono creditati solo Lma who
0 nclla sottoclasse ASSISTENTE_STUDENTI di Figura 4.7.
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—
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 necessa-
rio create sette sottoclassi di PERSONA: I, E, S. I__E, I_S, E__S. I_E_S. Ovviamente cib pub por-
mm STUDENTE

1
ter: a complessita aggiuntiva.
E anche important: notare che alcuni meccanisnfi di ereditarieta chc conseotono l‘eredita-
xi,
w 1 .7 riotb multipla non consentono a un’entith di avers pifi tipi, e pcrcib un’entita pub essere. mem-"
DisclpilnaDI 0 _ bro 5010 di and done.” Anchc in un modello di questo tipo b necessario creare sottoclassi
i.
® @ Spedallzzazlcne 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-
} sogno defle stesse sette sottoclassi cli PERSONA.
' Anche se qui si e parlato soitanto di specializzazionc, concétti simjli sz' applicant) agitat-
STUDENTL STUDENTE_
LAUREATO NON_LAUREATO '- meme alla generalizzazionc, come detto all’inizio di questo paragrafo. Percib si pub anche
PERSONALE. ASSTSTENTE. § parlare di gerarchie di generalizzazioni e refiooli di generalizzazioni.
DLSU PPORTO STUDENTI
FrograrnmaDIStudl
' 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 on-
ma atIraverso specializzazioni successive; ciob 5i definiscono ripetutamcntc sotto-organjzza-
zioni in gruppi sempre pill specifiche del tipo di entita. Ad esempio, quando si progctta il rc-
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
WSSISTENTEJLHICEIfll [ASSISTENTLDLDIDAWIGAJ saranno rappresentau' Ire tipi di persone: impiegati dell’universiia, ex allievi e studenti. A que~
SITA.
ereditarleté mumpia) per una base di datl UNIVER gto scopo si crca Ia spacializzazione {IMPIEGATQ EX_ALLIEVO, SWDENTE} e si scegiie iI vin-
Figura 4.? Un retico'lo dl specializzazioni [eon
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-
PO_DOCENTE, ASSISTENTE_STUDENTI} e di STUDENTE in {STUDENTE_LAUREATO, STUDEN -
GEGF~IEHE dovrebbe essere um sot-
To sTIPENDIATO o no DIHETTGBE, allora DIRETTDRE_IN TE_NON_LAUHEATO}. Infine, si opera una specializzazione di ASSISTENTE_3TUDENTI in {A_S«
assi (Figural 4.6)..915 pol-ta a1 concerto notEi‘Eomo
toaasse condivisa di tune a tre lo supercl
isa DIR’ETTOHEfiINoEGN area
ereditarieté multipia, dal memento Che la sottoclassc corrdlv d1 ainieno un
da piil classi. Si non Che 'i ousten za
dita direttamentc attributi e associazioni fiielsz go P——_
netd mirrorin g; iglozra _
sottoclasse condivisa porta a un rcticoio (o porci‘b a eredz‘ta 11- p -: . I In alcuni casi la ciasse é. ulterionneme vincolata a asaere un nodofogfia nclla geramhin o relicolo.. _ _
flrrnniqssu‘nflivisehsi avrehbeIuria oorarcflgomtiosaohe un 12cc 0. = = ~53 _z- - - -' -. -' '
:.‘_:__:

Modellezione Entite-Asseciazione esteee e modellazione a oggetti 89


83 Cepitolo 4

sive {\d elsempie, si suppenge di avere tre tipi di entite: PERSONA, BANOA e AZIENDA. In una ba-
DIDATTICA}. Queste specializzazioni succes
SI STENTE_DI_RIOEHCA, ASS!STENTE_DI__ alto a1 besso ) du— se d1 dau per l’immatrieolazione di veicoli. il proprieterio di un veicelo pub essere una perso-
te concettuale top-down (dall’
corrispondeno a un preceeee di raffleemen hia; quind i ci 5i ren- na, une hence (che he un’ipoteca sul veicolo), o un’ezienda. Si he quindi bisogne di creere una
Fin qui si he una gerarc
rante la progettarione dello scheme eoneettuele. classe.(cellezione di entite) che commends. entite di tutti e tre i tipi e che sostenga il ruolo di
a une settoclasse cendivisa, da] memento che
de conte del fatto che ASSISTENTE_STUDENTI propnetario def vet‘cele. A questo scope vienc create una categoria PROPRI ETAH IO che sie una
eosi a1 retieele.
e enche una settoclesse di STUDENTE, arrivendo te. In tel case it rertacfesu'e dell’UNIONE dei tre insiemi di entite AZIENDA. BANCA e PEHSGNA. Le categorie
le dalla direziene eppos
E possibile enivare alla stesse gerarchia 0 retice in un dregramme HER seno reppresentete greficemente come mostrato in Figure 4.8. Le su-
alizza zioni piutto sto che epecie lizzazioni e corrispende a una sintwi
processe prevede gener Psrelassr AZIENDA, BANCA e PERSONA sono cellegate e1 cerchio contenente il simbelo U che
case i pregettisti possono prime sco-
ounce-finale bottom-up (dal besso all’elto). In questo , STUDEN- retiree l’eperazione uniane di insiemi. Un area con il simbelo di sotteinsieme college i1. cer—
prirc tipi di entite come PERSONALE_DI_SUPPOBTO, COHPO_DOCENTE, EX_ALLIEVO
O, ASSISTENTEJJIJIIGERCA, ASSISTENTE
_DI__DI - clue alla cetegoria (sottoclasse) PROPRIETARIO. Se 51 he bisegne di uu predicate di definizio-
TE_LAUREATO. STUDENTE_NON_LAUREAT UREATO} in ne. essolviene rappresentato graficetnente vicino eile linea che perte dalla superclasse e cui si
ENTE_LAUREATG, STUDENTE_NON_LA
DATTIGA e cesi via; poi generalizzeno {STUD TICA} in ASSISTEN - apphce Ll predicate. In Figure 4.8 si hanno due cetegorie: PROPRIETARIO, che e une sette-
A, ASSISTENTE_DI_DIDAT
STUDENTE; quindi {ASSISTENTE_DI_HICERO
PPOFITO, CORPO_DOCENTE. ASSISTENT
E_STUBENTI} cIesse deil’unione di PERSONA, BANCA e AZIENDA; e VEICDLG IMMATHICOLATO che e una set-
TE_STUDENTI; poi {PERSONALE_DI_SU - I
LIEVO. STUDENTE} in FERSONA. teclasse dell’unione di AUTOMOBILE e GAMIeN.
in IMPIEGATO; infinc. {IMPIEGATQ EX_AL
che rieultene da entrembi i precessi possene Una categorie he due 0 pie superclassi che pessono rappresentere tipi diversi di entire
In termini strutturali, 1t: gerarchie o i reticeli state specificete 1e su-
0 l'erdine in cui some mentre 1e elu-e associazioni superclasse/sottoclasse hanne sempre uua sela superclesse. E pos:
essere identici; la sole differenze riguarda i1 mode
e e probebfle che non venga seguito fedehnen- sibtle confrontare uue categoria, come {DROPHIETARIO in Figure 4.8. con la sottoclasse condi-
perclessi e 1e sottoclessi dello schema. In prefic serve di une
di specializzazione, ma che ci si vise DIEETTOREJNGEGNERE di Figure 4.6. Quest’ulfime e une setteclasse di cfascuna delta
te :16 i1 precesse di generalizzaziene n6 i1 precesse
In questo case venge no ripetutarnente inserite, in una gererchie tre superclessi INGEGNERE, DI BETTORE e IMPIEGATO_STIPENDIATO, e pertento un’entite che
combinazione dei due processi. diventene evidenti a utenti e
memento stesso in cui sre memere di DIRETTOREJNGEGNERE deve esserci in tutte e tre. Cie rappresenta i1 Vincele
o in une specializzazione, nueve classi, nel li di
e deti e cenescenze usendo gerarchie e retice che un direttore del reperto ingegneria deve essere un INGEGNERE. un DIHETTGHE e un IM-
progettisti. Si neti che l'idee di rappresentar cenza e sistern i esper-
in sistemi basati sulle conos PIEGATD_STIPENDIATO; cioe DIRETTORE_INGEGNEHE e un settoinsierne dell'inrersezt'ene
superclassifsottoclessi e ebbestanze comune Ad
comb ineno 1e tecne legia delle basi di deti cen tecniche di intelligenze artificiale. delle tre superelessi (insiemi di entitfi). Una cetegeria, invece, e un sotteinsierne dell’tmt'one
ti, che essemiglieno forte-
ziene della conos cenze beset i su frame delle sue superclassi. Percie un’entite che sia membre di PROPRIETARIG deve esistere in una
esempie, gli schemi di reppresenta pro-
fizzaziene e cemune in quelle metedolegie di sole delle superclessi. Cie rappresenta i1 vincole di Figure 4.8 che un PROPRIETAHIO pub es-
rnente elle gererchie di cles si. Anche Ia specia orient ate e ogget ti.
sono besate sul parad igma sere un’AZIENDA, una BANCA a una PERSONA.
gettezione dell’ingegneria del software che
. 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
4.4 Modellazione di tipi UNIONE come DI RETTOREJNGEGNERE (Figure 4.6) eredite tutti gli atlributi delle sue superclassi IM-
attraverso l’uso di categorie ' PIEGATO__STIPENDIATO, INGEGNEBE e DIRETTGRE.
F. interessente notare la differenze tre la categoria VEICOLOflIMMATaIGOLATO (Figure 4.8)
vista finore presentene em: sofa ruperctasse. Una e la superclesse generalizzete VEICOLO (Figure 4.3b). In Figure 4.3(b) ogni automobile e ogni
"lune 1e associazioni superclasseisotteclesse in cannon e un VEICOLO; d’altra parte in Figure 4.8 1a categorie VEICOLO IMMATHICOLATO com-
GNEHE nel reticolo di Figure 4.6 e sotteclasse
sotteclesse cendivisa come DIEETTOREJNGE iezioni he une prende alcune eutemobfli e alcuni carnien, ma non necesseriamente tutti (ed esempie. alcuni
, dove ciescune delle tre essec
tre diverse asseciazieni superclessefsettocieese
Non e infreq uente , tuttav ia, che serge 1e necessite di modellere uue sin- eermenlo automobiii pessone eseere non human-icoleti). 1n generele une specializzezione o -
superclaese singela. generahzzezione come quelle in Figure 4.3(b). se fosse perzt'afe, non precluderebbe a VEICD: '
con pie di una superclasse, dove 1e superclessi rep»
gola associaziene superclaeselsottoclesse
1e sottoclesse rappresentere une collezione di L0 d1 contenere altri tipi di entite, come ed eserepio moteciclette. Invece. une categoria come. -' - I
presentano diversi tipi di entite. In questo case lasse e VEICOLD_IMMATRICOLATO di Figure 4.8 prevede che sole automobih' e cannon, ma non en'ti' I i I:
e) di diverei tipi di enfite; questa settec
eggetti che e I‘UNIONE (0 on 5110 sottoinsiem di altri tipi, pesseno essere membri di VEICGLD_IMMATHIGOLATO.
dette tipo unione e cetegerie.“_
. 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
ery—Reiationship: smite-Categorie-
baseto sul meddle ECR (Entity-Ceteg TITOLARE_CONTO. Viceveree 1a cetegeria PROPRIETfi in Figure 4.9(b) e total
” L’uso qui Eetto tie} termine categoria e
Associezione} (Elmasri e altri 1985).
Modellazione Entité-Associazbne astesa e modellazione a oggetti 97
90 Capitolo 4

@-
AZIEN DA

PERSONA m TITOLAHE_
CONTO BANCA

(b)

PROPRIETARIO

PegnoONormaIe

M DataAcquisto I
@ PROPRIETA EDFF'C'O

N 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—
W ne analog-a.
-
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 li-
nea 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
0 @ dalla categoria PROPRIETARIO di Figura 4.8, 0 viceversa avere lo stesso attribute chiavc, co-
me dimosmato dalla categoria VEICOLO_IMMATRICOLATO. Si noti che se una categoria e tota-
Mamac
Modeilomto Modeuoc le (non parzéalc), cssa pub essere alternativamente rapprescntata come una specializzazione
-
(0 mm generafizzazione), come illustrate in Figura 4.9(b). In questo case la scelta su quale
Tonnall 1o
T‘IpoAuto
rappresemazione usare é soggettiva. Se 1e due classi rappresentano Io stcsso tipo di entitfi e
GAMION ndividono numerosi atuibufi, comprcsi gli stessi attributi chiave, si preferisce 1a speciaiiz—
AUTOMOBILE
azionelgeneralizzazione; altrimenti é pill appropriata l‘introduzione Eli una categoria [tipo
'one). '

‘ tipi d:‘ enti'Wdassi usando la


'
4.3 Un'lllus ' a di come rappresen’cara I ‘ UNIONE :11‘ due 0 plu
trazmn e VEI -
notazio ne di catego rla. Sana rappres antate graficamenta due categurre: PHOPRIETARIG
Figura _: {r'c' . ¢ .
- : Inn-n rm p'mnl n10. ;.-,_

M... L- _ L; Ed M lab”... I. H l I
Modellazione Entita-Associazione estesa e modeliazione a oggetti 93
92 Capitolo 4

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 Succ essivamente sa-
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 mode llo ER di base.
i concetti del
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 name nti dell‘u niversita. La base 61
dell‘ offerta di inseg
universitari c dell‘iscrizione, nonché doce nte e degli stude nti laurea-
a finan ziati del corpo
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 nasci ta [Data N]. Sono state in-
sesso [Sesso] e data di
za sociale [Sen], inditizzo [lndirizzo], GENT E e STUD ENTE. Attributi
PERS ONA: GORP O_DO
dividuate due sottoclassi del tipo di entita iato, professore
{Fascia} (assistente, professore assoc
specifici di CORPELDOCENTE sono fascia ], telefo no uffic io [TelefonoCD]
ecu), ufficio [Uffic ioCD
suaordinario, ricercatore, visitatorc ai dipar tirnenti uni-
bxi del corpo docente sono collegati
e stipendio [Stipendio], e tutti i mem del corpo doce nte pub afferixe a
__DI] (un membro
versitari ai quali afferiscono [FA_PAHTE uto spec ifico di STUD ENTE E: {An-
ne e M:N ). Un atu‘ib
molti dipartimenti, cosicché 1‘ associazio e anche college—
studente laureate = 5}. Ogni studente
noCorso] (prime = 1, secondo = ‘2, ..., ndari a, se noti [ESP ECJHING] e
e principale e seco
to al suo dipardmento di specializzazion do [ISCH ITTO_A1, e
nti che sta attualmente frequentan
[SPEG_SEC]). ai moduli di insegname 01. Ogni istan za di trasc rizione del
SCRIZIONE_LIBRETT
agli insegnamenti gia completati {TRA ] nel mod ulo dell‘ inseguamento.
nte ha ricev uto [Veto
libretto comprende il voto che lo stude definizione An-
e di STUDENTE, con il predicate di
STUDENTE_LAUREATO e una sottoclass elenc o dei titoli prece dentemen—
ato viene conserva to un
noCorso = 5. Per ogni studente laure li]. Inoltre, lo stude nte laureate vie-
e mult ivalo re [Tito
te conseguiti in an attribute composto R] e a una commissione di tesi
corpo docente [TUTO 9w-
ne collegato a un tutor facente pane dei
[COMMISSIONE]. se ne esiste una. fonoD], e nu-
attributi nome {NomeDL telefono [Tele
Un dipartimento universitario ha gli doce nte che me e il dixet tore [DI « gura 4.10 Uno schema concettuale EER per una base (it dati UNIVERSITA.
al membro de] corpo
mero di ufficio {Ufficiol ed e collegato del colle ge [No-
Ogni college ha come attributi nome
RIGE] e a] college di cui fa paste [CD]. [Pres ide].
}, e il uome del suo preside
meC], numero di ufficio {UfficioC insegnamento {No- :liascun modulo. I moduli ohe vengono ofi'erfi durante il trimestre in corso sono in una sot-
Un inseg name nto ha come attrib uti codioe insegnamento [Iii]. nome
cl]. Sono offerti molti moduli per ciasc un insegnamen- AmajsEmUElBOHRENTE d1 MODULO. con i] predicato di definizione Txim = TrimCorrente e
meI] e descrizioue insegnamento [Des nei qua-
e del modulo [Mod#] e 1‘ anno e il trimestre — o on'ente. Ciascun modulo e collegato al docente che Io ha insegnato o che lo sta
to. e ogni modulo be per attributi i1 codic i del modulo identificano uiuvocame
n- segnando ([INSEGNA], se quel docente e nella base di dati).
e ["[l'im]).12 I codic
lj il modulo e stato offal-to ([Anno] 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' '
'_____________.__
mantengono con l'insegnameuto o la ricerca. Infine, il tipo di entita BOFISA_EII STUDIO tie-
quello dei semstri.
usato i1 sistcma dei trimestri anziché
12 Si assume che in quests universita venga
Medellazione Entita‘a—Asseciaziene estesa e modellazione a eggettl 95
94 Capitele 4

ti all‘universita. Ogm bersstdilt Un predicate pi sugli attributi di Di pub essere usate per specificarei membri di ciascun l!)i
ne traccia delie berse di studio e dei centratti di ricerea assegna che sono anehe membri di T. Se un predicate é specificato su eiascun 1),, Si ha
il titelo della bersa di studio [Titele]. i1 numere delle bersa (1:511:11 e
studio ha come attributi
]. Una bersa d1 studiec 0211:;
[Nam], Fame the la assegna [Elite], e la data d’inizie [patent T= (DIL911 U DELP2]
e a tutti i ricerca ten ehe finanma [FINAttt'ZI-fil].1 13:3 di U DnLPnD
gata a un dirett'ore di ricerca [DR]
del finanztarnento [ling]. a 1 1-0-
istanza di FINANZIA ha come attributi la data di inime Ora si devra estendere la definiziene di fipe di asseciarjene data no] Capitole 3 consentende
tuale d1 tempo Che-viene d cata a p
fine that finanziamente (3e neta) [Fine], 6 1a percen a egni classe — non solo a egni tipe di entita — di partecipare a un’asseciaziene. Percie si devra
getto [Tempe]. dal ricercatere finanziate. 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.
Una ulasse13 e an msmme e eageziprgz
Definizieni formali per i cencetti del modello EER.
qualsia si costrutte delle schema BER che raglgmppginuzla.c1355c
di emits; con cie si include
eategon a. Una sottec asseln-a class: deg.
ad esempio tipe di entita, sotteclasse, superclasse e 0 L1,“. as- 4.6 Use dei diagrammi delle classi UML
un setteins ieme delle entita presentl m and: h
le cui entita devene sempre essere 3 sem-
e 61:33:3
ta la superclasse C dell’asseciaziene superclass-elspttocla
sse {o E—UN) . I? per la modellazione concettuale a oggetti
assoc1a zmne supercl assefse ttec asse 0
seciaziene di queste tipe con CIS. Per tale
pie avere sgc
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.
Una specializzazione Z = {31.32, Sn} a un insieme di sotteclassi che hanne la stess: $1:- Anche se esse sono state sviluppate principalmente per la pregettazione del software. una par-
e per I = I, 2,... n.'G e detu: te important: di questa riguarda la progettazione delle basi di dati a cui si aceedera tramite i
perclasse G; ciee, G.-’S-l e un‘asseciaziene superclassefsotteclass ne e .
lizzaztene,le generalizzane moduli software. Percie una pane impertante di tali metedelogie — costituita dai diagramm‘
tipo di entita generalizzate {e superclasse della specia
Sal). Si dice che Z s totale se si ha sempre (in egm istante d1 tempo). . delle ctassi ~14 e per melti aspctti simile ai diagranunj BER. Purlreppe e la terminologia che
setteclassi {S1, .53,
‘. spesse differisee. In questo paragrafe vet-ta passata brevernente in rassegna parte defla nota-
U sI = G ziene, 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.
_ Nei diagrammi delle elassi UML una classe e rappresentata graficamente con un riquadre
' dice cheS ZdieCsevra
' 'leelasse
311531;:Eoi esta. ta tramite 1m predicate .
si diEEdefini se .51 use. an predt_cato p 3:- che eemprende tre sezieni: la sezione in alto femisce i1 Home della elasse; Ia sezione in mez-
d1 5;;1? ia—Uinbgge un _-zo comprent‘le gli attributi per i singeli oggetti della classe; I’ulfima sezione comprende ope-
gli attributi di C per specificare quali emits di C sono anche membn '- tazieni che pessene essere eseguite su questi oggetti. A differenza che nei diagrammi UML,
che seddisf ano p. Una settoelasse non e at
ve Cp] 9 l’insieme di entita d3 C nei diagrammi BER non seno specificate 1e eperazioni. Si consideri la classe IMPIEGATO in
‘ detta definite dall’utent e.
DrefiifZSecializzaziene Z (0 ma generalizzaziene G) e detta definite tramlte 11:, :tltribgie Figure 4.11. I suoi attributi sone Nome, San, DataN. Sesse, Indirizzo e Stipendie. Se lo desi—
51 d1 Z, rienziuia S. mg che dera, il progettista ha facelta di specificare i1 dominio di an attribute, penendo un carattere:
se, per specificare l‘insieme dei membri di ciascuna setteclasse 'unta' seguite da neme e deseriziene del deminie (gli attributi Nome, Sesso e DataN di IMPIEGA-
cestante del dominio . 3:115
sate (A = 0.), dove A e an attribute di G e c, e um valere 0). Un attribute cempeste e modeliate con un dominio strutmraro, come illustrate dall‘attrir
zmztetltle imam-gloom;
se cl a C1 per i is j, eA a un attribute a valere singele, allera la spe01ah bute Nome di IMPIEGATO. Un attribute multivalere sara generalmente modellate con una clas-
ia Te una classe settoinsietne dell’um ene d1 n supercla ssn c e a
Una categor 6 separate, come flluszrate dalla classe SEDE. .
DUDE. D“, n > I , ed a formalmente specxficata come segue: I tipi di asseciaziene some detti Iegamt' (associations) nella tenninelogia UML. e 1e is'tah
T g1). u D1... u on) \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

dall ' use pm ‘ ‘di


' cement: she no a fatte net’ [malaigg-i fl smuurm
_ p redgrznmmazien e orien—
U ' '
Qui I‘use delle parela classe differisee
infatti, una classe consiste nella lnilllE I pe
lati a oggetti some ad esernpio C++. In C++,
‘Mieme alle fi-Mieni at man nnplicshili rnnemzienil. 4,. -& _ - :. _‘_
“...... I-. - -"“ .. 1 “a _
met—...: - . - -: -'-:.,..:§..-'- —
-. (II-II-
m Hm. ,, __ __ - - ' E
W

Modellazione Entita-Associazione este'sa e modellazione a oggeiti 97


96 Capitoio 4

Notazlcmo OMT all no Ilcflfi PERSONA


IMPIEGATO DIPAHTIME‘NTO
_____._ 1.3 Nome
" Name San
Nome: DarnNome Nunato . a .
NumeBm " WENEMM
1 1 0-3 ———O 11.1
Inlzlnt : aanlunuLknplegala Seem
Gannon-Le nLrneirrrpaagato indlfizzo
Sen cambia_dh'eflore eh}
DmN: Data
Seawwfl
Intflrino
Su-endlo
ale
oambla_d1pafllmenlo BLAUEVO TITOLO STIJDENTE
IMPIEGATG
cambhjmgefll
Stipentlio 1 _ #0; DIpSpscrauuazinna
O assume-Imp nucnm_ex_alaaw ompaimm camblLdPGG
Nome Pulsar-ammon- . Spaclaflzzazlona ...
A
0
Name
Nut-note
.99”n i new
FERSONMGRRLCO
aanluwuarosm Newman; UML dl aggressions:
Sasau:[M.FJ mahILdlruunre
m. m PERSONALL
oLsupomo CORPO
oocafi‘e ”S'WNTE-STUDEN" smm_munmo STUDENI'EJONJAUHEATO
Datalln: Data
Paranieln F Hone l. '°‘“""“ 7‘ , 115d AnnaCorso
ass sludan
assufllfirsfi‘supp promumrl ... urnL l8 “mmdL’ME J ”mm-mu-m"

base all dafl AZIENDA d'I Flgura 3.15.


Figure 4.11 Lo schema coneefiuala UML par la

ASSISTENTEJLRICERGA ASSISTENTEJLDIDATHCA
neflo Insagnamanw
detto attribute d'i callegamento, e pesto
re no name (opzionale). Um attribute di associazione, notazio-
camblurouetto anemilnsegnamanlo
tramite one linea ttatteggiata. La
in un riquadro che é collegato alla linea del legame
atagra fo 3.7.4, «2 usata per specificate vincoli di associa-
ne (min, max), descritta nel Sottop specificate Figure 4.12 Notazione
. UNIL di specialiuaionefgeneralizzazione III ustrata tramite on d]
Le moltepljcita sono
zione, che sono detti molteplicitd nella terminologia U'ML. class; corrlspondente al diagramma EER di Figure 4.7. agramma dens
che non esiste limiie massimo alla partecipa—
nella forma min..max, e um asterisco (*) indica
partt' opposte dell’assaciazione se con-
zione. 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 Le opetazioni fornite per ogni classe sono derivate dai requisiti funzionali dell'applicazio-
una molte pliciti di 0..*, e an 1 da solo indica una
3.15). In UML, un asterisco da solo indica neacot-ne wsto nel Paragrafo 3.1. All’inizio e in genere sufficiente specificare i nomi delle ope—
(si veda Sonoparagrafo 3.4.2) e detta legume ri-
molteplicith di 1..1. Un‘ associazione ricorsiva Iazmm per indicate 1e opetazioni logiche che si prevede di eseguire sui singoli oggetti di una
licith — vengono posizionati su lati oppo-
flessivo in UML, e i nomi di ruolo — come 16 moltep classe, come mostIato in Figural 4.11. Man mam che i1 progetto si raflina, vengono aggiunti
con il posizi oname nto dei nomi di 111010 in Figura 3.15.
sti di un legame, 5e confrontati maggion dettagli. come i tipi esatti degli argomenti (parametri) per ogni operazione, nonché
e 1’ aggregazione. L’aggregaziane e
In UML esistono due tipi di associazioni: il legame .une descrizione funzionale di ciascuna operazione. L‘UML dispone di descfiziom' difimzioni
ne u-a un oggett o compl ete :3 1e sue part1 componenti.
pensata per rappresentare un’associazio e di diagrammt’ dt‘ sequenza per specificare alcuni dettaglj delle operazioni, ma cio va a1 di 1a
4.11 1e sedi Eli un dipam'mento e la sin—
e ha una notazione diagrammatica distinta. In Figuta 1e» :fimrtata della presente discussions. ed a generalmente descritto nei testi di ingegneria del
con aggregazioni. Comunque aggregazioni e
gola sede di un progetto some state modellate associazione usare e are.
su quake tipo di
gami non hanno proprieta strutturaji diverse. e la scelta e da In UML 1e emité deboli possono essere modellate usando i1 costrutto detto legame quali-
piuttosto soggem'va. Nel modello EER sia i legami 51a 1e aggregazioni sono rappresentat
1, ficato (o aggregazt’one qualificata); 3550 put) rappresentare sia l’associazione identificante 5121
ilaggregazioni unidirezt’ortali — che sono rap-
associazioni. L’UML distingue anche tra legam accedere a og- la chiave parziale, posta in an riquadro attaccato alla classe proprietaria. Cio e illustrate dalla
indicate che c’é bisogno di una sola direzione per
presentate con una fteccia 3. elasse PEBSONLAFCARIGO E: (18118 sua aggregazione qualificata a IMPIEGATO in Figura 4.11.'5
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 rap-
opzt‘anali, e gli attributi d1 associations sono
UML i nomi di associazione (legame) sono she rappresenta il le- ,5 . . . . . . . . , .
uniio con una linea [ratteg giata alla linea be assoctazlom qualtfioate non s: Inmtano alla modellazlone d: ennui deboli, ma posseno essere uLilizzate per
presentati dentro un riquadro modellare anche altre Sltuazioni.
4.11}.
gmnefaggregazione (Datalm’zio e 011: in Figure
Modellaziene Entitia-Associazlone estesa e modellazfone a eggetti 99
98 Capltolo 4

fizzazienefspecializzazione, fer-
In Figure. 4.12 é illustrata la netaziene UML per la genera
rna delle classi UML cerrisp endent e a] diagralruna EER in Figura
nendo un pessibile diagram
ziene disgiunra. e um triange-
4.7. Un triangele mete indica una specializzazienefgeneraljzza
FORN!TOHE
le picne indica sovmppesizione.
una rapida visions: d‘insicme sui dia-
La discussione e gli esempi septa ripertati femiscono alcune
rafia a fine capitele fernisce
grammi dell: classi e sulla tenninelegia UML. La bibliog
one completament e i dettag li dell’UML.
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— FURNITURE
di tipi di entita chc partecipano a1 tipe cli asseciazione
tipe di asseci aziene di grade tre. In questo paragrafe ver-
ziene d3 grade due, 6 reman'o un
e associazieni di grade maggiore, quan-
ranne analizzate le differenze Ira asseciazioni binarie
ne di grade pie elevate, c i vinceli su as-
de sceglierc un’asseciaziene binaria e un‘asseciazie
seciazieni di grade maggiere di due.

ie (e di grade piil elevate). La nota-


Scelta tra associazieni binarie e asseciazieni ternar Figura 4.13(a}, la
ziene diagrammatica ER per 1111 tipe di associazione ternario é mostrata in
di associaziene FURNITUFIA {the E: state
quale rappresenta gmficameme lo schema per il tipo
in Figura 3.10. In genera le, un tipe di asseciaziene R di gra-
rappresentate a livello di istanza
dci quali cellega R a un diverse tipe di en-
de n avra n spigeli in un diagramma ER, ognune
ma partecipante. {c}
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
tipi di asseciaziene binari. Si censiderine i tre tipi di asseciazio-
ni di quanto nen facciane ire
ga che PUELFORNIRE, Ira FURNITURE e PHOGETTO
ne binari PUO‘FOBNIRE. USA c FGRNISGE. Si suppon
velta Che il femito re s puefomire parte p (a am pm-
PARTE, cemprenda un’istanza (s, p} egni
un’istanza (j, p) egni velta Che il pre-
getto qualsiasi); USA, tra PROGETTU e PARTE, cemprende
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
nza (.w', p) nell’as seeiaziene temaria FOHNITUHA, per-
plica necessafiamente Che esista un’ista
decidere se una parficelare asse«
ché 1:: due eese hanne significare diverse! E spesse difficile PAFlTE
di grade 11 e se invece deb-
eiaziene 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 .igura 4.13 illustrazlone di tipi di associazione temarl. {a} ll tipo dI assoefaziene ternar'ro FORM
semant ica o signifie ate dclia particol are situazie ne Che viene rappresenta— Tre tipf di assoclazlona binari . non e qulvalenu
' ' at ripe
' dl asseclazlone
' ternarie Fe
sta decisions sulla asse— fl
e anche mm 0 pie dalle FURNITURA rappresanta‘to come un tipe di entita debacle.
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
‘ C __LL ‘ {.v-‘f' “u i ;-.‘~._- Eu uf'm‘. "aso m‘acupeiazinne tamaria
m_-._
tt as
_.--__.‘._.;-'L
100 Capitolo 4

PHOPOSTO_DURANTE GOLLOQUIO OFFERTILLAVORO

Figure 4.15 Un tips d: antita debole CDLLUOUIO, con un tipo di assoclazione fdentificante tornario.
ENSEGNAMENTO

associazlone ternari e tipi dl associazione ulnar}.


Figura 4.14 Un altro esemplo d1 confronto fra tlpi d1
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. Do-
debole, senza chiave parziale a webpero percio essere mate emrambe S: E importante spacificare pienamente i vincoli su-ut-
FORNITURA dove essere rappresentata come on tlpo di entita turall su un‘associazione temaria 0 di grade pit elevato. La prima notazione é basata sulla no-
canti. I tre tipi di entita parteci panti FURNITURE. PAHTE e PHOGET -
con tre associazioni identifi tazmnc del rappono di cardinalith per associazioni binaric, rappresentata in Figura 3.2. lo que-
(Figura 4.13c). Percio un‘entiti del ti-
To costiruiscono nell’insieme i tipi di smith proprietari sto case 1, M o N sono specificati su ogni arco partecipante. Si illustra qui tale vincolo usan-
identificata dalla combinazione delle sue
po di smith debole FURNITURA di Figura 4.13(c) é do l’associazione FGHNITURA di Figura 4.13.
PABTE e PROGETTO.
tre entita proprietatie press da FURNITURE, . Si ricordi Che l’insiemc di associazioni di FURNITURA E on insieme di istanze cli associa-
é mostra to in Figura 4.14. 11 tipo di associazione temario PROPONE rap-
Un alt-o csempio nope (.S' j. p), dove .s' E on FURNITURE, j E un PROGETTO e p E. una PAHTE. Si supponga che esi-
amenti durante semestri specifici; per—
presenta la situazione di docenti Che propongono insegn st_a 11 vmcolo ch: per una specifica combinazione progetto-paite possa essere usato solo on for-
associa zione. (i. s, c) ogni volta she i1 downte 1' (“i" come in-
cib esso comprende un’istanza d1 !utorf: (solo un fornitore fomiscc una parte specifica a uno specifico progetto). In questo caso
durante i1 semestre s. I tre tipi d1 asso-
structor) propone l’insegnamento c (“6‘ come course) 1n Figura 4.13. si pone 1 511113 partecipazionc di FURNITURE. e M, N sulle panecipazioni chz
hanno i1 seguen tc significato: PUCLTENERE collega un
ciazione binan' mostxati in Figura 4.14 PROGETTO, PAHTE. Cio stabifisce i1 vincolo cho una specifica combinazionc (j, p) pub apparire
ento; TENUTO_DUHANTE collega un se-
insegnamento a1 decente Che pub tenere quell'inscgnam alpia um: volra nell‘insieme di associazioni. Percio ogni istanza di associazione (s, j, p] e mi-
durante quel semestro; PROPOSTELDU -
msstre a1 docente ah: ha tenuro am cerm imegnamento vocamenre idennficam nell‘insieme d1" associazioni dalla sua combinazione (j, p), i1 che rende
amenfi propos t'l durante quel semestre da qualsiasi do-
RANTE collega un semestre agli insegn (j, p) una chiave per l‘insierne di associazioni. In generale, ails partecipazioni che hanno su di
rappresemano situazioni diverse, ma
cente. In generals queste associazioni temarie e binarle 36 esplicitato on 1 non é richiesto di fa: pane della chiave per l’insiemc dj associazionj.16
cormmque dovrebbero sussistcre certi vincoli ha 16 associa n‘onj. Ad esempio, in PROPONE non
(i, s) in TENU- La': socopda notazione e basata sulla notazionc (min, max} rapprescntata in Figura 3.15 per
c} .98 non esiste un’istanza
dovrcbbe esistere un‘istanza di associazione (1'. s. assomazmm binarie. Qui un (min, max) su una partecipazione procisa che ogni entith é colle-
e un’istanza (i, c) in PUO_TENEFIE. Per?)
TO_DURANTE, un’istanza (s, c) in PRGPOSTOJJURANTE ga-tta'ad almeno min e 31 pifi a max istanze di associazione nell’insieme di associazionj. Que~
o were cioé. istauze (f, s). (s, c) e (i, c) nei tre tipi di as~
'11 contrado non é sempre veto; si posson sh. vmcolj non hanno alcun rapporto con la detcnninazione della chiave di un‘associazionc n-
cordspondentc (i, s, c) in PROPONE. In pre-
sociazionc binaxi senza per questo avers l‘istanza ona. so It > 2,” ma stabiliscono un tipo diverso di vincolo che pone restrizioni sul numero di
quest’ ultima proprieth — ad csempio. se
senza di cerLi vincoli aggiunn'vi, pert}. pub valene anche lstanze di associazione a cui pub panecipare ogni cntitfi.
63 1:1 (up docente pub tenant. un solo insegnamento, a un insegna—
1‘ associazione PUO_TENERE
ista dello schema Cleve analizzare ogni
mento pub assert tenuto da un solo doceme). Il progett
di associ azioni binarie e tornado sono necessari.
situazione specifica per decidero quali tipi
un tipo di associazione identifi-
Si noti che é possibile avere un tipo di entith debole con lo cm e \Iecr'o apche per i rapporli di cardinalita dell: associazionj binarlc.
pub avere pit} tipi d‘; entith pro-
cante tornado {o n-axio). In questo caso i1 fipo di entita
debole I?
Tunawa :I vmcolo (min, max} puo determinate 1c chiavi per associazioni b'umrie.
prietari. U11 csempio e mostrato in Figura 4.15.
Modellazlone Entité—Associazione eetesa e modellazione a oggetti 103
102 Capitolo 4

dxlciassflizgzione e istanziazione $0110 uno l’inverso dell’altro, cesi come 1a generaljzzazione


4.8 Concetti di astrazione dei dati e 25:£11m2:31.03;(light:I; cdncett: d1 aggregaeione e associazione sane collegati. Qui si
di rappresentazione della conoscenza 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
o dettagli ato nella present azione dei modelli ER e BER nei Capitoii
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 Classificazione e istanziazione
tecniche KR e quello di svilupp
scenza (knowledge representation, KR). Lo scope delle
concetti per medellare accuratamentc un certo domini o del discorso tramite la creazione di
I] precesso di c_ia_ss_ificazione compona un’assegnazione sistematica di oggettifentita simili a
i concen i del dominio . Questa ontolog ia e poi usata per imma-
un'ontologia'a she descrive class: d1 oggettiltipi di smith, rispettivamente. E possibile descrivcre (nelle basi di dati) o Ia-
e decisioni o sempficemente ri—
gazzinaxe e gestire conoscenza per tram: conclusionj. prender gienaee e11 (nelle rappresentazione della conoscenza) classi piuttosto Che oggetti sin oli Col
nza sono simili a quelli
spondere a domande. Gli scopi della rappresentazione della conoscc lezmni d1 oggett: coridividono gli stessi tipi di attribuzi. associazioni e vincoli e u-amifc la: clas:
e diffe—
ici, ma 6- possibile elencare aicune importanti somiglianze
dei modelii d1" dati semant s1ficaf10ne dz oggem si samplifica i] processo di scoperta delle loro propriei‘a L’istanziazi
renze tra 1e due discipline. ne e I pppo'stoldella classificazione e si riferisce alla generazione e all’esame epecifico di 0-
a comuni e aspetti im- gettidisnnn di una claese. Percit‘) un’istanza di oggetto é collegata alla sua clas d'
0 Entrambe usano un processo di astrazione per individuam propiiet (ran-nit: I’associazienc E-lJl\I’IS'I‘A1NlZA-DI.lg
03:
mini—mondo [dominio del discorso) 6 me] contem po per climinare 56 1 Oggem
portanti di oggetti nci cumliggggflgig oggem di una claese dowepberp avere una struttura di tipo'simile. Per?) al-
differenze insignificanti e dettagli ininfluenti. gem della (5:556. :11? IEOSIIBICI pregame-t2 fhe dif-fenscono per cent aspetti da quelle di aim" og-
linguaggi per dcfinire dati e rappre-
o Entrambe forniscono concetti, vincoli, operazioni e consemoflo 6086501; c'guesti oggetn d eceezlone devono essere modellati, e gli schemi KR
sentare conoscenza.
pit ampia dei modelli di . applicano ana Classe 0511“ vanate nspetto a1 inpdelii di basi di dati. InolIIe cene propn'ete 51'
0 La rappresentazione della conoscenza ha generaimente pottata 3:3 Pmpfieté ai Classe-me a un rum: 6 mm 81 smgoh oggetti; gii schemi KR consentono qua-
ntaze forms diverse di cone-
dati semantici. Negli schemi KR (KR schemes) some rapprese
ne e ricerca), conosce nza incomplete e per
scenza, come Iegole (usate in inferenza. deduzio 101-0111133333? bEaESE. é:1:232:23:I51:1asstfifatelin tlijjiai di smith secondo 1e lore proprieta e la
tempora le e spaziale . l modelli di basi di dati sianno via via espan-
difetto e conoscenza _ . . . . . ormcn e c ass' cate in sottociassi e cate orie
dendosi per includere alcuni di questi concetii. uiterliontiiomiglian'ze. e dflererge (eccezioni) csistenti fra loro. Le istanze di esgsociafzjiatflzlfsl:1If
che deducono faiti aggiunti—
o Gli schemi KR comprendono meccanismi di raginnamento no c aes: cate 1n iipi d1 assomazmne. Percib fipi di entire, sottoclassi catcgoric e 11‘ i d'
izzati in una base (11 dati. Percib. mentIe 1a maggio r pane degli attuali si—
vi dai fatti memor somazwne edsntuiscono i diversi tipi di ciasse nel modello ER. 11 riiodello ER :on 1 as~
interrog azioni dirette, i sistemi basati sulla
stemi di basi di dati si limitane a Iispondere a
KR posson o rispond ere a interrog azioni che compottano in- temple esphcflamente propriete di classe, ma pub essere esteso per fare cit). In UML gig:
conoscenza Che usano schemi getti sono classificati in classi ' ' - ‘ . .
gia delle basi di dati. sta per essere classe 5121 oggetfi
. ed a possflnle rappresentare Sla propneta d1
ferenze sui dati memorizzati. Aimalmente 1a tecnolo singolj.
estesa con meccanismi di inferenza. Ha I Eofidelll c111 rappreseiitwone della conoscenza consentono pifi schemi di classificazione
sulla rappresentazione di sche-
- Mantra la maggior part: dei modelli di dati si conccnuano . :1
mi cli basi di dati, o meta-conoscenza. gli schemi KR spesso mescolano schemi can isten- 11113. c asse e131: {stanza dl un‘altra classe (detta meta-classe). Si noti che cib non at)
eccezioni. Cib spesso comporta inefficienze $21!;rappresiantato direiiamente nel niodello BER, perché si hanno 5010 due fivelli _ clasii e
ze per femire flessibilite nel rappres entare
dasse 531:: Etnagitflmtipe #:5112153 nel Ipotiello BER e I’associaziene superclasselsoito-
quando vengono confrontali con
quando gli schemi KR sono implemented, specialmente presm‘tata dir n
una gran quantita di dati (o fatti). ec emi un'asspmazipne aggiuntiva classefistanza pub essere rap-
basi di dati e quando e necessario immagazzinare _ e amente 111 um grumble (31 0121531. Un’istanza pub essere essa stessa un’a‘lfisa
di dati semantici, come ‘11 mo- asse, consentendo cosl schemi di classificazione a livello multiple.
Quatlro sono i concetti di astrazione usati eia nei modelli "
istanzia zione, {2) identificazione. (3)
dello BER, sia negli schemi KR: {1) classificazione e
e, e (4} aggrega zione e associa zione. I concetri accoppiati
specializzazione e generalizzazion

I diegmmmi UML cens-entono una forma di istanziazione permenendo In re ppresentazione gi'afi


a gem. Qpeeta mattensuca non e perb stain descritta nel Paragrafo 4.6.
can pie canoseenza, regele ed eccezioni. . ache: diagram: UM; consentono la specificazione dl prom-feta di classe.
“3 Un‘omoioflg e sane molti aspeui simjle e um schema concenuaie, ma
.: I... ). i; I-_' - .. fi
......_....;
m. .5; EMU“. I ' I "'-1 ‘ .. ""3
h'-.--- I?" :5' “—4
-' -w MM .. . 1 i
Modeflazione Entita-Asseciaziene estes'a e modellazione a eggetti 105
104 Capiteio 4

4.8.4 Aggregazione e associazione


4.8.2 ldent‘rficaziene
tti some resi unj- Erggdgarfigamonee un ooncetto di astrazione che censente di costruire oggetti composti a a:
ziene per mezzo del quale elassi e ogge
L’identificazione e il precesso di astra an nome di ciasse iden- so in 151;?n che h cempengene. Ci sono tre casi in cui questo concerto pub essere ages-
identificatore. Ad esempio,
vocamente identificabili grazie a un certe ulterior-e mecc anism e per distinguere n-jbuti dj III :2::2:(311951038110 EEIR. Il prime case a quello in cui si aggregane i valori di at
E necessario un
tifica univecamente un’intera classe. ssarie indiv iduare ma- . . . or on'nare
. .
’eggetto intero. [l secendo case si e senta uand ' -
tificatori d1 oggetti. Ineltre e nece
istanze di eggetti distinti tramite iden del mend e reale . Ad esem pio, pub page??? assoctazmne d1 aggregazmne come un’associazione ordirtpgria. Il tgrzo c2321 r1:1)J
delio stesso ogge tto
nifestazioni multiple, neiia base Eli dati, relaziene PERSONA e Siam ctputt o eIspllcnamente dal modello BER. prevede Ia possibilita d.i combinare eg etti chn
e, 6I0618, 376-98215 in una
capitare di avere una tupla <Matthew Clark ia stessa . menu Giggle d; 1:3 paroceIlaIe Istanza di associaziene in un eggerro aggregate digpifl air:
36, CS, 3.&> in una relaziene STUDENTE che rappresentano
un'altra rupla 60164-08 ti due oggetu' (tu- so essém CDIIEuatc e voita utile quando l’eggetto aggregate di pin aite iivello deve esse stes—
mode di identificate i1 fatte che ques
entith del mende reale. Non e‘e alcun non si prevvede a! mo~ aggregam smgn 2: an alt}: I(IJIiIgette. L’ associazione tra glj eggetti primitivi e il lore eggette
stessa entita del mende reale se
ple} della base di dad rappresentane 1a opria te per cons entire questa iden- - 0 I come - A-PARTE-DI- . , l’asseciazione in versa 5 detta E-U
‘ - -
mento incrociate appr
meme delta progetmziane a un riferi i: POESNEEDDI; UMLIcerIrtempla tutti e tre i tipi di aggregaziene. N COM
e nece ssaria a due livell
tificazione. Percie l’identificaziene panda“: er 2:; I: aIssoclamoneI e usata per associate eggetti prevenienti da pie classi indi-
i della base di dati; deuo .. p Itetpaetépste smule a1 secondo use dell’aggregazione. E rappresentata net me
0 per disfinguere gli oggetti e le class i del mende
di dati e per collegafli ai lore equivalent BER atrann
I ma asuam datae EASSOCIATocoNe
1p1 asseciaziene e n 1 modeiie UMl. trami te legatm.' Questa assoclazio—
' -
0 per individuare git eggetti della base
reale. A] o . . . . I ‘
defi 101352;:£11115;nugitore cemprenstene der diversi usi possibili defl'aggregazione si consi-
un sistema di ne-
dei costmtti delle schema e basata su m sostenufi da drilestrato m Flgara 4.I 16(a), che contiene infermazieni su celloqdi di lave-
Ne! modello BER 1' identificazione una settoclasse,
ogni ciasse —.sia essa un tipe di entita,
mi univoci peri cestrutti. Ad esempie
tribmj (0d oggeffloiau mergeINrat-1e azrende. La classe AZIENDA e un‘aggregazione degli at
to. I nem i degl i attributi di
ene - deve avers un meme distin ponen 1 omeA (Home azienda) e Indiri A ' ' '
una categoria e an tipe di associazi neee ssari e defile rego le per identifica-
' -
distinti. Sono aneh e Ire CANDIDATE) e on aggregate di Ssn , N ome, Indmzze e Telefe13° Glj ' 'agenda),
'
una data classe devene pure essere ' men-
'
' ' (Indmzzo
gera rchia di specializ-
non-1e di attribute in un reticeio e ne
so NemeCentatto
I . e TeiefenoContatt
. . .
o rappresentane i1 nome e iI110-
re senza ambiguita i riferimenti a on numero“11131111
d‘1telefone
61 3550013110-
d -
c1:1;atllczmergia responsablle del coilequle d1 lavore. Si supponga che alcuni colloquiligfe:
zazieni e generalizzazieni. ziene Ira en-
uti chiave sone usati per fare una distin Per associafl: 601': ch lavero e altn no. Si vertebbe qui trattare COLLOOU IO come one ciasse
A livello di oggetto, i valeri degii attrib 1e entit a some iden tifica te da una
. Per tipi di entita deboli, .3350 fiChIEde ah FEIi‘IIA_LAVORO. Lo schema mostrato in Fi-gura 4.16(b) e sbagfiate pcrché
tita di un particelare tipe di entita entit a. dei tipi di entit a proprietari. a
chiavi pazz iali e delle SDta mow; eIoglgit tstaflza dell’asseciaziene colloquio comporti un'offerta dj Iavere Lo
cembinaziene dei valor-i delle lore cembinazione del—
correlate. Le istanze di asso ciaziene some identificate da una certa .. . . em . . 1guta
, . .16(c) non e consentite , perché 11 ' modell E .
cui sono
del rapperte di cardinalita specificato. crazttIIem fra assectazmm (11 modelle UML. invece. Ie censente}
ie entita che ease ceiiegano, a seconda 0 R I10“ commie 8550-
alto 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 state-
mestrate
lizzazione
4.8.3 Specializzazlene e genera
IIII . , . censenta
. questa possibilith , alcuni mod e 1 11' semantltn' ' (:11' da '
HiggiflerhgdCManI-itano I oggetto nsuitaate eggette cemposto e melecelare Altri medial]:
ificazione di una classe
I
3mm fia assodaflonj
eumormeitiidjentita
(Figum 1160) e 1'ti'
131 ch' assectazmne
‘ ‘ e per-ole
‘ pennettone
. assocra—
'
precesse che censiste nella class
Per specializzazione si intende que] azione e il preC esse inverse. che cen- .
ate. La generalizz .
di oggetti in setteclassi pie specializz le, cite compren— Per pgiméscnm CoIrrettamente questa sttuazwne neI modello ER, cesi come esse é 513:0 .
num eres e class i in una classe astratta di pie alto livel descrittga
siste nel generaiiazare ame nto concettua— q , necessane creare un nuove tipo di entita debole COLLOQUID. come mestrate je ' I' ' I
ciassi. La specializzaziene e um raffin
da gli oggetti presenti in tutte queste elle BER sone usate 1e set- Fi
m$::fiiff:)s’ifil:zorml'aflj a OSFEHTJLLAVOHO. Percie si pub sempre rappresentare eel-ratta-
s' tesi concettuale. Nel mod
1e, meets 1a generalizzaziene a one gene ralizz azion e. Uass ocia zien e 11a one set- romne moeoERtramitelacreazion di ' 'di ‘ ' " "-
azione e la
toclassi per rappxesentare la specializz OTT OCL ASS E-DI o sem— 9e pub essere
. concettuahnente pm
' destderabtle
' ' consentire 8una“Pl
rappre6111333
t 38311111“:
' d‘ 31'
'
ene e nota come E-UNA—S
teclasse e la sua superclasse asseciazi umggregazmne ' assoc1azrom
4_16(c)_ cemeinFi gnra 4.1601). 0 consent-ire senIazmne cejEma
' ‘ ' fra assoctazieni
piicemente associaziene E—UN. La . . . . -.:.' '
pnncrpale daffercnza strutturale tra aggregazwne e asseciazione e che, quandeuttt
Medellaziene Entité-Asseclaziene estesa e modellaziene a egget'tf 107
106 Capitele 4

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: co-
stituita dagli eggetti MGTORE, TELAIO e PNEUMATICI - ailora la cancellazione dell’eggetto ag~
gregato AUTOMOBILE equivale alla eaneellaziene di tutti i suoi oggettj componenti.

Sommario

In queste capitole abbiame prhna di tutto studiate aleune estensieni dei modeilo ER che au-
mentane 1e sue pessibflita di rappresentaziene. Abbiame chiatnato i1 modelle risultanle me-
dello ER—esteso e modelle BER (enhanced-ER}. Sono stati presentati i1 cencetto di setteclas-
se e relative: superclasse e i1 correlate meccanisme di ereditarieta di atoibutifasseciazieni. Ab-
{a} CANDIDATO biame visto come sia talora necessarie creare classi aggiuntive dj entita, e per la presenza di
AZIENDA
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-
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 sette-
ciasse e an attribute di definizione per una specializzazione. Si sono quindi discusse 1e diffe-
{d} renze tra setteelassi definite dall’utente e sotteelassi definite tIarnite un predicate, nonché tra
CANDlDATO
specializzazieni definite dail‘utente e specializzazieni definite trainite un attribute. Infine ab-
biame 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 softwa-
re. 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 Circe-
stanze ognuna di ease dovrebbe essere usata quande si pregetta uno schema concettuale. e co-
me 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 OF-


lt'a aziene. (a) ll tipe di asseclazlone COLL ooum Duestienario cli verifies:
aziene ternarle iterrate).1t(rc3 21:33 :83:::|::::;rg-$V:Efi
Figure 4.16 :Efiazflsgflgein Engage: di associ 1e. partac pa un'a d! [m ette cempeete {molecu—
tramtte‘ i ' use dl un ’ assoclazmne alla qua azlene 9 egg ‘ _
Cos’e una sottoelasse? Quando e necessaria una sotteciasae nella medeiiaziene dei
al modelle ER}. (C!) Use deti aggreg
le ER). (3) Flappr esenta ziena cerret ta eat me
model
fafeir}:gtaflnoepe cie non é censantlto nel
I
dati? _
"9 S
- M: 1;“;
L_H__ . _ __
_____.. _ .4 L__ ‘ H'H" ‘-"-‘-—-- w... a“;

Modellazione Entita-Associazione estesa e modellazione a ogget’ti 109


108 Capitolo 4

assegni. ...) e (tramite PAGAMENTU) dei pagamenti di ciascun prestito; sia 1e transazioni
una sortociasse, associazione super-
4.2. Si definiscano i seguenti termini: superclasse di alizzazione, categoria.
sia i pagamenti comprendono l‘importo, la data e l’ora. Si modifichi lo schema BANCA
lizzazione, gener
classe/sortoclasse. associazt'one E-UN, specia - usandoi concetti ER e EEK di specializzazione e generalizzazione. Si enunci espiicita—
arm‘buti specifici (locaii). associ azt‘on i specifi che. mente ogni assuuzione fatta riguardante i requisiti aggiuntivi.
tifassociazioni. Perché ‘e utile‘?
4.3. Si esamini i1 meccanismo di ereditarieta di attribu 4.18. Il seguente resoeonto descrive una versione semplificata dell’organizzazione delle
tente e quelle definite tramite un predicato, e si
4.4. Si trattino 1e sottoclassi definite dall’u _ strutture olimpiche progettate per le Olimpiadi di Atlanta del 1996. Si disegni un dia-
lassi.
identifichino le differenze tra questi due tipi di sottoc te tramit e un attribu te, gramma EER che mosh-i i tipi di entita, gli attributi, le associazioni e 1e speciaiizza—
e queue defini
4.5. Si trattino 1e specializzazioni definite dall‘utente zioni per questa appficazione. Si enunci esplicitamente ogni assunzione fana. Le strut-
tipi di specializzazioni. ture olimpiche souo distribuite in compiessi sportivi. I comples si sportivi si suddivido-
e si identifichino 1e differenze tra questi due
li su specializzazione e generalizzazione.
4.6. Si esaminino i due tipi principali di vinco no in compiessi per un solo sport e complessi palirportivi. I comp‘lessi polisportivi
lizzazioni e no reticolo di specializza—
4.7. Qual e la differenza tra una gerarc hia di specia
' hanno aree intcme destinate a ciascuno sport con un indicatore di collocazione (ad es .,
zioni? non eviden ma- centro. angolo-NE ecc.). Un complesso ha una collocazione, un organizzatore capo,
gener alizza zione? Perch é noi
4.8. Qua] a la differenza tra specializzazione e un’area totale occupata e cosi via. In ogni complesso e tenuta una eerie di eventi (ad
a? es. nello stadio di atletica possono tenersi molte gare diverse). Per ogni evento c’e una
mo questa differenza nei diagrammi di schem
differi sce una catego ria da una norma ls sottoclasse condivisa‘i' Per cosa e usata data prevista. ana durata prevista, un numero previsto di partecipanti, un numero pre-
4.9. In cosa
con oppor tuni esempi. visto di giudici eccetera. Sara tenuto un elenco di tutti i giudici insieme con la lista di
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,
eventi a cui partecipera ciascun giudice. E necessaria un’am‘ezzatura diversa per gli
gazione, gener
10 BER. se esiste: oggetto, classe, legume. aggre eventi (ad es. pa]i delle porte, aste, parallels), come pure per ia manutenzione. I due ti-
a‘i collegamento, Iegame riflessivo. le-
attributi. discriminatore, colleg amen ta. attribu te pi di struttura (per un solo sport e poiispom'va) avranno tipi diversi di informazioni.
game qualifimm. Per ciascun tipo di struttura si memorizza il numero di servizi necessari, insieme a on
notazione per i diagrammi di schema BER e
. Si csaminino 1e differenze principali tra 1a budget approssimato.
ntartdo come some rappresentati nei due
queiia per i diagrammi delle classi UML, confro . . . . 4.19. Si individuino tutti i concetti importanti rappresentati nei caso di studio della base di da-
. . .
casi i concetti comuni. . e s1 illustr t ti biblioteea sorto descritto. In particulate, s't individui l'astrazione di classificazione (ti-
vincoli su assoctazmru n-ane pi di entita e tipi di associazione), aggregazione. identificazione e specializzazionelge—
Si esaminino 16 due notazioni per specificare
il possibile use di ciasc una. neralizzazione. Si specifichino i vincoli di cardinalita (min, max), quando possibile. Si
dati e i eon-ispondenti concetti di modella- elenchinoi dettagli che incideranao su un future progetto. ma che non hanno alcun rap-
. Si clenchino i vari concetti di astrazione dei
zione del modello EER. porto con la progettazione concettuale. Si elenchino separatamente i vincoli semantici.
nel modello BER? Come pub essere ulte-
. Quale caratteristica di aggregazione manca Si disegui un diagramma BER della base di dati biblioteca.
riormente esteso i1 modello EER per supportarla?
ha
Case di Studio: La Biblioteca Tecnica della Georgia (GTL: Georgia Tech Library)
tetistiche comuni tra 1e tecniche di model- approssimativamente 16.000 soci, 100.000 titoii e 250.000 voiumi (ossia una media di
. Quali some he principali differenae e carat
e 1e tecniche di rappresetttazione delia cono- 2,5 copie per libro). In an generico istante circa i1 10 per cento dei volumi e fuori in pre—
lazione concettuale di time base di dati
scenza? stito. I bibliotecari cercano di garantire che i libri siano disponibili quando i soci vo-
gliono prenderli a prestito. lnoltre i bibliotecari devono sapere in ogni istante quante co-
pie 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 tito-
Esercizi lo presente nella biblioteca si tiene nel catalogo una deserizione del libro, di dimensio-
ni che vanno da una Erase a molte pagine. Ibibliotecari addetti alla consultazione vo-
ione di basi di dati a cui‘si a interessati. Si gliono poter accedere a questa descrizione quando i soci richiedono informazioni
an un
4.16. Si progetti uao schema BER per un’appiicaz base di dati. C1 st accent che
sussistere nella libro. Il personale deila biblioteca a diviso in bibliotecario capo, bibliotecari associati
specifichjno tutti i vincoli che dowebbero
o cinqu e tipi di entita . quattro tipi di associazione. un npo d1 en— dipartimentali, bibliotecari addetti alia consultazione, personale di controlio e assisten-
lo schema abbia almen
lasse, una categoria e um tipo di associa- ti di biblioteca. I libri possouo essere tenuti in prestito per 21 giomi. Ai soci e consen-
tita debole, un’associazione superclasselsottoc
zione rt—ario (rt > 2). tenet tito avere in prestito solo cinque libri alia voita. I soci di solito restituiscono i libri nel
Figure 3.17, e si supponga che sia necessario giro di tre o quattro settimane. Molti soci sanno di aveie una settimana di preroga
pri—
4.17. Si consideri 1o schema ER BANGA di I_00RRENTI. ...J c PHE-
SITI_HISPARiflIO. CONT di restituire ii libro prima che fini-
traocia di diversi tip't di CONTI (DEPU ma che venga loro irwiato un avviso. percio cercano
...). Si supponga che si desideri anche tenet- sca il periodo di proroga. Al 5 per ceuto circa dei soci devoao essere inviate lettere di
STITI (PHESTITLAUTO, PHESTITLCASA, nti,
aaioni di ogni conto (depositi, prelevame
traccia (tramite TRANSAZIONE) delle trans
110 Capitelo 4 Modellazione Entité-Asseclaziene estesa e modell
azione a eggetti 3'11

sellecito perehé restituiscano i1 libro. La maggier pane dei Iibri con prestite scadute o Gil eggetti d’arte seno anche classificati come di COLLE
viene restituita entro an mese dalla data devuta. Approssimativamente il 5 per cento dei ZIONE PERMANENTE che
seneo uellj posseduti dal museo (che ha infermazieni suila
libri con prestito scadute viene ulteriormente trattenuto e addirittura non e mai pie re- Datajkcquisto suI 'fatto
che sra InMestra o in magazzine. e sul Coste) o PRESTATO,
stiruito. Soci pin attivi della biblioteca some definiti quelli che ricorrono a] prestito al- che ha firforma’zieni sul—
la lCellezrene (da cui e state prese a prestito), DataPrestite
meno dieci volte l’anne. L’l per canto pie attive dei seci effettua il 15 per cente dei pre— e DataRestituziene
u 611 oggettr d‘arte hanno anche infermazioni
che
descriveno il lore paesefctilnrra
stiti, mentre i1 10 per cente pii‘l attivo dell’insieme dei soci effettua i1 40 per eente dei usande mfonnazieni su paeselculnrra d’Origine (italian
e, egiziane americane in-
prestiti totali. Circa il 20 per cento dei seci e totalmente inattive, nel sense che some so- drano ecc.). Epeea (Rinascimente, Medema, Antica
see). i .
ci ma non ricerrene mai 33 prestito. Per diventare secie della bibliotecai candidati Iiem- o [l museo fiene traccia di inforrnazioni sull’AR
TISTA, se note: Nome. DataNascita
piene un module che richiede il lore SSN, indirizze postale a1 campus e di casa, non- DataMerte (se 11011 e vivente), PaeseOrigine, Epoca,
StilePrincipale, Descrizione Si
ché i lore numeri di telefene. Dope di CR) 1 biblietecari rilasciano una tessera numera- suppene che i1 Nome sia univoce.
ta. leggibile da una macchina, con la fetografia del socio. Questa tessera e- valida per e E organizzata pie di una ESPOSIZIONE. egnuna
I
delle quail ha un Nome. una Data!-
quattre anni. Un mese prima della scadenza delta tessera viene inviate a1 secio un av- 3:121:52,1:51:22?! ed e cellegata a tutti gh eggett
i d’arte che sene stati esposti du-
viso per il rinnevo. I prefesseri dell‘istitute sene autematicamente censiderati seci.
Quando un nuevo membre del cerpe decente entra a far pane dell‘istitute, 1e informa- o :81 tengene infermazieni {tramite GOLLEZIONE)
su ale‘e cellezieni con cui il museo
zieni a let relative sene prelevate dal record degli impiegati e una tessera della biblio- mteraglsce; queste infermazieni cemprendene
il Nome (univece), i] 'fipe (museo
teca viene inviata a1 sue indirizze nel campus. Al professor-i e cencesse di tenere i libri persenale ecc.), 1a Descrlziene, l‘Indirizze, i1
Telefene e la PersonaCentatte attuale:
in prestite per periodi di tre mesi, con un per-lode di prerega di due settimane. Gli av-
visi di rinnove rivelti ai professed sene inviati all‘indirizze del campus. La biblieteca Si disegm
. ' 1m diagram.ma _ di schema EER per questa ap hcazro ' ' ne. Sr' d ' t ' -
non presta alcfini libri, come ad esempie libri di censultaziene, libri rat-i, e cane geo— senzlene fatta e che gmstrfichj le scelte di progen
azienepEER. 15011 a Ogfll as
grafiche. I biblietecari devene distinguere fra libri che pessene essere prestati e lihri che 4.2]. In Frgura 4.1? e mesh-ate an esempie di un diagra
non pessene essere prestati. ineltre, i biblietecari hanne un elence di libri al cui acqui- mma BER per la base di dati di un
piccolo aereperte pnvate, usata per memerizzare
Ie Mormazioni relative agli aeropla-
ste seno interessati rna che non pessene ottenere, come ad esempie libri rari e esauriti, nr, ai lore proprietari. agli impiegati dell’aereport
o e at piloti. A partire dai requisiti per "
e un elence di libri che sene stati persi o distrutti ma non sone stati sostituiti. I biblio- questa base di dati some state raccelte le seguen
ti infennazieni. Ogni aeroplane he an
tecari devone avere un sistema che tenga traccia dei libri che non possone essere pre- numero d1 matucola {Mat#], fa parte di uno specifi
co tipo di aeroplane [DI TI P0] 6 vie-
stati. nenché dei libri a1 cui acquiste sene interessati. Alcuni lihri pessene avere lo stes- ne pesto In an hangar specifice [POSTO_IN]. Ogni
tipe d1 aeroplane ha u—n numere di
se titele, e pertante i1 titelo non pub essere usate come one strumente di identificaaie— medelle {Modelle}, una capacita [Capacita] e an
peso [Peso]. Ogni hangar ha un nu-
ne. Ogni libre e identificate dal sue cedice ISBN (International Standard Book Num— rnero [Numero], una capacita [Capacita], e un’ubi
caziene [Ubicaziene]. La base di da-
ber: numere intemazienale standard per libri), un cedice univeco intemazionale asse— t1 Irene anche tracera dei proprietari di egm' aeropla
ne {PUSSIEDE} e degh' impiegati che
gnate a tutti i libri. Due libri con lo stesso titelo pessone avere diversi ISBN se seno haene effettuate Ia manutenziene dell’aereplan
e [EFFETTUA MANUTENZIONE] 0 rd
scritti in lingue diverse e hanne diverse rilegature (cepertina rigida o pieghevele). Le istanza d1 asseciaziene in POSSIEDE cellega an aeropla
ne a unpreprietarie e corn regu-
varie edizieni dello stesso libre hann'o diversi ISBN. 11 sistema di basi di dad preposte de la data d1 acquiste [DataA]. Ogni istanza di associa
ziene in EFFETTUA MANUE’EN-
deve essere pregettate per tener traccia di seci. libri, catalege e attivita di prestite. ZIONE collega un impiegate a una nota di servizi
e {SERVIZIO} Ogni aeroliano e set
4.20. Si proget‘ti una base di dati che memorizzi informazioni per un museo d‘arte. Si sup- toposto molte volte a1 servizie di manutenziene;
percie e cellegate tramjte [SEHVI:
ponga che siano stati raccolti i seguenti requisiti. ZIO_AEROPLANO] a un certe numero di note at servizi
o. Una neta di servizie com ren-
0 I1 musee ha una cellezione di oggetd d’arte. Ogni OGGETTO_D 'AHTE ha un NumId de come attributi 1a data di manutenziene {Data}
, i3 numere di ore dedicate a1 lfvem
universe. un Artista (se note), 1111 Anna (in cui a state create. se note}. on Titolo e una [Ore] e 11 tipe di Iavero svelte [CediceLavere].
Usiame un tipo di entita debele [SEE -
Deserlziene. YIZIO} perrappresentare i] servizio su an aeroplane. perche i] numer
o Gli eggetti d’arte some classificafi in base at lore tipe. Ci some are tipi principali: DI « o di mate‘cola del-
l aeroplane e usate per identificare una note :11" servizz
PINTO, SCULTURA e STATUA. pi!) un altro fipe detto ALTRO per accegiiere oggetti che i . Un proprietarie pue essere e
um: persona e un‘azaenda.Percie usiame una categoria uniene [PROPRIETA
. non ricadeno in one deal tre tipi principali. HIG] she a
an settemsaeme dell’unione dei tipi dj entita aaienda [AZIEN
0 Un DIFINTD he an 'I‘ipePittura (elio, acquerello ecc.). un materiale sul quale e sta- DA] e persona [PERSONA]
Sra 1 prion {PI LOTA] sia gli impiegati [IMP IEGATO] seno settecl
te Stese (car-ta, tela di canapa, legne ecu). e um Stile (modemo, astratto ecc.). assi di PEHSO
NA. 0 :
pileta haceme attributi specifici numero di licenza [Nam-
a Una SCULTUHA ha un Materiale con cui e stata creata (legne, pietra em). un‘Altez— Lie] e limitazieni [Limigi]11
egm impregato ha come ate-thud specifici stipen
za, an Peso B into Stile. die {Stipendie} e fume laverato (Tut:
no]. Per tutte 1e entita persona nella base cli dau' venge
Un eggette d’arte nella categoria ALTHD ha un Tipe (stampa, fore ecc.) e une Stile. ne memorizzati i dati sul ris et-
eve numere di previdenza sociale [Ssn]._neree meme
] indiriwe [Inflow-*1} e twp--
'_ I . I. ., := .' '5; r”. ’l, f I. £I f}
z". . \ "i . i
— Law. 1...... L_,_.., L“..- 1;- I|_.._...._. i.._._.._..,. '-..—..—._. s. .—

Modeliazione Enfita-Associazione estesa e modellazione a oggetfi 113


112 Capitolo 4

Bibliografia seiezionata

Capaclta 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
“POJAEHOPLANO
prinfi scn'm' sull’argomcnto, esamina metodi per estcndere i1 modello relazionale in mode da
aumentare 1e sue potcnzialita di modellazione. Questo gruppo comprende gli articoli di Sch-
@Cfii mid c Swanson (1975), Navathe e Schkolnick (1978), i1 modello RMIT Eli Codd (1979), Fur-
tado (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
@— N3 (1981). Da allora some state proposte numerose estcnsioni delle sue potenzialita di mo-
dellazione, 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 ag-
gregazione. 11 modello semantico di dati di Hammer 8 McLeod (1981) ha inlIodotto il con-
cetto 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
N Soutou (1998) E: fomita un‘analjsi dei vincolj per associazioni n-arie. L’UML é descritto in
dettaglio in Beach, Rumbaugh e Jacobson (1999).

PEHSDNA

@wm
PIGCOLO AEHDFOHTO.
Figura 4.17 Schema EER par una base di dati

memorizzati compregdong game [No-


telefonico [Telefono]. Per le enfité azienda i dati
['i‘elefono]. La base (11 clan time anche
me}, indirizzo [Indirizm] e numero telefoniw
E autorizzato a far vglare [FLYOLARE] e
traccia dei tipi di aeroplani Che ciascun pilota
1111 lavoro d1 fnanutenznone [LA—
dei tipi di aeroplani su cui ciascun impiegato p116 fax:
i come 10 schema BER PIDOO LO AEROP ORTO d1 Figura 4.17 possa
VORA_SU]. Si illustr
ND.“ essendo state qm esarmnato co-
ass/are rappresentato con notazicme UM}... (Nora:
UML. m questa domanda a nella success»
m: rappresentare 1e cattgorie [tipi unions] in
catego fie).
Siva non E, richiesta 1a trasformazione defie
4.22 Si mosh-i come 10 schema EER UNIVERSITA
di Flgura 4.10 possa essere rappresentato
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 tipi-
camente 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 usan-
do vari algoritmi, alcuni dei quak' richiedono strutture dati ausiliarie dette indici. Comincere-
mo 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 af-
fidabilith 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 ac-
celerare 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 or-
ganizzazione 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 crea-
stnnmre 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 . ' 3
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
eta a dopo aver studiato i] modello reiazionale. . .
13" mm r", " II 1-. . III? .;.:: i=1: :2: - i '3 _' ‘.
L...__- a...“ s..-“ LN“, L.__ ,__g_,' .; W“

Memorizzazlone del record a organlzzazioni primarle dei file if?


116 Capltolo5

(Compact Disk — Read-Only Memory: compact disk — memoria a cola lettura), e infine nastu',
i meno costosi. La capacith di memoria a misurata in kilobyte (Kbyte o 2'" byte), megabyte
5.1 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 permanen-
' ta deve essere fisrc ’ ame nte ti di grandi dimensioni risiedono in memoria secondaries e quando necessario porzioni della
ce una base d1' dati' computerizza
La collezione di dati che costituis ando
olat nece
ore. 11 ssm
softo. 1
war e del
supp orfi
DBM po-
all§ me“ base di dati sono posts in. e trascritte da, buffer di memoria centrale. Ora che 1 personal corn-
_ ia dei calc
do' memor
memonzz' ata so on qualche supporto ‘ “- putsr e 1e workstation hanno decine di megabyte di dati in DRAM sta diventando possibile ca-
elaborare ques ti dati on
_
no or' rscuperars, aggi' ornars ed comprende due categone fo ricare un’ampia frazione della base dj dati in memorial csntrale. 1n alcuni casi intere basi di
gemrchia d: memona che
morpia del calcolatore forrnano una dati possono essers memorizzats in memoria 'centrals (con una copia di backup su disco ma-
darnentali. . . a- gnetico}. portando a has! d1 dati in memoria centrale; esse sono particolannente utili in ap—
. comprends support:. d1. memona so cul puo oper
. Memoria prin cipa ls. Que sts cate gona
unit) del calco— plicazioni in tempo reale che richisdono tempi di risposta sstremamente brevi. Un esempio e
proc essi ng
di elaborazione (CPU: central costituito dalls applicazioni di commutazione telefonica, che tengono in memoria centrale ba-
re direttamente l’unitd centrale men o capt‘ entt' ma '
pm velocl' rne mo-
. accesso a1. dati. ma he on a li-
dei calculators e 1e si di dati che contengono inforrnazioni di instradamento (routing) e di linea. I
latore come In memoria centrale . . consents un raptd o
di sollto Tra la memoria DRAM e il disco magnetico, un’altra forma di memoria, la memoria fla-
ris cache. La memoria principals 1 . . . . . ' u-i,
mitata capacita di mem orizz azio ne. —
hr 0th] ::111 ::no sh, sta diventando comune, in particolare perché non a volatile. Le memoris flash sono me-
netici, drsc
categoria comprende dischi mag morie ad alta densita e ad alte prestazionj che usano la tecnologia EEPROM (Electrically Era-
e Mcmoria secondaria. Questa capa crta, costano meno 121a Idafi nai-
men te una mag giore sabls Programmable Read—Only Memory: memoria a sola lettura prograrnrnabile cancellabils
Questi dispositivi haano solita ne prmcrp e.
rto ai dispositivi d1 memonzzazro elsttricarnente). Il vantaggio della memoria flash risiede nell‘elevata velocita di accesso; lo
un accesso pin lento ai dati rispe i diret tarne nte dalla CPU, ma devono
ono esse re elab orat svantaggio nei fatto che dove essere cancellato e riscritto on intero blocco alla volta.‘
la memoria secondaria non poss , ,
principals. I CD-ROM memorizzano i dati otticarnente e sono letti da on laser; contengono dati pre-
essere prima copiati nella memoria
mem:;:zalsrit:;r;e regislrati che non possono essere sovrascritti. l dischi WORM (Write-Once~Read-Many: scri-
ne d‘insietne dei vari dispositivi di
Si fornira qui innanzitutto una visio a esarrunare come p -vi una volta e leggi piil volts) costituiseono una forma di memorizzazione ottica usata per ar-
usati per la memorial princ ipals e secondaria, per pct passare
chiviare dati: essi consentono che i dati vengano scritti una volta e letti un numero qualsiasi
gerarchia di memoria.
mente geslite 1e basi di dati nella 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
positivi di memorizzazione
5.1.1 Gerarchie di memoria e dis se i joke-box ottici hanno capacita dell‘ordine di centinaia di gigabyte, i loro tempi di recupe-
ro sono dsll‘ordine di centinaia di millisecondi, e sono quindi sensibilmente pill lenti dei di-
ioggffigtgifi:23:01:21.;d; schi rnagnetici.3 Questo tipo di memoria non e diventato cos} popolare come ci si aspettava a
orazione i dati risiedono use; :f3c
In on modemo sistema di elab Pl _ . _ . cause della rapida diminuzione di costo e dei rapido aumsnto di capacita dei dischi magneti-
' ' anizzati in erarchia. La memona e cost rturt a dar nast n ma- ' ci. [1 DVD (Digital Video Disk: video disco digitale) e one standard recente per i dischj ottici
velo ce
apacita; 1a memoria .meno
gifaEl—lozggzfibzlfcon minorsgc cita mde firuta . RAM stadca (W: ' che consents da quatlro a quindici gigabyte di memoria per disco.
onibile con capa
gnetici ed a sostanzialmente disp one L maria “Che Infine, i nastri magnefici sono usati per archiviare e salvare grandi quantita di dati. I juke-
la memorla cache, costrtutta da
A livello dt' memoria principale ale) (3-13 pm) cost osa. a mile] [M3110 suc— box di nastri — contenenti una banca di nastri che sono catalogati e che possono essers carica-
oria ad accesso casp
Random Access Memory: mem a.;‘rlrfli ‘Mrr11.dinm fia] Che ' automaticamente nei drive psri nastri — stanno diventando popolari come memoria terzia-
per accelerare l esecuarone dei prog.r1
viene tipicarnente usata della CPU amic RAM . . dati ed a cam“- rla per conservare terabyte di dati. Ad esempio i1 sistema EDS (Earth Observation Satellite: sa~
costituita daila DRAM (Dyn
cessivo di memoria principals e rarnrru e ellite d5 osservazione terrestre) della NASA memorizza in questo modo basi di dati d’archivio.
ls della CPU per memortzzare prog
forrrisce 1’ area di lavoro principa a l 0 d511 a DWe 0
mlstenfi1 Sue Si prevede che nei giro di pochi anru' molte organizzazioni di grandi dimensioni conside—
} B “an tgg
in memo1'}.
IIIOIia centrale (ma .
Henlente dalta IDE
. as ’ _ rerarmo normals avers basi di dati delle dimensioni di terabyte. La locuzione base di dati
'
continua ' ' nurr' e,' lo svantagginél
a dmn

basso costo, che secondono 1a gen-reg: 1:31;
on. A livello di mermnzzazrone
confrontata con la RAM stati massa nella fonn a d1 disposmvi
memoria di
prende dischi magnetici some pure
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
_________se__————— della mod
e dell‘alirnemazione. a1 contrario a maggiori ritardi di lahenaa e bassi tassi di trasl'erimento (rm 100 e 200 KB a1 secondo}.
contenuto nel caso d: an interruzion
‘ La msmoria volatile perde i1 suo
_..:_ -.... Mum.
Memorlzzazione dei record e organlzzazloni primarfe dei file 119
118 Capitelo 5

nte, perché 1e ca- no dei dati per peterle implementare cfficientemente e pereie fornire a DBA e utenti un nu—
molto ampia (very large database) non pot) pie essere definite. precisame mero sufficiente di epzioni.
su disco stanne aumenta ndo e i costi stanno diminuendo; po—
pacita dclla memorizzazione Le spplicazieni tipiche di basi di dati hanne bisegno per l’elaborazione solo di one piece—
no dccine di terabyte.
u-ebbe pereio essere ben presto riservata alle basi di dati che coutenge 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 posse-
5.1.2 Memerizzazione di basi di dati
no essere interpreted come fatti relativi alle entite, ai loro atlributi e alle loro associazioni. I
i quali devone persistere per record devrebbero essere memorizzati su disco in mode da renderc possibile individcarne ef-
Le basi di dati tipicamente memerizzano grandi quantite di dati, ficientemente la cellecaziene egni volta che se me ha bisegno.
periodi di tempo. Durante questi periodi si accede ai dati 6 1i si elabera ripetutemente.
lunghi C'i sono melte organizzazioni primarie dei file (si vedano i Paragrafi 5.7-5.10) che ale-I
persistene solo per un tem-
CR) 3 in contraste con la noziene di strutture dati nunsimn'e clic terminano come sono collocarifisicamenre sul disco i record di on file, 9 percib come sf pur‘i
ione del program me. La maggier pane delle basi di dati e memo-
po limitato durante l’esecuz cccedere ad essi. Unfile heap (heap: ammasso, cumulo) (ofile non ordinate) colloca i record
ria a disco magnetico, per
rizzata permanentemente (e persisremememe) su memoria seconda su dlsce senza un ordine particolare, semplicemente aggiungendo nuevi record alla fine del fi—
le seguenti ragioni: le, mentre on file ordinate {0 file sequenziale} tiene i record in ordine sulla base del valore di
nte contenute in me—
e di selite le basi di dati sono treppo ampie per peter essere interame un campe particolare (detto chiave di ordinamente). U11 file hash (to hash: tritare, smiuuzza-
moria eentraie; re) use one funzione hash applicata a un campo particelare (detto chiave hash} per determina-
si verificano metro
e le circestanze che causano una perdita permanente di dati memerizzati re la coilocazione di on record su disco. Altre organizzazieni primarie dei file, come gli albe-
la memorizzazione pri-
frequentemente per la memerizzaziene secondaria su disco che per n B, usazce per l’appunte strutture ad albero. Un’organizzazione secondaria, c struttura di
di memoria secon-
maria; per queste motive ci si riferisce al disco — e ad altri dispesitivi accesso ansiliaria, censente on accesse efficiente ai record di 1.11] file basata su campi alter-
daria — come a memoria non volatile, mentre la memoria centrale e spesse chiamata me- natwr nspctto a quelli Che sono stati usati per l’erganizzazione primaria dei file. La maggier
moria volatile; parte di questi esisteno come indici e saranne studiati nel Capitole 6.
inferiore per i! cli-
- il eesto di memorizzaziene per unite di date e di un ordine di grandezza
sce che per la memoria principale .
ettici, 1 DVD e ijukc-
B verosimile che alcune delle pie recenti tecnelegie — come i dischi 5.2 Dispositivi di memoria secondaria
box di nastn' fomiranno valide alternative all‘ use dei dischi magnetici. Inoltre in futum 1e
-
rispette a quelli de-
basi di dati pen-acne risiedere, nella gerarchia di memoria, a livelli diversi
nel Sottopara grafe 5.1.1. Per i1 memento , tuttavia, e importan te studiare e capire le pro-
scritti In queste paragrafo verrarmo descritte alcune caratteristiche dei dischi e dei nastri magnetici.
posseno essere er-
priete e 1e caratteristiche dei dischi magnetici e il mode in cui ifile di dati I letter: Che hanuo gm studiato questi dispositivi possono limitarsi a una rapida lettura.
ganizzati su disco, per progettere basi di dati reali con prestazioni accettabili.
per fare ima co-
I nastri magnetici sono frequentemente usati come supporto di memoria
scene del-
pia di backup della base di dati, date che la memorizzaziene su nastro costa ancor
I dati memoriz-
la memefizzaziene su disco. Pete l’accesso ai dati su nastro e piuttoste lento. 5.2.1 Descrizione dell’hardware di dispesitivi a disco
io l’interven to di un eperatore — e on
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 I dischi magnetici sono usati per memerizzare grandi quantita di dati. La pic elementare unite
effettivam ente disponibili. A} contraiio, i dischi sono dispositiv i on-line (in linea) a cui si
no clan su disco e il singelo bit di infecnazione. Magnetizzancle un’area so disco in certi modi
pue accedcre direttamente in egni memento.
imper- s1 pee flarsi‘che essa rappresenti 1m valere di bit di 0 (zero) 0 1 (use). Per codificare 1e infer:
Le tecniche usate per memorizzare grandi quantite di deli strutturati su disco sono
I proget— remain, I bit sene raggruppati in byte (0 caratteri}. Le dimensioui dei byte vanno da 4 a 8
tanti per i progettisti di one base di dati, il DBA e gli implementatori di un DBMS. blt, a‘ seconda del computer e del dispositivo. Noi supporremo che un cerattere sia memoriz—
tecni-
tisti della base di dati e il DBA devene conoscere i vantaggi e gli svantaggi di ciascuna
dati so one zato m 1111 singolo byte, e useremo i termini byte e cararrere indifferentemente. Per capacitfi
ca di memerizzazione quando progettano. implementano e gestisceno one base di
_di un disco si intende i1 numero di byte che esso pub memorizzare, che di solite e melto gran" ' ' 1 I
specifico DBMS. Di solito i1 DBMS fornisce molte epzioni per organizzare i dati, e il pro~
do. I piccoli floppy disk usafi nei microcomputer tipicamente centengono da 400 Kbyte :a. 5
cesso di progettazione fisica di one base di deli prevede la scelta, fra 1e epzieni, delle par-
Mbyte; i dischi rigidi per questi elaborated tipicamente centengono da melte cehfinaiei'di ' 5-
ticolari tecniche di organizzazione dei deli che meglio si adattano ai requisiti propri dell’ap-
io- Mbyte a qualche vte; e 1e grosseipile di (ii iii (disk Decks) usate ,nei miniccmpum e mi
15““"ne. G“ -'--*:lerne*‘*‘"i di 55 "W's DEM" devono ”hi-“fire le fecniche d5. nrcanizzaz
M l (WMMMAJW
W L...__..._.:' .._,_._, _. _' “d -n.-— -- I
-- m...» -.- i. H.--”
W

Memorlzzazione def record e organizzazioni primarie dei file 121


120 Capltoio 5

set-tore (arco dl traocia]


(a) traccia

braccio
assa rolazlone del disco (b)
alluetora teatime di Iatturefscrlttura

\
(b) ire sattori
due setter!
on eettore

cilfndro
dl traces Figura 5.2 Diverse
_ organizzazionl a settori di disco . (a) Settorl che sottend one on an olo flssato. b Se ~
flmmaglnarlo} g ( J t
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.
<—>
' 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 trac-
moflmento
dall'attuatore 613d solito confiene one gram quantitfi di infomazzione. essa viene suddivisa in blecchi 0 set-
are di iettura/scrittura. (b) Una pita di dischi eon ton pill piccoli. La suddivisione di una traccia in settori é codificata nell’hardware sulla fac—
Figure 5.1 {a} tin disco 2: singola facela con i'hardw
l'hardware di Ietturafscrlttura. 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 an-
goli a1 centro pit piccoli man mano che ci si allontana dal centro stesso. mantenendo cosi una
a centinaia di Ghyte. Le capacité dei
mainframe hanno capacita che vanno da qualche decina donate di memorizzazione costante (Figure 5.2b}. Non tutti i dischi hanno leitracce suddivise
gia migliora.
dischi continuano ad aumentare man mauo che la tecnolo m sattori.
di materiale magnetico della forma
Quaiunque sia 1a loro capacita, i dischi sono tutti fatti La divisione di una traccia in blocchi di disco (0 pagine) di uguale dimensione e fissata
copertura di plastica 0 di acriii-
di sottile disco circularc (Figura 5.1a) e protetto u-amite una solo dei suoi ' dal sistema operative dmante la formattazione (o inizializzazione) del disco. La dimensiono
rizza infonnazioni su uno
co. Un disco 6 a singola faccia (single-sided] se memo di un blocco e fissata durante l’inizializzazione e non pub essere cambiata dinamicameme. Ti-
usati entram bi i lati. Per aumentare la capacite
lati e a doppia faceia {double-sided) so some piche dimensioni di un blocco di disco vanno da 512 a 4096 byte. Un disco con settori codi-
sono assem biati in una pile di dischi {Figure 5.1b}. che pub com-
di memorizzazione i dischi un di— ficati nell‘hardware ha spesso i settori che'vengono suddivisi in blocchi dusrante l’inizializza~
e memorizzata sulla faccia di
prendere molti dischi e percio molti lati. L’informazione quali ha un diverso none. I blocchi sono separati da spazi tra blocchi (interblock gaps) di dimensioni fisse, che
zza.‘ ciascuna delle
sco su oil-conference concentriche di piccolo Iarghe comprendono informazioni di coutrollo codificate appositamente, scritte dutante l‘inizializza-
e detta traccia (track) . Per 1e piie di dischi 1e tracce con 10 star.-
dimnetro. Ogni circonf ercnza
struttura che fonnercbbero so oonnes-
Ezione del disco. Queste informazioni sono usate per determinate quale blocco della traccia se- - :-
la
so diametro sulie varie facce sono dette ciiindro per giie ciascuno spazio Ira blocchj. In Thhella 5 .1 50110 rappresentate Ie specifichc di un disco
co. - 3
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
made do fat-mare um specie di spirale continua.
‘ In alcuni dischi 1e circonferenze sono ora collegate. in
Memorizzazione dei record e‘organizzazloni primarie dei file 123
122 Capitolo 5

dalla Seagate. L’effettivo meccanjsmo hardware che legge o scrive un blocco e la testina di letturalscrit-
Tabella 5.1 Specifiche del upici dischl di fascia alta Cheetah. prodottl
tura. Che fa parte di un sistema detto unité disco (disk drive). Ufl disco 0 one. pila di dischi
one
ST138403LC ST318203LC sono inseriti nell'um'ta disco, che ha un motore che fa ruotare i dischi. Una testina d1 lettu-
05323:; modalio
Cheetah 30 Cheetah 10L? rafscrittura e costituita da un componente eiettronico fissato a un braccio meccanico. Le pile
Nome modello
3.5 pol'lici 3.5 oofiic:
Fattore oi forma {Isrghena} di dischi con pill facce sono controllate da molte testine di letmrafscrittura — mm per ogni fac-
1.04 kg 050 kg
Peso
ntertaccia cia (Figure 5.1b). Thttii bracci sono collegati a un attuatore unito a tin altro motore elettrico.
'
36,4 Gbyte, formattato 18,2 Gbyte. formattiato che muove 1e testine di letturalscrittura all’unisono e 1e posiziona esattomente sopra il oilin-
038232;; fonnattato 80—pin Uflra-2 SOS
Tipo di intertaccia 80-pin Utter-2 SCSI
dro d3 tracce specificato nell‘inditizzo di un blocco.
Configurazlone
12 E Le unita disco per i dischi rigidi fanno ruotarc la pila di dischi ininterrottamente a una ve—
Numero di dlschi {fisict}
Numero d1 testine {tlsiche} 24 12 locita costante (compresa tipicumente Era 3600 c 7200 rpm). For no floppy disk i'unita disco
9172 9001
Citindri totall (solo SCSI)
$2612 inizia a far ruotare il disco ogni volta che viene dato inizio a una particolare richiesta di lettu-
Traces totaii [solo SCSI} :3
_ ra o scrittura e cessa Ia rotazione subito dopo che e state completato il trasferimento dati. Una
or settore
MIT) traccet’poflice 12580 traccefpclhce volta che la testina di letturafscrittura e stata posizionata sulla ttaccia corretta e il blocco spe-
BDEIse dalle traces (1131)
NED bittpoilice 253048 bttr’polllce
Densita d1 registrazione (BPt. max) cificato nell’indiiizzo di blocco si muove sotto di essa, i1 componente elettronico della testina
Prestazioni di letturalscrittura vieue attivato per trasferire i dad. Alcune unite a disco hanno testine di let-
Tassi di trasferirnanto
193 101m 193 Mbiflsec turafscritmra fisse, con tante testine quanta sono 1e tracce. Queste unite sono dettc dischi a te-
Tasso di trasfedmento intamo (min)
308 Mbitisec 308 Mbrhisec
Tasso di trasferimento Interno (max) stina Essa. mentte 1e unita a disco con un attuatore sono dette dischi a testina mobile. Per 1
10 Mbifisoc 1B Mbitfsec
Tasso di trasterimento int.. formattato {min}
Tasso di trasiaflmento int. formartato (max) 28 Mblta'sec 28 Mbltfsec dischi a testina fissa, Lina traccia o cilindro e selezionata u'amite 1a commutazione elettronica
30 Mb'ltfsec 80 Madison all'appropriata testina di letturafscrittura piuttosto che tramite un effettivo movimento mecca-
Tasso di trasierimento esterno {I10} (m)
‘ _
Tempi oi posizionamanto nico; di conseguenza questa imita e molto piu veloce. 'lllttavia, iI costo delle testine di lettu—
5.? msac, tlplco 5.2 msec,_ tlpico
Tempo di posizionamento medic. Iettura
Tempo di poslzjonamento medic. scrittura 6.5 msec. tlpico 6 msec. ttpico raz'scrittura aggiuntive e piuttosto alto, e pertanto i disclu' a testina fissa non sono usati cornu-
0.6 msec, tiplco 0,6 mean. ftplco nemente.
Pesizionamento da traccia a tracoia. lettura
0.9 msec. tiplco 0.9 msec. ttplco
Posizionamento da tracc‘ta a traccia, scrittura Un disk controller (controllore di disco), tipicamente inserito nell’unita disco. controlla
12 m5ec.t1pico 12 msec.iip1_co
Posizionamento su traccia esterna. lattura
Posizionamento su traccia esterna, scrlttura 13 msec, ttpico 13 msec, tlplco ’unita disco e la interfaccia a1 sisterna di elaborazione. Una delle interfacce standard usate
2.99 msec 2.99 msec oggi per lo unite disco uei PC e nelle workstation e detta SCSI (Small Computer Storage
Latenza media
Mire
1024 Kbyte 1024 Kbyte Interface: interfaccia di memoria per piccolj computer). 1! controller accetta comandi di 1/0
Dimensions :11 default del buffer (cache)
Ve1ocite di rotazione deli‘asse 10000 RPM 10010 HFE tti di alto livello e intraprende azioni appropriate per posizionare il braccio, facendo sI cite ab-
1 ogni 10‘5 bit letti 1 ognt 10 time bia luogo l’azione di letturafscritntra. Per trasferire un blocco di disco, date it see indiriz-
Tasso d1 encore non riparebile
1 ogni 108 bit lett: 1 ognt 10“ bit lettl
Errori di posizionamento {SCSI} 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 d1- ~ per attendere che l’inizio del blocco desiderato ruoti fino alla posizione sotto la testina di
nomica _. costando attualmente solo una frazione di dollaro per megaby
ine di un centesim o d1 dollaro per etturafscriltura. lnfine, c’e bisogno di un tempo aggiuntivo per trasferire i dati, detto tempo
minuendo cosi rapidamentc che si prevedono costi dell’ord
‘ 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. .
on disposit ivo indirizz abile ad accesso cosmic. 11 trasfenr nento dan tra la rue- blocco arbitrario, dato iI suo indirizzo, e costituito daila some do! tempo di posiziooamen—
Un disco e
zo hardware :11 un bloc- e, ritardo di rotazione e tempo di trasferimento di blocco. I1 tempo di posizionamento e il ri-
moria centrale e il disco avviene in unite di blocchi di disco. L’indiriz
numero d1 bloc- 'ardo di rotazionc sono solitamente molto pill grandi tit-.1 tempo di trasferimento di blocco.
co — una combinazione di numero di faccia, numero di Iraccia (nella faccia) e
del disco. Viene anche form- fer rendere pin efi'iciente i1 trasferimento di pit: blocchi, e comune trasferjre moiti bloc-
co (nella traccia) — e foroito all‘hardware dell’inputioutput (U0)
riservata di iocaziou i contiguc in mentor-1a centrale che chi consecutivi suila stessa tt-aocia o cilindro. Cio elimina il tempo di posizionamento e il
to l'indirizzo di un buffer »- un’area
uel buffer. men- fitardo di rotaziorte per tutti i blocchi trarme i1 primo e puo avere come risultato un sostanu
pub contenere un blocco. Con on 00111m read il blocco dal disco :3 copiato
e copiato nei blocco del disco. Talora posso- e risparmio di tempo quando vengono trasferiti nmnerosi blocchi contigui. Di solito i (:06 .
tre con un comando write it contenuto del buffer
no essere trasferiti come one cosa sola molti blocchi contigui, detti cluster (grappolol- 111 0115' non' di dischi fornjscouo un tesso di trasferimento di one mole di dati (bulk transfer" ' '
nel
etc case In dimensione del buffer 9 adattata per corrispondete a1 numero di byte presenti te) per calcolare il tempo richiesto per trasferire bloochj coneecutivi (si veda l’App" " '
J-__ ....
_.._' "L__._' 1. .g : ”—
Memorizzazione dei record e crganlzzazioni primafie dei file 125
124 Capitoio 5

I1 tempo necessario per localizzare e trasferire un blocco di disco e dell’ordine dei milli- ramente o superati, ma richiestj per mantenere una registrazione storica, possono essere ar-
secondi, andando di solito dai 12 ai 60 msec. Per blocchi contigui 1a localizzazione
del prime chiviati su nastro. Recentemente stanno diventaado popolari per i] salvataggio di file di dati
blocco richiede da 12 a 60 msec, ma il trasferimento dei blocchi successivi pub richiedere
50- per le workstation e i personal computer nastri magnetici ridotti. di 8 mm (sirnili a quelli usa-
lo da 1 a 2 msec ciascuno. Molte tecniche di ricerca traggono profitto dal recupem
di blocchi ti nelle videocamere), che possono memorizzare fino a 50 Gbyte, nonché 1e car-tucce di dati a
vi quando cercano dati su disco. In ogni caso un tempo di trasferime nto dell’ordine scansione elicoidale di 4 mm c i CD—ROM. Essi sono anche usati per memorizzare immagini
consecuti
elabora~
dei inillisecondi a considera piuttosto alto se confrontato con il tempo richiesto per e librerie di sistema.
dati su disco e on coi-
re dati in memoria centrale dalle CPU attuaii. Percie la localizzazioae di
file che esarninere-
lo dr‘ bcrtiglia importanre nelle app‘ficazioni di basi di dati. Le strutture di
ai minimo ii numero di trasferime nti di blocchi ne-
mo qui e nei Capitolo 6 tentano di
localizzare e trasferire i
ridurre
dati richiesti da disco a memoria centrale. 5.3 Rendere parallelo I’accesso al disco
cessari per
attraverso I’uso della tecnologia RAID

5.2.2 Dispositivi di memorizzazione a nastro magnetico 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
si puo accedere “a sempre piu grandi. Per far fronte a questa crescita. e naturale aspettarsi che anche la tecnolo-
I dischi sono dispositivi di memoria secondaria ad accaaso casuaie. perché
di disco1 una volta che si e specificat o il suo indirizzo. I nastri ma- _ gia della memoria secondaria tenda ad adeguarsi, per prestazioni c affidabilita, alla tecnologia
case" a no arbitrario blocco
blocco sul nastro,
gnetici sono dispositivi ad accesso sequenziale: per accedere ali‘mesimo dei processed.
ati su bobine di na— Un miglioramento importante nella tecnologia della memoria secondaria é rappresentato
occorre prima scandire gli n —— i blocchi precedenti. I dati sono memorizz
elevata capacita. molto simili ai nastri audio 0 video. Si richiede a un’unith dallo sviluppo della tecnologia RAB), che originariamente stava per Redundant Arrays of
stro magnetico di
in, una bobina di nastro. Di so- Inexpensive Disks [vettori ridondanti di dischi economici). Pit] tardi la “1“ di RAID E: state
a nastro [tape drive) di leggere i dati da, 0 di scrivere i dati
un byte e memorizz ato sul nastro, e i byte sono memorizaa— . interpretata come Independent (indipendenti). L’idea RAID ha ricevuto un‘ adesione molto po-
lito ogni gruppo di bit che for-ma
; srtwa dall‘indusuia ed e stata sviluppata in un insierne variegato di architetture RAID alterna—
ti consecutivarnente.
Per leggere o scrivere dati su nastro si usa una testina di Ietturafscrittura.
Anche irecord di tive {livelli RAD) da 0 a 6).
sono memoriz zati in blocchi — sebbene i blocchi possano essere notevolmente Lo scopo principale della tecnologia RAID a quello di uguagliare i tassi molto diversi di
dati su nastro
siano pure piuttosto grandi. Con le den- migiiorarnento delle prestazioni dei discbi rispetto a quelli della memoria principale e dei mi—
piu grandi di quelli per i ch'scbi, c gli spazi tra biocchi
che varmo da 1600 a 6250 byte per pollice, un tipico spazio tra bloc- crcproceSStturi.fi Mentre 1e capacita della RAM sono quadruplicate ogni due 0 tre anni, i tempi
sita tipiche per un nastro
che va da 960 a 3750 byte.
chi5 di 0.6 pollici corrisponde a uno spreco di spazio di memoria
spazio e consuetu dine raggrupp are insieme in un solo
Per una migliore utilizzazione dello
blocco molti record. Tabella 5.2 Tendenze nella tecnologia del dlschi.
ai blocchi di dati
La carat‘teristica principale di un nastro sta ne] suo requisito di accedere Valori dei parametri Tasso storico Valcrl pnevlstl
riuscire a raggiung ere un blocco nel mezzo di una bobina di na- per II 1999"
in ordine sequenziaie. Per ml 199::- dl miglioramento
richiesto si trova
stro, quest’ultimo viene inserito e quindi analizzato, fino a quando i] blocco
annuo ("for
ragione l’accesso al nastro pub essere lento e i 2? 2-3 GBipoHica quadrato
sotto la testina di letturafscrittura. Per quests. Danette areale 50-150 Mbitfpoliice quadrato
per memoriz zare dati in linea, se non per alcune applicaz ioni specializ- Densila llneara 40000—50000 bitfpoillce 13 233 Kbllfpoilice
nastri non sono usati Densita inter-trancla 1500-3000 traccefpoIHce 1E1 _ 11550 traccefpollice
quella di backup (salvataggio)
zate. Per?) i nastri forniscono una funzione molto importante, Capacita [faitore d! forms: 3.5") 100-2000 MB 2? 36 GB
copie dei file presenti su disco, utili nel caso in cui i 22 17-28 MBIsec
della base di dati, che permette di teaere Tasso di trasferimento 3-4 Ms
54' msec
persi a causa di una rottura di disco, cite pub verificars i se la testina di Tempo dl poslzionamento ?-20 ms 8
dati vengano
o meccanico. Per questa
letturafscritmra tocca la superficic del disco per un malfunzionament ' Fonts: Chan, Lee, Glbson. Katz 3 Patterson (1994]. Hlpruduzlone autorlzzata.
mente so nastro. I nastri possono anche essere usa- “ Fame: Unite a disco rigtdo lBM Uttraalar SW 9183.
ragione i fiie su disco sono copiati periodica
ti per memorizzare file troppo grandi della base di dati. Infine, file della base
di dati usati ra-

‘ 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. '
5 Nella terminologia propria dci nastri si parla di .9s Ira record (inter-record gaps).
Memorizzazione dei record 9 organizzazioni primarie dei file 127
125 Capitolo 5

disco 2 disco 3 Una tecnica per introdurre ridondanza s detta mirroring (to mirror: riflettere) o sha-
dowing (to shadow: seguire come un'ombra). I dati sono scritti con ridondanza in due dischi
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 ripa-
rato. 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
Figure 5.3 Data striping. I] file A e suddlvlso (striped) su quattro disohl. con MTI‘F di 200.000 ore ciascuno e di (200.000)2l(2 #24) = 8.33 Se 10‘1 ore. cioe di
95.028 anni." La riflessione di disco raddoppia anche ii tasso con il quale sono gestite 1e ri-
e i tassi di trasferi- chieste di lettura. dal momenta che una Iettura puo essere indirizzata ali’uno o all'altro disco.
di accesso al disco stanno migliorando meno del 10 per cento all‘anno, ll tasso di trasferirnento di ciascuna lettura. perb, rimane uguale a quello che si ha per no sin-
cento annuo. In verita le capacitd
memo stanno aumentando approssimativamente del 20 per golo disco.
pin del 50 per cento all’anno, mai migliorar nenti nclla velocits
dei dischi stanno aumentando Un’altra soluzione al problema dell’affidabilits e quella di memorizzare informazioni sup—
illustrate 1e tenden-
e no] tempo di accesso sono di entité molto inferiore. 1n Tabella 5.2 sono plemcntari che non sono nonnalmente necessarie ma cite possono essere usate per ricostruire
e dei tassi di sni-
ze nella tecnologia dei dischi in termini dei valori dei parametri del 1993 ie informazioni perse in case di guasto del disco. L’introduzione di Iidondanza deve conside-
glioramento. rare due probiemi: la scelta di una tecnica per calcolare l‘informazione ridondante e la scelta
speciali che
Esiste poi una seconds differenza qualitativa tra la capacitit di microprocessor-i di un metodo per distribuire l’informazione ridondante sui vettore di dischi. Si affronta i1 prié
oni che riguardan o l'elaboraz ione di dati video, audio, di im-
si rivolgono a nuove applicazi mo problema tramite l’nso di codici a correzione d’errore che utilizzano bit di parité, o codi—
insiemi di dati con-
magini e spaziali e la cortispondcnte mancanza di accesso rapido a grandi ci specializzati come i codici Hamming. Con 10 schema di parita si pub considerare che un di-
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 guasta 1e informazioni mancanti possono essere ricostruite tramite un processo simile a una
1m concetto det-
comporta come on singolo disco logico di maggiori prestazioni. Viene nsato
1e pre- sottrazione.
to data striping (suddivisione dei dati), che utilizza i1 parallelism per incrementare . Per ii secondo problem. i due approcci pin importanti consistono nel memorizzare 1e
fra pill dischi, cosi che
stazioni del disco. 1] data striping distribuisce i dad in modo trasparente mfonnazioni ridondanti so on piccolo numero di dischi o no] distribuirle uniformemente su
veloce. 1n Figura 5.3 e rappresentato un fi-
essi 5i comportino come un unico disco, grands e tutti i dischi. Quest‘uitirno he come risultato un miglior bilanciamento del carico. I diversi li—
(striped) fra quattro dischi. La suddivisi one migliora 1e prestazioni
le distribuito o snddiviso velii di RAID scelgono una combinazione di quests opzioni per implementare 1a ridondanza,
, fomendo cosi
di U0 complessive consentcndo che IlO multipli vengano serviti in parallelo e percio per migliorare 1‘ affidabilité.
realizza anche un bilancia—
alti tassi di trasferimento complessivi. La suddivisione dei dati
fra i dischi. lnoltre, memoriz zando informaz ioni ridondanti sui dischi con
memo del carico
pub essere migliorata i‘affi-
l’uso della parita 0 di qualche altro codice a correzione d’errore,
dabilith. 5.3.2 Miglioramento delle prestazioni

l Yettori di dischi si servono della tecnica del data striping per ottenere tassi di trasfcrimento
Miglioramento dell’affidabilité : Inigiiori. Si noti che i dati possono essere letti o scrit'ti solo un blocco alla volta. cosicché un
5.3.1
': optco nasferimento comprende 512 byte. La suddivisione su disco puo essere eseguita a un Ii-
che si ha per un solo di- . veilo di granularité pill fine, scomponendo un byte di dati in hit e distribuendo i bit so dischi
Per 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 spezza-
un guasto) {ii
sco. Percio, so I’MTTF (Mean Time To Failure: tempo medic perché si verifichi e on byte di dati e nello scrivere i1 bit j nel j—esimo disco. Con byte di 8 bit. otto dischi fisici . _ . .
tipici vanno fine a
un’nnitii disco 9. considerato di 200.000 ore, ossia circa 22,8 anni (tempi possono essere considerati come un solo disco logico con on aumento di otto volte .d'eli'afsso.
solo di 2000 ore, ossia
circa ] milione di ore), quello di un banco di 100 unite disco diventa d1 trasfemnento dati. Ogni disco partecipa a ciascuna richiesta di IlO e l'aromontare totaie di
dati in un tale vettore di dischi causerh una signifi-
83,3 giorni. Mantenere one sola copia 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
tollerati. Gli svantagg i sono moiti:
dei dati in modo tale che i gnasti ai dischi possano essere
1a ridondan-
operazioni di 00 agginntive per la scrittnra, calcoli supplementari per mantenere
e per effettuare i1 ripristino dagli etrori, e capacita di disco aggiuntiv a per memorizzare
za
.._... .32- mcm: 1: .da ' 2' l. .3|:1.__ . .. ‘- . . _ I _ .
Le fol-mule neri calcoli dell‘MTTF sonopresenti in C on c altrl (1994).
Memorizzazione dei record e organizzazioni primarie dei file 131
130 Capltolo 5

. ‘ .i I [+ 1 I I +2 I
5.4 Bufferizzazione di blocchi blocco dI disco.
”O:
[WSII'LMO I rimpimeolo
I d] B
I rlempirnento
L:
: flampfiento
| dl B
: rimlplrrlgnto
.._ I di A
:
|

I I i ' I' ‘ '


I I I I :
e sono noti tut-
Quando devono essere trasferiti da disco a memoria centrale numerosi bloeclu', biocco dl disco: I I : IN I i+2 I ‘I + 3 I I' + 4
centrale
ti i loro indirizzi, per accelerate i1 trasfefimento possono essere riservati in memoria ELABORAZIONE: I processo A I women B I proceuo n I prOCESSO E 1 procasso A

un buffer, la CPU pub elaborare i dati nell'altro buf— H——)-v H——> H—h H—h— H—-—-—-——h
molti buffer. Menu-e viene letto o scritto I I r I
disco (controller) che,
fer. Cio e possibile perché esiste un processore indipeudente per 1110 di
I I I I l
4 I I I I
blocco di dati tra la memoria e il disco in-
una volta avviato, puo procedere ncl trasferire un I I I l I

dipendentemente dall’elabor azione della CPU, e in parallelo con essa.


Iprocessi A e
In Figure 5.5 e illustrato come due processi possano avanzare in parallelo.
—>
e D sono ese- Tempo
B sono eseguiti concorrentemente e in modo interleaved, menu-ei processi C
pill processi. l’ese-
guiti concorrentemente e in parallelo. Quando una sola CPU controlla Flgura 5.6 Use of due buffer. A e 3. per la [ettura del disco.
possono ancora essere eseguiti cencorrente-
cuzione parallela non e possibile. Pero i processi
d. La bufferizza zione e piu utile quando i processi possono essere
meme in mode interleave
e di 1’0 di disco se—
eseguiti concorrenternente in parallelo, o perché e disponibile un processor
parato, o perché esistono piIZI processori di CPU.
In Figure 5.6 e illustrate come la lettura e l’elaborazione possano prooedere in parallelo 5.5 Collocazione su disco dei record di un file
del tempo ri-
quando i1 tempo richiesto per eiaborase un blocco di disco in memoria e minors
successivo e riempire un buffer. La CPU puo cominciar e a ela-
cl'fiesto per leggere i1 blocco
una volta che i1 suo trasferime nto in memoria centrale e compietat o; allo
borare un blocco in questo paragrafo saranno dcfinitii concetti di record, tipo di record e file. Verranno poi ana~
essere irnpegnato nella lettura e not trasferi-
stesso tempo il processore dell’IlO di disco pub lizzate alcune tecmche per la collocazione su disco dei record di on file.
bul‘ferizza-
mento 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
mina i1 tempo di posizionam ento e il ritardo di rotazione per i trasferirne rrti di tutti i blocchi 5.5.1 Record e tipi di record
elaborafi. riducendo cosl il tempo
escluso il prime. Inoltre i dati sono tenuti pronti per essere
di attesa nei programmi. I dati sono normalmente memorizzati sotto forma di record. Ogni record consiste di una col-
lenone 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-
Concorrenza interleaved Esecuzlone parallels
delle operazlonl A e B. delle operezlonl G e D. seun campo del record specifica alcurti attributi di quell’impiegato. come NOME, DATA NA-
I
SCITA, S'TIPENDIO o SUPERVISDRE. Una collezione di nomi di campi e dei tipi di dati don-i-
I | | _ Spendeoti costituisce una definizione di fipo di record 0 formato di record. Un tipo di da-
A l I A l 1 - : 5 zigssocrato a ciascun campo, specifica i1 tipo di valori che possono essere assunti da quel
I—“i I—‘——I E E E - po.
I I | I I ' I
l I I r i I: l 11 ttpodi dati di un campo e di soIito uno dei tipi di dati standard usati in programm-
‘. I I I ‘I : l
I I B I I81 I 1 e. Quesu cornprendono i tipi di dati numerici (integer. long integer o floating point), suin-
=. I l l E ‘= C ‘= he d1 caratten (a lunghezza fissa o variabile). booleani (che assumono solo i valon‘ 0 e I o
YERO e EALSO), e talora i tipi di dati codificati in mode speciale date 6 time. Per ciascun
:

I .
I
I

I
I
|

|
: I
l
j

I: r
i——-—-D———i
r——-—__‘

I
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
l lt2 l l —-—- aka-10 byte [assumendo un fonnato del tipo YYYY-MM-DD) e una stringa a Iungheziz; fi '-
t1 is ‘4 Tempo a di k caratten k byte. Le stringhea lunghezza variabile possono richiertere tanti byte qtt
Fioura 5.5 Qonfronto tra Ia concorrenaa Interleaved e 1'esecuzione In parallelo.
'I-q-‘l—IIII’

Memorlzzazlone del record e organlzzazieni primarie del file 133


132 Capitole 5

la seguente
sere definite — usando 1a notazione del linguaggio di programmaziooe C — con CODICEJJNORO
SSN STIPENDIO DIPARTIMENTO DATMSSUNZIONE
struttura:

struct impiegatc {
char nome[3@];
char ssn [ 91 ;
int stipendio;
int codicewlavor‘o;
CODICE_LAVOHO
char- dipar‘timento [2%];
STlPENDIO
lE
NDME sen 4 DIPAFlTiMENTO I
zare voci di dati sgrgtéteélfl
In applicazioni di basi di dati recenti pub sorgere 1a necessita di memeriz lemnn. John [123455759 lxxxx gm [Computer I
oggefii non strutturat i. rappresen tanti immagini , flussi digitalizzati
che censistone di grandi 1 12 21 25 29
(Binary Large Object: gran-
' audio 0 video. 0 testo libero. Queste sono indicate come BLOB
dati BLOB e tipicamen te memorizz ata separatam ente dal sue
de oggette binario). Una voce di Caratterl Separator:
in un pool di blocchi di disco. 6 ci si limita a inserire nel record un puntatore al BLOB. separa I! name del campo
record dal \ralore del compo

INOME=SmIth.John I ssu=123455759 1 DIPAFITIMENTO=Computer N l p .


53 mm camp
I

5.5.2 File, record a Iunghezza fissa e record a


E ten-nine ll record
lunghezza variabile
Flgura 5.? Tre formati di memorizzazione dI record. (a) Un record a [unghezza frssa con sei campi e di-
in un file fanno parte del- mensuene d1 71 byte. (b) Un record con due campl 'di lunghazza variablle e tre campi di lun-
Un file e una sequenza di record. In molti casi tutti i record presenti ghezza fissa. (c1 Un record a camel variablli con tre tipi dl caratterl saparatori.
di record. Se ogrLi record nel file ha esatteroen te la stessa dimensione (in byte),
10 stesso tipo
fissa. Se record diversi nel file haono di-
si dice che i1 file 5 costituito da record a lunghezza
che i1 file e costituito da record a lunghezz a variabile. Un file pub
mensioni diverse, si dice
unto dJ' vista logico dovrebbe avere record a lunghezza variabile come no file di record a lun-
avere record a lunghezza variabile per melte ragioni:
ghezzefissa. Ad esempio, nel case di campi opzionali sarebbe possibile aver inserite tutti i
seno di dimensiene
o i record del file sono dello stesso tipo di record. ma uno o pifi cempi ampi 1n ogni record delfile, ma poi memorizzare uno speciale valore nullo se non esiste al-
O puo
var-labile {campl di lunghezza variabile), ad esernpie, il campo NOME di IMPIEGAT un valore per quel campo. Per 1111 compo che si ripete, si poo‘ebbere allocare in ogni record
essere un campo di lunghezz a var-labile ; anti spazi quant’e il momma nonzero di valon' che i1 campo pub assumere. In entrambi i ca-
pub avere valeri
o i record del file sono delle stesso tipo di record. ma one o pifi dei campi r yiene _sprecato spazio quande certi record non presentano valori per tutti gli spazi fisici for-
campo e detto campo che si ripete (repeatin g field) e
multipli per singoli record; on tale mtr m mascun record. Si considerino era altre opzioni per formattare record di un file di re-
ripete (repeating
on gruppo di valor-i per quel campo e spesso detto gruppo che si cord :1 lunghezza var-labile.
gro up); Per campt’ a‘i lunghezza variabile ogni record presenta un valore in corrispendenza a ognl
opzlonali, cioé
0 i record del file sene delle stesse ripe di record, ma one o piu campi sono ampo. ma non a note la lunghezza esatta dei valor-i di alcuni campi. Per determinare i b '
del file (campi opzlonali);
pesseno assumere valor-i per alcurti ma non per tutti i record he all’interne di un particolare record rappresentane ogni campo, si possone usare spe
il file contiene record di diversi ripr' di record e percib di dimensio ne variabile (file misto). aratten separatori (come ? o % 0 3) — Che non si presentano in nessun valore del c'
0
raggrupparr‘ (clustered:
Cib potrebbe verificarsi se record collegati di tipi diversi fossero or terminare campi di lunghezza variabile (Figure 5.71)}, oppure memorizzare la
ad esempio irecord VOTAZIG NE di one specifico stu-
collocati insieme) su blecchi di disco; in byte del carnpe in one] record, prima del valore del campo. . -
dente possono essere collocati di seguito al record di quelle STUDENTE. U11 file di record con campi opzionali pub essere formattate in diversi modi. Se
no una dimensione di re- otale di campi per il tipe di record e grande, ma i1 numero di campi che si prod
1 record a lunghezza fissa IMPIEGATD in Figure 5.7(3) presenta
e dei campi sorro fisse, cosicché amente in on record tipico e piccolo, e possibile inserire in ciascun record
cord di 71 byte. Ogni record he gli stessi campi. e 1e lunghezz
la posizion e del byte di iuizio di ciascun campo relativamente alla .oppre meme-compo, valere-campo> piuttoste che solo i valori del cam
il sistema pub individuare
campo da parte dei one usati tre tipi di caratteri separated, anche se si potrebbe usare lo St
posiziene iniziale del record. Cio- facilita la lecalizzazione dei valon del
rapprese ntare un file che da un on: per i primi due scepi —— separare iI neme del compo dal valore del cam
programmi che accedeno a questi file. Si noti che e possibile
Memorlzzazione dei record e organizzazioni primarie dei file 135
134 Gapitele 5

breve codice tipo di cam-


pe dal successive. Un‘epzione piu pratica e quella di assegnare un {a}
blocco l 1 record ‘1 I record 2 I record 3 W
in ciascun record una sequen-
po — ad esernpio un numero intero — a ciascun campe e inserire
campo. valore-campo>.
za di coppie <tipo=carnpo, valere—carnpo> piuttosto che ceppie <neme—
re per separarei valori dcl carn-
Un compo che sf ripere ha bisogno di un carattere separate blocco H 1 I record 4 I_ record 5 l record 6 w
fine del campo. Infine. per
po che si ripeteno e di un altro carattere separate-re per indicare la
ogni record e precedu te da un indicatere di tipo
on file che comprende record 111' ripi diver-sf,
ente i pregrar nmi che elabora no file di record a lunghezza variabi-
(ii record. Comprensibilm i — de-
ti ai pregranunatori comun
le che sono di solito pane del file system c percib nascos
fissa, dove in posizione di parten—
-
per record a lunghezza record 1 ‘ record 2 ‘ record 3 ‘ record 4 I P H
vone essere pin complessi di quelli (b) blocco i ‘
23 e la dimensione di ogni campo sono note e fissate.‘
blocco I+1 F rscord4 (resto) L record 5 1 record 6 1 record 7
{Pl
5.5.3 Ripartizione dei record in blocchi e confronto tra ; Figure 5.8 Tipl di organizzazlone dei record. {a} Senze spanning. (b) Con spanning.
record can spanning e record senza spanning
un blocco b 1' min) dt' tra-
I record di un file devono essere ripartitj su blocchi di disco perché re di quella
nurnero media :11 record per blocco peril file. Si pub usare bfr per calcolare i1 numero di bloc-
ione del blocco b maggio ‘Fhl b necessari per on file 111 :- record:
sferimento datt' tra disco e memoria. Quando la dimens
alcuni file pessono avere record
del record, ogni blocco conterra numerosi record. anche se
o trovar pesto in un solo blocco. Si supponga che 1a di- I) = irr/bfrfl 2310c
inusualmente grandi che non posson dimensions di
a lunghezza fissa della
mensione dei blocco sia di 8 byte. Per on file di record are Ia [(xfl (fimzr'one ceiling) anotonda per eccesso i] valore di x a] prime intern.
blocco. dove la LOO] (fimzione
R byte, con 3 2 R. e possibile inserire bfr = LB/Rl record per di blocco
11 valore bfr e detto fattore
floor) errorana‘a per dr‘ferro i1 numere x ad un intero.
ng factor) per il file. In genera ls R pub non divider e B esattameute, cesicché in ogui
(blocki
blocco 51 he on ccrto spazie inutilizzato, pari a .5.4 Allocazione dei biocchi di un file su disco
B — (bfr an R) byte
Ci sent) molte tecniche standard per allocare i blocchi di no file su disco. Nell'allocazione
di on record in un blocco e ii resto in contigua iblocciii de] file sono allocan' su blocchi di disco consecufivi: cib rende molto velo-
Per utilize-are questo spazio si pub memorizzare parte e la lettura dell’intere file con l‘uso delle dcppia bufferizzaziene, ma nel contempo reude dif-
blocco punta a1 blocco che contiene il reste del re-
un altre. Un puntatore alla fine del prime c11e l’aumento delle dimensioni dc] file. Nell’allocazione collegata egni blocco condene un
organizzazione e detta span-
cord nel case in cui non sia i1 blocco consecutive su disco. Questa untatore al successive blocco dei file: cib faciljta 1' aumento delle dimensieni del file ma ral-
blocco. Ogni velta che on record
ned (estesa). perché i record possono estendersi su pin dl un e conces- enta Ia lettura dell’intero file. Una combinaziene delle due alloca cluster di blocchi di disco
spanned. Se ai record non
e pib grande di un blocco 31' dove usare un’organizzazione ousecutivi, con i cluster cellegati tra lore. I cluster sono talera detti segmenti del file 0 eaten-
detta unspanued. Essa e usata con
so di attraversare i confinj di un blocco, i’orgaeizzazione e oni dei file. Un’altra possibilita e quella di usere un‘allocezione indiclzzata, dove one 0 pin
e a ciascun record di cominciare in una
record a lunghezza fissa che hanne B > R, perché consent Ilocchi di indici contengono puntateri agli effettivi blocchi dei file. E anche comune usare
dei record. Per record a lunghezza va-
locazione nota del blocco. semplificande l‘elaborezione ombinazioni di queste tecniche.
nizzaziene unspanned. Se i1
riabile pub essere usata sia un'orgarfizzazione spanned sia un’erga
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
spanne d, ogni blocco pub me—
Per record a lunghezza variabile che usane 1‘ organizzazione - .5.5 Header dei file
record. In questo case il fattore di blocco bfr rappresenta i1
morizzare on diverse numero di
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
_,_.__._——«.——
' _':iie song... .''-bilian_"‘ "‘h‘is c h e1“: onuazrom oer detenumare g1.i indirizzi di _d5 co dei blocchi dei file, nonché per le de
g heme
. 'r app r; are: or _
MPMW Lywwwhlmfl
‘__._.-.

136 Capitolo 5 Memorizzazione dei record a organizzazioni primarie del file 137

zioni dei formati dei record, che pessono cemprendere lunghezze di campo e ordine dei cam— a sistema. Si presents qui di seguito un insieme di Operazioni rappresentative. Tipicaroente
pi all‘interno di on record per record a lunghezza fissa senza spanning. c codici di cipo di carn- programmi di alto Iivello, come i programmi software del DBMS, accedono ai record usando
po, caratteri separator-i e codici di tipo di record per record a lunghezza val-labile. - quest: comandi, e percie talvolta nelle seguenti descrizioni ci si rifen'ra a variabili di pro-
Per la ricerca di on record su disco, uno 0 pie blecchi seno copiau‘ nei buffer di memoria grams.
1e
centrale. Quindi i programmi ricercano il record o i record desiderati entro i buffer, usando
0 Open: prepara i1 file per la lettura e la scrittura. Alloca buffer appropriati (tipicarnente al-
informazieni presenti nell‘header del file. Se I'indjrizzo del blocco che contiene i1 record de— ' meno due) per contenere blocclu' del file prelevati da disco, e rccupera l’header del file.
i
side-rate non e note, i programrni di ricerca devono efiettusre una ricer-ca lineare attraverso Imposta il file pointer {puntatore a1 file) all‘inizio del file.
blocchi del file. Ogni blocco del file e copiato in un buffer ed esaminato fine a che il record a
molto o Reset: imposta i1 file pointer di un file aperto all‘inizio del file.
localizzato e tutti i blecchi del file sone stati esaminati senza successo. Clo pub essere
erganizzaz ione di 0 Find (0 Locate}: cerca i1 prime record che soddisfa una cendiziene di ricerca. Trasferisce
dispendieso in termini di tempo per on file grande. Lo scope di una buena
il blocco che contiene quel record in un buffer in memoria centrale (se non e gia 1a). II fi—
file e quelle di localizzare i1 blocco che contiene on record dcsiderato con il minimo numere
le pointer puma al record nel buffer ed esse diventa i1 record carrenre. Talvolta vengono
di'trasferimenti di blocco.
usati verbi diversi per indicare se i1 record localjzzato deve essere recuperate e aggiomato.
o Read (0 Get): copia i1 record corrente dal buffer in una var-labile di programma del pro-
gramme 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
5.6 Operazioni sui file C e. V

o FindNext: ricerca nel file if: successive record che soddisfa la cendjzione di ricerca. Tra—
opera- sferisoe il blocco che centiene quel record in un buffer di memeria centrale (se non si tro-
Le operazioni sui file sono di soljto raggruppate in Operazioni di recupero (retrieval
). Le prime non cambiane alcun va gia la). Viene localizzato il record nel buffer ed esso diventa il record corrente.
tions) e operazioni di aggiornamento (update operations
in mode tale che i valeri dei lore campi 0 Delete: cancella i1 record corrente e (alla fine) aggioma i.l file su disco per rispecchiarc Ia
date nel file, ma si limitane a lecalizzare certi record
cancellazione.
possane essere esaminati ed elaborati. Le seconde cambiane i1 file con l‘inserimento o la can-
o Madific modifica i valori di alcuni campi del record corrente e (alla fine) aggierna i1 file
cellazione di record 0 con la modifica dei valeri di alcuni campi. In entrambi i casi e possibi- _ su disco per rispecchiare la modifica.
le che 5i debba selezionare uno o pit] record per il recupero, ia cancellazione o la modifica ba— 0 Insert: inserisce un nuevo record nel file lecalizzando i] blocco in cui dove essere inserite
sandosi su una oondizione di sclezione (o mndizlone di filtraggio), che specificai criteri che i1 record, trasferendo quel blocco in un buffer in memoria cenu'ale (se non e gia la), scri-
i] record oi record desiderati devono soddisfare. vende 1] record nel buffer e (alla fine) scrivende i1 contenute del buffer sn disco per ri-

Si consideri on file IMPIEGATO con campi HOME. SSN, STIPENDIO, CODIGE_LAVORO e DI
puo comportare un confronto di egua- specchiare l‘in serimente.
PAHTIMENTO. Una cendizione di selezione semplice
G= - Close: complete l’accesso al file rilasciando i buffer ed eseguendo tutte 1e altre Operazioni
glianza so on certo valore di campo — ad esempio (SEN = ‘123456789’) o (DI PARTIMENT di pulizia neocssarie.
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 _ Le precedenti operazioni {tranne Open e Close} sono dette Operazioni un-rccord-alla—vol-
condizione di selezione un’espressione booleana arbitraria sui campi del file. _ ta, perché ogni operazione si applica a un solo record. E pessibile snellire 1e operazioni Find,
sem-
Le eperazieni di ricerca su file sono generalmente basate su cendizioni di selezione i-‘FindNext e Read in una sola eperazione, Scan.
Una cendizione cemplessa deve essere decomposta dal DBMS (0 del programma tore)
plici.
usata per localizzare i record so disco. 0 Scan: se sul file sono appena state applicate 1e operazioni Open 0 Reset, restituisce il pri-
per estrarre una condizione semplice che pessa essere
di se- me record; alu'imenti fomisce i1 record successive. Se con l’operazione e specificata una
Ogni record localizzato viene poi esaminato per decidere se soddisfa l’intera condizione
condmone, il record restituito e il prime 0 'd successive record che soddisfa la cendizione.
lezione. Ad esempio, si puo estrarre la condizione semplice (DIPAHTIMENTO = ‘Ricerca') dal-
; ogni re-
la cendizione complessa ((STIPENDIO 2 30000) AND (DI PAHTIMENTO = ‘Ricercs‘D Nei sistemi di basi di dati possono essere applicate a on file operazioni aggiuntivc di pin
{DIPARTIM ENTO = ‘Ricerca') viene localizzato e poi esamjnato per vedere
cord che soddisfa alto livello un-insieme-alla-volta. Esempi di queste operazioni some i seguenu‘.
se soddjsfa anche (STIPENDIG 2 30000].
Quando molti record di on file seddisfane una condizione di ricerca, viene inizialmen
te le- o Fimfllll: localizza tutti i record nel file che soddisfano una cendizione di ricerca.
calizzato il prime record — relativamente alla sequenza fisica dei record del file ~ nominate FindOrder-ed: recupera tutti i record nel file in un certo ordine specificato.
re-
o da questo record e localizzan o ll o Reorganize: comincia i1 processo di riorganizzazioue. Come si evra mode di vedere, alcu-
cord corrente. Le operazieni di ricerca seguenfi comincian
successive record del file che soddisfa la condizione. ne organizzazioni di file richiedone una riorganizzazione periodica. Un esempio consiszc
Le operazioni effettive per localizzare e accedere ai record di un file variane nel riordinare i record del file classificandoli sulla base di un campe specificato.
da sistema
Memorlzzazione dei record e organizzazioni primarie dei file 139
138 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 me-
A questo punto vale la pena di notare la differenza tra i termini organtzz so usata con percorsi di accesso opzionali, come gli indici secondari esarninati nel Ca itolpo 6
nlzzazio ne di file si fiferisce all‘organ izzazione dei dati di un file in
todo dr‘ accesso. Un‘orga o per‘raccoglrere e memorizzare record di dati in vista di un use future. P .
i record e i blocchi sono
record, blocchi e strutture di accesso; cio comprende il mode in cui ,
L trtsenrnento di un nuovo record e molto efii‘cr'enre: l'ultimo blocco di disco del file vie-
collegati. Un metodo di accesso
posti nel supporto di memorizzazione e il mode in cui sono ne copiato in un buffer, viene aggiunto iI nuovo record e poi il blocco Viene riscritto sul di-
lato, fornisce un gruppo di operazio rii — come ad esempio quelle elencate sopra — che sco. L indinzzo dell‘ultimo blocco del file viene tenuto nell’header del file. Pero la ricerca di
d’altro
e molti metodi di accesso a
possono essere applicate a un file. In generale e possibile applicar applicati
on record attraverso una qualsiasi condizione di ricerca compona una ricerca lineare sul file
una stessa organizzazione di file. Alcuni metodi di accesso, tuttavia, possono essere blocco per blocco — una procedure dispendiosa. Se un solo record soddisfa la condizione di ri—
e applieare un metodo di ac-
solo 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
cesso a indici a no file che non ha un indice {si veda i1 Capitolo 6). blocchr del file pnma di trovare i1 record. Per un file costituito da b blocchi cio puo richiede-
che altre. Alcurti file
Di solito ci si attende di usare alcune condiziorti di ricerca piuttosto re in media I‘tspezicne di (3)12) blocchi. Se nessun record 0 viceversa molti’record soddisfano
oui di agglom ameuto sono raramente eseguite
possono essere stafici, nel senso che 1e operazi la condtzrone di ricerca, i1 programrna deve leggere e ispezionare tutti i b 1310c del file
cambiar e frequen temente , cosicch é 1e operazioni
su di essi; altri file, piu dinami ci, possono Per cancellare on record, an programme deve dapprima uovare il suo blocco copiare il
e ad essi. Un‘orga nizzazio ne di file di suc—
di aggiornamento vengono costantemente applicat blocco in un buffer, quindi cancellare iI record dal buffer e infine fiscrivere il blocco su di—
di eseguir e il piu efficien temente possibi le 1e operazi oni che ci si
cesso dovrebbe consentire sco. Clo lascia spazio inutilizzato nel blocco di disco. La cancellazione di un gran numcro di
ri i1 file IMPIEG ATO (Figu-
attende di eseguirefiequemememe sul file. Ad esernpio,
si conside
record in questo modo ha come risultato uno spreco di spazio di memoria Un’altra tecnica
attuali irnpiega ti di un’azie rtda. Clo che ci si atten-
ra 5.7a} che contierte i record relativi agli usata per la cancellaziorte di record consiste nel tenere memorizzato con ogrti record 1111 bit 0
record (quando vengono assunti impiega ti), cancella re record (quando
de e di clover inserire byte supplementare, detto indicatore d3 cancellazione. Un record viene cancellato sem lice—
quando cambia lo stipendio 0
impiegati iasciano l‘azienda} e modificare record (ad esempio meute ponerido l'indicatore di cancellazione a un certo valore. Un valore diverse dell'irfdica-
La cancella zione o la modific a di un record richiede una condizio—
il lavoro di un impiegato). tore indica: on record valido {cioe non cancellato). I programmi di ricerca considerano solo i
di record. Anche il recupero di
ne di selezione per identificatc un particolare record 0 insierue record valid: dl ogui blocco. quando conducono la ioro ricerca. EnLrambe questo tccniche di
uno 0 pi!) record richiede una condizio rte di selezion e. . caucellazrorte nchiedono una riorganizzazione periodica del file per recuperare lo spazio inu-
condizione di ricerca basata su
Se gli utenti si aspettano di applicare principalmente una - ulizzato dei record cancellati. Durante la riorganizzazione si accede consecutivarnente ai bloc~
one di file che facilili la localizzazione di un
SSN. i1 progettista deve scegliere un‘organizzazi clu del file, e 1 record vengono compattati rimuovendo i record cancelled. Dopo una riot a—
cnto fisico dei record basa—
record data i1 valore del suo SSN. Cib puo comportare un ordinam supponga
mzeezrone dt'qluesto tipo i 1310c sono di nuovo riempiti firto al limite delle loro ca acigta
(si veda il Capitolo 6). Si
to sul valore di SSN, o la definizione di un indice su SSN E): altra possrbdita e quella di usare Io spazio lasciato libero dai record cancelled quaido si
usi il file per generate 1e paghe degli impiegati, e richieda che
che una seconda applicazione 16 1:22:11: 11:13:record, anche se cm nchiede una contabilith aggiuntiva per tenor traccia del-
applicazione e meglio memorizzare
le paghe siano raggruppate per dipartirnento. Per questa
hanno lo stesso valore di dipartimento, rag—
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 gliezza vanabile. La modifica di un record a lunghezza variabile puo richiedere la cancella-
nti, i1 progett ista dovreb be scegliere un‘organizzazionc
entrambe le applicazioni sono importa zrone del record vecchio e l’insei'imento di on record modificato perché i1 record modificat
di eseguire efficien ternent e entrarnbe 1e operaziorti. Purtroppo in molti casi cio
che consents pub non trovar pesto nel suo vecchio spazio su disco. , 0
messo che tenga conto dell‘ importanza e
non e possibile e deve allora essere scelto un compro . 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 pra ordinate del file. L‘ordirtamento e un’operazione dispendiosa per un grande file su disco'
fi successivi e nel Capitolo 6 si esarnine ranno vat-l metodi per organizzarei re-
Nei paragra vengono per questo usate tecniche speciali per l’ordinamento estemo. ’
usate molte tecniche generali, co-
cord di un file su disco. Per create metodi di accesso sono Per un file di record a lunghezzafissa non ordinati, che usa bloccht' senza spanning e al-
l’hash e l‘indiciz zazione . Inoltre svariate tecniche generali per gestire gli
rne l’ordinamento, locaztone conngrm, viene naturale accedere a ogni record a partire dafla sua posizione nel fi-
organiz zazioni di file.
inserimenti e le cancellazioni funziortauo con molte le. 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 bloc-
co Ltr/bfrfl ed 5 1’ (i mod bfr)—esimo record di quel blacco. Un file di questo tipo viene spesso
5.7 File di record non ordinati (file heap)
fondamentale. i record sono collo-
1n questo tipo di organizzazione, la pin semplice e la piu Talvolra quests organizzazione e delta file sequenziale.
uiseé: ‘ Eerie, '“théir 'm‘r‘re cord mneinsefifi ntlafme;_ 'del _.
i l . rdine' fl -- _ '.'
WW M% -“.I.
“jg—I- :- ——-g—-
i-_..._._.....

Memorlzzezione dei record e organizzazioni primarle dei file 141


140 Capitelo 5

a if K < (valore del campo chiave d1 erdinamento del PHIMO record


agevolmcnte accedere direttarnente ai record
chiamato file relative o dirette perché si pee e dalla sua posiz ione non ain- nel blocco i)
a un record a partir
partire dalle loro posizioni relative. L‘accesso then u é— i — 1
zzare on recor d basan desi su una cond iziene di ricerca, pero facilita 1a costituzione else if K > (valere del campo chiave di ordinamento dell'ULTIMO
ta 3 locali ati nel Capitolo 6.
esernpio gli indici studi
di percersi di accesso al file. come ad record nel blocco i)
then 1 e— i + 1
else if 11 record con valore del campo chiave di
ordinamento = K e nel buffer

5.8 File di record ordinati (file sorted) then goto trovato


else goto nontrovato;
end;
i cli nno dei le-
d di no file so disco basandosi sui valor goto nontrevate;
E pessibile ordinare fisicamente i recor 0 file sequ enziale.” Se
Cio perta a un file ordin ate.
ro campi, detto compo (1i erdinamento.
e
per cui e garantita l’e- Un criterio di ricerca che coinvolgc le condizieni >, <. 2 e S sul campo di ordinamente
o chlav e del file — un camp o
ii campo di ordinarnento e anche un camp arnente del abbastanza efficiente, dal memento che l’ordinarnento fisico dei record irnplica che tutti i re»
d —— allora esso e detto chiave di erdin
sistenza di un valore univoce in ogni recor chiave di ordinarnento cord che soddisfane la condizione siane contigui nel file. Per esempio. relativamente alla Fi-
con NOME come campo
file. In Figure 5.9 e mostrato un file or 'nato gura.5.9, se i1 criterio di ricerca e (NDME < ‘G') — dove < significa ag‘aben‘comnre preceden-
re —r record che soddisfane i1 criterio di ricerca sone quelli che vanno dall’inizio del file fine
no nomi distin ti).
(supponendo che gli impiegati abbia non ordinati. 1n prime
ntano alcuni vantaggi sui file di record
1 file di record erdinati prese 31 prime record che he an valere NOME che cemincia con la lettera G.
arnento diventa
l’ordine dei valori della chiave di ordin L'ordinamento non femisce alcun vantaggio per un accesso casuale ed ordinate ai record
luogo, la lettura dei record secondo di riordi name nto. In secondo
e richicsta alcuna azione basato em valori degli altri campi non d‘i ordinamento del file. in questi casi per l'accesso ca—
estremamente efficiente, pcrché non l’erd ine della chiav e di ordina-
quello corrente, seco nde
luoge. tIovare i1 record successive a d successive e nello suale s1 fa una ricerca lineare. Per accedcre ai record in un ordine basato su un campo non di
untivi ai blocclii, perché i1 recor ordinamento e necessario creare un’alIIa cepia ordinate — in ordine diverse - del file.
mento, di solito non richicde accessi aggi o del blocco).
che i1 record cerrente non sia l’ultim
o
stesso blocco di quello corrente (a mem di ordinance- - Per on file ordinate I‘inserimento e la cancellazione di record sono operazioni dispendie-
di una cond izion e di ricerc a basata sul valore di un campo chiave - se perché i record devono rimanere fisicarnente ordinati. Per inserire un record si deve trova-
Infine. l’uso di ricerc a binaria, che
e quande viene usata la tecnica re la sua posrzione corretta nel file. basandosi sul valore del sue campo di ordinamento. e quin—
to he come risultato un accesso pin veloc anche se non e usata spess o per i fi-
alle ricerche linea ri,
costiruisce un miglioramento rispette di far spam) no! file per inscrire il record in quella posizione. Per no file di grosse dimensio-
le su disco. d. Si n1 cro pub essere molto dispendiose in termini di tempo perché, in media, mete dei record del
essere fatta sul biocchi anziché sui recor
Una ricerca binaria per file su disco puo che i reco rd siano ordin ati per valore file devono essere spostati per fare spazio al nuovo record. Cio significa che meta dei blocchi
numerati 1. 2, ..., b,
supponga che i1 file abbia b blocchi i1 cui valore del file devono essere letti e riscritti dope che i record vengono spostati fra di lore. Per 1a can-
amento e che si stia cercando on record
crescente dei lore campo chiave di ordin gli indir izzi su disco dei blocchi del celianone di Hun record ii problem e meno grave se vengone usati gli indicator-i di cancella-
K. Supponendo che
di campe chiave di ordinamento sia ritta tramite l‘Al- zmne e una nerganizzazione periodica.
la ricerca binaria poo essere desc
file siano disponibili nell’headcr del file, d sia trovato o Un‘opziene per rendere pin efficiente l‘inserimento consiste nel tenere in ogni blocco un
ria di solito accede a logztlb} blocchi, che i1 recor certo spazio inutilizzato per nuovi record. Comunque. una volta che questo spazio at state uti-
goritmo 5.1. Una ricerca bina , in medi a, si acce de a (la/2) bloc-
che linea rl, dove
meno - un rnigliorarnento rispetto alle ricer trova to. lizzate, 11 problema si ripresenta. Un altro metedo frequentemente usato consiste nel creare on
hi quando i1 record non viene
chi quande il record vieue trovato e a b blocc file non ordinate temperance detto file di overflow (nabocco) 0 di transazione. Con questa
tecnrca i1 file ordinate vero e proprio e detto file principale 0 file master. I nuovi record ven-
file so disco. gono inseriti alla fine del file di overflow anziché nella loro posizione corretta nel file princi-
e su una chlave d1 ordinemento di on
ALGORITMO 5.1 Fllcerca blnarla baset pale. Periodicamente. durante la riorganizzazione del file, 11 file di overflow viene ordinate
e
di bloechi del file*] qumdi fuse con il file master. diviene motto efliciente, tea at cesto di una com—
1 e— 1; u o— b; (*b e il nunere L’inserimen to
while [u 2 1) do nlessna aggiuntiva nell’algoritmo di ricerca. 11 file di overflow deve essere ispezionato man-
begin 1 ev {l + u} div 2; do one ncerca lineare se. dope la ricerca binaria, i1 record non 1: state trovato nel file princi-
file nel buffer; pale. Per applicazieni che non richiedono le informazioni pie recenti, nel corso di una ricerca
tresferisci il blocco 1 del
’-1 record di overflow possone essere ignored.
La modifica del valere del campo di un record dipende da due fartori: la condizione di ri-
___‘_,_._.._...———-— erca per localizzare il record e il campo che deve essere modificato. Se la condizione di ri~
per riferirsi a file non erdinsti.
“1 La lecuzionefiie requenzr'eie 9 slate anche usata
142 Capitolo 5 Memorizzazione del record 9 organlzzazlonl primarie dei file 143

NOME SSN DATA_NASCITA LAVOHO STIPENDIO SESSO ccrca coinvolge il campolchiave di ordinamento. allora si poo localizzare i1 record usarldo um
i ] ncerca binana. almmenti occorre efi’etruare una ricerca lineare. Un compo non di ordmamen—
b'o‘m“ mm Ed l i to put) essere modificato cambiando i] record e riscrivendolo nella stessa locazione fisica su
Abhc‘fi' Diane = disco — supponendo di avere record a lunghezza fissa. La modifica del compo di ordinamento
l l. I 1 1 implioa che il record possa cambiame la sua posizione nel file, i1 che richiederebbc la cancel-
Acosta. M3“: lazione del record vecchio seguita dall’inscrimento del record modificato.
l I l :l Leggere i record dc] file secondo l‘ordine del campo di ordinamento e abbastanza effi—
bmcc°2 Adams-“h" 1 ciente se si trascurano i record in overflow, dal momento che i blocchi possono essere letti
Adams’ Robin 1 1: consecutivamente usando 1a doppia bufferizzazione. Per includere i record in overflow, biso-
1 l' 1 I 1 gna inserirli nelle loro posizioni corrette; in questo caso si poo dapprima riorganjzzare i1 file,
AWS'Ja" e poi leggere i suoi blocchi sequenzialmente. Per fiorganizzare il file, prima di totto si ordi—
nano i record nel file di overflow, e poi 1i si fonda con il file master. Durante 1a riorgaru'zza-
blmc" 3 Nemde" Ed zione i record segnati per la cancellazione vengono rimossi.
ME“ 30b g A I file ordinati sono usati raramente nellc applicazioni di basi di dati se non e usato un cam~
l 1' l I J mine di accesso aggiuntivo, detto indice primario; cio ha come risultato on file indicizzato-
“197" Sam sequenziale. Questo migliora ulteriorm‘eme i1 tempo di accesso casuale sul campo chiave di
blown 4 Men Troy 1 1 ordinamento (per one trattazione dettagliata degli indici si veda i1 Capitolo 6}.
Anders, 1(9t 1 . !

Anderson. Rob 1 1 l
5.9 Tecniche hash
b'locco 5 ITndemon, Zach 1
Angeli..Joa 1 Un altro tipo di orgardzzazione primaria di file e basato sull’hash, che fornisce un accesso
1 1: molto rapido ai record sotto certe condizioni di ricerca. Questa organizzazione e detta di soli-
Archen Sue to file hash.” La condizione di ricerca deve cssere una condizione di uguaglianza so on cam-
po singolo, detto compo hash del file. Di solito i1 campo hash e anche un campo chiave del
blocco 6 Mock file; in questo caso e detto chiave hash. L‘idea che sta dietro l’hash e quella di fomire una fun-
Steven zione h, detta funzlone hash o funzione di randomizzazione, che é applicata a] valore del
campo hash di no record e fomisce I’indin'zzo del blocco di disco in cui e memorizzato i1 re—
cord. Una ricerca del record all’intemo dc] blocco poo essere effettuata in on buffer in me-
morize centrale. Perla maggior pane dei record si ha bisogno solo di un accesso a un singolo
blocco per rccuperare one] record.
L‘hash e :13a anche come one struttura di ricerca interna in on progrannna, ognj volta che
a un gruppo di record si accede esclusivamente usando i1 valore di un campe.
brocco n - 1

5.9.1 Hash interno


blocco n aht. Pam E g Per file interni, l’hash e tipioarnente implementato con una tabella hash oostruita usando u' '-
Wyatt, Chafle‘fi _ vettorc di record. Si supponga che i1 campo di valori possibili per I‘indice del vettore vada

Zimmer. Byron ! I I I I

IflPIEGATO, con HOME come campo


Figure 5.9 Alcunl bloc-chi di on file ordinate (sequenziale) di record
chiave di ordlnamento. “ Urn file hash E state anche dcuofile dr'rezm.

, . Tm m- .i . _..,. .. _,....__
L-
Memorizzazione doi record a organizzazloni primarie dei file 145
144 Capitolo 5

colare l'indirjzzo hash puo essere usato I’Algoritmo 5.2(a). Si suppone che 1a funzione codi-
(a) NOME SSN LAVORD STlF‘ENDIO ce restituisca i1 codice numerico di un caratiere e che venga dam on valore K di campo hash
cam—IO
di tipo K: arrayf 1.20] ofchar (in PASCAL) o char KIZO] (in C}.

ALGORITMO 5.2 Due sampllcl algoritmi hash. is) Applicazlone deila funzione mod hash a una stringa
dl carafleri K. (b) Rlsoluzlone delle col1fsionr tramlte I’indfnzzamento aporto.

(a) TEMP «— 1;
for .i <— 1 to 23 do TEMP <— TEMP * CODICE (K[i]] mod M;
INDIRIZZILHASH «— TEMP mod M;
(b) i e INDIRIZZCLHASHM); a <— i;
M ~2
if la locazione 1'. e occupata
M —1
then begin 1‘. <— (i + 1] mod M;
while (i a: a) and la locazione i e occupata
puntatore dl' overflow dci<—(i +1) modM;
[5) camp] dati
if (i = a) then tutte le posizinni scan plane
' o
1 else NUOVO_INDIRIZZO_HASH +- 1';
end;
2
spazio
3 indirizz't Possono essere usate anche altre funzioni hash.l2 Una tecnica, detta folding (to fold: pie-
4
gare), prevedc di applicare una funzione aritmetica come i‘addizione o ana funzione logica
come l’or esclusivo 3 133.111 diverse del valore del campo hash per calcolare l’indirizzo hash.
M-2 Ua’altra tecnica prevede Ia raccolta ch' alcune cifre del Valera deI campo hash — ad esempio 1a
[01-1 terza, la quinta e I’ottava cifra — per fonnare l‘indirizzo hash. H problema con la maggior par-
M te deIIe funzioni hash e che esse non garantiscono che vaiori distinti saranno trasformati in in-
M+1 dirizzi distinti, pcrché lo spazio del compo hash - il numero di valori possibfii che an cam-
”1+2
spazlodi po hash pub assumere — e di solito molto pin grande delio spazio indirizzi — il numero di in-
' overflow dirizzi disponibiii per i record. La funzione hash mappa 1o spazio del campo hash ncllo spa-
M+0—2 If I L zio indirizzi.
M+0—1 F ! Una collisione si verifica quando i1 valore del campo hash di on record che sta per essere
inserito e trasforrnato da una funzione hash in un indirizzo che conticne gia on record diver-
- Pumatore nuilo = —1. so. In questa situazione occorre inserire i1 nuovo record in un’alu-a posizione, dal momenta
successive naila llsta concatenata.
- Il puniatore d‘l overflow indirlzza aha poeizione del record che ii suo indirizzo hash e occupato. 11 processo di ricerca di un’altra posizione e detto riso-
Figura 5.10 Siruttura daii per Phash interno. [a] Vettore di M posizionl
usato noil‘haah Interno. (b) Hisoiw luzione delle collisioni. Ci sono molti metodi per la risoluzione deile collisioni, fra cui quel—
zlona done collision! tramite concatenazlone d1 record. lj qui di segaito ricordati.
o Indirx'zzamenro aperto: procedendo dalla posizione occupata specificata dall‘indjrizzo ha-
sh, i1 programma verifica in ordine Ie posizioni successive fino a che non si trova una po—
indirizzi cordspondono agli sizionc inutih'zzata (wow). L‘Algoritmo 5.2(h) pub essere usato aflo scope.
0 M4 1 (Figura 5.103); si ha pertanto M slot (slot: fessura) 1 Chi
a i1 valore del carapo ha- Concarenamento: per questo metodo 5i tengono varie locazioni di owrflow, di soljto esten-
-
indici del vettore. Si scegliera allora una funzione hash che trasform o
sh in an intero compreso tn: 0 e M — 1. Una funzione hash comune e la funzione MK) = K dendo il venore con un certo numero di posizioni di overflow. Inoltre a ogm' locazione di
mad M, che fonfisce i1 resto di un valore intern di campo hash X (10130 1a divisions per M; que- record viene aggiunto un campo puntatore. Una collisione viene risolta ponendo il nuovo
sto valore viene quindi usato per l’indirizzo del record. record in una locazione di overflow inutilizzata e imponendo i1 valore dell’indirizzo di ra- :
pfima che verb
Valori non inter-i dei campo hash possono essere trasforrnati in valori interi
essere usati nella trasforma—
ga applicata la funzione mod. Per stringhe di caratteri possono
ando fra loro que-
zionei codici numerici (ASCII) associati ai caratteri -— ad esempio. moldplic '3 Una trauazione dettagliaua dell: funrjoni hash esuIa dagli scopi di quests: presentazione.
caratteri, per cal~
stj valor-i di codice. Per on campo hash ii cui n'po di dad a una stringa di 20
146 Capltelo 5 Memerlzzaziene dei record a organizzazloni prlmarle dei file “l4 7

le lecaziene a] puntatere presente nella lecaziene di indirizze hash oecupata. Si mantiene serum dei quali contiene piil record. Un bucket e on blocco di disco o no cluster di blocchi
mestrato
percie una lista concatenate di record di overflow per egni indirizze hash, come centigui. La funzione hash mappa una chiave in un numcro relative per il bucket. piuttosto di
in Figura 5.10(b]. assegnare a1 bucket un indirizze di blecco assoluto. Una tabella contenuta nell'header del file
ri-
c Hash multiple: ii programme applica una secenda funzienc hash se la prima ha come convene i] numere del bucket nel com‘spondente indjrizzo di blocco di disco, come illustrate
una celiisiene. Se ne risulta un’aitra collisione, i1 programme usa i‘indirizzam ente in Figura 5.11.
sultate
aperte o applica una terza funzione hash e poi, se necessario, usa l‘indirizzamento
aperto. Con i bucket i] problema delle collisioni e meno grave perché possono essere inviati nelle
stesso bucket senza causare problerni tanti record quanti ce ne stanne. Pere occorre anche
Ogni metede di riseluziene delle collisieni richiede i1 preprio algeritme per l‘inserimen- prevvedere al case in cui un bucket sia riempito fine a] iimite e un nuovo record che sta per
to, i1 recupero e la cancellazionc di record. Gli algeritmi per il cencatenamento some i piu sem- essere insen'te venga inviato dalla funziene bash in quel bucket. E possibile usare una varia-
complicati. 1 li-
plici; gli algeritrni di cancellaziene per l'indjrizzamento aperte sono piuttesto zione del concatenarnento in cui in ogni bucket si mantiene un puntatere a una lista concate-
algorilrni di hash intemo in maggior dettaglio.
bri di teste suite strumrre dati esaminano gli nate di record di overflow per il bucket. come mostrato in Figura 5.12. I puntaton' nella lista
di una buena funzione hash e quello di disuibuire i record uniformem ente sulle
Le scope concatenate dovrebbere cssere puntateri a record, che comprendone sia 1m indjrizzo di bloc-
inuti-
spazio di indirizzi. in mode da minimizzare 1e coltisieni scnza lasciare recite iocaaioni co 5121 one pesizione relative del record nel blecco.
una ta-
lizzate. Studi di simulazione e di analisi hanne mostrato che di selito e meglie tenere L’hash fernisce i1 pie rapido accesso possibile per il recupero di un record arbitrarie date
rimane bas-
bella hash piena tra i1 70 e '11 90 per cento; in queste mode i1 numero di cellisioni ii valere del 3130 compo hash. Anche se la magg-ier pane delle buene funzioni hash con man-
da Ine—
so e nel centempe non si spreca treppe spazie. Percib se si prevcde di avere r record tengono i record neli’erdine fissato dai valeri del campo chiave, ci sono alcune funzioni — det-
morizzare nella tabella, si dovranne scegliere M locazioni per lo spazie di indirizzi in mode te order preserving (chc preservano l’erdine) — che le fanne. Un sempfioe esernpie di fun-
prime
tale che (rlM) sia cempreso tra 0.7 e 0,9. Pub essere anche stile scegliere un numere ziene hash order preserving e form‘te dalla funziene hash che prende come indirizze hash 1e
state dimestrato che cie distribuisce meglio gh' indirizzi hash sullo
per M, dal memento che e lre cifre pin a sinistra di un campe numero di fattura, e che tiene in ogni bucket i record ordi-
in-
spazio di indirizzi quando viene usata la funzionc med hash. Altre funnieni hash pessene nati secende i1 numero di fattura.
vece richicdere che M sia una petenza di 2.

bucket
5.9.2 Hash esterno per file so disco princlpall
bucket O

L'hash per file so disco e dette bash esterno. Per adattarsi alle caratteristiche della memoriz-
canestro), cia-
zazione su disco. le spazie indirizzi obiettive e fatto di bucket (bucket: secchie, bucket
dl overflow
_ null

321 931 puntatorc al record


bucket 1
puntatore 9! record 7 “U1E
T51
132 puntatore a] record
Indlriao 91
numere diblocco Ipuntatore al record ' D
di bucket so disco
0 bucket 2 22 : 652 puntatore a] record 1
1
F2 puntatore at record 7 null
2
puntators a] record
522
qntatore al record
. {i puntatorl puntano al record
. present! not bloccl'll dlevcrflew)

bucket 9 399
39
M—2
M-‘l a] record
null

Fl are 5.11 Accopplamento tra numeri di bucket e lndlrlzzl ell blocchi di disco. : Figure 5.12_ Gestlene tramlte cencatenamento dell'mrerllow del bucket
-....Lna,..- W—‘—" ' - ' ‘ ah"...— r_,__,_ __,- 3......)
' ; It? .9.- '*---.;2 -:-- ‘ ' ”I .
file 149
Memorizzazlone dei record e organlzzazioni primarie dei
1-48 Capitolo 5

del campo di ricerca stesso.


l'iudicizmzione, invece, la struttura d’accesso e basata sui valori
hash intera direttamente come indice per o addizionali.
U11 altro esempio consiste nell’usare una chiave La seconda tecnica, detta hash lineare, non richiede strutture d’access
tmo un particolare intervallo; ad esernpio, icazione di una fun—
un file relative, se i valori della chiave hash dempi fino a1 nut-hero to- Questi schemi hash taggono profitto dal fatto che i1 risultato dell’appl
assegn ati come 1, 2, 3, on numero bina-
se i numeri di impiegato in un‘azienda vengorto e. Purtroppo cib zione hash e un intero non negative, e percio pub essere rapprese ntato come
la funzione hash identit h che mantie ne l‘ordirt ntazione binaria del risultato della fun-
tale di impiegati, si pub usare rio. La struttura d’accesso e costruita sulla rapprese
da una certa applica zione. hash di on record.
funziona solo se le chiavi sono generate in ordine fisso M di zione hash, che a una stringa 61' bit. Tale rapprese ntazione sale detta valore
allocato on numero
Lo schema hash descritto e detto hash statico perché viene I record souo distribuiti fra i bucket sulla base dei valori dei bit inizr'ali
(leading bits) presen-
per file dirtamici. Si supponga di aliocare M
bucket. Cib pub costituire un serio inconveniente ti nei loro valor-i hash.
o di record che possono trovar po-
bucket per lo spazio di indirizzi, e sia m i1 numer massim
o
allocat o u'overa nno posto a1 piu (m a: M) record. Se suc- y (e1enco)— un vet-
sit) in un bucket; percib nello spazio Hash estendibile. Nell’hash estendibile si mantiene una specie di director
di (m r M), rimane molto spazio inuti— della directory.
cede che il numero di record e notevolmente minore tore di 2" indirizzi di bucket, dove d e detta profond ito glohaIe (global depth)
aurnea ta fine a molto piu di (m an M), si verifiche- valore hash e usato co-
lizzato. D’altro lato, se il numero di record ]] valore intern corrispondente ai primi d bit (i pit) significativi) di un
ato a causa delle lunghe liste di record dl over- , e 1’ indirizzo in corri-
ranno molte collisioni e il recupero sara rallent me urt indice per il vettore per determinate un elemento della directory
situazione di dover cambiare il numero di i record corrispon-
flow. In entrambi i casi ci si potrebbe trovare nella spondenza a quell’ele mento determin e il bucket in cui sono memoriz zati
una nuova funzio nc hash (basata sul nuovo valore di M) per distinto per ciascuna delle 2" loca-
blocchi allocati M e quindi usare denti. Perb non ci deve necessariamente essere un bucket
o essere piuttosto dispendiose in termini loro valo—
ridistribuire i record. Queste riorganizzazioni posson zioni della directory. Molte locazion i della directory con gli stessi d’ primi bit peri
Organ izzazio rti piu recenti per file dinamjci basate sul-
di tempo per file di grandi dimensioni.
dinamicamente, limitandosi a una riorganiz—
l’hash consentono a1 numero di bucket di variare
zazione localizzata [si veda oltre). BUC—KET DEL FILE DI DATI
, date il valore cli urt certo campo di-
Quando si usa l‘hash esterno, la ricerca di on record piniondlltlocaie
nel caso di no file non ordinato. La cancel- dagwlbudrat
verso dal campo hash, b tanto dispendiosa quanto
rimuo vendo il record del suo bucket. Se il bucket
lazione di record pub essere implementata bucket per I record
dei record di overflow nel bucket per sostitui» leul vslorl hash
ha una catena di overflow, si pub spostare uno eomlnclsno can 000
cancellato e gie in overflow, semplicemente
re ii record cancellato. Se il record che deve essere
tenate. Si noti che la rimozione di on record in overflow impli-
lo si rimuove dalla lista conca
ow vuote. Cib pub essere fatto facilmeute
ca di dover tener traccia delle posizioni di overfl
bucket per I record
ictrl vstarl hash
oni di overfl ow inutilizzate.
mantenendo una lista concatenate di locazi cornlnclano can 001
e da due fattori: la condizione di ri-
La modifica del valore di campo di un record dipend
essere modificato. Se la condizione di ri— DIRECTORY
cerca per localizzare il record e il campo che deve
sul comp o hash, e possib ile localizzare il record efficien- bucket per I record
cerca e un confronto di uguaglianza lcul valor-I hash
re fare una ricerca lineare. U11 carnpo non cominciam con 01
temente usando la funzione hash, altrimenti occor
e riscriv endolo nello stesso bucket. La modi-
hash pub essere modificato cambiando i1 record altro bucket, il che richiede la
spostarsi in un
fica del compo hash implica che il record possa
e del record vecch io seguit a dall'in serim ento del record modificato. bucket per I record
cancellazion i cui valori hash
cornlnclano can 10

protondlta
ghbale
spansione da3
5.9.3 Tecniche hash che consentono un’e bucketperl record _ '
I oul velnrl hash
dinamica dei file caminolano cnn110

zi ha-
station esaminato finora e che lo spazio indiriz
Un grave inconveniente dello schema hash nte. Gli schemi deser itti in
e ii file dinam icame
sh e fisso, e quindi e difficile espandere o ridurr schema— hash estendi—
situazione. ll primo
questo paragrafo tentano di pone rimedio a questa
struttu ra d‘acce sso insier ne a] file, e percib e per certi versi simile al-
bile — memorizza una
nza principale e che la strutmra d’accesso e
l’indicizzazione (si Veda i1 Capitolo 6). La differe Figure 5.13 Struttura dello schema per hash eetendibile.
e della fitnzione hash al campo di ricerea Nel—
basata sui valori che risultauo dopo l‘ applicazion
Memorizzazione dei record e organizzaztoni primarie dei file 151
150 Capitolo 5

supponga che 11 file abbia inizialmente M bucket numerati 0, 1, ..., M — 1 e usi la funzione Imod
ti hash possono contenere lo stesso indirizzo di bucket, se tutti i record che vengono inviati hash MK) = K mod M; questa funzione hash e detta funzione hash iniziule h,. L‘ overflow a se-
dalla funzione hash in queste locazioni trovano pesto in un bucket siugolo. Una profondita guito di collisioni e ancora uecessario e pub essere gestito mantenendo siugole cater-1e di over-
locale (local depth) d'— memorizzata con ogni bucket — specifica il numero di bit su cui 1‘: ba— flow per ogni bucket. Peri). quando una collisione porta a no record di overflow in ogni bucket
sato i1 contenuto del bucket. 1n Figura 5.13 viene mostrata uua directory con profondita glo- del file. il prime bucket nel file — bucket 0 —- viene sdoppiato in due bucket: i1 bucket origina-
baJe d = 3. rio 0 e un nuovo bucket M alla fine del file. Irecord originariamente nel bucket 0 5.0110 distri~
I] valore di (I put: essere incrementato o decrementato di un‘unita alla volta, raddoppiando buiti tra i due bucket suila base di una diverse funziorte hash h,,.(K) = K mod 2M. Una pro-
o dimezzando cos'i i1 numero di elementi nel vettore directory. ll raddoppiamcuto e necessa- prieta fundamentals delle due funzioni hash h,- e h“. e che ogni record che era inviato a1 bucket
rio se un bucket, la cui profondita locale d’ e uguale alla profoudita globale d, vain overflow. D sulla base di h, sara inviato o 31 bucket 0 o 31 bucket M sulla base di 11,-“; Cid e necessario
Ii dimezzarnento si verifica se a' > d“ per tutti i bucket dopo che si verifica qualche cancella- perché l’ hash lineare funzioni.
zionc. La maggior parte dei recuperi di record richiede due accessi ai blocchi, uuo alla direc- Quaudo ulteriori coliisioni portano a record di overflow. vengono sdoppiati altri bucket
tory e 1'altro a1 bucket. nell'ordiue linear-e 1, 2, 3, Se si verificano abbastanza overflow, saranno stati sdoppiati tut-
Per illustrare lo sdoppiarnento dci bucket. si supponga che l’inserimento di un nuovo re- ti i bucket originari del file, 0, 1, 2, ..., M — 1, cosicché ora ii file avra 2M bucket anziché M,
cord causi overflow nel bucket i cui valori hash comiuciano con 01— 11 terzo bucket in Figure. e tutti i bucket userauno la stessa funzione hash hm. Percio i record in overflow sono alla fi-
5.13. I record sararuio distribuiti Ira due bucket: i1 primo contiene tutti i record i cui valori ha- ne ridistribuiti in bucket regolari. usartdo 1a funzione hi1, attraverso uno sdoppiamento dificeri-
sh cominciano con 010, il secondc tutti quelli i cui valori hash cominciano con 01]. Ora 1e to dei loro bucket. Non c'e alcuna directory; e necessario solo un valore n — inizialmeute po-
due locazioni della directory per 010 e 011 puntano ai due nuovi bucket distinti. Prima dello sto a t} e incrementato di 1 ogui volta che si verifica uno sdoppiaruento — per determiuare qua-
sdoppiamento esse puntavano alio stesso bucket. La profondita locale d’ dei due nuovi bucket li bucket sono stati sdoppiati. Per recuperate on record con valore di chiave hash K, dappriiua
e 3, che e di un‘unita superiore alla profondita locale del bucket vecchio. si applica la funzione h, a K; se h,(K) < n, allora si applies la funzione 11,-,] a K perché il bucket
Se un bucket che va in overflow e deve essere sdoppiato aveva originariamente una profon- e gilt stato sdoppiato. Inizialmeute e 11 = 0, a indicare che la funzione h, si applica a tutti i
dita locale d’ uguale 311a profondita globale d della directory, allora la dimensione della di- bucket; rt cresce linearmente quaudo i' bucket vengono sdoppiati.
rectory dcve esseie raddoppiata; cosi si pub usare un bit aggiuntivo per distinguere fra loro 1 Quando n = M dope essere state incrementato, cio significa che tutti i bucket originari so-
due nuovi bucket. Ad esempio, se, con riferimento alla Figura 5.13, 11 bucket peri record icui no stati sdoppiati e la funzione hash hm si applica a tutti i record nel file. A questo punto, n e
valori hash cominciano con 111 va in overflow, allora 1 due nuovi bucket hauno bisogno di riportato a 9 (zero), e ogni nuova collisione che causa overflow porta all'uso di una nuova fun—
una directory con profondita globale d = 4, perché 1 due bucket sono ora etichettati 1110 e zione hash 11mm) = K mod 4M. In generate 51 use una sequenza di funzioni hash h,,,-(K) = K
1111, e percio 1e loro profondita locali sono entrarnbe pari a 4. La dirnensione della directory mod (21M). dove j = D, I, 2, ...; e necessaria una nuova funzione hash hm.“ ogni volta che tut-
e percio raddop'piata, e anche ognuna dellc altre locaziorti originali uella directory «3 suddivi- ti 1 bucket 0, I, ..., (241M) — 1 some stati sdoppiati e n e riportato a 0. La ricerca di on record
sa in due locazioni, ciascuua delle quali ha lo stesso valore di puntatore della locazionc origi- con valore della chiave hash K e eseguita dall'Algoritmo 5.3.
nale. Lo sdoppiarnento pub essere controllato tramite la verifica del fattore di caricaniento del
11 principale vantaggio deil’hash estendibile, quello che lo rende attraente, e che le presta- file, senza doverlo cosi controllare ogni volta che si presents no overflow. In generale, it fat-
zioni del file non degradano man mano che 11 file cresce di dimensione. a1 contrado di quan- tore di caricamento del file (file load factor) 1 put: essere definito come I = efi- rk N), do-
to avviene con l’hash estemo statico, in cui le collisioni aumentano e i] corrispondente con- ve r e il numero corrente di record del file, bfr e il numero massimo di record che possono tro-
catenamento cause accessi aggiuntivi Inoltre nell‘hash esteudibile non viene allocato nessu- var posto in un bucket e N e il numero corrente di bucket del file. Ibucket che sono stati sdop-
no Spazio per una crescita futura, ma bucket aggiuntivi possono essere allocati dinamicamen- piati possono anche essere riuniti se il caricamento del file scende sotto una certs soglia. I
te quando necessario. Lo spazio in piu per la tabella di directory e trascurabile. La dimensio- bloccbi sono uniti linear-meme e N e appropriatamente decremeutato. 1.1 caricatnento del file-
ne massima della directory e 2“, clove k e il numero di bit nel valore hash. Un altro vantaggio puo essere usato per innescare sia 311 sdoppiamenti sia 1e unioni; in questo modo i1 caricaa '
e che lo sdoppiamento causa in molti casi una minute riorganizzaaione, dal memento che so— mentc del file puo essere tenuto entro un campo desiderato. Gli sdoppiameuti possono esa '
10'1 record in nu bucket vengouo ridistribuiti sui due nuovi bucket. L‘ utuca occasione in cui provocati quando i1 caricamento supera uoa certa soglia — diciamo, 0,9 — e 1e unioni pesso
una riorganizzazione e piu dispendiosa si presents quando la directory deve essere raddoppia— essere innescate quando i1 caricameuto scende sotto un’altra soglia — diciamo, 0,7. '
ta (o dimezzata). Uno svantaggio e che la directory deve essere ispezionata prima di accedere
ai bucket veri e propri, il che ha come risultato due accessi ai 1110c anziché uno solo, com'e
invece nell‘hash statico. Questa penalizzazione nelle prestazioui e considerate di minore im- ALGORITMO 5.3 La procedure dl ricerca per l'haah lineare.
portauza e percio lo schema e giudicato piuttosto indicate per file dinaruici. if n = 0
then m <— hdut} [*m e il valore hash del record con chi.
Hash lineare. L’idea alla base dell’hnsh lineare e quella di consentire a on file hash di espan- else begin
dere c ridurre dinamicamente il suo numero di bucket senza aver bisogno di una directory. Si
.1 —_ - _::_ fi — — — —
W4 e__-__-.-m'i M w
5 "- —- 1- H'— ——- '-—:. --—
- .
.._....h.. L.__._ L_,. - t
._____,__- . -

Capitolo 5 Memorizzaziene dei record a organizzazieni primarle dei file 153


152

Per disfinguere i record in un file miste egni record ha — clue ai suoi valor-i di campe — un
m <— MK):
if m < n then m +- hMEKJ campe tipo di record, che ne specifica il tipo. Queste e di solito il prime campo in egni re—
end; cord ed e usato dal software di sisterna per determinare i1 tipo di record che sta per elaborate.
ricerca i1 bucket i1 cui valere hash e m {e 11 sue overflow. so Usando 1e informaziorfi di cataloge i1 DBMS pue determiner-e i campi di duel tipo di record e
esiste); 1e lore dimensioni, per peter cosi interpretare i valori dei dati nel record.

5.10.2 Alberi B e altre strutture dati


5.10 Altre organizzazioni primarie dei file
Per 1e organizzazioni primarie dei file possone essere usate anche altre strutture dati. Ad esem-
pie, se in on file sono piccoli sia 1a dimensiene dei record sia i1 numere di record, alcuni
5.10.1 File di record misti DBMS ofi'rono l’epzione di una struttura dati albero B come organizzazione primer-la del file
[si veda i1 Sottoparagrafo 6.3.1, in cui viene studiato l’uso di tale strustura per l’indicizzazio-
Le organizzazioni dei file studiate finora presumono che tutti i record di uno specifice file
fec- me). In generale ogni struttura dafi che pessa essere adattata alie caratteristiche dei dispositivi
ciano parte delle stesso tipo di record. Irecord possono essere di tipo IMPIEGATO, PROGETTO, a dice puo essere usata corne erganizzaziene primaria dei file per la collecazione dei record
STUDENTE o DI PARTIMENTO, ma ogni file contiene record di un solo tipo. Nella maggier per- su sce.
entitit
te delle applicazioni di basi di dati si incontrano situazieni nelle quali numerosi tipi di
sono cellegati in modi diversi. come viste nel Capitelo 3. Le asseciazion i tra i record presen-
ti nei vari file possono essere rappresentate da cempi dl connessione.‘3 Ad esempie, un record
STUDENTE pub avere on campo di counessione DIP_SPEGIALIZZAZIONE il cui valore form'sce Sommario
i1 nome del DIPARTIMENTO in cui lo studente si sta specializzando. Questo carnpo DIP_SPE -
CIALIZZAZIDNE rimana‘a a un‘ entire DIPARTIMENTO. che devrebbe essere rappresentata da on
record per conto sue nel file DIPAFITIMENTO. Se si desidera recuperate i valor-i di campo da 'Abbiamo cominciate questo capitelo esaminando le caratteristiche delle gerarcliie di meme- 4
due record collegati, si deve prima recuperare uno dei record. Quindi si pee usare il valere del ria e quindi ci siamo concentrati sui dispesitivi di memeria secendaria. In particolare abbia-
sue campo di cennessione per recuperate i1 record collegato nell’alu'o file. Percie 1e associa- me focalizzato la nestra attenziene sui dischi magnetici. perché essi sono usati di solito per
zioni sono implementate tramite riferimenti logici di campe tra i record presenti in file di- - memorizzare file in linea deHa base di dati. Abbiarno passato in rassegna i recenti pregressi
stinti. nella tecnelegia dei dischi rappresentafi dalla tecnologia RAD) (Redundant Arrays of Inex-
Le erganizzazioni dei file nei DBMS a oggetti, come d’allra pane nei sisterni legacy qua- pensive [Independent] Disks: vettori ridendanfi di dischi economici [indipendenti]).
as-
li i DBMS gerarchice e reticolare, spesso implementane 1e associazieni tra i record come I dati su disco sono memorizzati in blocchi; l’accesso a un blocco di disco e dispendiese
flsiche. realizzate u'amite contiguité fisica (o ciustering) dei record cellegati o tra- - a cause del tempo di pesizienamente, ritardo di rotazione e tempo di trasferimente di blocco.
sociazioni
mite puntateri fisici. Queste organizzazioni di file assegnano tipicamente un‘ area del disco i Quande si accede a blocchi di disco consecufivi si pue usare 1a doppia bufferizzazione. per ri-
per gestire record di pie di un tipo, cesicché record di tipi diversi possono essere raggruppa- urre i1 tempo medic di accesso a un blocco. Altri parametri di disco sone esaminati nell’Ap-
ti fisicamente su disco. Se ci si aspetta che ena specifica asseciazione venga usata molte fre- endice B. Abbiamo presentato modi diversi di memerizzaziene dei record di on file su disco.
quentemente, i’implementaziene fisica dell’asseciazione pue aurnentare l‘efficienza del siste- : I record di on file sono raggruppati in blecchi di disco e pessene essere di lunghezza fissa e
ma nel recupero di record collegati. Ad esernpie, se e moito frequente l’interrogaziene per re- afiabile, spanned o unspannerl, e dello stesso tipo di record 0 di tipi diversi. Abbiame studiate
cuperate on record DIPARTIMENTO e tutti i record per ogni. STUDENTE che si specializza in quel ‘header dei file, che descrive i formati dei record e tiene traccia degli indirizzi di disco dei
dipartirnente. sarebbe desiderabile cellecare ogni record DIPAHTIMENTO e il relative gruppe sblecchi dei file. Le infennazieni centenute neII’header dei file sono usate dal software di si-
-
di record STuDENTE in mode contiguo su disco in no file misto. ll concette di raggnlppa terna che accede ai record dei file.
memo flsico di tipi oggette e usate nei DBMS a oggetti per tenere insieme oggetti cellegati Abbiamo quindi presentato un insierne di tipici cemandi per accedere ai singoli record di
in no file misto. 11 file ed esaminato i1 cencette di record cerrente di rm file. Si .3 poi studiato come condizio-
ni di ricerca di record complesse Vengano trasfermate in condizioni di ricerca semplici usate
er Iocalizzare i reeord nel file.
nei modelli Abbiamo poi analizzato tre organizzazioni primarie di file: non ordinate, ordinata e hash.
1’ ll coneetto di chiave ester-nu ne] medulla relationale (5i veda ii Capitolo 7) ei riferimenti tra oggctti
file non ordinati richiedono una rioerca lineare per lecalizzarei record, ma l‘inserirnente dei
a oggetti sono esempi di cainpi di connessiene.
154 Capitoio 5 Memorizzazione dei record e organlzzazioni primarie def file 1'55

zione e l’uso di indicatori


record e molto semplice. E state studiato i1 problema della cancella 5.16. Qual e la differenza tra un’organizzazione all file e on metodo di accesso?
di cancellazione. 5.1T. Qual-e la differenza tra file statici e file dinamici?
ine stabilito dal carn-
Ifile ordinafi riducono i} tempo richiesto per leggerei record nell‘ord 5.18. (2112111 so'no 1e nprche operazioni un-record—alla-volta per accedere a on file? Quali di
anche il tempo richiesto per ricercare un record arbitrario, (12110
po di ordinamento. E ridotto qtieste dipendono dal record corrente di on file?
riceroa hinaria. Pero mantenere i
i] valore del suo campo chiave di ordinamento, se si usa una 5.19. Si esamrnino le tecniche per la cancellazione di record.
molto dispend ioso; percio e state discussa 1a tecnica con-
record in ordine rende l’inserimento 5.20. S: esanumno : vantaggi e gli svantaggi nell’uso di (a) no file non ordinato, (b) on file
vengono periodica—
sistente nell‘usare on file di overflow non ordinato. I record di overflow ordmato e (C) no file Ififiash statico con bucket e concatenazione. Quali operazioni pos—
meme fusi con il file principale durante la riorganiz zazione del file. sono essere eseguite e cientemente su ciascuraa di ueste or anizzazioni e uali ‘ -
io di no file, dato il valore del-
L’hash forniscc un accesso molto veloce a on record arbitrar ce sono dispendiose? Cl g ’ q “we
dell‘hash esterno e fornito
la sua chiave hash. Il metodo pit) appropriate per la realizzazione 5.21. 51 esarmnmo le techiche per consentire a on file hash di espandersi e fidursi dinarnica—
con 11110 0 pin blocchi contigu i che corrispo ndono a ciascun bucket.
dalla tecnica dei bucket, mente. Qualr some 1 vantaggi e gli svantaggi di ciascuna?
cramite il concatenamento. L’ac-
Le collisioni che causano 1’ overflow dei bucket sono gestitc 5.22. girlfosa sono usati i file misti? Quali sono gh' altri tipi di organizzazioni primarie dei
10 e l’access o ordinato ai record so no campo
cesso a qualsiasi campo non hash e lento, come e
che crescono e si riducono di-
qualsiasi. Abbiamo quindi esaminato due tecniche hash per file
ile e l‘hash lineare.
rtamicarnente nel numero di record, vale a dire l’hash estendib
altre possibi lita per le organizzazioni primarie dei
Infine. abbiamo brevemente esarninato
e i file di record misti, che irnplem entano fisicamertte 1e associazioni Esercizi
file, come gli alberi B
zzazion e.
fra record di tipi diversi come pane della struttura di memori
5.23. 81 consideri un disco can is segueuli caratteristiche (non si tratta di parametri di una
specifica unite disco): dimensione del blocco B = 512 byte; dimensione dello spazio tra
blocchl G = 128 byte; numero di blocchi per traccia = 20; numero di tracce per lato =
Questionario di verifica 400. Unlaéplila di dischi é costituita da 15 dischi a doppia faccia.
a. . . . . .
3):; “38:12:35: totale d1 una traccta e quale la sua capac1ta utile (escludendo gli
ria'?
5.1. Qual e la differenza tra memoria principale e memoria seconda
i file in linea di una
5.2. Perché vengono utilizzati i dischi 8 non i nasu'i per memorizzare .
Quanti cilindri ci sono?

GDOU‘
base di dati? .
Quali sono 1a capacita totale e la capacita utile di un cilindro?
, blocco, cilindro, swore.
5.3. Si definiscano i seguenti termini: disco. pila di disc-hi, traccr'a .
Quail sono la capacith totals e la capacita utile di una pila di dischi?
spazio Ira blocchi , testina di lettura/ scritmr a. .
SI supponga-che l’unitfi disco faccia motare 1a pila di dischi a una velocita di 2400
5.4. Si esarnini il processo di inizializzazione di disco. rpm (revolutions per minute: giIi a1 minuto); quali sonoi tassi di trasfen'mento (Ir:
0 scrivere dati su disco.
5.5. Si discuta il meccanismo usato per leggere dati da disco transfer rate) in byter’msec e i] tempo di trasferimento di blocco (Em: block transfer
5.6. Quali sorto i componenti di un indin'zzo di blocco di disco? time) in rnsec? Qua] e il ritardo di rotazione (rd: rotational delay) medio in insec'r'
no 1e componenti d't tem-
5.7. Perché e dispendioso 1‘ accesso aun blocco di disco? Si discuta Qua] e i] tasso di trasferimento di una mole di dati'? (si veda l'Appendice B). I
po coirwolte nell’accesso a un blocco di disco. f. S: sppponga che i1 tempo di posizionamento medic sia di 30 rnsec. Quanto tempo
processori e 1e tecnoiogie
5.13. Si descriva il disallineamento esistente tra 1e tecnologie dei nchrede (in media) in msec localizzare e trasferire un singolo blocco, dato i1 suo in-
dei dischi. dmzzo di blocco?
Come riesce a ottenerli‘?
5.9. Quali sono gli obiettivi principali della tecnologia RAID? g. Si calcoli il tempo medio che sarebbe richiesto per trasferire 20 blocchi a caso, e [o
g di disco? Si dia on esempio quantita-
5.10. Come aiuta a mjgliorare l’affidabilita il mirrorin 51 confronti con i] tempo che sarcbbe richiesto per trasferire 20 blocchi consecutivi
tivo. . usando Ia doppia buffelizzazione per risparmiare tempo di posizionamento e ritardo
ioni dei dischi neila tecnotogia
5.11. Quali sono 1e tecniche nsate per migliorare le prestaz d1 rotazione.
RAID? 5.24. Uri file be r = 20.000 record STUDENTE di lunghezza firm. Ogni record ha i seguenti
5.12. Cosa caratterizza i livelli nell’organizzazione RAID? campi: NOME (30 byte), SSN (9 byte), INDIHIZZO (40 byte), TELEFONO (9 byte), DA-
azione?
5.13. Come migliora il tempo di accesso ai blocchi 1a doppia bufferizz TA_NASGITA (8 byte), 35550 (1 byte), coerce DIP SPEC PRING (4 byte)
record a lunghezza variabil e? Quali tipi (ii caratteri se-
5.14. Quail sono le ragioni per avere CODICE_DIP_SPEG__SEC (4 byte). coorcE_ANNo_consE(4 Eyre, iEteger) e PROGRAM:
paratori sono necessari per ciascuno di essi'? MAHLAUREA (3 byte). Un byte supplementare e usato come indicatore di cancellazioue.
5.15. Si discutauo 1e tecniche per allocare blocchi di file so disco. 1] file .3 memorizzato su quel disco i cui parammri sono fomiti nell’Esercizio 5.23.
-'— - . .. .:-,. .
-—.._..—'I
—: fl—L.__._ _ __L__
1......5— ._____' —.

Memorizzazione dei record 9 organizzazioni primarie do! file i57


756 Capitelo 5

. Paneii: 2369. 3760. 4692, 4871, 5659, 1821, 1074, 7115, 1620, 2428, 3943, 4750, 6975,
a. Si calcoli la dimensiene dei record R in byte. 4981, 9208. 11 file use one bucket, nnrnerati da 0 a 7. Ogni bucket e costituito da un
di blocco bfr e il nurne ro di blecc hi del file I). snpponende dr usa<
b. Si calculi i1 fattore ‘ . blocco di disco e contiene due record. Si carichino questi record nel file secendo l’er-
re nn‘organizzazione senza spanning. nna ricerca 11- dine dare, nsando la funzione hash MK) = K mod 8. Si calcoli i1 numero medie di ac-
e on record effettuande
c. Si calceli il tempo medio necessario per trovar gueed e usa- cessi ai blecchi per 1111 recupero casuale basato sn Parteii.
chi del file sono memerizzati in mode contr
neare snl file so: (i) ibloc
del file non sono memenzzan in mode
5.28. Si carichino i record dell’esercizie 5.27 in file hash espandibilj basati sull’hash estee-
ta la doppia bufferizzaaiene; (ii) i blocchi dibile. Si mesni la sn'uttnra della directory :1 ogni passe, e Ie profondita globaii e loca-
. . . .
contiguo. li. Si usi la funzione hash MK) = K mod 128.
SSN; si calco lr 1i tempo noble sto per trevare
:1. Si suppenga che '11 file sia ordinate per binarr a. . 5.29. Si carichjno i record dell‘Esercizio 5.27 in nu file hash espandibile, che usa l'hash li-
sno SSN ed effettn ando una ricerc a
un record. date il valere del ro 5.24 abbra un neare. Si corninci con nn singelo blocco di disco, 115m la funzione bash ho = K mod
record STUDE NTE dell’E serciz
5.25. Si suppenga che solo 1‘30 per cento dei 11 15 per cento per 2°. e si mostri come cresce i1 file e come cambiano 1e funnieni hash man mane che i re-
per GOUI GE_D IP_SP EG_P RINC.
valere per TELEFONO, 1’ 35 per cento cord vengono inseriti. Si supponga che i blocchi vengane sdoppiati egni volta che si ve-
PROGRAMMA_LAUHEA e st snppolnga d1 usa-
CDDICE DIP SPEC__SEG e i}. 90 per cente per rifica an overflow, e si rnostri i1 valore di n a ogni passe.
record ha 1m ripe dr’ compo 61 1 byte'per
re nn file di Iceerd a lunghezza variabile. Ogni 5.30. Si cenfrontino i comandi sui file clencad nel Paragrafe 5.6 con quelli disponibili in un
tors di cancellazione d1 1 byte e no indica-
ogni campo presente no] record, pin 1‘ indica metodo di accesso a file one cui si abbia familiarita.
di nsare nn’orgaruzzaziene d1 record can
tore di fine del record di 1 byte. Si supponga 5.31. Si supponga di avere no file non ordinate di record a lunghezza fissa che usi un‘orga-
un punta tere d3 5 byte a1 bleece successrvo (queste spa-
spanning, in cui ogni blocce ha nizzazione a record senza spanning. Si delineine algoritmi per l’inserimente, la cancel-
].
zio non e nsato per la memerizzazione dei record lazione e la modifica di on record del file. Si enunci esplicitamente egni assunzione fat-
byte.
a. Si calceli la lnnghezza media dei record R in ta.
memorizzare i1 file.
b. Si calcoii i1 nnmero di blocchi necessari per s 5.32. Si supponga 'di avere un file ordinate di record a lnnghezza fissa e on file di overflow
pararnen'i: tempo di pesizienamente
. Si snppenga che un’nnita disco abbia i segucnti non ordinate per gestire l‘insen'mento. Entrambi i file usano record senza spanning. Si
= 10 msec; tempo di trasferimente di blocco bar = 1
= 20 msec; ritardo di retazione rd delineino algoritmi per l’inserimento. la cancellazione e la modifica di on record del fi—
sione dello spazio tra blocchi G = 600
msec; dimensiene di blocce B = 2400 byte; dimen ME, 20 byte; NO: le e per rierganizzare il file. Si enunci esplicitarnente egni assunzione fatta.
carnpi: SSN, 9 byte; GOGNO
byte. Un file IMPIEGATO abbia i seguenn’ 5.33. Si pub pensare a tecniche diverse dal file di overflow non ordinate, da usarsi per rende-
10 byte; morstzzo, 35 byte,
ME BATT, 20 byte; INIZ_INT, 1 byte; oara_nascrra, TD, 4 byte", GODIGE_LAVO - re pin efficienti gli inserimenti in un file ordinate?
E, 9 byte; DIPARTIMEN
TEEEFDNO, 12 byte; SSN_SUPEHVISOS 5.34. Si supponga di avere un file hash di record a Iunghezza fissa e che l'everflow sia irat-
ll file IMPIEGfitTO abbra r = 30.000 re-
HO, 4 byte: indicatore di canceliazione, 1 byte. tato con il concatenarnento. Si delineino algoritmi per l’inserimente, la cancellaziene e
senza spanning. 51 scrivano 1e formnle ap-
cord, forrnaro a lunghezza fissa e usi blocchi . la modifica di un record del file. Si enunci esplicitarnente ogni assunzione fatta.
il file IMPIEGATO sepra descntte.
propriate e si calceline i segnenti valori per e), 11 fattere d1 5.35. Si pno pensare a tecniche diverse dal cencatenarnento per gestire overflow di bucket
R (comp rese l’indic atere di cance llazron
a. La dimensiene dei record . nell‘hash esterno?
. .
blocce bfr e il numero di blecchi di disco b. 5.36. Si scriva pseudo-codice per l’algoritmo di inserziene per l‘hash lineare e per l’hash
di disco 3. cansa dell‘ orgam zzazre ne senza spanning.
b. Lo spazio perso in ogni blecce eslendibile.
to di una mole d1 dan brr per que-
c. 11 tasso di trasferimente Ire il tasso di trasferimen _ ' 5.37. Si scriva codice di un pregramma per accedere a campi singeli di record in ognuna del-
le defini zioni di tr e brr}.
sta unite disco {si veda l‘Appendice B per arbitrano del le seguenti circostanze. Per egni case, si enuncino espficitamenre 1e assunzieni fatte ri-
bleec hi medio neces sario per trevare on record
d. 1] meme dr' accessi of guardanti i puntatori, i caratteri separator-i e cosi via. Si deterrnjni il tipo di infennazie-
. -
file usando la ricerca lineare. el file nsande la ni necessarie nell’header del file per-che ii codice scritto sia generale in egni case.
trovare un record arbin'nne-d
c. 11 tempo rnedio in rnsec necessario per a. Record di lunghezza fissa con blocchi senza spanning.
ricercn iineare, se i blocch i del file seno memorizanti su blocchi dI. disco consecuti-
‘ ‘ b. Record di lunghezza variabile con blocchi con spanning.
vi e si use In deppia bufferizzazione. c. Record di Innghezza variabile con carnpi di lunghezza variabile e blecchi con span—
sario per trovar e un record arbitrane nel file usande la
f. 11 tempo media in msec neces an blocc hr d1 disco cen- nmg.
memorizzat i
ricerca lineare, se i blecchi del file non seno _ ‘ d. Record di lunghezza variabile con grnppi che si ripetene e blocchi con spanning.
_
secutivi. o cinave. Si cal- e. Record di lnngliezza variabile con carnpi opzienalj e blecchi con spanning.
siano ordina ti sulla base d1 nn certo camp
g. Si supponga che i record per trevare f. Record di lunghezza variabile che consentone turd e tre i casi presenti nelle parti c,
e il tempo media necessano
coli il numero dr' accessr' ar’ blecchr‘ medic d ed e.
a.
on record arbitrario nel file, nsando la ricerca binari _) 5.33. Si snpponga che on file centenga inizialmente :- = 120.000 record d: R = 200 byte cia—
if come chiave bash comp rende .recerd con i segnenti valori di
5.27. Un file PARTI con Parte
Memorlzzazlone del record a crganizzazioni primarie dei file 159
1‘53 Capltolo 5

afiesglogsauglle strutture dei file comprendono Ciaybrook (1983}. Smith e Barnes (1937] e Salz-
o 513 B = 2400
ate (heap). La dimensione del blocc );16551' esemmano-ultertori organizzazioni Iii file tra cui i file struttm‘ati ad albcro e
scone in una struttura a file non ordin rotazione media rd =
re: t
o s = 16 ms, la latenza di gci £31110:0 $1113 fit-flit}: 1:: opexazioni and file. Altri libri di testo sulle organizzazioni
byte, i1 tempo di posizionamento medi Si supp onga che venga cau-
blocco btt = 0,3 ms. _ ' . e v as (1989). Salzberg e altri (1990 d ‘ '
8.3 ms e il tempo di trasferimento di di recor d attivi non sia di
é i1 nume ro totale ‘
' d1' disco
dismbutto di. ordinamento. ester-no . Lo striping CSCIWOHO
) Salem ilfl algonmo
ccllato 1 record ogni 2 aggiunti finch e proposto in e Garc‘a M '
240.000. - gfiflfi :13: (1:308?) sglvettori ridondanti di dischi economici (RAID) e state preientafdlgz
a. Quan ti trasfe rimen ti di blocc hi sono uecessari per riorganizzare il file? . . teriori riferimenu' sono Chen e Patterson (1990 1’
trova re uu recor d subito prima delle riorganizzazione? ztone su RAJD '
di. Chen 5. altri (1994) . Grochowski e H oyt (1996) discutono )6 1e”enema tu—
tended fI913-
13. Quanta tempo richiede e?
.
record subito dopo 1a riorganizzazion re 113111;:11:11:: 311512.033? formule per 1' architettura RAID compaiono in Chen e 3111-1259194}
c. Quanto tempo richiedc trovare on 00 recor d. dove ciascun re—
(ordi nato ) di 100.0
5.39. Si supponga di avere un file sequ
enzia le . 0 . orns 8} 5a true dei ' ' e‘ descntt
_ primi lavori sull’hash . L’hash e stendtbrle ' ' I
= 2400 byte, 3 = 16 ms, rd = 8.3 ms e btt = 0.8
cord E: di 240 byte. Si ipotizzi che sia B di record dal file. Si
5:31:10: 11%.;1979‘21, mentre l gash hncare e dcscritto da Litwin (1980}. L’hash dinamico :li:
X letrure indipendenti casualj 1 mo scusso in ettaglio, e stato propostc da Larson (1978) C' ’
ms. Si supponga di voler effettuare lettura esausti-
. ‘
ali di blocchi oppure eseguire una sola nazmni PI‘OPOSte per l'hash estendibile e l'hash lineare', ad esem to, ' ' ‘ V3--
‘ di 1 50110 1110103
potrebbe effettuare X letture casu a decid ere quau do sarebbe pill
record. 1] problems . 13 SI V6 3110 C353“!!! 5 SO
va dell’intero file ccrcando quegli X di eseg uire X letture ca—
da (1991), Du e Tong (1991) e Hachem e Berra (1992).
stiva dell’ inter o file piutt osto
efficiente eseguire una lettura esau a esau stiva del file a piu
-e di X per cui una lettur
suali individuali. Cioe, qual e il valor come
ppi i1 problema esprimendo la soluzionc
efficiente di X letmre casuali? Si svilu
una funzione di X. nell’ area primaria e
statico abbia inizialmente 600 bucket
5.40. Si supponga che on file hash over flow di 600 buck et. Se 5i riorga—
o un‘ar ea di
che vengano inseriti record che crean . Se i1 costo di rior-
che 1‘ overflow sia elimi nato
nizza i1 file hash, c possibile supporre buck et (lettu ra e scritt ura di tutti i
trasferirnertti di
gauizzazione del file e il costo dei (prel ievo), allora
dica sul file e l'operazione di fetch
bucket) e la sola operazione perio ) per reud ere la riorganizza-
un fetch (con successo
quanta volte occorrerebbc eseguire e e il succ essiv e costo di ricerca
dorg anizz azion
zione conveniente‘? Cioe. il costo della azion e. Si gius tifichi la
ricerca prima della riorganizz
devono essere inferiori a1 costo di
hr: = 1 ms.
risposta. Si dia s = 16 ms, ra' = 8.3 ms. di file
onga di vole : crea te un file ad hash lineare con un fattore di caricamerrto
5.41. Si supp dcbb a iuizia lmer tte con—
rd per bucket e che esso
di 0.? e on fattore di blocco di 20 reco
tenere 112.000 record.
are nell’area primaria?
a. Quanti bucket si dovranno alloc et?
b. Quale dovra essere il numero di bit usato per gli indir'izzi dei buck

Bibliografia selezionata
oria se-
discussione e analisi dei dispositivi di mem
Wiederhold (1933) presents: una dettagliata Berg e Roth (1989) e
file. I dischi ottici sooo descritti in
condaria e delle organizzazioui dei da Dipefi e Levy
(1991). La memoria flash e esarn inata
analjzzati in Ford e Cbristodoulakis ione sulla tecno logia de'r dischi ma-
presentano una relaz
(1993). Ruemmler e Wilkes (1994) anali si sulla materia
testo sulle basi di dati comprende
gnetici. La maggior parte dei libri di cui Knut h (1973 ), discu tono l‘hash
strutture dati, fra
qui presentata. Molti libri di testo sulle funzi oni hash e
presenta una discussione completa delle
statico in maggiore dettaglio; Knuth delle loro prest. azioni.
delle collisioui. cosl come del confronto . _ .
delle tecniche.___ndi risoluzione
A... W . " a;:c . 2...? .dellfleculc. he mdma .
raflle estméihbrt
r_ :rh- ‘f 44,--
an»... L-” l__.._

Capitolo 6

Le strutture di indici per i file

In questo capitolo diamo per seonzato che esista gié on file con una certa organizzazione pri-
maria con dati non ordinati, ordinati od organizzati secondo una funzione hash come queile
che sono state descritte nel Capitolo 5. Deseriveremo altre strutture ausiliarie di accesso
chiamate indici, usate per veloeizzare la ricerca dei record in risposta a determinate conditio-
m' di ricerca. Gli indiei tipicamente fomiscono percorsi di accesso secondari, che offrono
metodi alternativi per aceedere ai record senza influenzare la posizione fisica dei record sul
disco. Permettono 1m aceesso eficace sulla base di campi d’indicizzazione ehe vengono uti-
lizzati per costruire l'indice. Quaisiasi camps del file pub essere usato per create un indice e
sullo stesso file possono essere costruiti pm indie-i su campi differenti. E possibile irnmagina—
re una varieté di indici, ciascuno dei quali utiljzza one parLieolare strutture dau' per velocizza—
re la ricerca. Per irovare mm o pit record nel file in base a un determinate criteria di selezio—
me so no campo di indieizzazione, inizialmente si deve aceedere all‘indiee per eonoscere la po-
sizione di uno o pit blocchi nel file in cui si troveno i record richiesli I tipi di indici princi-
a
pali 5i basano 511 file ordinati (indiei a un solo livello) e 511 strutmre di dati ad albero (indiei
pill livelli. alberi 8*). Gli indici possono essere creaLi anche tramite funzioni hash oppure al-
tre strutture dati.
pri-
Ne] prossimo paragrafo descriveremo i diversi tipi di indiei ordinati a un solo livello:
man'o, secondario e di cluster. Partendo da un indice a un solo livello memorizzat o in un fi-
pit li-
le ordinato, e possibile sviluppare ulterion' indioi. dando origine a1 concetto d.i indici a
velli. ]] ben noto schema d’indicizzazione [SAM (Indexed Sequential Access Method, Meto-
o
do hdicizzato di Accesso Sequenzziale) si base 51: quest’idea. Nel Paragrafo 6.2 esaminerem
e nel Paragrafo 6.3 gli alberi B e E, It: stratum: di dad usate eomune- -
311' indici a pin livelli
Glj al-
meme nei DBMS per implementare indici a pil‘l livellj che cambiano dinamjcameme.
beri B+ sono diventati 1a strutture predefinita per creare indici dmamici neIla maggior pane
dati in
dei DBMS relazionaii. NeI Paragrafo 6.4 uatteremo i memdi alternativi di accesso ai
base a una combinazio ne di pifi chiavi. Nel Paragrafo 6.5, infine, vedremo come per costmin
LE: strutture di I'ndlcl per i file 163
162 Capitolo 6

1e funzioni hash. 5m 6.1.1 lndici primari


re gli indiei possono essere utilizzate altre strutture dati, ad esernpio
brevemen te anche i1 cencetto di indjci logici, che fomiscon o un ulterior-e livello di
spiegate
flessibile ed esten- Ur] indice primal-i0 e no file ordinate i cui record sono di lunghezza fissa 9. some costimitj da
gestione e accesso agli indici fisici. permeltendo all’indice fisico di essere
due campr. [l prime campe e dello stesso tipo di dati del campo chiave di ordinamento. chla—
sibile.
malo chlave primarla, del file di dati e i1 secondo campo e um pentatore a un blocce del di—
sco (1m indirizzo di blocco). Esiste una voee (o record dell’indice) nel file dell‘indice per

6.1 Tipi di indici ordinati a un solo Iivello FILE DI M1


ufiflmMPO DELLA
“W as“
a quella che sta alla
L‘idea su cui 5i basa la struttura di accesso degli indici ordinati e simile a mum“ mo “PEN” 55550
i1 quale riporta in ordine alfabetic e concetti fon-
base deil’indice analitico di un libro di testo,
ricerca nell‘indice per-
damentali con indicazione del numero di pagina in cui compaiono. La
in questo case numeri di pagina. e di utilizzare que-
mette di consultare un elenco di indin'zzi.
e. L’alternati-
stl ultimi per individuare un terrnine nel testo cercandalo alle pagine specificat
esaminar e lentamen te tutte ‘ 11 volume, parela per parole.
va, se non ci fosse l'indice, sarebbe FILE ammo:
de a eseguire una ricer-
per trovare il rel-mine a cui si e interessati; quest’operazione corrispon (arm. Ptn>vn=n
altre infermazie—
ca lineal-e 51.: mi file. Nannalmente la maggior parte dei libri condone anche
i1 tel-mine in que-
ni, ad esempio i titoli di capitoli e di paragrafi, che possono aiutare a trovare
l‘unica indicaziene esatta
stione senza dever consultare tutto il libre. L‘indice. pero. fomisce
del punto in cui esso compare.
(o attributi). la
Per on file con una data struttura di record che consist»: di parecchi carnpi
chiamato campo di indi-
struttura di accesso a indice di solito e definite su un unico campo.
a ogni valore
cizzazione (oppure attribute di indicimaziene).l L’indice di solito memerizz
iblocchi del disco
del campo dj indicizzazione corredandolo di un elence di puntatori a tutti
e some ordinerr' in mode
che contengone record con quei valore del campo. I valori nell‘indic
te molto pill piccolo ri—
che si possa eseguire una ricerca binaria. 11 file dell‘ indice e evviamen
binaria e ragienev olmente efficace. L‘ indicizzaziene
spetto 211 file dei datj, quindi una ricerca
una ricerca binaria. ma richiede la
a pifi livelLi (si veda i1 Paragrafo 6.2) evita la necessith di
creazione di ulterior-i indici all'indjce stesso.
campo chieve di
Esistono molti tipi di indici ordinati. L‘indice primarie e specificato sui
si e detto eel Paragrafo 5.8. il campe chiave
ordinamenro di no file ordinate di record. Come
cli ordinamento e utilizzato per ordinere fisz'cameme i record dei file
su disco e tutti i record
mo non a: un campo chla-
haImo un vefore univoco per quel campo. Se i1 campo di erdiname
valore del campo di ordinamento, pub
ve, cioé se molti record no] file posseno avere lo stesso
altro Lipo di indice chiamato indice ('1' cluster. Si noti che on file puo avere a1
essere usato un
un indice primario op-
massimo 1m campo di ordinamento fisico. quiedi pub avere a1 massimo
mo di un file
pure uu indice di cluster. ma non enrmmbi. Su qualsiasi compo non di ordiname
seconda rio. Un file one avere mol—
puo essere specificato un terze fipo d5 indice detto indice
ti indici secondari ollIe al sue metodo di accesse primario.

Figure 6.1 lndiee primarie sulla chiave di erdinan‘rante dei file mostrato ‘In Figure 5.9.
: | r narmarrrfbem rmneeno 1:5i in leesre canitolo in mode intercambiahile.
'-..._.....—-s
=
I W 2-.- -_._......
n I . 2: I ‘
166‘ Capitolo 6 Le strutture di indicf per i file 157

FILE DI DATI
CAMPO DI FILEDI DATE
GAMPQ DI HAGGHUPPAMENTO
FLAGGHUPPAMENTO
WEED DP NOME SEN LAWRD SflPENDlCl
NUMERCLDIP HOME SEN LAVOHO DNA‘NASCITA STIPEN‘DlO 1

FILE DELL'eDlCE
{<Klfl. Flll> V00” immune
nullo
VALORE DEL
GAMPODl PUNWDFIE
MGGHUPPAMENTO ALBLOCCO

FILE DELL'NDICE
km. Pln> wet

puma
nulu

punmua
nLIIlD

mnla‘lma
nullu

(camps dl ordlnarnento non chlave} dl un file


Figure 6.2 Un lndlce dl cluster sul campo NUMERO_DIP
lMPIEGATO.

sono posti ncl blocco (o


campo di raggruppamento; tutti i record can quel valore del campo
amento di blocchi) . Questo rende l’inserim cnto c l‘elhnjna zione relativamente sem-
raggrupp
plici [Figura 6.3}. _
condone una voce per
Un indict: dj cluster 5 un altro esempio di indice nan demo, perché
zionc pinttosto che per ogni record nel file. V1 é una
ogni valore distinto del campo di indlcizza
5.13 dall’altra. Un indi—
certa somjgljanza rm 1: Figure 6.1. 6.2 e 6.3 (13 mm pane e la Figura
estendjbile, descritte nel
ce é qualcosa dj simflc alle strutture dclle directory usate per l’hash
trovaro il puntatom
Sonoparagrafo 5.9.3. In entrambi i casi, infatti. 5i csegue una ricerca per pmmora
i1 record dcsiderat o. La differenz a principal s é she 12: ricerca tra- nullo
a] blocco di dafi che contiene
delle directory hash usa 1m
mitc indict: utilizza i valori dcl campo di ricerca. mantra la riccrca Figura 6.3 L’indice dl cluster usa un blocco separato par ciascun gruppo di record che condlvldono Io
valore hash che é calcolato applicando la funzionc hash a1 campo di ricerca. atesso valora del camps di raggruppamanto.
5- _ _,-- :-- .1
Le strutture di indici per I‘ file 175
174 Capito1o 6

(senza dover accedere a1 blocco di dati). poiché e presen


te una voce dell‘indice per ogni re- 6.3 lndici dinamici multilivello implementati da
. ‘
cord nel file. e in on file alberi B e alberi B+
dei dati usata neli‘ela borazio ne gestion ale consist
Un‘organizzazione comune
di ordinamento. Tale organizza’zlrone é
ordinate con un indice primario multilivello sul campo
zato ed a state usata in molti dei prirni sistemr IBM. L insert—
definite file sequenziale indiciz Gli alberi B e gli alheri Bt sono casi speciali degli alberi della hen nota struttura di dati. Si
viene fuse nel. file d1 dau.
memo is gestito da una forma di fiie overflow che periodicamente sfrutta un indroe a due presenta qui di seguito molto brevernente 1a terminologia usata nella loro descrizione. Un al-
[SAM dell‘iBM
ricreando contestualmente l‘indice. L‘orgarfizzazione bero e formato da nodi. Ogni nodo, tranne uno speciale chiamato radice. ha on nodo padre
disco. Il primo livello a un indrce di or-
livelli che a molto simile all'organizzazione fisica del e zero 0 pill nodi figlio. La radice non ha i1 nodo padre. U11 nodo che non ha alcun nodo fi-
valore della chiave no record di punti Encore a1 cilmdn di una
lindro, che contiene per eiascun glio e chiamato foglia; un nodo che non t‘: foglia e an nodo tntemo. I] livello di un nodo é
di ciascun cilindro. L'indrce defile tracce a sua
unite disco e um puntetore all’indice delle traces sempre superiore di una unite rispetto a1 liveilo del suo nodo padre, mentre il livello del nodo
chiave di on record di punti Encore a ciascuna traccia del €11.11]d e on
volta contiene i1 valore radice a zero} Un sottoalbero di un node a costituito da quel nodo e da tutti i suoi nodi di-
zialmcn te i1 record 0 i1 blocco desrderato
puntatore per traccia. E poi possibile cercare scquen _ scendenti. i suoi nodi figli, i nodi figli dei suoi nodi figli e cosi via. Una precise definizione
_ ’
all’imemo della traccia. ricorsiva di un sottoalbero dice che un sottoalbero é costituito da un nodo n e dai sottoalberi
di ricerca di un record in on file d1 ldatr che use
L’Algoritmo 6.1 schematizza la procedure di tutti i nodi figli di n. In Figure 6.7 e illustrata una struttura di dati ad albero: il nodo radice
ello non denso con r liveflj. Si fa riferim ento alla voce ride] livello;
on indice primario multiljv a A e i suoi nodi figli sono B, C e D. I nodj E, J, C, G, H e K sono nodi fogiia.
cui valore della chiave primana eK. igno-
dell‘indice come (Kfi). P:{i)> e si cerca on record ii
di record di traboce amento . Se i1 record si trove nel file, dove essercr one iro-
rando 1a presenza
record sari nel bioeco del file d1 datr 11cm mdmz-
ce al live-110 1 con Ki) S K < K,(i + l) e il
algoritmo di ricerca per altn upr d1 mdicr. radlce
zo t‘: P,{ i). L’Bsercizio 6.19 illustra la modifica dell‘ BOWLBEO DELNDDO B
lliMOU}

flo non denso can t |ivelFi.'


ALGORITMO 6.1 Ricerca in un indice primarlo multillve

p e— address of top level block of index;


for j e- t step - 1 to 1 do
begin
s is p;
read the index block (at jth index level) whose addres
Kjli + 1) (if
search block p for entry 1 such that Kj(i) s K <
.

it is suffiCient to satisfy
. .

Kj(i)
is the last entry in the block. * ‘ .
KJIi) S K): 1th index level ]
p «— Pj(i) (* picks appropriate pointer at
end; “WE.J.G.G.HeKsonnmdlfoglle}
s is p;
read the data file block whose addres
with key = K; Figure 8.7 Una struttura di dati ad albero che mosh-a un albero non bilanolato.
search block p for record
odtce.
e 6.3) non e stale undone in qu anto scriuo in pseudoc
' Questo nlgoriuno. cos‘i come i due snceessivi (6.2
Di solito si visualizza un albero con il nodo radice pesto nella pane super-lore, propriOi
degli accessi a blocchi durante la
Come si e visto, un indice muldlivello riduce i1 numero me mostrato in figure. Un mode per implementare un alhero a meme in ciascun no
campo di indicizz azione. Occorre ancora efironta—
ricerca di on record, per un dato valore del pumatori quanti sono i nodi figli di quel nodo. In alcuni casi in ciascun nodo e anche
delle elimina zioni e degli inserim enti nell‘indice, perché tutu 1irvei-
rei problem i di gestione fizzato un puntetore al padre. Ollre ai puntatori, un nodo di solito condone quaic
Per manten ere i vantagg i dell‘uulizzo dell- 1nd]-
li dell’indice sono file fisicamenre ordinar i. informazioni. Quando on indice multilivello viene implementato come albero, 1:; info
zione e di insenmento. 1 pro—
cizzazione multilivello senza incorrere nei problemi di elimina
adottato un ripe di indice multiliv ello che lascia deDo spazio lit-{arc in crascuno
gettisti henna
a detto indies dmarrneo multrinfelld
dei suoi blocchi per l’imrrfissione di nuove voci. Questo
1e strutmre di deli chjama te alberi B e alben 1?.+ descnm nel ’ Questa definizione standard del livello di un nodo di nn albero, che vicne un’Iimta in rutto i1 Para
ed E spesso implementato usando “area do quetla ch: a state data per 311 indici muitilivello nel Paragrafo 6.2. -'
flamWCESSWT -‘, _‘ .‘:- -- ‘-—
-
me...
La strutture di Endici per i file 177

176 Capitolo 6

re
guidare la ricerca di un parficola E' Pu-natoreal nodo dan‘albem
po di indicizzazione usati per
mi includono '1 valori del cam
D Minna muoden'mbero
record. e gli alberi B. che possono es-
presentati gli alberl di ricerca
Nel Sottoparagrafo 6.3.1 sono rice rca dei record in un file di
e indi ci dina mic i mul ‘ 'vello per guidare 1a di
sere utili zza ti com cento e i pumatori ai blocchi
occupafi frail 50 e i1 100 per
dati. 1 nodi dell'albero B sono ia dell‘ a'lbero. Nel Sott opa ragrafo
n iintemi sia nei nodi fogl
dati sono memorizzafi sis nei nte degli alberi B in cui i pun
tatori ai blocchi dei
ti gli albe rl 13+. una varia
6.3 .2 sono presenta pub rich iede rc menu livelli e per—
di un file sono mem oriz zati solo nei nodi foglia; questo
{136
cith piu elevata.
mcttc di ottenerc indici di capa

6.3.1 Alberi di ricerca e alberi 3 Figure 6.9 Un albero dl ricerca dl ordine p = 3


di on
usato per guidarc la ricerca
di albero speciale che viene
Un alboro di ricerca 1% un tipo mul tiliv ello tratt ati nel Para grafo 6.2
dei suci campi. G'li indici ,. . .
record, date i1 valorc di uno ricerca: ogni nodo dell’indicc
mul- I. all mterno d1 mascun nodo, K, <K2 < .. . < Kgr ;',
re pen sati com e una variante di un albero di ’ind icc. l va-
possono esse dov e f0 6 i1 fan- out dell
atori cfo valori chiave,
2. p B1' {DIS 1 Vale EX dc1 SOttoalbero 3.1 uah 51 13. Ilferflnentu daj SI ha jgI X < 1: Per 1
tilivcllo pub avert: fine a f0 pum a1 nodo successive finché rag-
cun nodo guidano l'utente
<I<q,X<KIPe}I—ICJK”<XPql—q. b J< i
dell ’ indi ce di cias limi-
lori dei cam pi . Seguendo un puntatore 5i
che comiene i record richiesti
giunge il blocco del file di dati rano tutt i i nod i che O ' volt
e espfie ‘
I181a1:11:31gag;un vaiore X, 51' segue 11' puntatore appropriate I"l secondo 1e formu-
ricerca e si igno
un sottoalbero dell‘ albero di mofi di mama sane mtel-113;:06: :emaripresentato un albero di ricerca di ordine p = 3 i cui
ta 3 ogni passo la ricerca a ' c u a u u v I

non sono di qucl sonoalbero. re Pumamri nullj, cum de1 pumaton P,post1 m un nodo possono esse-

in MSi £10 '


noSESECEnIaiZemoJ' ncerca come meccanjsmo per ricercare i record 1mm' agazzinafi
mam camp.) (Ii fiéerca (cnclglléflllutitloafmalpossono essere i valon' di uno dei campi del file chia
I i ' c v 1 u . . u - . -
e Lghéam per guidm la ricerca). campo d1 mdmlzzazmne so an mdlcc mululivello vie-
l
hd 5:110:10:giggillilalbem e associate a un puntatore al record nel file di dati che ha
0rd, Lo Stcsso aem ‘1‘ . pumatore pub puntare al blocco del disco che contiene quel re-
ams“) a m] blmc c1311 ricerca pub essere memorizzato su disco assegnando ogni nodo d l
K
_0 dj mama imgmnd21:?i'(;;:ando Vlene inserito un nuovo record si deve aggiomarc 1‘21-
K,_,<X<K, _
0;? em una
record 3 un punmme 5122move record ‘
' valore del camps dl.' ncerca
voce contenente 11 del-
X<K,
o.
a'lberi che da Iul sl dlparton
albero dl ricer-ca con 1 tre sotto ‘ '- e cancellare i valori di ricerca nell’ albero di ri-
necessm' per ruseme
Flgura 6.5 Un nodo di un al ' '
mmuiogififimo
. a uovi
m éflanfiscom Chenuarfia nsuetrare 1 due vincolj precedenti. In generale questi algoritmi
te da un indice multilivello. Un “ 0 stesso menu 11.1331I“fro 'dl ncerca Sla bilanciato. cioé che tutti i suoi nodi foglia sia—
di ricerca e leggenneute differen
Alberi di ricerea. Un albero ro tale che ogni suo nod o condone at massimo p -
l
e 3- Mantcncm u.“ all: 1611:: Figure 6.7 non e bilanciato perché ha ncdi foglia ai livellj
p e on alhe cui q S
albero di ricerca di ordine P2, K2. .. ., PH, Kq_,.Pq>, in nodo Si 110‘; 1-3 _ era :11 ncerca bflanciato e important-e, perché cio gamntisce che nes
i p pun tato ri sono nell‘ordine <P,, KI, e um valore
valori di ricerca e pun tato re vuo to) e ogn i KI Jea- un 3111: willvelh molto alu e-qu-indi richjedera molti accessi ai blocchi durante la
un nodo figlio (oppme e mi
p; ogni PI 5 un puntatore a di valo ri. _ _ p ema con g]: alben d1 ncerca e che l’eliminazione dei record posse. la-
insie rne ordi nate o un no~
di ricerca preso da uu
ricerca siano univoci. 6 In Figura 6.8 viene mostrat
Si suppone che tutti ivalori di ettati in un albero di ricerca:
rice rca. Due vinc oll devono sempre essere risp
do in un albem di

' a lBI'SR
definjzione di 6:1::main ' ' Gli albcri binari bilmiatj sono conosciufi come albe-
per g];’ alben' bman.
.___—————-—-——‘ t: devono esserc modifi cale.
‘ ._ 41...“... nnrh mi 19. fomulc Che segmen
178 Capitele 6 Le strutture dl indict per i file 179

2. aJl'inteme di egni node. K, <K3 < <Kw:


‘3‘ lilxrlelrzn-IKu—vlprmlHlKalPrul-~l*<wlfrwla J 3. per tutti i valori X del campo chiave di ricerca nel sottealbere a cui Si e fatto riferlmente
da PI 01 sottealbero i-esime, Figure 6.10a). si ha:
3mm f

*"5-5’5’ Hm pmtetem
elem ' ”‘33:? one“ we KH<X<Kiperl<t'<q;X<K,peri=leK;.;<Xper£=q;
aunalm x
4. egni node conticne a1 massimo p pentateri dell‘albere;
X<K, KM<X<KJ Kw,,<X 5. egni node, tranne i nedj radice e i nedi foglia, ha almeno Rpm-l puntateri dell’albero: i1
node radice ha almene due puntatori dell'albere a menu che sia l’unice node dell‘albero;
6. un node con q puntamri dell'albere, dove q S p, centiene q — 1 valeri del campo chiave di
Eh) El Purbatnrealnede dan'atbae
ricerca (e quindi ha q — 1 pentateri ai dati):

B Punlatma a] den

U Pumatue rifle dall'albem


'r‘. tutti i nodi feglia sone allo stesse livello e harme ia medesima struttura dei nedi intend, a
pane i1 fatto che tuttii lere punrarori a 1m albero P, sene nulli.

In Figure 6.10(b} e illustrate un albero B di ordjne p = 3. Si noti che tutti i valeri di ricer-
ca K di un albere B sene univeci perché si suppone che l’albero sia usato come one struttura
Figure 6.10 La strutture dell'albero B. (a) Un node d1 un albere 8 con (:3 - 1] valeri di ricerea. (b) Un al- di accesse so on campe chiave. Se si use no albero B 31: an campo nan chime. si deve cam-
bere B d! erdlne p = 3. l valerl seno stat! inseriti nell‘erdine 8. 5, 1. i". 3, 121 9. 6. biare la definizione dei puntatori a1 file Pr“ perché i puntateri Pr, devene far riferimento a un
blecce e raggrupparnente di bleechi, che centienei puntatori at record del file. Questo ulte»
riere livello di indici e simile all’opziene 3 presentata nel Sottoparag'rafe 6.1.3 per gli indici
sciare alcuni nedi nell‘albere quasi vuoti. sprccaride quindi spazie per la memorizzaziene e seconded.
aumentande il numere dei livelli. La tecnica degli alberi B affronta entrambi questi problemi Ur: albere B inizia con un solo node radice (she a anche un node feglia} a Livelle 0 (zero).
specificando ulterieri vinceli sull‘albere di ricerca. Quande i1 node radice diventa complete e con ,0 — 1 valori della chiave di ricerca e si tents cli
inserire un'eltra verse nell’albere, il node radice si divide in due nedi di livelle 1. Sole i1 va—
Gli alberi B. L‘aibero B seddisfa ulterior-i Vinceli che assicurano che E'albero sia sempre bi— lere centrale e tenute nel node radice, mentre i.l resto dei valet-i sone divisi equameute tra gli
lanciato e che le spazie sprecato a seguite di cancellaziene. se ce n‘e. nen diventi mai ecces- altri due nedi. Quande une dei nedi non radice 9. complete e una nuova voce dovrebbe esser-
sivo. Gli algoritmi per l‘inserimente e la cancellaziene, pert), diventane pit) cemplessi allo sce- vi inserita, i1 node a divise in due nedi delle stesso livelle e la voce ccntrale e spostata verse
pe di seddisfare questi Vinceli. Cienonostante in genere gli inserjmenti e 1e cancellazieni so-
i] node padre insieme ai due puntatori ai nuovi eedi ettenuti dalla divisiene. Se il node padre
no precessi semplici; diventane complicati solo in particolari circestanze, c'toe egrli volta che
e complete viene diviso anch'esse. Iza divisiene pub prepagarsi per tutte i1 tragitte verso il no-
si tenta un inserimente in un node che e gie complete eppure una cancellazione da un node
de radice. creando un nuevo fivelle se anche la radice dove essere divisa (in questa sede non
che cesi diventa pifi della meta vuote. la mode pit). female. on alhere B d.i ordine p, quando
vengono trattati in dettaglie gli algoritmi di inserlmente e cancellazione per glj alberi B; in-
é usalo come una struttura di accesse so on campe chfave per cercarei record in on file di da-
vece nel paragrafo successive some descritte 1e procedure di rieerca e di inserimento per glj al-
ti. pub essere definite nel seguente mode:
ben' 3*).
1. egni node inter-no dell‘albere B (Figure 6.10:1) ha questa forrna: Se la cancellazione di un velore fa 51 Che un node sia complete per meno della meta. vie-
<P‘.. <11}, Par-p, P2, <Kz, Prp, ..., “fry; Pq> ne fuse con i suoi nedi vicini; anche questa fusions pub prepagarsi lungo tutte il Lragjtte ver-
se la radice. La cancellaziene, quindi. pub ridurre il numere dei livelli dell’albere. E state mo-
dove q .<_ p. Ogni P; e on puntatere a nu alhero. cieé un puntatere a un altre node strate attraverso l’analisi e la simulaziene che, dope numeresi inserimenti e cancellazierfic'a-
nell’albere B. Ogni Pr; é un pnntatore ai (leti,s ciee un puntatere a1 record il cui vale— $11a in un albero B. i nodi sone appressimativamente cempleti a1 69 per cente quande' "a
re del campe chiave e uguale a K, (eppure a1 biocce del file di dali che centiene quel re- mere dei valori nell'albere Si stabfljzza. Queste vale anche per glj alberl B‘. Se cib aw
cord); la divisiene e l’uniene dei nodi 5i verificane sole raramente, quindi l‘inserimento e 133 c"
laziene diventane abbastanza efficaci. Se i1 numere dei valori aumenta anceraf
espandere senza problemj, anche se si pub verificare la divisiene dei nedi 9. cost
" Urn puntntere ai dati a un indirlzze di un blecce oppure I'indirizzo dj on record; l‘ultimo e essenzialmenre l‘in- rimenti n'chiederarme pifl tempo. L' Esempie 4 mestra come si effettua i1 calcolo
d'trizze di un blecco e l‘eflhet di no record dall‘interne del blecce.
..
di un albere B memerizzato an disco.
r. \. <.-. . ,4
Le strutture di indici per { file 181‘
180 Gapitolo 6

ESEMPIO 4. Si supponga che il campo di rioerca sia lungo V =


9 byte. la dimensione del 6.3.2 Alberi B+
del disco sia B = 512 byte, i1 puntator e a no record {di dati) sia P, = 7 byte e il punte-
blocco
nodo dell‘ albero B pub avere a! massimo p puntatori del- La maggior parte delle odierne implementazioni di indici multilivello dinarnici utilizza una va-
tore a un blocco sia P = 6 byte. Ogni
p — 1 puntatori ai dati e p - 1 valori del campo della chiave di ricerca (Figura 6.1021). riante dalla struttura di dati ad albero B, chiamata albero 13". In un albcro B, tutti i valori del
l'albero,
perché ciascun nodo dell’ albe- carripo di ricerca appaiono una volta a 1111 date livello nell‘albero, insieme a un puntatore ai
Questi devono essere contenuti in un singolo blocco del disco.
In B deve corrispondere a un blocco del disco. Quindi si dove avere: dati. In un albero B‘ i puntatori ai dati sono memorizzati solo nei nodifagiia dell 'albero; quin—
('11 la struttura dei nodi foglia differisce dalla sti'uttura dei nodi inter-mi. I nodi foglia contengo-
(p*P)+((p——1)*(P,+VJ]SB no una voce per agm' valor: del campo di ricerca. insieme a 111'] puntatore 3] record di dad (op-
(patfi)+((p—l)*(7+9})$512 pure al blocco che contiene questo record) se il campo di ricerca e an campo chiave. Per un
(22*p)$523 campo di ricerca non chiave, il puntatore fa riferimento a un blocco che contiene i puntatori
ai record del file di dati, creando un livello ulteriore di indici.
p = 23 (p = 24 non vie-
ll valore p deve soddisfare la disuguaglianza precedente, il che d3
ue scelto per motivi forniti in seguito).
ioni necessarie per gli
In generals 1m nodo dell’albero B pub contencre ulteriori informaz (93
e um puntatore :1]
algoritmi che manipola no 1‘ albero. ad esempio
node padre. Prima di eseguire il calcolo precedente
il numero
per
d't
p,
voci q
quindi,
nel
si
queste
nodo
dovrebbc
informaz
ridurre la di-
ioni. Nel se—
.*| ll
P K
IKI-vltltl “tr-1N J
mensione del blocco della quantita di spazio necessar io per tune
puntatae punlalona
guito si illusIIa come calcolare il numero di blocchi e di fivelli per un albero B. aunaiiero aundtnero afimgfi';

4 sia un campo chiave ma


ESEMZPIO 5. Si supponga che i} campo di ricerca dell‘Esempio
un albero B su questo campo. Si ipotizzi che
non di ordinamento e che sia necessario costruire XSK, KM <X5K, Kr, <x
dell‘ albero B sia complete at] 69 per conto. Ogni nodo. in media. avra p * 0,69 =
ciascun nodo
puntator i e. quindi, 15 valori della cl-Liave di ri-
= 23 * 0.69 oppure approssirnativamente 16
medic e f0 = 16. Si pub iniziare dalla radice e vedere quanti valor-i e punta-
cerca, 11 fan-out 0:!) K Pr H
K Pr K Pr puntararaal
... F‘T'Tlir'j Famine mnfogfin
tori possono esistere in media a ogni livello successive:
ll II,‘| 2 2| Ilq-fJ

if I' ‘ “few
nel albam

Radice: l nodo 15 voci 16 puntatori


Dunning pUT‘flB‘IOIE pmtamora puntature
Livello 1: 16 nodi 240 voci 256 puntatorl aids]: small alda‘tt aldali

Livello 2: 256 nodi 3840 voci 4096 puntatori


Flgura 5.11 | nodl di un albero
‘ 8* . (3] Un nodo Intemo di un albaro B‘ con q - 1 valq dI' rlcerca. b Un
Livello 3: 4096 nodi 61.440 voci nodo foglfa dl un elbero 3* con q - 1 valori d! rlcerca a q - 1 puntatorl al deli. ‘ )

il numero Lotale dei punte-


A ciascun livello si e calculate il numero di voci moltiplicando
voci in ciascun nodo. Quindi, per 1e da-
tori del livello precedente per 15, i1 numero medic di
ne del campo della chiave di I nodi foglia defl' albero B+ di solito sono collegati Ira loro per fomire un accesso ordinato al
te dimensione del blocco, dimensione del puntatore e dimensio campo di ricerca e ai record. Questi nodi foglia sono simili a1 prime livello (base) di un indice.
240 + 15 = 4095 voci in media; 1m albero B
ricerca, un albero B a due livelli contiene 3840 + I nodi intemi dell’albero B+ con-iapondono agli aJn-l livelli di un indice multilivello. Alcuni va-
a tre livelli contiene 65.535 voci in media.
cli dati. In questo case tutti i lori del campo di ricerca dai nodi foglia sono ripemti nei nodi intemi dell’albero lit+ per guidare
Gli alberi B sono uaati talvolta come organizzazione del file la ricerca. La smittura dei nodi Euremi di un albero B" di ordine p (Figure. 6.1121) e la seguente:
ali’inter no dei nodi dell’albe ro B invece che solo 1e voci <: chiave di
record sono memorizzati
1 file con un numem relativamente
ricerca. puntatore del record>. Questo funziona berte per 1. ogni nodo intemo ha la seguente forma:
dimensio ns ridotra del record. altrimen ti il fanwout e i] numero di li-
piccolo di record e um
efficace .
velli diventano troppo grandi per pennettere ur: accesso (Pb KI: PZv K2, n-v q-JI Kq-h Pg)
multilivello Che produce un
Riassumendo. gli alberi B forniscono una shuttura di acceaso Iincuiq SpeogniPEEauntatnreaunalbero;
Ciascun nodo di un albero 3
albero bilanciato in cui ogni nodo e riempito almeno per meta. ; 2. afl‘intemodiogninodointerno,K;<Kz<...(Kw;
di ordine p pub were al massim o p — 1 valori di ricerca.
Le strutture di indlci per I file 183
182 Capitolo 8

o da P42. si ha ESEMPIO 6. Per calcolare l'ordine p di un albero B” si supponga che la lunghezza del cam-
3. per tutti i valori X del campo di ricerca nel sottoalbero a cui si fa riferiment po della chiave di ricerca sia V: 9 byte, la dimenSione del blocco sia B = 512 byte. il puma-
(i.lla);‘3
KH <XSKE per 1 < i <q; XSKf pert": l eKH <Xper izq (Figura tore a un record sia P, = 7 byte e il puntatore a un blocco sia P = 6 byte. come nell’Esempio
4. ogni nodo inter-no ha a1 massimo p puntatori a un albero; 4. Un node intemo dell’albero B+ pub avcre fine a p puntatori a un albero e p — l valor-i del
o; i1 nodo radice
5. ogni nodo interno, tranne 1a radice, ha almeno Rpm] puntatori deil'alber campo d1 ncerca; quest!" devono essere contenuu' in un singolo blocco. Quindi si ma:
ha almeno due puntatori dell‘ albcro se :2 un nodo interim;
6. un nodo intemo con q puntatori, q s ,0, ha q - 1 valori del campo di ricerca. (pauP)+((p—l)*V)SB
(p*6)+((p—1]*9)5512
(Figura 6.1 lb} 5 la seguente:
La struttura dei nodr' esterm' di un albero B+ dell'ordine p (15 *p)5521

1. ogni nodo foglia ha la forma:


Si puo scegliere che p sia i1 valore pill grande che soddisfa la disuguagfianza precedente,
«Kb Pry), <Kz, Pr,>. <16. I.>, Rummy - i] chi: dd p = 34. Cid e maggiore rispetto a1 valore 23 calcolato per l’albero B e dd come ri-
sultsto un fan-out piu ampio e 1111 maggior numero di voci in ogni nodo interno di un albero
ia successive
in cui q S p, ogni Pr, 9. un puntatore ai dati e PM”... si riferisce a1 nodofogl Bf nspetto al comspondente albero B. I nodi foglia dell'albero B” avranno Io stesso numero
dell‘albero B‘; d1 valon e puntaton. a eccezione del fatto che i puntatori sono puntatori ai dati, e mi puntato-
2. all’intemo di og-ni nodo fog1ia. K,1 < K2 < K“. q S p; re 31 nodo successivo. Quindi l‘ordine pm”. peri nodi foglja pub essere calcolato nel modo se-
valore del campo di
3. ciascun Pr. é un puntatore ai dati che fa riferimento 211 record i1 cui guente:
di pumatori a re-
ricerca a Ki 0 a un blocco del file che condene il record (0 a un biocco
cui valorc del campo di ricerca e KI se il campo di ri-
cord che fa riferimento ai record il (Pm:m*(Pr+W)+PSB
cerca non é una chiave);
(pfogfia * (7 + 9)) + 6 S 512
4. ogni nodo foglia ha almeno Rpm-i valori;
(16 * pfogl'i‘n) S 506
5. tutti i nodi foglia sono allo stesso livello.

sono nodi dell’albe- . Clasctm riodo foglia puo quindi contenere fino away“: 31 combinazioni di puntatori ai da-
I puntatori nei nodi interni sono puntarart‘ a un albero di blocchi che 11 o valor: chiave. dando per scontato che i puntatori ai dati siano i puntatori a record.
sono puntaton ‘ ai dart che fanno riferimen to ai record o
ro, tnentre i puntatori nei nodi foglia
um puntatore a un albero
ai blocchi del file di dati, a eccezione del puntatore 1°,"e che e Anche nel caso dell‘albero B’. pub essere necessario che ogni nodo contenga ulteriori in-
e possibile attraversare i
del successive nodo esterno. Iniziando dal nodo foglia pifi a sinistra fom‘iazroni per implementare gli algoritmi d’inserimento e di cancellazione. Quests informa-
ri Pmmm. Questo form'sce
nodi foglia come se fossero una lista concatenata, usando ipurttato zmm possono comprendere il fipo di nodo (intemo o foglia). i1 numero di voci q correnti del
zione. Pub essere incluso
un accesso ordinate ai record di dati basato sul campo di indicizza nodo e 1 puntatori ai nodi padre e fratelli. Prima di eseguirc i calcolj precedenti per p e pram,
e necessario un livel-
anche un puntatore PMWM. Per un albero 13* su un campo non chiave. qumdi, si dovrebbe ridurre la dimensione del blocco della quantith di spazio necessario per
mostrato in Figure 6.5. cost che i puntator i Pr sono puma-
lo ulteriore di indici come quello contenere rutte queste informazioni. L‘esempio successivo mostra come si calcola il numero
del file di dati, come
tori ai blocchi che contengono un insieme di puntatori ai record effettivi d1 voc1d1un albero B‘.
specificato nell’opzione 3 del Sottoparagrafo 6.1.3.
e puntatori a un
Poiché 1e voci nei nodi inter-iii di un albero B" includono valori di ricerca
albero B+ pub contenere pit voci
albei'o senza alcun puntat'ore ai dati, un nodo intemo'di un ESEMPIO 7. Si supponga di costruire un albero B“r sul campo dell’Esempio 6. Per calcolare
(nodo), l'ordine p
del nodo corrispondente di “11 albero B. A parita di dimensione del blocco 11 numero approssimativo di voei nell‘albero 13" Si supponga che ogni nodo sia complete 31 69
B‘ rispetto a un albero B, come illustrato nell’Esem pio 6. Que— per cento. In media ciascun node interno avra 34 :0: 0,69 0 approssimativamente 23 puntatori
8t piu grande per un albero
Poiché 1e struttu—
sto fa sl che l'albero 13* abbia meno livelli, migliorando il tempo di ricerca. e qumdi 22 valor-i. Ogni nodo foglia in media conterré 0,69 s: pm".1 = 0.69 a: 31 o approssima-
differente nei
re dei nodi intemi e foglia di un albero B+ sono diverse, l‘ordine p pub essere tivamente 21 puntatori 211 record di dati. L'albero B+ avra i1 seguente numero medic di voci a
l‘ordine dei rio—
due casi. Si usera p per denotare l'ordine dei nodi intemi e pm,“ per denature ogni livelioz
in un nodo foglia.
a‘t' foglia e definito come i1 numero massimo dei puntatori ai dati presenti
Recline: 1 node 22 voci 23 puntatori
Livellol: 23 nodi 506 voci 529 puntatori
L1ve1102: 529 nodi 11.638 voci 12.167 puntatori
i simboli < e S
1' La definizione segue Knuth (1973). Si puo definire un albero B‘ in modo differente cambiartdo Litrello estemo: 12.167 nodi 255.50? puntatori 3i record
‘ _
”’ S X < E“ V ' Ki: K. j V" fine i prigr‘fpi rit'nangonn Eli stessi.
---1.-~-~..- we... - l ., . ‘2‘; rug I.._.... .. l...........: new”;
E Int-r“ w” l
in um: '_....__. L.._: H—n—l ._._ _,.._J

Le strutture di indicl per i file 185


184 Capitolo 6

ns dc! campo di q 6— number of tree pointers in node n;


Per 1a dimensions dcl blocco, la dimensions. dcl puntatorc e la dimensio if K s n.K1 [*n.Ki refers to the ith search field value in node n')
temcnte. l’albero B‘ a In livelli condone in media fine a 255.50? pun—
riccrce indicati preceden then n e— n.P1 [*n.Pi refers to the ith tree pointer in node n']
voci necessarie per il con-ispondcnte
tatori ai record; Si confronti questo valore con la 65.535 else if K > n.q1
albcro B dell’Esempio 5. then n e— n.Pq
else begin
6.2 schematizza la pm-
Risen-ca, inserimento e cancellazione con alberi B‘. L‘Algoritmo search node n for an entry i such that n.Ki-1 < K s n.Ki;
cercare on record. L’Algoritmo 6.3
cedura che usa l'albcro 13* come su'uttura di accesso per n e— n.Pi
e per inserirc on record in no file che he. 1a strotrura. (ii accesso di un
illustra la procedur end;
a di up campo di ricerca chc a una chie-
albero B‘. Questi algoritmi presuppongono I‘esistenz read block n
modifica ti in mode adeguato no} case in col si crei un albero B+ so
ve c dcvono cssere end;‘
cnto e la cancellaz ionc tramitc on
on campo non chiave. Vcrranno illustrati ora l‘inserim search block n for entry (Ki,Pri} with K = Ki; (*search leaf node n*)
escmplo. if found
then record already in file-cannot insert
della chiave dl rloerca. ueendo un else (*insert entry in B+-tree to point to record*)
ALGORITMO 6.2 La ricerca di on record con velore K del campo
eibero B‘. begin
create entry {K,Pr) where Fr points to the new record;
n e— block containing root node of B+-tree; if leaf node n is not full
read block n; then insert entry (K, Pr) in correct position in leaf node n
while {n is not a leaf node of the B+-tree] do else
begin begin (*leaf node n is full with pleaf record pointers-is split*)
q e— number of tree pointers in node n; copy n to temp (*temp is an oversize leaf node to hold extra entry*];
value in node n*}
if K s n.K1 (*n.Ki refers to the ith search field insert entry (K, Pr] in temp in correct position;
(*n.Pi refers to the 1th tree pointer in node n*]
then n e— n.P1 (*temp now holds pleaf + 1 entries of the form (Ki, Pri)*)
else if K > n.Kq—1 new +— a new empty leaf node for the tree; new.Pnext +— n.Pnext;
then n e— n.Pq j e—Fpleaf + 1]I2h
else begin n e— first 1 entries in temp [up to entry {Kj,Prj}); n.Pnext s— new;
< K s n.Ki;
search node n for an entry 1 such that n.Ki—1 new +— remaining entries in temp; K +— Kj;
n e— n.Pi (*now we must move [K,new) and insert in parent internal node
end; however, if parent is fullI split may propagate*}
read block n finished e— false;
end; repeat
= Ki; [* search leaf node *)
search block n for entry {K1,Pri) with K if stack 5 is empty
if found then (*no parent node-new root node is created for the tree*)
and retrieve record
then read data file block with address Fri begin
K is not in the data file;
else record with search field value root 9— a new empty internal node for the tree;
root s— <n, K, new>; finished 4— true;
K do! campo del1e chiave dl rioerca in un albe- end
ALGORITMO 3.3 L'lneerirnento di un record con valore
ro B+ di ordlne p. also
; begin
n +— block containing root node of B+~tree
n +— pop stack 8;
read block h; set stack S to empty; if internal node n is not full
} do
while (n is not a leaf node of the B+-tree then
begin begin {*parent node not full-no split*)
push address of n on stack 8; insert {K, new} in correct position in internal node n;
in case of split*)
(*stack 3 holds parent nodes that are needed
Le strutture di indie! per i tiie 187
186 Capl’telo 6

SEQUENZA Dl INSERFMENTO', 8, 5.1. T. 3.12.9. G


finished +— true
.E-l mariman‘lo‘lmva‘llwtmmlivdlo]
end
else
p tree pointers-is split')
begin {*internal node n is full with El Mamnlmdoddl'albmu
ize internal nede*);
copy n to temp (*temp is an overs
in corre ct posit ion; [I Punlatotealdafl
insert (K,new] in temp
F
(*temp new has p+1 tree pointers*)
the tree; U
I‘ ”'-
“m“ MIME—+1.3 P T
new e— a new empty internal node for
j<— Lttp +1}!2)J; in temp;
n +— entries up to tree pointer Pj
Pi—1, Kj—t, Pj >*)
(*n contains <Pt, K1, P2, K2, ...,
tree pointe r Fj+1 in temp;
new e— entries from
Kp—i, Pp, Kp, Pp+1 >*]
(*new contains < Pj+1, Kj+t, ...,
K (— Kj
t in parent internal
(*new we must move (K,new) and inser
node*)
and
end
until finished
end;
end;

in un albere B+ di erdine p = 3 6
In Figura 6.12 viene illustrate l‘inserimente dei record Insarirnsno 9
ce node nell’albero, quindi e anche un
pm,“ = 2. Prime di tutte si esservi che la radice e1‘uni
di un livelle . l‘albcr e viene divise in nedi interni e feglia.
node feglia. Non appena 5i croa piit
dellefo giie, perché tutti i puntateri ai da-
Si noti che ogm’ valore chiave deve esisrem a livelle
ia sole alcuni valeri sone presenti nei nedi interni per
ti si trevane a livelle delle feglie. 'Ittttav
che appare in up node interno compare
guidare la ricerca. Si consideri anche ChB egni valere
i nedi feglia del settealbere a cui fa rifeximente i1 pun—
anche come i! valet-e pin) a desire tra
tatere ali‘albere pesto a sinistra del vaiere.
una nueva voce, il node trabecca
Quando tm node foglia a complete e viene inserita
prime j = [((pmfifl -1- 1)f2fl voci dei node
(overflow) e il sue centenute viene divise in due. Le
node, mentre 1e restanti voci seno spostate in un
eriginale seno mantenute in queste stesso
replicate nel node intente padre e um ulterio-
nueve node foglia. I} valere di ricercaj-esime e
Questi valet-i devene essere inseriti nel node
re puntatere a1 nuove node e create nel padre.
corrett a. Se il node inteme padre a complete, i1 nueve valore gli causera
padre nella sequenza
in due. Le veci nel node intemo fine a PI.
un trabecce, quindi anch‘esso done essere divise
o dope l‘inser imento del nueve vatere e del puntatore, con j =
il puntatere a on albere j-esim
di ricerc ajesim o a sparrow nel padre, ma non
[lip + Dill. seno mantenuti, mentre il valore
interne centcr rh 1e veci simane nti da PM in poi (Si. veda Algezitrne
ripetute. Un nuevo node
i1 tragitt e fine a create on nueve node radi—
6.3). Questa divisiene pue prepagarsi lungo tutte Fifi-o
ce e quindi on nuove livelle dell‘al bero B". .E‘fl
vece da un albere B“. Quande una voce
In Figure 6.13 e illustxata ia cancellazione di una Flgum 3.12 Un esemple dl inserlrnente In on athero B' con ,0 = 3 e low, = 2.
livello delle feglie. Se capita che si trovi in un node inter-
9 cancellata. e sem re rimossa dal
'“ 3| ' "—1l _T"f§ -"*73 3"“?
18B Capltele 6 Le strutture cli indlci per 1 file 189

SEQUENZA D1 CANCELIAZDONE: 5. 12. 9


no. deve essere eliminate. anche da 11. In questo case il valor: alla sua sinistra nel nedo foglja
Cleve sostituirla nel node inteme. perché que] vaiore era a la voce pie a destra 1151 sottoalbero.
La cancellazione pue causare une swetamento fiducende i1 numero di voci nel node fogiia
sotto i] minime richieste. In questo case si cerca di trmrare un node foglia fratello, cieé un :10—
de esteme esattamente a sinistIa e a destra dei node con la svuotarnento, e di ridlstribuire 1e
veci 1111 i] node e il sue fratelle in mode Che entrambi siano almeno completj a moth; altrimenti
ii node é fuse con i suei fratelli e il numere di nodi foglia si riduce. U11 metodo cemune é pro-
vate a ridistribuire le voci nel fratelle a sinistra; so non é possibile, viene fatto un tentative di
ridistribuziene con il fratello a destra. Se anche questo 11011 e possibile, i tre nedi vengone fu-
si ettenende due nodi esterni. In questo case 10 svuetamento pub prepagarsi ai nodi intemi
perché sene necessari un puntatorc a un teto e 1111 valore di ricerca in team). Queste effette
pub propagatsi e ridun'e'1 livelli dell’ albere.
|I Si noti che l’implementazione degli algoritmi di inserimento e di cancellazione pub 1i-
cifiedere puntateri a padre e fratelli per ciascun node eppure l‘utilizzo di una pila come nel-
[’Algoritmo 6.3. Ogni node dovrebbe includere anche i1 numere di voci che centiene e il suo
ripe {foglia o inteme). Un‘ altra alternativa e implementare i’insetimente e la cancellazione co-
me procedure ricersive.

Variazioni degli alberi B e degli alberi 3*. Per cencludere queste patagrafo si menzionane
brevemente aicune vanianti degli alberi B e degli alberi 3". In alcuni casi ii vincole 5 sull'ai—
here B (e albere B”), Che richicde che ciascun node sia almeno complete per meta, pue esse-
re medificate in mode Che egni node sia complete aimeno peri due terzi. In questo case 1’ 31—
here B E state chiamate albero B". In generale alcuni sistemi petmettono all’utente di sce-
gliere un fattore di riempimento tta 0,5 3 1.0, in cui l’unith significa Che i nedi deli’aibere
B [l'indiee) devone essere cempieti. E possibiie anche specificare due fatteri di riempimento
par un albero Bt: uno per il livelle delle foglie c 11110 per i nodi intemi dell'albere. Quando si
crea i’indice all'inizie, ciascun node viene riempito rispettando approssimativamente ‘1 fatte—
.ri di riempimente speeificati. Recentemente aicuni smdiesi hamte suggerite di rilasciare ii
vincole che 1m node sia complete 3 meta e consentire invece a1 node di diventare cempieta-
meme vuote prime. della fusions per sempfificare I’algoritmo di cancellazione. Gli studi di
simulazione mestrane che queste non spteca troppo spazio nel case di inserimenti e cancel-
laneni casuali.

it if
1.36.4 lndici su chiavi multiple
1111 H—fiiiifll Willi dim—“J JHEH .JJ
Canceltaziena 9: swotamanto
(fusions eon node a sinistta, move inera s1 E suppesto she 11: chiavi primarie e secendane che si utilizzaue per accedere _ai file '
svmtamento. eeilassc do! llrve1ln ane attributi (campi) singeli In melte operazioni di aggiomamento e recupere. sen coin
ivelti simultaneamente pit attributi. Se una certa cembinazione {ii attributi é usata 1111511 ' fr'eu
uentemente, & vantaggiese impostare una struttma di accesso amaverso 1.111 valor
1111a cembinazione di queglj atu'ibuti.
Ad esempie si eonsideri 1111 file IMPIEGATO che centiene i attributi N_D'_.
gtarfimento}, ETA, VIA, eITTA, CAP, STIPENDIO e GODICE__COMPETEN2A, c1111__
Figure 6.13 Un esample dl cancellazione da un albere 8+.
Le strutture di indici per I file 193
192 Capitolo 6

per il valore 0 della scala. mentre a N_D = 5 corrisponde i1 valore di scala


2. In modo simile esempio si supponga che un’organizzazione primaria di file si basi sull’hash lineare o sul-
da 0 a 5 raggrupp ando le eta, cosi da distribuir e unifon'ne mente gli l'hash estendibile; ogni volta che un bucket viene diviso. alcuni record vengono assegnati a
ETA e diviso in una scale
impiegati. La man-ice a griglia mostrata per questo file ha un totale di
36 celle. Ogni cella fa nuovi bucket e quindi hauno nuovi indirizzi fisici. Se esistesse anche un indice secondario sul
corrispondcuo a
riferimeuto a un indirizzo del bucket in cui sono memorizzati i record che Floi si dovrebbero trovare e aggiornare ipuntatori a quei record, un prooedimeuto lungo e dif-
denze tra celle c bucket (solo parzial- 10] e.
quella cella. La Figure 6.14 mostra anche 1e corrispon
meme).
lJer rimediare a questa situazione si pub usare una struttura chiamata indice logico. 1e cui
matrice a griglia. I
La richiesta per N_D = 4 e ETA = 59 corrisponde alla cella (1,5) della noel assumono la forma <K. KP- Ogni voce coutiene un valore K per il campo secondario d1
no questa combina zione si troverann o nel bucket corrispon dente. Queste mdicizzazione che corrisponde a1 valore KP del campo usato per l’orgrmizzazione primaria del
record che contengo
metodo b particolarrnente utile per le interroga zioni su un intervallo che individua uc un insie- file. .Cercando nell’indice secondario i1 valore di K, un programme pub individuare il valore
dente a un gruppo di valor-i lungo 1e scale lineari. In teoria il concerto di comspondente di KP e usarlo per accedere ai record attraverso l‘organizzazione primal-la dei
rue di celle corrispon
ricerca. Per u chiavi di ri- file. Gli indici logici quindi introducono un ulteriore livello di indici Ira la struttura di acces-
file a griglia pub essere applicato a un uumero qualsiasi di chiavi di
la matrice a griglia avrebbe n dimensio ni. Essa consente una divisione del file lungo 1e so e i dati. Essi vengono usati quando ci si aspetta che gii indirizzi fisici dei record cambino
cerca,
delle chiavi di ricerca e fomisce un accesso rapido at- frequentemente. El costo di questo ulteriore livello di indici b la ricerca ultericre che si basa
dimensioni corrispondent'r agli atn-ibuti
a griglia funzionauo bene sull'organizzazione primaria del file.
traverso 1e combinazioni dei valori lungo quelle dimensioni. I file
multiple, tuttavia richicdono un
in termini di riduzione del tempo di accesso uarnite chiavi
Inoltre, con i file di-
consume ulteriore di spazio in termini di struttura della matrice a griglia.
riorganiz zazionc frequente del file che si aggiunge al costo di manu-
namici e ric‘niesta una 6.5.3 Discussione
tennione.m

In molti sistemi l’indice non b una pane integrante del file di dati, ma pub essere creato e scar-
tato dmamicarnente. Ecco perché spesso Vieue chiamato struttura dt' accesso. Ogni volta che
Altri tipi di indici c: s: aspetta di accedere frequentemente a on file sulla base di condizioni di ricerca che coin-
6.5 volgouo un campo particular-e. si pub richiedere a1 DBMS dl create on indice su quel campo.
D1 solito viene creato un indice secondario per evitare di clover eseguire l’ordinarnento fisico
dei record nel file di dati sul disco.
6.5.1 Utilizzo di hash e di altre strutture di dati come indici ' . Il‘vantaggio principale degli indici secondar‘i e che, almeno in teoria. possono essere crea—
u‘msreme a quafsr'asr' organiuazione primaria di record. Quindi pub essere utilizzato no in-
che si basano sull‘hash. Le vo~
E possibile anche creare strutture di accesso simili agli indici dice secondaric in aggiunta agli altri metodi di accesso primario come l'ordinamento o l‘ha-
essere organizz ate come un file hash espandibile sin oppure con file misti. Per creare un indice secondario ad albero B” su un campo di un file.
ci dell‘indice <K, Pr> {o <K, P>) possono
mente usando una delle tecniche descritte nel Sottopar agrafo 5.9.3; per la ricerca di 51 devono esarninare tutti ireccrd nel file per creare le voci a livello foglia dell‘ albero. Queste
dinamica
di ricerca su K. Una volta che la voce e stata novata, si voct vengono poi ordinate e riernpite secondo il fattore di riernpimento specificato; simulta-
una voce si utilizza l’algoritmo hash
puntaior e Pr (:3 P) per individu are i1 record con-ispc ndente nel file di dati. Anche altre neamente vengono creati gli alu-i livelli dell‘indice. E pin costoso e molto pib difficile creare
usa il
strutture di ricerca possonc essere usate come indice. dmarnicarnente degli indici primari e degli indici di cluster, perché i record del file di dab" de-
vono essere fisicamente ordinati suI disco secondo il carnpo di indicizzazione. Tuttavia alou-
m Sistemi cousentono :1i utenti di create questi indici dinamicamente, ordinando il file du-
rante la creazione dell‘indice.
6.5.2 Confrouto tra indici logici e indici fisici E un‘operazione cornune usare on indice per garanfire che venga soddisfatto rm vincolo dr'
chiave su un attribute. Durante la ricerca nell’indice per inserire un nuovo record, at seruplice
includarto sempre un punta— controllare contemporanearuente se un altro record presente nel file, e quindi nell‘albero del-
Finora si b supposto che le voci dell'indice <K. Pr> [o <K, P>J
disco come numero del bioc-
tore fisico Pr (0 P) che specifics. l’indirizzo fisico dei record an ltindice, ha lo stesso valore dell‘attributo chiave del nuuvo record. In caso afl‘ermativo I’inse-
svantaggio che i1 pun-
co e offset. Questo metodo vienc talvolta chiarnato indiee fisioo e halo nmento pub essere rifiutato.
posiziorre del disco. Ad Un file che ha un indice secondario su ognuno dei suoi campi spesso Viene chlamato file
tatore deve essere cambiato 5e i1 record Viene spostato in un’altra
' trasposto complete. Visto che tutti gli indici sono seconded, i nuovi record vengono inseriti
alla fine del file; percib il file di dati stesso a: no file non ordinato (heap). Gli indici di solito
were in Nievergelt [[984]. souo implementati come alberi Bt, quindi vengono aggiornati dinamicamente per riflettere
1° Gli algoritmi d'ineerirnento e di cancellaaiorte per i file a griglia si poseono
.. .. ‘_ _.,.

Le stlut‘ture di indlci per i file 1'97


1.96 Capltolo 6

ulteriore di indice per imma- a. Ufin1 iiitSIice secondario multilivcllo so on campo non di ordinamento non chiave di un
l’opzione 3 del Sottcparagrafo 6.1.3. con un Livello Veil. izsuoponge che venga usata l‘opzione 3 del Sottoparagrafo 6.1.3, in col un li—
are i puntat ori ai record . Si suppon ga che vi siano 1000 valori distinti d1 NU -
gazzin o u tenore d1 indice memonzza i puntatori ai singofi record con il valore corri
siano distribuiti in mode uniformc
MERD_DIPARTIMENTO e che i record IMPIEGATO Spendente del campo di indicizzazione.
dell‘indice bfi‘, (che é anche l‘in- -
lungo questi valori. Si calculi: (i) i fattori di blocco 1:. 3: 1:31;: zeicolndan'o milltilivello sul campo chiave (ma non di ordinamento) del file
o dei blocch i necess ari pet i‘ulteriore livello di indice
dice fan—outfo); (i) ii numer . file, c Lister mu tili vello an un campo non d1‘ ordmamento
'
i1 numero di voci e il numero dei blocchi e non chiave
' di unI
che memorizza i puntatori ai record; (iii) rtir-
necessari as si vuole conve
dell’indice del prime livello; (iv) i1 numero di livelli 6.20. Eezitiigolnga£1: esistano pin indici sccondari su campi non chiave di no file imple
di blocch i richiesfi dall‘indice mul-
In in un indicc multilivello; (v) il numero totale . ’ san . ‘opzione
. . 3 del Sottoparagrafo 6 . 1 . 3-. ad esemp10.
usati dal livello ulterio re di indice ; (vi) il numero approssimati- ' potrebbero esservi
j ' -
tilivcllo e i 1310c dict secondan SUI campi NUMERILDIPARTIMENTO. GODICE_LAVOFID e STIPENDIO delig-
rare tutti 1 record nel file che hanno un
vo di accessi necessari per cercarc e recupe
di NUMER O_DIP ARTIM ENTO, usand o l’indic e.
valore specifico
il compo non chiave NUMEHO_DIPARTI -
f. Si supponga che i1 file sia ordinato tramite
r su NUMERGjIPARTIl-IENTO che
MENTO e chc si voglia costruire un indies di cluste
i (ogni nuovo valore di NUMEHOJIPAHTIMENTO a
utilizzi i punti encora dei blocch
vi Siam: 1000 valori distinti di NU -
posto all’inizio di un blocco). Si supponga che lnserlmerrbo 12: overflow
i record IMPIEG ATO siano disu-ib uiti unifonnemente tra (Edmuzionea slnlstra)
MEROJJIPABTIMENTO e chc
dice bfr. (che e anche 11 fan—out
questi valori. Si calcoli: (i) il fattore di blocco dell‘in dice di prime
I-E
e i1 numero di blocchi dell‘in
f0 dell’indice); (ii) il numero delle voci
vuole passare a un indice multilivel—
livello; (iii) il numero di livelli necessari se si '11 numero di
sti dall‘indice multilivello; (v)
10; (iv) il numero total: di b1occhi richie
i record del file che hanno uno spe-
accessi necessari per ccrcare e recuperare tutti
MENTO usand o l‘indice di cluster (5i supponga che r
cifico valore di NUMERO_DIPARTI
adiacenti).
pin blocchi relativi allo stesso :aggruppamento siano JWH»! I maerlmentu 9-. overflow {nucwo flvsllo)
te sulla chiave SSN e Che si voglia create una k.)
g. Si supponga che i1 file non sia ordina
ino: (i) gli ordioi p e pm...
struttura (indice) di accesso ad albero B* so SSN.
ro dei blocc hi di livello
Si calcol
foglia neces sari se iblocchi sono II II
dell‘ albero 13”; (ii) il nume
(iii) ' 1 1 nume ro di livelli necessari se
completi approssimativamente a1 69 per canto; ro totale di blocchi
comp leti a1 69 per cento; (iv) il numc
anche i nodi intemi sono erate
di accessi necessari per cercare e recup
richiesti dall‘albero B”; (v) il numero
o l‘albero 13*.
on record dal file, data i1 suo valore SSN. usand
ripeta la parte 3. ma per 1111 albero B piutto sto che per ml albero 3‘. Si confronti-
11. Si
no i risultati per l’albero B e per l‘albero 3". valori
o chiave comprende 1 record con i seguenti
6.15. Un file PARTS con Part# come camp 15. 16, 20. 24. 28. 39.
46. 92. 48, '71. 56. 59. 18, 21. 10. 74, 78.
di Partlt: 23. 65. 3’1, 60,
che i valori dei campi di ricerca siano in-
43, 47, 50, 69, 75. 3. 49, 33, 38. Si supporiga
in un albero B+ di ordine p = 4 e pm... = 3; si mostti come l‘albe-
seriti neil’ordine data
re 51 espanderh e come apparixh l’albero finale. B‘.
i un albero 13 di ordinep = 4 invece di un albero
6.16. Si ripeta l‘Esercizio 6.15, ma 3i utilizz venga no elimin ati. nell’o rdine
del campo di ricerca
6.17. Si supponga che i seguenti valori
mostri come si ridurrh I’albero e l'aspetto fi-
dato. dall’albero Br dell‘Esercizio 6.15; si
92. 59. 37.
nale che avrh. I valori sono: 65. 75. 43. 18, ’20,
6.17, ma per l'alber o B dell‘E sercizio 6.16.
6.13. Si ripeta 1‘ Esercizio ;
di ricerca in on indice primario multilivello
6.19. L’Algoritmo 6.1 schematizza la procedura
adatti 1‘ algoritmo per ciascuno dei 5c» _
non dense per recuperate no record del file. Si
guenti casi.
198 Capitolo 6

per cercare e recupe-


1e IMPIEGATO dell’Esercizio 6.14. Si descriva un metodo efficace
e su questi campi, ad
rare i record che soddisfano una complessa condizione di selezion
= 12 e STIPENDIO = 50.000)
csem‘pio [NUMEF.0__DIPARTIMENTD = 5 e CODIGE_LAVORO
usando i puntatori ai record dell‘ulteriore livello di indice.
procedure di ricerca e di inse-
6.21. Si adattino gli Algoritmi 6.2 e 6.3, che schematizzano 1e Capitolo 7
rimento per un albero 13* a un aibero B.
albero 8" per gestire i1 case in
6.22. E possibile modificare l’algoritmo d‘inserimento in un
ziane dei valori
cui viene creato un nuovo fivello individuando una possibile ridistribu
6.15 viene mostrato come cio potrebbe essere eseguito per ll modello di dati, i vincoli e
tra i nodi ester-Iii. In Figura
quando vie-
1‘esempio della Figura 6.12: invece di dividere i1 nodo estemo pit a sinistra
a sinistra spostando 7 ne1 nodo
l’algebra relazionali
ne inserito i1 valore 12, si esegue una ridism'buzione
e valutare anche la ri-
esterno alla sua sinistra (se 61% spazio in questo node). E possibil
Si provi a modifica re l’algorit mo {ii inseiime nto neil’albero 13*
dism'buzione a desrra.
per tener conto della ridistribuzione.
B‘.
6.23. Si schematizzi un a1goritmo per I’eiiminazione da un albero
6.24. Si ripeta l'Esercizio 6.23 per un albero B.

Bibliografia selezionata I] niodeilo relezionale a state introdotto me] 1970 da Ted Codd del Centre ricerche IBM in un
articolo on'nai classico {Codd 1970]. e ha subito attirato l’attenzione per la sua semplicita e 1e
algoritrni associati. Corner sue basr matematiche. I} modelio usa i.l concetto di relazione matemarz’ca — che assomiglia un
f. Bayer e McCreight (1972) hanno introdotto gli alberi B e gli
i risuilati di un’ecce llente ricerca sugli alberi B, 1e loro varianti e la loro sto- po 3 una'tabella di valori — come sun eomponente elementare e ha i1 suo fondamento teorico
(1979) fornisce
un'anal isi denaglia ta iii molte tecniche di ricerca, tra nelln teona degh insienii e nella logica dei predicati del prime ordine. In questo capitolo stu-
ria. Knuth (1973) mette a disposizione
B e alcune delle loro varianti . Nieverg elt (1974) discutc l‘utilizzo degli alberi di rlieremo 1e caratteristiche di base del modello, i suoi vincoli e l’algebra relazionale che e un
cui gli albcri
strutture dei file, In cui Wirth mSIeme d1 operazioni per tale modello. Nel corso degli ultimi vent’anni esso a state im 1
ricerca binaria per l‘organizzazione dei file. I manuali sulle
ok (1983). Smith e Barnes {1937), Miller {1987) e Salzberg (1988). trattano mentato in un gran numero di sistemi commerciali. P e-
[1972). Claybro
consult ati per algoritm i di ricerca. inserirnento . I Iniooelli di‘ dati che hanno preceduto il modello relazionale — chiamati sisremi Iegac (1a—
in dettaglio l‘indicizzazione e possono essere
B e B‘: sczatic1 in eredrta) — comprendono i modelli gerarchico e reticolare. Essi sono stati profiiosti
e cancellazione per alberi
ati e Held e Stonebraker (1978) confron- neghanmhsessantale sono stati implementati nei primi DBMS durante gli anni settanta e ot-
Larson (1981) analizza i file sequenziali indicizz e
ci che sfruttano gli alberi B. Lehman {2:31 :3;- anno 1111 importanza stonca, un’ampia base di utenti e saranno utilizzati ancora per
tano gli indici multilivello statici con gli indici dinami
fatto un‘ulter iore analisi suli‘accesso simulta-
Yao [1981) e Srinivasan e Carey {1991) hanno
I libri di Wieder hold (1983), Smith e Barnes (1987} e Salzberg (1983) trat— _].n quests capitolo ci concentreremo sulla descrizione dei principi di base del modello re
neo agli alberi B.
in questo capitolo . I file a grigiia furono intro— Lfiiggteedt dati. Cominceremo col definite, nel_Paragrafo 7.1. i concetti di modellazione e la
tano molte delle tecniche di ricerca descritte
eit (1934). 11 recuper o con confron to parziale che utilizza l'hash partizionalo ti ma paéemfiu'fltiagfigrafo 7.2 discuteremo i vincoli relazionali, che sono ora considera~
dotti in Nieverg
maggjm- me (1133' DBMSe moriello-relazmnale I: sorta fatti automaticamente rispettare dafla
viene anaiizzato in Burkhard (1976, 1979).
vengono discusse in Lanka 6 mam d 1: 1 reiazroziali. Ne] Paragrafo 7.3 definiremo 1e operazioni di aggiorna-
Nuove tecniche e appficazioni degli indici e degli alberi B+
(1992). Mohan e Narang (1992) si . ND] 1: modello ed esarnineremo come sono mutate 1e violazioni dei vincoli di integrita.
Mays (1991), Zobel e altri (1992) e Faloutsos e Jagadish
i relativi agli alberi B e fig 3a “31:22:30 7.1;presentererno un’anaiisi dettagliata dell‘algebra relazionale, che é costi-
occupant; della creazione degii indici. Le prestazioni di vari algoritm
ates e Larson (1989) e Johnson e Shasha (1993}. La gestione a1 b _ me opemetom per manipolare 1e relazioni e specificare 1e interrogazioni.
B” vengono valutate in Baeza-Y
. ge ra relazronale‘e perte integrante deI modello di dati reiazionale. Nel Paragrafo 7.5 de-
dei buffer per gli indici viene descritta in Chart e altri (1992).
fimremman o altre operanom relaeronaliaag‘giunte all’aIgebra relazionale di base per la Ioro im-
. za Inmolte aptihcamom d1 basr d1 datr. Nel Paragrafo 7.6 fornjremo esempi di specifi-
mone d1 mten'ogamoni Che usano operazioni relazionali. Le stesse interrogazioni sararmo
ate nei capitoli successivi per illustrate var-i Iinguaggi.
:- 1 2.. . g. . ...-...'.'§5 {:1 E
II modello cll dati. I vincori e l’algebra relazienatl 201
200 Gapitele 7

ienali pue Eta_impiegati: possibih' eta degli impiegati di un‘azienda; egni eta deve avepe un valere
mene paniceiaIeggiata dei concetti :elaz
11 lettore interessate a un’intreduziene 7.5.
comprese in: 15 e 80 mini;
, 7.4.? e il Parag-rafe blemJTdip arlimentLuniversitari: l’insieme dei nemi dei dipartimenti universiwri in un'u-
escludere della lettura i Setteparagrafi 7.1.2
mveisita, ad esempie Infermatica, Economia, Fisica;
, come
Ced1c1_dipmumenti_univexsitari: l’insieme dei cedici dei diparrimenfi universitari
ad esempie INF, ECON e FIS.
e
7.1 Cencetti del modello relazional Queste definizioni di demjm sene dette lagiche. Per egnj dominie vienc anche specifica-
te un tipe dj dati o formato. Ad esempie: il tipo di dati per il demim‘o Numeri telefeni-
base di dati come una cellezienc di relaz
ieni. Informal- c1_l.lSA pub essere dichiarate come una stringa di caratteci della ferma (ddd)ddd-dc_idd. dove
Il modello relazienale rappresenta la i e. per certi versi . a 1111 file di record egm d eluna cifra numerica (decimale) e 1e prime tre cifre fen-nane un prefisse telefenico va-
tabella di valer
mente, egni relazione assemiglia a una da cens idera rsi in me- lide; 11 ope d1 dati per Btajmpiegati a un numere intere cemprese tra 15 e 80; i1 tipe di dati
di file mestrata in Figura 1.2 a
"piatto". Ad esempie. la base di dati Lra reiaz iem e file, come si vedra pece d1 Nemdleas‘bmeemuniversitafl e l’insieme di tune le stringhe di caratteri che rappresenta—
rtanti differenze
dello relazienale. Ci sene pere impo ne nenu valldl d1 dlpartimenli. A egni dominio viene percie assegnate un neme, un tipe di da—
elue.
a una tabella di valeri, egni riga della
tabella rap— is e on female. Possene anche essere femite infermazieni aggiuntive per mterpretare i vale-
Quande si pensa a una relaziene come stati intro dotti i tipi di n d1 an dermmo; ad esempie, a an deminie numerice come Pesi_perseue dewebbero essere
dati cellegafi. Nel Capitele 3 sene
presenta una celleziene di valori di dati del mond e reale . Nel mode llo re- associate 1e unite di misura — libbre e chilegrammi.
per medeilare i
emita e di asseciazione come cencetti e cerris pend e a un‘en fita ‘Uno schema di relaziene R, indicate con R(A,, A2, ..., A"). e cestituite da un neme dj re-
csenta un fatte che tipicament
lazienale egni n’ga della Iabella rappr la e i nem i delle celen ne sene usati laziene R e da un elence di attributi AI, A,, ..., A". Ogni attribute A, fomisce i1 neme del me-
. ll neme della. tabel
e a un’asseciaziene del monde reale esempie. la prima }e mt-ereretate da an eerie deminie D nelle schema d1 relaziene R. D e detto dominie di A.
signi ficate dei valen' presenti in egui tiga. Ad
per aiuta xe a interp retar e il
rigs rappr esen ta fatsi relativi a una spe- ed e indicate con del-1101,). Une schema di relazione e usate per descrivere una relaziene' R g
ENTS perché egni
tabella di Figura 1.2 e chiemata STUD Num ereS tuden te. AnneCerse, Corse- dette name della relaziene. [I grade di una relaziene e il numero 11 d1 attributi presenti nei sue
colen ne - Nom e.
cifiea entita studente, I nemi delle sulla base della schema di relaziene.
e i valeri dei dati presenti in egni riga,
Laurea — specificane ceme interpretar nti in una celen na sene delle stesse ti- . Lin esemeio di une schema di relaziene per una relaziene di grade 7, che descrive studen-
Tutti i valer i prese
colenna in cui si treva egni valore. t: umversitan. e il seguente:
pe di dati. , un‘intestazie-
ello relazienale, una riga e derta mpla
Nella tenninelegia female del mod ll ripe di dati che desc rive i tipi di STUBENTE (Nome. SSN, TelefeneDiCasa, Indirizze, TelefeneUf’ficio, Eta, MV)
tabella e detta relaziene.
ne di colenna e detta attribute e la
celenna e dette dominio. S_Tl_JDENTE e ii neme della relaziene, che ha sette amibuti. E pessibile specificare i seguenti
valeri che pessene apparire in egni
demlm precedentemente definiti per aicuni degli attribue‘ della relaziene STUDENTE: dem(Ne—
) = Numeri te-
me) = 140ml; dem(SSN} = Numeri_previdenza_seciale; dem(TelefeneDiCasa
v—oti.
i [efenimmlecalig dom(TelefeneUfiicie) = Numeri_telefenici_lecali. e dem(MV} = Medic
7.1.1 Domini, attributi, tuple e relazion .- Una relazieue (0 state (11 relazieneJ1 r delle schema di relaziene Rm” A2, ..., A ), iii—dice-
ordi-
che egni valore nel de- ) ta emcee con 11R), e 11.11 insieme di n-tuple r = {1b :2, .... m}. 0301 n-tupla r e 1111 elennce
ri atemici. Per atomlci si intende nate :11 n valeri : = <v,, v2, .... v,,>. dove ogni valeze v“ 1 S i S n, e an elemento di dem(A-)
ep-
Un dominie D e um insieme di valo elle relaz ienale. Un metedo ce-
le meno per quanto rlguaxda i1 mod
minio e indivisibile, per cui seno tratti i pere a uno speeiale valere null. 11 valore i—esime nella tupla r, che cenispend e all’attribult e A“
iste nelle specificare un tipo di dad, da e indicate con I[A,]. Sone anche usati commemente il termine intensiene di relaziene
per lo
mune per specificare un dominio cens specificar e un nome per il deminie. per
valori dei dad che formane il dominie. E anche utile schema R ed eslensiene di relazione per uno state di relazione r{R).
ni esempi di demini sane: In Figure 7.1 e ripenate un eeempie di una relaziene STUDENTE cerrispondente
alle sche-
aiutare a interpretatei suei valori. Alcu emite
cifre validj negli Stati Uniti; ma STUDENTE specificato septa. Ogni mpla della relaziene rappresent a una particelare
eme di numeri telefenici a 10
- NumerifltelefenicifiUSA: l'insi a 7 cifre validi all’inteme di uno smdente. La relaziene e rappiesentata graficamente con una tabella. in cui egni tupla
e rap.- :
eme di numerl telefenic i
- NumerLtelefeniciFlecali: l‘insi
Uniti;
specifice distretto telefonice negli Stati 9 cifre validi;
di numeri di previdenza sociale a
- Numeri_previdenza_sec'ale: 1’insieme
e anche usata
- Nomi: l'insieme dei nemi di persona; essere un nu— ' Si pas-la anche di lemma di rebuiene. Qui si ricorrera a tale lecuzione perché. ism
ic calcelate dei veti; egni media deve
- Medie_veti: pessibili valori delle med a una singela Lupin e riga.
pres o tra 0 e 4;
mere male [3. vixgela mobile) com
I] medeHe di datI. E vineeii e l’algebra relazienali 203
202 Capiteio 7

TeiefeneUtficie Eta MU
NDITIB d] ralezlen
e
/N‘Mmfl\\
\ k

Tamra-unloasa incfidzze Tammie Eli MV


{STUDENT'E Nome SEN
373-1816 2913 Lane null 19 3.21
, Bay! 30561-2435
3754409 125 Kllbyfiufi M 15 2.89
WASH” 331-62-1245
m-nm rlil 3452a "NS-1253 25 5.53 Figure 1.2 La relazione STUDEMTE (11 Figure 7.1. con un ordina diverse delle tupra.
/ Dlekflawdenn
375-9821 265 Lark Lana 749-5482 28 3.93
Tupée #4 Durham 489—22-11D0
W1 7384 FernanaLam rm. ‘9 3.25
WSW 553459-1233

Figure 7.1 GII attributl e le tupte dl una relazlene STUDENTE. Ordinamento delle tuple in una relnziane. Una reiazione e definite eeme un insierne di tu—
ple. Da un punte di vista matematice gli eiernenti di urt insierne non hanno mess-an ardr'ne; per-
cie 1e tuple in una reiaziene non presenta'ne alcun ordine particulars. In 1111 file, invece, i re-
che indica un
presentata con una riga e egni ate-ibute corrisponde a un‘intestazione di coienna cord sene memorizzati fisicamente su disco, cesicché c’e sempre un ordine tra 1 record. Que-
in queila eelenna. IvaIeri null: rappresen tane at- sto ordinamente indica i1 prime, il secende. l’i—esime e l'ultime record del file. Auaiegamen-
ruelo e un'interpretaziene dei valori presemi
i cui valeri sene sconesciu ti 0 non esisteno per alcuue singeie mple di STUDENTE. to, quaudo si rappresenta graficamente una relazione con una tabella. le righe some mestrate
tributi
Una re-
La defmizione septa data di relazione pub essere rflomulara nel mode seguente. in nu ceno ordine. -
dom(A,},‘ demon). ...,
lazione r(R) é una relaziene matematica di grade n sui demini L’erdinamente delle tuple non fa pane della definiziene di una relaziene, perché una rela-
defimscene R:
denim“). ciee e un settoinsieme del predette cartesiane dei demini cite ziene tenta di rappresentare fatti a liveile legico o astratto. In one relaziene pessono essere
specificati meiti ordini legici; ad esempio, 1e tuple nella relaziene STUDENTE di Figura 7.1 po—
r(R) t; {dem(A,) x demmz) x x dom(A,,)) trebbere essere logicamente ordinate per valori di Nome, SSN, Eta e quaiche altre attribute. La
dei demini sette— definiziene di relaziene non specifica aicun ordine: non c'e netsuna preferenza per un erdi-
11 predette cartesiane specifica tutte 1e possibili cembinazioni di valeri namente legice rispetto a nu altre. Pereie la relaziene rappresentata graficameute in Figura 7.2
Die sup-
stanti. Percie. se si indica con IDI i1 numere di valeri o cardinaiith d1 un dermme e considerate idenfica a quella meslrata in Figure 7.1. Quande una relaziene viene imple-
che tutti i domini siane finiti. i1 numere tetale di tuple del predotte cartesmne e:
peniame mentata con un file, pub essere specificate un erdinamente fisico sui record dei fiie.
ldem(A,){ * Idommz)! * * ldom(A,,)l
Ordinamento dei valeri all’interne di una tnpla e definizione alternative di relazione. Se-
in un date istante d1
Al di 12 di tutte queste pessibili cembinazieni, une state :11 reiaeiene condo Ia definiziene precedente di reiaziene, una n-tupla (’5 un elence ordinate di :1 valori. ce—
relazione — rispecchj a solo is tuple vahde che rappresentano une sicché i’erdinamente dei valori in una tupla — e percie degii attributi nella definiziene di une
tempo — 10 state cerrente di
del monde reale, cam-
state particeiare del mendo reale. In generaie. quande cambia ie state schema di relazione — é importante. Cemunque, a livelle logice, l‘ordiue degli attributi e dei
Le schema R e uwece re—
bia anche la reiaziene, trasferruandesi in uu altro state di relaziene. lere valeri nor: a realmente importante. purché sia mautenuta la 'cerrispondenza tra attributi e
come risultato del—
lativamente statico e non cambia se non moito raramente — ad esempio, valeri. -
per rappresen tare nueve infermaz ioni non memerizz ate ongmana- Pue eSSere data una definiziene alternative di relaziene. Che rende non necesmrio l’erdin
l’aggiunta di un attribute,
. . . . . namente dei valeri in una tupla. In questa definjziene une Schema di relaziene R = {A;. A2,
mente nella reiazierle.
pie attributi abbiane ie sresse dominie. Gh' attributl inchcane meli, e m- Au} a un inflame di attributi, e una relazione (R) e on insieme finite di trasformazieni r =
E pessibile che
. lo stesse derm-
terpretazioni, diversi per il deminie. Ad esernpie. nella relaziene STUDENTE U.» :2. .... rm}. dove ogni lupla r! e una trasfemaziene da R a D, e D e l‘uniene dei demini de-
leeali svolge i1 ruelo di TelefonoD iCasa. che fa riferiment e al "lelefe- 5. 811' attributi; cioe D = dem(A,) U dem(A3) U ...U durum"). In questa definizione. r[A,] deve
nie Numeri telefonieifi
o a1 “telefene del-
no di case 5 11110 studente”, e il ruole di TelefenoUflicio, che fa riferiment essere in dem(A,-) per 1 S i S n, qualsiasi sia 1a trasfermaziene e: di r. Ogni trasi‘ormaziene r, e
l‘ufifieie delle studente". detta tupla. -
Seconde questa definiziene una tupla pub essere censiderata un insieme di ceppie (<_attr_i
butt», <valore>). e egni ceppia femisce il valere deila trasformaziene da un attribute A. 3.“.
_valere v, del den-[Mi]. L‘erdinamento deglj attributi non e importante, perehé con i} valete'dél
7.1.2 Caratteristiche delle relazioni l’attribute compare il sue meme. Secendo questa definizione, 1e due tuple mestrate' “Fifi
7.3 seno identiche. Cie ha sense a liveiie logiee e astratte, date che non c’e verame
La definiziene di reiazieue data in precedenza perta con 56 eerte caratteristiche che rendene na Iagiene per preferire ehe in una tupla ii valere di un attribute si presenti pric'ia
reia ‘ diver un fileeda una Isabella. l __
FF—E r_
. . . . _,-,-
._......... --—..3 3M W

ll mudellu di dati, i vincull e l’algebra relazionali 205


204 Capitulo 7

gima tupla asserisce i1 fatto she :96. um) STUDENTE con nume Benjamin Bayer, SSN 305-61-
- _ ndirizzo, 3452 Sign Road).
3.53»
t“ < (“mm Dick ”mum‘s“ 422” ‘mmm‘fimflaflm 23M.
335. Eta 19 e 0051 via.
1 noti che alcune relaziuni possuno rappresentare fatti su entitd, mentre altre relaziuni
sono rappresentare fatti su associaziuni. Ad esempio, unu schema di relazione
. 3, 016K BMW),{55N‘ 1122-11-23.?[311331 25%
,Ec_PFlINCIPALI (SSNStudente. CodiceDipartimentu} asserisce che studenti si specializza-
t = < und'm' 3452 Bglgmnfigfigone-tzssuam. 3531.6dafm00'm "”"1’ m djpartimenti universitati; una tupla in questa relaziune collega unu studente a1 5110 di-
fa parts defla d eflnlzlune
di
i attribufl e da! vatori nun . entu di specializzaziune principale. Quindi, il modello relazionale rappresenta unifor-
ttche quandu t'ordlne degl
Figure “L3 Due tupta tden
relaztona. meme. come relazioni. fatti su entita e an associazioni.
Un‘interpretazione alternative di uno schema di relaziune consiste ne] vederlo come un
cato; in questo case i valori in ogni rupla sono interpretati come valun' che soddisfano i1
. . . ante
. . . 50:10 urin ia: iiialinatm. dICBtD. Questa intexpretazione e piuttustu uLile nel contesto dei linguaggi di programma-
ta cun un file. gh attn butt
lementa
Quandu una relazione e imp ne d1 tl'lefiamufi 1;“)t la [maim- " e logica. come i] PROLOG. perché consent: di usaIe i1 modellu relazionale con questi lim-
vena usata la prima definizlu
come carnpi di un record. Qui essa semp ca
tupie Juno ordinari, perché
buti e '1 valori all'intemo delle
pin generale.
ne. La definizione altemativa e pert:
. . . . . . . t“1:13ae 0-
leflliecg
Ogn i valu re in una tupl a 5 un valure stunner), (gee 1.113311 :ffé -o 3 Nutazione del modello relazionale
Valuri nelle tuple. base i. :rcua .1:01 .13 ch: 5“ (lieu
del modellu relazionaledi
ti componenti. usandu la struttura (lemme deua assumenc
[5i veda i1 Cap itolu 3) non some common. Mo ta nostra presentazione verra usata la notaziune seguente:
sti e multivalure ta assu reselntafi Emma rela—
ale e stata svilu ppata tenendo presente ques
'11 mud ello rela zion re liaPFu-ibuti che m3 costitui-
attributi mulnvalure devono essg 'u schema di relazione R di grade 11 e indicate cun R(A,. A2. .... A”);
di prima fol-ma nan-male.2 Gli l ag :1e tent“) d1 muovere n-tupla I di una relaziune :{R} e indicata con t: <v,. v,, v,,>, dove v, e il valure cur-
posti sonu rappresentau solo
ziuni separate, e gli attributi com sul mod ellu re azfto n a “male 0 Islam)“ §'pundente all’attributo Ar. La notaziune seguente si riferisce ai valuri cumponenti delle
. Recenfi ricer cl'le
scuno le eumponenti semplici al arm 'Lple:
etto di relamone non in prim
queste restrizjuni usandu il conc eta t[A;] sia IA! si riferiscuno a1 valore vj di I per l’attributo 11,;
uscmu u
a tupla pussunu essere scun ia r[A,,, Aw, .... AI} sia MA“. A... .... At), dove A", Aw, .... A, e una lista di attributi di R. si
i all‘intemo di una specifie i te—u .
“5:935:11?$632111 attribut un
. valu . re spe
. .cial s. dett
etfiv erisconu alla suttotupla di : di valoxi <v,,, v". .... vz> eon-ispundenti agli atuibuti Spe-
esse re ertin enti pet que lla tupla. In questi e931 si usa io no” a
ssonu non entam qnenzfllgngealunfgg ifieati nella lista;
o. alcune mple studente pres
5:1“. In Figura 7.1. a1; esempi (0351a 1 ma dam d; casa , Pre-
studenti non hanno un uffieio ettere Q. R e S indicano nomi di relaziuni:
lefoni d‘ufficio. perche questi ente ha un valoére 11:11:: Earle; “on He e now
i1 nume- ettere q, r, s indieano stati di relazione;
). Un altro stud
pem'nente per-questi studenti h eel _ r' i di “hr -l “um , com e ad
ettere r, u, v indicanu tuple.
non ha telefunu oppure perc
sumibilmente perché a casa e inc alg a” o “attr ibut e nun perti‘ eneraie. il nume di unu schema (fi relazione, come ad esempiu STUDENTE, indica an-
In generale si pussonu aver
:0 (i1 valore e sconcsciuto). ugivimhpi :11 “101-1 nulli. L’tn
-
l’insieme correlate di tuple in quefla relaziune — 10 state con-ems di relazione — men-
ore sco nus eiut yl “valet-e esistente inn non disp
esempio “val ,TUDENTE (Nome, SSN. ...) fa fiferimentu solo allu schema dj relazione:
rivelato
ifijiefleafifecfifsztfirs . dgiude . llo relazionale si e éruibutu A pub essere cuntraddistinto con 11 nome di relaziune cui appartiene usando la
vaoss
13"- Edfi
es“ EUP’tii‘ on llbik
nu
flam' e 13H Clu" e (it que sto ltbro . ' zione puma (do: notation) RA - ad esempio. STUDENTE.Nome o STUDENTEEta. Que—
a va a] di 1a dellu scop
31:22:12: 1121:1333; samplet rché Io stesso name pub essere usato per due attributi presenti in relazioni diverse.
2;:
e puu esszrilmtrzil-gfiit: 3:2 . specy‘ica relazione. invece. tutti i numi d'z attribute devunu essere diversi.
zione. Lo schema di relaziun
Interpretazione di una rela lo sch em; e am1 ssu m Telefuno
di asserzione. Ad 65811111310, sempio, si consideri la tupla r = <‘Barbara Benson‘, '533-69-1238’. 339-8451".
dichiarazione. ossia un tipo un’e ntité studente ha ua 0113:1319
; magma Pm per
she . in gen eral e. ntana Lane‘, null, 19. 3,25> della nelaziune STUDENTE di Figura 7.1; 81 ha dNomel " '
di Figure 7.1 asse risce
‘ttN. 03121 1e{:3 5set -5101 15, Per esempio, 1?;
Telefunoficiu, un’E ta e una a Benson‘) e (ISSN, MU. Eta] = <‘533-69-1238’. 3,25, 19>.
DiCasa. un Indirizzo, un
fatto a una particulare istanza
db essere interpletata come un

'_____‘______-———
‘ magglor
zzata m ' net (359’ 1q 1 4.
' dettaglm
‘ Quests assunzione verrh mali
ll medello di dati. i Uincell e l‘atgebra relazienall' 211
210 Capitele 7

in relazieni di— l. gli attnbuli Preseriti‘in FK hanne gii stessi demini deglj attributi di chiave primaria PK (pri-
etti diversi pessene avere lo stesse meme
parte, attributi che rappresentane cenc attribute NOME sia per NOME_P di PHO- 2 mary key) d1. R3; 51. dice che gli attribufi PK riferiscene e fame riferimento alla relaziene R2;
usate i1 meme di
verse. Ad esernpie, si peIIebbe aver uti che condi- . tin valere d1 FK in una mpla r, delie state cerrente r,(R;) e e presente come vaiere di PK
: in queste case si awebbere due attrib
GETTO sia per NDMEJJ di DIPAHTIMENTO - nemi di pregetli in una qualche tupla t2 nelle state oer-rente r2(R2) o e nulls. Nel prime case si ha r [PK] =
cencetti diversi del mende reale
videne le stesse neme ma rappresentane _ tziPK] e 51 dice che la tupla t, rifen'sce e fa riferimente alla tupla :2. R, e detta reiaaiene
e nemi di dipartimenfi. ne che le sies- riferente (0551a che fa riferimemo) e R; relazione riferita (e alla quale si fa riferimento).
lle relazienale e state fatta i‘asslmzie
in quaiche versiene iniziale del mede debb a avers nemi di attri-
esentate da an attrib ute. f3 In aria 33:6 d1 clan cert melte reiazieni ci sene generalmente melti vineeli di integrita re-
so cencette del mondo reaie. quando rappr concerto del mende rea<
Cie crea probl emi quand e lo stesso reimlna e. _ r specrficare questi vmceh occurre prime di tutte avere una chiara cemprensie-
bute identici in tutte 1e relazieni. pie. i1 cence tto di nu-
si neila stessa reiaziene. Ad esem ileb e sgmficateae rue‘lei Prepne di ogni insieme di attributi nei vati schemi di relaziene del-
1e e usato cen ruoli {significatD diver
relaziene IMPIEEATO di Figura 7.5: una
due volts nella a ‘ase d1 den. I vmceli d1 Integnta referenziale nascene tipicamente dalle associazionifia ie
mere di previdenza seciale compare ruele di nume-
ruele di nume re di previ denza seciale deli'impiegate e una velta nel errata rappresentate dagli schemi di relaziene. Ad esempio. si censideri la base di dati mostrata
volta nel diver si di attribute — SSN
. Qui seno stati dati lore nemi m Figure 7.6. Neiia relaziene IMPIEGATO, l’atu-ibme N D fa riferimente al dipartimento er i1
ro di prefidenza seciale del supervisere signifi cato.
distin guere i1 rispe ttive quale l impregate lavera; percie si designa N_D come c-hiave esterna di IMPIEGATO che Ea '
e SUPERSSN. rispettivamente - per peter Data Defi—
linguaggie di definiziene di dati (DDL: fenmerite alla relaziene DIPAHTIMENTO. Cie significa che mi valore di hi D in egni tt‘i la r d:
Ogni DBMS reiazionaie deve avere un ienale . Gene rslmente i DBMS
a di base di dati relaz la relazmne IMPIEGATO deve aceerdarsi a un vaIere delia chiave primer-1:1 di DI PAHTlIJMEtiTO —
nition Language) per definire une schem nel Para-
SQL. Qui si presenter?! SQL ceme DDL I attribute NUMERO_D — presente in qualche tupla f2 della relazione DIPARTIMENTO e are il
relazienaii eerrenti usano a queste scope
valere d1 NTD pita essere nuiio se l’impiegato non fa parte di nessun dipartimente in I?P la
grafe 8.1. ta che
su Line schema di base di dati e ci si aspet tupla per i’impiegate 'John Smith’ riferisce la mpla del dipaifimente ‘Ricerca' iriclicangdura
I vincoii di integrita vengone specificati ai Vince li sul deminie e ai Vinceli
di quell e schem a. Oltre si che ‘Jehn Smith’ lavera per queste dipartimente. . 0 60‘
valgano su egni state di base di dati rita del-
derati parte del modelle relazienale: integ S]. neti che una chiave estema pubfar fiferimenta aiia sua stessa reiaziane di appurtenan-
di chiave, altri due tipi di Vinceli sene censi
l’entita e integrita referenziaie. za. Ad esemple, l’attribute SUPEHSSN in IMPIEGATO fa fiferimente a1 supervisore di Im IM -
:IEQQTO, queste e mi altre’impiegate. rappresentate da una tupla delia relaziene IMPIEGATO.
ercr SUPERBSN_e una cluave estema che nferisce la stessa relazienc IMPIEGATU; In figura
1a tupla per l’rmpiegate ‘Jehn Smith’ riferisce 1a rupla per l'irnpiegate ‘Franklin Wen ’ indi
renziale e chiavi
7.2.4 Integrit‘a dell‘entita, integrita refe cande cesliche ‘Franklin Weng’ e il supervisere di 'Jehn Smith’. g ‘ -
esterne E possrbiie ragpresentare diagrammaticamenre i vincoii di' integrim referenziaie dise—
gnande un arce orientate da ciascuna chiave cstema verso Ia relaziene che essa riferisce Per
aria pee esserc
lisee che nessun valere di chiave prim Eflfifia ia puma (tile greccia pub puntare alla chiave primarla deila relaziene riferita. In Fi-
Ii vincole di integrita dell’entita stabi iden tifica re 1e singe ie tupie di una rappre-
e prim aria e usato per e sche13;:' Figure
Viene mes intogusto
sentafi. meme“: ' 7 .5 can I' vmcell
' ' referenzmle
' d1' mtegnta
' ‘
nuile. Queste perché i1 valere di chiav il non peter ident ificare alcune
e primaria cemporta
reiaziene; avere valeri nulii per la chiav in cerris pendenza alle lore
avess ere un vaier e nufle .Sulle schema di base di dati relazienale devrebbere essere specificati tutti i Vincoli di in—
tuple. Ad esempie. 5e due 0 pit tupie
e in grade di distinguerle. tegnta. ac 51 desidera imperre questi vineeli 31:i stati deila base di dati. Percie il DDB cem-
chiavi primarie. si petrebbe nen esser singele relazio-
integ rita dell‘entita sene specificati sulle .' preride strumenti per specificare i vari tipi di Vinceli in mede taie che i1 DBMS pessa aute-
I vinceli di chiave e i Vinceii di relaz ieni ed a usato per mantene-
ni. 11 vineole di integrite referenzia
le e specificate fra due _ Ea:;1a:;1e::fi,mgtt:1i. Ls maggier pane dei DBMS reiazienaii suppertai Vinceli di chiave e di
io di integ rita referen-
relazierfi. Infermaimente, il vinee Vincofi fa Pane muta a an e
enElenaedefinmonelg:113:: '
' referenmale.
l "mtegnta '
La specrfieazwne' d1' quest]'
re 13 censistenza fra tuple delle due fa riferi men te a un'a ltra relaz iene deve far
relaziene che
ziaie stabilisce che una tupla in una Figu re 7.6. 1‘ attribute N_D
a reiaziene. Ad esempie, in I viriceli di integrita precedentemente visti nen cemprendene un‘ampia ciasse di vinceli
riferimente a una mph: esisrenre in quell il quaie egni impie gate lavera; percie
di IMPIEGATO femisce i1 numere del
dipartimen to per generall. detti talera vim-cit di integrita semniici, che qualche velta devene essere specifica-
RO_D di una qual-
deve accerdarsi cen i1 vaiere di NUME ti e impose SH una base di dati relazienale. Esempi di questi vineeli some “to stipendie di un
il sue valere in egni tupla IMPIEGATO
che tupla nelia relaziene DIPAHTIMENTO
.
ette di unpiegate i101} devreb‘be superare lo stipendie del supervisor-e dell‘impiegate” e “il numere
referenziale, definiame dappxima i1 cenc massune d1 ere settimanaii che un impiegate pub [averare su tutti i pregetti a 56“. Questi vin-
Per definire pii‘i fonnalmente l’integrita , specificane un Vinceie di integrita
e estema, date sette ceh peasene essere specificati e impesti usande un linguaggie di specificazione dei Vincoli
achieve estema. Le cendizieni di ehiav {foreign key) nel—
di relaziene R, e R,. Un insieme di attributi FK tit use generaie (generai purpose). Pessene essere usati meccanismi detti trigger e asserzie-
referenziale tra i due schemi R , che riferi sce la relaz iene R2 se seddisfa
le schema di relaziene R , e una chiav
e esterna di In. In SQL2 51 usa a queste scope i1 cemande CREATE ASSERTION {3i veda i1 Capitele 8).
1e seguenfi due regole:
|| modello di dati. i Vinceli e l'algebra relazionali 217
216 Capiteie 7

nueva relazione, che <uome di attribute><op di oonfrente><valere eestante). e


ficare 1e richieste di reeupero fendamentaii. [l risultate del reeupero a una
una 0 pin relazieni . Le eperazie ru deli‘algebra, pereic‘),
pub essere stata formata a partire da <neme di attribute><ep di confronto><neme di attribute:-
o uuove reiazieni , 1e quaii pesseno essere ulterierm ente manipula te usande opera-
preducen
di eperazie ni di algebra relaziena ie format un’e-
zieni della stessa algebra. Una sequenza dove <neme di attribute> e il Home di un attribute di R, <ep di eenfrento> e di solite une de»
ne dell’alge bra relazion aie, il eui :isuimto a ancora una relaziene.
spressio gli operator-i {=. <, S, >, 2. at}. e (valere cestante> e on valere cestante del deminie dell'at-
due gruppi. Uu gruppo
Le operazieni dell'algebra relazionale sene generalmente divise in tribute. Le ciausele pessene essere unite arbiu-ariameme tramite gli operateri beeleani AND.
eperazie ui insiemis tiche proprie deila tee'ria matema tiea degli insierni; ease sene
cemprende OR. e NOT per formare una condizione di seieziene generals. Ad esernpie. per selezionare 1e
di tuple e comprendoue UNIO-
utilizzabili perché per defioizione ogni relazione a un insieme tuple relative a tutti gii impiegati cite leverauo nel dipartimeute 4 e guadagnane piu di 25.000
EZIONE , DIFFER ENZA e PRODU I'DO CARTE SIANO. L‘aitro gruppe e cem-
NE, INTERS dollar-i all‘anno, oppure che lavorane nel dipartimento 5 e guadagnaue piD di 30.000 doliari.
te per le basi di dati relazieuali; esse cemprende-
pesto da operazioni specificameute sviluppa e possibile specificare la seguente operazieue di SELEZIONE:
SELBZI ONE, PROIEZ IONE e JOIN (GIUNZ IONE). Si esamineraune qui per
nu, ma. 1’ alu'e.
IONE‘ perché seuo 1e piu sempiici, quindi si
prime 1:: operazioru di SELEZION‘E. e PROIEZ “raj-4 AND srrilamrmnsenm on {u_u=5 um srrr:unre>3meui(IMPI EGATO)
ni insierrus tiohe e infine a1 JOIN e ad altre eperazie ni cempiesse. Per gii
passera alle operazie
mestrata in Figura 7.6.
esempi verra usata la base di dati relazienaie I] risuitate e mestrate in Figura 7.8(a). Si noti che gli operatori di cenfronto neil’insieme
pertate a termine eon 1e ope-
Alcuue cemuni richieste alla base di dati nen pessene essere {=. <, S, >. 2, #} si applicano ad attributi i cui dorujni some costituiti da valori erdinan', come
ue operazio ni aggiuntive (si veda il Para-
razieni di base dell‘algebra relazienale e richiedo ad esempie demini numeriei o costituiti da date. I demirti di stringhe di caratteri sene consi-
grafo 7.5). derati erdinafi sulla base del cenfrento ordinate dei caratteri della sequenza. Se i] domiuie di
un atuibuto-e un insieme di valan' mm ordinari, aliora pessene essere usati solamente gli ope-
rator-1 di confronte che faeuo parte deli'iusieme {=, at}. Un esernpie di deminio nen ordinate
3'1} dominio Coiore = {rosse, biu, verde, bianee. gialle. ...] in cui non e specificate nessuu er-
7.4.1 L'eperazione di SELEZIONE dme Era i vari celeri. Alcuui domini consentene tipi supplementari di eperateri di cenfronte;
ad esempie. un demirue di stringhe di earatteri pub consentire i’eperatere di cenfrente SOT-
eme di tuple di una relazie- T‘OSTRINGA_DI.
L’eperazione di SELEZIONE e usata per selezienare un sertoinsi
ne di selezione . Si puo censider are tale operazione come no fil- In generale, i1 risultate di un’operazioue di SELEZIONE pub essere determinate come se—
ne che soddisfa uua condizie
cendizio ne quaiifioa ute. Ad esempio. per gue. La <cendizieue di selezioue> e applicata indipendentemeute a ciascuna tupla I di R, se-
tro che tratLiene solo queile tuple che soddisfaue uua
TO il eui dipartim ente e 4, oppure quelle il cui stipendio supe— strtuende ogni eccerreuza di uu attribute A, nella cendiziene di seieziene con il sue valere nei-
selezionare 1e tuple di IMPIEGA
di queste due cendizieni con la tupla :[Au]. Se la cendiziene e valutata vera, allora 1a tupla Iviene selezionata. Nel Iisulta-
ra i 30.000 dollari. si pub specificare individualmente ognuua
un‘eperazieue di SELEZIONE nel mode seguente:

GUMUMP IEGATO) supenssu PLO


{a} mum warm comet-IE 55:; mm: munuzo SESSD 511mm
rm T Wang 333445555 195512433 BESMbaSstunTX M mono
USTIFENDIm3m(IMPIEGA-ro) mm: s Ween new 1941mm mammalian F tame
Rurnmh K Nil-cyan 065854444 1W-09—15 975mm”: M 35M

in generale l‘eperaziene e indicata eon:


id
Uncond'm'me rJi 5:lcz|oM?(R)

NE e [a condizione di
dove '11 simbelo e (sigma) e usate per denotare l’eperatere di SELEZIO
e un’espres sieue beeleana specifiea ta sugii attributi della relazione R. Si uoti che R
seleziene
a una. relaziene; l‘e-
e generalmente un‘espmssionc dell'algebm refazienaie ii cui risuitate
defla base di dati. La
spressiene piu sempliee e cestituita seltanto dal nome di una relaziene
di R. L’espressiene
relaziene risultante dall‘eperaziene di SELEZIONE ha gli sressz‘ arm'buti
numere di clausole - --
- -3-rimummrfm
beeleaua specificata in <ceudizione di seiezione> e eestituita da un eerie Figure 13 Filauitati dafle eperazioni di SELEZIONE a PFIOIEZIONE - (a) enLn=4 Mm
- . ParrmmrML FMPIEGATDL 63] 17mm: mm. mm [Jul-{NIJHFE’IEGATOL (C) “unseat-LIE“.
I d- rma: ! '
v‘ . $1.5. - .
“—‘w n‘ “imam“fl" ”*_Hfl “"h-
I! modello di dati. i vincoii e J‘algebra relazionali 227
220 Capitolo 7

con cui si snnu definite la SELEZIONE c 121 PROIEZIONE. L’ operazione di RIDENOMENA-


ta} 'Wfi- “PF-"9'0 ZIONE generale. quando applicata a una relazione R di grade n, e denotata con
JO?“ Skill m
Flam M some
Human Mm 3mm]
M
Pam“. MR) 0 Ps‘i-R) 0 wsnit-R)
m Wm

dove il simbolo p (rho) é usatu per indicarc l‘operatorc dj RJDENOMINAZIONE, S e il nuc—


vo nome defla relazione. e 3,, B}, ..., B” sono i nuovi nomi degli attributi. La prima espressio-
ne dh un norm: nuovo sia aila relaz‘mne sia ai suoi attributi, la seconds. solo afla relazione, e la
terza solo agii attributi. Se gli amibuti di R sono [A,, A2, A") in quest‘ordine, allora ogni Ag.
6 ridenominato come Bi.

7.4.4 Operazioni insiemistiche

. - IEGATan. . (b) La 1] gruppo successive cli operazioni di algebra relazionale é costituito dalic usualj operazioni
' . Rlsuflatl d! as ressioni dE a1gabra relazmnfile- (a) “unuLun. mum. VII-mmkv-figmp dagll. aflHbUfi-
ne
Figure 7 9 stessa esprespslone con i‘uso di relazioni lntermedle e della ridenomlnazm matcmafiche 511i insicmi. Ad esempio. per recuperare i numeri di previdcnza sociale di tutti
gli impiegafi che o lavorano n51 dipanjmento 5 o sorvegljano direttamente un impiegam che
iavora nei diparrimcnto 5, si pub usarc i’opcrazionc di UNIONE nel mode scguente:

ogni relazione intenncdia: IMP_DIP5 <— au_n,,(IMPIEGATO)


IMP_DIP5 (— O'LMHMPIEGATO) HISULTATD1 «- usaflumpgms)
RISULTATG (- fiuuugsnn. mucus. s11»:unm(IMP_D:P5) RISULTAT02(SSN) e— fisumm(IMP_DIP5)
ssa di operazioni, specificands re-
Spesso é pifi sempiice suddividcre una sequenza comple HISULTATO <— RISULTATO1 u HISULTAT02
risultat o interme dio, piuttost o che scnvere una suigola espressions
lazioni Che fomiscono un
ariche pes fidsnormnare gh a-tmbuti
di algebra relazionala E possibile usarc. questa tecnica La reiazione RISULTATm conticnci numcri di previdenza social: di tutti gli impiegati che
del risultato. Come si vedra m segulto , mat-pub essere umie coil
delle relazioni intennedie 6 lavorano nei dipartimento 5, menu-e RISULTATOZ comicne i numeri di previdenza sociale di
6 i1 1013. Fair ncienommare gll attu—
operazioni pit complesse, come ad esempio l’UNIONiE. tutti gli impiegati che survegliano direttamcnte un impiegato che lavora ncl dipartimento 5.
o semplic emente inonu dei nuow attribuu tra parasite-.51. come.
bun’ di una relazione. si clencan L’operaziune di UNIONE fornisce 1e ruple che some 0 in HISULTAT01 o in RISULTATOZ o in
nell‘esempio segucnte: enu‘ambi (Figure: 7.10).
Molt: uperazioni sugfi insiemi vengono usate per fondsre gli elementi di due insiemi in
TEmP (w aN_a,,(IMPIEGAT0)
m‘g‘rE MP)
amome {JI_BATTESIMO, NOME_DI_FAMIGLIA. STIFENDIO) +— nflmjnncmm
Se mm B stats. escguitsnes- FIISULTATO1 SSN RISULWOQ SSN HISULTATO SSN
Le due operaziani 50pm vista some illustrate in Figura 7.903). 333445555
e risultante di un’operazmne d1 :SE-
suna ridenominazione, i nomi degli attributi nella relazion 883665555
presenti sells stesso Didi-I16:
LEZIONE 50:10 uguali a quellj della relazione originale c 50110
ne di PROL'EZ IONE senza ridennmi nazionle , la relazione nsuitante ha nfmu 61
Per un’ upgrazio
della proiczion e 6 mile stesso ordme con c111 com-
attributi uguali a quelli prescnti neila lista ‘
.
paiono nella lista.
zione (ii REENO MINAZI ONE F che pub ndcnomi v wane Hiauhato di un‘intarrogaziona dope l'operazione di UNIONE: HISULTATO +— HISULTATN U
E possibile anche dafinim un’opera
._-: ;.... .1»...— ' mid-21' ‘l-wt' tra hi—inmodo_analogoaqueilo RISLILTATO2.
t___..-—— LEW” “fl“ ffla» 3"" ":fl m - Ell—F- '- ,1- , i V, -- I _-mm§- --
-'.'.-... . ., “a .. . t.' ,. I
ll modallo di datl. I vincoli e I’algebra relazionali 223

222 Capitolo 7

NZA. ‘33 BATT COGNOME


ONE, l’INTERSEZIONE e la DIFFERE
modi diversi; fra queste, in pmticolare, l‘UNl a a due insiem i. Quan do quests
na di esse si applic
Si traits. di operazioni binarie, cioe ciascu ognuna
ionali. le due relazioni su cui e eseguita
operazioni sono adattate a basi di dati relaz tuple ; quest a condi zione e detta
lo stesso tipo di
delle tre operazioni supra viste deve avere .... A") e S(B,. B2. ..., B") sono
relazioni R(A;. A2.
compatibilim all’unione. Si dice che due .) = dom( B,) per 1 S i S n. Cio
stesso grade :1 e se denim
compatibili all’unione se hanno lo -
numero di atuibuti e che ogni coppia di attribu
significa che le due relazioni hanno lo stesso '
ti corfispondenti ha 10 stesso dominio. ione nel
su due relazioni R e S compatibili all'un T
F. possibile definite queste tre operazioni M (C) N_B
Susan You
modo seguente:
ione che com— Shah
zione. indicate con R U S. e una relaz
HBI‘HEEI'I
- UNIONE: i1 risultato di questa opera sia in S. Le tuple duplic ate vengono
in S o sia in R
prende tutte 1e tuple che sono in R o
eliminate; iende tutte
te con R H S, e una relazione che camp
- INTERSEZIONE: i1 risultato, indica
le tuple che sono sia in R sia in S; rende tutte 1e tu-
ato con R —- S, e una relazione che comp
' DIFFERENZA: i1 risult'ato. indic
ple che some in R ma mm in S.
i nomi di
la quale la relazione risultante ha gli stess
Si adottera qui la convenzione secondo 1e tre opera zioni. Le relazioni
a 7.11 50510 illustrate
attributi della prime relazione R. In Figur e 1e loro tuple rap-
STUDENTE e ASSISTENTE in Figura 111(
3) sono comp atibil i all’un ione, ‘93 BATl’ COGNOME
perazione cli (d,
tenti, rispettivamente. Il risultato dell’o
presentano i nomi di studenti e assis
John
di tutti gli stude nti e gli assis tenti. Si noti che le tu—
UNION'E in Figure 7‘1 1(1)) mosIIai nomi di INTER—
nel risultato. Il xisultato dell‘opcrazionc
ple duplicate sono presenti solo una volta sia stude nti sia assistenfi. Si noti che
solo color o che sono
SEZION'E (Figura 7.11c) contiene
sono operazioni commutative, cioe
sia l'UNIONB sia l’INTERSEZIONE UNIONE, lNTERSEZlONE e DIFFERENZA. (a) Due
Figure 7.11 illustfazione deile operaztoni inslemtstiohe n ASSISTENTE. {d}
STUDENTE
ralaZIonl ccmpatlblli all'unlone. (b) STUDENTE U ASSISTENTE. (c)
RUS=SUReRflS=SnR STUDENTE - ASSISTENTE. {a} ASSISTENTE - STUDENTE‘
e applicabili a
essere trattate come operazioni n-an'
Sia l‘unione sia 1‘ intersezione possono i asso ciative. Cine:
ento che entrambe sono operazian
qualsiasi numero di relazioni dal mem n + m attributi 99%,, A2. .... A”.
to di R(A,. A2, ..., A") )< S(B,, Bz, ..., B”) e una relazione Q con
1T=Rfl(SnTJ quest’ordine. La relazion e risultant e Q presenta una tupla per ogni com-
RU(SUT}=(RUS)UTe(RflS)F 3,. 32. .... BM), presi in
nu tuple e S He he P15. allora R x S avra
binazione di tuple — una di R e una di 3. Percio, se R ha
commutativa, cioé. in generale applicat a da sola é generalm ente priva di significa to. E invece uti-
L‘operazione di DIFFERENZA 5 non nfl’“ a; tuple. L‘opera zione
degli attributi proveni enti dalle re-
le quando a seguita da una selezjone che accopp iai valori
enti. Ad esernpio , si suppong a di voler recuper aie per ogni impiegato cli sesso
R - S at S R lazioni compon
femininile un elenoo dei nomi delle persone a 5110 cation:
-
e in Figure
degli smdenfi che non sono assistenti,
In Figura 1.1 1(5) sono mostrati i non-ti
7.11(e) quelii degli assistenti che non
sono stude nti.
come PRO- IMP_SESSO_FEMM «- agissh-FHMPIEGATO)
DOTI‘O CARTESIANO - unto anche
Si consideri era 1‘ operazione di PRO TO {CROSS JOIN) —
T) o JOIN INCROCIA NOMI_IlalP (- nmwnmm m(IMP_SESSD_FEMM)
DOTTO INCROCIATO (CROSS PRODUC
encor e. di un‘op erazi one insiemistica binaria. ma le relazioni alle qua-
indicato con x; 51 tratta all‘unitme. Questa operazione e
li si applica nan devono necessaiiament
e essere compatibiii
rate, ii risulta— IMP_PERSONE_A_CARICO <— NOMLIMP x PERSONA_A__GAFIICO
da due relazioni in mode combinaton'o. In gene
utilizzata per unite tuple prese
224 Capitolo 7 ll modello dl dati. i vincnli e {‘algebra relazianalr 225

PERSONE_A_CARIGD_EFFETTIVE <— amasflfiIMP_PERSONE_A_CAH Ice) binare una tupla reiativa a un impiegato di sesso femminfle con la persene a suo calico — cioe
con la mple di PERSONA_A_CARICD i cui valori di SSN_I si accordano con il valore Iii SSN
HISULTATO <- Ttuoue_am, mam; mg:nsnm_a,mm(PERSONE_A_GAHI00_EFFETTIVE) della tupla di IMPIEGATO. La relazione PERSONE_A_CAHICO_EFFETTIVE realizza proprio
questo.
Le :eiazioni risultanti dalla sequenza di operazioni vista supra sono mostrate in Figura Il PRODOITO CARTESIANO dh luogo a tuple con tutti glj attributi propri defle due re—
7.12. La relazionc IMP_PEHSONE_A_GARIGO e il risultato dell’applicazione dell‘operazinne di lazioni. E possibiie poi effettuare una SELEZIONE delle sole tuple logicamente collegate del-
PRODOTID CARTESIANO a NOMI_IHP di Figura ”1.12 con PERSONA_A_CAFIICO di Figure ie due reiazioni specificando un’appropriata condizicne di selezione, come fatto ueli‘esempie
7.6. In IMP PERSONE_A_CAHICO, ogni tupla di NOMI_IMF si combina con ogni tupla di PEFl~ precedente. Date che questa sequenza ccstituita dal PRODO'ITO CARTESMNO seguito da
SONA_A_CA-i-2Ico, dandu un risultato che non e molto significafivo. Si vuoie invece qui com— una SELEZIONE e usata piuttosto fiequentemente per identificarc c selezionare tupie coile~
gate di due relazioni, é stata ideata un‘operazionc speciale, detta IOJN. per specificafla con
una singoia operazione.

STIFE’JDID SUFENN N.D

7.4.5 L’operazione di JOIN

L’nperazione di JOIN, indicate can M, e usata per unire mple Iogicameme coiiegare, prove-
Funmmp NOMLBATT ODGNOME 55" nienfi da due relazioni, in tuple singole. Essa B moito importantc per ogni base di dati rela-
Nldl Znhyl 999E???”
.hnnhr Wauna- 9m zionale che abbia piu di una relazione, perché consents di eseguire associazionj 11a reiaziom'.
Joya Wish 453m
A] fine di illustrate i1 join, si supponga di valet recuperare il name del direttore di ogm’ di-
panimento. A iaI fine oocorre unite ogni tupla di dipartimento con la tupla di impiegato il cui
valore di SSN si accords con il valore di SSN_£IIFI presente nella tupla del diparfimento. E pos-
sibfle fare cits usando l‘operazione di JOIN, e quindi proiettando i1 risultato sugli attn‘buti ne-
cessari nel mode segucnte:

DIFI_DIP1— DIPARTIMENTO Nssu_n1nm IMPI EGATO

H ISULTATO (— “WHIP. CDWNE, mflmLDI P)

La prima operazione e illustrate in Figura 7.13. Si noti che SSN__DIR 5 mm chiave estema
e (the i1 vincoio di integrité referenziale gioca un ruolo nell’avere tuple Che si accordano nel-
la relazione n'ferita IMPIEGATD. L’esempio septa utilizzato per illustrare I’operazicne di PRO-
DOTTO CARTESIANO pub essere specificato, usando I’operazione di JOIN. sostituendo 16
due operazioni:

IMP_PERSONE_A_GAHICO «— NOMI_IMP x PERSONA_A_CAFI100


PERSONE~A_GARICD_EFFETTIVE «— damflauuMP_PERSONE_A_GARIGO]
immacmmlmmgwlmq sen sew lmvmmms-Il mm |---
mwlmmlwm1 m1? M [MI1WM1'H
NOMEJD

i NSUIJA‘I'O Immfijmmaimmmwml
miter 1 Wm ] m Sufism 1

Figure 7.12 Un'iilustmzlone qall'operazloqg di FRODO‘ITO CARTESIANO. Figure 7.13 Illush'azinna dell'operazlnge dl JOIN ,5.
m.- _ .._._..- MM w-' M. w 4“.._..'
|| modeilo di dati. i vincoli e l'algebra ralazionali 233
232 Capitolo 7

7.5.2 Operazioni di chiusura ricorsiva


{a} In N_D N_DLIMPIEGAT‘I. S‘E1P_MEDIO
5 4 33250
3 31000
U11 alum tipn di operazione chc, in generals, non pub CSSBI'E specificata nell’algebta relazic-
4
‘1 1 55000 nlatle d1 base 31a chiusura ricorsiva. Questa operazione é applicata a un’associnzione ricor—
stva tra tuple dello stessn tipo. come ad esempio l‘associazione tra un impiegato a un super-
wsore. 'Dalt: associazione é descritta dalla clfiave estcrna SUPERSSN della relazione IMPIEGA-
fl?) To’nelle Plgure 7.6 e 7.7, che collega ogni tupla impiegato {1131 111010 di chi é sorvcgliato) a
un ultra tupla impiegato (n21 ruolo di supervisors). Un esempio di opcrazione ricorsiva consi-
stc 11.31 rucupurarc tutti gli impiegati sowegliati da un impiegato e (“e” come employee) a rut-
tt : uvc'lk _— c106, tutti glj impiegau' c' sorvegljati direttamente da 6, tutti gli impiegati c” sor-
veguztn duettamente da ognj impiegato e’. tutti gli impiegati c’" sorvegliati direttarnente da
ugtu musegato c", c ccsi via. Anche se in algebra relazionaic é semplice specificare tutti i
. “=1 COUNLSSN AVERAGESHPENDIO | mpiugatt soryegliati da e a uno spectfico livello, é dificilc specificare tutti quelfi sorvegliati
a 35125 | a ram 1 hveill. Ad escmpio, pct specificare gli SSN di tutu" glj impiegatj e' survegliati diretta-
FUNZIONE AGGREGATA. (a) RIFLE]. N_aI_IMFIEGAT
I, meme — a1 Iiveflo uno — dall‘impiegato e il cui nome E ‘James Borg’ (Figura 7.6), possono esc-
FIgura 7.18 Un'iilustrazione defl'uperazione di
OL (b) n_n 3‘ coum sat. amass mmmmfi'i‘FIE' _ gain: 11: seguenti operazioni:
5T1F_MEDID) "‘ u: i} coumsau. mamas .aIMFIEGAT
GATOJ- to) 3‘ cam-r mflsmaa snumnuuupl EGATO}.
3056.55“ ‘— fissu(°'m:_mn=umrmn CWM='Bn|g'(IMPIEGAT0)}

SUPERVISIONHSSNL ssuz) <- ttsmwpmsuflhlPIEGATo)


.
i1 risultato di questa operazione é mostrato in Figura 116(a)
Esta di nomi di attributi. - tra patente— RISULTATDKSSN) <— fiw1(SUPERVISIONE Magma“ BOHG__SSN)
Nell'csempio supra presentato E stata precisata una
ue risultante R. Se nun fosse eseguita
si nell‘operazione dj ridcnominazionc — per la relazio
ne risuitante corrispondente alla lista di
nessuna fidenominazione, ogni attribute della rclazio
concat enazio ne del nome di funzion e con il name di attribute nel- [Borg ha SSN uguale a385665555}
funzioni sarcbbe dato dalla
o, in Figura 7.160)} B mosu‘ato il risultato della (55M [SUFEHSSNJ
la fun-ma <funzione>_<attributo>. Ad asempi
segucntc operazione: SUPEHWSDONE ssm sswz
123456?89 333445555
333445555 888665555
[9% count 55". MMGE 5! I FENDIOtI ”P I EGATO)
99983}??? 98?654321

to, ls funzioni vetrebbero applicate 98?654321 833665555


Sc non venissem specificau' attributi di raggruppamen
cosicc hé 1a relazioue risultante much— 565834444 333445555
ai valon' degli attributi di tune Ie ruple della relaziune.
tisultato deila seguente opera-
453453453 333445555
io, in Figura 7.160;) e mostra to il
he mm 301:: rupla. Ad esemp 98W 93?654321
zione 1 388365555 nufl

(IMPIEGATO) Jmsuum1 ssu RISULTATOE SSN LEISULTATO


% OUUMT SSH. WME 5T1 FENDID SSN
ti quando viene applica- 333445555 123456?39 123456?89
E importante notate clue, in genetale, i duplicati nan sono elimina 9511354321 99958???? 999937???
taziune di funzioni come SUM
ta una fuuziune aggregata; cos'l facendo si usa 1a soljta iuterpre (Sowaglfafl da Bug} 666334444 636384444
i1 risultatu defl‘app licazion e di una funzione aggre-
e AVERAGE.“ Occorre sottoljnearc che 453453453 453453453
e. non uno actuate — anche 5e 6 oostituit o da un valore singolo.
gata é una ralazion 98?!!3798? 987987987

{Sonagllatl dal subanemr d! Borg} W .


987654321 '

- {mum-o1 u nIsutm'ruzls .
applicarc Ia funzione ag gregata e resa disponibile tra-
‘1 In SQL. l‘opzionc di eIimiuazione dci duplicati prima di ra 7.17 Un'lrrterrogazlone ricursiva a due livelii.
.
. rnitelwinento Wale QWSTENCT sivadailC imlo 8). -
Maya/4 .__,_.._._
_- I _ .23- I .. :rz h .. . _ .
Il medello di dati. E vinceli e l’algebra relazienati 243
242 Capitele 7

ZA_DI_TRATTA) ~ una per ogrti DATA nella quale c‘e effettivamente il vole. Per egei ve-
AERO‘PORTO le ci sono diverse TAHIFFE. Per eg‘ni istanza di tratta si memerizzane le prenatazioni
| eeetcwepemel NeME l en'rM srnreJ dei pesti (PRENOTAZIONE_PDSTI}, come anche l’AEHOPLANO usato su quella tratta e gli
erari effettivi di partenza e arrive, nonché gli aereperti effettivarnente utilizzati. Uri AE-
VOLO HOPLANO e identificate da mi ID_AEHGPLANO e ha une specifics TIPO_AEROPLANO.
NUMEFiO [COWMWEA' GDFINLSEI'I'IW FUELATTERHARE college He TIPO_AEROPLANO cen l‘AEROPOHTD su cui un aeroplane di
quel tipe pub attenare. U11 AERDPORTO e identificate da un CODICE_AEHOPORTO. Si spe~
WANOLO cifichine 1e seguenti interrogazieni in algebra relazienale.
mmm i
NUMEFlO VOLO l NUMEROJFWTA 150%m 1 me a. Per egni vole. si clenchi i1 numere del vole, l’aerepeno di partenza per la prima Irat—
OODICEAERUPORTOJRRNO | omntejfiavsremve J ta del vole e l‘aeropene d‘arrive per l‘ultima tratta del vole.
b. Si prepari un elence dei numeri di vole e dei giomi deila settimana per tutti i voli e
1e tratte di vole ehe panene dafi’Aeroporte Intercentinentale di Houston (codice ae-
lSTANZAfiLTHATTA
wumeptyosnpssmwalu [lemmL reporte ‘IAM’) e anivane all‘Aeroperte Intemazionale di Les Angeles (cedice ae-
NUMEFICLVOLO J NWEHOJMTA I em |
roporto ‘LAX’).
alemomwg c. Si elenchi i.l numero di vole. i1 cedice dell'aereperte di partenza, l'eran'o di parten—
CWRTOMNZA l enmem [mamm
za previste. i1 cediee dell’aeroperto di arrive, l‘erarie di arrive previste nenché i
TAHLFFE gierni della settimana di tutti i veli e 1e tratte di vele che partene da une degli aero-
WumnoyeLo leeelea'mmFFA] IMPOFfl‘Ol ummmmg] porti della cine. di Houston e arrivane a true degli aereperti della cine di Les Ange—
les.
1190fiEFlOF—‘LANO d. Si clenchine tutte 1e infermazioni sulle tariffs per il vole numero 'CO 197’.
rmnpo i Pastime |CA$LcesmurmE| e. Si recuperi il numere di pesti dispom'bili peril vole numero ‘CO 197‘ relative alla
data '1999—10—09',
PUO_ATI'ERRAHE . Si eonsideri un aggiemarnento della base di dati COMPAGNIA_AEREA, che inserisca una
Womanmfifiopwo 1 CODICEJAEROPORTO j prenotaziene 31: mm speeifico vole o tratta per una data assegnata.
a. Si forniseane 1e operazieni per questo aggiomamento.
AEHOPLANO b. Quali tipi di viiicoli e il case di controllers?
lnmmepwej c. Quali di questi vincoli some viircoli di chiave, di integritir dell'entita e di integrita re-
fimwo] NUMEFDQTOTNLDLPOS'H
ferenziale, e quali non lo sane?
d. Si specifichirie tutti i vineeli di integrita referenziale di Figura 7.19.
PRENOTAZONEPOS‘I'I
NWEfiUENT'E l TELEFONO_CUENTE_I . Si consider-i la relaziene
lfNUMESO‘VGLO 1 manqmm | em [NUMEHO_POSTO |

CUMPAGNIA_AEFIEA. INSEGNAMENTO (#Insegnamente, #MedfiUniv, NomeAssistente, Semestrc, CediceEdifi
Flgura 7.19 Lo schema d1 base dl dati relazlenale eio. #Aula, PeriodoTemporaIe. GiomiDeliaSettimana, OreDiCxedite).
Essa rappresenta irtsegnamenti tenuti in un'universith. con #MecLUniv univece. Ii let-
rispettivamente. i valen' di tore identifichi quelle cite, a sue paper-e, dovrebbere essere 1e varie chiavi candidate, ed
i. Si medifichino in ‘123456789’ e in '1999~10-01’. CLD = 5. esprima i viriceli da seddisfare perché egni ehiave candidata sia valida.
DI PARTIMENTO can NUMER
SSNJJIR e di DATA_INIZIO_DIR della tupla . Si censideri lo schema relazienale BIBLIOTEGA di Figura 7.21). usate per tener traccia
SSN della tupla IMPIEGA-
j. Si medifichi in ‘943775543' i1 valere dell’atuibuto SUPEH dei libri. di chi li prende a prestite e dei prestiti. In figure i viecoli di integrith referen-
T0 con SEN = ‘999887777‘. = ziale sono rappresentati con archi erientati, 115m line netaziene analega a quella
di
dell’attributo ORE deila tupla LAVOFIJLSU 0011 SSN_I
1:. Si medifichi in “5,0' ii valet-e Figura 7.7. Si scrivane espressieni relazienali per le seguenti interregaziem‘ sulla base
‘99988 771‘7’ e N_P = 10. di dati BIBLIOTEGA. _
cotiPAGNIA_AEHEA mesa-ate in Figu-
7.20. Si censideri le schema di base [ii dati relazienale a. Quanta eopie del libro intitelate La m'bii perduta some in pessesse della sede
dell '
ra 7.19, che descrive una base di clati per le inferre azieni sui veli di una eempagnia ae-
0 pie tratte biblioteca di name ‘Sharpstown ?
:3 cempeste da am
rea. Ogni VOLO e identificate da un NUMEHO del vole ed erati di partenza b. Quante cepie del libre intitolate La tribe pendura some in pessesse di 03:31
tratta hai suei
(THATTA_VOL0) con NUMEHOJHATTA 1, 2, 3 ece. Ogni sede della biblieteca?
i nenché gli aeroperti interess ati e present a melte istanze (ISTAN-
e di arrive previst
'— —

II modella di dati. i vinooli e l‘algebra relazionali 247

246 Capitolo?

Bibliografia selezionata
TabellaT1 TabellaTZ

EBB "El l] modellc relazianale a state introdorto da Cndd (1970) in un articolo ormai classico. Codd
ha mundane anche l'algebra relazionale e ha pesto i fondamenti tearici del modello rclazio—
5 10 b 6
10 a nale in una serie di articoli (Codd 1971, 1972a. 1912b. 1974); in seguito glj E state assegnato
15 b 8 25 c 3 i1 premio Turing, Ia massima onorificenza dell‘ACM. per il suo lavoro sul modello relaziona-
10 b 5 Is. In un lavoro successive Codd (1979) ha studiato un’estensione del modello relazionale per
25 a 6
inserirc pit! metadati e semantica sulle relazioni; ha anche propusto una logica a tre valor-i per
Flgura 7.21 Uno state an base
d1 dafl per la relazlonl T1 a T2. gestire l‘incertezza nelle relazioni e inserirc cosi i valori nulli nell‘ algebra relazionale. 11 mo-
dello risultante é noto come RMIT. In precedenza Childs (1968) aveva usam la teoxia deglj in-
siemi per modellare 1e basi di dati. Fifi Iecentemente. Codd (1990) ha pubblicato un libro in
cui si esaminano oltre 300 carattetisfiche del modello di dati relazionaie e dei sistemi di basi
da ‘BC Publi-
che ha tutti i libri adottati pubblicati di dati relazionali.
c. Si elenchi ogni dipanimento
I . —
A parlire dal lavoro pionierisfico di Codd sono ssate condone molte ricerche su vari aspet-
mostnno 1 nsultau dc]
- A u

T1 3 T2 presenti in Figura 7.21. Si ti del modello relazionale. Todd (1976) descrive un DBMS sperimentale, deno PRTV. che im-
7.27. Si considerim le due tabelle
Shjng‘.

1e seguenti operazieni: _ plementa direitamente 1e uperazioni dell‘ algebra relazionale. Date (1983) Iratta i join estemi.
I! lavoro di Schmidt e Swanson (1975) inunduce semantica aggiuntiva nel modello relaziona-
T1 DqTi.h'l7...‘\ T2
won???

T1 MTI.Q=n,a T2 1e classificando diversi tipi di relazinni. Il modello Enfiti-Associazione di Chen (1976), stu-
_ diam nel Capitolo 3. E un mezzo per comunicarc la semantics. del mondo reale di una base di
T1 NTIEfl'Zfi T2
. T1 Ddlmw—m T2 " dati relazionale a livello concettuale. L’articulo di Wiederhold e Elmasri (1979) introduce va—
. T1 U T2 ' fipi di collegamenti tra relazioni per aumentare i vincoli relativi. 11 lavoro per ampliare 1e
perazioni relazionali e state trattato da Carlis (1986) e Ozsoyoglu e altri (1985). I1 lavoro di
. .
. ‘ .
T1 METlPflln AND '1'I.F.=
'l‘2.(:lT2
m delle vendlte
per una base d1 flat the uene tracc Cammarata e altri (1989) estende i vincoli d1" integrith e i join del modello relazionale. Altre
Si considerino le relaziuni seguenti mento a qualc he equipaggla—
di automobili di un rivenditore d’
auto (Opzione fa riferi ote bibliografichc relative ad altri aspetti del modello relazionale e ai suoi linguaggi, sistemi,
memo opzionale installato su un‘
automob ile): stensioni, nonché alla tearia ad esso relativa sono fornite nei Capitoli 8, 9. 10. 12, 14 e 15.
ello, Produttore. Prezzu)
AUTOMOBILE IEum-Sm'g, Mod
zo)
OPZIDNI (mm, W Prcz
;533:132, Data. Prezzo—Vendita)
VENDITE (Id—Emilare, 3333
Telefono)
VENDITDRE 31W, Nome,
a piesentato. 53:;
chiavi esteme per lo scheme sopr
Prima di tutto si specifichino 1e wh ee qmn di le rela nem Ct:1331“ c
nzione fatta . Si
ciando esplicitamente ogni assu nto nelle relaz m-m h . e
un esempio d1 mslenme
esempio cli mpla. e poi si presenti enna le, e um alim- esem pio c_ 6 Five;
integrith refer
VENDITORE ch: viali i vincoli di mtermgamoni 1n -
Infine si specifichinu 1e seguenu
non dia luogo a questa violazione. . ‘
ionale. con 18 56 3q Eiforma-
Doe‘ si presenti un elen co
:fbl’aeir'eillaienditore di name ‘Jane ie, Prod uttor e. Prezze-ven ita.
ha vend uto: #Ser
ziani per mtte le macchine Che- m. ‘ ’ '
dell: automobih che non hamo opzm
b. 51 elenchi i1 #Serie e '11 Modello TTF. Qua ] e l: $138a-
naturale tra VENDITOHE e VEND
c. Si consideri l‘operazione di join belle (non 51 cam bi 1 01111 11: dc e r a-
fra queste‘ta
ficato di un join estemo sinislm . ,
' ' ' ‘ ustri la xi asta con un esempio. zi la selez aone e \m ope-
algebra relaziona le chc utiliz
d. 2513:3311?” intenogailsone in '
a parole cosa fa l’intermganone.
razione insiemistica e si illusti
SOL - Lo standard delle basi di dati retazienaii 251

50 Capltole 8

pennettendo’ail'utente {11 see


- 8.1 La definizione dei dati e le modifiche
isce un’i nte rfac cia dichiarafiva di alto livello. :1 1e3 081 5::
- ’ v e fom
re i1 risultate e lasciande a1
DBMS l‘ottmuazaalone ‘
nin-
agli schemi in SQL2
itlitaiz sz‘io’quole deve esse ne. SQL incl ude alcune fun-mom dell 3:?
su com e ese guir e 1’ inte rrog azio Eur }: at ; lfa.
mi effettive ale delle triple. CT
maggiore sul calcnie ralazion
:ienale, ma si hasa in misura nenali. La smta ss1 I . Q 1: come sinenimi di aelaziene, tu-
azienc pet 1e 13:81 di dati rela SQL utilizzai termini tabella, riga e celenna rispettivamcnte
guaggio female di interrog ali.
.
no i termini e questi sinonimi in mode intercambiabi-
uell a di he as. ‘ onn d1 Intel-trig: pla e attribute; no} seguito si utifizzeran
' uag gio Stru ttur ato e DROP e 50:10 esa-
"
-sgs igea dci Stru ctur edu geg r;r Language. cioe Ling gtlga gfésso '11 1e. Icemandi di SQL2 per la definiaiene dei dati sono CREME. ALTER
“fleS‘EIIjSefliFa‘cli red English Q-UElry Lana 4. Prima di tutto, perb. nel Paragrafo 8.1.1 vengono
chiamava SEQUEL (Structu 5 - minati qni nei Setteparagrafi 8.1.2-8.1.
gazienc. In origine SQL si aziooe) ed a state progetta
to sin- 1p ente r:1 . £331
uattati i concetti di schema e cataloge. Nel Paragrafo 8.1.2 invece viene
spiegato come si crea-
ese Stru ttura to di Inte rrog i re azte 1 . 9;i
guaggie Ingl alstema d1 ba51 d1 dat no le tabelle. quali sone i tipi di dati disponibiii per gli attributi e come
some specificati i vin-
come interfaccia verso un
Centro di Ricerca dell‘IBM stan dard per i DB MS re 312 :3:t
coli. Nei Paragrafi 8.1.3 e 8.1.4 sone analizzati i cemandi per ha modifies
degli sahemi di-
R. SQL e eggi il linguaggie
rimentale chiamato SYSTEM SI (Am eric an National Standards Inst
itutf). .23-
spenibili in SQL2, che possono essere usati per aggiunger e ed eliminare tabelle, attribua' e
cem uni dell ‘ AN m-
conmierciali. Gli sferzi (Intern atio nal Stan dard s ‘ :T
vincoli. Viene data selo una panoramica dello fimzioni pin importanti;
approfondimenti pes—
ndardizzazione) e defl' ISO
Nazionale Americane di Sta Sta ndardiz zaziene) hanno nonato a una
verm‘eflu am
sene essere trevati nel documento che descrive 10 standard SQLZ.
rnaz iona le di
lien. Organizzaziene Inte Ll. Succes swa men te a stat e a {$515}.
(AN SI 198 6), den ominata SQL-StS o SQ : ll prog e ' no.
dard di SQ L {detto anche SQL-92)
pin esteso chiamato SQLZ
11110 standard revisionate e e verr a ulte rrom iten te Eli-am-
del ling uag gio. SQL 3. a gia in fase ananzata, atw r
la terza vers iene
cetti orientati agli oggetti
e di altn concem recenti re
8.1.1 I concetti di schema e di catalogo
rate con l‘aggiunta di cen
baSZQL a un linguaggio complete; cemprende istruzioni per la definiziene dei '12:! 11:11:]: relazienale; tutte le ta-
-”ma- Le versieni precedenti dj SQL nen includevano il concerto di schema
DML. Ineltre, fermscel aim
; quindi e sia un DDL sic un belle (relaz'toni) crane considerate parte del medesimo schema.
l] concetto di schema SQL a
regazione e l‘aggiomarnente crfic are 1a sicu rezz a 1:1 euue transa-
altre cestrutti. che appar—
e sulla base d1 dati: per spe state incorporate in SQLZ con 10 scope di raggmppare 1e tabelle e
zienaiita per definire 1e vist specificare 1 cont:n s .
d1 m-
:3 identificate da an no-
per defi nite i vincoli di integrita e per gf: Mimi tengene alla medesirna applicaziene di basi di dati. Uno schema SQL
zieni di accesse, istru mon s SQL net guz l‘utente o l'aocount
i. Cem prcn de pers ine le regele per incerperare le te d1 que s ‘ Cig almem me di schema e cenfiene un identifica tore di auterizza zionc per indicate
zien magglor ear I suei elementi
e come C e PASCAL.‘ La . che ne e proprietario, nonché descritteri per ciascun elemenro nelle schema.
grarnmaziene di use general dera 1n oen sule razr ene pun p
(quali ad esempio 1e auto-
successivi nci quali si pren cemprendono 1e tabelle. i Vinceli. la vista, i domini e altri cestrutfi
verra fiattata nei paragrafi o l’istmzione CREATE SCI-[E-
3131t rizzazieni) che lo descriveno. Une schema a create attravers
per creare e modifidcare 31: schema. In alternativa, é pos-
rag rafo 8.1 esa min erem o icemandi DDL di SQL2_ fen gir th “2910‘ MA, che pub includere le definizieni di tutti gli elementi dello
16 sglizlga analizzeremo 1 costrut
tt SQ L
e an identific atore d't auterizz aziene allo schema e defi-
oli. Nel Paragrafo 8.2 “Beware e ' sibile limitarsi ad assegnare un neme
mi. 13 tabelle e i vinc mo una pan oram ica qui di seguite riportata crea uno
mentre nel Paragrafo {3.3 dare 36 nite gli element i success ivamente . Ad esempio , l‘istruzio ne
specificare le interrogazioni, di SQLI per insgnlega afO catere di autoriazaaione
Par agra fe 8.4 descrivereme inceman i 6r schema chiamate AZIENDA. il cni proprietaiio a l’utente con l’identifi
ni pie complesse. Nel (tale elle inrtu all). e _ . Era-
e nel Paragrafo 8.5 1e vista asserirtotlit 13 (13:11:
aggiornare 1e infertnazioni pes san o essere speeifioatt come
era li
mestrereme come dei Vin celi gen
L pres enta te 1n alt? taint (:13 . (5i
Par agr afe 8.7 clen che rem e alcune funzioni SQ a tn mg ggl CREATE SCHEMA AZIENDA AUTHORIZATION ISMITH;
mentre nel programnn scrim 1n
aioni SQL incapsulate net
bro; queste includone istru , che censiste in una rac-
a a SQL, pub ev1tare Complem
- : Ola-e a] concerto di schema, in SQL2 esiste quelle di cataloge
ntroduzione meno apprefondit associate un name in un ambient e SQL. 1111 cataloge contiene sem-
Val; jigging: 1t12e)sidera un’i colta di schemi cui viene
8.7.
Paragrafi 3.2.5. 8.3. 8.5, 8.6 e pre une schema speciale chiamato MORMA'I‘ION_SCHEMA, che
fomisce agli utenti
mente o in pane la lettura dei .
tutti gli schemi del catalogo
autorizzati le inforrnazioni su tutti i descritteri degli elementi di
referenz iale, possono essere definiti tra relazio-
vincoli d‘integfita. quali quellj di integrita
lore schemi si trevano all'intern e del medesim e cataloge . Gli schemi presenti
sele se i
ere certi clement i come 1e definizieni di do-
rela- llo stesse catalego posseno anche cendivid
.__————---—‘—‘— . . . . . t. sui. file the centcngene 1e
te ed eliminare gh indic '0.
in: SQL cera pmn dmra dell: isn-uzioni per crea
‘ In orig
ard 501.1
zieni. noi rimosse dalle stand
CapitOIO 8 SOL « LO standard delle basl dl datf nelazionali 253
252

CREATE TABLE {MPIEGATO


8.1.2 II comando CREATE TABLE e i vincoli di tipi { NOME_BA'IT
di dati INrZ_INT ETAEIHARW NOT NULL'
ggNOME Egg-Imus} NOT NULL,
Telazione assegnandole un :10- DATA-N DATE(9) NOT NULL,
11 comm CREATE TABLE e usato per specificare una nuova
attributi sonO specific ati per primi e a. ciascun INOIRIzzo
me e specificando i suoi attributi e vincoIi. GLi VARCHAR{30)
to un nome, un tipO {ii dati per specifica re i1 suo dominiO di valori e gli 35530 CHAR '
attribute e assegna
eventuali vincolj sui vaIOTi come, ad esempiO , NOT NULL. La Chiave, vincoio di integrita TIPENDIO OECI '
d'integfi th referenz iaie possono essere specific ati djrettam entc ail'intcr- :UgERSSN CHARIMQEWZ) '
dell‘entilé. e i vincoli
sonO stafi dichiara ti gli attributi ; in aitemativa
no dell‘istruzione CREATE TABLE. dOpO Che FRIIITARY KEY (SSN) , M
Ii si pub aggiung ere success ivamcnte usando i1 comandO ALTER TABLE (si veda ii SOttOpa- FOREIGN KEY (SUPERSSNJ REFERENCES IMPIE GATO(SSN] NOT NULL ’
TagTafO 3.1.4). In Figure 8.1[a) sonO riportate 1e istruzioni d5
definizione dei dati SQL per IO FOREIGN KEY [N_D} REFERENCES DIPARTI ' -
schema d5 basi di dati reIazion ali presenta to in Figure 7.7. Di soiito. 1O schema SQL in eui ven- CREATE TABLE OIPARTTMENTO MENmNUMEHO—D“ '
mente dall‘am biente in cui sonO eseguite 1e I RISES? VARCHARus) NOT NULL
gOIID dichiaxate 1e relazioni e: specificato implicita
. In alternat iva, si pub espljeitamente associa te i1 nome dello sche-
istruzioni CREATE TABLE Camus—D |(TAR 9 NOT NULL:
Ad esempi o. scrivend o:
ma ai nomi delle reiazioni, separandoli con un puntO. DATILINIZJO_DIFI DATE ( 3 NOT NULL’
PRIMARY KEY (NUMEROJJ) , '
CREATE TABLE AZEENDAJMPIEGATO
gn (NOME_D) .
REIGN KEY (SSN_D§FI) REFERENCES IMPI .
CREATE TABLE SEDLDIP EGATOSSN” '
invcce di ( gigging; INT NOT NULL,
_ VARCHAR(15) NOT NULL,
CREATE TABLE IMPIEGATO PRIMARY KEY (NUMERCLD. SEDE_D) .
CREATE
FOREIGN
TABLE KEY
FROG(NUMERO_D 3 REFERENCES DIPAFFI’IMENI’O(NUMERO_D]] ;
Che impiicitamente) Che Ia ta-
come in Figura 8.1(a), si puO indicate esplicitamente (invece
bella IMPIEGA‘TO fa pane dello schema AZIENDA . ( ufigfig P i\rIJATRCHAI-Tu5) NOT NULL.
_ NOT Nu
35355 momma) . LL'
per i attributi commendono tipi nu-
Domini e tipi di dati In SQL2. I tipi di dati disponibili
merici, siringhe di caratteri, stringhe di bit, data C ora. I
tipi di dati numerici comprendOnO PRIMAFIY KEY (NUMERO P] . NOT NULL'
e SMAIJJNT) e numeri Teali Oi diver— 33:35“ (NOME_P]. ‘
numeri interi di diverse dimensioni (INTEGER O INT IGN KEY (NUNLDJ REFERENCES DIPA
sa precisione (FLOAT, REAL, DOUBLE PRECISION). E
possibile definire il formato dei nu— -
MI,;3 O DECUJ ) Oppm-e NUMERICGJ). in (mi I'. la CREATE TABLE LAVCRA_SU miMENTqNUMERO—D) ) I
meri in modo preciso usando DECM
e il numero di cifre dopo la vir-
{ as? was) NOT NULL,
precisione, e il numeTO totale di cifre decima li e j, 121 scald, ORE NOT NULL,
scala a zero e queIlO per la preeisione e definitO dal- 23%;: KEHSSNJ. N_P}, DEC IMAL(3,I1}, NOT NULL.
gnla decimals. 11 valore predefinito per la
l’nnplementazion e.
I Lipi di dati stringhe d1 caratteri sono di lunghezza fissa.
CHARGI) O CHARACTER(A), KEY (SSNJ) REFERENCES IMPIEGATO SSN
za variabile, VARCHAR(R] O CHAR
FOREIGN KEY {N_P} REFERENCES PROCEWQIIUMERO P) )‘
in CUi R e il numero di caratteri, Oppure di lunghez CREA‘EEg'ISISLE PERSDNMCAFIICO
VARYINGm) O CHARACTER VARYmG(n), in {mi n e il numeIO massimo di caratteri. I ti— MOM I 7 I
di lunghezza variabile, BIT
CHARIQ) NOT NULL
pi di dati stringhe di bit snno di lunghezza fissa n, BITUI}. Oppure SESSEdPEHSONflCARICO gig-Imus) NOT NULL:
di bit. I] valnre predefin itO per A, la lunghezza di
VARY'INGI:n), in cui I1 e il numem massimo
una stringa di caraneri O di una striIIga d1 bit, e U110. OATA_N OATE.’
DATE ha dieOi posizioni PARENTELA VARCHAR
Vi sonO nuovi tipi di dati per data e am in SQLZ. 11 tipO di dati PRIMARY KEY(SSN_,| NOME._PERSONAJI CARI GO .
enti sono YEAR, MONTH e DAY (OiOé anno, mesa e giomo) fipieamente nel-
Oi suOi compon FOREIGN KEY (SSNJ) REFERENCES IMPIEGAMSSJNH ;

-
ha almeno OIIO posizion i con i component
Ia forma YYYY-MM-DD. Il tipo di dati TIME
e SECON D (CiOé Ora, minuto e secondo ), tipicame nte nella forma Figure 8.1{al_ Definlzione
ma “nun!“OR] dati dE 7‘1
di Fir-urc- SOLE: un‘s Isa-InplifIC-azlone. Le Istruzloni SQL2 definFECORO IO sche-
HOUR. MINUTE . . .... L . . , . .
_ __ _ .5.
Itc. ° _-_m l 'ZIO‘IIC _“N consem __'“ ”0101 I'm a. _ data e-..nra valide..
= W“Er _
L__.___. -——......- M WM ' "1 “r' -. A 71.:
M “M
SOL - Lo standard delle basi di datl relazicnali 255
254 Capitclo 8

CREATETABLE I'M PIEGATD


e precision frazionaria def secondi defl’ora- (...,
lnoltre, un tipo di dati Mi), in cui i e definit
il tipo WE; una posizione serve per un caratte~ N_D INT NOTNULL DEFAULTL
Ho, specifica 1' + 1 posizioni aggiuntive per comma-r |MPIEGA1D_PK
per specificare frazioni decimali di secondo.
re separatore addizionale e 1e restanti :’ posizioni PRIMARY KEY (SSN) ,
e altre sei posizioni per specificare uno spo-
Un tipo di dati TIME WITH TIME ZONE includ 13:00 a CONSTRANFIMPIEGAI’OfiUPERFK
rd, che prende valori nell’intervallo 63. + FOREIGN KEY (SUPEHSSN) REFERENCES IMPIEGATO(SSN)
smmenro dal fuso orario universale standa

-
TIME ZONE non e specificata. it
ia WITH ON DELETE SET NULL ON UPDATE CASCADE.
12:59 nelle unita HOURS:M]NUTES. Sela clauso
locale della sessio ne SQL. Infine. il tipo di dat't fimestmnp CONSTRAINT IMPIEGATOJJIFLFK
valore predefinito e il fuse OI'BI‘iD FORHGN KEY (N_D) REFERENCES DIBAITI'IMENI'O(NUMEHO_D)
DATE e TIME pin un minimo di sci posizionj per le fra-
(TINEESTAMP) comprende i campi ON DELETE SET DEFAULT ON UPDATE CASCADE 1;
WITH TIME ZONE.
zioni di secondo e no qualificatore facoitativo .
9. DATE . TIME e TMSTAMP e il tipo di dad INTERVAL CREATE TABLE DEPARTIMEN'I‘O
Un aitro tipo di dati analogo pub essere usato per au-
un valore relativ e che
che specifica un intervallo temporale, cioE SSN_DlFl CHAH(9) NOT NULL DEFAULT '888665555'.
data, ora o timestamp. Gil mtervalii sono quali-
mentaxe o diminuire il valore assoluto di una
TME.
ficati come intervalli YEARIMONTH o DAYI CONSTRAINT DIP_PK
it tipo di dati di ogni attribute. come in Figu- PRIMARY KEY {NUMEROJJ} .
In SQL2 e possibile specificare direttamentc
rato il dominio e '11 name del dominio usato. CONSTRAINT DIP_SK
ra 8.1(3); altemativamente. pub essere dichia nu-
La seconda tecnica rende pm facile cambi are i1 tipo di dati di un dominio utilizzato da UNIQUE (NOME_D).
esemp io, si pub crea- CONSTRAINT DIP_DIFLFK
ilith dello sche m Ad
merosi attributi in one schema e migiiors la Ieggib FOREIGN KEY (SSNJJIFI) REFERENCES IMF‘IEGKI‘OISSN]
te: ON DELETE SEI' DEFAULT ON UPDATE CASCADE );
re un dominio SSN_TYPE tramite l'istmzione seguen
CREATETABLE SEDLDIP
CREATE DOMAIN SSN_TYPE AS CHAR(9); ( . .. .
PRIMARY KEY {NUMEHO_D. SEDE__D}.
in Figura 8.1{a) per 315 attributi SSN e SU- FOREIGN KEY {NUMEFIO_D) REFERENCES DIPAFITJMENTO(NUMEFIO_D)
Si pub usare SSN_TYPE a1 posto di CHAR{9)
TIMEN TG. SSN_I di LAVORA_SU e SSN_I (Ii PEHSO - 0N DELETE CASCADE ON UPDATE CASCADE) :
FERSSN di IMPIEEATO, SSN_DIR Iii DIPAR
specificazione predefinita (di default) attra-
NA_A_CARIGO. U11 dominio pub avers anche una Figure 3.1(b) Deflnizione del dati dI SOL2'. un'esemplificazlone _ La 5 eclfic a do:‘ valori‘ f" ‘ '
vedra succes sivamente per gii attributi.
verso una ciausola DEFAULT. come si attributl e la azloni referonz'lali che vengonc Innescate‘ p prede mm per g"

a NULL co-
predefiniti in SQLZ. Poiché SQL aecett
Specificazione (lei Vincoii e dei valet-i se '11 valore NULL non
specificato un vincaio NOT NULL
me valori degli attributi. pub essere paimaria di una relazione. La clausola UNIQUE specifics 1e chiavi ulteriori (o secondmie).
o vincoio dovrebbe essere sempre specificato
e consentito per un particolare attribute. Quest i L’mtcgrita referenziale é specificata am'averso 1a clausola FOREIGN KEY.
relazione e anche per qualsiasi altro atlributo
per i attributi delIa chiave primaria di ogni possibile anche defi- . Come si e vista nel Sottoparagrafo 7.2.4, un vinco d'integrith referenziale pub essere
1110511310 in Figura 8.1{a}. E
cui valori non devono essere NULL, come wolato quando 1c tuple sono inserite o cancellate o quando viene modificatc i1 valore di an at-
gendo la clausola DEFAULT <value> alla
nite un valor-e predefiniro per un attributo aggiun : tribute di una chiave estema. In SQLZ, i1 pmgetfista dello schema pub specificare l’azione che
finito e inserit o in qualsi asi nuova mpla se non viene form'to an
sua definizione. ll vaiore prede deve cssere eseguita 5e un vincolo d’integrita referenziale viene violate. perché si cancella una
e presen tato un esempio di specificazione
valore esplicito per quell’ attribute. In Figure 8.1(b) mpla o si modifica un valorc della chiave primaria alla quale si fa rifedmento. specificando
rcpart o B Lin repart o predefinito per ogrLi nuavo di-
di un manager predefinito per ogni nuovo una clausola di azione referenzIale innescata (referential triggered action} associata a un
la prede finim, i1 valor-e predefinito di default 3:
pendente. Se non é specificata alcuna clauso qualsiasi vincolo di chiave esterna. Le opzioni includono SET NULL, CASCADE e SET DE~
NULL. FAULT e devono essere qualificatc 0011 ON DELETE (quando si efiettua una cancellazione)
colonne), e possibile specificare vincoii dt'
Dopo aver specificato ivincoli sugli atu'ibuti [0 o‘ppure ON UPDATE [quando si efiettua una modifies). L’uso delle opzioni e illustrate dal»
e di integr ita referenziale, come mustrato in Figura
mbeifa, tra cui vi sono quelli di chiave l esempio di Figura 8.1[b). (2113' i] progettism delIa base di dafi ha selezionato 1e opzioni SET
one 0 pm attributi che costituiscono la chiave
3.1(a).2 La clausoia PRIMARY KEY specifica NULL ON DELETE e CASCADE 0N UPDATE per la chiave estema SUPEHSSN di IMPIE-
CATO. CID signifies: che se la mpla di un dipendente che e anche supervisore \riene cancellata,
11 vatore di SUPERSSN viene automaticamente impostato a NULL per tune 1e tupie dei dipen-
I vinccli da' chiave e d’integflth referenziale nan erano
inclusi nelle versioni prwedenfi di SQL. in alcune imple- denn che facevano riferimcnto alIa mpla cancellata ch' dipendente. D'altra pane se i1 valore di
3 so il oomnndo CREA<
mentazioni precedenti. 1e chiavi erano specific
ate implicitamentc a Iivelio intemo azlraver ISSN di un dipendente she I: anche supervisore viene aggiomaro (ad esempio perché era stato
TE lNDEX.
Capitele 8 SOL - Le standard delle basl di dati reiazienafl 257
256

te agli attributi SUPERSSN di tut- Se 51 use l‘epziene RESTRICT a1 pesto di CASCADE, la tabella viene eliminata sole se
inserite in mode nen cerretto}. i1 nuove valore viene propaga
dipcnde nti dei quali il dipeude nte aggiemate e il supervisere. mm wenejrarre alcun rfferimeMO a essa in un qualsiasi vincole (ad esempie nelle definizioni
te le tuple dei
enza delle epzieni SET NULL delle cluaw esterne di un’altra relaziene) 0 Vista (si veda il Paragrafe 8.5]. Can l‘opziene CA-
In generale l'eperaziene eseguita dal DBMS come censegu
LT e la stessa per 0N DELET E 0 ON UPDAT E; i1 valere degli attributi coin- SCADE tutu 1 vmcofi e 1e viste che si riferiscene alla tabella vengono eliminati automatica-
0 SET DEFAU
NULL per SET NULL e nel valere predefinite specifi- mente dalle schema insieme ails tabella stessa.
velti nel vincelo viene medifieate in
ON DELETE e quella di cancellatw
cate per SET DEFAULT. L'aziene asseeiata a CASCADE 0N UPDA-
associata a CASCADE
re tutte 1e ruple a cui i1 Vincele si riferisce. meme quella
della chiave estema facend elo diventase uguale a quelle
TE censiste nel medifie are i1 valere
i1 vincelo si dferisce. E re-
8.1.4 ll cemande ALTER TABLE
in tutte 1e tuple a cui
della chiave primal-1a aggiomata (nueva)
ista della base di daft sceglie re l’aziene apprep fiata e specificarla in
sponsabiiita del pregett La d‘efiniziene di una tabella base pub essere cambiata usande il cemande ALTER TABLE
ADE b adatta a relazie ni di "rapperte" come
DDL. Come regela generale. l’epziene CASC che e un comande di evoluzione delie schema. Le possibili operazioni di modified defile Ia:
ni che rappres entane a 'buti cen pib valori come SEDI_DIP e a relazie-
LAVDRAfiU. a relazie belle-cemprendene l'aggiunta e l’eliminaziene di una celonna (attribute), la modifies di una
ni che rappresentane entita debeli come DIPENDENTE. delimmene cl: celenna e l'aggiunta e l'eliminaziene di vinceli di tabella. Ad esempio per in-
esserc assegnate un neme, usande
Nelle Figure 8.1(b) si vede anche che a un vincole pub senre un attubuto che tiene traccia dei cempiti dei dipendenti nella relazione base IMLIEGA-
di tutti i vincoli a]l’inte mo di un particulars schema
1a paIela ehiave CONSTRAINT. Inemi TD delle schema AZIENDA si pub usare i1 eemando:
devone essere unici.
lars vincelo nel case in cui queste
Il neme del vincelo b usato per identificare un particu ALTER TABLE AZIEN'DAIMPEEGA’I‘O ADD LAVORO VARCHAR( l 2);
come verra spiegato nel Sottopsragrafo
debba pei essere eliminate e sestituite con un ale-e,
ai vincoli e perb faceltat iva. Ovulamente, b necessatio immenere un valere per il nuevo attribute LAVOHO per ciascuna
8.1.4. L‘ assegnaziene dei nemi
relazie ni che vengen o dichiara te cen le istruzie ni CREATE TABLE sone chiamate ta- tupla d1 IMI'DIEEATO. Cib pub essere eseguite specificande una clausela che specifica un vale-
Le
cib signific a che la relazien e e 1e sue mple sene effettivamente re predefimte e utilizzande i1 comande UPDATE (si veda i1 Pang-safe 8.4}. Se mm 2: Specifi-
belle base (0 relazieni base};
relazieni base si distinguone
create e memerlzzate dal DBMS sotto ferma di un file.
Queste cati; una clausela per un'valore predefinite, il nuevo attribute avra i1 valore NULL in tutte ie
cen l'isn'uz iene CREAT E VIEW (si veda i1 Paragrafe 8.5), che Spa; wiflznzaizifiiepe che 11 cemande e eseguito; quindi in queste case il vincele
dafle relazionl virtuaii create
ti in una tabelia base sene
pessene 0 menu cen‘ispendere a un file fisico. In SQL
gli attribu
za in cut some specific ari nell‘istruziene CREATE TABLE. Anche l'eliminazione di una colonna pub avvenire con 1e opzieni CASCADE 0 RE—
eensiderati ordinan' nella sequen
ordinate all’inteme di una relaziene. STRICT. Se 51 b seelta l’epzione CASCADE, tutti ivinceli e le viste che si riferiscene alla ce-
ma 1e righe (tuple). invece, non si censiderano
lenna vengene autematicameate eliminati dalle schema, insieme ad essa. Se si specifica l'op-
none RES'I'RIC'I'. il cemande ha successe selo se non vi sone viste o vincoli che fanne rife-
nmente alla celenna. Ad esempio, i1 seguente cemando elimina l‘attributo INDIRIZZCI dalla
8.1.3 I comandi DROP SCHEMA 9 DROP TABLE tabella base IMPIEGATO:

utilizzate il eemande DROP SCHBMA. ALTER TABLE AZEENDA.NP]EGATO DROP INDJZRIZZO CASCADE;
Se un intere schema non b pib necessario. pub essere
elimina zione: CASCADE e RESTRICT.
Esistene due opzieni relative al cemportamento di E possibile anche modificare uns definiziene di celenna eliminande la clausela che speci-
re lo schema della base di dati AZIEND A e tutte 1e sue tsbelle. i demi-
Ad esempie. per elimina fica 1] valet-e predefimto eststente eppure definende una nueva clausela che specifica an vale—
usata ueI mode seguente:
ni c gli altri elementi. l‘epziene CASCADE va re predefimte. G]: esempi seguenti illustrane quests tecniea:
DROP SCIIEMA AZEEN'DA CASCADE; ALTER
DEFAULT;
TABLE AZEENDADIPARTIMENTO ALTER SSN_DIR DROP
lo schema b eliminate sole
Se viene seelta l‘epziene RESTRICT a1 pesto di CASCADE,
nen viene eseguito . algal; :SASELE AZIENDADIPARTIMENTO ALTER SSN_D]R SET DEFAULT
se nen centiene elementi; altrimenti i1 cemande DROP
all‘inter ne di une schema sea is pib necessa ria. la relaziene e la sua
Se una relaziene base
o DROP TABLE. Ad esempie, se non
definiziene pessene essere eliminate usande il comand
delle persene a cat-ice dei dipende nti nella base (11 dati AZIENEIA ‘ Infine si possone cambiare i vincoli specificati su una tabeLla agg-iungendene di nuevi e
si desidera pib tenere traecia
AHAjARI CO immetten de il cemande: eliminandene alcum. Perché pessa essere rimesse un vincoie, ad esse deve essere state asso-
:15 Figure 7.6,-si pub eliminate la relaziene PERSON
c1ate 1111 name quande 5 state specificate. Ad esempio, per eliminare daila reiaaione IMPIE-
sow, A cameo CASCADE: n
GATE! i1 wniole
‘ tienntlmate-ITIIEEIEEGATQ
. ' fill-EffgfiFK m
.
' Emma
'
t . .fi

8.] (b1 51' scrwe
. . .. ., .-.,= __m.w.. .‘
La...- - 2.
-—..u L_. L.____ L“ LEE: L..___._£ = . .. i

SQL ~ Lo standard delle basi d1 datl relazionali 259


258 Capitolo 8

in cui:
ALTER TABLE AZIENDAEVIPIEGATO a (clenco anfibutb: a un eienco dei nomi degli atu-itruti i cui valori devono essere recupe—
DROP CONSTRAINT MEGHI‘OjUPERFK CASCADE; rati dall‘interrogazione;
possibile definiie on vinoolo sostitlmiro ag- e <elenco tabelle>: a un clenco dei nomi delle relazioni necessarie per eseguire l’interroga-
Una volta che i‘elinfillazione 6 atom eseguita, a
nta e specificam usando la parola chiave ADD segoxtz} 6a! zione:
giungendolo alla relazione. L'aggiu <condi2jone>: e un‘espressione condizionale (Booleana} che identifies: Ie ruplc che devo-
denominato, ed essere di 11:10 quaisiam de1 o
nuovo vincolo. che pub essere denominato 0 non _ no essere recuperate dall’interrogazione.
tipi trattati nei Sonoparagrafo 8.} .2. di di SQL2_ per lo defioi—
sui comm
Nei paxagrafi precedenti a state data one panora
nfica
i oueh 1i
L‘isuuzione fondamentale SELECT vane ora illustrata tramitc alcune inteirogazioni
i. Vi sono molfi altri dettagli e opzionl, per
zione dei dati c i‘evoluzione degli schem e SQEZ m‘r-hcau
esemplificative.
descriv ono gli stand-m l SQL
lettore pub fare n’ferimento ai document"; che
sivi sono esaminate 1e funzxonallta d inter- INTERROGAZIONE 1. Si recuperino la data di nascita e l‘indirizzo del dipendente (o dei
nelle note bibfiografiche. Nei due paragrafi succes
rogazione di SQL. dipendenti) il cui name 6‘. ‘John Smith‘. ‘

11: SELECT DATA_N. INDIRIZZO


FROM IMPIEGATO
8.2 lnterrogazioni fondamentali in SQL WHERE NOME_BATT=‘John' AND COGNOME=‘Smith‘;

Questa interrogazione coinvolge solo la relazione IMPIEGATO elencata nelia clausola


rare 1e informazioni :19. one base Idl dati: FROM. L‘interrogazione seleziona le mple di IMPIEEATO che soddisfano la condizione della
SQL ha un'istruzione fondamemale per recupe
alcun rappe rta con i’operazione SELECT deii algebra clausola WHERE. poi proiena i1 risultato suglj attributi DATA_N e INDIRIZZO elencati ueila
l‘istruzione SELECT. Essa non ha
opzioni e vaxianti dell‘iso'uzione SELECT clausola SELECT. 11 e simiie alla seguente espressione dell” algebra relazionaie, a eccezione
relazionale IIattata nei Capitolo 7. Vi sono molte . Yerfanno usate
sararmo piesentate gmduahnente
in SQL. di couseguenza ie sue funzionaiith eoto alio del farm the i dupiicati. se ci sono. non vengono eliminati:
ni di esemp io specificate sullo schema di Figura 7.5 e si faoe ofenm
interrogazio u d1 alcune interro-
. 7.6 per mostra re i risulta
state della base di dati esemplifica tiva di Figure
_ “DATAN, INDIRIZZO (“NUHE_BATT = ‘Jolm' AND COGNOME = ‘Smilh' (”PIEMWD
. . .
gazioni. te disonzwne tra SQL e 11
e metter e in eviden za un‘im portan Una semplice interrogazione PROTECT SQL con un singolo Home neila clausola FROM,
Prima di proseguire occerr
SQL consente a una Labeli‘a (1:eiazmne} d1 avere _ uindi, é simiie aila coppia SELECT-PROJECT di operazioni dell’ algebra relazionale. La
modeilo relazionale trattato nei Capitoio 7:
i valor i dei 10m atlributi. In generals. qumdl, Boa t_ahella SQL ‘ lausoia SELECT di SQL specifica gli atm’buri dz‘ proiezione e la clausola WHERE specifica
due 0 pin tuple identiche in tutti
permette due membri uguah; pluttosto 3 un a condizione a‘i seiezione. L’unica differenza e che nell‘interrogazione SQL e possibiie one~
man a un insieme di mple. perehé un insieme non
Alcune reiazioni SQL_ non possono che
mulfinsieme. Ialvolta chimn ata sacca (bag) di tuple. ere delle tupie duplicaxe nel risultato dell’imezrogazione, perché SQL you impone i1 vineolo
lo di chiave o gerché l‘opzmne DISTINCT a e 3a relazione sia un insieme. In Figure 8.2(a) e mostrato i1 risultato dell‘interrogazione
11
essere insiemi perché e state dichiarato un vineo
successivamente). Si tenga presente quesia d1-
Stata ukata con l‘istruzione SELECT (descritta ulla base di dati di Figura 7.6.
stinziofie\ esaminando gli esempi.
INTERROGAZIONE 2. Si recuperino i1 nome e l’indilizzo di tutti idipendenti che lavora-
‘0 per il dipartimento ‘Ricerca‘.

8.2.1 La struttura SELECT—FROM-WHERE delle 12: SELECT NOMIB__BA'IT. COGNOME, INDIRIZZO


interrogazioni SQL FROM MPIEGATO, DH’ARTNENTO
WHERE NOME_D=‘Ricerca' AND MJNEEROfi=N_D;
CT. talvolta atom-oats. blocco select-from-whe-
La forma fondamentale dell’isu'uzione SELE
e WHERE I: ha la seguente format L’Inteuogazione 12 e simile a una sequenza SELECT-PROJECF-JOIN dj operazioni
re, a formata deli: tre clausole SELECT, FROM
i’algebra relazionale. Queste intemogazioni spesso sono chiamate interrogazioni select-
condi-
SELECT (eleneo atlribud> ject—join. Nelle clausola WHERE di 12, la condizione NOMEFD = 'Ricerca‘ e um
FROM <e1eneo tabeiiezv -« one di selezjone e corrisponde a un‘operazione SELECT nell’algebra relazionale. La eon»
WHERE <condjzione>;
SQL - Lo standard delle basl d] dati relazionali 261
260 Capitclo B

fisflfigflom TX
13: SELECT NUMEROJ’. NUM_D, COGNOME, INDIRIZZO. DATJ‘LN
INDIFI'IZZD {1)} HOME BRIT DDGNOME
{a} DATAJNI FROM PROGETTO, DEPARTTNIENTO, IMPIEGATO
ml” mI gm.m. nfx
Elli .
1965-01-09 ?31Fflhdffifl.HW.Tx
915 Fla Oak HumblmTX
WHERE NIN_D=NUMERO_D AND SSN_D[R=SSN AND
Hannah Nat-wan
Moe End'sh 5631F||ae.l-k1flan.'l’x SEDEfi‘Stafford':

La condizions di join NUM_D = NUMERCLD matte in relazione un progctto con il diparti-


memo Che lo controlla, menus la condizionc di join SSN_DIH = SSN collega i] dipam'mcnto
NUM_D CGGNGME INDIHIZZO BATIK.”
{c} NUMEHQF ch: 10 controlla a} dipcndente che dirige quel dipartimento. ]] risultato dell‘interrogazione [3
Wm 2913mm.” 1511-86-20
10 4
4 Wallace 2918611?.Belta.TX 1941-05-20 U] SSN. .0 e mostrato in Figural 8.2 (c).
SD

$345339 Flaswch

998683777 Plenum
967554321 Halaamh
668854444
463653458 Haaaamn 8.2.2 La problematica dei nomi di attributi ambigui e
{‘1} LNOME BATI' LODGNOME SLJMEBK! I. ENE
Juhn 5mm Franklin Mg WW ammm [a Ioro ridenominazione (assegnando pseudonimi)
18456789 Wan
m 2m WWW “mm
333445555
ma W J-hfamlmkr
F“?! “I 9°m W WnL-araam In SQL 30 s£essu nome pub essere usato per due (0 pifi) attributi purché questi si trovino in
JF‘Eflon”With! mam M654321 mmm
W 219““ FE";
Jennlrar
W093
Wanna mm mm relaziom' diverse. In quests case, S: un'interrogazione si riferiscc a due 0 pill attributi con
Ahmad Jabber
98196795? WW ii medesimo nome, si deve qualificare il name dell’amibuto con il name della reiazione
Mmflflra‘flan
836665555
1 per evitare ambiguith. Cit) vicnc fatto ponendo come prefissa il name dclla relazione a1 name
333445555 gammy: delJ‘anributo e sepaxando i due con un puntc. Per illustrate questo case, si supponga che nel-
99988??? eadquaflfls
m1 HEW; le Figure 7.5 e 7.6 gli atu'ibuti N_D e COGNGME della reiazione IMPIEGATO sianu stati chiama-
(9) SEN 556899144 WP]
123453789 W53 Murmur!“ ti NUMEROJJ 3 HOME e l’aftributo NOME_D di DIPAFITIMENTO sia state denominato NOME; in
333445555
38365555 Hangman“ seguito, per evitaIc ambiguita, l’Interrogazionc 12 va rifarmulata come mostrato in DA.
837654321
5663811444 Nell’lntcrrogazione 12A si sono dovuti premature dei prefissi agLi attributi HOME e NUMEFIO_D
453463453
WEBER?!
per evitare ambiguita, visto che gli stessi nomi di attributi sono usati in entrambe 1e reia—
585685556 zioni:

12A: SELECT NOME_BATT.IMPIEGATO.NOME,H\JDIRIZZO


SESSO SHPENDIO SUPEHSS N N ;D FROM
(g) NOMEjATT INIZJNT COGNOME SSN WU 1NDIHIZZO IMPEEGATO, DIPARTIMEN'IU
W
1111 123456789 1955-09-01 7‘31Fflrflefl.HDLlsim.TX M
:
30000
40300 83mg: .2 WHERE DEPARTMENTO.NOME=‘cerca' AND
3 55%; 335445555 Eggs-£1: gaggéabzamfiém
$In 33°00 335‘" DIPARTIMEN’I‘ONU‘MERO_D=MPIEGATO.NUMERO_D:
666884444 .Hunbl 5
smash F 25M 333446555
: gnaw 453455153 19112-0741 5.951%.mx
Tm

it ti :1 He lntarro azioni spaciflcata sulla has;' an' datl


. tato
Hisul I11
della i-‘Igura_?.6.(a) dl. L’ ambiguité surge anche nel caso di interrogazioni che si riferiscono due volts alla meda-
(_e} Hisuflato ch :5. m Hlsullato an 15.
.
sauka t: d1 I2. {algfii sumto d1 I3. (d) Rlsuflato d} l4. sima relazione, come nell'esempio seguente.
”gm 3 2 Ellsgl
(g) Hisultato CH 126.
INTERROGAZIONE 4. Per ciascun dipendente si recuperi i] we Home :3 i1 suo cognome e
de: all? condizionc JOIN del- il name :2 i3 cognome del suo immediate supervisors.
djzione NUMEHO D = N_D E 11113 condizione di join Che: con-ispon
e [2 E: mostrato m Flgur'a {5.2.03}. big-angel:
I‘algebra rclaziéhalc. Il fisultato dcll‘Interrogazion 14: SELECT I.NOME_,BATI', I.COGNOME, S.NOME_BATT, SCOGNOME
sola intmoga zione SQL 6 passibile specifica rc un numcro quglslasil d1 condmwm d1
la in una
segue é un‘interr ogazionc select-prejectqom con due com FROM IMPLEGATO AS I, HUEPIEGATO AS 3
join 3 di selazione. L‘esempio che
WHERE I.SUPERSSN=S.SSN;
dizioni di join.
si elenghi 11.nmnero dei In questo case a consentito dichiarare nomi di relazionc altemativi I e S chiamati pseudo-
INTERROGAZIONE 3. Per ogni progettu con sede a ‘Stafiford’,
nto che lo controlla , nonché i! cognome , l‘mdmzzo e la dam nimi (aliases) o variabili di tupla per Ia reiazione IMPIEGATO. U110 pseudonjmo pub seguire
progctto, i1 numero dei dipaninm
la parola chiave AS, come mostrato precedentcmcnte in 14, appure pub seguin: dimitamcntc
f‘mfidfliwfid‘WmL-w :- m-#H'-z -' I - I J;- '. “:33 i=5 3 . I Raglan-‘1» ‘WI "‘
264 CapltoloB SQL - Lo standard delle basi di datl relazlonall 265

(a) STIPENDIO {b} STIPENDIO e operazioni differenza (EXCEPT) e intersezione (INTERSECT).° Le relazioni da esse de-
mom 30000
rivanu‘sono insiemi di tuple, cioe Ie mple duplicate song eliminate dal rfsultaro. Poiché tall"
40000 40000 peramooi si applicano solo alle refazioni compatibili all’unione, ci si Cleve assicurate che le
25000 25000
43000 4300:] ue relamoni su cui si applica un‘opetazione insiemistica abbiano gli stessi attributi e che gli
38000 38000
290cc 55000 tuibuti appaiano nel medesimo ordine in entrambe 1e relaziom'. L’esempio successive illustra
25000 Putiljzzo cli UNION.
EEEIOD

(c) NOME_BATI' COGNOME (d) Nomenam OOGNOME INTERROGAZIONE 8. Si crei un eleuoo di tutti i numeri di progetlo dei progetti che coin-
James Belg
olgono un dipendente il cui cognome a: 'Smith’, come panecipante oppure come dirigente del
dipanimento che controlla il progetlo.
Figure 8.3 l risultati dl alcune Interrogezioni specificate sulla base di dati mostrata in Figure 7.6. (a) Fil-
sultato til I?. {b} Flieultato di ITA. {o} Rlsultato di I14. (cl) Risul‘tato d‘I I19. 18: (SELECT DISTINCT NUMEROJ‘
FROM PROGET'DO, DEPARTIMENTO. IMPLEGATO
WHERE NUIvI_D=NUMERO_D AND SSN_DIR=SSN AND
0 I’uiente puo voler vedete 1e tuple duplicate nel risultato di un‘intetrogazione; COGNOIVIE=‘SIIfith’]
o quando una funzione di aggregazione (si veda i1 Sottoparagrafo 8.3.5) 5 applicata alle UNION
tuple, nella maggior parte dei casi non si vogljono eliminate i duplicati. (SELECT DISTINCT NUMERO}
FROM PROGETTO. LAVORLSU, MPIEGATO
Una tabella SQL con una chiave deve pero necessariamente essere un insieme, poiché i.l
WHERE NUMERO_EN_P AND ISSN=SSN AND COGNONIE=‘Smith‘);
valore della chiave deve essere differente in ciascuna tuplafi‘ Quando si desidera eliminate le
tuple duplicate dal risultato di un‘interrogazione SQL, s': utilizza la parole chiave DISTINCT
La prima interrogazione SELECT recupera i progetti che coinvolgono ‘Smith' come difi-
nella clausola SELECT, il che significa che solo 1e tuple distinte dovrebbero rimanere nel ri-
ente del diparu’mento che controlla il progetto e la seconda recupera i progetti che coinvol—
sultato. In generale un’interrogazione con SELECT DISTINCT elimina i dupiicati, menu-e
ono uno ‘Smith' come panecipante a1 progetto. Si noti che se piD dipendenti hanno i1 co—
un'inten'ogazione con SELECT ALL non lo fa (specificando SELECT senza le opzioni ALL
gnome ‘Smith'. saranno recuperati i nomi del progetto che coinvolgono uno qualsiasi di essi.
0 DISTINCT, si ottiene un effetto equivalent: a. SELECT ALL). Ad esempio, l‘Interrogazio-
‘applicazione defl‘operazione UNION alle due interrogazioni selezionate da 11 n'sultato desi-
no I? recupera lo stipendio di og'ni dipendente; se pil} impiegati hanno lo stesso stipendio. il
etato.
valore dello stipendio apparixe pin volte nel risultato dell'interrogazione, come mostrato in Fi—
gura 8.3(a). Se si e interessati solo a valozi dello stipendjo distinti, si vuole che ciascun valo-
i'e appaia solo una volta, indipendentemente da quanti dipendenti guadagnano quelio stipen-
dio. Usando la parole chiave DISTINCT come nelia seconds: delle interrogazioni I? si otu'e- .2.5 Confronti di sottostringhe,
ne tale risultato. mostrato in Figura 8.3(b). operatori aritmetici e ordinamento
INTERROGAZIONE 7. Si recuperi lo sfipendio di ogni dipendente nella prime intenoga-
guesto paragrafo vertanno trattate altre funziom‘ di SQL. La prime funzione permette di ese‘
zione riportata qui di seguito, poi, neIle successive, tutti i valori distinti dello stipendio.
3111113 on confronto solo su patti di una stringa di caratteri, usando l’operatore di confronto
17: SELECT ALL STIPENDIO IKE. Le stringhe parziah' some specificate ufifizzando due caratteri riservati: i1 segno di pet-
FROM MEGATO: entuale (9b) sostituisce 1m numeto arbitrario di caratteri e il segno di sottoljneatura (_) sostzi~
isce un singolo caraztere. Ad esempio si consideri l'interrogazione seguente.
17A: SELECT DISTINCT STIPENDIO
FROM IMPIEGATO;
WEEERROGAZIONE 9. Si recuperino tutti i dipendenti ill cui indirizzo e a Houston, in
Aicune operazioni insiemistiehe dell‘ algebra relazionale some state incorporate dixetta- as.
meme in SQL. Vi e l‘operazione di unione insiemistica (UNION), e in SQL’Z vi 30:10 anal-1e

: SQL2 commende anche deile OpBrEZiDni sui multinsieme che 80110 5:gum:
‘ daila role chme
‘ ALL (UNION
5 In generale non é richi ester che unn tabella SQL abbia urw. chiave anche 5e nella maggior pane dei casi as me am una. . ALL, EXCEPT ALL, INTERSEC ALL). I Ioro risuimi sol-Lo multinsieme. P5
1'.“ flH---_ I .1- - =55: -- 44-5”; ‘5‘, . I .. n
SOL - Lu standard delle basi d1 dati relazionali 267
266 Capitolo 3

112: SELECT *
19: SELECT NomfiBATT, COGNOME FROM IMPIEGATO
FROM IMPIEGATO WHERE (STIIPENDIO BETWEEN 30000 AND 40000) AND N_D = 5;
uston, TX%";
WHERE INDIRIZZO LIKE “%Ho
. . . . .
usare l’Imerru- SQL consent: all utente d1 urdmare le tuple del nsultato d1 un‘inteirogazione rispetto ai
sunu uati negli armi cmquauta. si pub
Per recuperate tuttii dipeudeuti chc s. (anaconda i1 formato vista per 'alori dj 113.
gimme '
uno o pin attribu u' , usandu la clausala ORDER BY. come 6 illustrate nell‘Intmo-
carat tere della string
gaziune 127. Qui “5“ deve assure i1 terzo caratterc di sottoliueauna“
c “_ __5_______’’. in cui ogni
la data). quindi si utilizza il valor
arbitrario.
serve come indicatore di un carattere INFERROGAZIONE 13. Si recuperi un cleuco di dipcndenti c i prugetli su cui lavorano,
anui c‘mquama.
uo tutti i dipendenti che sono nati uugli atl' p31 dipaItJmentD
h l
3 . all mmmu d] C.1 a s CT] B d}p menu) l
I l alfabetlcam
, 11i 51 Ol'dlm C nte per
INTERROGAZIONE 10A. Si tmvi
E
110A: SELECT NOIWILBATI‘. COGNOM
IMPIEGA TO 113: SELECT NOMILD, COGNOME. NOMEJSATT, NOME_P
FRO M
; FROhl‘IlEDH’ARTIMEN'IU, MEGAN. LAVORA_SU, PROGE'I'I‘O
WHERE DATA_N LIKE ‘_ _ 5 _______’
WEE NUMERO_D=N_D AND SSN=SSN_I AND
operator-1
dcll‘ aritmutica nelle mterrogazioni. Gli ' N_P=N'UMERO_P
Alfie funzionalith permettono l‘utilizzo molti plica zione (*) e la divisionc
c (-4-), la sottra zione (—L 1a ORDER BY NOME_D, COGNOME, NOME_BA'IT;
mimetici standard per l’addizion rici. Ad escm—
numerici o 3i atuibuti con domini uume
(I) possonu essere applicati ai valori 10 per cents data a tutti i dipcu-
tto di un aume nto del Eg'grdinu predefinitu é l'ordine crescente dei valori. Si pub spucificare la parula chiave
pio, si suppunga di voler vedere l‘effc 111 per vedere
uttoX': si pub applicare l‘Intcnogazioue sells-1 .vuole I orume'decresceute. La parole chiave ASC pub essere utilizzata per speci-
denti Che lavurano sul progetto ‘Prud
carc esp 1c1tamcntei ordmc crescente. Se si desidera un urdine decrcscente su NOME D e unu
come diventerebbero i loro stipundi.
faresceute su GDGNOME. NOME_BATT, la clausola ORDER BY dell’intctrogazione 113 diventa
dipendeutc che lava-
riuu i salari risultanti, daudu a ugni
INTERROGAZIONE 11. Si most
del 10 per canto. ORDER BY NOME_D DESC. COGNOME ASC. NOME_BATT ASC
ra sul progetto ‘TrodottoX" un aumento
E. 1.1... STIPENDIO
SELECT NOME_BAT1", COGNOM
111'.
IMPIEGATO. LAVO RA_ SU, PROGETTO
FROM dottoX';
RE SSN =SS NJ AND N_P =NU'MERO_P AND NOME_P=‘Pro 8.3 lnterrogazioni SQL pita complesse
WHE
e utilizzato in
ratore di concateuaziune ‘ l l ‘ pub assur
Per quanto riguarda le suinghe, l’ope data. ora, timestamp e
due valori stringa. Peri tipi di dau' e} paragrafo precedente sono stati descritti i tipi fondamentali di iutcrmgaziuni SQL. A cau-
un’interrugazione per giustapporrc i diminuziune (—J 61 um:
sono i1 segue di aumentu (4-) 0 di della generalita e dcl poteru espressivo del Linguaggio, vi suno malts altre funzioni 0119. con-
ultervallo. gii operatori disponibili si pub specificare
quantité compafihiic con il tipo. Inoltre
data. di un’ora u timestamp di una operatore di con- Inc11. 0 agh Ute n tl d1 5Peelfi c are mt 5110332110111 plu ComP 13553 . 143}. 3 Cg“ no , I].e 531 auflo 853'
come differ enza tra due valori data. on: o timestamp. UII. altro
uu intervallo nell‘l nteir ogazione 112.9
dité é BETWEEN, illustrate
fronts che pub essere usato per coma
tu 5 i1 cui stipeudio
erinu tutti i dipendenti del dipanimeu
INTERROGAZIONE 12. Si recup
é compress tra 30.000 5 40.000 dolla
ri. 3.1 lnterrogazioni nidificate e confronti di insiemi

cum: mtermguzmui iichiedono di cstrane dei vaiori esistcnti nella base di dad per poi usur—
________‘_.___—
ti nulls. stringa, dombbcru essere
premiu- in una condizmne d1 confrouto. Tali interrogazioni possum) essere convenientemeute for-
percenuiale 9!: some caraueri presen sentn Ia strin- .
7 Se 5 simboli di sutlol'lneamra a di escmpio; ‘ABLCDWBEF" ESC '\‘ rappre ate usando delle intermgaziuni nidjficate, Che. souo blocchi completi SELECT
dope la strings; ad
Li da un camflene escape, specificata
Ill! . . . W'I-DERE posti all‘intcmo della clausola WHERE di un’altra interrogazione Chia-
ga ‘AB_CD%EF'. 30000 AND 40000) equivaic a ((STIP
ENDIO ‘2 30000) AND (STI-
‘ La condizione (STIPENDIO BETWEEN mterrogazlone esterna. L’Interrogazione 18 {E stata formulata senza uu’iuterrogazione
PENDIO S 40000)}
268 Capitoio 8 SQL - 1.0 standard defile basi d! dati relazionali 269

azioni nidificate come mosttato SELECT COGNOMB, NOME_BA'IT


nid'tficata, ma puo assert: rifenuulata per utilizzart: le interrog
FROM IMPIEGATO
qui di. seguite:
WHERE STIPENDIO > ALL (SELECT STIPENDIO FROM IMPIEGATO WHERE
18A: SELECT DISTINCT NIB/{BRO} N_D=5);
FROM PROGEITO In generals si possene avers parecchi livelli di interrogazioni nidificate. E pessibile unco-
WHERE NUMERO_PN (SELECT NUMEROJ’
ra una volta chc vi sia ambiguita u-a i nemj degli attributi so esistone attributi con 10 stesso no-
FROM PROGETTO. DTPARTIMENTO.
me, una volta in una relazione nella clausola FROM dell’interrogazione estema c Ia scconda
MEGATO
vol-ta nel}a relaziene nella clausola FROM dell’inrerrogaziene nidtficara. La regoIa e Che i ri-
WHERE NUM_D=NUMERO_D AND ' femucuu ad arrriburi non qualificati si riferiscouo alla relazione dichiarata nell’interrogazio-
SSN_DIR=SSN AND ne ntdlfioata pi!) interua. Ad esempie nella clausola SELECT c nella clausola WHERE del-
COGNOME=“Stu.ith“) la poms: Intenogaziene nidificata di Q4A. un riferimente a un attribute non qualificate della
0R rilazuene PEOGETTO si riferisce afia relazioue PROGETTO specificata nefla clausela FROM del-
NUMERO_P IN (SELECT N_P l mterrogauaonc uidificata. Per far n'ferimento a un attribute della reiaziene PROGETTO speci-
FROM LAVORA_SU. MPIEGATO ficata nell’luteu‘ogazione estema, 5i pub utilizzare c fare riferimente a uno pseudonimo per
WHERE SSN_I=SSN AND quellu relamene. Quests regole sone simiIi a quelle di visibiliti per le variabili in un linguag-
COGNOME="Smifl1”)-, gm d1 pregrammuzione come PASCAL, che consente funzieni e procedure nidificate. Per il-
lustrate IaPotenz1ale ambiguith dci nemj deglj artributi nelle interregazieni nidificatc si pren-
numeri di progetto dci progetti dj cui
La prima interrogazione nidjficata scleziona i
da 111 conslderaziene l’Iuterrogazione 114, i1 cui risultate é mesurate iu Figura 8.30:).
a selezie nai numeri dei progetti Che hauno ‘Smith‘ coin-
‘Smith’ P. dirigente. mentre 1a second
seleziona una tupla PHOGETTO se i1 va- INTERROGAZIONE 14. Si recuperi i1 uome di ciascun dipendente chc ha una persona a
volte come pmtecipante. Nell' interrogaziene estema si
fa pane del risultat e di una dolls due interregazioui nidificate. cameo con 11 medesuuo neme e lo stesso sesse dcl dipcndente.
let-e NUMEHO_P di quella tupia
un insiem e (e multinsieme) di valet-i V
L‘eperatore di confronto IN cenfronta un valor: v con [14: SELECT I.NOME__BAT'I‘, I.COGNOME
c restituisce i1 valor: TRUE 5: v e one degli elemen fi di V.
tra parentcsi con un insiemc e on FROM [MPIEGATO ASI
L‘eperatore IN pub anchc confrontare una tupla di valeti WHERE I.SSN IN (SELECT SSN_I
tibilj all‘unie ne. Ad escmpi e Pinterro gazione:
multinsieme di mple compa FROM PERSONA_A__CARICO
WHERE ItNOME_BATT=NOME_PERSONA_A_CARICO
SELECT DISTINCT SSN__I
AND I.SESSO=SESSO);
FROM LAVORA_SU
A_SU
WHERE (N_P, ORE) 1N (SELECT N_P. ORE FROM LAVOR _ . INeI‘l’mtenogaziene nidificata dcll’lnterregazione 114 Si deve qualificare I .SESSO perché
WHERE SSN='123456?89‘); s] nfenuce all‘attribute SESSO della relazione IMPIEGATO dell’interrogaziene esterna c anche
1t: relatmone PERSONLAACAH 100 ha un attribute chiamato SESSO. Tutti i rifelimenti non qua-
nti Che hanno 1a stessa combinazio-
selezioneré i numer't di servizio sanitario di tutti i dipende ;tficatt a SESSO nell‘interrogazioue tfidificata, si riferiscono all’attributo SESSO di PERSO-
dipende nte ‘John Smith' (i1 cui. SSN =
m: (progotte. ore) so on progette in cui lavera i1 HA_A_DARICO. Tuttavia non si devono qualificarc NOMEJEATT e SSN pemhé la nelaziene PER—
“123456789“). SONA_A_CARICD non ha attribufi chimati NOME_BATT e SSN, quindi non vi 5 ambiguith.
o per cenfroutare un
Oltre all‘operatere EN, possoue assert: usati alu‘i operatori di confront
ente un nome di attribute ) con uu insieme e on multjnsieme V {tipi- lutenogauloni nidlflcate correlate. Quande una condizionc nella clausola WHERE -d't
singolo valore v (dpicam
erc =ANY (oppure = SOME) re- a mren-ogaztone nidificata si riferisce ad attributi di una relazione dichiarata nell‘inten-o'"
camente i1 risultato di un’intem'ogazione nidificata). L’operat
i1 valore v e uguale a on qmlsias i valor-e nell’insie me V ed é quindi equi- one esterna, si dice ch: 1: due interrogaziem‘ sono correlate. Si pub capire megh'o 1
stituisce TRUE so
o. Ale-i operated cht:
valente 2 IN. Le parole chiave ANY c SOME hauno lo stesso significat to d] Intenogazionc cen'elata cousidcrando che l'r'mermgaziene nidzficare é vain ' \-
usati con ANY (0 SOME) includon o >, >=. <, <= e <>. Anche la parela chia- J’ra per museum mph; (0 combinazione (If tuple) dell’intermgazione enema. Ad: 6
possono assets
di questi operated . Ad asempio la eendizio- pub peosere a 114 nel segueute mode: per ciascuna tupla di IMPIEGATD, si val
ve ALL pub essere ufifizzata insieme a ciascuno
ne di confronto (v > ALL V} restiutisce TRUE so 11 valore
v e maggiorc di tutti i Valod dol- one mdlficata, che recuperai valet-i di SSN_I per run: 16 tuple PEBSONA A; CAR
i nemi doi dipcndenti il
l‘insieme V. Uu escmpie é l‘interrogaziene seguentc. Che restituisce
. i’l’iw'i wlm
I I l I ..— I -
. . osesso t: nome defla tupla di IMPIEGATO; se 31 valor: di SSN defla mp1; 51 I ”M
Insuitate dell‘iutenogariene [Edit-loam: 9i; selezinna quella nmla da IMPTFf“
: _._ ._ . . . «u 4.- -.E: 5. .. .. ..
i—rw L”. L -._—a

SQL - Lo sundard dene has: at datl reiazionali 27?

270 Capitolo B

di EXISTS, e anche di NOT EXISTS, uamite esempi. Prima d1 tutto viene formulata I‘lnter-
hi SELECT . . . FROM . . . WHERE :5 . frogazione 114 in una forma alternativa che uu'lizza EXISTS. Questa formulazione e mostrata
In generaie un‘interrogazione scritta can i blocc in-
= 0 IN pub sempre esserc espressa come ml
nidificati e usando gli Operated di confronto come in 114A:
ui di seguito.
io 114 pub essere scritta
terrogazione di un singolo blocco. Ad esemp
114B: SELECT I.NOM.E_BA'IT, LCOGNOME
114A: SELECT I.NOME_BA’I'T, LCOGNOME FROM MIEGKI‘O AS I
AS D
FROM EMPIEGATO AS i. PERSONA_A_CARICO WHERE EXISTS (SELECT *
RE I.SSN =D.SS N_I AND I.SES SO=D .SESSO AND FROM PERS ONA_A_CARICO
WHE O;
I.NOME_BATT=D.NOME}ERSONA_A_CARIC WHERE I.SSN=SSN_I AND LSESSO=SESSO AND
I.NOME_BA'I'I'=NOME_PERSONA_A_CARICO);
EM R aveva anche un operators. di confron-
L‘implementazione originals di SQL di SYST im-
insiemi 0 due multinsiemi. Questo operators-s
to CONTAINS. usato per confrontarc due a causa della diffic olih eh 1m- Le funzioni EXISTS e NUT EXISTS di solito sono usate insieme a un’interrogazione ni-
ggio. proba bilme nte
cessivamente a: state eliminate dai lingua SQL ificata correlata. Neil'esempio sopra riponato, l‘interrogazione nidificata si riferisce agii at-
pane delle implementazioni commerciah d!
plernentarlo in mode efficace, e la maggior i di valori e restituisce tributi SSN, NOME_BATT I: 35350 defla relazione IMPIEGATO deli‘inlen'ogazione estema, quin—
AINS confro nts. due insiem
mm 10 comprendc. L‘operatore CONT ' si pub pensare nel seguente modo: per ciascuna tupia di IMPIEGATO. 5i valuta Pinter-raga-
altro insieme. L'Imcrrogazione 115 illusua l‘u—
TRUE sc un insieme contiene tutti i valori dell‘ ione nidificam, che recupera tutte 1:: triple PERSONA_A_CARICO con 10 stesso numero di ser-
tilizzo dell‘operatore CONTAINS. ‘(3 sanitario. sesso 3 name defla tupla dj IMPIEGATO; se nel risultato dell’ interrogazione ni-
i pro- ificata EXISTS almeno una tupla. aJIora 5i seleziohi quella tupla dj IMPIEGATO. In generate
Home di cgni dipendente che lavora su tutti
INTERROGAZIONE 15. Si recuperi i1 FXISTS(Q) restimisce TRUE se c‘é almeno um mpia nel risuitato dell’interrogazione Q. al-
getti controllati dal diparfimemo numero 5. u-imcnti restituisce FALSE. D‘alu'a pane NOT EXISTS(Q) rcstituisce TRUE se non vi sons
rupie nel risultato dell‘intermgazione Q. altrimemi restituisce FALSE. Nel seguito verra de-
115: SELECT NOMEJBATT. COGNOME ‘
IMPIEGATO critic l‘utilizzo di NOT EXISTS.
FROM
WHERE ((SELECT N_P
FROM LAVORA_SU 2..
M
INTERROGAZIONE 16. Si recuperino i norm’ dei dipendenti che non harmo persona 3 ca-
WHERE SS N=S SNJ}
co.
CONTAINS
(SELECT NUMEROJJ [16: SELECT NOMEJSA'I’I‘, COGNOME
‘53
FROM PROGETTO FROM IMPIEGATO
WHERE NUM_D=5]): WHERE NOT EXISTS (SELECT *
correlate. ell‘ui- FROM PERSONA_A_CARICO
interrogazione nidificata (she non é
Nell‘hnerrogazione 115, la seconda l~ WHERE SSN=SSN_I);
progetto di tutti i progetti controllati dal d1part
terrogazione esterna) recupera i numeri Eli é
a a 1m impie gato, la prima interrogaz‘ione nidificata (Che
meme 5. Per ciascuna tupia relativ ; 5e quest i contc ngono pro: In 116 l’imcrrogazione nidificata correlata recupera tutte 1e triple DIPENDENTE relative
cui lavora l‘impi egato
correlata) recupera i numeri del progette in eraio 11 una tupla di IMPIEGATO. Se mm ne esisrano. é selezionata la rupla di IMPIEBATO. Si pub
dell‘irnpiegam é selezionata e viene recup
getti tutti gestiti dal dipartirnento 5, la tupla TAIN S & siimle all‘operazio ne piegare 116 nel modo seguente: per ciarcwra tupia di IMPIEGATO, l’imerrogazione nidifica—
d1 confro nto CON
name dell‘impiegato. Si noti Che l'operatore Poicix é l'operazrelr e ’Ia correlata seleziona rune le ruple PERSONA_A_CAHIGB i1 cui valore di SSN_I cortisponde
2.1
itta nel Sottoparagrafo 7.4.7.
DIVISION dell’aigebra relazionale descr TS per specr ficam quesu t1- ore di SSN in IMPIEGATO; se i] risultato e woto. l‘impiegato non ha nessuna persona
3 ca-
usare 1a fimzio ne EXIS
CONTAINS non fa parte di SQL, bisogna lico, quindi si seleziona la rupla Iii IMPIEGATO e si recuperano i1 suo nome e il suo cognome,
aragrafo 8.3.2.
pi di interrogazioni, come si vedrii nel Sonop . e NOME_BATT e COGNOME. V1 9. uri’altra funzione di SQL, UNIQUHQ). she restituisoe
U'E se non vi sonu tuple duplicate nel risultato dell'intermgazione Q; alu-imenti restituisoe

8.3.2 Funzioni EXISTS e UNIQUE


MRROGAZIONE 17. Si elenchino i nomi dei dipendenti dirigcnti di dipartimento che
llare se il risulrato di un’interrogaziune riifiifi- anno almeno un sottopusto.
La funzione EXISTS in SQL «2 usata per contro uuhzzo
oppure no. NeI seguim, var-r21 rilustrato 1.
cata e con-clam a vuoto {non confiene mple)
SOL - Lo standard delle basl dl dat! relazionali 273
272 Capitolo 8

WHERE NOT EXISTS


117-. SELECT NOME_BATT,COGNOME (SELECT "‘
FROM MEGATO FROM LAVORA_SU B
WHERE EXISTS (SELECT * WHERE (B.N_P IN (SELECT NUMERO_P
FROM PERSONAJLCARICO PROGE’I'I‘O
FROM
WHERE SSN:SSN_I) NUM_D=5))
WHERE
AND AND
EXISTS (SELECT * NOT EXISTS (SELECT*
FROM PERSONA_A_CARICO
FROM LAVORA_SU C
WHERE SSN=SSN_DIR);
WHERE C.SSN_I=SSN
in cui si specificano due in— AND
Un mods per scrivere questa interrogazione é mosuato in 117,
seleziona tuttc 1e tupie PERSONA_A_GAHICO colle- C.N_P=B .N_P)):
terrogazioni nidificate correlate: la prima
TO, la seconda selezion a tum: ls mple DIPAHTI MENTO gesfite da IMFIEGA-
gate a un IMPIEGA
della prima interroga zionc e almeno una m quel- l‘interrogazione nidificata estema seleziona 1e tuple LAVORA_SU (B) ll cui N_P é di un proget—
TO. Se esiste almeno una mpla nel risultato
seconds , si seleziona la tupla di IMPIEGA TG. E possibile riscrivere questa interroga- to commllato dal dipaltimcmo 5, 52 non vi :3 mm rupla LAVORA_SU (C) con 10 stcsso N_P e lo
lo della
stcsso SSH della mpla di IMFIEGATO specific-Eta che l'interrogazione esterna sta prendendo in
zione usando solo una oppure nessuna intcnogazione nidificata'?
o CONTAINS. pub_e.s- ccnsiderazione. Se non esiste alcuna tupla di questo tipo, si seleziona la tupla di IMPIEGATO.
L’Interrogazione 115, che é servita a illustrare l‘operatore di confront
NOT EXISTS nei sistemi SQ]... Vi sons due opziom. La puma La forma di IISB corrisponde alla seguente riformulazicne dell'lntermgazionc 1151 si sele-
sere specificata usando EXISTS 3
Che dice chc se (SI CONTAINS zioni ogni impicgato talc che non esista alcun progetto controllato dal dipartimento 5 in cui
E ufilizzarc 1a hen nnta trasformazione della teoria degfi insiemi
presentato qui di seguito.
5'2) Elogicamente equivalente a (52 EXCEPT SI). é mom,“ came l’impiegato non stia lavorando.
Si noti che l’Interrogazionc 115 pub essere espressa nell'algebra rclazionale usando l‘opc-
115A: SELECT NOME_BATT.COGNOME Iazionc DEVISION.
FROM [MPIEGATO
WHERE NOT EXISTS
((SELECT NUMEROJ'
FROM PROGET'I‘O 8.3.3 lnsiemi espliciti e NULLS
WHERE NUM__D=5)
EXCEPT Si sent) vista diverse interrogazioni con un‘intenogazion: nidificata nella clausola WHERE.
(SELECT N_P E possibile usare anche un insieme asplicito di valori nella clausola WHERE, pinttosto Che
FROM LAVORA_SU un’imermgazione nidificata. Tale insieme va pnsto tra parentesi in SQL.
WHERE SSN=SSN#D);
INTERROGAZIONE 18. Si recuperino i numcri del servizio sanitario di tutti i dipendenti
ia una uidificaziune che lavorano sui progeni numero 1. 2 o 3.
Un'ultefiore opzione 5 illustrate. qui di seguito. Si noti Che é necessar
115. Che usava 1’ operato-
a due livelli e che questa formuiazlone 6 1m po’ pifi complessa della
Che utilizza NOT
re di confronto CONTAINS e anche della interrogazione supra riportata, 118: SELECT DISTINCT SSN_I
di SQL 5 non
EXISTS e EXCEPT. Tuttavia, va notato oh: la clausola CONTAINS non fa parte FROM LAVORA_SU
li hanno l’operator e EXCEPT anchc se fa pane dello standard SQL2. WHERE N_P IN {1, 2. 3);
tutti i sistemi relaziona
Nell‘ulteriore variazione dell’lntenogaz'mne 115 sotto riportata:
SQL consente interrogazioni che contmllano se m1 valore .3 NULL, mancante 0 non defi-
IlSB: SELECT COGNOME,NOME_BATT nito Oppune non applicabile. Tunavia, 11w di usare = u at par confiontarc an attribute con
FROM EMPIEGATO NULL, SQL utilizza IS oppure IS NOT. Questo perché SQL considera ciascun valore nullo
come distinto da ogni altro valore 1111110, quindi i1 confronm di uguagljanza non é appropriato.
Ne segue Che, quando é specificata una condizione di join. le tuple con valori nulli per gli at-
tributi di join non sent: inclusi nel risultato (a menu Che si tram di Lm OUTER JOIN, cine an
#i ricoW‘XCWHwWWF fra 'nsiemii. *- ofi- . --
“‘7- ’“..I
, ‘ “2.2 :17 .. 2.2:
W 1 .,,- = .. - ' -.
276 Capitofo 8 SQL - Lo standard dens basi di dati relazionali 277

Funzioni di aggregazione e raggruppamento e i? numero dei dipcndenti del dipartimemo ‘Ricerca‘ nell‘interrogazionc I23:
8.3.5
123: SELECT COUNT 12*)
un‘o-
Nel Sottoparagrafo 7.5.1 si e introdutto il concetto delia funzione di aggregaiziorie-come FROM IMPIEGATO, DEPARTEMENTO
pcrazione relazionale. Poiché ii raggruppamento e 1’ aggregazione sono richiesu m molte‘ap— WHERE N__D=NUMERO_D AND NOME_D=‘Ricerca‘;
tra cm ai-
plicazionj di basi di dati, SQL comprende funzieni che implementano [all concern,
cune funzieni bail-in (integrate): COUNT. SUM, MAX, MIN e AVG. La fimmmie COUNT Qui l‘asterisco (*} si riferisce alle n'ghe (tuple). quindi COUNT (*J restituisce i1 numero
funmeni SUM,
restituisce i] numero di tuple o valori individuati da un’interrogazione. Le. di righe nel risultato dell‘interrogazione. Si pub usare anche la funzione COUNT per calcula-
nunienei e resti-
MAX, MIN e AVG sane applicate a un insieme o a un multinsieme di valon re i valon‘ presenti in una colonna invece delle tuple come ncll'esernpio seguente.
d1 quei va-
tuisccmo rispettivamente la somma, i1 valore massimo, i1 valore minimo e la media
RAWG
lori. Queste funzioni pnswno cssere usate nella clausola SELECT o nella clausela m‘I‘ERROGAZIONE 24. Si calcolj il numcm dei valor} distinti degli stipendi prescnti nel—
funzioni MAX e MIN possono essere utilizzate anche con attribuu che han-
[Si veda 01113). Le 1a base di dati.
no domini non numerici sc tra i valori di domirLio a definite un ordimmenro rotate.”
[24: SELECT COUNT (DISTINCT STIPENDIO}
lo stipen— FROM IMPIEGATO;
INTERROGAZIONE 20. Si calceli la somma degli stipendi di tutti gli impiegati,
dio massimo. quelio minimo e quello media.
Si noti che, 36 Si scrive COUNT(STIPENDIO) invece di COUNT(DIST]NCT STIPEN-
DIO) in 124, si arriene Io sressa n’sulraro di COUNTC") perché i valori duplicati non vengono
120: SELECT SUM (STIPEN'DIO). MAX (STIPENDIO). MIN (STIPENDIO).
eliminati e quindi '11 Human) dei valori risulta lo stesso del numero dclle tuple." Gli esempi pre-
AVG (STEPENDIO)
cedenti mostrano come vanno applicate 1c funzioni per recuperare un valore di sintesi dalla ba—
FROM IMPIEGA'PO;
se di dati. in alcuni casi pub essere necessario usare le funzioni per selezionare particulari tu-
pic. Si specifica allora un'interrogazione nidifzcata che apph'ca la funzione desiderata e la si uti-
5:: Si vogliono ottenere i valori delie fumioni precedenfi per gli impiegati di. une speeifice lizza nella clausoia WHERE di un'interrogazione esterna. Ad esempio, per recuperate i nomi
ziune 20, in am
dipartimento, ad esempio il dipartilnento ‘Ricerca’. si pub scrivcre l’Tliterrega d3 tutti gli impiegati che hanno due 0 pih sottoposti si pub scrivere:
Che lavorano
Is tuple Eli IMPIEGATO sono limitate daila clausola WHERE a quegll impiegati
per i] dipartimento ‘Ricerca‘. SELECT COGNOME. NOME_BA'IT
FROM IMPIEGATO
dei dipaf—
INTERROGAZIONE 21. Si calcoli la soma degli stipendi di tutti gli impiegaii WHERE (SELECT COUNT (*)
‘Ricerca’ e anche lo stipendio massimo, quello minimo c quello media d.1 questo d1-
timento FROM PERSONA_A_CARICO
partimento. WHERE SSN=SSN_I) >= 2;

IO).
I21: SELECT SUM (STIPEN'DIO), MAX (STIPENDIO), MIN (STIPEND L'interrogazione nidificata con-elata calcola i1 numcro di persona a carico che ha ciascun
AVG (STIPENDIO) dipendeme; se a maggiore o uguale a 2. e selezionata la tupla c dipendente.
FROM IMPIEGATO. DIPARTEMENTO Ln mold casi si vogliono applicare 1e funzioni di aggregazjone per create Joflogmppi di ru-
WHERE N_D=N'U'MERO_D AND NOME#D=‘Ricerca’; ple 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 lavora-
no su ogni psogetto. 1n questi casi e necessario raggruppare 1e tuple che hanno lo stesso valo~
INTERROGAZIONE 22. Si recuperi i1 numero totale degli impiegati della societa:
re di mm 0 pin atlributi chiamati attributi di raggruppamento e applicare la funzione a ognu-
no di questi gruppi indipendentemente. SQL ha, per questo scape, una ciausola GROUP BY
122: SELECT COUNT [*)
-la quale specifica gli attributi di raggruppamento. Che devono upper-ire anche new domain
FROM IMPIEGATO;
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. A menu the elcune Lupie abbiano iI vaiore NULL per l'at tribute STEPENDIO. ne! qual case non sum chute-.gigiei
,..: ,___
SO; I; 1;. L «WW—W- __i-.- 4“ .. H..,i I . ”if;- I” "'I‘ I ' I
SOL - Lo standard delle basi di dafl relazionatl 283

282 Capitolo 8

UIA: INSERT INTO


VALUES iMPIEGA'IU (N OMB_BATT, COGNOME, N_D, SSN)
ga—
a preferibile scrivere un‘interro (‘Richard’, ‘Marini'. 4, ‘653298653‘);
per il sisterna generalmente
sia per '11 pmgranmatore sia ento cons egu ente .
e la nidificaz'rone e 1' ordinam
zione evitaudo i1 pit pussibil are Ia stessa interrogazione
e che
val GI1 ata'ibuti non specificati in UIA sono impostati ai Ioro valori DEFAULT 0 a NULL 6 i
Le svantagg ie dell’ esis tenz a di moiti modi per specific usar e per particula-
tecn ica
te. iI quale pub non sape te qua le 53;; :fngoneEeiencau nello steam erdine in cui gli atrribuu‘ sane etencan‘ nel comanda IN-
pub causare confusion: nell’uten efficace eseguire un‘intcrro— usando ease. possflmle anche msenre in una relazione ruple multiple, separate da virgole
ne. U11 altm problema e che pub essere piu
ri tipi di inte rreg azio
odo alter nafiv o. In teoria quests non si 1111 51113010 camando INSERT. I valori degli attributi che format-10 ciascuna m 1' ’
e piuttosto che in un met
gazione specificata in un mod interrogazione nel medesimo
mo- P a van—
dovrebbe eiaborare la stessa no posh tra parentesi.
dowebbe verificare: i1 DBMS sto e piut wst o difficile in
e a specificata I'intcrro gaz ione . Que i dIJu DEF: ehe iruplemcnta completamente SQLZ dovrebbe supporlare e imporre tutti 1 ti—
do, indipcndememente da com 1e interrogazioni specificate in
DBM S usa metodi differenti per esegu'rre £0.11£35;‘1: 1mtegr1ctla fihe possum essere specificati nel DDL. Tuuavia in alcuni DBMS ciu
pratica. poic hé ogn i
nte é stab ilire qua] e la piu efficace tra a causa e a perdita di efficienza che pub derivare dall ’ ' '
ore responsabilita dell‘ute
modi diversi. Percib un‘ulteri Idealmeute l‘utente dovrcbbe ' " 11'
II del far
e della stessa interrogaziune. spettare
‘ tutti i’ vincoli. Se 1m sisterna non su pporta aleum' vmcolr
' a comPiCSSHQ
' ad esem
varie specificazioni alternativ eitar nen te e dovrebbe essere responsahilith , 50110 311 utenti oi programmaton' a doverh' far‘ ris ettareP10Adque 0 dell‘ 111m“'
l‘imerregaziene corr gnta
. referenzrale
.
preoccuparsi solo di indicare ca, tuttavia, e meglio se l’uten- 7.6. unP DBMS non su 55oSI-
I che3561111310:
l‘inte rrog azio nc in mode efficace. In prafi . mimetic
.- 1.1‘ comandu U2 ' F1gura
. di dati most:ata 1.11
. nella base '
del DBM S cseg uire osi da eseguire rispetto ad altd LaEil-gtiflgaggggingmée esegurra l’inserimento anche se non esiste alcuna tupla DIPAEEI'JI'II-
un'interrogamone seno pifi cost
te sa quali tipi Iii costrutti in ’ ' ’ a con NUMEHO‘_D = 2. Spetta alI‘utente verificare che non s ' a v1' 1 -
(:11 :rmcelo 1! car confront? nor: a 1mplemenraro dai DBMS. 'Drttavia, il DBMSldem;J 1:51;:—
Ch:r1:re 1 comt per far nspertare and i vincoli d’integrim di SQL che supper-m. Un DBMS
e e Update in SQL
8.4 Le istruzioni Insert, Delet 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 ri-
e UP- fiutaro perché non e formto alcun valore di SSN.
in SQL —- INSERT, DELETE
si possum: usare tre comandi
Per modificare la base :11 dati $8113: INTO IMPIEGATO (NOME_BATI‘. COGNOME. SSN, N D)
d. U2:
DATE — qui [ii seguito presente (a; 112 a :fi ( Robert’. ‘Hatcher’, ‘980760540’, 2): _
utato se 11 controllo deli‘integrith referenz'rale e fornit d D
02A: INSERT INTO MEGATO (NOME_BATT, COGNOME, NOD)a EMS *)
8.4.1 ll comando INSERT ViALUES . (‘Robert‘, ‘Hatcher'. 5); —
[ UZA e nfiutato se 11 controllo di NOT MILL é fumim da DBMS *)
a a una re-
aggiungere una singola tupl
e INSERT viene usato per
Nella sua forma piu semplic e e 1111 elen co di valo ri per la tupla. I va-
filming \lritnante uel cornmdo INSERT inserisce tuple multiple in una refazione in corrispon-
'11 name della relazion
Iaziorre. Si devono specificare attributi currispundenti sono
sta-
n9 ad 31::a crleaaroae della relazmne, usando per l‘inserimento 1'] 11311111110 di un'inren-ogazio-
rebb ero esse re elen cati neflo stem) ordine in cui gli una nuo va tupla :11—
Iori dov per aggiungere numem deg; 2:113:21. id eselgnpro. 13:: create una tabella temperance che contiene i1 nome
‘11
ATE TABLE. Ad esempio.
ti specificati dal comando CRE ata nel com and o CRE ATE TABLE
ga e 3 anp en ' t u ta 11' per cmscun
' '
drpartunen
‘ to. 51‘ possum: scnvere
’ ' 1e
trata in Figura 7.5 e specific ismmom U3A e U33:
la relazione IMPIEGATO mos re I’Ist ruzione U1:
Figu re 8.1 si pub usa
IMPI EGATO. . . in
TMPIEGATO U3A: CREATE TABLE 1111:0319
U1: INSERT INTO 293653', ‘1962-12—30'.‘98
VALUES (‘Richard‘, 'K’, ‘Marini’, ‘653 [NOME__DIP VARCHARUS).
00, ‘987654321’, 4]; INTEGER.
Oak Forest,Katy.TX‘ ,‘M’, 370 NUMJMP
TOTALSAL IN I'EGER);
di specific-are esplicita— [NFO_D[P (NOME_DIP, NUMERO mam
ne INSERT consente all'utente U38: INSERT INTO
Una seconda forma dell‘istruzio nu ai valori forniti nel com ando INSERT. Cit: e STIPENDIO_TOTALE) _ ‘
degli attributi che corrispendo
meme i 1101111 ti i. valuri
di questi vanno assegna
ti atu'ibufi. ma solo ad alcuni $16!:w NOME_D, COUNT (*1, SUM (51195111310)
utile se una relazione ha mel tutti que lli con la specificazione NO
T
(DIPARTIMENTO 10m IMPIEGATO ON
bufi devono includere
nella nuova rupla. Questi attri tono i1 NU LL e 111111 110 valo r“; DE-
NUMERO D=N
efinito; gli attribufi che censen
NULL e nessun valere pred mpi o, per insefire 1111a mpla per 1111 mo
ve impiega—
GROUP BY NOMLE_D; _ JD)
ti. Ad ese
NJ] e SSN si pub usare UlA:
:ralascia
FAULT possonn essere
attribufi NOMEflBATT, COGNGME,
in di cui si commune sole gli
SQL - Lo standard dalle hast di dati relazlonati 285
284 Capitolo 8

1e informazioni di sintesi recu—


azmni mferZenziafi che vengono innescate perché specifieate in vineOli d’integrita referenziaie
Una tabella INFCLDIP a create da UBA ed 5 caricata con del DDL (s; v-eda i1 Sottoparagrafo 8.1.2). Un‘ulteriore clausola SET specifics. i attributi da
interrogate INFO_DIP co-
perate dalla base di dati dall’interrogazione in U33. Ora a possibiie moriificare e 1 lore nuovi valori. Ad esempio. per cambiare 1a posizione e il numero del di-
e. e quando non serve piii. si pub eliminarla usando
me si farebbe con qualsiasi altra relazion pammento che controlla il progettO numerO 10 rispettivamente in ‘Beliaire’ e 5. 5i usa U5:
contenere dati non aggiorna»
i1 comanclo DROP TABLE. Si noti che Ia tabella INFO_DIP pub
e IMPIEGATO dopo l’immis-
ti; cioe se si aggiomano 1a relazione DIPARTIMENTO o la relazion U5: UPDATE PROGET’FO
aggiomare. Se 5': desidera i‘agg'ior—
sione Eli U313. 1e infonnazibni in INFO_DIP nan sorta pit) SET SEDE_P : ‘BeHaiIe’. NUM_D = 5
o 8.5).
namentO automatico si deve create una vista (si veda i1 Paragraf WHERE NUMERO_P=1 D;

Pit: tuple possono essere modificate con un unjco comando UPDATE. Un esempio consi-
ste nelIa- medifica necessaria per dare a tutti gli impiegati nel dipartimente ‘Ricerca‘ an au-
8.4.2 It comando DELETE mento d1 stipendio due! 10 per cents. come mostrato in U6. In questa richiesta il valore modi-
ficeto STE-PENDIO dipende dal valore originale STIPENDIO in ogni tupla. quindi sono neces-
clausola WHERE simile
Il comando DELETE elimina 1e tuple da una relazione. Inciude una san due nfefimenti all’attributo STIPENDIG. Nella clausola SET. i1 n‘ferimentO alI’atu-ibuto
rc le tuple da cancellar e. Le tuple sono STIPEN-DIO a destra 5i riferisce a] vecchio valore di STIPENDIO prima delta modifica e quel-
a quella usata nelle interrogazioni SQL. per seleziona
da una tabella per volta. Thttavia . l’elimina zione pub propagaisi a tu- lO a sunstra si riferisce al nuovo valore di STIPENBIO dope in modified:
rimosse esplicitamente
te da vincoli d'integr ité referenz iale del DDL
ple di altre reiazioni 56 vi sonO aziom' specifica
i1 SOttOpa IagrafO 8.1.2}. A seconda del numero di tuple sele— U6: UPDATE IMPLEGATO
che vengono innescat e {si veda
. una 0 pin mple possum veniI can- SET S'I'IPENDIO = STIPENDIO *l.1
zionate dalla condizione neIIa clausola WHERE, nessuna
comand o DELETE . Se la clausola WHERE non a presente . tutte 1e tuple WHERE N__D IN {SELECT NUMERO_D
cellate da un singolo
base di dati come tabella FROM DIPARTEMENTO
nella relazione vengono eliminate; tuttavia la tabella til-mane nella
DELETE in U4A e fine a U4D, se applicat't 'mdipend entemente alla base WHERE NOME_D=‘Rice1-ca’);
\mota.‘2 I comandi
ncssuna. una. quartz-O e tutte 1e tuple dalla
di dati di Figura 7.6. cancelleranno rispettivamente ‘ E possibile anche specificare NULL O DEFAULT come nuovo vaiore di un attribute. Si nO—
relazione IMPIEGA TD: t: che ogni comando UPDATE speeifica esplicitamente 1e modifiche a una singola relazione.
MEGATO Per modifieare pit relazmm si devono hmnettere pin comandi UPDATE. Questi (e altri co-
U4A: DELETE FROM
COGNOMfiz'Brown‘; maiidi SQL) potrebbero essere ineorporati in un pmgramma di uso generale, come si vedra nel
WHERE
MEGATO Capltolo 12.
U413: DELETE FROM
WHERE SSN=‘123456789’;
U4C: DELETE FROM MEGATO
WHERE N_DIN [SELECT NUMERO_D 8.5 Viste (tabelle virtuali) in SQL
FROM DLPARTMNTO
WHERE NOME_D='Ricerca‘);
U4D: DELETE FROM MEGATO; yam qui introdotto i1 concetto di vista SQL. illustrando come viene speeificata, aggiornata e
nnplementata una vista dai DBMS.

8.4.3 II comando UPDATE 8.5.1 ll concetto di vista


0 piil cuple selezio-
11 comando UPDATE e usato per modificare i valori degli attributi di ma. Una vista nella tenm'nblogia di SQL e una singOIa tabella che deriva da altre Izabelle.I3 che p05—
UPDATE seleziona 1e
nate. Come nel comando DELETE. la clausola WHERE del comando ono essere tabelle base 0 elm: vista definite precedentemente. Una vista non esiste necessa-
valore di una Chia-
tuple da modificare in una singola relazione. Thttavia, Paggiomamento de1
estema di tuple di altre reiazioni se vi sono
ve primal-it: pub pmpagarsi ai valori delta chjave

‘ 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. P l “5mm “31 capital] 1 e 2'
11 Si dew. usare il mmandn DROP TABEE per eliminate complemmente 1s tabella.
1W IL". .E._-.___. l - n I- F. 5'- '- . . .L . -

-
~__. _., L. -...‘.., '
E—-—_....& ' '
-__-.w—- w--————u '
M i '
Ir-n—-—-- ' \~\-—-v.. - __——J W _.._....._. ._........_, .._.i. .. ___.,‘..Q _ ,___..= A._ . — —..F ... \ .. .. __ _ I .. ..._.

286 Capitolo 8 SQL - Lo standard delle basi dl datl relazionali 237

tabelle
riamente in forma fisica; e considerata una tabella vii-male, in comrapposizione alle In V1 non a: state specificato nessun nuovo nome di attributi per la vista LAVOFIA SU1 (an-
base le cui tuple sono effetLivame nte memorizza te nella base di dati. Cio limita le operazioni chelse sarebbe possibile farlo); LAVORA_SU1 emeditai nomi degli attributi di vista da—lle tabel-
limita-
d1 aggiomamento possibili ehe possono essere applicate ad essa, ma non pone aleuna 2e {11 definizione IMPIEGATO, PHDGETTO e LAVOHLSU. La vista V2 specifica esplicitamente i
zione alla 511a interrogazi one. nuovi nomj degli atlributi deila vista INFO_DIP, usando una corrispondenza one a uno tra gli
Si pub considerare una vista come no mode per specificare una tabella che si deve utiliz- atmomi specificati nelia clausola CREATE VIEW e quelli Specificati neila clausola SELECT
Si possono
zare di frequente anche se pub non esistere fisicamente. Ad esempio. in Figura 745 defl‘liiten'ogazione che definisce la vista. Ora si possono specifieare intenogazioni SQL 511
i nomi dei
eseguire facilmente delle filterrogaziorfi che recuperano i1 name dell'impiegato e una vlsta, o tabella virtuale, esattamente nello stesso mode in cui si specificano 1e interroga~
cui egli lavora. Piuttosto di clover specificare i1 join delle tabelle IMPIEGATO , LA- zioni che coinvolgono 1e tabelie base.
progetti in
vista Che
VDRA_SU e PROGETTD ognj volta che si esegue l‘interrogazione, si puo definite una Ad esempio. per recuperate il cognome e il Home di tutti gli impiegati che lavorano su
te sulla vi-
:2 un risultato di questi join. E possibile cosi effettuare 1e interrogazioni direttamen agenoX‘, si poo utilizzare la vista LAVORA_SU1 e speeificare l’interregazione come in
su una singola tabella invece di interrogaz ioni che
sta, specificandole come interrogazioni
sono Chia-
coinvolgono due join su tre tabelle. Le tabellc IMPIEGATO, LAVDRLSU e PHOGETTO
mate tabelle di definizione della vista. QVl: SELECT NOME_BATT, COGNOME
FROM LAVORLSUI
“(HERE NOME_P=‘ProgettoX’ ;
8.5.2 Specificazione delle viste
. La stessa interrogazione se specificats sulle relazioni base richiederebbe la specificazione
ll comando per specific-are on vista (2 CREATE VIEW. Alla vista :2 assegnato un nome di una di'due Join; uno dei vantaggi principalj di una vista e sempljficare la specificazione di deter-
azione per minate mterrogazioni. Le viste sono spesso usate anche come on meccanismo di protezione e
tabella [virtuale) [o nome di vista), un elenco di nomi di atu-ibuti e un‘inten'og
specificare i contenuti della vista. Se nessuno degli attributi deila. vista e il risultato dell‘ap— autonzzazione.
degli Unla vista 5 sempre aggiamara; 5: Si modificano 1: my}: nelle tabelle base su cui e defini-
plicazione di funzioni e di opetazionj aritmetiche, non e necessario specificare i nomi
ai nomi degli attributi con-ispond enti nelle tabelle di defini— te la vista. automaticamente la vism riflette questi cambiamenti. La vista. quindi, non e rea-
atuibuti, perché risuitano uguali
Figura hzzata a1 memento della definizione. ma piuttosto quando si specified un'inrermgazione su di
zione. Le viste in V1 e V2 creano delle tabelle virtuali i cui schemi sono illustrati in
delta base di dati di Figura 1.5. essa. B responsabilita del DBMS e non dell‘utente assicurarsi che essa sia aggiomata.
3.5 quando sono applicate allo schema
Se una vista non serve pifi. si puo usare i1 comando DROP VIEW per eliminarla. Ad
V1: CREATE VIEW LAVORA_SU1 esempio per eliminate la vista V1 si pub utilizzare I'isn'uzione di SQL in VIA:
AS SELECT NOMIELBATT, COGNOME. NOMEJ’, ORE
FROM IMPLEGA'IU, PROGETTO, LAVORA_SU VIA: DROP VIEW LAVOMS U1;
WHERE SSN=S SN_I AND N_P=N1MERO_F;
V2: CREATE VIEW INFO_DIP(NOME_DIP, NUMJMP.
STIP_TUTALE]
AS SELECT NOME_D, COUNT (*), SUM (STIPENDIO) 8.5.3 Implementazione e aggiornamento delle viste
FROM DIPARTEMENTO. EMPIEGATO
WHERE NUMERO_D=N_D 1] problems! dell’hnplementazione efficace di una vista per l’inten'ogazione e complesso. So-
GROUP BY NOME_D; no stati suggeriti due approcci principali. Una strategist. chiamata modifica a] momenta del-
l’intermgazione, richiede la modifica dell‘interrogazione defla vista in un’interrogazione sul~
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:-
WORKS_ON1
tutto se sono effettuate interrogszioni multiple alla vista in on breve periodo di tempo. L‘altra
l—NOMEfiATr ICOGNOME NOME_P | one 1 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
DEPTJNFO 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
I—NOMEJDIP l NUMJMP [ STIPJODALE L
gla efliciente che esegue il suo aggiomamento automatico quando sono agglomate 1e tab'
Figure 8.5 Due vista speeificate sulio schema della bass dl datl di Figure 15. di base. Per questo motive some state sviluppate delle tecniche che ussno il coneetto d1
SOL - Lo standard 'delle hast di datl relazionaii 289
288 Capitolo 8

e, can- UV2: UPDATE INFCLDIP


uina quali nuove tuple devono essere inserit
'omamentu incrementale, in cui si deten e un camb iamento in una dcfle SET STIP_'IUI‘ALE=100[}DO
mater ializza ta, quand o avvien
cellate o modificate in una vista ire in- WHERE NOME_D=‘Ricerca';
nuta purché su di essa si continuino a esegu
tabelie base. 'La vista in genere viene mante ita alcun a interrogaziene, i1 si-
o di tempo non vieue esegu
terregazioni: se per ml certo pefiod successi- 1: 3:;:ggtrz:$65211: dt agglzrubmaJ-nenfi allc relaziuni base sottostanti pOSsouo soddisfare ta-
tabeila fisica e ricaicolaria (is zero quando
stema pub rimuovere automaficamente la [0 0 I“ . vista. aggmnianaento d1 una vista b fattibile solamente quando wt so-
vista.
ve intenogazioui fanno riferimento alla a— p .95: I e agglomam-ema delle relazmni base corrisponde all‘effetto desiderato di a ‘oma
ento delie vista 6 comp licate e pub essere ambiguo. In generale un aggiom
‘aggiomam a‘i aggm gazio ne pub [beige sulla vista. Ogni volta che un aggiomamento della vista pub essere eseguito atgtrgalversb
rubella, senza nessunafimzione
mento su una vista definite. su una singala richiede pm 1 an aggt-omamemo nelle relazioni base sottostanti, b necessario avere una procedura si-
tto in un aggio mame nto sulla tabella base sottostante. Per una vista che
essere trado zioni di aggio mame mo cura psi- sceghere una delie possibilita. Alcuni ricercatori haunt) sviiuppato dei metodi er sce-
pub essere lradotta in opera
dei join, un‘operazione di agglomamento i probl emi poten ziali che nascono ghere l agglomamento che b pib pmbabile, mentre aitri vogliono che sia l‘utente a P ]i
Per illustr ate
sulle reiazioni base sottostanti in vari modi. in vista LA -
su piit tabeile. si prenda in considerazioue queIlo desiderato durante la definizione deila vista. 5963 are
dall‘ aggiomamento di una vista definite rnare l‘attri buto NOME JI di ‘John Rieptlogando si possono fare 1e seguenti osservazioni:
il coma ndo per aggio
VORA_SU1 e si supponga di immettere vista b mastr ato in WI:
Questo aggiomamento della
Smith’ da ‘ProdottoX’ a ‘ProdottoY’. 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
UVl: UPDATE LAVORA_SU1 elaseuna mpla (virtuale) della vista a una singola tupla base' ‘ CO ega
SET NOMEJ’ = ‘ProdottoY‘ - 1e viste defirute su tabelle multiple usando i join. in genere Ilifln sane aggiomabili'
NOME_BA'I‘T=‘John’ AND
WHERE COGNOME=‘SmiIh‘ AND le
nabm
viste definite us an d o Ie funzmm
' ' d1' raggruppamente e d1' aggregazmue
‘ non sono aggior—
NOME_P= ‘Prod ottoX‘ ;
-
aggiernamenti delle relazioni base per ottene dent: :32 la clausola WITH CHECK OPTION deve essere aggiunta alla fine della defini-
Quwta interrogazione pub riehiedere molti agg'iernam euti [a] e (b) del- 1'a . air-ism se questa deve essere aggiomata. Cib consente a1 sistema di controllarne
sulla vista. Due poss ibili
re i‘effetto di aggiomamento desiderato
erato su U'Vl some illustrati qui di seguito. ggmm 1th e di progettare una strategia di esccuzione per i suoi aggiomamenti.
ie relazioni base che datum l‘effetto desid

(3): UPDATE LAVORA_SU


O
SET N_P = (SELECT NUMEROJ’ FROM PROGETT
WHERE NOME_P=‘ProdottoY’) 8.6 Specificazione di vincoli generali
GATO
WHERE SSN_I IN (SELECT SSN FROM IMPIE come asserzioni
WHE RE COGN OIVE E='Sm ith‘ AND NOME_BA’IT=‘Jehn‘)
AND
O
N) [N (SELECT NUMEROJ’ FROM PROGE'IT {33$}: glidutenti possono specificare vincoli pib generali - che non rientrano in alcuna del-
WHERE NOMEJ’r-‘PredottoX’J:
5m; 3.13:33303f nel Szgpirgfif. 1 .2 — arm-averse asserzioni dichiarative usando l’i-
(b): UPDATE PROGE'ITO CRE ION. A ogni assertibne viene asse at , '
SET NOMEJ’ = ‘ProdottoY‘ I . u
Ecolgbslldneligicato alu'averso una cendizioue simile alla ciausola WHEREgréli :n’rilttrtlgrrféagg!
WHERE NOME_P = ‘PredottoX’; _ ne . . esempio . per
_ specificare
. ‘ i1 vines-lb she “10 s bpendio
' ' (is' un Imptegato
‘ ‘ non deve-
essere subenore a quello da un dmgente dei diparfimento per cui egli Iavora” in SQL2 é —
tupia PROGETTO di ‘ProdottoY‘ a1 pesto della
L'aggiomamento (a) coilega 'Iohn Smith‘ alia stblle scnvere la seguente asserzione:
di aggio mamemo migliore. Tuttavia. anche (b) fa— , P08
tupia PROGETTO di "ProdettoX‘ 3 la tecnica tupla
vista, anche se lo fa eambiando i1 name dells
rebbe raggiungere l’effettb desiderato sulla che l‘uten te she ha speci- 0mm??? As'eR'HON VINCOLO_STIPENDIO
‘Pro dot‘. E impro babile
‘ProdotteX‘ nella relazione PHOGETI‘O in in (N EXISTS (SELECT * FROM MIEGKI‘O
ri che l‘aggiomamento sia interpretato come
ficato l‘aggiomamento della vista UVl deside NOME_ P = ‘Prodo ttuX‘. DIPARTIMIENTO D I, MEGATO M‘
tutte le tuple della vista con
(b). poiché esso ha l‘effetto di cambiare WHERE I.S'I'[PENDIO>M.ST[PENDIO AND
o non avers moito sense; ad esempio modi-
Alcuni aggiomamenti della vista possone persiu I.N_D=D.NUMERO_D AND
INFO_ DIP non ha sense perché STIPflTOTALE é defi-
ficare l‘atIIibuto STIP_TOTALE della vista stae mostrata in UV‘Z: D.S_SN_DIR=M.SSN));
_- I ' ' unfit .n ; _.'; fendi .;"'°f~na]i def" iI'vftiegat'i. Guestarichie ._ -
-
.h‘ .
:4n _' La.
.. ../
”ii :3“ 1"
h.) - l... '- .- ' - all.
nall 295
SQL - Lo standard delle basi di dat! raiazio
294 Capitolo a

sulla vi-
Si speeifichi quaii delle seguenti interrogazioni e agglomamenti sono pennessi
specificare
(come nell’Esercizio 8.149.). Si pub sta. Se sono consenfiti un’intexrogazione 0 un aggiornamento. si mostri
come sarebbe-
memo invece che tutti i dipendenti si fornisca
questa interrogazione in SQL? Pem
hé? o pere hé no? ro 1e corrispondenti intenogazioni o aggiornamenti sulle relazioni di base e
i comandi di aggioma-
menti dell’Esercizio 7.19, usando i1 risultato quando sono applicati aiia base di daft di Figura ’16.
8.15 Si specifichino gli aggioma
memo di SQL. a. SELECT a:
SQL $1110 $1161“ 516113 base d1 dati ‘fi Fi‘
8.16 Si specifichino 1e seguenti in interrogazioni
.
b. :31?n ISDWgESLDiP,
ma 1.2.
dell‘ ulfimo anno ehe si specializzano in CS
E. Si recupeiino inomi di tutti gli studenti FROM SfINIT'ESI DIP
(Computer Science. Informatica). m S TOTAEE > 100000.
dal professor King dal 1993 al 1999. D" S MEDIO ’
b. Si recuperino i nomi di tutti i corsi tenuti numero del cor—
c. SELECT
Si‘NEESI DIP
o dal professor King, si recuperi il FROM
c. Per ciascun modulo di cui-so tenut scelg ono i1 mod ulo.
di studenti ehe -
so. il semestre, l'anno e il numero WHERE c > (SEL—ECI‘ 0 FROM SlNTESI mp WHERE D=4
d. Si recupe ri il nome e la nascrizione del libretto universitatio di ogui studente del— SLN‘TESL DIP — L
d. UPDATE
l'ultimo anno (AnnoCorso = 5) che si specializza in CS. Una trascriziune include ii SET D=3
-
segnamento. 1e ore di frequenza, ii seme 13:4;
nome dell'insegnamento, il codice dell‘in stude nts.
WHERE
nto completato dallo
stre, l‘anno 6 it vote per ciascun insegname pifi meri-
e. DELETE FROM SINTESI DIP
ti di specializzazione degli studenti WHERE C > 4; _
e. Si recuperino i nomi e i dipartimen in tutti i lore insegna-
il massimo dei voti
tevoli (studenti c‘ne hanno conseguito rt#,
8.20 Si prenda in considerazione lo schema della relazione CONTAINS (Parent_pa
menti). enti che non significa che la parte P,—
nti di specializzazione di tutti gii stud Sub_part#); il fatto Che una tupla <P,-P_,> si trovi in CONTAINS
f. Si recuperino i nomi e i dipanime Pk che
gli inseg narn enti da loro frequ enta ti. contiene la parte 2. come componente diretto. Si supponga di seegliere una pane
hanno ii massimo dci voti in tutti le segucuti operazioni sul- -'
zion i SQL cli aggiomamenio per eseguire non include altre parti e di voler trovarei numeri delle parti che di tutte {e parti conten-
Si scriv ano 1e istru azia~
. .-. 8.17
in Figu ra 1.2. gone Pk direttamente o indirettamente. a un qualsiasi livello; questa e un‘r‘merrag
lo schema della base di dati mostrato di dati. ne ricorsiva che n'chiede i1 caleolo della chimra transitive di CONTAINS. Si
mostri
<‘Johnson‘. ’25. l, ‘MATl-t‘> nelia base
a. Si inserisca un nuovo studente che questa interrogazione non pub essere specificata direttamente con una singola
i11-
‘Smi th‘ in 2.
13. Si cambi la ciasse dello studente ‘CS4390’. 3.'CS‘> terrogazione SQL. Si possono suggerire delle estensioni a SQL per consentire 1a
speci-
<‘Ingegneria della conoscenza'.
c. Si inserisca un rmovo corso e 'Smi th’ e il cui numero e 17. ficazione di tali interrogazioni?
nte il cui nom e
d. Si cancelii il record delio stude base di dati AZIENDA mo— 8.21 Se specifichino 1e interrogazioni e gli aggiomamenti degli Esercizi 120
e 121 die si 11'—
viste in SQL sullo schema della
8.18 Si speeifiehino 1e seguenti feriscono alla base di dati COMPAGNIA_AEREA.
sttato in Figure 1.5. eme e lo stipen- 8.22 Si sceiga un’applicazione di base di dati con cui si ha familial-ha.
e del dipanimento, il nome del dirlg
a. Una vista che centicne i1 nom a. Si progeni uno schema relazionale per la propria applieazione di basi
di dati.
nto.
dio del dirigente di ogni dipartime rvisore e lo stipen- b. Si dichiarino 1e proprie relazioni usando ii DDL di SQL.
e dell‘impiegato, i1 nome del supe
b. Una vista che euntiene i1 nom a nei dipa rtime nto ‘Rieerca’. 6. Si specifichino alcune interrogazioni in SQL neeessarie per la propria
applicazione
o che lavor
dio deli‘impiegato per ogni impiegat del dipa nimemo che conuolla di base di dati.
nom e del prog etto. i1 nome
c. Una vista che contiene il ana sul pro- d. 11: base ail'utiiizzo prevéntivato per ]a base di dati, si scelgano alcuni
attributi ehe
i e 1e ore totali iavorate per settim
il progeno. il numero degli impiegat dovrebbero avere degli indici specificati su di Ioro.
getto per ciascun progetto. to ehe to con- e Si implemenfi la base di dati se 5i ha un DBMS che supporta SQL.
del progetto, il name del dipartimen
d. Una vista che eontiene i1 home ana sul progetto per 8.23 Si speeifichino 1e risposte degli Escrcizi da 7.24 fine a 7.28 in SQL.
are totali lavorate per settim
trolla, il numero degli impiegati e 1e
am impie gato.
ciascun progetto in cui lavora pill di definita sulla base di dat'l
segueute vista SINTESIWDIP
8.19 Si preuda in considerazione la
AZIENDA di Figure 7.6: Bibliografia selezionata
EDIO}
CREATE VIEW SIN'I'ESLDIP (D. C. SJUI‘ALE. S_M
'DIO), AVG (STIPENDIO) sul linguaggio SQUARE
AS SELECT N_D, COUNT C"), SUM {STIPEN l] linguaggio SQL. clfiamato oi'iginariamente SEQUEL, si basava
as Relationa l Expressi ons. Spedfica zione di luterroga zioni come Espres-
AS FROM INIPIEGA'IU (Spemfymg Queries
AS GROUP BY N_D;
Traduziane da sehemi ER 9 ER a schemi reiazianali 301
300 Capitala 9

primal-is delle rela- PASSO 7. Per agni tipa di assaciaziane n-aria R, dove n > 2. si castruisca una nuava relazia—
struenda la relaziane LAVORA_SU di Figura 15.2 Si insertseana 1e chiavi ne 5' per rappresentare R. Si inseriseana in 5 came attributi di chiave cstema 1e chiavi prima-
esteme di LAVORA_ SU e 1:: Si ridenom ina rispetu-
ziani PROGETTO e IMPIEGATD came chiavi rie delie relazionj che rappresentanai tipi di entita partecipanti. Si inseriseana anche came at-
N P e SSNflI. Si inserisae anche un ath‘ibuta ORE in LAVORA_ SU, per rappresentate
vamente triburi di S tutti gli attributi sempljci del tipa di assaciaziane n-aria (a campanenti semplici de—
relaziane LAVOHA_SU e data
l‘attributa are del tipa di assaciaziane. La ehiave primaria della gli attributi campasti). La chiave primaria di S e di salita una combinaziane di tutte 1e chiavi
N__P}. .
dalla cambinaziane degli attributi di chiave esterna {SSN_I, esteme che dfefiscona le relaziani rappresentanti i tipi di entita partecipanti. Pera, se una qual«
R deve essere spemfi-
Sulle chiavi esteme della relazione canispandente ail’assaciaziane siasi dei tipi di entita partecipanti E in R ha 1 came vincalo di cardinalita. allora la ehiave pri-
l‘opzion e di propaga ziane (CASCA DE) per 1’ azione referenz jale innescata (si veda ti Pa-
cata man'a di 5' non devc camprendere l‘attributa di chiave esterna Che rifen'sce la rclaziane E“ can
una dtpendenza d1 e51-
ragrafa 8.1), dal momenta che agni istanza di assaciaziane presenta rispandente a E {si veda il Paragrafa 4.7). Can cia si conclude la procedure di traduziane.
per ON UPDATE 51% per
stenza da ognuna delle entita che collega. Cit) pub essere usata sia
0N DELETE. Ad esempia. si cansideri il tipa di assaciaziane FGHNITUHA di Figura 4.13(a). Essa pub es—
mode analoga a quanta sere tradatta nella relazione FOHNITUFtA mastrata in Figura 9.1, la cni chiave primal-in a data
Si noti she a sempre possibile tradurre associazioni 1:1 0 1:N in dalla combinaziane di chiavi primarie {HOME}, NUILPAHTE, NDME_PF.OG}.
utile quanda eststana pa-
fatta per le assaciazioni M:N. Questa possibilité e particolannente II punta fundamental: da natare in una schema relazianale é che. al contraria di quanta av—
nelle chiavi estcme: In que—
che istanze di assaciazione. per evitate la presenza di vaiari nulli viene in una schema ER. i tipi di assaciaziane nan sana rappresentafi esplicitamente; essi 50-
mm delie ehjaw esterne
sta caso 1a chiave primaria della relaziane “assaciaziane” 53:5 3010 na piuttasto rappresentati can l'uso di‘ due attributi A e H, mm chiave primaria e l'altro chia- '
i “entith” partecipa nti. Per un’assaciaziane lzN questa saxa 1a ch13.-
che riferiscano 1e relazion ve estema — sulla stesso daminio — inseriti in due relazianj S e T. Due tuple di .S' e T sono col-
Per un‘assoc iaziane 1:] e scelta came
ve estema che riferisce la relazione entita al lato-N. iegate quanda hanna lo stesso valare per A e B. Usando l’aperaziane di EQUIJOIN (a IOLN
entita can partecipaziane tatale (se
chiavc primaria la chiave esterna che riferisce la relaziane NATURALE) su SA e IE, 6 possibile combinare tuttc 1e cappie di tupie callegale da S'e Te
esiste). da: corpa all’assaciazione. Quando a: interessato un tipa di assaciaziane binaria 1:1 0 1:N, e
relaziane R. Questa rela- di solito necessaria una snla operaziane di join. Per un tipa d.i associazianc MzN binaria sana
PASSO 6. Per ogni attribute multivalare A, 5i oostruisca una nuava necessarie due aperaziani di join. met-1m: per tipi di assaciaziane n-ari sano necessari I: join.
con-ispan dente ad A. pit) l‘attributa dj chiave pnmana K —
ziane R comprendera un attribute Ad esempia. per fannare una relaziane comprendente il name dell'impiegata, il name dei
0 i1 tipa di assoc1a-
come chjave esterna di R — della relazione che rappresenta il tipa di entita pragetta e 1e are lavarate dall‘impiegata su agni pragetta. ocean-e callegare agni tupla IM-
La chiave primaria di R 3 data dajla cambina ziane di A e K. Se
ziane che haA came attribute. PIEGATO alle relative tuple PROGETTO, tranfite la relazione LAVOHA_SU di Figura 7.5. Percia si
l’attributa multivalare é campasta. si cansiderana 1e sue compane nti semplici.3
SEDE_D rappresen- deve eseguire l’operaziane di EQUIJOIN sulle relaziani IMPIEGATO e LAVOHA_SU can 1a can-
Nel nastro esempia. si castnlisce una relaziane SEDI_DIP. L’ attribute diziane di join SSN = SSN_I, e quindi eseguire un‘altra operaziane di EQUIJOEN sulla rela-
NUMEHD JJ — came chiave estei'na —_
ta l'atuibata multivalore Scdi di DIPARTIMENTO, mentre zianc risultante e sulla relazione PROGETTG can condiziane di join (L? = NUMERO_P. In gene-
primaria della relazione DIPARTIM ENTO. La chiave primana d1
rappresenta la chiave
. In SEDI_DI P esistera una tupla
SEDI DIP E data dalla combinaziane di {NUNTEBO_D. SEDE_D}
di un dipanime nta. .
separata per ognj sede FORNHORE
8.1) davrebbe esscre spec1ficata
Per l’aziane referenziale innescata {si veda i1 Pamgrafa
l‘ apziane di prapagaziane (CASCADE) sulla chiave esterna della :elaziane
l'attributa multivalare, sia per ON UPDATE sia pet 0N DELETE .
canispandente al-
..... —
PHOGE‘ITO
le'attenuta se-
In Figura 7.5 (e Figura 7.7} e mastrato la schema di base di dati relaziana
guenda ipassi preceden ti. mantra in Figura 7.6 e rapprese ntata uno stata esemplifi canvo del:
di assactazmne n-an
m—em —
la base :1} dati. Si nati che non é stata finara trattata la traduziane di tipi
simile ai tipi di as- PARTE
[n > 2), perché in Figura 3.2 non cc ne sane; essi vengana tradatti in mode
saciaziane M:N inserenda il seguente passe aggiuntiva nell’algoritma
di traduziane.
mm .-
FURNITURA
a un'istanza di aasaciaaiane.
Quest: Sana taiara dctte netazfom' associazr'ane perché agni tupla (rig-a) canispande aleuni degli attu-
J No NOM FROG NUI’LLF‘ARTE 1 QUANTrrA J
chiave di R acme richiesn sala
3 In alcuni casi quanda LI1'I attribute multivalarc e compasta, nella
pantale di un um 01 entita de-
buti campanenti; questi auributi svalgana funziane analaga a quella di una chiave Figure 9.1 Traduzione dal tipa dl a__ssaciazlane n-arla FDRNITUHA di Figura 4.13{ ].
-. a V ' te all". ' 'multi'fix't :..'.
'r-wm i .“°m- ”I. W-- flaw “flaw—m- -
awn.- v—aaé- M inguuni’fi-J‘ ’--... 'I . =-. . .:.I - :1' l”. ..;:
-,....___ -_,..____.-

Traduziane da schami ER 3 EER a sahemi relazianall 303


302 Capitele 9

devene essere specificete numerese 9.2 Traduziene dei caneetti del modella EER
rate. quande é necessarie attraversare pit) asseciaziani,
e di una base di dati relazie nale deve essere sempre inflermate su
eperaziani di join. L‘utent ato- tuple in relazieni
da usarli carrettamente nel combin
quali sane gli attributi di chiave estema, in made
cellegate pravenienti da due a pm reiaziani. Se vicne eseguita an EQUIJOINt tra tattt'tbutt d1
chiave estemafchiave prunana, 1! maul-
due rclazieni che nan rappresentana un‘assaciaziane
priva di signific ato e pub partate a dati spuri (non validi). Ad esempla, 9.2.1 Assaciaziani superclasselsottoclasse e
tata pua essere spessa
relazie ni PRDGE TTG e SEDI_DIP sorta la candl- speelalizzaziane (o generalizzazione)
i1 lettere pua pravate a unite tramite join it: ’
SEDE_P ed esamin are quindi i1risult ata(si veda anche i1 Capitala 10).
ziane SEDE D = ta utla telema-
schema relazie nale 5 Che viene castrui
_ Un altro—aspette degne di nota nclla Sana passibili molte epzioni per tradurre un certo numero di sattoclassi Che fennana nel cam-
spec‘fica entité canlun 1n51eme d1 valert per
ne separata pet ogm' attribute multivalore. Per una plesse una specializzaziane (e, in altemativa. che sana generalizzate in una superciasse], co—
l’attributo multivalare, il valet-e dell’att ributo chiave dell’enfité e ripetuta in mm tupla separa-
m: ad esempio is sottoclassi {SEGRETAR IO. TECNIC—G, INGEGNEHE} di IMPIEGATO in Figura
perché i1 medeile relazianale di base nor: can-
ta per egni valet-e dell‘ attribute multivalare. Cie 4.4. E possibile aggiungere un passe ulteriere all‘algoritmo di traduzione d2. ER 3. relazionale
pet un attribute di una tupta smgala. Au
sente vaiori multipli (una lista, a un insieme di valeri) del Paragrafa 9.1, che ha sette passi, per gestire la traciuzione della specializzaziane. l] passe
reiazione SEDI_I?IP d1 Figure 7.6 e51-
esempia, data che i1 dipartimente 5 ha tre sedi, nelia 8, che segue, famisce 1e opzioni pit} cemuni; sono anche passibili altre traduzieni. Successi-
a una delle sedi. Nel nostra esempia, 51 apphcal EQUiIOIN
stane tte tuple; ogni tupla specifie vamente saranne maminate le cendiziani in cui devrebbe essere usata ciascuna opziane. Vené
e NUMEHO _D pet ottenere i valor; d.1 tutte
a SEDI DIP e DIPARTIMENTD sulla base dell‘ attribut qui usata ia notazione Ate-(R) per indiaare gli attributi della relaziane R e PKG?) per indicate
altri attribut i di DIPAHT IMENTO . Nella telazion e n'sultante. i vaiari degli al-
1e sedi i—nsieme con la chiave primaria di R.
tuple separat e per egni sede del dtpartimento.
tri amibuti di dipartimente vengano ripetuti in
di base non ha un’ope raziane NEST {NIDIFI C'PQ-O COMPRE§S
L’algebra relazienaie PASSO 8. Si trasformi ogni specializzaziene can m settaclassi {51, $2, ..., Sm} e superclasse
relazian e SEDI_D IP ch tura 7.6 un tn-
(COMPRIMI). 1a quale produnebbe a pam're dalla (generalizmta) C, dave gli attributi di C sane {k. 0,, ..., an} e k e la chjave (primaria), in sche-
fauna {<1, Heusto n>, <4. Staffet dz <5. {Bellair e, :Sugarland: Flea;
sieme di tuple della mi di reiazione. usande una delie quattra epziam' seguenti.
versiene di base normaltzzate o ‘ platta
sten}>}. Queste e um serio incenveniente della Opzione 8A: si eastruisea una relaziane L per C can ata-ibuti Attr(L) = {k. a... .... N} e
aspene, i modelli a eggetti, germ-Chico e retice-
("flat”) del madella relazienale. Sotto queste
queue del modella reiaztonale. Il madella PK(L} = 1:. Si eastruisca una reiaziane L, per egni settaclasse SI, 1 S i S m, can gli attributi At-
iare dispengeno di funzienaljta miglieri rispetta a t:(L, = {k} U {attributi di 5,} e PK(L,) = k.
prablema.
Ielazianale nidificate cerca di pane rimedia a queste Opzione 83: Si cesu'uisca una relaziane L,- per egnj sattoclasse Si, 1 S i S m. can gli attri-
buti Ate-(L3 = {amibuti di 3.} U {k. a,. a,,} e PK(LI) = k.
Opzions SC: si cestt'uisca una singela relaziane L can attributi AttrtL) = {k. (1,, .... an} U
e vineali U {attributi di Sm} U {r} e PK(L} = k. Questa apziene va usata per una
9.1.2 Sommario della traduzione per eastrutti {attributi di 5,} U
speciafizzazione 1e cui sotteclassi sana disgiunre. c re un attribute dj tipa (a discriminate)
del modelio ER che indies. 1a sotteciasse a cui appartiene ciascuna tupla, nel case in cut cane sia una. Questa
apzione pub predurre un gran numera di valari nulli.
ze tra castrutti e vincoli dei modelli ER e re-
In Tabella 9.1 vengona fiassunte 1e corrisponden Opzione SD: si castruisca un solo schema di zelaziane L can attributi AttICL) = {k. a... ....
lazienale. an} U {attributi di 5,} U U {attributi di Sm} U {I}, I}, ..., r,,,} e PK(L) = k. Questa apziane
E pensata pest una speciaiizzaziaue 1e cui settaclassi sane sovrapposte (ma funzienera anche
ala.
per una speeializzaziane disgiuuta), e ogni rH 1 S i S m, 5 un attribute baaleane Che indiaa se
Tabelia 9.1 Gerrispendenza tra i madam EH 3 ralazlen una tupla appartiene alla settaclasse .53.
Medetl e relazianate
Medelle EFI
Ttpa d1 antltE‘t
Retazte ne "antlté" Le apzieni 8A e SB passana assert: denominate epzr'oni dz' retazioni multiple, meme 1: ap-
Chiava estema (a ralazlane "assedaztena'j
'fipe dl assasiaztena 1:1 a 1:N
Relazlcme “assauiazlana” a due chiavl estema
ziani 8C e 8D passono essere deuaminate apzioni cfi refazieni Jingote. L'epziene 8A d3 lue~
Tlpe d‘l asseclaztane MzN go a una relazione L per la superclasse C e i suai attributi, pill una relazione L. per ogtti sat-
Tipa di asseclaziena n-arle
Relazlene "asaaeieztene" e n chlavl eaten-Ia
Attribute sampliea
Attribute teclasse 8,; ogni L, eomprende gli attributi specifici {e lacafi) di 3,, pit?) la ehiave primaria del-
lnsleme dl attributl component! semptlcl
Attribute eampesta
Relaziana e ahiave asterna
ia superclasse C, che e propagate a L,- e diventa la sua chime primatia. Un'aperaziane di
Attribute multlvalere .EQUIJOIN sulla ehiave primaria Ira un L, qualsiasi e L produce tutti gh' attributi specifici ed
Dominic:
Insieme di valeri
Attflbuta chtave
Chiave primaria (a secendarla} ereditati defle entith in 3,. Questa epziene 6 illustrate in Figura 9.2(a) per la schema BER dj
Traduzicne da schemi ER 3 ER a schemi relazionali 305

304 Capitolo 9

Le opzioni 8C c 8D danno luogo a una sola relazione per rappresentare la superclasse C e


va-
tutte 1e sue sottoclassi. Un’entita che non appartiene a qualcuna dell: sottoclassi presentera
(a) 1MPIEGATO sottoclassi. Percib questc apzioni non sonc consi—
[5&5 lt-Jma mum: Immlnmflufla1 mm: 111mm. lori nulli per gli attributi specifici di qucste
gljaie 5: per la sottoclassi sono definiti molti atttibuti specifici. Perth, 56 esistono pochi attri-
buti specifici. quests traduzioni sono preferibilj alle opzinm' 8A e BB pctché eliminano la ne-
cessith di specificare operazioni di EQUIIOIN e di UNIONE ESTERNA, c percib possono dar
SEGREFAHID TECNIDD INGEGNE‘RE

E333 [WE] @91l l—fll Maul luogo a una implementazionc pi!) efficiente. L'opzione 8C 6 usata per gestjre sottcclassi di-
sgiunte inserendo un singolo attribute (11 tips (0 d’immagine o discriminante) I per indica~
(b) AUTOMOBILE re la sottoclasse a (mi appartiene ciascuna rupla; percib, i1 dominiu d1 3 potrebbc essere [1. 2.
1mmi NumTaga [mlmmt NumF'asseggeri | ..., :11}. Se la specialjzzazjone é parzjale. tpub assumerc valori nulli malls tuple Che non ap-
partcngono a nessuna sottoclasse. Sc la specializzazione E definita tramite un attribute, quel-
l'attributo serve 10 scope di 1 e t non é necessatio; questa opzione é illustrata in Figura 9.2(c)
CANON
@1 NumTugn [m‘ldhfll per la specializzazione BER di Figura 4.4. L’opzione RD E usata per gestixe sottoclassi so-
vrappostc inserendo m campi booieam‘ di tipo, uno per agni sottoclasse. Essa pub assets uti-
lizzata anchc per classi disgiqnte. Ognj attribute tj di tipo pub avers uu dominio {S1, no}, do—
ve un valor: si indica che la tupla B an membro deila sottoclasse .5}. Questa opzione é illustrata
(c) flfiflmimjm1mm1mm§ trdrtzm iTrpaLavumiwbdatmgml mtj TtpalngJ in Figura 9.2(d) per la specializzazions BER di Figure 4.5. dove FlagF e FlagA (flag = ban-
_ diera, indicators) sono i campi di tipo. Si noti che é anchc possibile costruire un solo ripe di
{d} PAHTE
m% m bit anziché gh' m campi di tipo.
Wane WIMFIMWIWMIMl FlagA lmmnuakpm Quandu si ha una gerarchia 0 un reticolo di specialjzzazioni {o generalizzazioni) su pin li-
In retaz1oni‘ (a) Traduzjone defio scha— velli, non I! nscessario seguirc la stessa opzione di ttaduzione per tutte fie specializzazioni. Si
Figura 9.2 Opz'loni pat tradurre speclaflzzaziani (o generallzazionl)
rna EER di Figure 4.4 In ralaflonl usando I‘Opz1ona fit {b} Traduzione
daHo schema EEFI d1 FI- pub invecc usarc un‘opzione di tIaduzione per parts della gerarchia o reticolo e altrc opzioni
gura 4‘3Eb1'ln r91azloni usando l'Opzlone B. {c} Traduzione dello
schema EER di Flgura 4.4 usan-
sche— per altre parti. In Figura 9.3 e mosttata una possibile traduzione in rclazioni per il reticolo di
{d} Traduzione de1|o
do I’Opziune G, omTlpoLavoro cha svolge il mutt: dE attrlhuto di ttpo. Figura 4.7. Qui é stata usata l‘opzione SA per PEHSONN{ IMPIEGATO, EX_ALLIEVD, STUDEN-
d1 t'rpo. FlagF e Fiagfik
ma EER d1 Figura £5 usando 1‘0pzione D. can dua campi booteani -
TE}. l’opzione 8C per IMPIEGATOHFERSONALE_DI_SUPPORTO, CORPOJJOGENTE, ASSISTEN
AS -
TE_STUDENTI } , B l'opzione 8D per ASSISTENTE_STUDENTI/{ ASS ISTENTE_DI_RIGERGA,
e STUDEN-
SISTENTE_DI_DIDATTICA}, STUDENTEIASSISTENTE_STUDENTI (in STUDENTE),
Figura 4.4. L’opzione 8A funziona qualsiasi siano i vincoli defla
speciaiizzazione: disg'tunta o TE!{STUDENTE_LAUREATO. STUDENTE_NUN_LAUREATD}. 1n Figura 9.3 tutti gli attributi i cui
vincolo nomi contengono ‘Tipo' e 'F'Iag‘ sono campi di fipo.
sovrapposta. totale u panialc. Si noti che per cgni Ll- deve sussistere i1

754-..t g nab-(L)
PERSONA
.
cm specifica Ia cosiddetta dipendenza d'inciusione. indicata con L,.k<L.k lfll Nome lwm'w] Incnnml
EQU'IJO IN é incorpor ara nello schema, eliminando co-
Neli'opzione 3B l‘opemflone di
BER di Figura
si la relazione L. come iilustrato in Figura 9.20)) per la specialjzzazione IMPIEGMO
di specializzazione di—
Ii 4.303}. Questa opzionc va bane solo quando sussiste sin '11 vincolo [E m| Tboh'npiag'ain | Poaiz‘tunal Fasda 1Tmmuparoem1a1 magma 1mm: [magenta [Insegnmmu
sia queilo di specializz azione totals. Se la speciafiz zazione non é totals. un‘cntita Che
sgiunta
zazione non 5 di-
non appattiene a nessum dell: sottociassi Sl verté petsa. Se la specializ
ereditati dafla sot—
sgiunta, un'entitit she appartiene a pin di una scttoclassc avra gli attributi
MIEVO 'ITI'OLI'BLALUEVO

in pifi di una Li. Con l’upzion e 8B nessuna rela- .5511] lswimlmto !DIsclp1lnaDiS-r‘” ‘Mj
toclasse C memufizzati in mode ridundam e ..
enza dobbiamo csegui-
ziune contiene mtte le entita pmsenti nella superclasse C: di consegu
LEID) sulle relaziorti
D6 un‘upetaziune di UNIONE ESTERNA (o JOIN ESTERNO COMP SEU‘DENTE
estema sarh simile ails di
_ Ll- per recuperate tutte 1e entita presenti in C. II n'suitato dell’unio ne [ 3% | DlpSpaclallme lawman} FlagNunLaureato i Progran'u'MDBtudi Emmflorso |nagAsalstsm
BC a 8D, tranne per il fatto che in quests: caso mancheratma
fit I: relazioni definite dalle opzioni i‘usc d1 opzioni multlpts.
i camni di tipo. Ozni volta Che §'t ccrca un’cntité arbitraria in C, occurre
ispezionare tutte 1e Figura 9.3 Traduzicna d9! ret1colo dI spaclalizmzlona EER dl Flgura 4.? con
. Elk 'l
308 Capitolo 9

riassunte 1e corrispondenae tra i costrutti e i


dalla base di dati AZIENDA. In 'I‘ahella 9.1 50:10
mu quind i illustrate passi aggiuntivi che ci con-
vincoli dei modelli ER e relazionale. Abbia
nel medello relazionale.
sentono di tradun'e i costrutfi del modello BER
Capitoio 10

Questionario di verifica
Dipendenze funzionali e
tti dei modello ER e quelli del modeilo rela-
Si discutano 1e con-ispendenze trai costru
91.
zienale. Si mosh-i come ogni costru tte del mode llo ER posse essere tradotto nel model- normalizzazione per
alternative. Si discutano 1e opzieni per la
10 relazionale. e si studino tutte 1e traduzioni
traduzione dei cosh-uni del mode llo EER. basu di datirelazionali

Esercizi
Figura 7.20 in mm schema ER. Cic fa par-
92. Si provi a tradurre lo schema relazionalc di
[ingegnexizzazione al contrario), in cui
te di un processo note come reverse engineering Nei Capitoli 7-9 abbiamo presentam vas'i aspetti del modello relazionale. Ogni schema a'i re-
una base di dati implementata esistente. Si
si costruisce uno schem a conce ttuale per Iazmne é composto da un certo numero di attributi, e10 schema di base di dan' relazt'anale é
; . enunci esplicitamente ogni assunzione fatta. composto da un certo numere di schemi di relazione. Finora abbiamo supposto che gli attri-
una base di dad che pub essere usata per
. 9.3. In Figure 9.5 e mostrato uno schema ER per buu_vengano raggruppati per formers uno schema di relazione usando i1 buon senso del pro-
loro posizioni, per le autorita marittime. Si
tenet traccia delle navi da trasporto e delle getusta di basi di dati o traducendo uno schema speeificam nel modello Enfita-Asseciazione
nale, e si specifichino tutte 1e chiavi pri-
tIaduca questo schema in mm schema relazio (ER) 0 ER-esteso (BER) (o altri modelli (ii dati concetruali simili) in 11110 schema relazionale.
marie nonché le chiavi esteme. in 11:10 [l modello BER fa si che i1 pregettista individui i iipi di emita e i tipi di associazione e i laro
sercizio 3.23 (mostrato in Figure 3.17}
9.4. Si traduca lo schema ER BANCA dell‘E rispetnvi attributi. i1 che porta a un raggruppamento naturale e logico degli attributi in rela-
i primarie e le chiavi esteme. Si ripeta
schema relazionale. Si specifichino tutte 1e
chjav zmm quando sono seguite 1e procedure di traduzione illustrate nei Paragrafi 9.1 e 9.2. Abbia-
{Figur e 3.16) dell’Esercizio 3.19 e per gli al-
la cosa per lo schem a COMP AGNIA _AERE A mo per?) ancora bisogno cli misurare formalmente i1 perché un ragg'ruppamento di attributi in
tri schemi prescnti negli Esercizi 3.16-3.24. mm schema di relazione posse. essere meglio di un altro. Finora, nella nostra discussione sul-
la progettazione concetmale nei Capitoli 3 e 4 e sulla sua traduzione nel modello relazionale
nel Capitolo 9. non abbiamo sviluppato nessuna misura di adeguatezza, “bunch“ o quaiita del
pregelto, se non l‘intuizione del pregetu'sta.
hi questo capitolo esamineremo parte della teoria che a state sviluppata nel tentative di
sceghere “buoni” schemi di relazione. Ci sono due livelli ai quali pcssiamo esaminare la loro
“heath“. ll prime e i] livella iogico (o concetlnale) — come gli utenti interpretano gli schemi
ch relazicne e il significatu dei loro attributi. L’avere buoni schemi di relazione a questo livel-
lo consente agli utenti cli capire chiaramente ii significato dei dati neile relazéoni, e percib di
fosmulare currettamente 1e lore interrogazioni. 11 secondo e i} livello d’implementazione (a
flame) - come 1e tuple in una relazione dj base 50110 memorizzate e aggiomate. Quests livel—
lo 51 applica solo a schemi di relazione di base — Che sararmo memofizzati fisicamente come
file — mentre a1 livello lagico noi siamo interessafi a schemi sia di relazioni di base sia di vi-
ste (relazioni vinuali). La teoria della progettazione cli basi di dati relazionali sviluppata in
quesm capitals si applica principalmente a relazioni 511' base, anche se alcuni criteri di ade—
guatezza si annlicane anche alle visie, came veijra mosuato nel Paragrafo 10.1.
l _ .- "'i- -. "I =;.~:' j- -_ -l .1 .. .9" l---
Dipendenze funzionali e normalizazione per has! all dati relazlonail 313
312 Capitolo 1 0

ficasoho REESE; ma di relazione IMPIEGATO é piuttosto semplice: ogni tupla rappresenta un impiegato, con i va—
me di fatti 0 asserzimti. Qaesto Slgm lori per i] some dell‘impiegato (NDMEJ), il numero di previdenza sociale (SEN), 1a data di na-
possa essere interpretata come un insie mem onzz sn 1:: ms tupla le 31;: a su—
-i degli atttib utl scita (DATA_N} e l'indirizzo {INDIRIZZCI). nonché i1 nun-10m del dipanimento per cui l‘impie—
ca, specifica come interpretare i valet 2100:l trace : [Incite rela-
attributi m una mpla 3000 m 15124 gate Iavota [NUMERO_D). L’attributo NUMEEOJJ é um. chiave esterna che rappresenta un'asso-
— in aln'e parole. come ‘1 valori degli scgtt tta da man tra 11:1 25m m“: do.
ione concettua le, ciazione impficim tra IMPIEGATD e DIPARTIMENTO. Anche la semantica degli schemi DIFAH -
ta eseguita cormttamente la progettaz 111311 334: 0
antics dovrebbe esserc splegata e TIMENTD e PRDGETTU 0 chars; egni tupla DIPAHTIMENTO rappresenta un‘entita dipartimento.
zioni. la maggior pane della sem . . . ‘
un si njfica to chiar o.
uant fopg h“fl-0:11:: e ogni tupla PROGETTO rappresenta un'entité pmgetto. L‘atu-ibuto SSN_DIH_DIP di DIPAFITI -
orelq
schema di. relazicne Sara tanto mtgh MENTO collega un dipartimento aJI’impicgato che me e il direttore, mentre NUM_D dj PHOGETTO
vmlfiegggrzm il pgrogette di uno ta Figural? 5 .e’la Figura
a della relaz ione . Per illustrare cm 51 constdcnno collega un progetto a1 dipartimcnto che lo controlla: entrambi glj attributi sono chiavi esteme.
spiegaxe 1a semanfic tuta an; demo Whe-
base di dau relazmnale AZIENDA d1 La semantics dci altri due schemi di relazione in Fig-ma 10.1 e um po' pith complessa.
sione sempfificata dello schema di d1 ques to sche ma. 11 s1gmfic
ioni populate Ogni tupla in SEDI_I;IP fonfisce un numero di dipart‘tmento {NUMERO_D) e um defile sedi del
102, che presenta un esempio dj relaz
dipartimento {SEDE_D). Ogni tupla in LAVOFILSU dé il numcro di previdenza sociale di un im-
piegato (SSN), il numero di pmgetto di uno def progetti su cui lavora l‘impiegato (NUMEHO_P)
e i] numero di ore setthnanaii lavorate dall‘impiegato su qucl progetto (ORE). Entrambi gli
IMFIEGATO schemi hanno comungueiun’interplretazione hen definita e non ambigua. L0 schema SEDI__DI P
1 NUMEHOJD \
NOME l ‘ SSN ‘ DATPLN 1 INDIHIZZO suppresenta un attribute mulfivaloié'fli-DIPARTIMENTO, menu'e LAVOFIA_SU mpprescnta un‘as—
731Fondwan.H0mbcn.TX
5 sociazione M:N 11a IMPIEGATO e PHOGETTO. Tutti glj schemi di relazipne in Figural 10.1 pos-
123455?89 1965-01-09 5:
353445555 1955—12—00 saawesflumtx s0n0 percib essere considerati buonj Ga] punto di vista di una semantica chiara. La seguente 1i—
miflmim 3321 Cashiesmngfix 4
Ze1ayémJ. 999887??? 1968-07-19 5 nea guida informale sviluppa ulteriormente 1a progettazione di uno schema di relazione.
1941-05-20 291mm1mnx
WallaceJemfifarS 95?:554321
1952-09—15 QTSFireOaKHm‘lbleJX 5
Nata mammk 666534444 4
19?2—07-31 5631 amt-1mm):
1 LINEA GUIDA 1. Si progetti ogni schema di relazione in mode tale Che sia semplice spie-
Erlgllih JDyoaA. 453453453
937987937 1969—03—29 SBUIDaIIasJ-loustomfi garne i1 significato. Non si uniscano attributi provenienti da pifi tipi di smith 6 tipi di associa—
Jamaamhmadv. 836565555 1937M 1-10 458 StunnHoustonJX
BorgAames E. SEDLDIP zione in un‘unica relazione. Intuitivamente, se um) schema di Ielazione corrispondc a nu solo
NUMEF!0_D E tipo di entita 0 a 11:1 5010 tipo di associazione. i1 suo sigrfificato tende a essere chiam. Altri-
DIPARTIMENTO
menti la relazione corrisponde a un miscuglio di piit entita e associazionj e percib diviene se-
1
I NOMEJD l NUMEHOJ ‘ssnpmmpl . manticamente oscura.
45 Stafford
BeflaIr B
5 333445555 5 Su
Rimma
4 BEES-1821 H 9"”5‘“:I
Amm1nistraztane 5
1 833665555
Sade centrala
{a} |MP_DIP
PROGETI’O
LAVOFIILSU [ NOMEJ l iSfl I DATA_N INDIHIZZO 1 NUMEROJJI NOMEJJ ISSN_DIR_DIP|

Prudomx 1 5 fl 4
123456789
1234mm
1
2
32.5
4:: Prcdo‘fla‘r‘ 2
3
HSugariand
mm”
2
4
gt.__T
3 20"] Frodotloz is“ 41 ('0) IMP_PROG
865884“ 10 SM“
20:0 Computeriz
Ftlorga n km e
zazbn 20
453453453
453453453 21 100
Nucwa cpportunlts 30 | SSN NUMERCLP l OFIE i NOME_l I NOMEj'i SEDEHP |
333445333fl5565fi5 2 10:9
333445555 10 10.0 DF1 I___L_!
333445555 20
30
10.0
30.0 ..1___+
99983}???
999887???
93798798?
10
10
30
10.0
35.0
5.13
.. | 1 +
SWEENEY
saws-K321 00 20.0
15.0 um 10.3 Due schaml cH reiazlone e le rispefllve dlpendenze funzlonali. Entrambl gri schemi presenta-
$054321 20
20 nulfi ne anomalis dl aggicmamanto. (a) Lo schema d! relazione IMILDIP. (0) L0 schema dl rela-
353665555 zione IMP_PHOG.
fallramfietazt 'asempio er 1o schema di Figuratofi.
I “ “-— "- —-
' 0.... w?
Dlpendenze funzuonali e normalizzazione per basl d1 dati relazlonali 315
.
I
314 Capltolo 10

IMP DIP
ra
presentano una semantics chia ‘ NUMEHO o ‘ N
e nella Figure 10.3(a) e (b) "
Anche gli schemi di relazion o 1e relazioni, dal mem ento she esse sono
”OMEJ fl OME‘D .SEN‘D'H-D'Pl
ento ignorare le linee sott ta nel Paragrafo "
(i1 lettore pub per il mom nza funzionale Che verse presenta Smnhuohne 123455739 Hima ' 333445555
dolls dipende 5
usate per illustrate la notazione {a} rappresenta uu singolo K334415555 Hlmrc 333445555
relazionc 1MP_DIP di Figure 10.3nom g? 5 937654321
o sche ma di wanin _4 saw-mm
nell e (NOME_D) del dipa. rti-
a W7 7?
10.2). Una tupl — vale a dire i1 '
mfia . -
WallaceJmMera M54321 WWW 987554321
prende informazion i aggiuntive “
impiegato ma. com . . . .
socIale (SS N_DIR_DIP) del dxret- Elna“ ”Mam K' m gag:
,. .
ra e 11 numero d1 prewdenza i lupla collega no im-
memo per cm 1 unpxegato lavo G di Figu re 10.3 (b), ogn {:bflrfihmagv 93mm? -. gamma
zione IMP__PHO
tore del dipartimento. Per la rela iega to (NO MEJ ), il name del pro— W 55
prende anche i1 name dell‘imp é di sbagliato dal
'9
piegato a 1m progetto, ma com ). Anc he se non c‘e alcu nch
etto (SEDE_P
getto (NONIE_P) e la sede del prog side rate frut to di progetti mediocri, lMP_PROG
due relazioni. esse sono con
punto di vista logico in queste enienti da distinte entita del
mon-
a 1. misclfiando attributi prov u- Fm
dato che violano mescola attributi di impicgati e dipartimenfi, e IMF_PF.OG mescola attrib
la linea guid no-Pl ORE l NOMEJ
. do resle'. IMP__DIP e vist e. ma cau san o pro - 325 mm 3,
usate com 1
ste relazioni possono essere 123453739
ti di impiegali e progetti. Que e si discuter a nel pros sim o paragrafo.
seem E 7‘5 SrrflxJuhn 3- K
come relazioni di base, com 4m WW
blemi quando vengono usatc 453mm 1 201)
2m Mhm :
4534mm 2
_ g i "m”
333445555
353445555
2
3 133 mjm}?
ondantl nelle tuple
. . . .
33.341155553365555 g: 33 mgr-mg;-
10.1 .2 lnformazmm rld aura Zelaram J
e anomalle dl ag glornamento 9995”???
22 3$
an
1o was.
. . .. mo lo spaz.m d1. memona.
. rre al unm
.mi e quello d1. ndu 987957937 gig
3::
3::
mo
Jabbarmndu
flvmlmrfg‘
d1 sche 957554321 '
Uno scope dolls progettaz one attributi in schemi di relazion
e ha
15'” WWMS
dall e rela zion i di base (file). I1 raggruppamemo di io occu pato 53353555; 2° 33'9”“ E Hbrgarflmzlone Hum
occ upa to fronti lo spaz m“
io di memoria. Ad esempio, si con con 10 spaaio della re—
20
un effetto significativo sullo spaz in Figu re 10.2 figure 10.4 Egfilcgfiieerzleangflmcfitge perflizscoheml in Flgura 10.3, ofienute applicando ll JEDIN
IEGATO c DIFARTIMENTO ' ' ' '
dalle due relazioni di base IMP ’app 'cazione dell‘ operazione
di . _ gura . . ueste nuove
1MP _DIP in Figu re. 10.4. che e il risultato dell ibuti che ri- me relaZIoni d1 base per Incrementare 1e presiaziorfillflmml possono sssere memorlzzate
lazione di base IMP __D IP, i valo ri deg li attr
ATU e DIPAHTIMENTO. In
JOIN NATURALE a IMPIEG SSN_DIR_DIP) sono ripetuti
per
spe cific o dipa rtimento (NUMERO_D, NOMEJJ, su ogni dipani-
guardano uno trar io, l’inf orm azio ne
per quel dipartimenio. Al con 1 numero di
ogm' impiegaro she lavora NTO dj Figura 10.2. Solo '1 1a-
solo una volta nella relazione DIPAHTIME iega to ohe lavora 213:2]: gpmnm) Ad esempio, per inserire una nuova tupla per un impiegato Che
memo appare per ogru imp
ripetuto nella relazione IMP
IEG ATO dipmmenfo 5 in Inutodnugero S. bisogna msenre-correttamente i valori degli attributi del
dipartimento [NUMERO_D) a alla relazione ImP_PFIcIG (Fig
ura
5 in altre
ento . Con side razioni simili 5i applicano ATO e FROGETTO. mp1: dj mp DIP No 10 e che slano comment: con i valori del dipartimento
in quel diparfirn di IMP IEG pro-
e LAVORA_SU con ulte rior i attr ibufi blcma d1 con-sis: . e dprogetto (11 Figure 1.0.2-non ci si dove preoccupare di questo
10.4). Che aumenta la relazion i in Figure 10.4 come relaziou
i
il numero del di»
grav e prob lem a che si presents. usando le relazion cias sific ate in _ pmenm. lumen-1a,} ato che nella rupla unpiegata viene inserito solo
Un altro Esse possono essere £1; d .311 a tn valon _d1 attribuu d1 dipartimento 5 sono registrati solo una volta
anomalie di agglomamento. nella b
di base e il problema delle ie di 1'nodii’1ca.2
malie di can cella zion e e ano mal E _ ase . an. come tupla smgola nella relauone DIPAHTIMENTO.
anomalie dl inserimemo. 'ano '
mpi _d.1ffioue msenre nella relazione IMP__DIP un nuovo dipartirnemo che non ha ancor
tipi, illustrati dni seguenti ese . plegau.‘11 solo modo per farlo e quello di pol-re valori nulli negli attributi relativi a
timin-
ie di inse rime nto. Pos sono essere distinte in due
Anomal l:
. -_ gate. Clo causa on problems Perché SSN e la ohiave primaria di IMP DIP. e si supponeli
basati sulla relazione IMP_DIF
rre inserire i valori degli attri
buti Viggillemagiz raftprelsen-n un"entita impiegato T non uu’enfita dipartirnento. Inoltre. quando
a irnpiegato in IMP_DIP occo
a Per inserire una nuova tupl ri null i (se l‘im pieg ato anc ora non lava- con valorigxfilliti) JQpI'lmD 111113.23a a quel drpartjmento. non 51 ha pit) bisogno della
tupla
piegato lavora, o valo
del diparlimento per cui l’im dlpmimemo v: u‘esto pm lema non s1 presenta nel progetto di Figure 10.2, perché U11
impicgati
0 mm lavofino1eéiignnie$fianzfla relazmne DIPARTIMENTO she in esso lavorino
.
comspond emc . a insema in mp1 '
e angels-.910 e assegnato a quel dxpammen ' to una tupla
MH— dclla normaliza-
2b) per giustificare la neocssitjl
mess: in evidenu ds Codd (197
1 Quests: anomalie sono stale 10.3.
e si vedré 119.lm
zioue delle relazionj, som
316 Capitolo 10 Dipendenze funzionali e normalizzazione per basi di dati relazionali 31?

Anomalie di caneellazione. Questo problema e legato alla seconda situazione di anomalia di di memoria 9. put: anche portare a probiemi di comprensione dei significato degli atuibuti e di
inserimento diseussa supra. Se si canceila da IMP_DI P una tupla impiegato che e quella che rap- specificazione delle operazioni di JOIN a livello logico.‘1 Un altro problems. con i vaiori nulb’ e
presenta l’ultimo impiegato che lavora per un parficolare dipartimento, l‘informazione riguar- come rispnndere della loro presenza quando vengono applicate operazioni aggregate come
dame quel dipartimento non e pit presente nella base di dati. II problema non si presenta nella COUNT o SUM. Inoltre i valori nulli possono avere pm interpretazioni, tra cui 1e seguenti:
base di dati di Figure. 10.2 perché 1e tuple di DIPARTIMENTO sono memorizzate separatamente. o l‘atu'ibuto non e pem‘neme per questa tupla;
a :1 valore dell’attfibuto per questa tupla e sconosciuro;
Anomalie di mudifica. In IHP_DIP, se si cambia iI vaiore di uno degli attributi di un partico- o 11 valore a more ma ossente, cioe non 5 3110012 stato memorizzato.
di
lare dipartirnento -— ad esernpio il direttore del dipartimento 5 — occurre aggiomare le tupie
tutti gii impiegati che lavurano in quel dipartimentu, aIlIimenti la base di dati diverra inconsi- . _L‘uso della stessa rapprcsentazione per tutti i valori null‘: non consente di cogliere i diver-
stente. Se ci si dimentica di aggiornare aleune mple, per lo stesso dipartimento verranno mo- sr signlficati che esst possono assumere. Si pub pertanto enunciare un’altra linen guida.
strau’ due diversi valor-i di direttore in diverse tuple impiegato, i1 che non dovrcbbe vetificarsi.
LINEA GUIDA 3. Per quanta possibile, si eviti di porre in una reiazione di base attribun’ icui
Basandosi suIIe tre anomalie precedenti. e possibile fornire 1a seguente iinea guida. _ valorl possono essere firequentemente nulli. Sei valori nulli sono inevitabili. ci si assicuri che
essi s: presentinu solo in casi eccezionali e che non riguardjno una maggioranza di tupie nel-
LINEA GUIDA 2. Si progettino gli schemi di relazione (ii base in mods che nelle relazionj 1a relazione.
non siano presenti anomalje di insetimento, cancellazione o modifica, Se sono presenti delie
di
anomalje, 1e si riIevi chiaramente e ci si assicuri che i programmi che aggiornano la base Ad esempio. se solo i1 10 per cento deglj impiegati ha un ufficio personale, non c‘e ragio-
dati operino correttamente. ne di includere un atuibuto NUMERO_UFFICID neila relazione IMFIEGATO: piuttosto pub esse-
re progettata una relazione IMP_UFFIGI [ SSN_I, NUMEHG_UFFICIO) che comprenda tupIe so-
La seconda linea guida e consistente con la prima e, in un certo sense, rte a una riaffcrma— lo per i impiegati che hanno uffici privati.
zione. Si pub ancbe rawisare la necessita di un approccio piu formale per valutare se on pro-
getto soddisfa queste Iinee guida (si vedano i Paragrafi 10.2-10.4). E imponante notare che
queste linee guida possono talora dover essere violate al fine di incrementare Ie prestazt'om' di
certe interrogazioni. Ad esernpio. se un‘interrogazione importante recupera informazioni ri- 10.1.4 Generazione di tuple spurie
guardanti i1 dipartimento di un impiegato, insieme con gli attributi di impiegato, lo schema
1MP_DIP pub essere usato come relazione di base. Le anomalje in IMP_DIP devono perb es- Si considerinoi due schemi di relazione IMP_SEDI e IMP_PROG1 di Figura 10.5(a), che pos-
sere notate e ben comprese, in mudo tale che non si finisca col produrre inconsistenze ogni sono essere usati al pesto della relazione IMP_PROG di Figure 10.3(b). Una tupla in IMP SE -
vulta che viene aggiomata 1a reiazione di base. In generale é consigiiabile usare relazioni di DI indica che l’impiegato i1 cui name a NOME_I lavora su qualchc progetro la cui sede tE—SE -
base prive dj anomalie. e specific-are viste che utilizzino i JOIN per raggruppare gli attributi DE_P. Una tupla in IMP_PHOG1 indica che l’impiegato il cui numero di previdenza sociale e
frequentemente richiamati in interrogazioni importanti. Cib riduce il numero di termini JOIN SSN lavora un certo numero di OHE a settirnana sul progetto il cui nome. numero e sede sono
specificati nell‘intetrogazione, rendendo pit semplice scrivere l’imerrogazione correttamente. NOME_P, NUMERO_P e SEDE_P. In Figura 10.5(b) sono mostrate estensioni di relazione di
e in molti casi migliora 1e prestazioni.3 IIJIP__SEDI e IMPwPaDG‘I corrispondenti alla relazione IMP_PHOG di Figura 10.4, ottenute ap-
phcando l’operazione di PROIBZIONE (at) appropriate a IMPflPROG (peril memento si tra~
scurino 1e linee tratteggiate in Figura 10.5b).
10.1.3 Valori nulli nelle tupte Si supponga di aver usato IMP_PRGG‘I e IMP_SEDI invece di IMP_PHOG come relazioui di
base. Cib da iuogo a un progetto di schema particolanbente infeh'ce, perehé da IMP_PHCIGi e
IMP_SEDI non si pub recuperate l‘informazione original-laments presente in IMP FROG. Se si
E posgibile obe nei progetti di alcuni scherni vengano raggruppafi numerosi attributi a formare
una “grossa” relazione. Se molti di questi attributi non riguardano tutte ie tuple della telazione.
tenta un‘uperazione di JOIN NA'IURALE su IMP_PHOG1 e rugssor, iI risult_at0 produce
molte pit) tuple rispetto all’originaria populazione di tuple in IMP_PHOG. In Figure 10.6 e mo-
quelie tuple finiseono con l‘avere molti valor-i nulli. Cib pub da: luogo a uno spreco di spazio
stralo il risultato dell’appficazione del join alle sole ruple 30pm le linee tratteggiate di Figu-

3 Le pmstazioni di un'inrcrrogazione specificsta su una vista che e il JOIN di moite relazioni di base dipende da
6
come it DBMS implementa la vista. Molli DBMS reiazienali mentor-inane una vista usale fiequcnlemeflte. P9? Cid si :erifica pet-che iijoin intemo e queue estemo danno risultat] diversi quandc sorta coinvolri valori nuili. Gli
non clover eseguirc spesso i JOIN. Il DBMS e responsabile di aggiomare la vista memorizzata (o immediatamentc utenll‘ mrrebbero peruo essere consapevoh dei diversi significati assunli dai vat-i tipi di join. Anette se cio appa—
n neriodicamenrci ogni volt:- che vengu‘no anion-tale [e retazioni di base. re merunevoie per literati sofisucnri, :gottebbe essere invece djfiiciie per gli ahri tipi di utenti.
L.“— - . .. 5-7 M .m m i" E "j ' :3 -, . . ..¢ him.” lung“;
Dfpendenze funzlonali e normallzzazlone per basl d1 dati relazionali 319

318 Capitoio 10

ra 10.50:) (per ridurre Ia dimensionc della relazione fisultato). Tuple aggiuntive, non presenfi
in IMP_PR00, sono dette mple spurie pcrché rappreseonano un‘infomazione spuria 0 55a-
gliata che non B valida. In Figure 10.6 lo tuplc spurie sono contrasscgnate con asterischi (*).
La decomposizione di IMP_PRDG in IMP_SEDI e IMP_PRGGT produce effotti indesiderati
pcrché, quando si n‘uniscono 1e due rclazioni usando i1 JOIN NATURALE, non si riotiiene
5.5:. l'informaziono ofigjnalc corretta. Cib si verifica perché in questo caso SEDE_P é l'attributo che
colloga IMP_SEDI e 10P_PROG1 , e SEDE__P non é né una chiave primaria 116 um chiave ester-
na in IMP_SEDI o in IMP_PBOG1. E possibile ora enunciare informalmentc un'altra linoa gui-
da di progettazionc.

Elm-Pm E
Wa—J LINEA GUIDA 4. Si progetfino schemi di relazione in modo tale che ossi possaoo cssere rin—
c.p. niti. tramite JOIN, con condiziom‘ di uguaglianza su amibuti chc sono o chiavi primarie o chla-
vi esteme in 113000 da garmt‘o-e the non vengano generate tuple spurie. Non si abbiano rela-
zioni cho contengono ato'ihuti di accoppiameuto diversi dalle combinazioni chiave estoma~
chiave primaria. Se relazioni di questo fipo sono inevitabili, non si effettui 50 di esse un'ope-

M Smith. John B.
Balbeka
razione di join suila base di questi ato-ibuti. pcrché il join pub produrre tuple spurie.

Sugaflond Questa Iinca guida informale dowa naturalmente essere esposta pit) formahncnte. Ncl Ca-
Smith. John B.
'K. 20300w
Nam-an. R
SH
piiolo 1 1 V8113. presentata Ima condjzione formale, detta proprieth di join non-additivo (0 son-
English. Joyce A.
Wmmd za perdita), che garantisce che certi join non producano tuple spuxie.
Engllsh. Joyce A
Sug
Wong. Franklln‘l'.
Houston
wong. FranklinT.
....
Wonsfmnonj-______________srStafi d ........
afior....
o
Zelaya. Alida J.
822:: L NOME_P l SEDE_F' NOME_|
Jabbar. Nwrnad V. St
| SSN JNUMERO_P| one
Wallace. Jmn‘tfers
Hog?1
walhoe. Jennifer S. Ho 123456739 1 32.5 Prodottox Boilaire Smith-John B.
BagJamas E. 123456789 1 32.5 Frodo'ttox Bellafre English.Joyce A.
1% 2 7.5 Pmdo‘l‘lnY Sugafland Smith-John 8.
123455789 2 7.5 Prodorho‘r Sugarland EnglishJoyoe A.
Mngfranklln'l'.
IMP_PROG1 123456739
666384444
2
3
7.5
40.0
mY
ProdotloZ
Sugarland
Houston Natayanfiammh K
666884444 3 40.0 Frodofloz Houston MngfranI-dln 'E
453453453 1 20.0 Hudottox BEHalre Smtohn 8
453453453 1 20,0 Pmdottox Bahama EnglishJoyce A.
453453453 2 20.0 Fmdot‘to‘r’ Sugafland Smithdohn 3.
453453453 2 mo PmdottoY Sugafland English.Joyce A
453453453 2 20.0 PlodottoY Sugarland Wongfronlidin T.
333445555 2 10.0 ProdorttoY Sugafland Smith,John 8.
333445555 2 10.0 Frodotto‘r' Suganand EngiishJce A.
333445555 2 10.0 Frodotto‘r Sugartand Wongfrankfin T.
333445555 3 10.0 Prodottoz Human Narayanflamed'l K.
333445555 3 10.0 Prodottoz Homion agfranMin ‘E
333445555 10 10.0 Compuher'zzazlom Staffom Wongfranlvdin T.
333445555 20 10.0 Fliorganizzaziona Houston NarayanflamedI K.
333445555 20 10.0 Riorganlzzazfone Houston Wong.Franldin T.
-
n
3

PP.03. (an Rapprosenta-. our: 10.6 Flisuiiato dell’appllcazione dall‘oparazlona dt J01N NATUHALE alle tuple one stanno supra Ea
auto defla relazione IMP_

d1 ralo z‘lon e: IMPflSEDI e [0930061 Ilnao tattoogtote tn IMP_PHOG1 a IMP_SEDI: la tupfe spurle one saw state generate acne in-
F' P000
zion e di Figu
alte mat sotrgag’duejscheml
It“0))
ralva10.3 o dl Figu re. 10.4 sugii attrlbufi dicate: con un asterlsco.
nra 10.5 Rap pres enta a 10 P Pao
a della ralazlone popolat
:égfilscflltgt‘o-dalla proiazion
di 1MP SEDI a IMPJ’RUG‘L
320 Capi‘ioio 10 Dipendenze funzionali e normalizazione per basi d! dati Eelazlonan'i 321

10.1.5 Sommario ed esame delle $121311. AN}.5 (Jibalnon signifiea che si memofizzera effetfivamente la base di dan’ con una
linee guida di progettazione dipendenzc “a dam“: e; questo concerto vena usato 5010 per svfluppare
a e a umvers ' Ia teona
' fonnale delle

Una dipendenza funeionale, indicate eon X —> Y, Ira due insiemi di attributi X e Y che sis-
state esaminate informalmente situazioni che
Dal Paragrafe 10.1.1 31 Paragrafo 10.1.4 sane 310 sottoxnsremi d1 R specifica un vincolosulle tuple che possone formare uno state di rela—
, e some state proposte linee guida informali per un
port-am) a schemi di relazione problemafici enti 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
ziati, che pessono essere rivelati senza strum
buon progetto relazionale. Iproblemi eviden dive avere anche {AF} = :2[Y]. C16 Significa che i valori della componente Ydi una tupla in r
aggiuntivi di analisi. seno i seguenti: 1 pesdene da, 0 sum determined da, i valori della eomponente X, o, in altemativa, che i va-
aggiuntivo durante l‘inserhnento in una cl; lella cemponente X ch tina tupia determinant} univocamente (o fnnzionalmente) i valo-
anomalie che n'chiedone che venga fatto un iavoro
di una telazio ne. e che posscn o causare una perdita aceidentale ftime-la componente Y. S: dice anche che c'é una dipendenza funzionale da X a Y o che Y a
relazionc e la modifica
relazio ne; mglnggdni‘egteg‘iipendente da X. L’abbreviazione per dipendenza funzionaie e DF 0 d f. (in
d’informazione durante una cancellazione da una
ria a causa di valori nulli e difficu lta di eseguire operazioni di DF, .6 Y 5 edemo
. .: Pam:
ncn’anai dependency). L’insierae di attribu n' X e detto parte sunstra
destra_ ‘ ' .delia
- perdita di spazio di memu
presen za di valori nuili;
aggregazione e operazioni di join a causa della
validi e spuri durant e i join su reiazio ni di base unite in mode im- PenantoX determina funzionalmente Yin uno schema cfi relazioneR as e 5010 se, ogni vei-
generazione di dati non
ta che due tupIe di rtR) eoncordano su] loro valore X, esse devono necessaiiamente concorda-
proprio.
re anche sul Ioro valore Y. Si noti quanto segue:
lti formali e um leon'a che possono essere
Nel resto del capitolo vermnno presentati conce
tti di “buen a qualim" e “catfiva qualith" dei singali e se un .vincolo su R stabilisee che non ci possa esseze pifi di una tupla con un data valore
usati per definite pi!) precisamente i cence
tutto la dipendenza funzionale come strumento per X in una genenca istanza di reiazione r(RJ — cioe X a una chiave candidate (H R — cib
schcrni di relazione. Vena esaminata prima di
normah' e la fun-11a normaie di Boyce e Codd implicafiche I]: —> Yper qualsiasi soHeinsieme Y di amibuli di R (perché i1 vincolo di chia-
d‘ analisi. Quindi si speeificheranno 1e Ire forme
l form) per schem i di relazione. Nel Capitelo 11 verranno forniti ve
101-31111Iii-3X)?
c c e nessuna coppia
' d1' tuple in
' un qua151as1
' ' stato valido
' r(R) and I0 stcsso va-
(BCN'F: Boyce-Cedd norma
i di relazione formi, nei complesso, un
criteri aggiuntivi per verificare se un insieme di schem
di dati relazio nale. Venan no presen ted anehe degli algeritrni che fanno 0 seX—> Yin R, cib non dice seinR Y—aXoppure no.
buono schema di base
reiazio nali. Le forme normali definite in que-
parte di questa teoria per progettare basi di dati isa dipendenza funzionale e una proprieta della semantica 0 del significato degli attri-
sul concer to di dipend enza funzion aie, descritte nel prossimo para-
sto capitole seno basate biitl. .1 progelnsti della base di dati useranno la 10m conoscenza della semantica de Li at-
grafo. il'rlbuil‘dl R — vale a dire come sono collegati tra di lore — per specificare 1e dipendenzge fun-
zmnali 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
funzionale. ia dipendenza viene specificata con un vincolo. Estensioni di reiazione r(R) che
10.2 Dipendenze funzionali snddlsfano 1 vincoli di dipendenza fimzionale sono deIIe estensioni valide (a stati validi
di relazmne) d: R, perché soddisfanu i vincoh' di dipendenza funzionaie. L’uso principale del-
le dipendenze funzienali e percib quello di descrivere ultefiormente 11110 schema di relazione
di schemi relazionali e quelio di dipenden-
I] concetto pits importante nella progenazione SI. tralmte 'una specflicamone dei vincoli sui suoi attributi che devono valere sempre. Certe
e fonnah nente questo cuneetm. mentre nel Para’
za funzienale. In questo paragrafe si definit lpendenze funnonali possum) easere specificate senza riferirsi a una particolaxe relazione
definite forme normali per schemi di re-
grafo 10.3 si 'vedxa come esso posse essere usate per ma come una propneta degli attributi coinvoln'. Ad esempio, {Stan}, Numer‘o patente} —;
lazione. S_SN dew: vaiere per ogni adulto negli Stati Uniti. E anche possibfle che certe dipendenze fun-
zmnali possane cessare di esistere nel mondo reale se l’assoeiazione cambia. Ad esempio

10.2.1 Definizione di dipendenza funzionale


Queslo
59, d; daficoncerto ch" relazione universal e a. :m
mafionale- ' par: a nle neilo studlo
' degl:‘ .11go'r'mm' per 19 pmgeltazmne
‘ d1’ unq ba—_
I
attributi della base :11 dati. Si sup-
Una dipendenza funzionale a un vincolo In due insiemi di
n atm'buti AhAz. ..., A,,; 5i pensi
"85m m .. . ‘ .
abbia 3mm fa“Gum:3:12:13."33:1egg-13:30:“) nefla base :1:‘ dan‘ debba avere un name dim‘mo. Ne! Capitolo 7313—:
I I

penga che i1 nostro schema di base di dati reiazionaie a fl {1 . . . , ‘ . . . a' ' . . :


come at; fosse deacr'ma da un solo schema di relazione universale R = e. non-u dl relazionl per onenere l uniclla ogm volts che anti-abut} In
'i'ef
“‘infera base rli dati 19');a djstint? Dunn-gnu 10 “MM ..
«4...... L....__.__ -_......__ M m -‘.._.. -_.._-.._-— M. ..'-f _ .- :_ .. . : .‘ ,3. _- . .eii- .'... . .4. .' \ .J ‘I I
-.._ é . '

Dlpendenze funzlonall e ncrrnallzzazione per basi di dati relazionali 323


322 Capltolo 1O

10.2.2 Regole di inferenza per dipendenze funzionali


INSEGNA

‘ DOCENTE 1NSEGNAMENTO TESTO Si indichi con F l'insicme di dipendenze funzionali specificate sullo schema di relazione R.
Barnum
'flpicarnente i3 progetLista dello schema specifica le dipcndenze funziunali semanticamnm
Smlti'l Shm‘Lura dafi
Smith Gaatiom dafl N-Ncur evidenri; di solito, pcrb, sussistcnc Inclie altre dipcndenzc funzionali in rune 1e istanze di re-
Halt Compilatofi Hoffman-I lazicne valjde che soddisfano 1e dipendcnze in F. Questc altre dipendenze possonc essere in—
Strutmre dafi Augerrthelar
Brown feritc o dedotre dalle dipendenze ftmzionalj presenti in F. Per esempi tratti daIIa vita reale é
una dipendenza funzlonaie apperante TESTO —9
INSE‘ praticamcntc impossibile specificare mite 1e dipendenze funzionali che posse-no sussistere.
figure 10.? Lo state deiia relazlone INSEGNA con re.
BNAMENTO. INSEGNAMENTO —; TESTO é Invece da eeclude 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 pre- F={SSN—>{NOME_I, DATA_N, INDIRIZZD, NUMEROJJ},


1m tempo negli Stafi Unifi esisteva un'associazione NUMERG_D —> {NOME__D, SSN_DIR_DIP}}
si potcva esprim ere tramite la dipendenza funzmnale Godlce_evv_po-
fissi telefon jci, che
ma con la prolifer azione dei prefissi telefcmm C16 nan a E possibile infen’re da F {e seguenti dipendcnze funzionali aggiuntive:
stale —> Prefisso_talefonicc, _ ‘
pit veto.
10.3(b); dalla semantica degh at- SSN —-> {NDME_D, SSN_DIR_DIP}.
Si consideri lo schema (ii relaziene IMP_PROG in Figure SSN —-) SSN, .
nze funzionali:
tribufi sappiamo che devono sussistere 1e seguenti dipende NUMEHOJJ —-> NOME_D
a. 531-: —> NOME_I Una DF X ——> Ye inferita da un insieme di dipcndenze F specificate su R se X —-> Y sussi-
b. NUMERO_P—> {NOME_P, SEDE_P} ste in ogni state di relazione r che sia un’estcnsione valida di R; cicé. ogui Volta che r scddisfa
c. {35m NUMERO_P} —-> one cutie 1c dipendenze in F. in r sussiste anche X —> Y. La chiusura F“ di F e l‘insieme di tutte le
(a) ‘il valore de‘ll nuE-nero di prewdenza dipendenze funzionali che possono esserc dedotte da F. Per determinate un mode sistematico
Queste dipendcnze funziunaii specificano che per inferh'e dipendenze, cccon'e Imvare un insieme di regole di inferenza che possum: essere
impieg ato (SSN) determ ina uIfivocameme [1 name dell 1mp1cgeto (NOME_I). (1:)
sociale di un usate per inferire nucve dipendenze a partirc da un insieme date di dipendenze. Ora si consi-
(NUMER O__P) deierm ina univecamcctell name del pro-
i1 valore del numero di un progetlo _FIG_P dereranno alcune Iii queste regole di inferenza. Verrh usata la notazionc F I: X ——) Y per indi-
(c) una combinazione del valor: d1 SSN e‘ltlUME
getto (NUME P) (:13. sua sede (SEDE_P). e to dell enplegato care Che la dipendcnza funu'onale X —> Y e inferita dall’insieme di dipendenze funzicnali F.
te a settimana sul proget
determma fiivocamente i1 numero di ore lavora Nelle discussione segueme quando vengono esaminate 1e dipendenze funzionali si usera
tiva si dice che NOME_ I e dctenn inato funziocalmeete da {0 efunzmne‘lmen—
(ORE). In altema una netazicne abbreviate. Le variabili di attribute vcrranno concatenate e 1e virgole omesse
un valore di SSN. noi sappxamo 11 valere d1 NOMEJ e co-
{e dipcndente da) SSN, 0 Che ”date ‘ . per comedité. Percic) la DF {XX} —-> Zt‘: abbreviate. in 37—) Z, e 19, DF {X,Y,Z} —-> {H.V} e
si ' .
erd deHo schema di regazione (mtensmne) R. abbreviate in XYZ _, UV. Le seguenti sci regole (da R11 3 R16) sono note regole d1 inferenza
Vanda di djpendenza funzionale a una propri
sicne) r d1 R. Perelb una DF non pub es- per dipendenze funzionali:
non di un panicolase state valido di rclazione (esten
eme da una data estens ione di relazicne r. ma deve essetc defimla R11 (regola riflessiva):" se X 2 Y. aflora X —> Y;
sere dedotta automaticam
tics. degli ateibuti di R. Ad esemplc, 1n F1-
esplicitamcnte da qualcunc che conosce la seman ne INSEGNA. Anche se R12 (regola di arricclfimemo):5 {X -> Y} I=XZ —) YZ;
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 R13 (rcgola transitiva): {X —> Y, Y» Z} 1: X —> Z;
a veto per tutti I'possibili start valid: (11 IN§EGNA. E perb suffiuente
ipotesi se non si 59. she cit} Ad esempm, data R14 (regcla di dcccmposizionc, 0 di pmiezione): {X —> YZ} I: X —-) Y;
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 La regola riflessiva pub anche assert: enunciatn come X —9 X. 03519, 03,111 insicme di attdbun' determine funnie—
1e dipendenze funzionali: ogni DP 3 rappresentata grafica
della DF scno colleg ati tramit e knee xterucap alla knee. Che rap- nalmente se stucco.
attributi della pane sinistra u traxmte frecce che puma-
La rcgcia di sm-icchhnenm puc anche esscre enuncizra come {K —v Y]: I=XZ —» Y. cssin. l'ardcchimento dcgli 3!-
sono ccllega
presenta la DF, mentre gli atuibuti della partc destra tributi d3 pane sinistra di una DF produce un'alun DF valida.
no verso gli atu-ibuti stessi.
Dipendenze funzionali e normaflzzazione per basi di dafi relazionali 325
324 Capitolo 10

PROVA D1 R15 (USANDO DA R11 A R13)


I: X —> 12;
R15 (regola di unione. o additive): {X —> Y, X —+ Z} . X —> 1’ (data).

P‘PP’NH
Z.
R16 (regoia pseudo-transitiva): {X -> Y. WY—a Z} [= WX —> . X —-9 2 (data).
X -> XY [115m R12 so 1 arricehendo con X; si noti che 101' = X).
i determine sempre se stesso o
La regola riflessiva (R11) afferma Che on insieme di amibut KY ——> YZ (usando R12 so 2 airicchendo eon Y).
i1 che e ovvio. Dato che R11 genera dipendenze che sono
uno quaisiasi dei suoi sottoinsiemi, X —) YZ {usando R13 51: 3 e 4).
meme ona dipendenza funzionale
sempre vere. queste dipendenze sono dette banali. Fonnai
nnie. La regola di auicchimento (R12) sostie-
X —> Y e hanale se X 2 Y; altrimenti e non-bo PROVA DI R16 (USANDO DA R11 A R13)
ne che aggiungendo lo stesso insieme di attriboti aila pane sinistra e alla parte destra di una
1. X ——> 1’ (data).
o la R13 1e dipendenze funzionali so-
dipendenza si ottiene un’ altIa dipendenza valida. Second . WY—> Z (data).

PM:
e she 51 possono rimuovere attributi
no transitive. La regola di decomposizione (R14) sostien WX—> WY (usando R12 su 1 anicchendo con W).
nza; 1‘ applica zione ripetuta di questa regola puo decompom
dalla pane destra di una dipende WX—> Z (usando R13 so 3 e 2).
——> A“ X —> A2. X -> A,,}. La re-
la DF X 4 {A,, A3, 21"} nell‘insieme di dipendenze {X
di fare l‘oppos to: é possibi le combin are un insieme di dipen—
gola di unione (R15) consente E state dimostrato da Amsnong (1974) che 1e regole di inferenza da R11 2. R13 sono cor—
X—> {A,, A2, An].
denze {X ——) A“ X -> A2, X —~> AH} nella singola DF rette e complete. Per corrette si intende che, date on insieme di dipendenze funzionali F spe-
di inferenz a puo essere dimostr ata a partire dalla defini-
Ognuna deile precedenti regole CIficate su tmo schema di relazione R, tutte 1e dipendenze che e possibile inferire da F usan-
assurd o. Una prova per assurdo sup-
zione di dipendenza funziona1e. can prove diretla 0 per do 1e regole da RI] a R13 sussistono in ogni stato di relazione r di R che soddisfa 1e dipen-
e mostra che cib porta a una contrad dizione . Verra ora dimostra—
pone Che la regola non valga . denze in F. Per complete si intende che, usando Iipetutamente le regole da R11 a RB per in-
La seconda prova e per assurdo
to che 1e prime tre regole (da R11 3 R13) 5011:: valide. fenre 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‘in-
PROVA DI R11 ,
SIeme di dipendenze F‘, che a state detto chiusura di F, pub essere determinate da F usando
una certa istanza di relazione r di R
Si supponga che X 2 Y e ehe esistano due tuple r, e :2 in solo 1e regole di inferenza da R11 a R13. Le regole di inferenza da RH 51 R13 sono note come
2 Y; percib in r deve valere X -> Y.
tali che rflfl = 1;.[X]. Allora tfl’] = £2[Y} perché X regoie di inferenza di Armstrong}
Tipicamente i progettisti di basi di dati dapprima specificano l‘insieme F deIle dipenden-
PROVA D1 R12 (PER ASSURDO) ze funzionali che possono essere facilmente determinate dalia semantiea degli atu-ibuti di R;
Y. ma che non valga la XZ—-> YZ.
Si suppenga che in un’ istanza di relazione r di R valga Ia X —-> poi usano R11. R12 e R13 per inferire uiteriori dipendenze funzionali, 1e quali saranno pure va-
Che (l) IIIX] = I,[X], (2) I;[Y] = r1[Y1, (3) IJXZ]
Devono percib esistere due tupIe I, e r; in r tali lide su R. Un mode sistematico per determinare queste dipendenze funzionali aggiuntive e
e possibil e, perché da (1) e (3) si deduce (5) t,[Z] = t3[Zj.
= QUIZ]. e (4) film ¢ IEEYZ]. Cib non
quello di detenninare prime di tutto ogni insieme X di attributi che appare come pane sinistra
(4).
e da (2} e (5) si deduce (6) I,[YZ] = tziYZ], contraddicendo 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’insie-
PROVA DI R13 me X” di attributi che sono determinati fimzionalmente d3. X sulia base di F; X+ e detto chin-
(2) Y—; Z. Allorn, per ogni
Si supponga che in una relazione r sussistano sia (1) X -—) Yche sura 111 X rispetto a F. Per caleolare X‘ pub essere usato l'Algoritmo 10.1.
si deve avere (3) MY] = 120’}. dall’assunzione
coppia d1 tupie r. e :2 in r tali chc QEX] = rapt],
anche avere (4) £,[Z] = r,[Z]. dalla (3) e dall‘ass unzione (2); quindi in rde-
(l); percio oceorre ALGORITMO 10.1 Determinaziona d1X‘. chlusura dl X rispetto aF.
ve valere 1a X —> Z.
X‘ := x;
:13 R14 a R16 e repeat
Usando argomentazioni simili e possibile provare 1e regole di infereoza
di inferenza valida. Perb un mode pifi semplice per dimostra re che una rege- oldX‘ := X';
ogni altra regola for ogni dipendenza funzionale Y -+ z in F do
usando regole di infe-
ia di inferenza per dipendenze funzionaii e valida consiste neI provarla if X“ 2 Y then X' := X' U 2;
1e regole da R14 21 R16
renza Che sono gia state dimostrate valide. Ad esempio. si poo provare until {X' = our);
usando 1e regole da RIl a R13 come segue:

PROVA DI R14 (USANDO DA R11 A R13)


1. X -—) YZ (data). 9 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
2. Y2 —> Y (usando R11 e sapendo Che Y2 Q 1").

w LWL w
-
RB-sono le regal: (If irgferenza per inferire nuove dipendenze funziormli (nuovi fatti).
- ' f- . . Ea :-. ';.' w?
"'5; ;._
" . ' ‘ a ‘3 . -_.. : n. .
_.... _ I. M“... 25F.-.J ._.._ “a

Dipondenze funzionali e normalizzazione' per has! di dati relazlonali 32?


325 Capltolo 10

attxibuti in X. Da RIl e noto che tutti 51 pub pensare a un insieme minimale di dipendenze come a 1m insieme di dipendenze in
Tale algoritmo inizia ponendo X+ uguale a tutti glj unafan‘na Random! 0 canonica e senza ridondonze. La condizione 1 assicura Che ogni dipen-
X. Serven dosl delle regole d1 inferenza R13
questi attributi sono funzionalmente dipendentl da donz'a S]. preseou in una fonna canonica con un solo attribute nella pane destra.m Le condi-
ti a X". usando tutte lc dlpend enze funzionali in F. Si continuano
e R14 si aggiungono attribu nom .2 e 3 asstcpxano che non ci siano ridondanze nelle dipendenze. 0 per la presenza dj at-
) finché non vengono pit) aggiunti attri-
a considerare tutte 1e dipendenze in F 61 ciclo repeat oebutl ndondanu nella pane sinistra di una dipendenza (coudizione 2), 0 per la presenza di una
comple te (ll ciclo for} sulle dipend enze in F. Ad esempio, 5i consi-
buti a X+ duronre mt ciclo dlpendenza'che pub essere inferita dalle altre DF in F (condizione 3). Una coperlnra mini-
10.303 ); dalla scman tica degii attributi e: pos—
deri lo schema di relazione IMP_PBOG di Figura male ch 1111 msieme F dj dipendenze fimzionali e on insieme miru'tnale di dipcndenze F - equi-
il seguem e insiem e F di dipcnd enze funzio nali Che devono valore su
sibile specificare valents a F. Pufteoppo per mm stesso insiemc di dipendenze funzionafi ei possono essemrne mol-
IMP_PROG: telcoperture mmmali. Usando l‘Algoritmo 10.2 si puo sempre Home almeno mm copertura
F'= {sew —. N0ME_;, mlmmale G per ogni insieme F di dipendonze.

NUMERO_P -+ {NOME_P, SEDE_P},


ALGOHIWO 10.2 Home di una coparlura mlnimale G (if F.
{$3N, NUMEHO_P} —» ORE}
1. Poni G := F.
seguenti insiemi chiusura rispetto a F: Sostituisci ogni dipendenza funzionale X —» {A1, A2, ..., A} in
Usando 1‘ Algoritmo 10.1 si possono calcolare i
2.
6 con la n dipendenze funzionali X —> A1, X —> A2, .., X —: A
{SSNP = {SSN, NOME_I} 3. Per ogni dipendenza funzionale X ——> A in G ”I
} per ogni attribute 8 che sia un elemento di X
{NUMEHU_P}‘ = {NUMEHD_P, NOME_P, SEDE_P
so ((6 - {X —) A}] U {{X — {8}) ~—) A}) e equivalents a G,
NOME_I, lllOM'!E_PJ SEDE_P, ORE}
(SSH, NUMERO_P}‘ = {SSN. NUMEROJ’, allor'a sostituisci X —a A can (X - {5}] —> A in G.
4. Per ogni dipendenza funzionalo rimanente X —9 A in 6
se (o - {x —+ A}) e equivalents a e,
ionali
10.2.3 Equivalenza di insiemi di dipendenze funz allora rimuovi X -—> A da G.

un insieme di dipendenze funzionali F —


Un insieme di dipendenze funzjonali E e coperlo da
che F copre E — se ogni DF in E e presente anche in F2 cioe se ogni
altemativamente si dice
dipendcnza in E pub essere inferita da F. Due insiem i E e F di dipendenze funzionali sono 10.3 Forme normali basate su chiavi primarie
F". Percio l’equiv alenza implica che ogni DF in E posse essere inferita da
equivalenti se E+ =
ossia E c equiva lente a F so sussistono entrambe
F. e ogni DP in F possa essere inferita da E,
F e F copra E. Dopo ave; studiato 1e dipendenze funzionali e alcune delle loro proprietfi, si e ora pronti a
le condizioni E copre
o a 1" per ogni DF X—> Y in E, e quin- usarle come fonti d‘informazione sulla semantica degli schemi di relazione. -Si suppon'h qui
Si pub determinare se F copre E calcolando X+ rispett
se questo X+ compre nde gli amibu ti presen ti in Y. Se e eosi per ogm' DF in E, che‘per ogm relazione venga dato un insieme di dipendenze funzionali, e che ognj relazione
di verificando
equiva lenti verlfica ndo se E copre F e F copra E. abbla una chieve primaria designate; queste informazionj, combinate con i test [condizionfl
allora F copre E. Si detemfina so E e F sono
per forme normah, guidano i1 processo di normalizzazione. Si rivolgera l’attenzione alle pri-
roe 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-
li
10.2.4 lnsiemi minimali di dipendenze funziona _ 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
ale se soddisfa le seguenti condizioni:
Un insieme F di dipendenae funzionali e minim normale di Boyce e Codd (BCNF).
destra un solo attributo;
1. ogni dipendenza presente in F ha come pane
ire una dipend enza X -+ A. di F con una dipendenza Y a A. do-
2. non 5 mai possibile sostitu
un insieme di dipendenze equivalente
ve Y e un sottoinsieme proprio {11’ X, e avere ancora
m Questo e um forma Stan-dare], non una necessita. ed a richiesu per semplificm 1e condizioni e 311’ algoritmi che
aF;
enza da F e aware ancoza un insieme di dipen- garmuscono che non eelsls. nas‘una ridondanza in F. Usando la regal: di inferenza R14 6 R15. si pub couverrire
3. non 5 mai possibile rimuovere one dipend una singola dipondenza con p‘rll am'ibuti nelle pm: desire in un insieme di dipendenzc. e viceverse.
denze equivalente a F.
Dipendenze funzionali a nermalizzazlone per baa] di dati relazionaii 329
328 Capitole 10

La proprieta di join nee—additive e estremamente critica e deve essere raggiunta a ogni co-
10.3.1 Intreduzione alla normalizzazione Ste, 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 con-
inizialmente prepesro da Cedd (1972b), set- cem e delle tecnichc fonnali che garantiscone 1e due proprieta supra espeste al Capitole 15
11 precesse di nermalizzaziene, cesi come e state
test per “certificare” se seddisfa a una certa for- Per seddisfare altri criteri desiderabili pessene essere definite altrc ferme nermali. basate
topene une schema di relaziene a una serie di
top-down valutando egni relaziene con i en'— su altn up] di vincoli. L'utilita pratica delle ferme normalfi divema pcre diseutibile quande i
ma run-male. Il precesso, ehe precede in mode
pnnen de 1e relazi oni quande necessarie, pue pertante esse- runcoh su cui seno basalc sene difficili da capire e da rilevare dai progettisti della base di da-
teri per 1e ferme nermali e dccem
onale per anab'si. Injzialmente Cedd ha preposte ne dagh ulenti che devcno sceprirlj. Percib eggigierno 1a progettaziene d1 basi di dati nel-
re considerate cemc unaprogetrazione refazi
ate prima , secon da e terza fenna normals. Una definizione pie 1‘1ndustna presta particolare attenzione alla normaljzzaziene fine alla BCN'F e alla 4NF.
tre fer-me nerrnaii. che ha chiarn
e Cedd (BCN' F) — e stata preposta in seguite 1Jn altre punto degno di neta e che i pregettisti di basi di dau‘ non some obbfigan‘ a ner-
resaittiva di SNF -— detta forma normale di Boyce
ferme nerm ali seno basate sufle dipendenze funzienali tra gii Inahzzare fine alla pin aha ferma normale possibile. Le relazieni pessone essere laseiate a un
da Boyce e Cedd. Time queste ferma nermale (4N?) e una
propo ste una quarta hvelle pill basso di nerrnalizzaziene per ragioni di prestazienj, del tipe di quelle esaminate a1-
attributi di una relaziene. Pitt tardi some state alore e dipendenza di
, basate sui conce tti di dipend enza multiv la fine dc} Sotteparagrafe 10.1.2. 1.1 precesso di memorizzaziene del join di relazieni in fer-ma
quinta ferma nerrnale {SNF} pessane esscre sin-
ra come 1e relazi eni in BNF normale pie alta come una relazione di base - in una fen-ea nermale pin bassa —- e nete come
join, rispettivamente. Nel Capitele 15 si studie pmgetrazz'cne relaziana- denermalizzaziene.
e date di DF. Quest ‘appre ccio e detto
tetizzate a partire da un insiern
. Prune di procedere clue, occorre riprenderc 1e definizioni di chjavi di uno schema di rela-
1e per sinresi.
considerate come un processo di analisi zmne Taste nel Capitele 7. Una superchiave di uno schema di relaziene R = {An A; A } e
La nermalizzaziene dei dati pub percie essere
tore dipend enze funzienali e chiavi primarie, per un 1n51eme di atu-ibuti S g R con la proprieta che nessuna coppia di tuple I} e L, in uh genueri-
deglj schcrni di relazione femiti. basate sulle
izzazione della ridondanza e (2} minimizza- co state vallde di rclaziene r di R avra M3] = r2[S]. Una chiave K a una superchiave con 1a
raggiungere 1e proprieta desiderate di (1) minim fe
ilaziene e medifica discusse nel Setteparagra proprtetd eggiunn‘va che la rimczicne dj un qualsiasi attribute da K fa si che K cessi di esse-
zionc delle anemaiie di inserimente, cance ieni —i test di forma re superclnave. La differcnza tra una chiave e una superchiave sta nel fatto che una chiave de—
soddisfane cefie cendiz
10.1.2. Schemj di relaziene inadeguati. che non ve essere minimale; cioe, se si ha Lina chiave K: {A,. A2, 11.} di R. allera K— {A} non é
relaziene pie pieceli che superane i test e per-
normale - vengene decompesti in schemi di
i 1a precedura di nemalizzaziene fernisce ai and chew: di R, qualsiasi sia i, I S i s k. In Figure. 10.1 {SSN} e um ehiave per IMPIIEGATO
tante pessiedone 1e proprieta desiderate. Quind mentre {SSN}. {SSN, NDME_I}. {SSBL NOME_I, DATA_N} ecc. sone tune superchiavi. ‘
pregenisti di basi di dati: Se uno schema di relaziene ha pie di una chiave. ognuna di esse é dena chiave candida-
di-
i di relaziene basata sufle lore chiavi e sulle ta. Una delle chiavi candidate e arbitrariamente neminata chiave pr'rmaria, e 1e altne seno
a una struttura female di analisi degli schem
dette chiavi secondarie. Ogni schema di relaziene deve avcre una chiave pn'maria. In Figure
pendenze funzienali tra i lore atuibuti;
ne essere effetruati sui singeii schemi di rela- 10.1. {SSN} e la sela chiave candidate per IMPIEGATO, e penante essa é anche la chiave pri—
a una serie di test di forma normale che pesse
pessa esscre nermalizzata fine a1 livelle de- mane.
zione, in mode che la base di dati reiazienale
Un attribute di uno schema di relaziene R e dette attribute prime di R as esse a mem-
siderate, qualunque esse sia.
hre di una quafche chime candidate d1 R. Un attribute a delta non-prime se men a un attri‘
ente 3113 pin aha condiziene di fer-ma buto 1)a — cine se non e membre di nessuna chjave candidata. 111 Figure 10.1 sia SSN 5ia
La ferma nermale di una reiaziene fa riferim
percie indica il livelle al quale a state nermalizzata. Quande venge- [sitii'ul'IEm-LJ.= seno attributi primi di LAVUHA_SU, mentre glj ale-i attributi di LAVDHA 5U sane
normal: soddisfarta. e
, 1e fez-me normali non garantiscene una buena "
ne considerate separaramenre da aitri fatten non-pnnn.
di dati. Di selite non e sufficie nte verificaxe separatamentc che egni Verranno qui era presentate 1e prime tre forme nermali: INF, ZNF e 3NF, propeste da
pregettazione di basi
ad esemp ie. in BCNF e in SN'F. Il precesse di ner- Cedd (1912b) cerne una sequenza per raggiungere 10 state :11 reiazieni in 3NF attraversande
schema di relaziene nella base di dati sia.
te cenfermare anche l’esistenza di pro-
rnalizzaziene tramite decempesizione deve piuttes se necessarie, gli stan' intermedi di INF e LINE 1
ne, consid ered nel lore insierne, devene possedere,
prieta aggiuntivc Che gli schemi di relazio
come:

0 di join non-additive (nonadditive


0 la proprieta di join senza perdita (lossless join) 10.3.2 Prima ferma normals
creati dope una decemposiziene non si
join), che garantisce che negli schenfi di reiazione
ziene di mple spurie discuss e nei Setteparagrafe 10.1.4;
presenti il problema di genera La priuia ferma nermale (1NF) :2 era considerata pane integrante della definiziene female
(depen dency preservation), che assi»
I la proprieta di censervaziene delle dipendenze :11\relaz:_ene nel modeHe relazmnale di base {dette anche, in queste centeste, flat: piano piat-
fen§ien a1e sia rappres entata in una quaiche relaziene risultante . . . . ’ . .
’“l‘ra che ncmi dipenrlfmza O . -57...
._ a.
came ..... a. “cater: “an“ .
_ ”.151 per;-flA“.. met-g3- 13930 d‘ "Nahum mf‘m'rnlore, r" aflnhun
“ h", .

u- wh .. .2.
li 331
Dipendenze funzionalt e normalinazione per basl di dati relaziona
330 Capltolo 10

ico; in questo case NU -


3 il dominiu di SEDI__D contiene insiemi di valori e percib e non-atom
te un unico membm del deminio dei-
DIPARTIMENTD MERD_D —-> SEDLD. perche ogni insieme é considera
(a)
i SEDLD J l’ai‘lrilnum .I2
1 NUMERO_D 1 SSN_DIFLDIF'
[ NOME_D 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
fonna nonnale per una
Paragrafe 7.1. Ci sono ire tecniche principali per raggiungere la prima
relazione di questo tipo.
lb} DIFAHTIMENTO una relazione separata SE -
i SEDLD J 1. Si rimuova l'attributo SEDI__D che viola la INF e 10 Si ponga in
NUMERCLD 1 SSN_D1R_DIP NUMERO JI di DIFARTIM ENTD. La chiave primaria
i NOME_D 1 DI_DIP insieme con la chiave primaria
mostIato in Figura
Ricarca 5 333445555 {admire Sugarlend. Houston} di questa relazione e la combinazione {NUMEHO_D, SEDE_D}, come
98T654321
{Stafford}
IP esiste una tupla distinta per ogni Jade di un dipartim ento. Cie decom-
Ammlnlsirazione 4
{Houston} 10.2. In SEDI__D
Sedecentrale 1 888665555
pone la relazione che non e in INF in due relazioni in INF.
neila :elazione DIPAHTI -
2. Si espanda ia chjave in mode tale che ci sia una tupla separata
NTU. come mostrato in Fig-era 10.80:). In
MENTO originaria per ogni sede di un DI PARTIME
(51 DIPARTlMENTO questo case chime primaria diventa la combinaz ione {NUMERO _D, SEDE_D} . Questa solu-
SEDE‘D \
NUMEHO_D SSNADIPLDIP a neiia relazione.
i NOME_D ‘ zione ha 10 svantaggio di introdun'e ridondanz
S: e note che per un
Ricerca 5 333445555 Behahe
3. Se :2 note i1 numero di massimo di valori dell‘attributo —- ad esempio,
333445555 Sugafiand
Ire sedi — si sostituisc a 1' attribute SEDI_D can tre at-
Ricerca 5
Houston dipanimento possono esistere a! pi!)
Rica-ca 5 333445555
SEDE_D 1, SEDE_02 . c SEDE_D3 . Questa seluzion e ha 10 svantaggio di in-
987654321 Stafford tributi atomici:
4 tre sedi.
hurrinis‘traziona
1 868665555 Houston trodm're valon' nulh' se la maggior pane dei dipartimenti ha meno di
Sedeaentrale
presenta ridondan-
Dellc tre soluzioni supra presentate, la prima a la migliore perché non
one d‘e—
non e In 1 NF. (b) lstanza di relazi
1NF. (a) Schema di ralazione che
Figure 10.8 Normalizzaziene In sui numero massimo di valeri. Infat-
sempio. (c) Relaz ione in 1NF con r'Idon danza. 21: ed a completamente generalc. non presentando limiii
seconda soluzione , essa verth ulterierm ente decompo sta, durante i successi-
ti, 5:: si sceglie is.
vi passi di normalizzazione, nelIa prima soluzione.
re che siana essi stessi
unettribluto comprencia La prima forma normals non permette neppure attributi multivalo
i.” Essa richiede che i1 dominio di e perché ogni tupla pub avere a! we
composti e delle loro combinazion e di quals iasi amb uto in- una tupla sia composti. Quest: reiazioni sono dette relazion i nidificat
isibilj) e che ii vaior come potrebbe apparire la relazione
solo valor-i aromici (sempfici, indiv lNF noec onse nte d1 avere un iti— inremo una relazione . In Figura 10.9 viene mostrato
l’attributo. Percie la rapprese nta un‘cntilh impiegato, e
url valore singolo del dominio di quei one di entra mbi ceme valore :11 up afl- IMP_PROG se fosse concessa 1a nidificaz ione. Ogni tupla
a una comb inazi mph: xappresema i progetti su cui
sieme di valon’, una mpla di vaiori, ette “rela zmm entro relaslem e una relazion e PROGGW UMERUJ ’. ORE) afl’inrem o di ogm‘
parole, 1a INF non perm lavora l‘impiegato e 1e ore settimanalj lavoratc dall’impiegato
su ogni progetto. Lo schema di
buto per una mpfa singaia. In allIe daila INF 50:10 1 51113011
I 5011 valori di attributi consentiti
“relazioni come attributi di mpie".
segue:
, ‘ questa relazione IMP_PFIOG pub essere rappresentato come
valori atomici (o indivisibili). 10.1. la cm chiave
DIPA RTIM ENTO mos trato in Pigu ra IMP_PRDG{SSN, NOME_I, {FHOGG(NUMERO~P, ORE”)
Si consideri lo schema di relazione SEDI_D come mesme—
di estenderlo insanendo 1‘ attribute Le parentesi graffe {} indicano che 1‘ amibuto PROGG e
multivaiorc, mentre glj atuibuti.
primal-iii é NUMEROfiD, e si supponga numero d: sech:
ogni dipartimemo possa avere un certs componenti che formant) PROEG sono posti tra parente si 0. E interessante notare Che uua re-
to in Figure 10.8(a). Si supponga che 'ati in Figu re 1.0.8. Come 51
tensione d‘esempio sono mosu Sta tentand o di consent ire e formaljzzare 1e relazioni ni-
Lo schema DIPARTIMENTO e un'es come illustrate dal- ceme ricerca sul modello relazion ale
LD non a an attribute atomice.
pub vedere, essa non e in INF perché SED i di vedere 1’ atlributo SEDI_D:
dificate, Che erano state inizialmente proibite dalla lNF.
due mod ne IMP_PROG nelle Figure 109(3) e (b),
la prima mpla in Figure 10.803}. Ci some Si noti Che SSN e la chiave pfimaria della nelazio
avere un insieme e nidificata; cioe la relazione ni-
ri atomici, ma alcune tuple possono mentre NUMEHLLP e la chiave prhnaria pansiale della relazion
0 ii dominio di SEDI_D contiene valo te dipendente da NUMEHOJJ;
_D nor: a funzionalmen
d.'1 questi valori; in quests case SEDI_

l'insiemc potema dell'lnsieme deile singe-


'3 In questo case a pessibiie considerate i] dominiu d1 SEDI_D come e delle singole sedi.
___________———- i sorrofnsfemf possibfli deil‘insiem
4 agent (abject-relational sy- le sedi; vale a dire che i1 dominie e costituitu da tutti
d Mariana! mode!) e sisremi relazianafi
1' [i modem Maximal: nidgfimta (nme namalizzare.
alumni nor:
stems) [ORDBMS), commons invece
332 Capitolo 1a Dipendenze funzionalf e normalizzazione per has! dl dati relazlonalf ‘333

(a) mamas ti fiveIlIdi “idificaz‘lone in EIaZiom‘ in INF. L’Operatorc unnest fa pane: del modeuo rclazia-
0a]: mdlficato. Lirmtare 1e rclazioni alla INF porta ai problemi associati all: dipendenze mu}—
FROG-G 111011011: 1: 311a 4NF.
SSN NOME 1
' NUMEHCLPI OFIE

{b} [Mame 10.3.3 Seconda forma normale


I saw I 0001:: INUMEFIO_PI OFIE I La se00nda forma nlormale [ZNFJ si basa sui ccncetto di dipendenza funzz‘onale complera.
1234563139 Smtohn E. g 3:: Una dlpendenza funnonale X -—> Ye una dipendenza funzionale completa se la rimozione CH
666% afiamh K. 3 40:0 quaISIaSI annbutoA daX comporta che la dipendenza non sussista pin; cioé, per 0gni attribu—
453453453 Engflshdoyceh 1 20.0
2 20.0
033445555 nfranklin'l'. 2 100
3 10.0 {a} |MP_F'fiOG
10 10.0
20 10.0 I SSN NUMERO_P I one I NOMEJ I NOME_P I SEDE_P I
9998mm Zelayaflicla J. 30 30.0
10 10.0 DFT L__I__I
907980387 Jabbar.Ahmad\.I[ 10 35.0 m |__h_j
00 50
937554321 Wallace.JemiferS. 30 200 on; I I I
20 15.0
88866555 Borg.Jamas E. 20 nun
NORMAUZZAZIONE IN 2NF
In] IMP_PFIOG1

I SSN NUMERD} I ORE I Lfirg I NOMEJ I I NUMEROJ: I NOME_P I SEDE_P I


—-—
IMP_PFI002 ”F1 |_____L__I OH I__} Dpa

una {b} IMP_DIF'


Figure 10.9 Normallzzazlone In INF dl relazionl nldificate. {a} Schema delta reIazione IMP_PROG con
“relazione nidlflcata" PHUGG. [b]: Estenslona d'asamplo della ralazlona IMP__PROG che mostra
relazioni nIdIflcata alI‘Intarno di clascuna tupla. {c} DecomposizIone dl IMF_PHOG nelle rela— NOMEJ I SEE I DATA_N I INDIHIZZO I NUMEFt0_D I NOME_D ISSN_DIR_DIPI
I I I I
zionf in 1NF IMP_PROG‘I e IMP_PH062 tramIte propagazlone deIIa chlave prImarla.

dificata deve avere valori umvoci per NUMERO_P, all‘intcmo di ogni tupla. Per normalizzare
NORMALIZZHZIONE IN GNF
questa relazionc in INF si spostano gli attributi della relazione nidificata in una nuova reIa-
zione e .si pmpaga Ia chime primaria 31 500 intemo: Ia chiave plinmia dclla nuova relazjone
I_D1 LD2
combinerfi la chiave parzialc con la chiave primaria deila relaz'mne originaria. La decomposi-
‘ produconn gll‘ scherm' IMP_PROG1 e
1 a chi ave pmnana IMP FPHOG 2 I NOMEJI Q I DATA_N I INDIFIIZZO I NUMERO-DI I NUMEROJ) I NOME-D ISSN_Drn_DI1=I
30:52:11:$09PI:§E
' .210115631
' '

Questa procadura pub esscre applicata ricorsivamente a una relaziune con nidificazione a I_ I I I I
piD livclli per eliminate la nidificazione (unnest) dalla. reIazione, penandola a un insieme di Figure 10.10 II prpcesso df normalizzazione. (an Normallzzazlone di IMP PHOG in relazioni in 2NF. (b) I'IIcirm I
relazioni in INF. Cit: 5 mile per convertixe 11:10 schema dj relazione non normaljzzato con mo}- mahzzazfone di :MP_DIP 1n ralazloni in aNF. .. ' J i” -
. 3- . a . I}, I
Dipendenze funziensii e nermaiizzaziene per has} di dati relazionali 335
334 Capitole 10

Tabeila 10.1 Semman‘e delie ferme nermeli beanie su ehiavi primarie e cerrispondents normaiizzezione.
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 Ferrna Nerrnaie Test Himedie [Nermalizzazierte]
continua a sussistere; cioe, per qualche A E X, (X — [AU ——> Y. In Figura 10.38)) {SSN , NU- Prima {1NF} La relaziene non deva aware attributi non- Fermara nueva ralazionl per egni attribute
iiERO_P} —> DRE e una dipendenza completa (non sussiste né SSN —» ORE né NUMERO_P —) atemici e'raiazieni nidiiicate. nowatemiee e relaziene nidiflenta.
DRE). La dipendenza {SSN, NUMEBO_P} ——> NOME_I é invecc parliale perché sussiste la SSN
Secenda {QNH Per ralazioni in cui ra chlava primaria centle— Dacemperre e preparare una nueva relazie—
_» NGME__I. na pit‘: attributi. nassun attribute norkchiave ne per ogni chiava parzleie cent suci attributl
11 test per la ZNF cemperta l'esame di dipcndenze fiinzienalii cui attributi di pane sinistra dsva essere funzienaimanta dlpendente da dipandenti. Asslcurarsl dl mantenere una re—
iaziene con la chiave primaria originaie 9 tot-
fanne parts della chiavc pmnarie Se la chjave primatia centicne un solo attribute a inutile ef- una parts delta chiave primeria.
ti gii attributi funzienaimente dipendenti In
fettnare il test. Uno schema di relaziene R a in 2NF 3: ogni attribute non-prime A di R dipende mode complete da essa.
funzienaimente in mode complete dalla chiave primal-la di R. La reiazione IMP_PROG di Figu- Decemperre a preparare una relaziene che
a cause di La ralaziene non nave avers un attribute
ra 10.33)) E in 1NF ma non e in 2NF. L’attribnte non—prime NOME_I viola la ZNF
Terza(3NF)
non-chime determinate funzienaimanie de eemprenda gli attributi non-chiave che da-
DFZ, come fanne glj attributi nen-primi NOME_P e SEDE_P a cause di DF3. Le dipendenze fun- un aitro andbute non—chlave (e da un insia- terminane ftmzienalrnente aitri anrlhuti non—
zionaii DF2 e DF3 rendene NOME_I. NOME_P e SEDE_P parzialmente dipendenti daiia chiave ma di athibuti non-chime). Cine non deve chiave.
esserci nessuna dipendenza transitive di un
primaria {SSN , NUMEHO_P} di IMP_PF.OG. vielande cost il test di 2NF. attribute non—chiava daiia chiave primal-Ia.
Se une schema di relazione nee e in 2NF. esse pub esscre “normalizzate in 2NF", seem-
penendele in un certe numero (ii rclazioni in ZNF, neile quaij glj attributi nen—primi seno as-
mode
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 Si pue normaijzzare IHP_DIP decempenendele nei due schemi di relazione in SNF I_D1
cempesiziene dj IMP_PROG nei tre schemi di relazjene I_Pt, I_P2 e I_Pa di Figura 1010(2).
e I_DZ mesn'eti in Figura 10.10fb}. Intuitivamente si vede che I_Di e I_Dz tappresentane
egnune dei quali e in 2NF. 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,
10.3.4 Terza ferma nermale i test usati nei vari casi e il corrispendcnte “rimedio” e nonnaiizzaziene per ottenere la forma
normale.
dipen-
La 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 candidate né un settoinsiem e di una chiave
un insieme di atn'ibuti Z, chc non e 116 mm
di it,13 per cui valgcne centemperaneamente X —-> 2 e Z —> Y. La dipendenz
a SSN —+ 10.4 Definizieni generali cii seconda e
6 n’ansitiva attraverse NUMERO_D perché sussisto-
SSN_DIR_DIF in IMP_DIP di Figura 10.31121)
no enn'ambe 1e dipendenze SSN -+ NUMEHOJJ e NUMEHBJJ -> SSN_DIFI_DIP. e NUMERO_D
nen terza forma nermale
e della chiave cii IMP_DIP. Intuitivame nte si puo
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 In generale, si vegljene pregettate schemi di rclazione in mode tale che non presentino né di-
che NUMERDJI non a una chiave cli IMP_DIP.
pendenze parziaii n6 dipendenee transitive, perché questi tipi di dipendenze prevecane 1e ane-
Stande aila definiziene originaria di Cedd une schema di relaziene R e in 3N1“ se sod- malie di aggiernamente discusae nel Settoparagrafe 10.1.2. I passi per la nermaiizzaziene in
chiave
disfa 1a 2NF 9 nessun attribute non-prime di R dipende in mode n'ansitive dalla relazioni in SNF trattati finera non censentene dipendenze parziali e n-ansit‘tve sulla chiave
che non
primal-in. Lo schema di relaziene IMP_DIP in Fignra 10.3(a) e in 2NF, dal memento primaria. Queste definizieni, pet-e, nen tengone come defle altre chiavi candidate di una rela-
cansa
esisteno dipendenze fnnzionaii parciaii da una chiave. IMP_DIP non e pen“: in 3NF a rintone, ammesse che ve ne siane. In queste Paragrafo si forniranne 1e definizieni piii generali
MERO_D.
delia dipcndenza transitiva di SSN_DIH_DIP (e anche NOME‘D) da SSN attraverso_NU
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 dipenden-
an at-
ze funzienaii. Come definiaiene generaie tii attribute prime, verra considerate prime
ci interessiame soie dei- tribute chc faccia parte di um: quaisiasi chiave candidate. Le dipendenze funzionali parziaii
Questa e la dcfiniziene generate di dipcndenza transitive. Date che in qnesm paragmfo
e tetaJi nonché 1e dipendenze transitive satanno era relative a tune is ckirmi candidate di una
‘3
easel-c (semin-
le chiavi primarie, concediame le dipendenze transitive in cut X e la chjaw. primaria. ma 2 put:
sieme di) una chinve candidata. ielazione.
Dipendenze funzlenali e nermalizzazlene per basi d1 dati relaztenali 339
338 Capitele 10

'a relaziene LOTTI1 B. Sia LOTTI1A sia LOTTI1


E! L’area di un lotto che determina la centea, come specificate da DFS, pub essere rapprc—
she proveca la dipcndenza transitive} in un‘alu iene gener al: di 3NF: sentata da 16 tuple in una relazione separate R(AREA, NOMEfiONTEA), dal memento che ci so-
a1 riguardo della definiz
50:10 in 3NF. Ci sono due aspetti degei di nota no solo 16 pessibfli valeri per AREA. Questa rappresentaziene riduce la ridondanza insita nel
ivamcnte dipendcnte da ognuna delle chiavi npctere la stessa infermazionc in rejgliaia di tuplc di LOTTI 1A. La BCNF a una fame nar~
0 LOTTI‘I viola la SNF perché PHEZZO e transit
candidate di LOTTI1 tramite l'attrib ute non-p rime AREA; male pit‘t restrirtiva, chc non permette LOTTI1A c fornisce indicazioni per decomperla.
defini ziene pue csscre applic ata direrta mente per verificare se uno schema di rela- La definizionc female di BCNF differisce sole leggetrnente dalla definiziene di SNF. Une
0 questa
é neces sario passar c pfima attraverso la 2NF. Se si appljca la defini- schema di relaziene R e in BCNF se, ogni veita che sussiste in R una dipendenza funzionale
ziene e in BNF; mm
enze da DFl a DF4. si trova che DF3 e DF4 non-bangle X —> A. X a una superchiave di R. La seia differenza tra 1e defiuizieni cli BCNF e di
aiene di 3NF septa vista 21 LOTTI con 1e dipcnd
la 3N'F. Sarebb e percie pessib ile decemperre direttamente LOTTI in 3N'F e the la cendiziene (b) della 3NF, che censcnte adA di essere prune, é assente
dalla BCNF.
vielano entrambe
dipend enze transit ive e parziali che vieiano la BNF . Nel nestro esempio DFS viola la BCNF in LOTTIIA, perché AREA non é una superchiavc
LOTTI 1A, LOTTI1 B e LOTTIZ. Quindi le
possene cssere rimesse in qualsiasi ordine. 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 de-
compozre LOTTI1A nelle due relazieni in BCNF LOTTI1AX e LOTTI1AY cli Figura 1012(3).
di 3NF Questa decomposiziene perde la dipendenza funzienaje DH perchéi suei attributi non cecsi-
10.4.3 Interpretaziene della definizione generale stone pie nella stessa relatione.
In pratica. la maggier patte degli schcmi di relaziene in 3NF 5 anche in BCNF. Sole se in
generale di 3NF se sussiste in R una dipcn— use schema (ii relaziene R sussiste X —> A. con X che non é superchiave e A attribute prime,
Une schema di relazionc R viola la defitfiziene
viola enrram be 1e cendiz ioni (a) e 03) di 3NF. La vielazionc cii R sara in 3N? ma non in BCNF. Le schema di relaziene R oi Figura 10.12(b) illustra
i1 case
denza funzienale X —> A che
La violaz iene di (3) cemporta che X non sia un generale di una relazione di questo tipe. Idealmcnte la progcttazione di una base di daft
rela—
(b) cemperta che A sia un attribute non-prime.
chiave di R; pereie X potrcb be essere non-prime e petrebbe essere un zmnale dovrebbe sforzarsi di :aggiungcre la BCNF e la 3NF per egnj schema di relazionc.
11
sevrainsieme di qualche
e non-p rime 51 ha tipicamente una dipcndenza
settoinsieme preprio di una chiave di R. Se X
mantr a seX é un settoin sieme prepri e di una chiave di R si ha una
transitiva the viola 1a 3NF.
1a 2NF). E percio pessibile enunciare una de-
dipendenza parziale che viola la 3NF (e anche
ative di 3NF come segue: une schem a di relaziene R e in 3NF se {a} terms
finlzlone generale altern l #LOTTO | AHEAJ
le cendiz ioni seguen ti: I #ID_PROPRIETA NOME_COI\FI'EA
eg-ni attribute non-prime di R soddisfa entrambe
o e funzienalmente dipendente in mode compl
ete da 0q chiave di R; ml l l l
ente in mode transi tive da nessun a chiave :11 R.
0 non a dipend

10.5 Ferma normale di Boyce e Cedd JVLNormallzzazlena In BCNF

lice
F} a state preposta come una ferma pin semp
La ferma nermale di Boyce e Cedd {BCN LOTI'I1AX L01TI1AY
relazio ne in BCNF e anche in
di 3N'F, ma si e rivelata pit} restrittiva della
SN'F; infatti . ogni
in BCNF . Si puo inteitivamente rav- [— #lD_PFtOPFlIEI'A [ AREA I #LOTI’OJ l—fl | NOME_OONTEA j
ne in 3NF mm e neces sariam eme
SNF, mentre una relazio
della BNF temande allo schema di reiazio-
visare la necessita di una for-ma nermale pie forte
o dipendenze funzionali, da DFI a DF4. Si sup-
ue LOTTI di Figure 10.1101). con la sue quattr :
ne, ma che i lotti vengane solo da due contee {D} a
penga di avere migliaia di [otti nella relazio
Dekalb e Fulton. Si supponga ineltre che
1e dimensieni pessi bili dei letfi malls
c 3,0 acri, mantre 1e dimensieni pessibili dei
contes t di
let-
B
Dekalb siane ristrette a 0.5, 0.6, 0.7. 0.8. 0.9, situaz ione si avra la DF‘I
..., 1,9 e 2,0 acri. In questa
ti nella centea di Fulton si limitino a 1,1. 1.2. Se lasi aggiun ge alle aloe d1» DF2 k—J
AREA -) NOME _CONT EA.
dipendenza funzienale aggiunfiva FDS: In BCNF con la dipendenza DF2 eha
e in SN'F perché NOME_CONTEA e on atttibu- Flgura 10.12 Fermalnermale dl Boyce 3 Code. {a} Nomallzzaztone
pendenze, lo schema di relaziene LOTTI1A riman vlene parse" nella dacempesiztone. (b) Una relaz1ene Fl in SNF ma non in BCNF.
te prime. -
340 Capitele 10 Dipendenze funzlenall e nermalizzaziene per basl dl datl relazionali 341

INSEGNA Semmarie
lSTUDENTE I INSEGNAMENTOI DOCENTE J
Baal d1 dafl Mark
Nam-an In queste capiteie abbiame studiate su base intuitiva melte insidie presenti nella pregettazie-
Smllh Baa! dl dafl Navathe ne di una base di dati relazienaie, abbiame individuate informalmente alcune delle misure usa-
Smllh Siam eperatlvl Arms: te per indicare se une schema di relaziene e "beam" 0 “cattive”, e fornite Iinee guide infer-
Smith Inlemalieateorlea Smuh'lan mali per una buena pregattazione. Abbiame quindi presentate alcuni cencetti fermali che ci
Mark
censentene di effcttuare la pregettaziene relazienale in mode top-down, analizzande 1e rela-
Wallace Baal dl da‘fl
zieni una ad una. Si :2 definite queste precedimente di pregettaziene per analisi e decomposi-
Ahamad
Wallace Sisteml eperafrvl
ziene intreducende i1 precesse di normalizzaziene. Gli argementi studiati in questo capitele
Wang Baal dl dati Untiedneld saranne ripresi nel pressime capitele, dove esamjnereme ceneetfi pie avanzati di teefia di pro-
Zalaya Basi didatl Navathe gettaziene relazienale.
Abbiame esaminato i preblemi delle anemalie di aggiomamento, Che si presentano quan-
Figure 10.13 Una relaziene INSEGNA che e in 3NF ma non in BONE
de si verificane ridendanze nelle relazieni. Misure infer-malt di bueni schemi di relaziene pre-
vedene una semantica degii attributi semplice e chiara e pechj valeri nuIli nelle estensienj del-
le relazieni. Una buena decempesiziene. ineltrc. Cleve evitare i1 prehlema della generaziene di
ruple spurie come risultato dell’operaziene di join.
raggiungimente dello state di nermalizzaziene a livelle dclla sela INF 0 ENE non e conside- Abbiame definite iI cencctte di dipendcnza funzienaie e discusse alcune delIe sue
rate sufficieme. dal memento che esse sene state stericamemc sviluppate come punti dj pa:- preprietfi. Le dipendenzc funzionali cestituiscene la sergente fendamentalc di informaziene
tenza verse la 3NF 8 1a BCNF. In Figure 10.13 E mestrata una relaziene INSEGNA cen 1e se- semantica sugli attributi di une schema di relaziene. Abbiame mostrate come da un insieme
guenti dipendenze: date d.i dipendenze funzienafi pessane essere inferite altre dipendcnze usando un insieme
DFI: {STUDENTE, INSEGNAMENTO} —) DOCENTE 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.
DF2115 DOGENTE —> INSEGNAMENTO Si :3 anche mestrate come vertficare 5e due insiemj di dipendenze funzienali sene equiva-
Si neti che {STUDENTE, INSEGNAMENTO} e una chiave candidata per questa relaziene e lenti.
the le dipendenze viste seguene i1 modelle illustrate in Figure 10.12(b). Part-ante questa rela— Abbiame quindi descritte i1 precesse di nemafizzaziene, che permette di ettenere pre-
ziene e in 3NF ma non in BCNF. La decomposiziene d1 queste schema di relazione in due getti di buena qualila csaminande relaziem' alla ricerca di dipendenze funzienali indesidcra—
schemi distinti non e immediata, dal memento che esso pub essere deeempeste in una delle te. Estate femite un trattamente di nonnalizzaziene successiva basato su una chiave prima-
tre coppie pessibili: ria predefinita in ogni relaziene, quindi si e riiassate queste requisite e some state femite de-
finizieni piil generali di secenda fez-ma normals (2NF) 1: terza ferma normal: (3NF) Che pren-
1. {STUDENTE, DDCENTE} E {STUDENTE, INSEGNAMENTO};
dene in censideraziene tutte 1e chiavi candidate di una relaziene. Sene stati presentati pei de-
2. {INSEGNAMENTO, DOGENTE} e {INSEGNAMENTO, STUDENTE};
gli esempi che permettene di illustrare come. usande 1a definiziene generals di 3NF, una da-
3. {DOGENTE, INSEGNAMENTO} e {DOCENTE, STUDENTE}.
ta relaziene posse essere analizzata e decempesta per predurre alla fine un insierne di rela~
Tulle e tre 1e decempesizieei ”perdene“ la dipendenza funzienale DFl. La decempesizie— zieni in BNF.
ne preferibile tra 1e tre supra vista e la terza, perché non genererh tuple spurie dope un join. Infine abbiamo illustrate la fem nemale di Boyce e Cedd (BCN'F) e si 6 Vista come es-
Un test per determinare se una decempesiziene é nen~additiva (senza perdita) sara esaminate sa sia una ferma pill forte di 3MP. Abbiame anche mesUate come debba essere effetruata 1a
ncl Setteparagrafe 11.1.3 Bells. preprieté. LI]. In generale una reiaziene non in BCNF de- decomposiziene di una relaziene nen-BCNF censiderande il requisite di decempesiziene
vrebbe essere decempesta senza perdita. rimmciande eventnahnente a preservare tutte 1e di- non-additive.
pendenze funzienali nefle relazieni decempeste, come accade in queste csempie. L'Algerit- 11 Capitele 11 presentera algeritmi di sintesi e di decempesiziene per la pregettaziene di
me 11.3 fa esattamente cie. e amb‘ne petute essere usate sopra per fernire la stessa decom- basi di dati relazienali basata su dipendenze funzienali In relazione alla decempesiziene esa—
pesiziene per INSEBNA. 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
.
W
..-;I .' ' 'é‘l' W »__.__I w
IN..._n‘-._,_'A t.- #:k 9M._.A'ui'
Dipendenze funzionall e normalizzazione per basi di datl relazionali 343
342 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
assumono valori univoci per ogni students.
),
misura informale di qualita di uno 1). Ogni dipartimemo e descriito danome (NOME_D). codice dipartimento (CDDICEfiD
10.1. Si discuta sulla semantica degli attributi vista come -
numero di ufficio (UFFICD_D), telefono di ufficio (TELEFONOHD) e college (COLLE
schema di relazion e.
lazione e modifica. Perché sono con— GE_D). Sia nome sia codice assumono valori univoci per ognj dipartimento.
10.2. Si esaminino le anomalie di inserimento. cancel un codice
la rispost a con esempi . c. Ogni insegnamento he no nome (NOME_I), una descrizione (DESC_I).
siderate pericolose? Si illustri (LIVELLO) e on
in una relazione? [CODICE_I), un numero di ore per semestEe (CREDITI), un livello
10.3. Perché non E: consigliabile avere molti valori nulli dipartimento Che lo offre (DIP_I). Ii codice dell'insegnamento é unjvoeo per ogni
ino 1e relative modalita di preven-
10.4. Si tratti il problema delle ruple spurie e si esamin insegnamento.
ZiCIIlE. (ANNO).
tazione di schemi di relazione di— d. Ogni modulo he no assistant: (NOMEJ), un semestre (SEMESTFIE). un anno
10.5. Si enuncino le linee guide. informali per la proget un insegnamento (INSEGNAMENTO_MGD} e un codiee di modulo (GODIGEJ-IOD).
Ii
Si illusu'i come una violazi one d1 queste linee guida pos-
scusse nel corso del capitolo.
codice do} modulo permette cli distinguere moduli diversi dello stesso insegna-
sa essere dannosa.
1e dipendenze funzionali esistenti fra mento. tenuti durante lo stesso semestrefanno; i suoi valori sono 1, 2., 3. ..., fino a1
10.6. Cos'e una dipendenza funzionale? Chi specifica
numero totale di moduli tenuti durante ogni semestre.
gli attributi di uno schema di reiazione?
ale oa uno specifico stato di rela- e. Una regisuazione di vote fa riferimento a uno studente {SSN}, a un modulo speci—
10.7. Perché non si pub dedurre una dipendenza funzion
fico e a un voto (VOTO).
zione? di da-
ong — le tre regole di inferen— Si progetti uno schema di base di daft relazionale per quest” appiicazione di basi
10.8. Perché sono importami 1e regole di inferenza di Armstr funzionali che devono sussistere fra
ti. Prima di tuno si iilustrino tune 1e dipendenze
za dalla R11 alla R13? quindi schemi di relazfione per la base di dati. ciascuno dei
regole di inferenza di Armstrong? gli attributi. Si progettino
10.9. Cosa si intends per completezza e correttezza deile Si
di dipendenze fuozionali? quali sis. in 3NF 0 in BCNF. Si specifichino gli attributi chiave di ogni relazione.
. 10.10. Cosa si intcnoe per chiusura di un insieme requisite non specificato , e si facciano assunzioni appropriate per
. 10.11. Quando si dice the due insiemi di dipende nze funzionali sono equivalenti? Come pos- prenda nota di ogni
Iendere completo l‘insieme di specifiche.
siarno determinare la loro equivalenza'? e
ali‘? Per ogni insieme éi dipenden- 10.18. Si dimosui 1a correttezza o la falsita dclle seguenti regole di inferenza per dipendenz
10.12. Cos’é un insieme minimale cli dipendenze funzion svolta o namite un'argome ntazione specifi-
funzionali. Una dirnosttazione pub essere
no esiste un insieme minimale equivalente'? esse-
nonnafizzata? Come si sono svilup- ca 0 tramite l’uso delle regole di inferenza da R11 a R13. Una confutazione dove
10.13. A cosa fa riferimento 1a locuzione refazione non relazione ohe soddisfi 1e condizion i e 1e dipenden-
re svolta presentatido un‘istanza di
pate storicamente It: forms normali'?
le considerando solo le chiavi pri— ze funzionali a primo membro deila regola di inferenza ma non soddisfi 1e clipenden-
10.14. Si definiscano prima, seeonda e terza forma norma
marie. Come differiscono 1e definizioni genera li di ZN'F e 3N'F. che considerano tutte ze a secondo membro.
e. da quelle che conside rano solo le ohiavi primarie? {W—i Y.X—> Z} I: {WX—» Y}.

We‘ve-9999'?
1e chiavi di una relazion
sono evitate quando una relazione e in SNF? {X4 Y] eYQZI= {X-—>Z].
10.15. Quali dipendenze indesiderabili
normal e di Boyce e Codd. In cosa differisce dalla SNF? Perehé {X—> Y,X—> W.WY—> Z} I: {X—>Z}.
10.16. Si definisc a la forma
{XY—rZ,Y—-> W} |= {KW—>2}.
e considerata one format pifi forte di SNF?
{X—bZ,Y-—> Z} I: {X—)Y}.
{Xe Y.XY—oZ} I: {X——) Z}.
{X—> Y.Z—-> W} |= {XZ—> YW}.
Esercizi {XY—+Z,Z—>X} I: {2—) Y}.
{X—a Y, Y—> Z} I: {X—a YZ}.
una base :11 dati miiversita usata per
10.17. Si supponga di disporre dei seguenfi requisiti per j. {KY-92,26 W} I: {X—-> W}.
-> C, AC —>
toner traccia delle trascrizioni dei libretti univers itaii degli studenti. 10.19. Si considerino i due insiemi seguenti di dipendenze fimzionali: F = {A
:18] moms di ogni student e (NOME__STUD). numero dello stu~ D, E —> AD, E —r H} e G = {A —> CD, E —»-AH}. Si conu-olli se sono equivalenfi.
a. L’universita tiene uaccia
sociale (SSH), indjrizzo currents 10.20. Si consideri lo schema di relazione IMP_DIP di Figura 10.3(a) e il seguente insieme G
dente (numfisruo). nonzero di previdenza
D), indirizzo penna- ,
(IND_GOHR#STUD) e telefon o correm e (TELEFO ND_CO RFI_STU di dipendenze funzionali su IMP_|JIP: G = {881% —> [NOME_I, DATA_N, INDIRI-ZZO
nente {INDflPERhLSTUD} e telefono pennaoente (TELEF ON0_PE HM_STUD), data di NUMEFILLD}. NUMEF10_D —» {NOME_D, SSN_DIFI_DIP}}. Si 62116013110 Is chiusme {SSNP
(ANNO_GORSO) (primo. secondo, ..., e {NiJhIERtLD}+ :ispetto a G.
nascita (WHEN). sesso (SESSO). anno di corso
(GODIC EnnIPfiSPEtLPRINC),
laureate), clipartimento di specializzazione principale
.._...,

Capitolo 11

Algoritmi per la progettazione


di basi di dati relazionali

Come abbiamo vista nel Capitolo 10, esistono fondamentalmente due approcci per la proget-
tazione di basi di dati relazionaii. I! prime consists nella progettazione top-down. una leani-
ca ampiamente usata per le applicazioni commercialj di basi di dati che prevede 1a progetta-
zione 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 studia-
te nel Capitolo 9. Seguendo tale approccio ogni relazione viene analizzata sulia base delle di-
pendenze funzionali e dclle chiavi primarie assegnate. applicando Ia prucedura di normaliz-
zazione descritta nel Paragrafo 10.3 per rimuovere dipendenze pmiali e transitive, se ne ri-
mangono. L‘analisi di dipendenze indcsiderate pub anche essere svelta durante la progetta-
zione 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. Descri-
veremo anche in maggior dettaglio 1e due proprieth desiderate di join non-additive (senza per-
dita) e di conservazione delle dipendenze. GE algoritmi di normalizzazione comincianu tipi«
cmente sintetizzando uno schema di relazione gigante, detto relazione universale, che com-
prende tutti gli attributi della base di dati. Si eseguono quindi decomposiziani ripetute, ba-
sandosi 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-
Algoritmi per la progettaziohe di basi d1 dati relazionalf 349
34B Capitolo 11


sultato ' ' - -
zare schemi in 3NF e in BCNF. Co— uno Schema di reIazio-
denze funzionali, Che possum essere usati per sintetiz ne PMiZEfleflgnieclinfilEum 106)- IMP'SEDI rapprescma percit.
proprie tx‘a deside rabili delle decomposizioni — vale a dire 1a sede di um def r0 3_ 10, a eausa della eua semanfica contorta in (mi SEDE P fornisce
mincercmo col descrivere 1e due
proprieté di join senza perdita (o non-ad—
1a proprieta di conservazione dclle dipendenzc e la con PROGETTOINONf E 3mm” quah 18mm “n mpicEam' rum“ “mite 3010 di—IMP SEDI
ditive). entrambe usate dagli algoritm i d1 progett azione per ottenere decomposizioni deside-
pure origin: a m 16 s- ’. ”SEER‘ J—P; §EPE_P, 11111.13) di Figura 10.2 — che e in BCNT‘ & d1
siano per sé insufiicienrf a garantire una
a‘i 1 he qI-lch blsogno lill 31111 criteri CheI insieme alle condiziom' di
rabili. Mostreremo anche come la forme- normali 3NF 0 BCNF evgfiuopmle.
di dati relazio nali: perpmcr essere considerate frutto di grafi seguenti
buona progettazione di schem i di basi
venanno esa111mate 121:0 3:“? d1_catu1ra ‘Iuam d1 questo tipo. Nei tre Suttopara
o neli‘insieme soddisfare quest: due ulteriori CDnSiderata nel s _ . 11 Im aggluntwe che devono sussistere su una decomposizionc D
buona progettazione, infatti. le relazioni devon 110 mswme.
proprieth.

11.1.2 Decomposizione e conservazione delle dipendenze


11.1 Algoritmi per la progettazione di schemi
infightiégljlle :lhe egei dipendcnza funzionale X —> Y specificata in F apparisse dircttamente
di basi di dati relazionaii 13 dipennE: :1: darelazmne R, della decomposizione D, oppure potesse esscre inferita dal-
Sewazmne dd? den :11 qualehe RI. Infonnalmente, quella enunciata é Ia candizione :11" con-
Frap msema e IPBMEHZBI 31 des1dera conservare 1e dipendenzc perché ogni dipendenza in
nza delle
11.1.1 Decomposizione delle relazioni e insufficie Singog; lielfli::ev;nfjtffias:l: base d1dafi. Se una delle dipendenze non é rappresentata in una
forme normali ,’ . .
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
-
nali qui presentati prendono inizio da un
Gli algoritmi di progettazione di basi di dati relazio minimal-i 311:“ 1 venficare che mi nsultato defl’operazione di join sussistano 1e dipendenze
ne univer sale R = {A;, A2. .... A,,} contenente tutti gii attributi della Non é n arareente ques'ta é una procedura ine‘ficiente e poco pratica.
unico schema di relazio la quale stabilisce
zione di relazione universale, 1e malionjegzflsamggccohe 1c QIPendenzgspecificate in F si presentino esattamente nelle
base di dati. Si fare implicitamente l’assun e- sings
Che ogni name :13 atuto 5111 unico. L‘m ' sieme F di dipendenze funzionali Che deve sussist stone suns Stigma mhfioni mp051z1onemp . D. sufficient:. . che l’uni
. one d 6 He d1pendenze

dati ed é fornito agli algoritm i che sussi-‘
tisti della base di
re sugli attributi :11 R E specificato dai proget sfi concem, 5121110 eqmvalenn a F. S1 daré ora definizione formalc di que—
dcsi sulle dipend enze funzio nali, gli algorit mi decompongono 10 sche-
di progettazione. Basan D to
i di relazione D = {R,. R1, ..., Rm} che di- . . . . .
ma d1 relazione universale R in un insieme di schem R a un ms1en13 d1 dlgendcnze F s11 R, la prolezione di F 511 R denotata con 11: d
base di dati relazio nale; D E detto deeomposizione di R. :1]: y, é um sottomswme di R}- E l‘insieme di dipendenze X —) Y di 1'; tali che gli tm'lwgaldio};
ventera lo schema defla
te presen te in R 5111 anche presents in almeno mm
E necessario assicurarsi che ogni attribu szano tutti
decomposizj onecontenuti
D 911mm: in 1H,. den
Percib . la pmieziome d'I F 511 1:13:11' schema d1' relazione
a R.
“'1della
R, nella decom posizio ne. cosi ch 1: non ci siana amibuti “persi”: formal- l _ . . . . ‘ e dlpendenze funzionali in F“,ch1usurad1
schema di relazione ' ' F,tahch
' r tu ' '
mente 51 ha ,,. 9:128?m a]; gas-{eslmstra e chlparte destra siano in R3. 51 dirh che una demmptusiztizonétjl!)l
U 11,. = R . su 03m ”. RI.
2....,
in D n,e equivaleme
1 conserve a F; edi
do: enden ze nspetto
' a F 5:! ‘ meme ' delle prmezlom
‘ ‘ ' :11' F

-
f-l

e degli attributi di una decomposi-


Questa condizione é detta condizione di conservazion
((75111[F}) U U (fiRm(F')))+ = F'-
none.
ne R; nella decomposizione D sia in
Un alto obiettivo E quello che ogni singola relaziu ' ' .
11011 E perb sufficie nte a garantire :11 per sé una buona Seu
la decontififigposémme non coneerva Ie dlpendenze, qualche dipendenza viene persa nel-
BCNF (o in 3N'F). Questa condizione
rare la decomposizione nel complesso, ol- co-
if time flew} p1111111, per Yerificm 5" ”113 dipcfldenza persa sussiste
progettazione di basi di dati. Occone infatti conside
tre a esaminarc 1e singole relazioni. Per illustra re quesm punts, si considen' la relazione 3 otlene1I-coccon‘e
munqma 11:13 11:15 e1: are 1.1 JOIN ch due 0 p111 relazioni presenti nella decamposizione fins
3NF sin in BCN'F. In ream ogni
IMP_SEDI (ND'ME_1 , SEDE_P] (11 Figure 10.5, che e sis. in tutu gli‘ Eta-lbwdeldiJON Sims”
partesuss1ste destra ’della
di. panenza
» lae dlpende
schema di relazione con due sofi attribut i é automa ticmnen te in BCN'F.1 Anche sc IMP_SEDI diPCnd
. enza Pcrsa 1513:3?
2.10m: poco pratica. “1“ gills ' Care“ se
veEssa n e1 nsultato _ Un’op-
quando viene unite tramite join can
E in BCNF, essa dz comunque origine a mple spurie
e in BCNF (si veda ‘11 11‘-
111119110131 (3511, 11111115903, one, NOME_P, SEDEflP}, che. non
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
: ... .0 I. 1--. 1 _- ' s a : manna-lion;
. u .
......_... ;_,_ ..—.. -.._....a Eva‘s—'3' type—a

Algerltmi per la pregattazlene di basi dl dafi relazienali 351

350 Capitolo 11

Flguta 11.1.3 Decomposizione e join senza perdita (non-additivi)


erva le dipendenze E: ptescntate m
10 di decem esiziene che non cens TI1A vmn e defe gilpeizac:
le D‘FZ-é Pars e quaude LOT
10.1 1;::1“Sui 1a dipendeglza funziena ce. censervaltie E;1) pi;6 dc“ Un’altra preprieté che una decempesiziene D deve seddisfare E quella di join senza perdita e
mpesinen: :11 Eggs: 10.11, mve join non-additive. ch: assicura che non vengane generate tuple spurie quando alie relazieni
{LOTTI1AX. LOTTI1AY}. Le dece 3, dPe nde ntcm ente da qu e “Len-r0
l‘esempie in Figura 10.1
2,2 Analogamente. per ENTE, INSEG ‘ ‘, della decempesiziene viene appficata un‘epexaziene di JOIN NATURALE. 11 preblcma é gia
ta per la relaziene INSEGNMSWD state illustrate nel Setteparagrafe 10.1.4 cen l‘esempie dell: Figure 10.5 I: 10.6. Date Che si
e'mpesizieni mestrate venga scel ven‘gene pars e. SI enun c1a
ndenze eriginafiamente presenu
IEDGENTEm mm o entrambe le dipe a dam e la dimestrazwne. ttatta della prepricté di una dccemposiziene di schemi di relaziene, la eeudiziene di assenza
a ta1e prep rieté senz
qui una preposiziene relativa di tuple spun'e devc sussistere per ogm‘ stare valido di relazione — cieé par egui state di rela-
che. conserve 1e dipen- ziene Che soddisfa le dipendenze funzienah' in F. La preprieta di join senza perdita é percie
teevare 1111a deeeutpesizienc D
Prepeaiziene 1: E sempre pessibile . sempre definite. rispette a un insieme specifice F d1 dipendenze. Fonnalmente, una decompo—
i rel-amen: R, (11 D 51a m 3N'F
denze rispette a F a tale che egn siziene D = {R1, R2. .... Rm} di R seddisfa 1a preprieté di join senza perdita (non-additive)
a arfire da un insieme d1 dipcndcnze
funzienali F, una decompo- rispette all‘insieme di dipcndenze F :11 R se, per ogni state di relaziene :- di R ehe seddisfa F,
' '
iene universale R, the cens erva 16 aipentcileflzede tale sussiste quante segue, dove * e il JOIN NATURALE di tutte la relazieni in D:
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 e pass e dell aigem merl‘filk.1 cefsts :0 2 *(nfil(r), ..., aha» = r
a perdita. I] prun
denze, mm 13 preprieth di jein senz rc usat o gen mo . .
di F; per queste passe pue esse
u-evaxe una cepertura minimale G La parela perdita in senza pera‘fra si rifen'sce a perdita di infannaziene, non a perdita di
ervazlene da11e dipendenze. tuple. Sc una decomposizione nen soddisfa 1a proprieta di join senza perdita. é pessibile che
d1 sintesl relazlonala con cens
ALGORITHO 11.1 Algerltme
ze funzienali F sugii ambuu ch R. si presentine tuple spurie aggiuntive, dope che sene state eseguite 1e eperazioni di PROIE-
a un insieme d1 dipcnden
Inpnt- Una relnziene universale R ZIONE (1:) e di JOIN NATURALE (*); quests tuple aggiuntive rappresentano un‘inferma—
geritme
male 6 per F (si usi 1‘A1 ziene errata. Si preferisce qui 1a lecuziene join non-additive perché essa deserive pih fade}—
1 Si trevi una cepertura mini ‘
1e.2 ' LOnale eresente
mente la situaziene; 56 per una decempesiziene sussiste questa proprieta P.- sicure Che, depe
X di una dipendeaza funZ che sene state eseguite le operazieni di PROIEZIONE e JOJN NATURALE. non verranno ag-
2 Per Lani parts sinistra in D can attrz but1 {X U
di ralazien e
' in G, 51 crei une schema --., X —? AK SOHO
2.;
giunte a1 fisultate mple spurie, che pertane infermaziene sbagfiata.
dove X —’ A1, X 9.14
{A1} U {A2} "' U {Aid}:
a (X é la Owiamente 1a decempesiziene di IMP_PROG[SSN , NUMERO_P , ORE, NOME_I , NOHE__P,
can X come parts alnlstr
la sole dipendenze in G . SEDE_P). di Figura 10.3, in IMP_SEDI (NOME_I , SEDE_P) e IMP_PHOG1 (SSN , NUMEHELP ,
ziene);
CHIAVE d1 quests rela nen sene sta t; ORE, NOME__P, SEDE_P)l presents in Figura 10.5, mm seddisfa la proprieta di jein senza per-
ibuti rimaaenti (aha
3 Si pengane tutti gli attr e per dita, come illustrate in Figura 10.6. Per verifictu'e sc una data deeempesiziene D seddisfa la
ti in ness una rala zien a) in un solo schema d1 relazten
I pes deg lz attr ibu tt. proprieta dj jein senza perdita. rispette a un insicme F di dipendenze funzienali, si pub usare
di censervaziene
garantire 1a proprieta
'l’Algeritme 11.2.
SIN-1F _(nen 5e 11:
iene create dall’Algexiune 11.1 e in
Pro osizlone 1A: Ogni schema di relaz iene utiliz za il fatte che G a un mswme Imm- ALGORiTMO 11.2 Verlflca defla preprieté dl join senza perdita (non-additive).
dimestraz
da :11 una dimestraziene fol-111319.;3 la
male :11 dipendeflfifll Input: Una relaziene universal: R, una decemposiziene D = {Rh R2, ..., Rm} di R. 6 un insie-
egnédépenaig: me F di dipendenze funzienali.
1e dipendeuee presenti in G, perché
E evvie ch: 1‘ algoritme censerva tutte smene D. Dal memento che _
equture 1. SJ. cestruisea una matriee iniziale 3 con una riga 1’ per egni
i Rf della decempe
za compare in una delle relazien decempesmene epg di relaziene R,- di 0, a una celenna j per egni attribute A, :11. R.
sent) direttamcnte censetvate eella
lentc a F. tutte 1e dipendenze in F ienj nsul tanu , ass1 euran de eesi la; prilpr'te “e 2. Si penga 3(1, 3'] '.= 3“ per egni elemento della matriee.
nelle relaz
sane derivabifi da quell: preseuti alga l-mu n ch strum ‘re autumn. (* egni Hu 9 un simbele distinte associate ati indici (i. J} *J
L’Algoritme 10.1 P: eette
censenraziene dell: dipendenze. mpe smo nc é Stare -nam e (cestrmte) a p 3. Per egni riga .t' eha rappresenta 10 schema di relaziene H,
R, nella dece
perché egni schema di relazione suus tra X. {per egni celenna j che rappresanta l'attribute A,
ienali in G con la stessa pane
dall‘insieme di dipcndenzc fimz {se (la relaziene R, centiene l'attribute #1,} allera si
ponga 5(1. 3') == mm};
____________——- (* egni AI é un simbele distinte associate all'indiee (J) *)
Maia: (1983) e Uliman {1982).
! Per nna dimesuaziene si weds.
356 Caplioio 11 Algon'tmi per la progettazlone d1 basi di datl reiazionali 357

..., X _, AK sono 1e sole dipendanze di G eon X come parte E importante sottofineare che la teorla delle decomposiziom' con join senza perclita si ba-
sinistra (X e la CHIAVE di questa relazione). sa sull assumone chc mm mm- consentiri valor-i nulli' per glz' attriburi dijoin. ll pmssimo Pa-
3 Se nessuno degli schemi di ralazinne in D contiane una chiave ragrafo atfronta alcum probiemi che nelle decomposizioni relazionali possono essere causati
oi H, allora si costruisoa un altro schema di relazione in D dill valon nulli.
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 11.1.4 Problemi con valori nulli e tuple dangling "
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 Quando si progetta uno schema di base di dati relazionale bisogna valutare attentamente i pro-
delle dipenclenze.‘I blemi associati alla prescnza di valori nulli. A tutt’oggi non é stata presentata nessuna teoria
Il passo 3 dell‘Algoritmo 11.4 prevede l’individuazione di una chiave K di R. Per indivi- d1 progettazionc relazionale picnamente soddisfacente che comprendai valori nulli. Un pro~
duare una chiavc K di R sulla base dell’insicme date F di dipendenze funzjonali pub essere blema si ven’fica quando alcune tuple presentano valori nulli per atu-ibuti che saranno usati per
usato l‘Algoritmo 11.43. Si comincia ponendo K ugualc a tutti gli attributi di R; ouindi si ri- efieltuare il JOIN di singole reiazioni della decomposizione. Per illustrate cib si consideri la
muove un attribute alla volta e si verifioa se i restanti atu'ibuti formano ancora una superchla- base di dati mostrata in Figura 112(3), in cui sono presenti le due rclazioni IMPIEGATO e DI -
vc. Si noti Che l‘insieme di dipendenze funzionali usato per determinate una chiave nell'Al— PARTIMENTO. Le ultimo due tuple impiegato — Berger 6 Benitez — rappresemano impiegati ap-
goritmo 11.4a pub CSSCI‘C F o G, dal momenta che essi sono equivalenti. Si noti. inoltre, che pena assunti Che non sono stati ancora assegnati a un dipaztimento (si dia per scontato che cib
1’ Algoritmo 11.4a determina solo ma chime fra 1e possibifi chiavi candidate di R; la chiave non violi alcun vincolo di integrith). Si supponga ora di valor recuperare un elenco di valori
fomita dipende dall’ordine con cui gli attributi sono rimossi da R 31 passe 2. 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 ri-
ALGORITMO 11.43 Rioerca dl una chiave K per lo schema di relazione R sulla base di un insleme F cll sultatu. Con l’operazione di JOIN ESTERNO, studiata nel Capitolo T. si pub affrontare que-
oipendanze funzz'onali. sto ptoblema. Si rioordi the, 5: Si considera il JOIN ESTERNO SINISTRO di IMFIEGATD con
1. Si ponga K := H. DIPAfiTIMENTO. le tuple di IMPIEBATO che presentano un valore nullo per l‘attributo di join
2. Per- ogni attribute A in K appanranno comunque nel risultato. cong-iunte (joined) con una tupla “immaginaria” di
{51 calculi (K - A)‘ r'ispetto a F; DI PAHTIMENTD che presenta valon' nulli per tutti i suoi attributi. La Figure. 11.2(c) mostra il
59 (K — A)‘ oontiane tutti gli attributi di R, allora si risultato.
ponga K := K — {M}; 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 at-
Non b sempre possibile trovare una decomposizione in schemi di telazione che conservi 1e tcnzione a ricercare potenziali valori nulli nelle chlavi esterne. Cib pub infatu' causare un'ina-
dipendenze e Che consenta a ogni schema di relazione dolls. decomposition: dj essere in speltata perdita d’infon'nazione nellc interrogazionj ch: prevedono joiu su quella chiave ester-
BCNF (anziché in 3NF come nell’Algoritmo 11.4). Si pub peusare di controllare gli schemi na. Inoltre. se si presentano valori nulli in ale-i attributi, come STIPENDIO, il loro effetto su
Eli relazione in 3NF della decomposizionc uno a mm per vedere se soddisfano la BCNF. Se funzioni built~in (integrate) come SUM 0 AVERAGE deve essere attentamente valutato.
qualche schema di relazione R, non b in BCNF si pub scegliere di decomporlo ulteriormente . Uu problem collegato e quello delle tuple dangling (dondolanti), che possono presentm-
0 di lasciarlo oosi com’e in BNF {con qualche possibile anomalia di aggiornamento). Il fatto 51 se 51 spmge troppo oltre una decomposizione. Si supponga di decomporre ulteriormente la
che non si possa sempre trovale una decomposizione in schemi di relazione in BCNF che con- relazione IMPIEGATO di Figura 11.2(a) nelle relazioni IMPIEGATOJ e IMPIEGATO 2, mostra-
servi 1e dipendenze pub essere evidenziato dagli esompi in Figura 10.12. Le nelazioni LOTTI 1 A to in Figura 11.3(a) e 11.3(b).J Se si applica 1‘ operazione di JOIN NATURALE aAIMPIEGA -
(Figura 10.12a) e INSEGNA (Figura 10.13) non sono in BCNF, ma 50:10 in 3NF. 0n tentati- TD_1 e IMPIEGATO_2, si ottieue la relazione IMPIEGATO originale. Si pub perb usare la rap-
vo di decomporre ulteriormente queste relazioni in relazioui in BCNF ha come risultato una presentazione altemativa mostrata in Figura 11.3(c), 'm cui non si insertsce mm tuple in IM-
petdita della dipendenza DF2: {NOME_CONTEA. #LOTTo} «a» {#ID_PHOPHIETA, AREA} in LOT- PIEGATtLa se all’impiegato non e state assegnato un dlparlimento (anziché insert-e una tupla
TI1A 0 una perdita di DFl: {STUDENTE INSEGNAMENTO} —> DOCENTE in INSEGNA. 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 CJb accade [alum quandu SI. applzca
. .
um: frnmmeutazionc vertical: a una relazione nel contesto di unit has: di da-
dipcndenza l'unzionale. ti distri buita.

_....._.J -»...—-—-j' Qua-4' ”ma! mad :. :1 i I I' I


1

1-"
.-
I
-- _.---- . 4......_..} W keg—g”; '.____,_....

.——.—
' ‘

Algorltmi per la progettazione d1 basi df dati re1azfona1i 359


358 Capltob 11

11112159470 {35 IMPIEGATOJ


[a1
1 NUM_CI I j
‘ NOMLI - 53931 134mm 114919120 NOMEJ L 993 941799 1913191220
731m.HOU-EMTX 5
Smilh. JohnB. 125453139 1965-01-01]
www.mmmm 5 Smith. John 5 123459799 1965-91-09 731 Fmdren. Hm”. TX
33311415555 1955-1243
mfiarflm'l'.
9321899119. 8mm.“ 4 11mg. Frankiln 1'. 399445555 1955-12-99 638 was. Houston.“
2414119794194 9991397777 1999-0749 3321 099119. Spflng. Tx
1941-05—20 281 madam. TX 4 29m Min]: J. 999997777 1969-97-19
Wm.Jannflar5. 937554321
999954444 1962-09—15 QEMMHMTX 5
Waflaoe. Jannifer 5. 997954321 1941-9929 291 Barry, Balraka, 1x
NamflammhK. 5
453466455 197207—31 5631filcs,Huushun.TX Na'ayan. Earnest-1K. 995994444 1992-99-15 97519190914 Hun-1919.714
EI'IQJLBNHJD‘jDeA. 4
1E9-03-29 SawduMJX 453453453 197241791 5931 Rice. Hammon. TX
Jab'tflrfihmadu 997997997
453 Stumfiwm. TX I English. 40199754
338655555 1937-11—10 937937987 1999-03-29 980 Della. Houston. TX
Bug. mas E.
196504—26 65303195159119m nu1'l Jabbar. td 11
Bergenmdamc. 399176555
75649994144:m ml Ban}. Jarms E. 939995555 1937-11-19 450 Stone. HoustanJ'X
868664444 1963-01-09
Banllaz.OarlosM. Bags: Mars c. 999775555 196504-26 6530 Brass. 8911:1m
Benita, Carlos M. 833664444 1953411419 7654 Beecl1.Houslnn,‘l'X
DIPAH'I‘IMENTO

(b1 11491594103 to) IMPIEGATOJ


6 3331145555
Enema
mum-921m 4 9518511321
568665555
919
Sedoomuala 1
123456789 5 123456799 5
FD} 339445555 5 399445555 5
NOMEJJ 1 SSN_D1E_DIP ! 999937777 4 999997777 4
l 1NDIFIIZZO i NUM_0 I
NOMEJ 1 fl 1 DATILN 997954921 4 997954321 4
5 mm 33344555 6663344144 5 666334444 5
123456789 1955411439 731Fmdr9n. Houston,“
Sn‘fllh. John E.
“Willem“ 5 film 5334145555 453453453 5 453453453 5
WangFrlnldlnT. 3334115555 1956—1208
196643-19 321%.W.“ 4 W 937654321 997997997 4 997997997 4
MAIN“. 999387??? Wm 997954321
1941-96—29 231 Barry. 349119.171 4 888665555 1 999565555 1
wakes. 4911111115. 997954321 5 am 333N555
6655344“ 1962—09-15 9?5F1m Oak. HunbfiaJX 999775555 nu'll
New Rama-1K. 5 m 383445555
WIFE-D7411 5531 Hoe.Hou919n.TX
Englls'mduwafi. 453453453
4 41mm 967954321 399594444 nu1|
Jabber, 4111119911 997957997 1959-99-29 98004195. HDLHIDIIJ'X
I Sadacarflrale MEWS
383556555 1QGT-11-1D 4505mm. Nov-151100.171
Belg-Jam- E. Figura 11.3 11 problema dalla ”tupia dangilng". (a) La relazlone IMFIEGATOJ (ournprende tutti gll attrlbu-
tl d1 IMPIEGATO a ecceflone di NUMEHCLD). (b) La relazione IMPIEGATO_2 (comprancie l‘attrl-
In) buto NUMERQJJ con va1ori nufii). (G) La rerazlone IMPIEGATO_3 (oomprende I'attributo NUME-
l NUM_D i NOMEJJ 1 SSNJJHFLDIP I
I E ‘ DATA)! l 1NDIF|JZZO HD_D ma non comprende tupla per la quah' NUMERO_D assume valorl nulll).
I NOMEJ
5 Fiona 335446555
123458789 1955-01435 731Fm.H01.IsmTX
5muh.JohnEL 5 Huang 333145555
3331345556 195542-08 638m Hm.“
Worg,FraI114Tn'E 4 749mm 98765-1321
99988177? 1999-9749 8321 099110. Spring.“
291m. Mai 4 Wrist-aliens 997654321
987654321 191114.320 29“ M 5°“m
Wlamdamflss. 5 8091173 353445555
1932-09-15 WfifiaOfisHmfi
NaruyenfiamadhK,
EngThh. Jayne A
865384444
4534531153 1972-13-31 6531 Fine. 1491.19119m 5
11 mm
m 3334-15555
987654321
11.1.5 Analisi degli algoritmi di normalizzazione
987937957 1999-9429 930 D9199. Hum“
MDBnNI'nIflV. I Sedamrmle 888665555
855865555 1367-1140 4511 Shane. Hummfint
Bong. James E. nulr FIJI "WI
Banger. M91956. 9917555 1955-04-23
1963-01-09
5550 Brass. 521151183X
1545M. 1491.1519m nufl nili IILI U119 dei problemi con gli algoritmi di normalizzaziune descritti é che il progetfista delta base :11
Bel-1119239499141. 5856614!“
dafi deve pfima di tutto specificare rune le dipcndenze funzionafi riievanti fra gli attributi della
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 base di dati. Questo non 9 un compito agevole per una grands base di dau' can centinaia di attri-
per alcuni attributi d1 ]o‘|n. (b) Htsultato dall'appllcazton JOIN ESTERNO a IHPIEGATD buti. Una dimanticanza 119110 specificare una 0 due dipendenze importanti pub avers come n'sul-
ticazione del
IMPIEGATD a DIPAHTIHENTO. (c) Risultato da11'app
e DIPARTIMENTD. tato 1m progetto inadeguato. U71 altm pmblema é Che questi algoritmi non sum in general: de-
termilfisfici. Ad esempiu. glj algorimi di sinresi (Algoritmi 11.1 e 1 1.4) fichiedono la specifica-
zionc di una copcfiura minimale G per l’insiemc di dipeudenze funzionalj F. Dato che in gene-
o; queste sono dette, tuple dangling rale ci possono csserc molte coperture minimali conispondenfi a F. l’algoritmo pub fomjre di-
191179 a Berger 9 Benitez mm 99791190 presenti nel risultat
due relazio ni che rappresentano unptegan e per— versi progetfi a seconda della specifica copertura minim-19.16 usata. Alcuni di questi pragetti pos-
perché sono :appresentate in 11119 5019 dell:
19.1110 vengono parse 59 si esegue un’operazione di join (it-1113m m.“I sono 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 del-
"dondolann": pill precisamenue si dovrehbe parlm
:11 mph: che l‘ordinc con cui queste dipendenze sono considerate per la violazione della BCN‘F. E ancora, al-
5 Il termine "dangling" viene di solilo tmdollo can cuni progetti possono essere sigrfificat'rvamente supefion' mentre 9111-1 possum} assure inadeguati.
rimangono 591123 1111 collegamcnlo ad altrl dali. (H.411)
Algoritmi per la progettazlone di basi d1 dati relazlonaii 361
360 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.
Sommario 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
irmi dz'
i algoritmi di normalizzazione. Gli algor usando il test presente nella proprieth L11.
In questo capitolo ahbiamo presentatu divers uno schem a di relazi one univer— 11.13. Si-a'ppli'chi I’Algoritmo 11.43 $11.13 relazione dell'Esercizio 10.26 per determinare una
in 3NF. :1 panire da
sinresi relazionale cosn'uiscono relazioni della chiairc per R. Si costruisca un insieme minimale G di dipendenze equivalente a F. e si
denze funzionaii specificato dal progettista
sale, sulla base di un insieme date Eli dipen o relazi oni in BCNF tramite apphchj J‘algoritmo d1 sintesi (Algoritmo 11.4) per decompon'e R in relazioni in SNF.
ione relazi onale crean
base di dati. Gli aigoritmi di decomposiz . d1 reia- 11.14. Si ripeta l'Esercizio 11.13 per le dipendenze funzionali dell’Esercizio 10.27.
di relazioni non normalizzate in una coppia
successive decomposiziuni scnza perdita ieth deiie decom posiz ioni: la pro— 11.15. S1 applichi l'algoritmu di decomposizione (Algoriuno 11.3) alla relazione R e a11’in-
impor tanti propr
zioni compunenti. Abbiamo esaminato due denze. Si meme di dipendenze F dell’Esercizio 10.26. 51 ripeta il mm per le dipendenze G del-
e la proprieté. d1 conservazione de11e dipen
prieth di join senza perdita (non—additive) posiz ione senza pcrdita. e un pil'l l‘Esercizio 10.27. ,
are i1 test di decom
is quindi descritto un algoritmo per effettu che 11.16. Si applichi l‘AlgoriImo 11.421 alle relazioni presenti neglj Esercizi 10.29 e 10.30 per
ta di decomposizioni binarie. Abbiamo visto
semplice test per verificare 1‘assenza di perdi sfanu entram be 1e proprieta sud- determmare una chiave per R. Si applichi l‘algoritmu di sintesi (Algotimm 11.4] per
in SNF che soddi
e possibile smtetizzare schemi di relazione 1a conserva- decomporre R in m1azioni in 3NF e 1’a1goritmo di decomposizione (Algoriunu 11.3)
bile aspirare sale 5111' assenza d1 perdita;
dette; invece. nel case di BCNF, é possi per decompotre R in relazioni in BCNF.
assieu rata.
zione delle dipendenze non é necessariamente 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
Questionario di verifica and; in $31;£03m normaIc si trova ogni relazione della decomposizione.
ne degli amibuti in una decomposizio-
1= 1, 2, 3,R4,R};R=A.B,C,
a. H}.R5={D.LJ}. 5 1 1 , . R3 = {3.171.194 = {RC}. "
2 {A . DE}
} R=
Cosa si intende per condizione di conservaziu
ne? 13. 32 ={§..£2,§3}1;QR1={A,B, C. D. E}, R1 = {8, F, G. H}, R3 = {D, I, J}.
sufficienti come condizione di buona pra-
Perché 1e forms nonnali da sole non sono c. H},R5={D.I,J}. s | 1
3: h 2, 3. 4.R};R=A.B.C,D .
11?: = {D , E} , R3 = {3.F}.R4 = {R G,
gettazione di schemi'?
denze per una decomposizione? Perché
Cos’é la proprieté di conservazione delle dipen 11.19. Si consideri la seguente relazione FRIGOHIFERDWModallo , Anne, Prezzo
é importante? tti Stab_Pr'od, Galore), abbreviata con FHIGOHIFEROW, A, P, SP, 0} e che ha i1
gii schemi di relazione in BCN'F vengano prodo
11.4. Perché non é possibile garantire che i di re1azi one non-B CNF? (33?“a insieme F di dipendenze funzionali: F = {M —> SF , {1.1, A} —> P, SP —>
dipcnd enze di schem
da decomposizieni che conservano 1e
punto.
Si fomisca 1m controesempio per illustrare questo Per- a. Si valuti ciascuno dei seguenti insiemi come possibile chiave candidata per FRI -
Cos‘e 1a proprieta dijoin senza perdit a (o non-additive) di una decomposizione?
11.5. BORIFEHO, giusn'ficando perché pub essere 0 non pub essere una chiave: {M}
ché é importante? de-
enze e assenza d1 perdita. quale m. A}. m. 0}. '
11.6. Tra 1e due proprieta di conservazione delle dipend b. Sulla base di questa determinazione della chiave, si stabilisca se la relazione FRI -
ve essere assulutamente soddisfatta? Perché‘? GDRIFERO e in BNF e in BCNF. fomendone 1e opportune giustificazioni.
tuple dangling.
11.7. 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
goritmo 11.1 sum in 3N‘F. Bibliografia selezionata
11.8. Si dimostri Che gli schemi di relazione prodotti dall‘Al
nte dafl’Al guritm e 11.2 non ha una rigs. can tut-
11.9. Si dimestn' Che, se la. marries S risu1ta
ione di S sulla decom posizio ne e la successiva riunione traini-
ti simbolj “a", la proiez filibri di Meier (1983) e Atzenj e De Antonellis (1993) contenguuo un’esauriente tranazione
te join produrré selnpre almeno una tupla spmia. , eila {em-1a della dipendenza selfizjonale. L’aigoritmo di decomposizione (Algoritmo 11.1) E
W m.hmwm ' LE" "H3 ”‘1..c I... . it
362 Capitolo 11

basa sull‘algotitmo di normalizzazione pre-


dovuto 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 . a e fomita 1n Ullman
e dei join senza perdit
La teoria della conscrvazione delle dipendenze
ti prove per alcun i degli algori tmi qui discussi. La proprieta d1 Jom Capitolo 12
(1938), dove sono presen re-
). Algoritmi per determinare le chiavi di una
senza perdita é analizzata in Aho e altri {1979 (1976 ); i1 test per la BCI‘l’F
fonzio nali sono fornit i in Osbo rn
lazionc a partire dallc dipendenze
e analizzato in Osborn (1979). 11 test
per la 3NF a trattato in Tsou e Fische
sono fornit i inWan g (1990
r (1982). Algorit
) e Hernandez c Chart (1991).

Esempi di sistemi di gestione
mi per progcnare relazioni in BCN'F
in Abiteboul e alts-i (1995) e presents una trattaz
ione teorica di moltedeile idce Illustrate
di basi di dati relazionali:
in questo capitolo e nel Capito io 10.
Oracle e Microsoft Access

alcuni
In questo capitolo analizzeremo l‘implementazione dei mode1lo relazionale di dati in
sistemi commerciali. Poiché la famiglia dei sisterni relazionali di gestione di basi dati
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—
rivol-
ti 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 inter-
funzionalita 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 fun-
d3} Paragrafo 12.2 al Paragrafo 12.5 descriveremo i1 RDBMS Oracle: l‘architettu
principalj del sistema (Paragrafo 12.2); la modellazio ne a oggetti dei dati. i Iinguaggi di
zioni
di memo-
programmazione c i trigger (Paragrafo 12.3); come Oracle organizza i1 suo spazio
Oracle
rizzazione interno (Paragrafo 12.4); alcuni esempi di programmazione in ambiente
in Oracle per la progettszio ne delle basi di dati e lo svi-
['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 de-
Parngrafo 12.7r daremo una panoramica 511 Microsoft Access comprendente 1e
interroga-
finizione e gestione dei dati, nonché Ie funzioni grafiche interattive per facilitare 1e
mo un riassunto delle caratteristiche e delle funzionali ta d1
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 Esempi di sisteml dl gesfione delie hast dl dati reiazienaii 365

12.1 Sistemi di gestione di basi di dati 12.2 Struttura base del sistema Oracle
relazionali: una prospettiva storica
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»
L‘introduziene del modelle relazienale nel 1970 segno l‘inizie cIi un’intensa attivita di ricer-
do di mettere in relaziene queste tenninologia con quella di use pill generale. E interessante ve-
ca e sperimentazione sulle idee relazionaii. I principali sforzi di ricerca fureno iniziati presse
derc come i venditeri di RDBMS hauno progettato pacchetti software Che seguono fondamee-
il Centro di Ricerche di San Jose [era chiamato Aimaden} dell’EBM. Negli anni ettanta si 211'-
talmeme i1 modeflo relazienale, ma effrono anche diverse funzioni aggiuntive per eseguire il
rive cesl all’annuncio di duo prodotti DBMS relazienali dell’IBM: SQUDS per ambienti
progetto e l’implementazione delle basi di dafi cli grandi dimensieni e delle applicazioni che ne
DOSNSE (disk operating systemi'virtual storage extended) e VMICMS (virtual machinefcon-
fanno use.
versatienal monitoring system). introdotti nel 1981. e D132 per il sistema operative MVS, in-
U11 server Oracle censiste in una base di dati Oracle, contenente i dati memerizzati
trodetto nel 1983. Un altro DBMS relazionaie, INGRES. fu sviluppato presso l'Universita del-
(cempresi i file di registre 0 log file :1 di centrelle). e nell‘istanza di Oracle, cioe i precessi
la California, Berkeley, nei pn'rni anni settanta e messe in cermnercio dalla Relational Tech-
esecutivi. Questi ultimi si suddividono nei processi di Oracle (0 processi di sistema] e quelli
nology alla fine di quel decennio. Da pretetipo di ricerca. INGRES divento in breve un
degli utenti, relativi a una specifica istanza delle base di dati. 1] server Oracle Lisa ‘11 linguag-
RDBMS commerciale per opera della Ingres, una consociata della ASK; attuaimente viene
gio SQL per definire e gestire i dati. Dispene, inelIIe. di un linguaggio procedurale, chiama-
venduto da Computer Associates. Altri notissimi RDBMS cemmerciali sono: Oracle della
to PUSQL, per controllare i1 flusse esecutivo di SQL. per trasferire i risuitati delle interroga-
Oracle; Sybase della Sybase; RDB della Digital Equipment. era di proprieta della Compaq:
zioni in variabiJi e per gestire eventuaii errori. A Gracie si pub accedere anche attraverse lin-
INFORMIX della Informix e UNTFY della Unify.
guaggi di pregrammaziene di uso generale come C 0 Java.
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- 12.2.1 Struttura delta base di dati
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 La base di dati Oracle ha due strutture principali: (1) una sfl'urrurafisica che si fiferisce ai da-
RDBMS compatibili con 10 standard ODBC (Open Database Connectivity) che permette di 11' effettivamente memorizzati e {2) una straining Iagica che corrisponde alla rappresentazione
eseguire inlerrogazioni SQL :1 questi sisterni. astratta clei dati. Quest’uitima e approssimativamente equivalente alle schema cencettuale dei-
Anche se i prodotti per personal computer hanno subito una notevele eveluzione, occerre la base di dati.2 La base di dati centiene i seguenti tipi di file:
notare che i1 termine relazionale viene ancora usate da molti fomitori in mode inappropriate.
0 mm o p11‘1file 151:" drm' contenenti i dati effettivi;
Perché una base di dati possa essere definita rclazionale, Cleve avere alrnene 1e seguenti pre-
0 due 0 pi!) file di registro chiamati file (11' regisrm delle azieni di riprisrino (redo fog files)
prime:1
che regisuane tutti i cambiamenti fatti ai dati c 30110 usati nei precesso di ripristino delle
1. memorizzare i dati come relazioni in mode che ciascuea celonna sia identificata indipen- base di dati nei case di modifiche che non devono essere scritte nella memeria permanen-
denterneme dal suo norae e l’ordine delle righe sia irrilevante; te, ad esempio per il fallimento di una transazione;
2. 1e operazioni disponibili per 1’ uterite cosi come quelle usate intemameme dal sistema so- e um o piu file di contmilo (conrmlfiles) centenenti informazioni di controllo come i1 no-
no vere operazioni relazienali in grade di creare nuove relazioni partendo da quelle esi- me della base di dau','1 nomi e 1e localizzazioui degli altri file e um timestamp di creatio-
stenti; ne delle basi di dad;
3. i1 sistema deve suppertare almeno una variante dell'eperaziene JOLN. a i file dr' traccia {tracefiies} e 1111 regime dz‘ altar-me (alert log); i processi del server hanne
Anche so sarebbe possibile aggiungere altri elementi ali’elenco appena femite, i criteri ap- un file di traccia ehe ne registra 1e azioni, mentre il registro di allarme contiene i principa~
pena considerati sene quelli minimi per controllare se un sistema e relazionale: e facile notare li evemi relativi alla base di dati.
come alcuni dei DBMS presentati commercialmente come relazionali non li seddisfine affatto. Sia il file :15 regislIo sia i file di centrofle pesseno essere mantenuti in copie multiple, scri-
venclone 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 ca- In queste paragrafo vengono urilizzati alcuni rennini che non sono encore stati defmu formalmente. Sane tum.w
legerie. via essenziali pea una discussion-1e complete sull’architetrara di Oracle.
sisal-dim- . “A... - '3 ' - ... - hen-yum ”W- - A HAMWM'
Esempi dl slstemi di gesfione detle basi dl‘ dati relazronali 369
368 Capltolo 12

fa st che tutti lbuffer OWJamente V: a: una serie di cperazioni oppcste per chiudere un’istanza di Oracle:
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 . chiusura della base d3 dafi;

NI—l
si coordina con ' 1 1 processo DBWR per stabilire i1 memento . srnontaggio (dismount) della base di dati;
file d1" dati. ll processo CKPT
opportune per fissare un punto di controllo. 3. chmsura (shut down} dell'istanza di Oracle.
deB‘istanza della base
0 Monitor o‘i sistema (SMON: system monitor). Esegue il ripristino 11 file di parametri che regola Ia creazione dj un‘istanza di Oracle confiene:
dati, gestisce le aree di memoria andando a occupare arec di memoria coutigue condi-
di
le operazioni di ripristino. parapet; che assegnano nomj a elementi (ad esempio i1 nome della base all dati. i1 nome
vise e recupera 1e transazioni eventuahnente tralasciatc dutante
di processo (PMON: process monitor) . Esegue il recupero di un processc utente c a or: zzazione dei file di conu-ollo della base di dati, i nomi di ' ‘ ' '
0 Monitor
B respons abile anche della gestione della cache ripristino o rollback); 5335139“ Prim“ Per 11
quando si interrompe a causa di un errore.
altre risorse usate da un processo utente. o paramctn dimensionafi (ad esempio 1e dimensioni massime possibili per l’area SGA e [e
e delle
amente i file di registro in linea nella duncnsmm massime dei buffer);
o Memorizzarore (ARCH: archiver). Archivia periodic
secondo livello (ad esempio nastro magnefi co) se configurato per farlo. 0 paramerri che influenzano. i1 carico
_ . denominafi variabili (ad esemp10
' 1]' parametro DB_
memoria di
transazioni distribuitc Che so- BLOCK_BUFFERS che unposta 11 numero di blccchi di dati da allocate nell’area SGA).
e Process-0 a‘r‘ rfiorisrino (RECO: recover process). solve 1e
a causa di un malfunz ionamen to di rete e di sistema in one base dafi distri-
no in attcsa L‘amministratore
_ ‘ defla base di dati pub modificare tali arameLn' dur t 1 '
buita. gesnone e d: controllo della base di dati. [J an E e PIOCEdl-"e d1
esecutivi multipli, smista 1e
o Smisratori (Drum: dispatcher). Nelle configurazioni a flussi
dai processi utente ai processi server condivisi d3-
richieste d’instradamento provenienti
. V1 e an processo smistato re per ciascun protocoi lo standard di comunicazione.
sponibili
o Processi di bloc-co (LCKn: lock process} . Assicura no i1 blocco degli accessi alle istanze 12.3 Struttura delta base di dati e
viene eseguito in modalita server parallela .
quando Oracle sua manipolazione in Oracle

In origine Oracle fu progettatc come sistema di gestione di basi di dati relazionali Dalia ver—
12.2.3 Awio srone 8 del prodotto. Oracle e stato trasformato in un sistema di gestione di basi di dati a og-
getu relazronale [ORDEMSz object relational database management system). NeI seguito si
server Oracle non E state av-
Una base di dati Oracle non e disponibile per gli utent'l fin che i1 data one vrsmne d‘insieme di Oracle, comprese 1e sue funzionalita di modellazione relazio—
base di dati e rcnderla disponibile agli utenti so-
viato e la base di dati aperta. Per attivare una descfifle
nale n31 paragafg
e a oggetti 12.6.Le principali difference tra Oracle 8 e l e versrom
relazionale. ‘ ‘ precedenn' sono
no necessarie lc operazio ni seguenti.
allocate l'area SGA e sonc
I. Avvr'o di un’istanza delfa base di dad. In questa fase viene
gestirc l'inizializ zazione dell‘ista nza viene preparato
creati i processi di background. Pcr
on file di parametr i che contiene dati di controllo . fra cui le dimensio ni dell' area SGA. il 12.3.1 Oggetti dello schema
nome della base di dati alla quale l‘istanza pub connetter si e cost via.
base di dati a un‘i»
2. Montaggio (mounting) :13 um: base dr’ deli. Questa fase associa una In Oracle il ten-nine schema si rifen'sce a una serie di oggetti che definiscono dati Gli ogget-
che quest'ope razione venga eseguita, l’istanza di
stanza di Oracle appena avviata. Prime t1 dello'scherna sono singoli elementi che descrivono tabelle. viste e cosi via. Vi é oumdi una
ione uno a mol-
Oracle e disponib'de solo per gli amnfinistraton'. I} montaggio e un‘operaz netta drsunztone tra questi oggetti dello schema logico e i componenti di memorlzzazione fi-
te la medesima
ti, nel senso che pill istanze di Oracle possono montare contemporaneamen stca cluamatl spazt' defile rabelle. Qui di scguito si presentano gli oggetti dello schema sup-
in mo-
base di dali. E compito dell’amminisu'atore della base d'x dati scegljere se attivarla portatr da Oracle; :3 da notare cbe per denominarlj Oracle utilizza una propria terminologia chc
di Oracle manta una base di dati in moda-
dalita parallela o esclusiva. Quando un'istanza s: aggmnge alle definizioni dei concetti di base deI modello relazionale.
e
Iitd esclusiva, solo quell'istanza pub accederc alla base di dati. D‘altra pane se l‘istanza o Tabellfzungta [381:6 conformi a1 modelio relazionale presentato nei Capitolj 7 e 8. Ogm‘ co-
attivata in modalita parallela o condivlsa, anche altre istanze che sono awiate in modalita
onna a In me a on name, an tipo di dati e u na grandma (che dende
precisione}. ‘ dal ttpo
' e dalla
parallela possono montare la base di dati.
3. Aperture: di one base di dart. Si tratta cti un’altivita di amnfinistrazione della base (11' da-
o Were (51 veda anche i1 Capitolo 8): tabelle virtuali che possono essere definite partendo da
ti. L’apertura di una base di dati montata. la rende disponibile per le normali operazioni di
ida‘ ' inea e i file di re fstro. tabelle base 0 da altre \nste. Se la chiave di una vista di join (una vista Ia eui imerroga-
’on - ndo sibifi -'
‘ ' a -__:_- Iii 1‘ “ ._:__ ‘5 I' .Jé fl_-_ ' :1_ - i— ' 1a.: .._--. '
m4... -_...- WWW «ms/mam mum-“a"- -
Esempi dI' slstemi di gestlone delle basi di dati relazionaii 373
372 Capltolo 12

ente l‘at— 12.3.4 Metodi di Oracle 8


Oltre alle informazioni di dizionario appena descritte. Oracle conirolla costantern
ehiamate tabelle dinamiehe delle prestazion i.
tivita della base di dati e la registra in tabelle
siste-
L’amministratore della base di dati ha accesso ad esse per eontrollare 1e prestazioni del I rnetodi (operazioni) sono stati aggiunti 3 Oracle 8 come parte dell’estensione a oggetti re-
ma e pub concedere ad alcuni utenti l’accesso a tall viste. lazionale'del s‘lstcma. Un metodo a una procedura o una funzione che fa pane deIla defi-
mzrone di un hpo di dati astratto definite dall’utente. I metodi sono scritti in PLISQL e me-
monzzau nella base (it dati oppure seritti in un linguaggio di prograunnazione come C e
:nemonzzau estemamente. Essi difieriscono dalle procedure memorizzate per i seguenti mo-
12.3.3 SQL in Oracle twi:

SQL ANSIIISO. For- a un programme esegue un metodo facendo un fiferimento a un oggetto del tipo che gli e as-
11 linguaggio SQL implementato in Oracle e compatibile con 10 standard sociato;
1e funziona iita SQL descritte nel Capitolo 3, ma con alcune varianti. Time 1e
nisce, quindi, a 1m metodo Oracle ha complete accesso agli attributi dell'oggetio che gli a associate e alle
eseguite usando istnrzion i SQL, quindl stringhe
operazioni su una base di dati Oracle sono informazioni sul suo tipo (si noti che cio in generale non vale per i modelli di dati a og-
linguagg io SQL che vengono fornite al server Oracle per l’esecuzio ne. Si fa riferimento a
del getti).
Sono gestire le se-
una interrogazione completa SQL come a una frase SQL (SQL sentence).
guenti istruzionj SQL (Capitolo 8): Ogni tipo di dati (astratti) ha un metodo costruttorc definite dal sistema che a un mero-
grafo 12.2.1 e do che crea un nuovo oggetto seguendo la. specificazione del tipo di dati. ll nome del meto-
o istruzioni DDL: definiscono gli oggetti dello schema tratlati nel Sottopara do costruttore e identico al nome del tipo definite dall’utente; si comporta come una funzio-
permetron o di fornire c revocare privilegi di accesso;
to. cancellazione e ne e restituisce i] nuovo oggetto come suo valore. Oracle supporta alcunj tipi speciali di me-
o istruzioni DML: specificano operazioni di interrogazione. inserirnen todi:
agglomam ento. Fa pane delle operazion i DML anche il blocco di una tabella 0 di una vi-
sta per regolare gli accessi a dati condivisi oppure l'esame del piano di esecuzione di o :1 metodi di confronto definiscono una relazione d’ordine Ira gli oggetti di un dalo tipo di
un’interrog azione: ‘ an;
ne sui dati
e isrruzioni di commiio di Iransazione: specificano unite. atorniche di elaborazio o i metodi di map sono funzioni definite su tipi lncorporati per confrontarli rapidamente (ad
con un'i—
della base di dati. Una transazione e un‘unita atomica di elaborazicne che inizia esernplo un metodo map chiarnato area pub essere usato per confrontare dei rettangoli in
it commit (i cambiame nti sono slati
struzione eseguibile e finisce quando viene eseguito base alle loro arse);
annullati). Le
trascritti su memoria permanente) 0 ii rollback (i cambiamenti sono stau' o i metodi che ordinano usano una loro logica intema per restituire un valore che codifichi
SAVEPOINT e
istruzioni di controllo delle transazioni in SQ]... sono COMMIT (WORK). 1:0rdine tra due oggetti delle stesso tipo. Ad esempio per un tipo di oggetto insurance_po-
ROLLBACK: hey. {che condene una polizza assicurativa) possono essere definiti due diversi metodi di
le proprieta del-
e isrruzioni di comroHa delle seSsioni: consentono agli utenti di controllare ordmamento: uno che ordina le polizze per (issue_date, lastname, firstname}. cioe secon-
o cambiando 1e im-
la loro sessione, se necessario abilitando o disabilitando alcuni ruoli do la data di stipulazione e il cognome e Home del clienle e an altro per (policiumber),
postazioni iii linguaggio (ad esernpio ALTER SESSION, CREATE ROLE); cioe secondo il numero della polizza.
imposta-
o isrruzioni di commlto del sistema: consentono all’ammirdsu'atore di cambiare
cli server condivisi, 0 di eliminare una sessione. L‘u-
zioni di base. come i1 numero minimo
mica istruzione d1 questo tipo e ALTER SYSTEM;
0 isrmzioni SQL incapsulate: 1e isn'uzioni SQL possono essere incapsulate in un
linguaggio 12.3.5 Trigger
elaborare
di programmazione procedurale come PLr‘SQL di Oracle 0 il linguaggio C. Per
in un programma C. Oracle usa un apposite precompila tore. Oracle permette di impostare delle regole arrive attraverso i trigger. Si tratta di procedure (0
le istruzioni SQL incapsulate
FETCH,
Queste istruziom' comprendono operazioni di gestione del cursore come OPEN. regole) memorizzate che sono eseguite {o attivate) automaticamente quando nella tabella 3
CLOSE e altre come EXECUTE. 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 ope-
Il linguaggio PUSQL E un‘estensione del linguaggio‘procedurale di Oracle che agglunge
ranom aggumnve che sono richieste da regole 0 da polifiche gestionali che varmo 31 di 1a
funzionalita proceduralj a SQL. Compilando e salvando il codice PLISQL in una base cfi dati
dei consueti vincolj di chjave, d’integrita d’entita e d‘integn'ta referenziale imposti dal si-
Oracle come procedura memorizzata. i1 traffico di rete tra 1e applicazioni e la base di dad é ri—
stema.
dottc con un evidente guadagno in termini di prestazioni. I blocchi PUSQL possono anche es-
sere trasmessi—da un’applicazione a one. base di dati Oracle per eseguire localmente operazio—
- l _‘ ' d1 .
L—.-__..
WWWRWW "WWW” ”a 4-. u I - .lW.» warm»
. “may;
376 Capltolo 12 Esempt di sistemi dl gestlone'delle basi dl datl relazlonari 3??

tuale minim di spazio nel bloceo che deve essere raggiunta (grazie aIle istruzioni DELETE e Segmemr‘ a‘ei dan': ogni tabella non raggruppata a cluster e ogni cluster di5pone di no sin—
UPDATE che riducono 1e dimensiorli dei dati) prima che nuove righe possano esserc aggluti- golo segments per mantenere tutti i suoi dati. Oracle crea ll segmento dei dati quando l‘ap-
te al blocco. Ad esempio. se nell‘istmzione CREATE TABLE si imposta plicazmrte 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 Segmeati dell 'z‘ndz‘ce: ogm’ indice di una base di dati Oracle dispone di un unico segmen-
per
i1 blocco di dati usato peril segmento di dati di questa tabella. che ha gia raggiunto i170 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 seg-
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 dimi- men 0.
per
nuisce sotto i1 50 per cerito.s In questo modo i1 30 per cento del blocco rimme utilizzablle
o Segnrent‘r‘ rempamnei: sono creati da Oracle per essere usati dalle isrruzioni SQL che han-
delle righe esistenti; nuove rlghc possono essere introdotte solo quando la no bisogiio .dl un'area di lavoro temporanea. Quando l‘islruzione complete l’esecuzione
agglomamenti
quantita di spazio usato scende sotto il 50 per cento. menu-e gli inserimenfi possono esserc 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 . .
eseguiti finché il 70 per cento dello spazio non e utilizzato. {OR-
Quando si usano tipi di dati specificl di Oracle come LONG 0 LONG RAW o in alcune
al- DER BY | GROUP BY}, SELECT DISTINCT e (SELECT . . .) {UNION | MINUS“ l ]N-
tre simazioni che utilizzano oggetti grandi. pub capitare che una rigs abbia una dimensione su- TERSECT} (SELECT . . .). Anche alcuni join non indicizzati e 1e sottointerrogazioni re-
lative possono richjedere segmentl temporanei. Le interrogazioni con le clausole ORDER
periore 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 BY. GROUP BY 0 DISTINCT che richiedono un’operazione di ordinamento possono es—
detto concatenamento delle righe. Se una riga in origine si adattava a un blocco. ma la sua di- sere efiertuate in mode pifi efficiente usando i1 parametro SORT_AREA SIZE.
mensione aumenta troppo a seguito di un aggiornamento dei dati, Oracle utilizza 1a migra- a Segmenrr‘ di tailback: ogni base di dati deve contenere uno o pill segmenti—di rollback, usa-
zionc, spostando l‘intera riga in un nuovo blocco di dati e cercando cli adattarla a questa nuo- ti per :‘arinuljare" 1e transazionj. Un segmento di rollback registra (che esegua o mcno i1
va posizione. In questo caso. nella riga originale viene pesto an puntatore al nuovo blocco di commit) 1 valori vecchi dei dati usati per garantire la coerenza nella lettura (quando sl usa
dati. Si noti che il concatenamento delle righe e la migrazione richiedono l' accesso a pill bloc- il conu'oflo multiversione} per realizzare il rollback di una transazione 0 per recuperate la
cbi per rintracciare i dati, e 1e prestazioni di conseguenza peggiorano. versrone precedente di una base di dati. Oracle crea un segmento di rollback inizlale chla-
mato 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 spa-
o.
1 2.4.2 Estensioni

Quando viene creata una tabella, Oracle le assegna un‘estensione iniziale. Estensioni incre-
mentali 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 seg- 12.5 La programmazione
mento quanto spazio assegnare inizialmente, la quantita massima di spazio e il numero di delle applicazioni Oracle
estensionifi Le estensiorti allocate ai segmenti di un indice rimangono asseg-nate fin tanto che
esiste l‘indice. Quando un indice associate a una tabella o a un cluster viene eliminate, Ora-
cle riutilizza lo spazio. 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
12.4.3 Segmenti 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
Un segmento e costituito da diverse estensioni e appartiene a uno spazio delle tabelle. Ora- scrwgndlo ilalJSQL. che e il linguaggio procedurale proprio cli Oracle;
cle use i seguenti quattro tipi di segmenti. 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-

5 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). ? MINUS 9 equivalent: a EXCEPT [Capitolo 8).
Hush-‘1‘; ....- M... .4. .. ”5h : . a 51-

-
li 379
Esempi dl slsterni di gestlone delle basl di datl relaziena

378 Capitele 12

BEGIN
neme_batt, iniz_1nt, cegneme, indirizze, stipendie
Pregrammaziene in PUSQL
EEEECT
12.5.1 v_neme_batt, v_iniz_int v cegneme v indirizze v St
'
FROM IMPIEGATO I _ t " ’ " ipendle
dere lnterregazieni SQL.
ale di Oracle che pennette di inclu stipendie = (select max (stipendie) from impiegate} ;
PUSQL a un linguaggie procedur di inge gner ia del software. quali l'in~ WHERE
principalj funzieni
Esse effm agli sviluppateri tutte 1e nascendere inferrnazieni [infer

dei dati {data encapsulation], i1 DBMS_0UTPUT.PUT_LINE (v_nema_batt, v_iniz_int, v eegneme,
capsulamente e la preteziene delle ecce zieni , ed e la tecn'r ca pie
rloading) e la gestiene —
matien hiding), i1 sevraccarice (ove v_indirizze, v_stipendie);
le svilu ppe di appl icazi eei in Oracle.
usata per edure, funzieni e
e strut turat e a blecchi. Le unite base. aloe proc EX GEFTIDN
PUSQL e um linguaggi ere di setteblecchi ni—
i e pessene centenere qualsiasi num WHEN OTHERS
bleechi anenjmi, sene blecchi legic iaraz ieni e istmzieni. Le di-
raggruppa legicamente dich DBMS_OUTPUT.PUT_LINE ['Individuate error-9');
dificati. Un blecce e setteblecce
E
ene farce e non sene visib ili a1 di fueri di esse.
cui veng ND;
chiarazieni sene lecali al blecce in in cui veng ene dichiarati varia-
: {1) 111121 parte dichlarativa ‘
Un bleeco PLJ'SQL ha tre parli bili sene man ipula te e (3) una parte In E} a: state necessarie dichiarare alcune variabili delle stesse ti o e che centenarm
in eui rali varia avere gli :teg:
bili e eggett'r. (2) una parte eseguihile e gli errer i serti dura me I‘esecu— armburr della base di dati the i1 programm e elaboreré. Esse pessene agere 0 non
e gestite 1e eccezieni che
delle eccezieni in eui pessene esser sr nem: deglj atlIibuti cerrispendenti. La clausola %TYPE in egni dichiarazione significa
tabella. DBMS QUT—
zrene. quella var-labile e delle stesse tipe della eelenna cerfispendente nella
erreri d_eI pre-
[ DECLARE
PUT.PUT_LINE e la funziene dj stampa di PUSQL. La pane di gestiene degli
afive effetrua [a stampa di un messaggie di errere se, durante I’esecuziene
—-declaratiens ] gramma esemphfic
si verifica se viene sele-
BEGIN della frase SQL, Oracle individua un errore (in queste case l'enrere
specifica 1e
—— -statements zreraate-plfi di un dipendente). I] programme cem'prende una clausela INTO che
attributi estratfi dalla base di dati.
[ EXCEPTION vanabrh eel-programme che centengene i valeri degli
successive , 32, a: un semplice pregrarnm a per aumentare le stipendie degii irn—
—-handler‘s } ‘ L esempre
a1 cempense medie. I1 programm e ricalcela e
END ; pregatr 1] cm salarie e infer-lore del 10 per cente
bili. Le variabili pes- stipendie medie se e superiere a 50.000 una velta eseguite l'aggierna mente.
ltatlva, vengene dichiarate 1e varia stampa le
Nella pane diclfiarativa. che e face untiv i prepri di PUSQL.
SQL e anche di fipi dl dati aggi 52: ' '
sene essere di qualsiasi tipe di dati ri. Gli eggetti sene pei
gnatl alle variabilj anche dei vale DECLARE
In questa part1: pessene veuire asse igate ria. Qul i dati pessene esserc
, che e l’un'rca parle ebbl stipendie_medie NUMBER;
manipelati nella parte eseguibile e cend iziee ali come IF-
ralle di flusse sequenziali. iterative
elaborafi usande istruzieni di cent e GO— TD. Dal cam e sue. la pane
E-LOOP, BET-WHEN BEGIN
TH'EN-ELSE, FOR-LOOP, WER e verifi cata si nella parte eseguib'rle. Le ec- SELECT avg(stipendie]INTO st ipendie_medie
cendizien e di errer
delle eccezieni gestisce qualsiasi e erreri di sistema.
iti dall‘utente. eneri di basi di dati FROM impiegate;
cezieni pessene essere erreri defin e evec ata un’e ccezieue e la nerrnale esecu-
e un‘eccez iene. vien
Quande ha luege un errere eccezieni del sette-
trasferite alla parte di gesfiene delle UPDATE impiegate
ziene si bleeca e il centrelle viene SET stipendie = stipendie*1.1
pregramma 0 del blecce PUSQL. di dati di Figure WHERE stipendie < stipeneie_medie;
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 SELECT avgtstipendie) INTO stipendiegmedie
ndie plil alto:
mazieni sul dipendente che ha 10 stipe FROM impiegate;
E1 :
IF etipendie media > 53300 lHEN
DECLARE sti p9 n d i 0 m e d 10 '
impiegate . nemeflbatfiaTYPE
; dbms Output.put line ('LO stipendie medic é '
vfinemeatt
v#1niz_int impiegate . inizflintgaTYPE;
v_eegneme impiegate . cegnemafisTYPE;
v__ind1rizze impiegate.indirizze’aTYPE; COMM IT;
v stipendie impiegate . st ipendie’sTYFE;
330 Capitolo 12 Esempl di sisteml di gestione delle basi dl dati relazionall 381

EXCEPTION LOOP
WHEN OTHERS THEN FETCH cur-sore_stipendio INTO ssn_imp, stipendio_.i.mp, superssn imp;
dbms_outpu't.put_line ['Er‘r'or'e in aggicrnamento stipendio '] EXIT WHEN cursore_5tipendio%NOTl—‘OUND; _
ROLLBAOK;
IF superssn_imp is NOT NULL THEN
SELECT stipendio INTD super_stipendio_imp
END ;
FROM impiegato
WHERE ssn f superssn_imp;
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 IF stipendio_imp > super_stipendio_imp THEN
scegliere gli impiegati i cui salari saranno agglomati. La pane EXCEPTION annulla l‘intera. dbms_output.put_1ine(ssn_imp);
transazione (cioc elimjna qualsiasi cffetlo della transazione sulla base di dati) 9: un errore di END IF;
qualsiasi tipo awiene durante l'esecuzione. END IF;
END LOOP;
IF curscre_stipendio%ISOPEN THEN CLOSE cursore_stipendio;

EXCEPTION
12.5.2 Cursori in PL/SQL WHEN N0_DATA_FOUND THEN
dbms_output.put_line ('Errari negli ssn ' | | ssn_imp};
L‘insieme di righc rcstituitc da un‘interrogazione pub consistere in zero, una 0 pin righe, a se— IF cursore_stipendio9sISDPEN THEN CLOSE cursore_stipendio;
conda di quantc righe soddisfano i criteri di ricerca. Quando un’infien'ogazione restimisce pifl
END;
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 l‘rlell’eseomio precedente CURSORE_STIPENDIO scorre nell’imera tabella dei dipen-
risultato di un’inten'ogazione. Esso cleve essere dichiarato nella pane diclliarativa dei pro- fienu linché 11 cursore non localjzza altre Iighe. La pane delle eccezioni gestisce 1a situazione
gram PUSQL. ed é controllato :13 Ire comandi: OPEN, FETCH e CLOSE. Il cursor: é ini- 111 cu: un codice di supervisore ssn non corretto puo essere assegnaic a un dipcndente.
zializzato con l'istruzione OPEN che esegue l‘inten‘ogazione, recupera l‘insieme oi righe ri- %NOTFOIJND e uno dei quattro possibili attributi del cursorc. Ecco un elenco:
sultato e posiziona i1 cursore prima della prime. riga nel risultato dell’interrogazlone: tale pa-
sizione diventa la riga corrente per il cursore. L’istruzione FETCH quando e eseguita per la * %ISOPEN restituisce TRUE. cioé VERO, se il cursore e gill aperto;
prima volta, copia la prima riga del Iisultato nelle variabili dc! programna e posiziona il cur- %FOUND restimisce TRUE se l‘ultimo FETCH ha restituito una n'ga e restituisce FAL-
SE, cioé FALSO, se l’ultimo FETCH non é rjuscito a restituixe una riga;
sore su quella riga. L: esccuzionj successive di FETCH fanno avanzare i] cursore alla riga suc-
cessiva dell’ insieme risultato, copianclo quella riga nelle variabili del pmgzamma. Questo pro- %NOTFOUND é l’opposto logico cli %FOUND;
%ROWCOUNT fomisce il numero di righe locafizzate.
cedimento é 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 vi- Come ultimo esempio. E4 mostra un segmento del programme che prende un elenco di tut—
sualizza i] numero di previdenza sociale (SSN) degli impiegati il cui stipendio e superiore a n i dipendenti, aumenta del 10 per cento lo stipendio di ogni impiegato e visuafizza i1 vecchio
quello dei loro direttore. e 11 nuovo salario.
E4:
£3:
DECLARE
DECLARE
v_nome__batt impiagato. nome_bstt%TYPE;
stipendio_1mp NUMBER;
v_iniz_1nt impiegato. iniz_int9aTYPE;
superustipendio_imp NUMBER;
v_cognome impiegato . cognome%TYPE;
ssn_imp CHAR (9);
v_indirizzo impiegato.indirizzoRsTYPE;
superssn_fimp CHAR (9}; v_stipendio impiegato. Stipendio95TYPE;
CURSOR cursorenstipendio IS
SELECT ssn, stipendio, superssn FROM impiagato; CURSOR IMP IS
BEGIN SELECT ssn, nome_hatt, iniz_int, cognome, stipendio
I fill] cur-screilnfi[Tendigsi FROM inn-inqato‘
a . .z :-. _ “g
384 Capltolo ‘12 Esempi di sisternl' dl ges‘tione d'elle basi di dati relazional'r 385

solilo. glj attribuli impliciti del cursore contengono informazioni sull’eaecuzione di un‘istru- 12.6 Strumenti di sviluppo di Oracle
zione INSERT, WDATE, DELETE o SELECT INTO. I valori di questi attributi del cursore
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 Esistono vari strumenti per sviluppare appficazionj e per progettare basi di dati con HDBMS. e
non ha restituito nessuna riga. molti assistono i1 progettista in tune le fasi del progetto della base di dati. a parLire dalla pro—
E6:
gettazione concetruale attraverso variami dei diagrammi estesi entita—relazione per arrivare aI
. 1* stessa istruzioni include e dichiarazioni di variabili di E5 progetto fisico. Oracle. per questo specifico scopo, metre a disposizione un proprio strumcn—
to. chiamato Designer 2000.
main H Designer 2000 consente 10 sviluppo rapido basato su modelli e forniscc diagrammr’ Emira-
{ Relazione per la modellazione dei dati, l’approccio a gerarckiafimzionale per la modellazio-
strcpy {usernammarr‘ , “Scott") ; ne dei processi e la gesriane difiussi di dati per catturare i flussi d’infonnazione all'intemo di
username.lan= strlantusernamémrr‘); un sistema informativo. L‘unita per lo sviluppo di diagrammi Entith—Relazione di Designer
strcpymassword. ar'r , "TIGEH') ; 2000 supporia la creazione, 1a visualjzzazione e la manipulazione di tutti i tipi di entita e re-
passworddan = strlen(password.arr): lazioni. Questi cosh-uni. compresi gli attributi, vengono definjLi in termini di proprieta. Le pro-
prieté degli atlributi sono visualizzate usando simboli grafici predefirliti per indicate attriburj
EXEC SCL WHENEVEH SQLERROR DO sq1_error'(]; obbligatori, quelli facoltativi e quelli univocamente identificafivi (chiavi). Le entita e 1e rela-
EXEC 30L CONNECT :usarname IDENTIFIED BY :passwor‘d ; zioni sono visualjzzate tramite diagramrni per consentire una miglior comprensione.
EXEC SOL DECLARE IMP CURSOR FDR L’unita di sviiuppo diagrammi a gerarchja funzionale rappresenta invece 1e attivita (pro<
SELECT ssn. nome_batt, j.rliz_irttl cognome, stipendio cessi organizzafivi) sviluppate da un’azienda. Si utilizza la tecnica di decomposizione funzio—
FROM impiaga‘to ; nale. per cui Ea descrizione ad 3110 livello di una funzione professionale o commerciale e di-
visa in funzioni progressivamente piu dettagliate. Questo aiota a identificare 1e funzioni azicrl-
EXEC 80L OPEN IMP ; dali candidate a essere informatizzate e 1e aree comuni a tutta I‘orgarfizzazione.
EXEB SflL WENEVEH NUTFOUND D0 BREAK ; 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
f0? {:5} 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
EXEC SOL FETCH EMP INTC :v_ssn. :v_nome_batt, :v_iniz_int, :v_cognome, dati e i moduli che usano queste tabelle
:f_stipendio ; Per sviluppare ie applicazioru‘ sono disponibili molti strumenti interattivi di prototipizza-
printf ('Numaro d1 previdenza sociale : 96d , Vacehio stipendio : 95f " , zione Ira cui Powerbuilder di Sybase. Oracle mette a disposizione uno strumento chiamato De-
v_ssn, f_stipendio) ;
veloper 2000 che permette all’utente di costruire la GUI del progetto e di sviluppare interatti-
vamente progranuni composti da interrogazioni e transazioni. Lo strumento di sviluppo inte-
EXEC 50L UPDATE impiegato
ragisce con 1e basi di dati di Oracle e il back end. 11 Developer 2000 comprende una sen’e di
SET stipendio = stipendio*1.1
generaton' di moduli, report, interrogazioni; inoltre, offre la possibifita di coeuire oggetfi,
WHERE sen = :v_ssn ;
grafici e procedure che rendono pifi sempfice per gli sviluppatori coslruire applicazioni Che si
EXEC 50L COMMIT;
basano su una base di dati. La versione 2.0 comprende varie autocomposizioni grafiche per
printf {"Numoro di previdenza sooiale : 95d Nuovo stipendio : 95f "
v_ssn, f_stipendio*1.1
rendere automatica 1a creazione delle applicazioni. L’amhiente di sviluppo visuale pelmette ai
programmatmi di riutilizzarei componenti semplicemente trascinandoli nelle loro applicazio-
}
ni. Se necessario, glj sviluppatori possono usare l‘ambiente visuale anche per spostare '11 co-
}
dice dal client 5.1 server. in modo da ridurre i1 traffieo sulla rete. Developer 2000, infine, com—
sql_arror() prende uno strumento di gestione dei progetti che consente lo sviluppo cooperative delle ap-
{ plicazioni e no debugger che permette di identificare e correggere i errori in tutti gh’ strati
EXEC SOL WENEVEH SDLERRDR CONTINUE; dell‘applicazione. Developer 2000 si integra perfettamente con il Designer 2000 di Oracle, of-
printfl‘ Individuato errors \n"); fre l’accesso a time 1e piu diffuse basi di dati oommerciali e conscnte d’incorporare controlli
1' . Active-X nelle applicazioni.
1' If ‘54: 7; m“..'7 - -, -. .H— -— —. —:'. ..:— _ _.:_ __ _:‘- .3: :. .2. .'l " L:
W
Esernpi di sisteml di gestione delle basi dl dati relazlenali 38?
386‘ Gapitelo 12

gene durante l'utifizm defl’applicazione di basi di dati. Meltc applicazioni semplici possone
12.7 Una visione d’insieme di Microsoft Access essere scritte interamente usande le macro; altre, pin complesse, pessone Iichiedese
Access.
le fun-
zionalitit di Access Basic. i1 linguaggio di preg-ramma ziene femito da
s, in
Queste linguaggie pet-Incite di strutturare un' applicazione Access come un component
modelle di dati relazionale suila piat~ ap-
Access a: una delle implementazioni pie diffuse del grade di interagire con altre. U11 componen te [nella terminolog ia Microsoft) is un modulo
nti per creare e gestire 1e basi di dati sul-
taforma PC. Fa pane di una serie integra ta di strume plicative che rende i suoi eggetti disponibilj per altre applicazioni. 111 Visual Basic, ad esem—
di dati Access possono andare da applica- pro—
la piattaferma Windows. Le applicazioni delle basi pie. :2 pessibile lavorare con componenti sviluppati in altri linguaggi per costruire senza
cellezione personsle di video 0 (31 CD.
zioni persenali, come la gestion e dcil’inv entarie di una blemi un’appiicazione integrata. Utilizzando la tecnologia OLE {object linking and embed-
e dei clienti di una piccols azienda. Ineltre. on re-
a piccolo applicazieni aziendali, come la gestien ding). un utente pub inserire dei documenti creati da un altre components afl’interne di
del prodett e Micros oft allo standar d ODBC (Open Database Connecti- OLE fa parte del modello a oggetti compo-
grazie 311a confers-nits pen 0 di una maschera di Access. La tecnologia
erver, 1e basi di dati relazionali su PC posse-
vity} e la prevalenza oggi di architetture clienU‘s nent} (COM: component object model). une standard propeste da Microsoft.
come un’inte rfaccia verso basi di dati memor izzate su piattaforme non
no anche essere usate
mente delle interregazieni in Access
PC, ad esempie un utente finale pub specificare grafica
una base di dati Oracle installa ta so no server UNIX.
per poi eseguirle su
e un‘interfaccia utente grafica per la Definizione dei dati delle basi di dati di Access
Access mette a disposiziene un motors di basi di dati 12.7.2
gazien e dei dati in ljnguag gio SQ]... Fornisce anche Lin proprie linguag-
definizione e l'interro
Gli utenti pessono svilupparc rapidamente
gio di programmazione chiamato Access Basic. Sebbene Access permetta un appreccio pregrammatice alla definizione dei dati attraverse Ac-
t snila base di dati attraverso l'utilizze delle
maschere e report per operaz ioni d'input ioutpu cess SQL. i1 sue dialetto di SQL. la GUI di Access mette a dispesizione uu comodo metodo
ci che assisto no l‘utente ponendegli una se- diret-
creazioni guidatc, programmi interat tivi dialegi grafice per definire le tabelle e 1e relazioni ira di esse. Le tabelle possono essere create
report e eseguita interattivarnente dall‘u— gui—
rie di demands. La definizione delie maschere e dei tamente in visualizzazione Struttura eppure interattivam ente. seguendo una creazione
i diversi campi pesti sulla maschera o sul report a ele-
tents che pregetta i1 layout coilegande
recente versione di Access) permetie di memo-
menti delia base di dati. Access 2000 {la piu estende 1e
un apposite ripe di dati. che
rizzare collegamenti ipertestuali. definendo allo scope
alita della base di dati. renden de pin facile condividere infermazioni su intemet.
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,
Microsoft Jet Engine,“ respen sabile della gestien e dei dati. Un aitro compenente e l‘inter»
come is memorizzazjene e il recupere
faccia meme che utilizza '11 meters per fomire servizi
tutti i dati di una applica zione (tabelle, indici, maschere. report. ma-
dei dati. I] motore salva
di dati Microsoft (file con estensio-
cre e moduli) in un unico file del fipo preprietarie di basi
capacita twanzste come 1’ accesso s dati etere-
ne .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
di un RDBM S. L‘interfaccia utente di Access comprende Creazieni guida-
effre tutti i servizi
azione delle applica zioni. 1 Generated seno
te e Generateri per aiutare l’utente nella progett
tivi per create espres sioni sintattic amente corrette . I] modello di program-
programmi mterat
e cosouisce una sequenza di opera-
mazjene ussto da Access 6 guidate dagli eventi. L‘utent
chiama te macro . che deveno essere eseguit e in n‘sPosta ad azieni che awen-
2ieni semplici.

utente Access.
Figura 12.3 Definiziene delta rolazione IMPIEGATO {EMPLOYEE} usando I'Interfacefa
come “mature“.
3 Ne]. resto del capitole vi si fare rifetirnento scmplieemente
388 Capiteie 12 Esempi di sistemi di gestlena defile has] dl dati refazionali 389

data. La definjzione di una tabella contiene non solo 121 strurrura della tabella, ma anche la fer- EMPLQYEEDNO. Questa operaziene fa comparire un’altra finestra che chjede afl‘utente ul~
manazione clei campi, 1e maschere per gli input dei campi stessi, 1e regole di cenvalida. le di- terror] mfermazioni so come stabilire 1a relazieue, come mestrato in Figura 12.4. L'utente se-
dascalie, i valeri predefiniti, gii indici e cos! via, 1 tipi di dati per gli attributi seno Testo. Me- l‘e-zmna‘Ia caselia “Applica integrité referenziale" se Access deve applicare automaticamente
me. Numerico. Datafora, Valula, Contatore, SifNe (booleane). Oggetto OLE, Collegamente l integntb referenziale sp‘ecifieata dalla relazione. Selezionando 1e caselle appropriate l'uten-
ipertestuale e Ricerca guidata. Access consente anche d'impertare i dati da tabelle esteme e te pub artche specificare 1a necessita di aggiemare automaticarnente i campi cerrelati scatena
creare ceflegamenti con tabelle di altre base di dati. eppure d1 elmfinare 5 record correlati a catena. Ii tipo di relaziene viene determinate automa—
In Figure 12.3 e mostrata la tabella EMPLOYEE dello schema defla base di dati relazio- ocsmente da Access in base aIla definiziene dei campi cerrelati. Se sole une dei campi corre—
nale COMPANY. aperta in visualizzaziene Stmttura. E seiezionate (evidenziato) il campe latt é’una chiave primal-la 0 ha un indice univeeo. Access crea una reiazione uno-a—molti' que—
SSN e 1e sue proprietb sene visualizzate nella finestra Preprieté campe pests nella partc in- ste stgnjfica che egni istanza (valore) della chiave primaria pub comparire moite velte ’ceme
feriere dello schermo. Viene utilizzato i1 formate di visualizzaziene predefinito che prevede istanza defia chiave esterna neIla tabella cerreIata. E ii case dell‘esempie trattato peiché
che i1 cedice SSN abbia per convenzione dei trattini dope la terza e la quinta pesiziene. La DNUMBER e la chiave primaria di DEPARTMENT e DNO non e la chiave primariz; di EM-
maschera d’input fornisce i caratteri di formattazione automatica per la visualizzaziene du- PLOYEE (si noti che su DNO non e nemmene definite un indice univoco). Sc entrambii cam-
rantc i’immissiene dei dati, rendendo facile la convaljda dei dati d’input. pt some cluavi e hanrte indici univeei, Access crea una relaziene uno-a—uno. Ad esempie si
In altri termini. la maschera (3' input del campo SSN visualizza 1e posizieoi dei trattini e in- censtderi la definizione di una relaziene tra EWLOYEESSN e DEPARTMENTMGRSSN
dica che gli altri c'aratteri sene cifre numeriche. La proprietb didascalia specifica i1 nome vi- Se la chiave MGRSSN di DEPARTMENT ha un indice senza duplicati (un indice univeco) e
sualizzato suite maschere e sui report per descfivere queste campe. Se l‘etichetta e iasciata SSN e la chiave prim-aria di EMPLOYEE, Access crea automaticamente uua relazione uno—a—
vuota viene visualizzate i1 neme predefinite che e il neme stesso del campe. Pub essere spe- one.
cifica 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, pes-
sono richiedere regele di convalida aggiuntive; ad esempie pub essere necessario che i1 cam-
pe 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 te-
stuali consentono stringhe di lunghezza zero. Un‘altra proprieth dei carnpi include la specifi-
cazione 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-
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 sele-
zienare 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
_se.‘ . . '-|'
.lave I “NUMW” a trascicv‘" . 5!:
tare L‘W‘TI‘ME‘"
l’uta... . Figure 1" 4 Gems pier-p stabllite "i“ugrita ref“
” " 1MPL""“"-.,
- I file tra,“"'""1£n e I?”
w
-. -w—...— -.— w __.a ., - .._...,.. _-.,.,. .,

Esempi di sistemi di gestiene delle has] di dati relazionali 391

390 Capiteie 12

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 EM-
PLOYEE 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). Ac-
cess 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 vi-
sualizzazione 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-
schere predisposte d2} programmatore dell‘applicazione, usattde la manipoiaziene diretta dei
dati deile tabelle nella visualizzazione Foglio dati eppure attraverse i1 Linguaggio di program—
a COMPANY.
ionl (Re1ationship) per lo schem maziene Access Basic.
Figure 12.5 La finestra Fielaz
Le medalita di esecuziene dell'intetregaziene sono specificate graficamente tramite l‘in—
pin u‘satolper specifi- terfaceia Access QBE. Si consideri l‘Intenogazioee 2 sulla base di dau' COMPANY che re-
di una relazione sia i1 meccanisrne
Sebbene in Access l'indicaziene sele nena i'ei opfieifiaflgfiiii—i cuperai nomi e gli indirizzi di tutti i dipendenti che lavorano per il dipaxtimento “Ricerca”. In
lle,1‘utente non é obbligato a
cai'e l'integrith referenziale tra tabe , ' sono .
usate anch e. per n (were. eche c com ‘ _ m!- Figura 12.6 11105113 l’interregaziene in QBE in SQL.
pbca' rel "integnta ' referenz:'ale , perché. 1e reiazmm '
.mter rega mom 't u“ Per definite l‘interrogaziene QBE l’utente sieve ptima aggiungere 1e tabelle EMPLOYEE
' . Durante 1 esecumon . e delle
‘ ’ tmph
d1' Jotn ' ’ per le mter
' cue ' regazmm
com unqu
. e esegui _ o . e DEPARTMENT nella finestra dell’interrogaziene (finestra della query). Ii join predefinito
e stata spec1 ficat a , wan e
.-
' h tabclle, anche se nessuna relaz
'
mne
l mtegntla refefinzllltghfit: tra DEPARTMENTDNUMBER ed EMPLOYEEDNO Che (E state stabilite attraverse la fine-
finit e sui cam pi corr elati . indipendentemente dal fatto c‘ne - stra Relazioni a1 memento della definizione dei dati viene autematicamente incorporate nella
fgio pide
' e com e "
Jom pre defi . ‘ ,ma
nito . . n‘uen p.
513 e mane.” Access utihz " za 1‘: "' jOln mtem mna ndo definitione dell'interrogaziene, come illustrate dalla rigs. che college i campi correlati. Se
' ”I‘tpe wm e selez
tro facende c11c sulla casella questo join predefinito non e necessario per l'interrogazione, l‘utente pub evidenziare il col-
135:3: 1111 join esterne destre e sinis . . .
e di join (Figu re 12.4) . _ . ]egamente nella finestra delta query e premere i1 taste di cancellatione della tastiera. Per sta-
1‘ r0 riato ti lo sche me :11 bane d1 ego (fogg:
fines tra Rela mom per
@131 Fligura 155 e mestrata la
vmcoii . 1nalign ’1 m - biljre un join che non era state prespeeificato. basta selezionare 1’ attribute del join da una ta-
con la Figura 7.? she mostta git ette bella e trascinarlo sull'attributo corrispondente nell‘altra tabella. Per includere an attribute
in Access. Si noti la semiglianza tgi e Ch:g fiififim22:111 e di-
Y. La 1:!rinr:.ipal:;-.Sif’t‘EIIem nell'interrogazione, basta uescinarlo dafla finestra superiere alla finestra inferiore. Perché gli
renziale delta base di dati COMPAN n ‘ tra ver51 ‘
' una relan one.
‘ 1
' ' a assocmto
one In cardinaltt ' a clase attributi siane visualizzati neI risultato. oecon'e selezionare la easella “Mostra”. Per speeiflca~
come EMP LOY EE e EMPLOYEEJ in P‘igut: 121.212.5115
ISilicate deila relaziene EMP LOY EE
tra E dj de- re una cendizione di selezione an un attribute, si pub digitare l‘espressiene direttamente nella
do si definiscene relanem multiple
Questa duplicazione a necessaria quan lla e se stess a). In figut a air 11:: “3 ha griglia “Criteri” oppure usare l'aiuto di un Generatere di espressioni. Per vedere l’interroga-
relazione tra una tabe zione equivalente in Access SQL, l‘utente pub commutare dalla visuafizzazione Struthna QBE
0 one relazione ricorsiva (ciee una RSS N. u en
LOYEESSN ed EMPLOYEESUPE
finite time reiaz’tone ricorsiva tra EMP alla visualizzazione SQL.”

._...————-———"—'_‘_ . .
.interrogaatfpm :2:333.1%” . 1 no
. .. . . . .
e una candt'ztene duem Imp-liege nelie
S ecificare una mlazione equivale a definit
u
ziene divers e (cond iment : d1JOLTI) durantela spem ca:. . Ae- ” Si neti Che SQL Access eoneente Iii specifieare u11 join nella ciausola FROM. come consentite dallo standard
lepdue tabelie a matte di precisare
una condi . . . usate m
(Figure 3.1). me a! paste d: N e sou.
a queili usati nei diagtatruni ER
‘n 1 repperli di oatdinalite sone simiii
oess i1 :r'mbeio di infinite.
392 Capitclc12 Esempidisistemidi gesfione defile basi didatireiazionali 393

12.8 Caratteristiche e funzionalité di Access

12.8.1 Le maschere

Access fomiscc una Creazione guidata maschera per assisterc i1 programmatore ncllo svilup-
po 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 cc-
me vista. La Creazione guidata crea automaficamcntc la maschera suHa base delle impcstazio-
ni 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 at-
traverso la Creazicne guidata maschera: essa comprende tutti i campi della tabella EM-
PLOYEE. 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 mo-
dificate in visualizzazione Struttura selczionando il riquadro con il mouse e trascinandolc in
mode che assumesse la dimensicne appropriata. Questa semplice maschera conscntc all’uten-
te di visuaiizzare, inserire, climinare e modificare i record EMPLOYEE, rispettandc perb al—
cuni vincoli. L'utente visualizza i dati nclla relazione EMPLOYEE facendc sconcre ripetuta-
meme 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 elimi-
narlo 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
QBE (a) e Access SOL (b). accedere portandcsi nella pagina successive (cppure usaudo i} pulsante > nella parte inferio-
Figura 12.6 La definlzlcna della lntarregaziona 2 In Access
re), oltrc l’ultimo record nella tabclla.

multipil. {Sana d1-


In modo simile é pcssibile creare interrogazioni che comcrendonc juin
nella definincn e delle interroga mom, sebbe—
spcnibili creazioni guidate per assistere l’utente
di Access QBE non lo renda quasi trial necessanc . .
ne la facilitia d‘utilizzc
di dati scno mvece escguite pct mezzo-d1 nia—
Le operazicni di aggiornamcnto sulla base
incurpora no la logica di funzicnam ento dell‘applic amcne. Y1 e accrue una Visuaiiz-
schcre che
c mfldlfic
zazicne clic dati che l’utente finale sofisticatc puc usare per uniting:j ebrcmarc
djxettame nte nelie tabelle. Questi aggicmam cnti sonc soggetu a vmcch spcc1ficau
care i dati
1e regcle d1
a] Immento della definizicnc dei dati, tra cui i tipi di dad, le maschcrc d‘inpul,
_ . 1 Figura 12.? Una maachera per [a tacella EIJ'IPLQYEE.
' ‘c ““e eeg’ci cam icy? “lazion‘
,1 . . .- .q ' A " "' __..
Esempl di sistemi d! gestione delle has! d1 dati relazlenali 395
394 Capitelo ‘12

per la crea- specificaziene di livelli di raggruppamento dei dati all‘intemo del report;
L’interfaccia utente di Access fornisce una safisticata visualizzazioae Sis-utters indicazione del tipo di ordinamenta prescelto per il report;
I1 progettista di maschere dispene di una “casella degli stru-
zione di maschere pi'b complicate. scelta del layout e dell‘orlentamento;
esempio pul-
rnenti” che mette a disposizione vari controlli cla incorporate nella maschera. ad
e 1e caselle di cou— specificazione di uno stile per i1 titolo del report.
santi. caselle di coetrolle. caselle combinate e sottomaschere. I pulsanti
maschera. Le “caselle
tralla permettono di scegliere facilmente tra le opzioni presenti nella La creazione gaidata genera automaticamente il report in base alle impostazieuj; ‘11 report
un elenco di pessi-
combinate" sane 1m comodo meccanismo per selezionare an elemento da poi pub essere aperte in visuafizzazione Su'uttura per cventuali madifiche.
valori iuvcce di digitarle, assicuran do cesl la carrettez za dei dati inunessi: ad esernpio. una In Figura 12.8 b mastrato no report con il titelo “Stipendj per Dipsrtimente” create con la
bili
nto a cui un clipenden-
casella combinata pub essere usata per scegliere il codice del dipartime Creaziane guidata Report usanda i dati dalla relazione EMPLOYEE e sceglienda i campi nel-
e consentono a]-
te appartiene. Le sottomaschere sane maschere all‘interue di altre maschere l’ardinc in cui dovevana camparire 5111 report: DNO, LNAME. FNAMB e SALARY.
informazi oni provenien ti cla pib tabelle: ad esernpio, nel- Si noti che 5 state specificato i] raggruppamenta dei dati secondo il campe DNO, in ma-
la maschera principals di includere
oni sui di—
la maschexa Project pub essere usata una sottomaschera per visuafizzare informazi de da raggruppare i salari in base 31 codice di diparlimcnta (DNO). E state. inoltre. specifica-
sene poi “creazion i guidate Cone-0110 ” che assi-
pendenti che laverauo su quel progetto. V1 to l’ordinamenta dei record sul campo LNAME ed a state richiesta l’esecuziene della somma
stona il progettista di maschere nella scelta dei controlii da usare. del campo SALARY. I1 layout del report, il suo orientamcnto e lo stile sane stati sceiti tra quel-
li predefiniti messi a disposiziane da Access. 11 report mestrato b essenzialmente quelle forni-
to dalla Creazione guidata, con alcune eccezioni: ad esernpio. i valeri predefiniti delle dida-
scalie per la eats a pie dj pagina del gruppo e la nota a pie di pagina del report sane stati mo-
12.8.2 I report dificati seleziauandoli in visualizzazione Struttura.
L’interfaccia utente di Access fomisce anche una visualizzazione Struttura safisticata per
o vari metodi per
I report fauna pane integrante di qualsiasi sistema di basi di dati e fomiscon create report pie complicati. La casella degli strumenti dispanibile in quests visualizzazione
e riassume rei dati per la stampa in base alle esigenze dell’utente. Came
raggruppa re, ordinare e simile a quella del pregettista di maschere; anaJegameute a quanta vista per le maschere,
ne una Crea-
le maschere, i report si bssano su tsbelle o interrogazioni. Access mette a dispasizio varie Creazioni guidate cantrallo sane a disposizione del progettista di report e lo assistono
i seguenu':
ziane guidata Report. Un sue tipico scenario cli utilizzo comprende le operazion neila scelta dei controlli da aggiungere al report: ad esempio, an contrallo “Settereport” uni—
a scelta di una tabella a di un'interrogazione da cui provengona i dati del
report; see pib report in uno e pub essere usata per create on report di dipartimente che include dei
0 selezione dei campi che compaion o eel report; sottoreport per specificarc analiticamente 1e informazioni sui progetti svolti da quel diparti-
menta.

Salaries by Department
LNAME HUME SALARY 12.8.3 Le macro e Access Basic
DNO

I
BORE Jun: semester: II modella di programmazione di Access e guidato dagli eventi. Access b responsabile del ri-
conascimento degli eventi e l‘utente pub specificare come rispondere a ciascun evento scri-
“5.0.0.3!
vendo una macro che a una sequenzs di semplici operazianj chiamate Mani. Gli eveuti rile-
vati cla Access comprendono 1e madifiche si dati. l‘esecuzione di azioni su una finestra, i1 di—
4

JABW Ahmad 525, names


WALLACE Jennifer $43 I are.“
325.0“ .89
gitare su tastiera e le operaziani compiute con il mouse. Ad esempio si pub scrivere una ma-
All. 1.: is
cro perché n'sponda all‘evento di chiusura di uea finest-a. specificanclo l’azione “ApriMa-
IELAYA

$03,938.“ schera" per apt-ire un'altra finestra.


5 Le azioni dispenibili pennettono at programmatori di macro di costruire intere applica-
ENGLISH Joyce 525,680.80
NARAVAN Hlmash seamen zienj, ma per le applicazionj pie complesse é consigliabile ricerrere a1 linguaggio Access Ba-
sum-I Jenn 53mm. W sic. Si tratta :31" an linguagg-io di programmazione complete che consente l‘utilizzo di castrat—
WONG Franklin 540,603.83
ti di controllo del flusso esecutivo. Ineltre in Access Basic b possibile passare argementi a pro-
8133.3!!8.“ Cedure persenalizzate (anch‘esse scritte in Access Basic) e manipulate i record une alla valta.
Total Salaries $281.0“.IB I moduli sulla barra degli strumenti principals conispandana ad altrettante procedure prepro—
per Dieadlmento). granuuate mine in Access Basic.
Figura 12.8 Un report lRecess con il titole Salaries by Department (Stipendi
Esempi di sistemi d? gestlone delle baa] dl dati relazicnafi 397
396 Capitolo 12

ste opzioni puc esaere impostata per una singola maschera oppure per l’intera base di dali (dal
12.8.4 Altre caratteristiche menu Strumenti si scelga i1 comando Opzioni e poi il comando Avanzatc).
incre-
Access suppona vari tipi di interrogazioni avanzare, come 1e interrogazioni a eampl Ediaione dello sviluppatore. Una base di dati Access puo essere salvata come un file MDE
fun-
ciati. che permettono di raggruppare i dati sccondo i valori in una colonna ed csegulre compilando i1 codioe sorgente Visual Basic. Con l’Edizione dello sviluppatore (DE: Develo-
ne come some e medic all’intemo dei gruppi. In Excel queste mterroga—
zioni di aggregazio per‘s Edition) '1] file MDE consente la distribuzione dell‘applicazione su pin computer, senza
zioni prendcno il nomc di tabelle pivot. ‘ . .
agevolmcn te informazio ni con alIIc apphcazro m. che sia necessario che nna copia di Acces sia disponibile su ciascun computer. Questa edizio-
Access. infine, consente di scambiare
con poca ne estesa dell’ambicnte fomisce anche una cena capacita di configurazione. Senza l’edizicne
L’uso di controlli Active X all’interno di Access estende l'utilizzo dell’applicazione
dello sviluppatore on file MDE a: solo una versione compilata e compattata dell’appiicazione.
o nessuna nuova programmazione.
ma non pub essere dislribuita.
s NT
Sicurezza. Access ha un modello di sicurezza a livcllo utente simile a quello diWindow
on name 6 una password quando attivano il programme ,e
Server in cui gli utenti fomiscono
unposlati
i loro identificativi utente e di gruppo determinano i privilegi one possono essere
dall’amministratore usandc una Creazione guidata. Access, inoltre, fomisce i seguenti
metodi Sommario
per proteggere un’applicazione:
aIla fi—
o l’opzione di avvio dell‘ applicazione Access pub essere usata per Iimitare l’accesso In questo capitolo abbiamo esaminatc due sistemi relazionali di gestione di basi di dati
nestra Base di dati e ad alcune combinazion i di tasti; ‘
(RDBMS: relational database management system) molto diffusi e rapprescnlzativi: Oracle e
sual
- un'applicazione puo essere salvata come file MDE per eliminare i1 codice sorgenteVi Microsoft Access. L'obiettivo era far conoscere al lettore la tipica architettura e 1e funziona-
cambiame nti alla struttura delie maschere, dei report e dei moduli attra-
Basic ed evitare 11a di un prodotto di fascia alta come Oracle e di un RDBMS pifi piccolo come Access. Men-
verso indebite modifichc al codice dei programmi. tre 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 svi-
stru-
Replica. Access suppona anche la replica della base di dati. Amaversc il menu degli luppo dei sistemi relazionali di gestione delle basi di dafi. poi abbiamo descritto l'architertu-
pero.
menti e possibile impostare la replica complete 0 parziale di una base di dan. Si non. ra e le funzioni principali del sistema Oracle. Abbiamo visto come Oracle rappresema inter—
che la base di dati Access deve essere convertita in una “Replica Master” prime che i‘coman— narnente 1e basi di dati entrando nel detraglio deil‘organizzazione di memoria nel sistema. So-
pn‘i-copie
di oi replica possano essere usati. Una volta fatto questo, si possono create duec no stali quindi forniti alcuni esenipi di programmazicne in Oracle usando PIJSQL, il Iin-
repliche; ogni replica pub contenere anche altri oggetu looall. Una
della base di dati chiamate guaggio di programmazione di Oracle con SQI. incorporate, e PRO"‘C. un precompilarcre per
della base d1
Replica Master e la replica su cui e possibile eseguire modifiche ails struttura il linguaggio C. Abbiamo esaminato alcuni degii strumenti disponibili in Oracle peril proget-
di una
dati e agli cggetti. Il comando Replica sul menu degli strumenti consente la creamone to di basi di dad e lo sviluppo di appIicazioni. Abbiamo infine dato una panoramica di Mi-
La
replica e la sincronizzazione della replica con un altro membro dell'insieme delle repliche. crosoft Access, della sua architettura, della definizione dei dati. deIla definizione delle rela—
eseguita da un comando di menu o programma uca~
sincronizzazione tra repliche pub essere zioni e della manipolazione delle basi di dati usando QBE e SQL, e descritto alcune alrre sue
modulo ag—
meme in Visual Basic. Esistono anche un comando di menu Risolvi conflitti e no caratteristiche.
giuntivo chiamaio Manager delle repliche clie fomisce un‘inrerfacc ia visuale per convernre
1e basi di dafi in repliche master. crea ulteriori repliche. visualizza 1e relazroni tra le repliche,
imposta le loro proprieta e cosi via. 11 Manager delle repliche consente anche la smcronizza-
zione dei dati an Internet 0 su una Intranet. Bibliografia selezionata
Operazioni mulfintante. Per rendere disponibile un‘applicazione per l‘accesso multiutente. Numerosi manuali descrivono il sister-ca Oracle. e particolarmente significativi sono quelli di
l‘applicazione deve essere installata so an server di rete. Microsoft Access formsce la noxio-
Oracle editi nel 1997. Sunderraman (1999) e un bnon punto di panenza per la programma-
ne di blocco per garantire la correttezza degli aggiornamenti concorrenti. l] blocco pub esse—
zione in Oracle. L‘editrice Oracle Press ha pubblicato molii libri sui diversi aspctti dei siste- _ ' '
re eseguito prograrnmaticamente in Visual Basic, ma viene fano automaticamente da Access
ma e persino un pcriodico intitolato Oracle System Journal clie rende como del cosiante [s
quando utenti indipendenn' usano maschere che si basano sulla steasa tabelia. Access tiene un
hippo dei prodotto. Anche su Access esistono molti manuali. So come utilizzare i1 sisnémii. MI -
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‘ 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 2161
400 Capltolo 13

rte Le caratteristiche dei data warehouse


cialjzzate e libri d1 suecesso hanno definite quealo We in piu modi, mentre i fomitori 13.1.2
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 Per presentare le caratteristiche dei data warehouse ed esplicitarne 1e differenze rispetto alle
e dalle basi d1
mulddimensionale dei dad. [data warehouse, tuttavia, si distinguono nettarnent basi di dad u‘ansazionali e necessarlo definite un modello di dati appropriate. [I modello di da-
dad tradizionali per quanto n’guarda struttura, funzionamento, prestazionj e obiettivi.‘ ti 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
13.1.1 Terminologia e definizioni 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—
come “una raccolta d't dati inte- chiedono piu dati eronologici rispetto a quelli che di solito souo presenti nelle basi di dati tran-
W. H. Inmon1 ha defmito l'analisi multidimensionale dei dati
nel tempo, che pub for-lure sazionali. Rispetto a queste ultime, i data warehouse sono non volatilj: eio signifies. ehe 1e
grate e penuaneute. ma foealizzata an un argomento e variabile
ai dati neeeaamo
supporto alle deeisioni dj gesdone“. I data warehouse foruiscono l‘accesso informazdorfi presenti in essi cambiano molto meno spesso, non in tempo reale. anche se pos-
alle deatsloru:
alle procedure di analisi complessa, di scoperta della conosoenza e di supporto sono essere soggette ad aggiomamenti periodici. Nei sisterm' u'ansazionali,1e transazioni so-
prestazio ni nell’eseeuzione di interroga zioui sulle informaZIom uo l’uuita atomica e l’agente di aggiomamento della base di dati; al contran'o, 1e irtfonnazio-
Essi garantiscono elevate
tipi di applicazro-
e sui dati di un’organizzazione. fomendo l‘ambiente esecutivo per parecchi ni dei data warehouse 50110 a granular-1th piu grossa e vengono modificate secondo uu’attenta
nj, come OLAP, DSS e le applicazioni di data mining. OLAP (on-line analytical 911169551119. politica di aggiornarnento usualmente incrementale. Gli agglomameuti sono gestiti dal oom-
Nelle mam dl
9 i] termine usato per descrivere l’analjsi di dati prelevati dal data warehouse. pouente di acquisizione del warehouse Che esegue tutta la preelaborazione richjesta.
di elabora-
ingegneri della conoscenza esperti, gli strumenti OLAP possono sfruttare sistemi
di quan-
zione 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 irrfor-
supporto alle decisioni (DSS: decision-support systems) noti anehe come
mativi per dirigenfi (EIS'. executive informatio n systems) {da non coofonder e con i stste- W Data Warehouse

mi di integrazione dei dati azieudali) supportano i decisori delle organizzazioni con datt ag- WI
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 /
Le basi di dati uadizionalj supportano l’elahorazione delle transazioni in lime (pLTP:
neuu e cau-
(In-line transaction processing), che permette di esegu'tre inserimenti, agglomar HIDE]:
cellazioni, e auche interrogazioni. e sono progettate per elaborate in mode ordmale Interroga-
Altre Immtssionl d1 dati AgglomamentNuovl dati
o una piccola parte della base di dati e transazio ni che richiedon o msen-
zioni che coinvolgon
Essa, quindi, nun sono ottimizzate per f1-
mend o agglomamenti di alcune tuple per relazione.
Figure 13.1 It processo dell'analisi multidimenslonele del datl.
nalita di OLAP. D33 0 data mining. A1 contrario, 1 data warehouse sono progettati pIOPnO l3":I
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 L'analisi multidimensionale dei dad pub anche essere definite, in modo piu generale. co—
da piu sorgenti che possono comprende re baSl d1
tengono grandi quautjta di dati provenienti me ”l‘insieme delle tecnologie di supporto alle decisioni, progetlate per consentire all’inge-
dati di diversi modelli di dati e peraino file provenieuti da piattaforme e sistemi eterogeneI. guere della conoscenza (diligente, manager. analista} di prendere decisiord migh'ori e piit ra-
pide“.3 In Figure 13.1 viene fomita una panoramica della struttura coneet‘tuale di un data wa-
rehouse; mostrando l’intero processo di analisi multidimensionale dei dati. Questo processo
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 comprende l’eventuale ripuljtura e rjformattazione dei dati prima dell’esecuzione dell‘analisi
dati come I'iusieme costimito da una base di dad e dal suo sofiware dt gestione. Anette on data warehouse
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.
! Chaudhuri e Dayal (199’!) fomisconn un eecelleme saggio inuoduttivo sull‘argomento. dando questa come defi-
2 nizioae iniziale.
. "311 i
t lgum ‘ ""3 it if}. __ _ -. _ _
.11: H M? ‘y' “dfl‘ a W3“"‘""‘J".
Wr- .wm- w W it“. “33‘ . law‘- .-.1 lathe-aw”: $14.2“;
AnaJisi muflidlmensionale dei datl e data mining 403
402 Capitoio 13

8 D55 possono servire a ricavare nuove impor— REGICWiE


multidimensionale. Poi, OLAP. data mining ro a
nazioni come regol e di decis ione 0 classificazione; queste informazioni tomar REG-1 FlEGZ nsoa
tanli inforr no essere cornum fi-
mostrato in figura. Le sorgenti posso P123
far pane del data warehouse, come
le di dati. P124
fondamentali earamaristjche:4
I data warehouse hanno 1e seguenti, PRODGfiC
P125
vista concettuale multidimensionale;
ll...

dimensionalita generica; P126


ti a priori;
dimensioni e livelli di aggregazionc non limita
vincolate;
operazioni tra una dimensione e 1' altra non
COCO-I'

gestione di matrici dinamiche sparse; Figure 13.2 Metrics bldimensionaie.


architetmra client!server;
supporto muitiutente;
accessibilita;
trasparenza; dom possono essere mostrati come righe, meutre 1e vendite per ciascuna regione costiluisco-
manipoiazione intuitive dei dati; no le colonne del foglio (in Figure 13.2 viene mostrata quest'organizzazione bidimensionalej'
prestazioni elevate nella generazione di report
; aggruugendo una dimensions temporale, ad esernpio i uimesui fiscali, si produce una matri:
struttura flessibile dei report. ee Indurrensionale che pub essere rappresentata usando un cubo di dati.
some up ordine [n F_1gura 33.3 vi a up onto di dati tridimensionale ehe organizzai dati delle vendite dei
di dati, 1 data warehouse generaimente
Poiché racchiudono grandi quantita delle basi d1 dau tradrz ronah. Gran- prodotu per mmestri fiscali e per regioni: ciascuna cella contiene i dati per ciascun prodono,
ezza) piu grand i
di grandam (talvolta due ordini di grand i attrav erso: Inmesue fiscale e regione; inserendo ulteriori dimensioni si potrebbe creare un ipercubo :11 da-
possono essere gest'rt
di volumi di dati (dell‘ordine dei terabyte) ti. sebbenc 1e structure eon piu dj tre dimensiorlj non possano essere facilmente visualizzate o
dono on
si u'alta di grandi infrastrutture che richie presentate graficamente.
I i data warehouse a livello d’impresa: . . .
e;
massiccio investirnento di tempo e di risors opera uve che sono matenahz-
viste su basi di dati
o i data warehouse virtuali: forniscono . . _
zate per fornire un accesso efficace; zzazr one, ad esempro un re-
un sotto insiem e dell‘o rganr
- idatamart: di solito sono rivolti a
parto. e sono piil strettarnente focalizzau.

ehouse
13.1.3 Modelli dei dati per i data war

PROEKYTTO -—-‘——————p
inserirli in ma-
relaz'roni implieite present'r nei dau per
I modelli mulfidimensionali usano 1e ubi se hann o p‘ru di Ire
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—
esser e migljori rispetto a quelle delle interrogazroru neilm
trici multidimensionali possono warehouse aziendale arena 1 pe—
dimensioni cli rm data
delle di dati relaz'ronale. Tre esernpi di _
riodi fiscali. i prodotfi e 1e region i in cui opera 1‘ azienda.
ce bidim errsio mle. Un esem pioue a un fogllo
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 _ Figure 13.3 Un cubo dl’ dati.
riordinato.
404 Capltolo 13 Anallsi rnuIt‘Idimansionale dei dati 9 data mining 405

HEGIONE 1 FlEGIONE 2
SUTTOREGIDNEI SDTI'OFIEGIONH SOTI‘OHEGIONEB SOTI'OHEGLONEA- SDTI'UREGIONEI

UOCDDOIDBDUDED}
STILI
P123
HEG'1
REGONE————__*

STILI
R562

P12¢
u.‘._—¢—"m
REGE

STILI
HEG4

P125

Figura 13.6 L'operazione drIIi-down.

Figura 1 3.4 Versions ruotata dei cubo di dati.

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 gros-
I dati possono essere interrogati direttamente in qualsiasi combinazione di dimensioni, evi- solana 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,
tando 1e usuali tecm'che di interrogazione delle basi di daLi. Esistono simmenti per visualizza-
disaggregando 1e vendite regionali in sottoregioni o dividendo i prodotfi secondo gh' stili.
re i dati secondo le dimensioni scelte dall‘utente.
Ii cambiamento da una gerarchia dimensionale a un‘altra (orientamento) é facilmente
at- 11 modello di memorizzazione multidimensionale definisce due tipi dj tabelle: 1e tabelle
tuabile in un cubo di dafi usando un metodo chiamato tecnica del pivot o rotazione.
Questa delle dimensioni e 1e {abelle dei fatti, una tabella della dimensione consiste di tupie di attri-
buti della dimensione, una tabella dei fatfi puo essere pensata come se fosse composta di tu-
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 di-
mensions (Figure 13.4). Essa, quindi, equivale ad avere una tabella delle vendite regionali per
_ TABELLE DELLE
ciascun prodotto separatamente; ciascuna tabella contiene 1e vendite tfimestrali per quel pro- new DEM TAB-ELLA DI DIMENSIONI
dotto regione per regione. DIMENSIONE FAT“ TRIMESTFIE FISCALE
I modelli multidimensionali si prestano ottimamente alle visuafizzazioni gerarchiche, in Pmoofio FIISULTA‘H COMMEHIAL:
particolare a quelle conosciute come visualizzazione “roll-up” e visualizzazione "drill-down“.
PHODO‘I'I'O TRIM
La visualizzazlone roll-up sale nella gerarchia, Iaggnlppando lungo una. dimensione unila pii]
Num. Prod. TRIMESTRE ANNE)
Nome Prod. REGIONE DATA :l
Descr. Fwd. DATA FIN
HEGIONE -—+
Stile Prod.
Prodotti Linea Prod.
1XX mom DELLE
CATEGOHIE VENDITE
DE[ PHOUOTTI Prom
PTOdofll BEGIONE
SXK SOTTOHEGIONE
Prado!“
4X!

L__._._._-
Analisi multidimensionale dei datl is data mining 411
410 Capitolo 13

come la descrizione di una usati vi sono: la trasformazione delle interrogazioni, l’unione e l’intersezione di indici, fun-
ll ten-nine metadati. introdotto nel Capitolo 2, a state definite
ne dei seherni. [l dizionar io dei metadati a un cornpo~ zioni speciali ROLAP (OLA? relazionali) e MOLAP [OLAP multidimensionali), estensiom’
base di dati comprendente la definizio
warehou se e compren de metadat i sia tecnici sia gestionali: 1 me- SQL, metodi di join avanzati e tecniche intelligeuti di scansione (quali sono 1e interrogazioui
nente fondarne ntale del data
di memorizzazione, le de- multiple integrate in un’uniea soluzione).
tadati tecnici descrivono le operazioni di acquisizione. 1e su‘utture
del data warehou se e 1e funzion alita di supper-Lo dell‘ ac— Le elevate prestazioni necessarie sono state raggiunte anche rieorrendo all’elaborazioue
scrizioni dei dati. il funzion amento
no le regole azieuda li e gli aspetti organizzativi di sup- parallela. Le architetture parallele utilizzate peril data warehouse comprendono le architettu—
cesso; i metadati gestionali descrivo . re a multiprocessor-i simmeuici (8MP: symmetric multiprocessor), cluster ed elaborazione ad
porto al warehou se.
to i1 sistema di calcolo dell’orga nizzazio ne a una caratten— alto parallelismo (MPP: massively parallel processing) e 1e loro combinazioni.
L‘architettura di come a distribui
architetture base: 11 data wa- Gli ingegneri defla conoscenza e i responsabili delle decisioni usano strumenti che vanno
stica determinante per il progetto del data warehouse. Vi sono clue
rato. Nel progeno di un data wareho use distribuito, haruio dalle interrogazioni parametriche alle interrogazioui ad hoc a1 data mining. Il componente di ac;
rehouse distribuito e quello confede
te, come 1a replica. 11 paramo— cesso del data warehouse, quindi, deve fornire il supporto necessarlo per le interrogazioni strut-
grande importanza tutti gli aspetti relativi alle basi di daft distribui
e consisteuza dei dati. Un‘archi- . turate (sia parametriche sia ad hoc); prese insieme oostituiscono un ambiente di interrogazioni
narnento, 1e comunicazioni e i problemi relativi all’unifonnita
data warehou se, ad esempio sfruttando ai— assistito. [I data mining stesso utilizza tecniche di analisi statistical e d‘intelligenza artificiale.
tcttura distribuita pub garantire elevate prestazioni del
mento del carico e la scalabil ita delle prestazi oni. E necessano preve— L’analisi statistica pub essere eseguita usando fogli elettrouici avanzati, software di analisi sta-
goritmi evoluti di bilancia
di distribuz ione. L’idea del warehouse confe- tistica commerciali oppure :icorrendo a programmi personalizzati. Vengouo usate comune-
dere la replieazione dei metadati in ciascun sito
a quella di one base di dati confeder ate: una federazi one decentralizzata d1 da- mente anche teeniche come 1e medie mobiii e l‘analisi delia regressione. Le tecniche di intelli-
derato e analoga
raccolta di metadat i. Tenendo presente lo sfor— genza artificiale come gli algoritmi genetici e le reti neurali sono utilizzati per la classificazio-
ta warehouse autonomi, ciascuno con la propria
per cosn-uire un data warehou se, e probabil e che tali federazi oni consistano di corn— me e per scoprire la conoscenza presents. nel data warehouse che pub essere inattesa e difficile
zo richiesto
organizzazioni possono sce- . da specificare nelie interrogazioni (i1 data mining sara trattato in dettaglio nel Paragrafo 13.2).
pouenti di scala pit} piccola. ad esempio singoli datamart. Le grandi
confede rate datamar t esistenti piuttosto che ereare da zero grand: data warehouse.
gliere di
Analisi multidimensionale dei dati e viste. Alcuni hanno considerate 1 data warehouse co-
me un‘estensione delle viste delle basi di dati. Come ricordato sopra. le viste materializzate so-
no considerate un metodo per soddisfare irequisiti di un Inigliore accesso ai dati {per ulterio-
13.1.5 Funzionalita tiptche dei data warehouse ri 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
azioui complesse, trequenti ead solo alcune delle funzioui dei data warehouse. Le viste e i data warehouse sono simili per il
I data warehouse esistono per rendere pit immediate interrog
conseg uenza devono fomire un supporto alle interrogazrom fatto che entrambi sono costituiti da dati in sola Iettura estratti da basi di dati e focalizzati su
hoc su grandi quantita di dati; di
di dati transazionalt. [l oomponente uno specifico argomento, mai data warehouse se ne differenziano per i seguenti motivi:
piu efficieute e articulate di quanto sia richiesto alle basi
nde funzion alita tipiche dei fogli elettronici, l’elabora—
di accesso ai data warehouse compre o richiedono una memorizzazione persistente invece di essere materializzati a richiesta;
struttur ate e quelle ad hoc, '11 data nu-
zione efficieute delle interrogarioni, le interrogazioni e di solito sono multidimensionali, mentre 1e viste di one base di dati relazjonale sono rela-
Cid signific a che il data wareho use puo interagire‘con i piu dif-
ning e 1e viste materializzate. zionali;
e con 1e applica zmnr OLAP. Que-
fusi programmi di foglio elettrouico (ad esernpio MS Excel) o possouo essere indicizzati per ottimizzare 1e prestazioni, menu-e le viste non pUSsono es-
preprog rarrunat e come to seguent i:
sti ultimi offrono funzionalita sere indicizzate indipendememente dalle basi di dati sottostanti;
rita e aumentando la generalita (ad o forniscono funzionalita specifiche, mentre 1e viste non possono farlo;
o roll-up: i dati vengono riassunti diminuendo la granula
esempio da settimanalmente a uimestralmeute ad
anuualmente); o gestiscono grandi quantita di dati integrati. spesso temporali, di solito pit] di quanti ne sia-
ti (complementare a roll-up);
drill-down: i dati vengono mostrati con livelli di dettaglio crescen no contenuti in una base di dati, mentre le viste some 1111 estratto e quindi un sottoinsierne
ne incrocia ta (detra anehe rotazion e); di one base di dati.
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
attributi derivati (calcola ti): nuovi attribut i sono calcula ti eseguen do operazi oni sui valon 13.1.6 Difficoita di implementazione dei data warehouse
memorizzati e derivati.
ambiente transazionale, vi e L’analisi muifidimeusionale dei dati comporta alcuni problemi operativi significativi: la eo-
Poiché i data warehouse non hanno 1e resu-izioni tipiche dell‘ struzione, l'amministrazione e il controllo di qualita del data warehouse. La gestione del pro-
r efficacia uell'elab orazione delle interrog azioni. Tra gli strumenu e 1e tecruche
una maggio
' . ....-.J'

Analiai multidimensionaie del dati 3 data mining 415


414 Capltolo 13

I] data mining come parte del prooesso di scoperta di conoscenza. La scoperta di conu—
naie che pennettono a un utente di se-
base di dati. SQL supporta operazioni di algebra relazio soenza nelle basi d! dati, in genera abbreviata come KDD [knowledge discovery in databa-
collegare informazioni provenienti da pib
lezionare dati da tabeile (righe e colonne) oppure di ses). comprende tipicamente ben pib del serupljce data mining. Il processo di scoperta di co-
afo preced ente si a vista che la tecnologia di da-
labelle sulla base di carnpi comun i. Ne} paragr noscenza b cosutuito da sei fasizfi 1a selezione, la ripulitura, 1’ arricchimento. la trasformazione
'a, come l‘aggregazione e la sintesi di dati;
ta warehouse fornisce oggi altri tipi di funziona o codifica dei dau', il data mining e infine la visualiazazione delie informazioni scoperte.
su pib dimen sioni. In questo paragrafo si con~
inoiue consente di visualizzare 1e inform azioni Come esempio si prenda in considerazione una base di dati transazionaie mantenuta da una
molto popola re nota come “data mining". I! in—
cantata l'attenzione su un'altra area di interesse catena di rivendite a1 dettagljo di beni di consumo. Si supponga che i dati relativi ai clienti
azioni in forum di modelli o regoie par- d'ac-
data mining si riferisce aila scoper ta di nuove inform cludano il nome del cliente. i] codiee di avviamento postale, i1 numero telefonico, la data
deve essere eseguito su file e basi di da- di
tcndo da grandi quantita di dati. Per essere utile esso quisto, '11 codice del prodotto, i1 prezzo. 1a quantita e il totale. Eseguendo una procedura
oggi 1e sue funzio ni non sono ben integra te con i sistemi di gestione di e possibile estrane molta conoscenza utile. Nella fase di
ti molto estesi. Fino a KDD su questa base 61' dati di clienti
basi di dati. seiezione dei dati possono essere selezionati i dati che riguardano prodotti specifici o catego-
enze iecnico-scientifiche in questo
Verra qui presentata una breve rassegna sulle conosc rie di prodoixi, oppure prodotti acquistati in negozi posti in una specifica regione o in an”
area
diversi , come 1‘ apprendimento automati- er-
campo, in cui ci si affida a tecniche prose da ambiti del paese. I] processo di ripulimra def dati pub correggere i codici di awiamento postale
i. Verrb posts. in rilievo la natura delie di soli-
co, la statistica. 1e reti neurali e gli algoritmi genefic rati oppure eiiminare 1e regisIIazion i con prefissi telefonici sbagliati. L’arricchime nro
si posson o incontrare nelle basi di dati e ie po- te-
informazioni scoperte, i tipi di proble mi che to ampliai dati con uiteriori sorgenti d‘informazione: ad esempio dati i nomi e i numeri
stato deli‘arte di un grande numero di cui
teuziali applicazioni. Si effettuera una rassegna dello iefonici dei clienti, la catena pub acquistare altri dati sull’eta, sui reddito e sul credito di
fo 13.25) e si descriveranno quali sono i pro- one
strumenti commerciali {si veda i1 Sottop aragra godono e aggiungere questi dati a quelli gia disponibili nelle registrazioni. La trasfannazi
rea possibile.
gressi nella ricerca necessari 211 fine di renders quest'a e la oodifica dei dati hanno invece lo scopo di ridurre la quantila di dati: ad esempio i codici
di pro-
degli arucoli possono essere raggiuppati in categorie di prodotto pib vaste. come quella
gadget elettronici, videocame re. accessed e cosi via; i codici di avviamen-
dotti audio, video.
classificato
data mining to postaie possono essere raggruppati in regioni geografiche. i1 reddito pub essere
13.2.1 Una visione d’insieme della tecnologia del in dieci fasce e cosi via. In figura 13.1 b stata mostrata una fase chiamata ripulitura come pas—
warehouse
so prelimiuare delia creazione del data warehouse. Se i1 data mining si basa su un
o Rapporto Gartner.s i1 data mining b 51a stata ap-
In rapporti sulle tendenze di mercato come ii farnos gia esistente per qucsia catena di negozi, ci si pub aspettare che 1a ripulitura sia gia
ogie piu import anti per i] prossirno future. In questo paragrafo applicate 1e tecniche del data mining
indicato come una delle tecnol plicata. E 5010 dopo tale preelaborazione che vengono
piuvasto denominato "scoperta di conoscen- pub scopn're:
i] data mining viene messo in relazione al eampo per esuarre ]e regole e andamenti previsiona li. Il risultato dei data mining
individ uando nei rappo rti per mezzo di un esempio illustrauvo. Al-
za” {knowledge discovery), chiarura
o poi discussi nel Sottoparagrafo 13.2.3. o regole di associazione (ad esempio. ogni volta che un cliente acquista un’apparec
cune tecniche e algoritmi di data mining sarann anche un gadget elettronico);
video, compera
cfiente acquisti
data warehouse b quello di aiutare il processo I modelli sequenziali di comportamento (ad esempio. si supponga che un
Data mining e data warehouse. Lo scopo del comperi prodotti fotografic i e nel giro di
usato insieme :11 data warehouse per aiuta- una macchina fotografica . poi nel giro di tre mesi
decisionale con dei dad. 11 data mining pub essere pib di due volte nei periodi morti, pro-
essere applicato alie basi di dati funzionanu con altri sci mesi un accessorio: uu cliente che acquista
re ad assumere alcunj fipi di decisioni e pub di Natale);
piu efficace, i1 data warehouse dovrebbe com- babilmenie compete aimeno una volta durante i1 periodo
transazioni singole. Per renders 11 data mining in base alla fre-
o sinteti zzati. 11 data mining aiuta a estrapolare nuo- o alberi di olassificazione (ad esempio, i clienti possono essere classificati
prendere una raccolta di dati gia aggregati di prodot—
e possibile trovare interrogando o elabo- quenza delle visite, secondo i tipi di finanziamento a cui ricorrono, per quantim
vi modefli previsionaii significativi che non sarebb prodotti; sulla base della classificaz ione
ouse. Le applic azioni di data mining dovrebbero quin- ti acquistau' 0 per la propensione ad aluuni tipi di
rando i dati o i metadati nel data wareh
nti iniziali delia progettazione di un data wa- b possibile calcolare alcune statistiche rivelatrici).
di 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.
Esistono, quindi, molte possibilita per scoprire nuova conoscenza sui modelli
di acquisto
estese che e quanti pro-
sieme ai data warehouse. Nel caso di basi di dati molto mettendo in relazione fattori come l’eta, il reddito. il luogo di residenza e quali
mining dipende prim di tutto dalla disponibilita dotti vengono aequistati dai clienti. Queste informazioru possono poi essere utilizzate
per lo-
infatti. i1 successo delle applicazioni di data
promozioni,
di on data warehouse. calizzare nuove sedi di vendita in base alla presenza demografica, per eseguire

ti d'a'
pubblicazioni d’indagine tmnologica su cui i dirigen Quosra descrizione si basa arnpiamente su Adriaans e Zantinge (1995).
5 Il Rappotto Gamer e on esempio dell: motleplici 5
zienda si basano per premiere decisioni.
Analfsi multidimensionale def datl 6 data mining 417
416 Gapitelo 13

nalita di questo libre, quindi, discutere dettagliatamente l‘intero panorama di applicazioni che
per abbinare i predetti nelia pubblicita oppure per pregettare strategic di vendita stagienali.
cosutuiscene questa vasta area di n'cerca e di attivita.
L'esempie cemunque meetra anche che i1 data mining deve essere precedute da una signifi-
cativa preparaziene dei dati prima che posse fornite infetmazioni utili che pessano influenza-
- :I‘lpi di cenescenza sceperti durante il data mining. Il temiine “cenesccnza” a interpretate
re direttamente 1c decisioni cemmerciali.
in mode molto ampio e implica un certo grade di intelligenza. La conescenza apesso e classi-
I risultati dei data mining pessene essere visualizzati in melti formati, quali elenchi, gra~
ficata in indutliva e deduttiva. I] data mining si eccupa della conoscenza induttiva. La cone-
fici. indici o visualizzazioni.
sccnza pub essere rappresentata in val-1e forme: in mode non strutturato. da regole oppure at-
travcrso Ia logica preposizionale. In forma pin strutturata puo esscre rappresentata usande ai-
Scopi del data mining e deiia scoperta di cenescenza. In generate gli scopi del data mining
beri di decisiene, reti semantiche, reti neurali o gerarchie di classi e strutture (frame). La co—
rientrane neile seguenti classi: previsione, identificazione, classificaziene e ottimizzaziene.
nescenza scepeita durante il data mining pub essere desctitta nei cinque modi seguenti.
dei da-
o Previsiene. Ii data mining permette di stimare l‘andamente future di certi attributi
1. Regele di asseciaziene. Queste regele mettene in relazione ia presenza di una serie di
ti. Esernpi di data mining previsionale comprendeno 1‘ analisi delle transazioni di acquisto
elementi con una sen'e di valet-i per 1111 altre insieme di variabili. Esempi: (1) quando una
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
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.
mene maggieri profitti. In queste applieazieni la logica cetmnereiale viene usata insierne
2. Gerarchie (1i classifieazione. Lo scopo é elaborate on insieme di eventi o transazieni per
al data mining. In un conteste scientifice i modelli di cette onde sismiche possono servixe
create una germ-chin di classi. Esempi: [1) ma popolaziene puo essere divisa in cinque fa-
a predire con alta probabilita un tenemoto.
sce d1 aflidabflita in base alla storia delle richieste di credito precedenti; (2) a possibile svi-
o Identificaziene. La presenza di andamenti iipetitivi nei dad pub essere usata per identifi-
care l’esistenza di un articelo, un evento o un'atfivita. Ad esempio, intrusi che cercano
di luppare uu medelle dci fattori che detenninane i.l posizienamcnto di un negozio in una cer-
violate un sistema infomatice pessene essere identificali attraverso i programmi che ese- ta zona su una scaia 1 a 10; (3) i fendi cemuni d'investimento possono essere classificati
gueno, i file a cui accedone e il tempo di CPU impiegate per sessione. Nelle applicazioni In base ai dati reiadvi alie prestazieni finanziarie che esprimone carattetistiche come le
biologiche l’esistenza di un gene pub essere identificata da alcune sequenze di nucleotidi quotazieni, Ia rendita e la stabilita.
nella sequenza del DNA. Anche l'area nota come autenficazione a una forrna di identifi— 3. Medeili di cemportarnento sequenlali. Viene cercate un modelle in grade di giustifi-
caziene. Ci si assicura se un utente a: veramente chi dichiara di essere oppure proviene da care una sequenza di azioni e di eventi. Esempio: se un paziente a state setteposto a un in-
una ciasse auterizzata; cio ricluede un confronte di paramcu'i, immagini o segnali in una tervente chimrgico di inserimente di un bypass cardiace a causa delle arterie estruite e di
base di dati. un aneurisma e nel giro di tin anne si treva un alto livello di urea nel sangue, é prebabile
- Classificazione. ll data mining pue suddividere i dad in mode da identificare diverse clas- che entre 18 mesi soffra di insufficienza renaie. La sceperta di modelli di compottamente
si e categorie in base a cembinazioni di patametri: ad esempie i clienu' di un supermerca- sequenziali equivale alla scepcrta di un‘associaziene tra eventi con detenninati rapporti
to pessono esseie divisi in clien‘d alla ricerca di scenti, clienti frettolosi, cfienti tegelati e temperali.
clienti eccasienaii. Tale classificaziene pub essere usata nelle successive analisi delle tran- Strutture all’inteme di serie temporali. Si possono sceprire similitudini tra 1e posizio-

.‘t
sazioni di acquiste dei clienti come attivita post-mining. Talvolta la classificaziene che si m delJe’serie temporali. Ecco tre esenipi in cui il prezzo di meroate azienario cesdtuisce
basa sulla cenescenza del deminio viene usata come input per suddividere i1 prehlema del una sene temperaie: (1) 1e azioni delle societa elettrica Energia ABC e della societa fi-
data mining e reuderle pifi semplice da affreutare: ad esempie, gli alimenti biologici. gli nanzmia Titeli XYZ mestrane 1e stesse andamento durante i1 1993 in termini di prezze di
stuzzichini per aperitivi e i cibi per le mense scelastiche sone categerie dislinte nel cem- chiusura delle azieni; (2} due predetti ptesentane lo stesso andamento delle vendite in
mercie di azimentari del supermarket. E quindi censigliabile analizzare 1e relazioni tra le estate, ma un diverse andamento in inverno; (3) la configuraziene deI vente magnetice so-
categorie come prebiemi separati. Questa classificaziene empitica pub essere utilizzata per lare pue essere usata per predire i eambiamenti nelle cendizieni atmosferiche deiia Terra.
cedificarei dati in mode appropriate prima di settepnrli a ulteriere data mining. 5. Categorizzazione e segmentaziene. Un date insieme di eventi e di elemenli pne essere
o Ottlmizzaziene. Un peasibile scope del data mining e ettimizzare l‘ulilizze di risorse ii— parliaienato {segmentato} in settoinsiemi di elementi “simili”. Esempi: (1) un intere grap—
mitate come il tempo, le spazie, il donate 0 i materiali massimizzando 1e van'abili di out- pe dIIdati riguardanti la cura di Lute malania puo esseze divise in sottegruppi basati sulle
put come In vendite o iprefitti teneude conte di alcuni vinceli. In queste case 10 scope del Simzlitudini-degfi effetti collaterali; (2) 1a pepelaziene adulta degli Stari Uniti pub essere
data mining e Simile alla funzione ebiettive usata nei problemi di ettime vinceiate tip'tci classificata in cinque gruppi. da “queue che acquista eon probabifita pill alta” a “quello che
delia ricerca eperativa. acquista cen probabilita pin bassa” un nueve pmdette: (3} gli accessi eseguiti da tm grop-
pe d1 uteuti a una eerie di documenti sul Web, ad esempie in una biblioteca digitale. pes-
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« sone es‘sere analjzzan' in relaziene alle parole chiave presenti nei decumenti per tivelare
nea di demarcaziene netta che separa i1 data mining da queste discipline. Va :11 di la delle fi- categene e gmppi di utenti.
-1 1. LmWiw— III in - '- - 1...“; 3 '3- c. .. m. - - '
Analisi multidimensionale dei datl a data mining 419
418 Capitolo ‘13

gole possioili che superino un valore di soglia minimo, specificato dall’uteme. di supporto 6
desiderata r: una combinazionc dei
Per la maggior parte delle applicazioni, la conoscenza d1 hvello d1 coufidenza. l'l problema viene quindi suddiviso in due sottoproblemi:
in maggio r dettagl io i tipi di conoscenza qui pre-
Lipi visti. Nei paragrafi seguen ti si trattera nno
l. generare tutti gli insiemi di elementi, detti insiemi mtesi, che ham-m un supporto che ol-
sentati.
trepassa 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 mini-
13.2.2 Regole di associazione rrm 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 con-
quella relativa aila scoperta delle rego-
Una delle piu importanti tecnologie del data minn a fidenza minimo, la regola Z => Y(cioe X — 1’ => Y} a una regola valida.
La base di dati e conside rate una raccolta di transazioui, ognuna deile qua-
le di associazione. Creare Ie regole usando tutti gli insiemi estesi e i loro supporti é relativamente semplice.
o comune e quello dei dati del paniere d‘acqui-
li coinvolge una serie di elementi. Un esempi Scopnre, tuttavla, tutti gh Insiemi estesi insieme a1 valor: dc! loro supporto e on problema
corrisp onde a do che un consum atore acquist a durante una visita a 1m super-
sto. I] paniere comple‘sso se la cardrnahta dell‘insieme di elementi e molto alta. Un superrnercato ha in ge-
di un campione casuale:
mercato. Si considerino 1e seguenti quattro transazioui nera nughata d1 prodotti: i1 numero dei sottoinsiemi di prodotti distinti e 2’", dove m e il nu-
Ora Prodotti acquistati mero_de1 prodotn, e calcolare 11 suppono per tutti i possibili insierni di prodotti diventa com-
ID della transazione
6:35 latte. pane, succo di frutta putatuonalmente molto oneroso. '
101
7:38 latte, suceo di frutta _ lier ndurre lo spazio di ricerca combinatoriale, gli algoritmi per trovare 1e regole di asso—
792 crazrone devono avert: 1e proprieta seguenti:
1130 8:05 latte, uova
1735 8:40 pane, biscotti, caffé 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);
La forma di una regain di associazione e la seguente: n all contrano,_anche l‘estensione di un piccolo insieme deve essere piccoIa (i1 che implica
che non abbla suppofio sufiiciente).
X=>Y,
La' seconda proprieta aiuta a eliminare un insieme da ogni ulteriore considerazione di
insiemi di elementi, con J:f e y, che so- estensrone se nsulta essere u'oppo piccolo.
dove X = {x,, xi, ..., x,}, e 1’: {y,. y1,...,y,,,} sono due
ue i e j. Questa associa zione specifica che se un cliente ac-
no elemenfi distinti per qualunq
Y. In genere qualsia si regoia di associazione ha la for- Algoritnu’ base-per trovare Ie regole di associazione. Glj algoritmi utilizzati per identifica-
quista X, e probabile che acquis'd anche re luster-m estest souo progettati per operate come descritto qui di seguito.
nd side, parts sinistra ) => RHS (right-h and side, parte destra), dove LHS e
ma LHS [left—ha
di associa zione dovreb bero gar-entire insieme il sup- 1. Si esamina i1 supporto degli insiemi di cardinalita I, chiarnati 1-insiemi, esaminando in
RHS sono insierni di elementi. Le regole
porto e il livello di confidenza. dettaglio la base di dati, e si eliminano quelli che non soddisfano il supporto minimo ri-
tuale di transazioni che coinvolgono tut-
I] supporto per la regola LHS => RHS e la percen chiesto.
i1 supporto e basso, implica che non esi— 2. Si estendono gli 1-insiernj estesi per ottenere i 2-insiemi aggiungenclo un elemento alla
ti gli elementi nell‘unione,1’insierne LHS U RHS. Se e, perché
RHS si verifichino insiem volta in mode da generare tutti i possibili candidati di cardinaljta 2. Si verifica i1 supporto
ste una schiacciante evidenza che gli elementi in LHS U Latte => Succo di fret—
l‘unione accede solo in una piccola frazione di transaz
ioni. La regola per tutti gli insiemi candidati esaminando in dettaglio la base di dati ed elirninando i 2-in-
=> Succo di frutta ha un supporto solo del 25%. Un siemj che non soddisfano il supporto minimo.
ta ha un supporto del 50%, mentre Pane
altro termine che indica i1 supporto e la prevalenza
di una regola. 3. Si ripetouo 1e fasi precedenti; alla fase k, i (k— I) insiemi precedentemente trovati venge-
in considerazione tutte 1e transazioni che no estesi per ottenere i k-insienfi, e conu-ollati per valutare il supporto minimo.
Per calcolare il livello di coufideuza si prendano
enm della regola di associazione LHS =>
includono gli elementi di LI-IS. [l livello di confld ‘ 11 procedimento viene ripetmo fine a quando 5i riescono a trovare insiemi estesi. La ver-
che includo uo Rl-IS n'spetto a1 totale delle transazio‘
RHS e la percenmale di tali transazioni sions pin sempljce di questo algoritmo, tuttzwia, e no vero incubo combmatorio. Molti algo-
nza e laforza della regola.
ni. Un altro termine sinonjmo del livello di confide delle Ire ntmi piu sofisticati sono stati proposti per ricavarc 1e regole di associazione. Essi differiscono
enza e 663%, ii che significa che
Per Latte => Succo di frutta ii Livello di confid Ira lore soprattutto in relazione a come vengono creati gfi insiemi candidati e a come some cal-
cui vi e il latte, due conten gono anche il succo, e Pane => Succo di fiutta ha i1
transazioni in gono il. colati i loro supporti.
una dclle due transazjoni che conten
livello di confidenza del 50%, i1 che significa Che Alcuni algoritnfi utilizzano slrutture di dati evolute come mappe di bit (bitmaps) e alberi ha-
pane contien e anche i1 succo. sh per ruantenere le infomazioni sugli insienu'. Sono stati proposri diversi algoritmi che utiliz—
nza non vanno necessariamentc di pa-
Come si pub vedere i1 supporto e il livello di confide zano pm scansioui della base di dati perché i1 numero potenziale dj insiemi, 2'”, pub essere trop-
ations: del data mining e create. tune 1e re-
ri passe. Lo scope della ficerca di regole di associ
Anallsi multidimensionale dei datl 9 data mining 421
420 Capltclc 13

EEVANDE
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
GASSRTE NON GASSATE
prenda in considerazione la Figura 13.10 che mostra la tassoncmia dei prodotti di un super-
mercato. Essa mostra due germhie, rispettivarnente di bevande e des‘sert: i gruppi completi
BIBITE CDCKTNL SUCCHI 'IN ACQUA [N TE FHEDDI pnsmno anchc non create associazioni della forms. bevande => dessert, oppure dessert => be»
Bowel-N“ BOTTIGUA
/CDiLE\ / l\ / l\ vande. '
/ l\
AHANCIA MEM ALTFII MTUHALE OLIGOMINEFIALE
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.
DESSERT 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 intercssan-
GELATI DA Fla-TS YoyT £11) ti 50:10 ie associaziom’ Ira una gerarc‘nia e l’aitra, che possono verificarsi tra gruppi di elementi
posti a diversi livelli.
CON TANTA PARZLALMEN’TE BIOLOGHCO
PANNA SCREMATO
Associazioni negative. 11 problema delia scoperta di un’associazione negativa é pit: impe-
Figure 13.1 D Una tassonomla dei prodottl di un supermercato. gnativo 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 betti-
gfia“ (qui i1 60% si riferisce al livello di confidenza per la regola di associazione negative). In
llama
po grande per i contamri se si esegue una singola scansione. Gli autori di questo libro una base cli dati con 10.000 elementi, esistono 21mm possibili cornbinazioni cli elementi. la
proposlo un loro algoritmo. chiamato algoritmo di partizlone f qui brevemente presentato. maggioranza dei quali non appare neanche una volta nella base di dati. Se 1‘ asseuza di una de-
Se viene data una base di dati con un piccolo numero di potenziah' insiemi eslesi, ad esem— terminata combinazionc di elementi inducesse un'assuciazione negativa, si avrebbero a livel-
pio alcune migliaia, i1 loro supporto pub esserc esaminato in una scansione usando una tecni- lo potenziale milioni e milioni di regole di associazione negative. con RHS di nessun interes-
ca di partizione. La partizione divide la base cli dati in parti disgiunte. Ogni parte vienc presa se. 11 probiema é aliora trovare solamente 1e regole negative interessanti. In generale si e inte-
in considerazione come base Eli dati separata, creando tutti gli insieme estesi relativi a una par- ressati ai casi in cui clue specifici insiemi di elementi appaiono molto raramente nella stessa
te in un solo passe. Alla fine della prima scansione. quindi, si ottiene l’elenco degli insicmi transazione. Cio pone due problemi.
estesi di 111t ie parti che compongono la partizione. Quando questi elenchi vengono unifica-
a Data un catalogc (11 10.000 prodotti, la probabilita she due qualsiasi di essi vengano ac—
ti, si scopre che contengono alcuni falsi positivi, cine alcuni degli insiemi considerati sono
quistan' insieme a (l!10.000)*(1l10.000) = 104. Anche 56 Si scopre Che i1 supporto effetli-
estesi rispetto a una parte ma possono non qualificarsi come tali in moite alu'e paru' e quindi
vo dell'evento dell‘acquisto congiunto é zero, questo non significa necessariamente an al—
non superare i1 supporto minimo rispetto alla base di clati originale. Si noti Che non esistono
estesi iden- lontanamento significativc dalle aspettative. e quindi mm P. un’associazione negativa inte—
fdsi negativi. cioe nessun insieme esteso verra pcrso. L‘unione di tutti gli insiemi
ressantc.
tificati nel passe 11110 50110 usati come input del passo due come insierni candidati e viene cal-
o L‘altro problema E: pifi serio: si stanno cercando combinazioni di prodotti con supporto
co]ato i1 loro supporto cffettivo per .l'inrem base di dati. Alla fine della fase due sono stati iden-
molto basso, 6 Ci sono rniJiorIi di combinazioni con mi supporto basso o anche uguale a
tificati 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 zero: ad esempio. 1m insieme di 10 milioni di tansazioni relative a 10.000 prcdotti gene—
fase. L‘ algoritmo di partizionc. peril quale sono stati suggeriti ulteriori miglioramenti,‘ si pre- ra pifl di 2,5 miiiardi di combinazioni mancami che corrispondono a mifiarcli di regole inu—
sta all’implementazione parallela, per efl'icienza. tili.

Regole di associazione tra gerarchie. Esistono alcuni tipi di associaziorli parficolanncnte in- Di conseguenza. per trovare regole di associazione negative interessanti. si deve utilizzare
teressanti perché si vetificano tra geramchie distinte di elemenfi. A volte e possibile attribuirc 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
7 Si veda Savascrc c altn' [1995) per ultericri dettagli sull'algoritmo. sulle minim di dati usate per implementap
di solito acquistano anche la bevanda Topsy, e non Joke e mm Wakeup, cio sarebbe interes-
lo a per una valutazionc delle sue mutation-Ii.
“. ”" "onsultitm 4’3“"n c eff-5 "‘96) e LE; - sante._ 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 425

Sceperta di modeili iii cemperlamento in serie temperali. Le serie temporaii sane se- buisce 1e variabili stesse a una classe di destinaziene, 1a regola e detta regela di regressione.
quenze di eventi; ciascun evento pue essere un date tipo fisso di una transaziene: ad esempie. Un’applicazione generale della regressiene si vex-jfica quando. invece di ate-ibuire una tupla di
i1 prezzo di chiusura di un’azjene e di un fende d’investimente a un evento che si verifiea egni dati di una relaziene a una classe specifiea, i1 valore di una var-labile viene previsto in base a
gieme lavorative per ciascuna azione e ciascun fondo; la sequenza di quest‘t valeri per aziene quella tupla, Ad esempio si prenda in censideraziene 1a relazione
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 preeedente- LABJ‘ESTS (ID paziente, esame 1I esame 2, ..., esame n)
meme: ad esempie si pub trevare un periodo durante cui l'aziene é salita o si e mantenuta sta-
bile per :1 giemi, oppure trovai'e i1 periedo piu lunge in cui l‘aziene ha avute una fluttuaziene contenente valori Che seno i risultati da una serie di 11 esami di laboratorie eseguiti su un pa-
di non pin di 1% sul prezze di chiusura precedent: eppure i1 trimestre in eui l’azione ha avu- ziente. La Variabile di destinazione Che si desidera prevedere e P, la probabilith di sopravvi—
to i1 maggiore guadagno e la maggiere perdita percentuale. Le serie temporali posseno esse- venza del paziente. La regeia di regressione prende la forma seguente:
re 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 (esame l neD’intervaflo.) e (esame 2 nell’intenrallog) e (esame n nell’intervallon) => P = x
funzionalith delle basi di dati temporali. oppure x < P < y

Scoperta di regele di classificaziene. La classificaziene e i] precesso di apprendimente di A velte a possibile predire un valore uniee per P. mentre in altri casi bisogna accoutentar-
una funzione che classifica un date eggette di interesse in una di molte ciassi possibili. Le 51 d1 un intervallo di valori. Se ci si riferisce a P come a una funzione:
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 P =f(esame 1, esame 2. ..., esame n}
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 la funzione e detta funziene di regressione per prevedere P. In generale. se la funzione ha la
e un elemente note per ciascun richiedente) supera ii 25% delle entrate nette mensiIi (uu altre forma
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". y =f{xh x2) "'i I"),
In generale 1e regele di classificazione possono essere piu eomplesse e della format se—
guente: 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 tec-
(var, nel]‘intervallo,) e (var2 nell‘intervalioz) e (V211;1 nell’intervallofl) => l’Oggetto 0 ap- nica statistica eomunemente usata per adattai‘e un insieme di esservazioni e di punt't in n-di-
partiene alla classe C1. mensioni rispetto alla variabile di destinaziene y.
L’anaiisi di regressione e uno strumento molto comune per l'analisi di dati in moIti demi-
E neeessario stabilire una serie simile di regole per ciascuna classe. ni di ricerca. La scoperta della funziene per predire [a variabile di destinaziene equivaIe a
Le variabili varl. ..., var“ seno gli attributi dell’eggetto 0 e costituiscene le colonne di una un‘operaziene di data mining.
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 Reti neurali. Le reti neurali seno una tecnica derivata dalla ricerca in intelligenza artificia-
la pepelazione della tabella negli elementi delle classi. una velta ehe queste elassi seno defi- le che utilizza la regressiene generalizzata e fornisce un metedo iterative per eseguirla. Esse
nite. Il preblema del mining e scoprire 1e classi e 1e cendizioni Che Ie definiseono. realizzane I‘adattamento progressive di una curva per ricavare una ftmziene da urn insieme di
La principale differenza tra la sceperta delle tegele viste precedentemente e la sceperta campieni. Tale tecnica costituisce un “approccio di apprendimente”: a. govemata da un cam-
deile regole di associazione e ehe 1e variabili nelle regole precedenti prendene i valori da un piene di esempi che viene usato per l’apprendimento e l'iuferenza iuiziali. Con questo mete-
dominio discrete 0 continue (ad esempio i1 numero di bambini, 1e entrate in dollari), mentre do di apprendimente, 1e n'sposte a nuevi input posseno essere interpolate dagli esempi neti.
nel case :11 regole di associazione gli insiemi sane formati da una eerie di elementi predefini- Questa interpelaziene dipende dal modello della realté d'interesse [rappresentazione interna
ti. hieltre. una regela di asseciazione si riferisee a un insieme di transazioni (registrazieni di del dominio del problema) adottata dal metedo di apprendimento.
input), mentre una regela di classifieaziene Specifica come attribuire eiascuna registrazione a Le reti neurali possono essere classificate in due grandi categorie: 1e :eti con supervisiene
una classe. 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
Regressions. La regressione e mi’ applicaziene speciaie della regola di classificaziene. Se una rappresentazioni inteme senza output ottenuti a seguito di campionamento, some chiamati me-
regela d': classificazione viene definite come una funziene calcolata suite variabfli che attri— tedi ad apprendimento senza superfisione
— ' ’ n : III- . E‘i : raw
“WAN," gamma“; - "a
Analisi multidimensionaie dei dati at data mining 429
423 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 Societa
classific azione o nel clusterin g. e 1e anabsr statue; _e1,1:a:op;oecm_ Prodotto Tecnica Plattaferma Interfaccia‘
delle regole utilizzata nella
1 id1a di casi 1e
no comprendere la regressiene e molte altre tecniche. Aim prodoitt commerc
Acknosoft Kate Albert cll decisione, WIn NT Microsoft Access
tecniche di regionamento UNIX
Che avanzatc come gli algoritmi genetici. tecniche d1 I-aglonamerito basalt) 5‘; stut m matching
atcnale. 1 pat e basate su studio di casl
rcti Bayesiane. la regressione non lineare. l'otiimizzamone combm
Angoas Knowledge Alberi di decisione. Win NT 0080
elalo 'ea fuzz . ‘
cma ODB'CdEOdEfingzzzaiiiz Seeker tecniche statistiche
Lagiiiaggioriarte degli sirumenti di data mining use l’interfa
Connectivity), uno standard industriale che permette di operate com If: best _ me Access Business Business Fieti neurali. Win NT ODBC
pm diffum, cc inter:
l‘acccsso ai dati nella maggior pane dei pregrammi d1 has: d1 dati
Objects Miner apprendlmento automation
pacchetti software fcfsmilicggger La
dBASE. Iafnmiix, Oracle e SQL Server. Alcuni di questi Crossz OueryObJect Tecnlche dl ottimizzazione Win NT ODBC
e £10m di e55‘:
face: a specifiei program-iii di basi di dati; ipih comuni scno Oracle, graces di anallsl statistica MUS
Win owsfirn.Eli fare in made
maggior pane deglj strumenti funziona nell’ambiente Microsoft UNIX
UNIX. La tendcnza evguei a 5
5011:: disponibili anche per il sistema operative Data Data Repartcno complete UNIX ODBC
prodotti siano in grade di operaIe nell'arcb iente Microso ft 1111 ow (:1 sin ola mac- Disiiileries Surveyor di tecnlche.
ch: tutti i
1n modo sequcim a e su unfu g mum d1
In generale questi programmi vengono csegum use integrate dI vari ODMG

funziona no in modalita clientiser ver. Alcuni pro-doth incorpor ate nzmme can algoritmi DM
china e molti
su architett ure parallele e possono interope
claborazione paraflela per essere eseguiti IBM Intelligent Classificazione. . UNIX IBM
altri strumenti di elaborazi one analitica in linear (OLAP). Miner regole di assoclazione. (AIXJ DBQ
modelli d1 predizicne
con l:uterite mtestlfliS1:11:
Interfaecia utente. La maggior parte degli strurnenti interagiece Megaputer Polynaiyst Acquisizione delia Win NT 0080
Alcuni prodott i ricorron o atecnic he d1 manila-222101;: di ma- Intelligence concscenza simboiica. OSI'2
terfaccia utente grafica (GUI). Oracle
e sonn anc e 1‘1; 5:;uni neglj
cate per visualizzare dati e regole, ad esempio MineSetldi 861.
programmezione evolutlva DBZ
e a caratten sane memo usatc e p1
nipolare i dati interattivamentc. Le interfacc NCR Management Regele di associezlone Win NT 0030
Discovery
strumenti per UNIX come Intelligent Miner di IBM.
Tool (MDT)
faccialeeyfogfinpifi
Interfaccia per programmi applicatlvi. La dispcnibilita di un'mter SAS Enteprise Alberl di decisione. UNIX ODBC
ming interface ) non é sempre garantita . a Alucgflg;i di es— Miner
applicativi (API: application program regole d1 aseociazione, (Solerls) Oracle
di data mining non permette l’utiiizzo delle'lcro lfiinzioni 1r1t.e1'rie.‘:li Lamag- retl neureii, Win NT ASMUD
te dei prodotti
e ll lore c:lj 051.16 amen- regressions. Macintosh
si, ruttavia. consentono ai prograrnmatori di applicaziom d1 nauhzzar clustering
da hierene ‘cdi cfimandi
gior pane delle interfacce applicative sono costituite da librerie C e
Alcuni strumenti mcludono hngilflggl Siilcon MineSet Albert di decisions UNIX Oracle
ti dinamici (DLL: dynamic link libraries).
Graphics regcle di assoclazlone (Irixi Sybase
d' ' i dati ID rietari. . ..
Informlx
1 bitilTibella €3.11) scno elencati 1i} snumenti di data miniagpaltlfmlafli'lffrili? rapprealentat;
lilpml tuttoiistrfl:he ‘ODEC: Open DataBaea Connectivitn ODMG: Object Data Management Gmup
Vi. Oggi vi sono pin di 70 prodotti commerciali di data mmmg dlSpDnlb
american i vi some Data Surveyor . che e olandese , e o yana y .
do. Tra i predotti non
e russo.

evoluziene :lilla $261331; usando tutte 1e risorse disponibili e traendo vantagg'lo sia dagli ambienfi di calcolo distribuiti
Svilnppi futuri. Gli su-umenti iii data mining 50:10 in continua sia da quelli paraIIeIi. Questa evoluzione i: importante soprattutto perché 1e basi di dati mo-
scientifica pin recente. Molt: d1 ess: incorriorano g3: a 6 nd‘
idee sviluppate dalla ricerca derne contengono quantita moito grandi di informazioni. Le basi di dati multimediali stanno
ricerca sta 5 1»:
a punto nell‘intelligenza artificiaie (AI: artificial intelligence), nella diventando pit} diffuse, ma i1 recupero e la memorizzazione delle immagini some ancora ope—
disnibuita. su architetture razioni lente. El caste della memoria di massa sia perb diminuendo e il massiccio immagazzi—
I ozflzjzzilgiiche modeme di basi di dati, come l‘elaborazione namemo di informazioni Sara utiljzzabile anche da piccole societa. I futuri programmi di da-
e'bfiii;
clienu'scrver, in basi di dati parallele e nell’analisi multidimensionale de1 dart garantisc ta mining dovranno quindi essere in grade di operare su pin grandi insiemi cli dati di pin or-
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 gamzaazioni.
430 Capitolo 13 Analisi multidimensionale dei data a data mining 431

ft Windows NT e UNIX 13.6 Quali tipi di indici vengono usau' per i data warehouse? Si illustrino gli utilizzi di cia-
In un prossimo future probabilmente i sistetni operativi Microso
rne standard , con una predomi nanza di Window s. La maggior parte del scuno con un esempio.
saranno le piattafor
per estrarre i dati dalle basi di dati azien- 3.; gr ismivano 1e fasi di creazione di no data warehouse.
software di data mining usera ODBC come standard
proprieta ri sono destinati a scompar ire. . u ' con 51'd ermoni
”house? ' ' giocano
' un ruolo importante
' nella progettazrone
' di' on data wa-
dalj; i formati di input
standard, tra cui immagi-
Vi e una precisa necessita di eseguire il data mining su dati non
diali. Gli sviluppi algoritm ici per il data mining su dati non standard non 13.9 Si descrivano le artivita else on utente puo eseguire so on data warehouse e si illustri-
ni e altri dati multime
sufficien te per la conunercializzazione. 13 10 nQo :11lsfiltau d1 queste attivita an on data warehouse multidimensionale.
hanno pero ancora Iaggiunto un livello di maturita
. 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.
Sommario 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
nti della tecnologia delle ba— o scenario app 'cativo completo in cui nuova conoscenza no essere Ira
In questo capitolo abbiamo esaminato due aspetti molto importa
significa tivo nel prossirno decennio : l‘analisi multidimensio- base di dad transazionale esistente. P es in d3 “113
si di dati che avranno un ruolo
13.15 Quali sono gh' scopi che i] data mining si propone?
nale dei dati e il data mining.
processo che richiede di- 13.16 Quail 50110 i cinque tipi di conosoenza prodotti dal data mining?
L’analisi multidimensional: dei dati puo essere vista come no
pensato come 1' attivita che estrae la cono- 13.17 (1.053 sono 1e regole di associazione come tipo di conoscenza? Si diano 1e definizioni
verse attivita preliminari; il data mining pub essere
se di dati. Sono stati introdot ti coneetti fondarne ntali relativi all'a- di supporto e di hvelio d1 confidenza e 1e si utilizzi per definire una regola di associa-
scenza da on data warehou
ri funziona lita delia visualizzazione atone.
nalisi multidimensionaie dei dad, discutendo 1e particula
o uattato le modalita con cui i data warehou se fornisco no a chi de- 13.18 Si descriva una regola di associazione tra gerarchie con un esempio.
_ multidimensionale. Abbiam
di dettaglio . in base a un‘organ izaazio- 33;: Cos e una regola d1 assooiazione negativa nel contesto delia gerarohia di Figural 13.10?
. ve prendere decisioni informazioni al livello corretto
appropri ate. 13.21 Euzhfisgjno le d1fi:1t:t:llct1a1 d1 estrazione delle regole di associazione da basi di dati estese?
F ne e a una prospettiva
della oonoseenza nelle basi . 1 e sca no mo
Hemsets- 0 di compofiamento sequenztale
Abbiamo esaminato anche un esempio eloquente di scoperta ' che St' has:' sulle sequenze d1' 4
pin vasto rispetto :11 data mining. Per i1 data mining, tra 1e varie tecniche. si
di dati, un ambito
fornend o un‘intro duzione dettagliata al- 3%: 51 the un esempio di una configurazione ripetitiva in una serie temporale.
e dato particolare rilievo alie regole di associazione,
sono stati trascura u' 1e reti neurali e gli algoritm i genetici . , Cosa :ono 1e regole d1 classificazione? Quale legame c'e tra regressione e classifica-
la loro scoperta, ma non
dell'ana lisi multidim ensiona le dei dati sia su alone.
La ricerca e oggi impegnata sia sul fronte
e sono state sottoline ate alcune delle direzion i di ricerca pin promet- 13.24 Si desm'ivano 1e reti neuraii e gli algoritmi genetici visti come tecniche per il data mi-
quello del data mining,
dei prodotti della tecnologia delle rung. Quah sono le pnncipali difficoIta neI loro utilizzo?
tenti. L’attenzione. infine, a state rivolta al futuro mercato
o esamin ato 10 dei 70 suume nti di data mining egg-i disponibili; ci si 3.25 Si de‘scnvano 11 clustering e la segmentazione come tecniche di data mining.
basi di dati. Abbiarn
tivemen te i1 numero e le funzionalita. .26 goal-1 sono Ie carattenstiche principali deglj strumenti di data mining? Si valutino le
aspetta che 1a ricerca future ne aumenti significa
nmom ch uno strumento del data mining non menzionato nell'elenco di Tabella 13.1.

Esercizi
Bibliografia selezionata
13.1 Cos'e un data warehouse? In cosa differisee da one base di dati?
ing), ROMP {Relational Lianalisi multidimensionale dei dati negli ultimi anni e stata oggetto di molte pubblicazioni
13.2 Si definiscano i termini: 0MP (Online Analytioa} Process
mensio nal OLAP}. DSS (Decisio n Support Systems). Si announce a Inmon (1992) I'aver fatto acoettare in modo difiuso i1 termine “anafisi multi;
OLAP), MOLAP (multidi
endole tra 1e funziona- dimension—ale”. Codd (1993) ha reso popolare il termine OLAP (oniine analytical processin )
13.3 Si descrivano le caratteristiche di un data warehouse, suddivid
se e i vantagg i che gli utenti ne derivano . e ha defimto una serie di caratteriatiche dell’analisi multidimensionale dei dati atte a fornife
lita di on data warehou
nel data warehousing? suipono OhAP. Madison. (1996) fornisce una rassegna completa delle tecniche dell’analisi
13.4 Cos‘e an modello multidimensionale di dati? Come viene usato
a fiasco di nave, cassette- :1 tidlmenSionale dei dau disponibiii presentando 1e strategic che 1e societa dovrehbero uti-
13.5 Si definiscano i seguenti termini: schema a Stella. schema
zzare nel loro swluppo. Bischofl" e Alexander (1997) offrono una raccolta di consigli forniti
zione deifam’, daramert.
434 Capltolo 14 Tecnologie e applicazlonl emergentf delie basi di dati 435

pi sono caratterizzate dalla lore nature “strafica”: una siniszione in cui i’utente finale pub solo 14.1.1 Aceesso Web alle basi di dati
recuperare dati dalla base di dati. mentre l’aggiomamento con ulteriori infomazioni e limita-
to :1i esperti che controllano e analizzano i nuovi dati che vengono immessi. 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 moto-
14.1 Basi di dati e World Wide Web re 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.
11 World Wide Web (WWW), conosciuto da tutti come “i1 Web". fu sviiuppato in origine in In questo mode, e diventato necessario consentire agli utenti l‘aecesso non solo ai file pre-
Svizzera presso il CERN' all'inizio degli anni novanta come on sisterna ipermediale1 so large senti no] file system. ma anche alle basi di dati e ai DBMS. supportando l'elaborazione delle
scale che consentiva ai biologi di condividere 1e informazioni. Oggi quests tecnoiogia per- interrogazioni, la creazione di resoconti e cosi via. Gli approcci esistenti possono essere divi-
mette l' accesso universale a informazioni condivise a chiunque abbia l’accesso su Internet: es- S1 in due categorie.
sa 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— Accesso usando script CGI. Si puo far interagire '1] server di gestione della base di dati con il
mazioni sono memorizzate in calcolatori denominati server Web in file condivisi e accessibi- server Web atlraverso I’interfaccis CGI. In Figure 14.1 e mostraro uno schema di arcl'ljtettura
li pubblicamente, codificati attraverso il linguaggio HTML (hypertext markup language}. per l‘accesso alla base di dati via Web attraverso script CGI scritti in linguaggi quali PERL1
Molti strumenti consentono agli utenti di create pagine Web formattate con i marcatori (tag) Tel 0 C. I} principale svantaggio di questo approccio e che per ogni richiesta utente il server
HTML. includendovi anche contenuti multimediali, sia immagiue sia audio 0 video. Una pa— Web deve attivare un nuovo processo CGI: ogni processo crea una nuova connessione con il
gina Web contiene molti collegamenti ipertestnaii; letteralmente un collegemento iperte— DBMS e il server Web deve aspettare finché non gli sono forniti i risultati. Raggruppando 1e
stuaIe e no collegamento che permette a un utente di passare da un punto all‘altro all'intemo ricbieste di pix) utenti, non si ottiene quindi alcun vantaggio; tra l‘altro, lo sviluppatore deve
di una pagina o muoversi da una pagina all'altra attraverso Internet (in inglese "browse”). Ta- memorizzare gli script solo nelle sottodirectory CGI-bin. fatto che rende possibile delle intru—
le 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 CLtENT
(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 3' Browser Web -.
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:

Rlsuitato dalie BESS C"


http:ww.awl.cotrtfcsengfauthorsr'ehnasfibasfie.htm1 I E
datl
r hepazlone him nl
lnterrogazlo

Un URL inizia sempre con un protocollo per il trasferimento di ipertlsti (bttp: hyper-
co-
text transport protocol) che indies il protocollo usato dai browser Web, programmi che
municano con i server Web e viceversa. Ibrowser Web interpretano e presentano i documen-
e
ti HTML agli utenti. 'Il'a i browser Web pit) diffusi vi sono Internet Explorer di Microsoft ---------------- DBMS
da documenti HTML e da altri file accessibili at- 5
Netscape Navigator. Una raccolta formats. 5 Server Web 4- """""" risposifl
-'

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. ‘-. s f .I‘
‘~ % “‘ My
Script CGI ,.

cine Consiglio Eura-


' CERN e acron'uno fiancese che sta per ‘Cmseil Europeen poorla Recherche Nucleaire“.
pea per la Ricerca Nuclcsre. SERVE!
e altri ([992,
’ Quests idea d'ineredibile successo e sttn'buits a Barriers-lee e a] sub gruppo; 5i veda Beaters—Lee
Figure 14d Acceseo alle basi di dafi via Web attraverso gFI script CGI.
1994).
Tecnologle a applicazioni smergenti deila basl di dati 437
436 Capitolo 14

CLiENT
sioni e perdita di sicurezza. Il fatto che CGI non abbia un linguaggio standard, ma richieda
aspetto ne-
agli sviluppatori di applicazioni di basi di dati di imparare PERL 0 Tel e um aitro
gative, cosi come 12. gestione degli script, soprattutto se sono sparsi ovunque. : Brcweer Web .1

ms per
Accesso usando JDBC. JDBC e on insieme di classi Java sviluppato da Sun Microsyste
i tramite l’esecuzio ne di interrogaz ioni SQL. Si lnterrogazlone d er dl
Baa
consentire l’accesso alle basi di dati relazional aI
di accedere alle basi di dati che non richiede 1' attivazion e di processi aggiun- SEWER
tratta di un modo
registrato co-
tivi per og-ni richiesta ulteriore da parte di nn client. Si noti che JDBC e an nome
depositato dalla Sun e che, a1 contrario di quanta molti credono, non e l'acronimn
rne marchio
dati, inviarle istru-
di Java Data Base Connectivity. JDBC permette di connettersi a una base di Web
Java Con-
zioni SQL e recuperarei risultati dell’interrogazione usando rispettivarnente 1e classi
5 indipende nte dalla piattaform a, l‘applicazi one
nection, Statement e ResultSet. Visto che Java
su quaisiasi browser in grado di eseguire Java, cioe di scaricare il codioe Java dal ser-
pub girare Tecnica di ,_
sono i driver Drlver Web
ver ed eseguirlo sul browser del client. 1] codice Java e trasparente al DBMS; Integrazione Web .

specifici per specifici DBMS sul lato server che interagisco no con 10 specifico DBMS
JDBC
si nova sul client, l‘applicazio ne gira interament e su
usato dall’ applicazione. Se il driver J'DBC
Per interro-
quest’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 Figura 14.2 lmplementazione CGF della tecnlca dl integrazione Web di lnformix.
da JDBC a
e la necessita di eseguire Java usando macchine virtuali a bassa efficienza. 1] ponte
ODBC (Open Database Connectivity) a un altro mode per interrogate iRDBMS.

middlewa~ ’ Le estensioni ai marcatori HTML proposte da Informix consentono agli autor'i di siti Web
In aggiunta a CGI, altri fornitori di server Web stanno Eanciando i loro prodotti d1 creare applicazioni che possono costruire in mode dinamico scherni di riferirnento (tem-
(Inter-
re per permettere la connessione simultanea a pin basi di dati. "Ira questi vi sono ISAPI plates) per pagine Web con il Server Dinarnico di lriforrnjx e presentarli agli utenti finaii.
ation Interface, Jnterfaccia di Programm azione Applicativa
net Server Application Programrn . W10 consente anche agli utenti di creare marcatori personaliz-zati per eseguire compiti spe-
del Server Internet) di Microsoft e NSAPI (Netscape API di Netscape). Nei prossirno sottopa— c1fic1l. In questo mode si possono progettare applicazioni complesse, senza dover ricorrere a1-
ragrafo viene descritta la tecnica di accesso 211 Web fomita da Informix. Altri produttori DBMS lo svrluppo di script 0 di program. Un’altra caratteristica di W10 e {a possibilita di scrivere
di dati sul Web.
forniscono gia o fomiranno soluzioni simili per supportare l‘accesso alle basi appbcazioni transazionaii utilizzando un’interfaccia di programmazione applicafiva (API; Ap-
plication 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
14.1.2 Tecnica di integrazione Web di INFORMIX
svlluppatori di portare le applicazioni esistenti sul Web 0 di sviluppame di nuove in tali lin—
e ISAPI crean— guaggi. W10 E into strumento siftware integrato con il server Web e utilizza il meccanismo di
Informix ha affrontato le limitazioni di CGI e 1e incompatibilita tra CGi, NSAPI srcurezza nalivo dc] Server Dinarnico di Informix. L’architettura aperta di W10 consente l‘u—
degli
do W10 (Web Integration Option, tecnica d'integrazione Web} che elirnina la necessita so di diversi server Web e browser.
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 Dri-
utenti finali. L’ architettura e mostrata in mode schematico in Fignra 14.2. W10 utilizza 14.1.3 WebServer di ORACLE
URL
ver Web, nn processo CG] “leggero” che e attivato automaticamente quando una ricbiesta
Anche se viene generato un identificatc re univoco di sessione per
viene ricevuta dal serverWeb.
ORACLE supporta l‘accesso Web alle basi di dati nth-averse i componenti mostrati in Figura
ciascuna richiesta. l‘ applicazione W10 e persistente e non termina dopo ogni richiesta.
14.11]. 1] client richiede dei file che sono chiamati “statici” o “dinamici” dai server Web. I file
Quando riceve nna richiesta dal driver Web, l’applicazione W10 si connette 2111a base di da-
stanci hanno un contenuto prefissato, mentre il contenuto di quelii dinamici pub includere i ri-
ti ed esegne Web Explode, una funziune che esegue 1e interrogazioni SQL presenti all’intemo sultati di interrogazioni SQL alla base di dati. L’ architettura proposta da Oracle comprende un
i1
delle pagine Web e ristmttura i iisultatj come pagina Web restituendoli a] browser attraverso
daemnn H |"|‘P:(nn nrocessn chef: in continua esegivzinne) chiamatn Web I ish‘ner che aim sul
W m“... S‘n~"°‘bm—~ air” I‘m-r rim—rm“ ill I -- .o - 9 .. iii h “ii-1“ i. 5'“) . ' E! j. . . . I u . a i '
444 Capitolo 14 Tecnologie e applicaziont emergenti delle basi cli dati 445

Indicizzazione delle immaginL Vi sono due approcci per indieizzare le immagini: identifi- zione principale e stata la gestione di dati industriali e gestionalj, che sono principalmente uu-
care gli oggetti presenti nelle immagini automaticamente utilizzando teeniche di elaborazione menci. Nei prossirnj anni le informazioni testuali e non numeriche probabiimente domine—
di immagini e assegnare frasi e termini indice attraverso 1’indicizzazione manuale. Un proble- ranno il eontenuto delle basi di dati. Di conseguenza, ai DBMS verranno aggiunte molte fun-
le figu- zioni relative al eonfronto, alla concetmaljzzazione, alla comprensione, all'indicizzazione e
ma importante nell’utilizzo delle tecniche di elaborazione di immag-‘mi per indicizzare
re e legato alla scalabilita. Lo state attuale della tecnologia consente l’indicizzazione
automa- alla produzione di sintesi dei documenti. I sistemi di gestione delle informazioni multimedia-
tiea solo di semplici motivi geometrici. La complessite aumenta con il numero di
caratteristiw li pennetteranno di am'rvare a no collegamento tra discipline che storicamente sono state aree
gazione.
ehe riconoscibili. Un'altra questione rilevame e collegata alla complessith dell‘interro separate: i1 recupero delle informazioni e la gestione dj basi di dati.
i di inferenza possono essere usati per dedun'e da semplici earatteri-
Le regole e i meccanism
interrogazioni
stiche delle immag'mi dei fatti a livello superiore. Cio consente d1 incorporare
“trova gli alberghi che harmo atri apeni Che consenton o la massima espe-
di alto livello come
ale. Attualmen- 14.2.4 Applicazioni delle basi di dati multimediali
sizione 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
predetermi- E prevedibile ehe applicazioni di basi di dati multimediali di grandi dimensioni interessino un
I. Sistemi classrjicarari. Classificano le immagini gerarchicamente in categorie gran numero di discipline e quindi migljorino le propfie funzionalith. Di seguito sono clenca-
torc e l’utente dovrebber o avers una buona conoscen-
nate. In questo approccio l’indicizza te aicune applicazioni importanti.
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. - Gestiane delle registrazioni e dei documenri. Molte industrie e organizzazionj tengono re-
simile a. quel-
2. Sistemi basan' su parole chiave. Utilizzano un vocabotario di indicizzazione gistraziom‘ molto dettagliate e produeono una grande quantita di documentj. I dati posso—
lo usato nell'indicizzazione dei document i testuaii. Possono esscre registrati semplici fat— no comprendere dati di produzione e progom' meceariici, cartelle mediche dei pazicnti, ma-
ghiaccio“)
ti rappresentati nell‘immagine (ad esempio “una regione avvolta dalla calotta di teriale destinato alla pubblicazione e registrazioni delle compagnie di assicurazione.
di un‘interpre tazione ad alto livello da parte di esseri urna— ' Diflirsione delta canoscenza. L‘editoria multimediale, un mezzo molto eficace di divulga—
e i fatti derivati come risultato
polare)‘
ni (come la distinzione tra ghiaccio permanente', una recente nevicata e il ghiaccio zione delle conosoenza, eomprendera una crescita fenornenale dei libri elettronici, dei catalo-
ine e le
3. Sisremi entird-attfibuto~relaziane. Vengouo identificati tutti gli oggetti nell'irru'nag glfi, dei manuali, delle enciclopedie e delle raccolte di informazioni sui pifi diversi argomenti.
relazioni fra gli oggetti e gli attributi deglj oggetti. - Didam’ca efonnazianepmfessionale. Materials d’insegnamento per tutti gli ordini di scuo-
parole chiave la, dagli studenti elementari agli operatori di strumentazione ai professionisti, puo essere
Si noti che nel easo di doeumenti testuali un indicizzatore pub seegliere 1e progettato partendo da fonti multimediali. Le biblioteche digitalj avranno in future una gran-
serie di parole disponibi lj nel documento che deve essere indicizzato, cio ehe non e
da una
de influenza sul mode in cui studenti e ricercatori, ma anche altn' utenti. avranno accesso a
possibiie nel case di dati video e visivi.
vaste raccolte di materials didattico (si veda il Paragrafo 14.6 sulle biblioteche digitali).
chiave nelle applicazio— - Vendite, pubblfcitd, distfibuzione, intratrenimemo e viaggt'. In queste applicazioni non vi
Problemi del recupero di dati twtuali. Si tratta da sempre dell‘elemento
dellebiblio teche. e sebbene molto lavoro sia gia stato fatto, xi- sono limiti all’utih’zzo di informazioni multimediali: si va da efficaci presentazioni di mer-
ni gesfionali e nei sistemi di gestione
per quanto riguarda 1e questioni seguenti. ce in vendite aile gite virtuali in citta e in gallerie d'arte. L‘industria cinematografica ha
mane la necessita di ulteriori miglioramenfi, soprattutto
g-ia dimostrato la potenza degk‘ effetti speciali nella creazione di animazioni, animalj e alie-
se ai documen-
' Indicfzzazione difrasi. Migliorarnenti sostanziali possono essere realjzzati ni progettati artificialmente. L’utiljzzo di oggetti preprogettati memorizzati in best di dati
costituiti da sin-
ti vengono assegnafi descritton' a frasi (a differenza dei termini a indice. multimediali ampliera i1 campo di tall appljeazionj.
dei documenti
gole parole), purché le frasi prescelte siano buoni indicatori del contenuto . Controllo e monitoraggio in tempo male. La presentazioue mulfimediale delle informa-
capacita di
' Urilizzo a‘i rm vacabolario dei sinonimi 0 di un thesaurus. Una cause della scarsa zioni. insieme alla teenologia delle basi di dati attive, pub essere uno stmmento molto ef-
é diverse d9. quel-
rlchiamo (recall) dei sistemi correnfi :3 die i1 vocabulario usato dall‘utente fieaoe per monitorare e controllare compiti complessi come operazioni industriali. centra-
sinonimi
lo usato per indicizzare i documenti. Una soluzione e utilizzare un vocabolan'o dei li nuclear-i, pazienti in with mediche intensive e sistemi di trasporto.
l‘interroga zione dell'utente con termini aggiunfiv i collegati.
0 un thesaurus 'per ampliare
del nume-
- Risoluzione dell 'ambiguitd. Uno dei motivi della scarsa precisione (i1 rapporto Sistemi calmnerciali per la gestione delle informazioni multimediali. Non vi e alcun DBMS
recuperati rispetto a1 mnnero totale degli oggetti recuperati ) nei siv
ro di oggetli pertinenti pregettato con l'unieo scope di gesfire dati multimediali, e quindi non ve n‘ a nessuno Che abbia
piil
stemi di recupero delle informazioni e che nel linguaggio naturale molte parole harmo 1.1 earnpo di funzzionaljta richiesto per supportare pienamente tutte 1e applicazioni di gestione del«
per risolvere l‘ ambiguita e usare on dizionario in linea; un altro a con-
significati. U11 modo le mformazioni multimediali che si sono esaminate precedentemente. Molti DBMS, tuttavria,
frontare i eontesti in cui Ie due parole si presentano. supportano oggi tipi di dati multimediali, fra questi i1 Server Dinamico luformix {Infonnix Dy-
w grim? Mania-“4"m‘osvilupflr dei DEW. nit o manna: 1965 al 1995.1’annlica- nanfin Server), In has-adj dati Emittirsaleflmfi' Ufigersalflatabme‘n DB2 della IBM. Oracle 8 .0
Lawn m W—w—z- _._._._ ' _—
—- -- _- - .‘-—.,r.-_. e- .... w. ..__._‘; s..- -.._ 7 , _...~_. _.fi_.. ._.._.. ._..._...... Lem—m» . We .._ .. ._. -_.‘._..—.— n. Lam—é .(_-- an.»

Tecnologie e applicazioni emergentl' della basi df dati 451


450 Capltolo 14

(ii dati centrale e gli utenti si servono all computer portatili o palmari con on software di gestio—
2. la base di dati e distribuita tra componenti cablati e unite mobili; la responsabilita di ge-
ne di basi di dati residente per esegnire transazioni che restano “locali” per la maggior parte del
stione dei dati e condivisa tra stazioni base e unite mobili.
tempo. I client si collegano con i server attraverso una rete 0 ma connessicne telefonica (c at-
I problemi relativi alla gestione del dati distribuiti possono essere applicati anche alle ba« traverso Internet), Iipicamente per una sessione breve, ad esernpio da 30 a 60 minuti. Inviano i
si di dati mobili con 1e considerazioni e variazioni seguenti. loro aggiomarnenti a1 server, che deve a sua volta immetterli nella sua base di dati centrale Ia qua-
Ie deve tenerei dati agglomati e preparare copie appropriate per tutti iclient sul sistema. Ogni
I. Replicazione e disrfibuzione dei dati. I dati vengono distribuiti in mode non uniforme tra
volta che i client si connettono, ricevono. attraverso un processo noto come sincronizzazione del
stazioni base I: unite mobili. La necessita di mantenere la consistenza tra i dati memoriz-
client con il server, una serie di aggiornamenti Che devono esserc eseguiti sulla loro base di dati
zati sulle unite mobili e quelli presenti alle stazioni base pone un problema di gestione del- locale. La caratteristica principale di questo scenario e cbe iclient sono per lo piu sconnessi dal-
le memorie cache. Le cache cercano cli fomirei dati a cui si accede e che vengono modi-
la rete e il server non e necessariamente in grade di raggiungerli. Questo ambiente pone proble-
ficati pit frequentemente alle unite mobfli. che eseguono 1e loro transazioni e possonc es-
mi simili a quelli delle basi di dati distribuite e dclle basi di dati clienb’server e alcuni anche del-
sere disconnesse per lunghi periodi.
1e basi di dati mobfli. ma presenta anche alcuni problemi agg'iuntivi di ricerca che vanno studia-
2. Mode!!!" di transazioni. Gli usuali problemi di tolleranza degli error-'1 e correttezza delle
ti. Esso e detto ambiente di hasi di dati sincrom'zzate a intermittenza (ISDBE: Intermitten-
transazioni sono pit critici nell’arnbiente mobile. Una transazione mobile viene eseguita
tly Synchronized Database Environment) e 1e basi di dati corrispondenti vengono definite ba-
sequenzialrnente attraverso molte stazioni base e su diverse copie dei dati multipli, a se-
si di dati sincronizzate a intermittenza {ISDB: Intenrtittently Synchronized Database).
conda del movimento dell'unita mobile. Manea, quindi, un coordinamento cenlrale nell’e-
Le caratteriso'che seguenti contraddistinguonc gli ambienti ISDB rispetto alle basi di dati
secuzione della transazione, in particolare nello scenario 2 sopra illustrato. Pub capitare
mobiti finora esaminate:
che le proprieta ACID tradizionali delle transazioni, debbano essere modificate definendo
nuovi modelli di transazione. 1. on client si eonnette al server quando vuole ricevere o inviare aggiomamenti oppure esegui-
3. Elaborazione defile inrermgazioni. Sapere dove si trovano i dati e importante e influenza re transazioni che necessitano di dati non locali: questa comunicazione pub essere urticast.
l‘analisi costifbenefici dell‘elaborazione delle interrogazioni. 1n ambiente mobile, la ri- cioe uno-a—uno tra il server e il client, oppure multicasr. quando on server comunica periodi-
sposta alle interrogaziorti deve essere fornita a unite mobiIi che possono essere in movi- caInente con una serie di riceventi o aggiorna 1e basi di dati locali di un gruppo di client;
rnento o che stanno attraversando i confmi delle celle, tuttavia devono ricevere i risultati 2. on server non puo collegarsi a un client a piacimento.
delle interrogazioni completi e corretti. 3. i problemi delle connessioni del client mobili, al contrario delle connessioni dei client ca—
4. Rlpristino e tolleranza deglr' erran'. L‘ambiente deLle basi di dati mobili deve saper gesti- blati e del mantenimento dell‘ alimentazionc eletlrica. sono problemi di scarso rilievo;
re malfunzionamenfi nella comunicazione. nei siti, nei dispositivi e nelle transazioni. I 4. on client a libero di gestire i propri dati e di eseguire transazioni locali rnentre non e con—
malfunzionainenti del site per un MU sono spesso causati della limitata autonomic. delle nesso. e pub inoltre effettuare delle funzionalita di ripristino;
batterie. Se poi una MU viene volontariamente spenta. questo evento non dovrebbe cssere 5. un client ha piu modi per collegarsi a un server: nel caso ve ne siano molti a disposizione,
gestito come no malfunzionamento. I fallimenti delle transazioni sono pit} frequenti quan- puo scegliere un parficolare server per connettersi in base alla distanza, alla disponibiiita
dc una MU passe da una cella all‘altra. I malfunzionamenti delle MU causano la partizio- di nodi 0 ad altri fattori.
ne della rete e influenzano gli algoritmi di instradarnento.
A causa di tali differenze, molti problemi relativi agli ISDB sono diversi da quelli dei si—
5. Progerro di barf di dati mobili. I] problems globale della risoluzione dei nomi per gestire
stem-ii di basi di dati mobili. Tra questi vi e il progetto della base di dati del server per le basi
1e interrogazioni é particularmente complesso a causa della mobilita e dei frequenti spe-
di dati server. la gesn'one della consistenza fra 1e basi di dati del client e del server, l’elabora-
gnirnenti delle unite. Per questo motive. il progetto delie basi di dati mobili deve incorpo-
zione delle transazioni e degli aggiomamenti, l’utilizzo efficaoe della larghezza di banda di-
rare tecniche avanzare per la gestione dei rnetadati, come il costante aggiomarnento della
sponibile al server e la scalabilith negli ambienfi ISDB.
informazioni relative alla posizione delle unita mobili.

14.3.5 Bibliografia selezionata per le basi di dati mobili


14.3.4 Basi di dati mobili sincronizzate a intermittenza
Negli ultimi cinque—sei anni 6%. state un’improvvisa ondata d’interesse per il calcolo mobile
ll telelavoro basato sulla comunieazione mobile sta diventando aernpre pin comune e 30:10 in
con Una crescita significativa della ricerca su basi di dati mobili. Tra i libri scritti an questo ar-
molt": a svolgere i1 proprio lavoro lontano dagli uflici e dalie abitazioni ricorrendo 3. units mobi-
gomento. Dhawan (1997) e un‘eccellente fonte di informazioni sul calcolo mobile. Le reti di
li: si pensi ad attivita come la vendita di beni di consumo, industriali e fannaceutici. 1e consu—
cornunicazione mobile e il loro fimrro vengono discusse in Holtzrnan e Goodman (1993}.
lenze e pianificazioni finanziarie e assicurative. le atfivita relative alla gestione di proprieta e be-
Imielinski e Badrinath {1994) forniscono una buona panoramica dei problemi relafivi alle ba-
ni immobili e cos! via. In queste applicazioni Ltn server 0 un gruppo di server gestisce one base
452 Capitolo 14 Tecnologia e applleazloni emergenti delle basi di datl 453

si di dati in ambiente mobile. Dual-lam e Helal (1995) trattano i problem 5“ elaborazione d9!“ 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 mo-
bile e offrono argumenti convincenti a sun favore, in quanta possibile soluziune in future per
Applicazioni digitali dl Applicazlonl di gestione
molte applicazioni di sistemi infomativi. Pitoura e Samaras (1998) illustrano tutti gii aspetti Canagrafia mudellaziune dei suolo di oggatt': geografiel
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 — Irrigazlone Studi dalle risorse Sistemi dl nayllgaziofil
approcci al ripristino e alla tolleranza degii cram-i nelle basi di dati mobili. Il numeru di giu- — di sclenze delia tarra per automohlll
_ Anallsl del _
gm) 1995 della rivista Byte affronta diversi aspetti del ealcolo mobile. Per una discussione ini- raecnltl Valutaziona “Hal‘s; gaqgrafica
ziale 5111 problem delta scalabiljta degli ISDB e la desczizione di un suo approccio attraverso _ militate a de] mercatl
l'aggregaziene di dati e il raggruppamento di client si consuiti Mahajan e altn' (1993)- __ Valutazlona Ingegnerla civlle . ‘
def terreno Consume a distrlhuzmne
— HHevamanti 39' sandzl
Plenlficaziene topograficl
_ e gestlcne Anallsl econem1ca
defile rlsoree Studl dell‘lnqulnamento def SSWiZ'F dad
14.4 Sistemi informativi geografici — delle acqua e dell‘arla Fifi-1011' d' consume
_ Studio del
paessgglo — Controllo delle ascndazlanl

Islstemi informativi geograflci (GIS: geographic information systems) vengono usati per Analisl dei _ Gestlone dells
—- oomportament] risotsa ldriche
raccogfiere, modellaxe, memoriZZal-e a analizzare 1e informazioni che descn'vono Ie proprieta de! trafiico
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 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 ap- no richiede una rappresentazione digitale di parti della superficie terrestre, usando l’altezza ri-
procci altamente innovativi per rispondere ad alcune I'iChieste tecniche di difficiie soluzione. levata in punti campione Che vengono poi collegati per fornire un medeilo della superficie ter-
restre 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 ne-
14.4.1 Applicazionl GIS cessatie 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
E possibile divider: i GIS in he categorie: applicazioni cartografiche. applicazioni digitali di delle mappe confrontabili per mostrare i cambiamenti in diversi momenti di certi dati come
modellazione del terrene e applicazioni per 1e gestioni di oggetti geografici (Figure 14.5). 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' I requisiti funzionalj delle applicazioni GIS deseritti precedentemente si traducono nei se-
co esempio possono esseie il consume energetico, i risultati elettorali. i volumi di vendita del- guenti 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. Rappresentazione e modellazione (lei dati. I dati GIS possono essere rappresentati in due for-
mentre la terza categoria ne esige una basata 511311 oggetti. L’approeciu cmografico. inoltre, mati: vettoriale e raster. I dati vettoriali rappresentano oggetti geometrici come put-1d, linee e pc-
richiede funziuni speciali, come la sovrapposizione di mappe di divarsi livelli per caleolaxe i ljgoni; ad esempio 1m Iago pub essere rappresentato come un poligono e un fiume con una set-1e
:1a di attxibuti che consentiranno. ad esernpio, la misurazione di nuovc distanze Hello spazio di segmenti lineari. I dati raster sono caratterizzati da una man-ice d1 punti in cui ciascuno rap-
tridimmctnnah e In anlassjfinaampe deg-Lane sung permit. La modellazione digitalis del terre- presenta i1 valore di unflattributo oer una pr); 'zigne del mouth realfi. lqodo non fut-male Si nub _ _:
“we.“
c_o w. h, .4 mom; ....o_ .._.-- . __ ,

454 Capitolo 14 Tecnologie e applicazionl emergenti delie best di dati 455

dire che 1e immagini raster sono man-lei n—dimensionalj in cui ogni elemento e un‘unita del- Rilevazione dei dati. La prime fase nello svfiuppo di one. base di dati spaziale per la mo—
l'immagine e rappresenta un ato-ibuto. Le unite bidimensionali vengono dette pixel, mentre quel- dellazione cartografica consiste nel registrare 1c informazionj geografiehe bidimensionali o
le tridimensionali sono chimnate voxel. I dati di elevazione tridimcnsionali sono memorizzafi in tridimensionali nella fauna dig-kale. Tale procedure. talvolta e resa diffieilc dalle caratteristi-
un formato raster detto modello digitalis dell’elevazione (DEM: digital elevation model). Un che della mappa da digitalizzaie, per la risoluzione, il tipo di proiezione. la scale utilizzata.
altro formato raster e detto rete irregolare triangulare (TIN: triangular irregular network) 1a diversita delle tecnielie di mismazione e dei sistemi di coordinate. I dati spaziali possono
e si basa so no approccio topologico Che utilizza vettori per modellare 1e superfici; i vetted ven- essere rilevati anche da sensori remoti nei satelljti come Landsat. NORA e iI radiometro avan—
gono creati collegando punti campionati per formare Biaugoli e Si ottiene una densita di punti zato a risoluzione molto alts (AW-ERR: Advanced Very High Resolution Radiometer) cosl
che puo variare con l’irregolarita dei terreno. Le griglie rettangolari o matrici di eievazionc so- come SPOT l-IRV (High Resolution Visible Range Instrument), uno strumento di facile in-
no strutture a matrici bidimensionali. Anche nella modelluzione del terreno (DTM: digital ter- terpretazione e moito preciso. Per la modellazionc digitale del territorio i metedi di rilcva-
rain modeling) puo essere usato questo modello. sostituendo l‘elevazione con un altro attribu- zione dei dati vanno dai tradizionali sistemi manuali a quelli totalmente automatizzati. I rile-
to d‘interesse come la densita della popolazione o la temperatura dell’ aria. l dati GIS spesso in- vamenti topografici sono l‘approccio tradizionale e il piu precise, ma riehiedono molto tem-
eiudono una struttura temporale oltre che a una spaziale. Ad esempio la densita del traffico pub po. Altre tecniche ineludono il campionameuto con fotogrammi e i documenti cartografici di-
essere misurata ogni 60 secondi in una serie di stazioni di campionamento sparse sul territorio. gitalizzati.

Analisi dei dati. l dati GIS sono sottoposti a vari tipi di analisi. Ad esempio nelle applicazio-
ni 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 geomorfometri- 14.4.3 Operazioni specifiche dei dati GIS
ea, 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 Le applicazioui GIS richiedono 1a definizione di operatori speciali come quelli di seguito ii-
del gradients), la canvassitd deHa piama (la convessita dei contomi delle regioni e alt-i para- cordati.
metri). Quando i dati GIS vengono usati per applicazioni di supporto decisionale possono es-
- Interpolazione. Questo process'o permette di ottenere dati di elevazione anehe per i punti
sere sottoposti a operazioni di espansione e di aggregazione usando i1 data warehousing, come
in cui non e stato eseguito alcun campionamento. L’inteipolazione pub avvenire in punti
si a vista uel Sonoparagrafo 14.1.5. Possono essere eseguiti, inoltre, vari tipi di operazioni geo-
singoli, su una griglia retrangolare o lungo un contomo e cosi via. I principali metodi di
metriche {per calcolare distanze, aree e volumi). topologiche (per ealcolare sovrapposizioni. in-
interpolazione si basano sulla triangolazione che use il metodo TIN per interpolare 1e ele-
tersezioni e percorsi pin brevi) e. infine, temporali (per calcolare interrogazioni basate su even-
vazioni all‘interno di un triangolo sulla base di quelle campionate ai suoi vertici.
ti o interne). Un‘analisi approfondita in genera richiede moite operazioni spaziali e temporali.
- Interprerazione. La modellazione digitale del suolo comporta 1’ interpretazione di opera-
zionj sui dati del territorio come la modifiea. lo smussamento. la riduzione dei dettagli e
Integrazione dei dati. I GIS devono integrare dati vettoriali e raster provenienti da diverse
l‘evidenziazione dei contorni. Altre operazioni sono relative a1 far coincidere e fendere i
fonti. Talvolta 5i calcolano i profili dei bordi e 1e regioni di un‘immagine raster per creare un
bordi di triangoli {in dati TIN). i1 che implies. riconciliare i modelli e risolvere eventuali
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 uni- conflitti ha i dati degli aIu-ibuti. Le conversioni tra i modelli di griglia, modelli di contor-
versale (UTM: universal transverse mercator), il sisteme latitudineflongitudine e i sistemi ea-
no e i dati TIN sono altre operazioni necessarie per l‘interpretazione del ten‘itorio.
tastali locali sono usati per localizzare localita. I dati Che vengono originati con sistemi di - Analist' defile pmssimt'ra. Diverse tipologie d5. anaIiSi di prossimité permettono il calcoio di
coordinate diversi richiedono appropriate trasfonnazioni. Le principali fonti pubbljche di da- “zone d’interesse“ attorno agli oggetti, ad esempio la determinazione della distanza di si-
ti geografici. tra cui i file TIGER gestiti dal Dipartimento del Commercio deglj Stati Uniti curezza attomo a una macchina in viaggio su un‘autostrada. Gli algoritmi per il calcolo del
d’America, vengono usati per u-acciare cane stradali da mold snumenti di disegno di mappe pereorso pin breve Ira due punti che usano informazioni 2D 0 3D sono una classe impor-
presenti sul Web (ad esempio http:llmaps.yahoo.com). In queste applicazioni capita spesso tame di strumenti allo scopo.
che mappe con pochi attributi e alta precisione debbano essere integrate con altre che com- - Elaborazione di immagini raster: Si tratta di un insieme di tecniche che pub essere diviso
prendono tanti attributi. ciaseuno rilevato con poca precisione. L’integrazione vlene allora eso— in due categorie: I‘algebra delle mappe usata per integrate le carattexistichc geografiche di
guita con un prooesso detto “a banda elastica" in cui l‘utente def‘misce una eerie di pumi di mappe sovrapponibili 211 fine di ereare algebricamente nnove mappe; l‘analisi delle imma-
controllo in entrarnbe le mappe e la trasformazione della mappa di bassa precisione viene ese- gini digitalj per funzionaiim quali i.l riconoseimento di confirli e il rilevamento di oggetti
guita teneudo allineau' i punti di controllo. Una questione fondamentale relativa all'integra— all‘interno delle immagini. L’individuazione delle shade in un’immagine satellitare di una
zione e creare e mantenere i dati relativi agli attributi {come In qualita dell’aria o la densita del cine e on esempio di individuazione di oggetti.
traffico) che posscno essere messi in relazione e integrati con informazioni geografiche ap- Analisz‘ dt‘ reti. Le red in GIS sono presentiin molti contesti e possono eseere analjzzate e sog-
pmpriate nel tempo. man mane che 5i modificano. gette a segmentazjoni. sovrapposizioni e cosi via. La sowapposizione di reti si rifensce a un
9-.....“

463
Tecndlegle e-appileazlonl éin'é'rgentt deile basl di dafi
462 Capltolo ‘14

i1 giusto ordine di tutte 1e “lettere” con cui e


nunciata a1 mende la mappatura del DNA, eioe
melto utili. Ad esernpio. 1a se- da sola, la sequenza umana del DNA non
segna integrare pie contesti pessibili. I valon' isolati non seno seritto il codice della vita d‘un essere umano . Pnesa
non e particel arrnente utile senza informazioni aggiuntive che essere usata come on utile siren-Lento
quenza di un segmento di DNA e parficelarmente utile. ma se associate. ad altri
dad pub
Un singolo nucleotide pesto so no cer- ica, medicine. antropelegia e agrieoltora.
ne descrivano l‘organizzazione. la funzione e cesi via. per affrontare svariati problemi di genefica, bieebjm
visto nel coateste di altri segmen ti di DNA che non causano malattie. e i1 punte principale a state raccoglie-
to segmento di DNA. Nella cosu‘uziene delle basi di dad esistenb' del genom
pee essere individuato come causa pericelosa anemia delle celiule.
lle di qualité ) e classificare 1e inforrnazieni sulla sua sequenza. Ol-
re (con l’opperttmo contro
numer erganismi come Ecoft‘, Dros'ophi—
osi
azioni compfesse é esrrema- tre al genome umano, sone stati studiati quelli di di dad esistenti
Caratteristica 8. La definiziane e la presenrazt‘one di interrog dei sistemi di basi
bielegic i devene support are interregazioni cem- Ia c Celegans. Verranno qui brevememe presented alcuni
il biologe. I sistemi
meme importante per
dati (Caratteristica 6). gii utenti medi non
usati per il Progette del Genome Uroano, e nati da esso.
plesse. Senza alcuna eenoscenza della su'uttura dei
possone cestruire da soli un'interrogaziene eemplessa sui dab'. Quindi, per essere verameme ante nel mendo e Genbank, svi-
tali interregazioni. Come detto pre- Genbank. Oggi la base :11 dati di sequenze DNA pie import della National Library of
utili, i sistemi devone femire alcuni strumenti per create luppate dal National Center for Biotechnology Inform
ation (NCBD)
degii attuali sistemi ofrno modell i di interregazieni predefinite. depesito centrale di dad relativi alle sequenze
del
cedentemente, molti Medicine {NLM}. Istituita nel 1978 come no ori di sequen-
includere dati sui marcat
richiedono I’accesso a valari DNA. da aJJera i suei obietljvi-sono stati arnpljati per
Caratteristica 9. GI urenti di informazioni biologiche spesso nsiena le delle proteine, sulla classificaziene e sui
risuirati ortenuti precedenre- ze, sulla sequenza e sulla strnttura tridime
dei dati "vet-chi", parricolamrenre quando cercano a't' venfica re La sua ultima versione centicne pie di
che perrnetta 1' accesso a diverse collegamenti aila letteratura biomedica (MEDLIN'E).
E necessa rio predisp erre un sistcma di archivi sterici 0 sequen ze da pit: di 16.000 specie, e approssimativa-
meme.
ati ma anehe alie versioni delle 601000.000 nucleotidi di pifi di 920.00
versieni dei valeri. E necessario accedere a't dati pit aggiern La dimensione della base di dati
ate i dati pib aggiernati in mode meme dieci nuovi organismi vengone aggiunti ogni gierno.
infermazieni precedenti: i ricercatori voglione peter interrog si e appressimativameme dupiica ta ogni dicietto mesi per cinque anni.
tempo stesso essere in grade di ricestn iire i1 lavere precedente e va- l‘ambito del sue interesse si focalizza
censistente. ma devene a1 Pur essendo una base di dati complessa ed estesa.
aiie attuali. Di censeguenza. in ura. Altre fonti di dati (ad esernpio sulla
lutare nuevamente informazioni usate in precedenza insierne essere sem- sulle sequenze urbane e sui collegamenti alla letterat
a i valeri che stamo per essere agglom ati non pessene tato nel seguito) sene state aggiunte re-
una base di dati bielogic struttura b'idimensionale e il sistema OMIM presen
plicemente eliminati. 1e basi di dati esisten ti dei sisterni OMIM e PDB e ripregettande la
centemente ristrutbnrando
nueve serie di dad.
odiemi non soddisfano pie- struttura del sistema Genbanl: per includere queste
Time queste caratterisu'che mestrane chiaramente cbe iDBMS ite da una combin azione di file piatti. basi di dati relazienali e file che
sviluppare una nueva di- ll sistema e eestitu
namentei requisiti dei comple ssi dati biologici. E necess arie quindi ta 1 (ASN. 1: Abstra ct Syntax Notation One],
orientate alla ge- contengone la Notazlone Slntattica Astrat
reziene di ricerca sui sisterni di gestiene delle basi di datis. specific arnente
e 1e struttu re di dati svilupp ate per l‘indus u'ia delle telecemunicazioni.
una sintassi per definir Agli aggiornamenti
i. catere unjvoc e dal NCBI.
stiene dei dati biologic 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
nuevo e forse inappropriate valore. Per questo motive i dati pie recenti ri-
ll progetto del genoma umano e le basi di dati care per errore an
14.5.3 univoci (UID: Unique mentifi ers) che mar-
ceveno anche una seconds serie di identificateri
bielogiche esistenti cano la forrna pin aggiomata di an concette, permettende pert“) ancers l’accesse alIe versiot
'ti

preeedenti attraverso i lero identificatori originab'.


zionj genetiche tetali che si possono et- di accedere direttamente alla struttura dei
Il tennine genoma viene usate per indicate 1e inferma L'utente medic della base di dafi non e in grade
e umane , ad esempio, in genera si riferisce ails eerie cempleta funzio ni. sobben e istanze complete della base di dati
tenere su un’entita. ]1 genom dati per eseguirc interrogazioni o altre
essere tra 100.000 e 300000 e organiz- . Il meecaaisme di interrogazione for-
di geni richiesti per creare un essere urnano, stimati possane essere esportate in molti formati. Ira eui ASN.1
cromos emi che cempre ndono dai 3 ai 4 miliardi di nucleotidi. [1 fine del Entree (o la sua versione World Wide Web] che con-
zati so 23 coppic di nito awiene attraverso l’applicazione
Project) era queue di ettenere la sequen- di Genbank attraverse un‘interfaccia
progetto del genoma umano (HGP: Human Genome
nel giugno 2000 e state infatti an-
sente Ia ricerca termite parole cbiave, sequenze e l’UID
za complete, ossia l’ord'me deile basi. di quei nucleot idi:
stance.

Database). Create net 1989. GDB e en esta-


La base at dati del genome (GDB: Genome
specific-a informazione a una specifica posiaio-
Kogelnik (1998) descrive ii pmtotipo dell‘ambienle di basi di
deti. chisrnato GENOME, di gesrione reticolare de- lego dei dati sul gene urnano che associa one
3
Tecnolog ieo della Georgia a Emory (GENOME: Georgia Tech Emory Network Object ne nel genome umano. 11 grade di precis iene di quests pesizione sulla mappa dip-code dalla
gli oggetti. dell‘Istim to
vedere anche Kogelnik e aitri i nucleotidi. Tia i daft del GDB vi sono
Management Environment) per afirontare 1e questioni
indicate precedentemente;
fonte dei dab", Che di solito non e a1 livello dei singol
(1997, 1993).
' Tecnologie e applicazioni emergent? delie basi di dati 465
464 Capltolo 14

Escoii. gli enzimi codificati da questi geni e le reazioni biochimiche catalizzate da ciascun en-
(compresi i limiti di
quelli che descrivono 1e informazioni principali della mappa genornica zuna, nonché la Ioro organlzzazione nei percorsi metabolici. Cosi facendo EcoCyc si occupa
a e distanza) e i dati sperimen taii sulla reazione a catena di polimeriz zazione (PCR:
confidenz sia della sequenza sia dei domini delle funzioni delle informazioni dei genomi. Contiene 1283
tali. inneschi del PCR e reagenti usafi). Pin
polymerase chain reaction) (condizioni sperimen composti con 965 strutture ed elenchi di legami e atomi. pesi molecolari e formule empiriche.
sono statl fatti degli sforzi per aggiunge re del dati sulle mutazion i collegandoli
recentemente Contiene altresi 3038 reazioni biochimiche descritte usando 269 classi di dati.
indagini sul DNA e
ai Ioci genetici, alle celiule usate negli esperimenti, alle biblioteche delle Il modello di dati orientato agli oggetti fu usato per la prima volts per implementare il si-
aile popolazio ni 6 al polimorfi smo fenotipico .
ad alcnni dati relativi stema. con i dati memorizzafi in Ocelot. un sistema di rappresenmzione delia conoscenza‘ I
le commerciale i cui
ll sistema GDB é coslruito attomo a SYBASE, un DBMS relaziona dati di EcoCyc sono stati ordinati in una gerarchia di classi di oggetu' basandosi suil'osserva-
(si vedano i Capitoli 3 e 4).
dati sono modellati usauclo 1e tecniche standard Entith—Relazione zione che 1e proprieta di una reazione sono indipendenfi dall’eozima che Ie catalizza e che mi
modello per rappre-
(iii implementatori di GDB hanno rilevato molte difficolta neli‘usare tale enzima ha molte proprieta che sono "logicamente distinte" dalle sue reazioni‘
e. Al fine di migiio-
sentare qualcosa di pin di una semplice mappa genomica e dati d‘indagin EcoCyc fomisce due metodi di interrogazione: uno diretto (attraverso interrogazioni pre-
applicazioni.
rare l’integrith dei dati e semplificarc la programmazione per chi Cleve scrivere definite) e um indiretto (attraverso la navigazione ipertestuale). Le interrogazioni dirette ven-
clad (Database Access Toolkit).
GDB distribuisce una serie di strumenti di accesso alle basi di gono eseguite usando dei menu e delle finestre di dialogo che con-isponclono a un reperton'o
eseguire le interroga—
La maggior pane degli utenti, tuttavia, utilizza un‘interfaccia Web pm esteso, ma finite di interrogazioni. Non e supponata Ia navigazione delle structure di dati effet-
dei collegamenti per
zioni collegandosi ai vaii gestori del servizio. Ogni gestore tiene traccia tive. Non e documentato, inoltre, alcun meccanismo che permetta l'evoluzione deilo scheme.
o del sistema GDB. Come con Genbank , agli utenti viene for-
una delle dieci tabelle all‘intern In Tabella 14.1 sono riassunte 1e earatteristiche delle principali basi di dati del genoma e
rendendo difficile
nita solo 11:12. vista di livello molto alto dei dati al momento della ricerca, delle basi di dati HGMDB e ACEDB. Esistono anche altre hasi cli dati delle proteine che con-
dalla struttura delle tabelle GDB. I metodi di ricerca sono pill
l’uso della conoscenza estratta tengono informazioni sulle scrutture proteiche. di cui 1e principali sono SWISS-PROT al—
mappa o i dati d'inda—
utili quando gli ulenti stanno semplicemente cercando un indice nella l‘UniversiIh di Ginevra, la Banca di Dati deIle Proteine (PDB: Protein Data Bank) a! Brokha—
presenti. L‘in—
gine. L‘esplorazione diretla della base di dati non e incoraggiata dalle interfacce
0M1M(siveda oltre) non e sta-
tegrazione tra 1e strutture della base di dati di GDB e quelle iii
ta pienamente stabilita. Tabella 14.1 Riepllogo deile principall basi dl dati relative al genome.
(OMIM: Area di problemi Tlpl o‘i dot]
Eredith mendeliana in linea nell’nomo. L’eredité mendeliana in linea nell’uomo
Nome dell: Contenum Tecnologla Tacnologia
base all dad lnlzlale annals di has! dE datl principali
oni sulie ma-
on-iine mendeiian inheritance in man) e on riepilogo elettronico delle informazi Tesla. datl
1500 voci, fu con— Genbank Sequenza Flle testuali Fils Consultaziona degli schsml.
lattie genetiche umane. Iniziato su carta da Victor McCusick nel 1966 con DNNFNA. piafloiASNJ evoluzlone degli schemf. numsrlci.
1991 la sua gestio-
vertito in forrna elettronica a pieno testo trail 1987 e 1989 dal GDB. Nel protslna collegamento ad arm dbs eicunf tip]
fu convertita nel
ne fu IIasferita dall’UniversiLe Johns Hopkins all‘NCBI e l'intera base di dati complsssl
formato Genbank di NCBI. Oggi contiene pin di 70:30 voci. OMIM Genoiipl e fenotlpl Schede dl Flre Vocl in testo libero. non Tesio
e sistemi. Qual- dl malattia 8 cos] indiclifila piatloiASNJ slrutturale. che 31 collegano
OMIM contiene materiale so cinque aree patologiche suddivise per organi Vla testuali ad altrl dbs
sotlo studio, viene
siasi proprieta morfologica, biochimica. comportamentale 0 di altro tipo GDB Dali dl File piano Helazlonale Evoluzlonefespsnslone Testo. deli
che i geni possono
definita fenotipo di un individuo (0 di una celiula). Mendel si rese conto collsgamento degli scheml, oggetti numerici
ali’efietfiva compo-
esistere in molte forme diverse note come alleli. Un genotipo si riferisce dolls [nappa oomplassl, collegamenti ad
geneitca altrl dbs
sizione ailelica di un individuo.
non fortemente Dail d: 00 00 Evoluzloneiespansione Tasto, dati
Le voci di struttura del genotipo e del fenotipo contengono dati testuali
AGEDB
collegamento degll schemi, coliegamentl numericl
th. variazioni, strurtura
strutturati come descrizioni generali, nomenclature, modi di ereditarie della mapps ad ellrl dbs
convertite nel
clei geni. mappaggio genomico e altre categorie. Le voci a pieno testo furono genetics. dati di
OMIM fu trasferito at] NCBI. Quests. conversio ne ha mi- sequenza {non
formato strutnirato ASN.1 quando urnanij
ha definite an-
gliorato molto 1a capacita di coilegare i clati di OMEM con altre basi di dati e HGMDB Seguenza e Flle piano, Filo pistttor Evoluzioneiespanslone Taste. dau
rimane difficiv
che una struttura rigorosa peri dati. La for-ma base della base di dati, tuttavia, vansnli delle applicazione applicazlone degll scheml. oollegarnenfl numeriei
1e da modificare. sequenza speclfica specifics ad artrl dbs

to re-
EcoCyc. L’Bnciclopedia del Metabolismo e dei Geni di Escherichia coli 6: un esperimen EcoCyc Peroorsi e reazlon! 00 00 Gerarchla delle classl, Tlpl
o di blochfmiche evoluzlone degli scharnl ocmplesel.
eente che si propane di associare 1e informazioni sul genoma a queile sul metabolism testo. deli
l’Istltuto di Ri-
Ecoii K—lz. La base di dati fu creata me! 1996 grazie a una oollaborazione tra numerloi
~_._..._-
i‘olo "‘5". ..bora1; ssac- ' ted: 'iiger""“di
“"— “k
. .... . \_._.e _. -._._..__- L._. ...

Tecnologie e applicaztoni emergenti delie basi di dati 467


466 Capitolo 14

Tabella 14.2 Bani dl dati e biblloteche digitali: afflnlta e dlfferenze.


delle Proteine (PER: Protein Identifi-
van National Laboratory e la Risorsa di Identification:
cal Research Foundati on. Aflinita
cation Resource) alla National Biomedi iomlscono datl.
le applicazioni delle basi di I Entrambe rluniscono, organizzano. memorizzano. carcano. recuperano. etabornno a
Negli ultimi dieci anni vi a state an aumento di interesse per I Entrambe contengono e geatisoono pit] media.
. Genbank . GDB e OMIM sono stati crean' come archivi centrali di
dati in biologia c medicina - Entrambe contengono e gestlscono tlpi d1 dati aterogsnei e oggatti oomplessl.
utili non coprono ancora 1’ intcro
alcuni tipi di dati biologici, Ina pur essendo estt'emamente Differenze
genoma umano. In tutto i1 mondo, pero, si stanuo facendo de-
spemo dei dati del progetto dei Base d! dati
problemi (ii gestionc dei da- Bibfloieohe digital?
gli sforzi per progettare nuovi strumenti e tecniche che Iiducano i Gesture oentrallzzato (DEA)
Nessun gesture centralizzato (In gestiona é
ti per biologi e ricercatori medici. attuata attravarso interfaces concordate)
Guam dei dati mono controllatafnon eontrollata Qualita det datl contentious

a
14.5.4 Bibliografia selezionata per le basi di dati del genom
delle quali non collegate n'a loro. Logicatnente 1e basi di dati possono essere viste come com-
negli ultimi anni. Molti convcgni e ponenti delle biblicteche digitali (Tabella 14.2).
La bioinformau'ca t‘: diventata un‘ area di ricerca importantc
mo. Robbins (1993) fornisce una. buona pano- L'Iniziafiva della Bibliotcca Digitale (DLI: Digital Library Initiative), fondata congiunta~
congressi sono stati organizzati su questo argome
ramica. mentte Frenkcl (1991) tratta in modo diffuse
‘11 progeno del genome. umano. eviden- meme da NSF, DARPA e NASA, e stata ii principale acceleratore allo sviluppo delle biblio-
ziandone i1 ruolo fondarnentale nella bioinfor matica. Cuticch ia e altri (1993), Benson e alui teche digitali. NeIla sua prima fase, essa ha fornito un finanziamento significativo a sci pro-
e Pearson e altri (1994) fomiscono informa zioni utili su GDB, Gcnbank e OMIM. Wal- . getti principali di sei universita, che coprivano un vasto spettro di tecnologie.
(1995)
driale che tratta di unn pane spc~ Le pagine Web di questa inizintiva (si consulti dli.gra.inger.uiuc.edulnationaihtm) defini-
lace (1995) e stato un pioniere nella ricerca sul genome mitocon
cifica del genoma umano; la sequenza e i dettaglj organiz
zativi di quests: area appaiuno in An- scono lo scopo della ricerca come segue: ‘Migliorare in mode sostanziale imetodi per racco-
derson e altri (1931). 11 lavoro recente documentato
in Kogelnik e altri (1997, 1998) e in Kugel- gliere, memorizzare e organizzare 1e informazioni in forma digitale e renderlc disponibile per
nik (1998) afironta lo sviluppo di una soluzione generics.
al problema delle gestione dci dati nel- la ricerca. i1 recupero e l’elaborazione attraverso reti di comunicazione — e tutto in modo ami-
dati MI'I‘OM AP e descritt a in Kogelnik (1998) e vi si pub ac- chevole per l’utente finale".
le scienze biologiche. La base di
cedere all‘indirizzo httpzllwwwgenemoryeduinfitomaphtr
nl. La piu grande base di dati di pro- 1] grande volume di queste raccolte di dati cosi come in diver-sits e la inolteplicita dei for-
teine SWISS-PRU!“ e accessi bile all‘ indirizzo httpzflex pasy.hc uge.c11!sprotl. Le informazioni mati costituiscono sfide di un diverso livello. La future progressione nello sviluppo delle bi-
sulla base di datiACEDB sono dispouibiii all‘indirizm httpn’fp
robenal usdagov:SDSOIacedocsl. bljotcche digitali probabilmente passera dalla tccnologia attuale di ricerca trarnite Internet, at-
traverso ricerche in rate di infonnazioni indicizzate Iaccolte in archivi comuni, a nuovi siste-
mi di correlazione temporale delle informazioni e analisi tramjte reti intelligenti. Le tecniche
per raccogliere 1e informazioni, memorizzarle e organizzarie per supportare requisiti informa-
14.6 Biblioteche digitali tivi appresi nei decenni di progenazione e irnplementazione di basi di dati, costituiranno i1 ri-
ferimento per lo sviluppo di approcci appropriati per Ie biblioteche digitali. 1a ricerca. i1 re-
cupero e l'elaborazione di diverse tipologie di dati digitali utilizzeranno 1e lenioni apprese dal-
nte. Coneettualmente. una bi— le attivita svolte nelle basi di dati su quelle tipologie di dati digitali.
Le biblioteche digitali sono un’area di ricerca attiva e importa
ale — una vasta raccolta di fonti informa-
blioteca digitale e analoga a una biblicteca tradizion
supporti — can in piil i vantagg i delle tecnolog ie digitali. 1n nealth. 1e bibfiote-
tive su diversi
signific ativi: la memori zzazion e e digitale. l‘ac-
che digitali si distinguono per diversi aspetti
veloce e facile e i docume nti sono copiati da una versione originale. Tenere a 14.6.1 L’lniziativa delle Biblioteche Digitali
cesso remoto e
dai limiti di memoria e di bilan-
disposizione altre copie. inolire. a: facile e meno dipendente na-
cio, i principa li problem i delle bibliotec he tradizion ali. Le tecnolog ie digitali. quindi. supera- L’Urnversita defl‘fllinois a Urbana Champaign ha coordinate la siucronizzazione a livello
no matte delle limitaziuni economiche e fisiche delle bibliotec he tradizion ali. zionale di sei progetti della D11 in corso negli Stati Uniti presso 1e sci universita che parteci-
svilup-
L’inu-od uzione a1 numero specials sulle bibiiotec he digitali deila rivista Communications pano all’iniziativa. I progetti si ptopongonc di indifiduare i requisiti fondamentali di
realizzare i1 vecchio sogno di po delle bibljoteche digitali. 1 partecipanti e i temi principali sono i seguenti.
ofrhe ACM dell‘aprile I995 1e dcscrive come “l‘oppoitunita per
l’access o all’inter o arc 'vio di informa zioni deli’umarfita”. Nel Ca-
ognj essere umano: avere
di dati correiati“: a. differenza dei * Universita delta California :1 Berkeley: Sisremt' di Informazioni Geografiche e Pianifica-
pitolo 1 una base di dati a state definita come “one raccoita progetto .
a digitale comprende varie fond, molte zione Ambiemale (si veda i} Paragrafo 14.4 per dettagfi sui sistemi GIS). Questo
dati correlati raccoiti in una base di dati, una bibliotec
468 Capitolo ‘14

implementera una biblioteca. digitale vista come one raccolta di servizi infomaiivi distri-
buiti, 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 Appendice A
mappc otlenute lramite referenziazione spaziaie. Questo progetto sviiuppera servizi di bi-
blioteca 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-
Notazioni diagrammatiche
the di video digitali, i1 progetto e focalizzato sulla n'ccrca e 1’ interrogazione basata sul
contenuto.
alternative
. 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 affin-
ché 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 pro-
getto sviluppera 1e tecnologie necessarie per una biblioteca digitale integrate, che fornisca In Figure A.1 sono illustrate aleune notazioni diagrammatiche usate per rappresentare 1‘. con-
Eli basi
un accesso uniforms a nuovi servizi usando rac'colte di informazioni disponibili in rete. 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—
e vin-
ti) usano notazioni differenti. Alcune sono associate a modelli che presentano concetfi
14.6.2 Bibliografia selezionata per la biblioteche digitali coli aggiuntivi oltre a quelli dei modelli EH e EER descritri nei Capitoli 3 e 4. mentre altri mo-
delli hanno meno concetti e vincoli. La notazione utilizzata nel Capitolo 3 e abbastanza vici-
Il numero speciale della rivista Communications of the ACM dell’aprile 1995 e interameme na 3113 notazione originale dei diagrammi ER, che é ancora ampiamente usata. Qui discutere-
dedicate ails biblioteche digitali. In quella sede Mederhold (i995) discute il mole delle bi- mo alcune uotazioni altemative.
di
blioteche digitali nell‘aumento delia produttivita umana nel trovare nuova eonoscenza. I1 nu- 1n Figura A. l (a) sono presentate diverse notazioni per la rappresentazione grafica di tipi
i. Nei Capitoli 3 c 4 50:10 stati usati i simboli che in figura
mero deli’apriie 1998 di Communications afrhe ACM é dedicate ad ampliarc lo scopo c a for- cnfitalclassi, attributi e associazion
di en-
nire un accesso illimitato alle biblioteche digitali. Schatz (1995, 1997) offre un’eeceilente irat— sono indicati con (i), ossia rettangoli, ovali e rombi. Si noti che il simbolo (ii) per i Lipi
tazione sul recupero delle informazioni, sulla ricerca e sull‘analisi e di come esse sono effet- titaiclassi, ii simbolo (ii) per gli attributi e il simbolo (ii) per le associazioni sono tra loro si-
tuate in Internet. Le universita che partecipano all‘Iuiziativa delle Biblioteche Digitali posse- mili. ma sono usati da metodologie diverse per rapprescntare Lre concetti diversi. ll sirnboiodi
no essere raggiunte ai seguenti URL: 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—
- Iniziativa delle Biblioteche Digitali: dli.graingeruiucedufnationaihtm ma. Qui é stata usata la notazione (5.). La notazione (ii) 1153 la terza notazione (i) (ii Figura
' Universita di Berkeley: elib.es.berkeley.edu
A.1(a) per gli attributi. Le ultime due notazioni di Figura A.1(b) — (iii) e (iv) — sono fre-
' Universita di Santa Barbara: alexandriasdeucsbedu quentemente usate nelle metodologie DOA e in qualche strumemo CASE. In particulare. l’ulti-
Universita Carnegie-Mellon: www.informedia.cs.cmu.edu ma notazione rappresenta sia gli atuibuti siai metodi di una classe, separati da una iinea oriz~
Universita dell’Illinois a Urbana Champaign: dli.grainger.oiuc.eduldefauit.htm zontale.
' Universita dei Michigan: www.5i.umich.edu.-'LMDL iii Figura Alto) sono mosu'ate varie notazioni per rappresentare ii rapporto di cardinalita
' Universita di Stanford: walrus.stanford.eduidiglib {ii associazioni binarie. Nei Capitoli 3 e 4 e stata usata la notazione (i). La notazione (ii) .— no-
ta come notazione a zampa di gaiiina — é abbastanza populate. La notazione (iv) Ilsa la frec-
cia 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 posiziona-
mento medic in millisecondi. La tipica gamma di valori per il tempo di posizionamento ine-
dio 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 ne-
ceSSan'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 me-
dio 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 w_.“ __

Parametri dei dischi 475


474 Appendica B

rd = 3msec. Fer stina di letturalscfittura di detenninsre quale blocco sta per leggere. Di solito i1 costmttore di
Un valore tipico per p e di 10000 rpm, cbe da un ritardo di rotazione di
fissa. nei quali i1 tempo di posiziona mento e trascurab ile, quests component: dischi fomisce 1m tasso di trasferimettto di una 'mole di dati (bulk transfer rate: btr) che
dischi a testis-m
nto di on biocco di disco. none conto delta dimensione deflo spazio tta blocchi quando si leggono blocchi memorizzati
causa ii maggior ritardo nel o'asferime
consecutivamente. Se la dimensione dello spazio tra blocchi e di G byte, allora
volta che 1a testina di
3. Tempo di trasferlmento di blocco (block transfer time: btt}. Una
on certo tempo per tra- btr = (BIOS + (3)) at tr bytefmsec
letturafscrittura si e portata all‘inizio del blocco desiderato, e richiesto
blocco dipende dalla di-
sferixe i dati presenti nel blocco. Questo tempo oi trasferimcnto di
. Se il tasso di tra- I1 tasso di trasferimento di una mole di dati e il tasso di u‘asferimento di byte urfli presen-
mensione del blocco. da quella della traCcia e dalia velocite di totazione
dimensione del blocco e di B ti nei bloocbi di dati. Quando i1 disco roots. la testina di letturs/scrittura dove psssare sopra
sferimento (transfer rate) del disco e pad a II bytefmsec, e la
tutti i byte presenti in una traccia, compresi i byte dcllo spazio Ira bloocbi, che contengono
byte, allora
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
btt = Bitr msec
consecutivi e Blbtr. Percio il tempo stimato per leggere it 1310c memorizzati consecutiva-
1pm, i1 tasso di tra— meme sullo stesso cilindro diventa
Se 1a dimensione della traccia é pari a 50 Kbyte e p e uguale a 3600
sfeiimento in bytefmsec e
S+rd+(k*(B/btr))msec

tr = [50*1000)f(60*1000!3600) = 3000 bytelmsecl


Un altro parameoo di disco e il tempo di riscrittura (rewrite tlme). Esso si rivela utiie
In questo caso. btt = 833000 msec. dove B e la dimensione del blocco in
byte. quando si leggc on blocco da disco, lo si trasferisce in on buffer in memoria centrale, si mo-
difies i1 contenuto del buffer, e quindi si riscrive il contenuto do! buffer nello stesso blocco di
. e stimato in disco in cui era iniziaimente memorizzato. In mold casi i1 tempo ricbiesto per modificare i1
1] tempo medio necessario per trovare e oasferire un blocco, date it 5110 indirizz
buffer in memoria commie e inferiore al tempo ricbiesto per una rotazione compieta del disco.
(s + rd + btt) msec 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-
per ridur-
Ci?) vale sia per la iettura che per la scrittuxa di un blocco. II 1:18m principaie fer viene riscritto nel blocco di disco. Percio si stima cite i1 tempo di riscrittura Tn, sia i1 tem-
defio stes-
re questo tempo consists nel trasferire pit blocchi memorizzati st: one o pit tracce po necessario per una rotazione complete del disco:
il ptimo blocco.
so ciiindro: in questo modo il tempo di posizionamento e richiesto solo per
presenfi nello stesso ctlindra. 51 ha. ap-
Per trasferixe consecutivamente k blocchi nan contigui, Tm=2=erdmsec
prossimativamente bisogno di
In sintesi. si fomisce qui di seguito 1m elenco dci parametri esaminati e dei relativi simbo-
5 + (k 1: (rd + btt)) msec li usati:

che si statmo con~ tempo di posizionameoto: s msec


In questo caso sono necessari due 0 pit) buffer in memoria centraic. dato ritatdo di rotazione: rd msec
blocchi, come visto nel Paragraf o 4.3. I! tempo di trasfe-
tinuamente leggendo o scrivendo ik tempo di oasferimento di blocco: btt msec
di blocco si riduce anche di pifi quando vengono u'asferiti btccchi consecutivi defla
timento tempo di riscrittora: T,w msec
i blocchi ozone il prime.
stessa traccia o cilindro. Cio elimina i1 ritardo di mtazione per tutti tasso di trasfenimento: t: bytelmsec
e cosi i} tempo stimato per trasferire it blocchi consecu tivi diventa
tasso di oasfefimento di una mole di dati: btr bytefmsec
dimensione di blocco: B byte
s + rd + (k. * btt) msec
dimensione dello spazio tra blocchi: G byte
done some dello spazio tra
Una stima pin accurata del trasferimeoto di bloochi consecutivi
Veda i1 Sottopar agmfo 5.2.1), che condone 1e informaz ioni che consentono alla te—
biocchi {5i

(Matt)
’ Nei calcoli si e suppOsto, per semplicite. 1 Khyte = 1000 byte.
Bibliografla 479
4 78 Bibliografia

Association Rules de Web: The Information Universe". Electronic Nenvorh'ng: Research. Applications and Policy.
[Agrawal e altri 199331 R. Agrawal, T. Imielinski e A. Swami, “Mining
Volume 1, Number 2 (1992).
Between Sets of Items in Databases", in {SIGMOD 1993].

Mining: A Perfor- [Berners-Lee e altrl 1994] T. Banners-lee, R. Cafllian. A. Lautonen. H. Nielsen e A. Secret,
[Agrnwa] e altri 19931:] R. Agrawal. T. Imielinski e A. Swami, "Database “The World Wilde We ", CACM, Volume 13. Number 2 (Agosto 1994).
mance Perspective". IEEE TKDE. Volume 5. Number 6 (Agosto 1993).

s for Mining Association [Bernstein 1976] P. Bernstein. “Synthesizing Third Normal Form Relations from Functional
[Agrnwal e Srikant 1994] R. Agrawal e R. Srikant. “Fast Algoritlnn Dependencies”. TODS. Volume 1, Number 4 (Dicembre 1976).
Rules in Large Databases". in [VLDB 1994].

"The Quest Data Mining {Bettina e altri 1998] F. Bertino. Rabbitti e S. Gibbs. "Query Processing in a Multimedia En-
[Agrawal e altri 1996] R. Agrawal. M. Mehta, I. Shafer e R. Srlkant, vironment“. T013. Number 6 (1998).
System". in {KDD 1996].

of Joins in Relational Databa- [Bischofi' eAlexander 1997] J. Bischoff e T. Alexander. a cure di. Data Warehouse: Practical
[Aho e altrl 1919] A. Aho, C. Beeri c J. Ullman. "The Theory Advice fiom the Experts, Prentice-Hall (1997).
ses". TODS. Volume 4. Number 3 (Settembre 1979).

and Versatile Method for Asso- {Biskup e altri 1979] J. Biskup. U. Dayal e P. Bernstein, "Synthesizing Independent Database
[Amir e altri 1997] A. Amir, R. Feldman e R. Kashj. “A New Schemas". in [SIGMOD 1979].
n“. Infomott‘o n Systems. Volume 22. Number 6 (Settembre 1997).
ciation Generatio

deBruijn. A. Coulson. J. [Blakeley e altri 1989] J. Blakeley. N. Cobum e P. Larson. “Updated Derived Relations: De-
{Anderson e altri 1981] S. Anderson. A. Bankier. B. Harrell. M.
Smith, R. Staden e 1. Young, “Se- tectmg irrelevant and Autonomousl}r Computable Updates". TODS, Volume 14. Number 3 (Set-
Drouin, I. Eperon. D. Nierlich, B. Rose. F. Sanger, P. Sohreier, A. tembre 1989).
290, pagg. 457-
quence and Organization of the Human Mitochondrial Genome". Nature. Number
465 (1981). [Beach e altri 1999] G. Bench. 3. Rumbaugh e I. Jacobson. Unified Modeling Language User
on Data Base Management Guide, Addison-Wesley (1999).
[ANSI 1915] American National Standards Institute Study Group
Systems, Interim Report. FDT. Volume 7. Number 2. ACM (1975). [Boyce e altri 1975] R. Boyce. D. Chamberlin. W. King e M. Hammer, “Specifying Queries as
Language SQL". Docu- Relauonal Expressions". CHCM. Volume 18. Number 11 (Novembre 1975).
{ANSI 1986] American National Standards Institute, “The Database
ment ANSI X3.135 (1936). [Breechi e altri 1976] G. Bracchi, P. Paoiini e G. Pelagani. "Binary Logical Associations in Da—
hips”. Pro— ta Modelling", in [Nijssen 1976].
[Armstrong 1974} W. Armstrong. “Dependency Structures of Data Base Relations
ceedings of the IFIP Congress (1974).
[Burkhard 1976] W. Burkbard, "Hashing and The Algorithms for Partial Match Retrieval".
Database Theory, Benja- TODS, Volume 1.Number2 (Giugno 1976), pagg. 175-187.
[Atzeni e De Antonellis 1993] P. Atzeni e V. De Antonellis, Relational
miniCumnungs (1993).
[Burkhard 1979} W. Burkhard. ‘Tanial—match Hash Coding: Benefits of Redunancy“. TODS,
{VLDB 1997]. Volume 4. Number 2 (Giugno 1979). pagg. 228-239.
[Atteni e altri 1997] P. Atzeni, G. Mecca e P. Merialdo. "To Weave the Web”. in
nce of Bl-trees with [Cannnarata e altri 19893 S. Cammarata, P. Ramachandra e D. Shane, ‘Extending a Relatio-
[Been-Yates e Larson 1989] R. Becca—Yates e P. A. Larson. “Performa
2 (Giugno 1989). nal Database with Deferred Referential Integrity Checking and Intelligent Joins“. in [SIGMOD
Partial Expansions". TKDE. Volume 1. Number
1989].
ce of Lar-
[Bayer e McCreIght 1972] R. Bayer e E. MoCreight. E, "Organization and Maintenan
. Volume 1. Number 3 (Febbraio 1972). [Campbell e altri 1985] D. Campbell. D. Embley e B. Czejdo. “A Relationallg.r Complete Query
ge Ordered Indexes“. Acre Itgfonnatica
Language for the Entity-Relationship Model". in [ER Conference 1985}.
Acids
[Benson e altri 1996] D. Benson. M. Boguslci. D. Lipman e I. Ostell. “GenBank”. Nucleic
{Carlls 1986} J. Carlis. "HAS, :1 Relational Algebra Operator or Divide Is Not Enough to Con-
Research. Volume 24. Number 1 (1996).
quer", in [ICDE 1986].
(1989).
[Berg e Roth 1989} B. Berg e J. Roth, Sewer-afar Optical Disk, Meckler
[Cattei 1997] R. Catteli., a cure di, The Object Database Standard: ODMG. Release 2.0. Mor-
gan Kaufmann (1997). ,
, “World-Wi-
[Beaters-Lee e altri 1992111 Beaters-Lee. R. Cajllian, .l. Grooff e B. Pollermann
1...._.__..._ _. t... -a_._;‘.,_._. l...... ,_o.._-.r-_ . J - .g mm; t. I. . 1'. . him;
Blbllografla 481
480 Blbliografia

"A Dynamic Hash Method with Signature", sfliaggnZb] E. Codd. “Further Normalization of the Data Base Relational Model". in [Ru-
[Cesarini e Soda 1991] F. Cesarini e G. Soda.
TODS, Volume 16. Number 2 (Giugno 1991).

R. Boyce, “SEQUEL: A Structured English [Codd 1974] E. Codd, “Recent Investigations in Relational Database Systems". Proceedings of
[Chamber-lit: e Boyce 1974] D. Chamberlin e
the IFIP Congress (1914).
Query Language". in [SIGMOD 1974].

“SEQUEL 2: A Unified Approach to Data De- [Codd 1979] E. Codd. “Extending the Database Relational Model to Capture More Meaning".
[Chamberlin e altr‘l 1976] D. Chamberlin e altti. TODS. Volume 4. Number4 (Dicembre 1979).
and Contro l", IBM Journa l of Research and Development. Volume 20.
finition . Manipulation,
Number 6 (Novembre 1976).
[Code] 1985] E. Codd, "Is Your DBMS Really Relational?" e “Does Your DBMS Run By the
“Extensible Buffer Management of Indexes“. in Rules?". COMPUTER WORLD, (14 e 21 Ottobre 1985).
[Chan e altri 1992] C. Chan. 13. Ooi e H. Lu.
[VLDB 1992]. 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.
Record. Volume 26. Number. 1 (Marzo 1997).
OLAP Technology”. SIGMOD
[Codd e altr'l 1993] E. F. Codd. S. B. Codd. e C. '1‘. SalJey. “Providing OLAP (On—Line Analytical
oward a Unified View of Data", TODS. Processmg) to User Analyst: An IT Mandate“, httpzllwwwarborsoftcornlOLARhn-nl (1993).
[Chen 1976] P. Chen. “The Entity Relationship Mode-T
Volume 1, Number 1 (Marzo 1976).
[Corner 1979] D. Comer. “The Ubiquitous B-tree“, ACM Computing Surveys. Volume 11. Num—
izing Performance in a Striped Disk ber 2 (Giugno 1979).
[Chen e Patterson 1990] P. Chen e D. Patterson. “Maxim New York (1990).
t’tecture. IEEE.
Array“. Proceedings of Symposium on ComputerArch
[Cutieehia e altri 1993] A. Culicchia. K. Fasman, D. Kingsbury. R. Robbins e P. Pearson. ‘The
13
Katz e D. Patterson. "RAID High Perfor- Eggsfluman Genome Database Anna 1993”. Nucleic Acids Research. Volume 21. Number
[Chen e altri 1994] P. Chen. E. Lee, G. Gibson. R. 26, Number 2 (1994).
ting Surveys. Volume
mance. Reliable Secondary Storage", ACM Compu

W. Fu eA. Y. Fu. "A Fast and Distributed [Date 1983] C. Date. "The Outer Join". Proceedings oftlte Second International Conference on
[Cheung e altri 1996] D. Cheung. J. Han. V. Ng, A.
hm for Mining Associ ation Rules“ . Procee dings of International Conference on Parallel Databases HOOD-2) (1983).
Algorit
and Distributed Irg’orrnotion Systems. PDIS (1996). [Date 1984] “A Critique of the SQL Database Language. ACM SIGMOD Record. Volume 14,
re Number 3 (Novembre 1984). '
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 [Date 1995] C. Date, An Introduction Database Systems. VI ed.. Addis::tn—_‘it'\"esle3«r (1995).
e A. Datta. “An Adaptive Lacation Ma-
[Chlntalapati e altri 1997] R. Chintalapati. V. Kumar on Local [Date 9. Darwen 1993] C. J. Date, H. Damon. A Guide to the SQL Standard, DI ed., Addison-
dings of 22nd Annual Conference
nagement Algorithm for Mobile Computing“. Procee Wesley (1993).
Computer Nemarks {LCN '97J. Minneapolis (1997).

ues, Wiley (1983). [Dayal e Bernstein 1978] U. Dayal e P. Eematein, “On the Updatability of Relational Views",
[Chlaybmok 1933] B. Claybrook, File Management Techniq VLDB (19TH).
Large Shared Data Banks". CACM. Volume 13,
[Codd 1970] E. Codd. “A Relational Model for [DBGT 1971] DBGT, Report oftlte endow! Data Base Task Group. ACM (Aprile 1971).
Number 6 (Giugno 1970).

Founded on the Relational Calculus". Pro- [Dhawan 1997] C. Dhawan. Mobile Contouring, McGrnw-Hifl (1997).
[Codd 1971] E. Codd. “A Data Base Sublang'uage
s of the ACM SlGFID ET Worksh op on Data Description, Access, and Control (Novembre
ceeding
[Dlpert e Levy 1993] B. Dipert e M. levy, Designing with Flash Memory, Annabooks (1993).
19':r 1).
Base Suhlanguages", in [Rustin [Began 1993] A. Dogac, “Special Section on Elecuonic Commerce". ACM Sigmod Record. Vo-
[Codd 1972a] E. Codd. “Relational Completeness of Data
lume 27, Number 4 {Dicernbre 1998).
1972].
Bibliografla 487
486 Bibllografia

t Bl—Ti‘ecs". in [SIGMOD 1991]. [Matti-ion 1996] R. Mattison. Data Warehousing: Strategies. fichttoiogies. ana‘ Ibchniqttes.
[Lenka e Mays 1991] S. Lenka e E. Mays. 2Fully Persisten McGruw—Hill (1996).
[Larson 1978} R Larson. “Dynamic Hashing". BIT. Number 18 (1978). [Melton e Simon 1993] J. Melton eA. R. Simon. Understanding the New SQL: A Complete
Overflow Chaining". TODS. Guide, Morgan Kaufmann (1993).
[Larson 1981] P. Larson. “Analysis of Index—Sequential Files with
Volume 6. Number 4 [Dicembre 1981).
[Mendea e altrl 1997] A. Mendelzon. G. Mihaila e T. Milo. “Querying the World Wide
on. Fundamentals of Spatial Information Web". Journal ot'gital‘ Libraries. Volume 1. Number 1 (Aprile 1997).
[Laurini e Thompson 1992] R. Laurini e D. Thomps
Systems. Academic Press (1992). [Miller 1987] N. Miller. File Structures Using PASCAL. Benjamin Cummings (1987).
for Concmrent Operations on B-
[Lehman e You 1981] P. Lehman e S. Yuo. “Efficient Looking [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 [Morris 1968] R. Morris. "Scatter Storage Techniques". CACM. Volume] 1. Number 1 (Germain
Relationship Motlei“, in [ER Conference 1983] .
1968).
Hara, “Hierarchical Image Modeling
[Li e altri 1998] W. Li. K Seluk Candau. K. Hiram e Y. [Navathe e Schkolnich 1978] S. Navathe e M. Schlcoluick, “View Representation in Logical
Retrieval ". DKE. Volume 27. Number 2 (Settembre 1998). pagg. 139—176.
for Object-based Media Database Design". in [SIGMOD 1978].
on Rules". in [ICDE 1998].
[Lin 2 Dunham 1998] J. Lin c M. H. Dunham. “Mining Associati
[Negri e altri 1991] M. Negri, S. Pelagatti e L. Sbatella. “Formal Semantics of SQL Queries".
ng with Neural Nets", lEEE ASS? TODS, Volume 16. Number 3 (Settembre 1991).
[Lippman 1987] R. Lippman. “An Introduction to Computi
Magazine (Aprile 1987).
[Ng 1981] P. Ng, “Further Anaiysis of the Entity-Relationship Approach to Database Design“.
File and Table Addressing". in TSE. Voiume 7. Number 1 (Gennaio 1981).
[Litwin 1980] W. Litwin. “Linear Hashing: A New Tool for
[VLDB 1980]. [Nievergelt 1974} J. Nievcrgelt. “Binary Search Trees and File Organization". ACM Comparing
Hall {1989}. Surveys. Volume 6. Number 3 (Settembre 1974).
[Livadas 1989] P. Livadas, File Structures: Theory and Practice. Prentice—
a cum di. Geographical Infor- [Nievergelt e altri 1984] J. Nievergelt. H. Hinterberger e K. Seveik, “The Grid File: An Adap-
[Banguire e nltri 1997] D. Maguire. M. Goodchild e D. Rhind. table Syrrunetric Mullikey File Suucture“. TODS, Volume 9. Number 1 (Marzo 1984). pagg. 38—
Scientific and Technical. New
mation Systems: Principles and Applications. voll. l e 2. Longmau 71.
York (1997).
M. Ammar e S. Malik. [Nijssen 1976] G. Nijssen, a cure. di. Modelling in Data Base Management Systems. North-Hol-
[Mohnjan e altri 1998] S. Mahajan, M. 1. Donahoo. S. B. Navathe. land (1976).
d Databases , [CBS
"Grouping Techniques for Update Propagation in Intermittently Connecte
(1998). [Nwoeu e nltri 1996] K Nwosu, P. Berra e B. Thuraisingham. a cure. di, Design and Imple-
r Science Press (1983]. mentation aat‘timedia Database Management Syrtemr, Kluwer Academic (1996).
[Meier 1983] D. Meier, The Theory of Relational Databases. Compute
Algorithms for Di- [Olle e altri 1982} T. Oile. H. Sol e A. Venijn~Smait a cure di. Ity’onnation System Design
[Mannila e altri 1994] H. Mannila. l-l. Toivonen e A. Verkamo. “Efficient
e Discovery tn Databases, Methodology. North-Holland (1982).
scovering Association Rules". RUDD-94, AAA! Workshop on Knowledg
Seattle (1994).
[Oracle 1997a} Oracle. Oracle 8 Server Conceptr, voll. 1 e 2. Release 8-0. Oracle Corporation
SIGMOD Record. Volume (1997).
[Manolo 1998] F. Manolo. “Towards a Richer Web Object Model“.
27, Number 1 (Metro 1998).
[Oracle 1997b] Oracle. Oracle 3 Server Distributed Database System. Release 8.1] (1997).
. Role Orien-
Markowitz e Ran 1983] V. Markowitz e Y. Raz. "ERROL: An Entity-Relationship
[Oracle 1997c] Oracle. PUSQL User’s Guide and Reference. Release 8.0 (1997).
ted. Ouenr Language". in {ER Conference 1983].
"——-—- -——< L_..._- .— _.._. .______., "_. .__- __.,.._....- -_ . 9......” new“; -.....w—_.' ._ .. __— ._..._.. '.r. -- .—

Bibilografia 489
488 Blbllogra‘lia

[Oracle 1997a} Oracle. Oracle 8 Server 89;: Reference, Release 8.0 {1997). [Rustin 1972] R. Rustin. a cure di. Data Base Systems, PrenticeHall (193?).

[Oracle 1997c] Oracle. Oracle 8 Parallel Server; Concepts and Administration, Release 3.0 [Salzberg 1988] B. Sslzberg. File Structures: An Analytic Approach. Prentice—Hall (1988).
[1997).
[Salzberg e altri 1990] B. Salzberg e alui. "FastSort: A Distributed Single-Input SingleOuL-put
[Oracle 1997f] Oracle. Oracle 8 Server Spatial Cartridge, User’s Guide and Reference. Relea— External Sort". in [SIGMOD 199D].
se 8.0.3 (1997).
{Sarasua e O’Neill 1999] W. Sarasua e W. O’Neill. GIS in Transportation, in [Taylor at Fran-
[Osborn 1979] S. Osbom. ‘Towards a Universal Relation Interface", in [VLDB 1979]. cis 1999].

[Omyoglu e altri 1985] G. Ozsoyoglu. Z. Ozsovoglu eV. Mates, “Extending Relational Alge- [Sarawagl e altri 1998] S. Sarawagi, S. Thomas e R. Agrawal. “Integrating Association Rules
bra and Relational Calculus with Set Valued Atlributes and Aggregate Functions", TODS. Volume Mining with Relational Database systems: Alternatives and Implications". in [SIGMOD 1993].
12. Number 4 [Dicembre 1985).
[Snvnsere e altri 1995] A. Savasere, B. Omiecinslti e S. Navathe. "An Efficient Algorithm for
[Parent e Spaceapietra 1985] C. Parent e S. Spaccapiena. “An Algebra for a General Entity- Mining Association Rules". in [VLDB 1995].
Relationship Mode “. TSE, Volume 11. Number 7 (Luglio 1985).
[Schlitz 1995] B. Schulz. ‘information Analysis in the Net: The Interspaee of the Twenty-First
[Park e altrl 1995'] J. Park, M. Chen e P. Yu, “An Effective Hash Based Algorithm for-Mining Century", Keynote Plenary Lecture at American Society for Information Science (ASIS) Annual
Association Rules“, in [SIGMOD 1995]. Meeting, Chicago, (11 Ottobre 1995).

[Patterson e altri 1983] D. Patterson. G. Gibson e R. Kate. “A Case for Redundant Arrays of [Schulz 1997] B. Schatz. "Information Retrieval in Digital Libraries: Bringing Search to the
Inexpensive Disks (RAIDT’, in [SIGMOD 1988]. Net”, Science. Volume 275 (17 Germain 1997).

[Pazandak e Srivastava 1995] P. Pazandak e J. Srivastava, “Evaluating Object DBMSs for [Scheuennann e altri 1979] P. Scheucrmann. G. Schiffner e H. Weber, “Abstraction Capabili—
Multimedia". iEEE Multimedia. Volume 4. Number 3 (1195). pagg. 34-49. ties and Invariant Properties Modeling within the Entity-Relationship Approach“. in [ER Confe-
rence 1979].
[Pearson e altri 1994] P. Pearson, C. Francomano. P. Foster. C. Bocchini. P. Li eV. McKusick,
"The Status of Online Mendelian inheritance in Man (OMIMJ Medio 1994". Nucleic Acids Re- {Schmidt e Swanson 1975] J. Schmidt e J. Swenson. "On the Semantics of the Relational Mo—
search, Volume 22. Number 17 (1994). del“. in [SIGMOD 1975}.

[Platesky-Shapiro e Frauley 1991] G. Piatesky-Shapiro e W. Frauley. a cure di, Knowledge Di-


[Senko 1975] M. Senko. “Specification of Stored Data Structures and Desired Output in DIAM
scovery in Databases, AAA] PressfMlT Press (1991).
11 with FORAL". in [VLDB 1975].
[Pitoura e Samaras 1998] E. Pitoura e G. Samsras, Data Managementfor Mobile Computing.
[Senko 1980] M. Senko, "A Query Maintenance Language for the Data Independent Accessing
Kluwer (1998).
Model 1]". information Systems. Volume 5. number 4 (1980}.

[Ramakrishnan 1997] R. Rarnaltrishnan. Database Management Systems, McGraw-Hill


[SIGMOD 1974] SIGMOD, Proceedings ofthe ACM SIGMOD-SIGFIDET Conference on Da-
(1997).
ta Description, Access. and Control, a cure di R. Rustin (Maggio 1974).
[Reisner 1977] P. Reisner. “Use of Psychological Experimentation as an Aid to Development of
a Query Language“. TSE, Volume 3. Number 3 (Maggio 1977). [SIGMOD 1975] SIGMOD. Proceedings of the 1975 ACM SIGMOD International Conferen-
ce on Management of Data. a cure di F. King, San Jose. CA [Maggio 1975). ACM SIGMOD -
[Robbins 1993] R. Robbins. "Genome Informatics: Requirements and Challenges", Procee«
dings of the Second international Conference on Bioinfor-rnatics. Supercomputing and Complex [SIGMOD 1978] SIGMOD, Proceedings of the i 978 ACM SIGMOD International Conferen—
Genome Analyst's. World Scientific Publishing (1993). ce on Management of Data. a cure di E. Lowenthal e N. Dale, Austin. TX [Maggie-Giugno 1913).

[Ruemmler e Wilkes 1994] C. Ruemmler e I. Wilkes. “An introduction to Disk Drive Mode— [SIGMOD 1979] SIGMOD. Proceedings of the 1979 ACM SIGMOD International Conferen-
ling". IEEE Computer. Volume 27, Number 3 (Marzo 1994), pagg. I'll-2'3. ce on Management ofDara, a cure di P. Bernstein, Boston. MAmlaggiiugno 1979).
492 Blbltografia

[VLDB 1994] VLDB, Proceedings of the 20th Intenmrional Conference on Very Large Dora
Bases, a cura di .1. Bocca, M. Jarke e C. Zaniolo, Santiago. Cile (Settembre 1994).

[VLDB 1995] VLDB, Proceedings ofrhe 215: Intemorional Conference on Very large Dora Ba-
ses, a corn di U. Dayal, P. M. D. Gray e S. Nishio, Zurich, (Settembre 1995).
Indice analitico
[VLDB 1996] VLDB. Proceedings of the 22nd International Conference on Very Large Data
Hoses. a. cum di T. M. Vijayaraman, A. P. Buchman, C. Mohan e N. L. Sarda. Bombay. (Settembre
1996).

[VLDB 1997] VLDB, Proceedings of the 23rd International Conference on Very Large Doro
Bases, a cure di M. Jarke. M. .1. Carey, K. R. DirIIich, F. H. Lochovsky e P. Loucopoulos. Zurich
(Settembre 1997).

[Wallace 1995] D. Wallace. "1994 William Allan Award Address: Mitochondrial DNA Variation
in Human Evolution. Degenerative Disease, and Aging”. American Journal of Human Genetics.
Number 57, pagg. 201-223 (1995).

[Wang 1990] K. Wang, 2Polynomial Time Designs Toward Both BCNF and Efficient Data Ma-
nipuIaLion,“ in [SIGMOD 1990].
A ALTER TABLE (SQL), 257-253
[Weiss e Indurkhya 1998] S. Weiss c N. Indurkhya, Predicrive Data Mining: A Practical Gui- ambiguita in interrogazioni SQL
aggregazione, 96, 105-107 in interrogazioni nidificate. 269
de, Morgan Kaufmann (1998).
albero in nonfi di attributi. 261
13, 178-180, 189
[Widcrn 1995} J. Widom. “Research Problems inDataWarehousing", CIKM (Novembre 1995). amministratore della base di dati (DEA). 10
ordine, I78
anaJisi dei dati in linear (OLAP), 400
13*, 181-389
[VViederhold 1983] G. Wiederhold, Database Design, 11 ed., McGraw-Hill (1983). anomalie di aggiomamento, 314-316
divisione, 136
anomalie di cancellazionc. 316
inscrimento. 184-136
[Wiederhold 1995] G. Wiederhold. "Digital Libraries. Value, and Productivity", CACM, (Apri- anomalie di inserimento, 314-315
ordine.181-184
le 1995). anomalie di modifica, 316
ricerca, 184
ANSI (American National Standards
strutmra di. 181-184
[Wicderhold e Elmasri 1979] G. 1llficdcrhold e R. Elmasri, “The Strucmrai Model for Databa- Institute), 27:], 40, 250
bilanciato. 1'17
se Design", in [ER Conference 1979]. ANY (SQL), 268
algebra reiazionale. 215-230
altne operazioni. 231-236 applicazione, 6
[eth 1972] N. Winn. Algorithms + Doro Structures = Programs, Prentice-Hall (1972). d1 bani di £12131, 7
espressiOne, 219
insieme completo, 228 architetrura
[Zohel e altri 1992] J. Zobel, A. Mofi'at e R. Sacks-Davis, “An Efficient Indexing Technique for a ire livelli, 27-29
Full-Text Database Systems". in [VLDB 1992].
interrogazioni escmplificative, 236-238
algoritmi ANSHSPARC, 27n
di chiave, 356 RAID 125-129 -
di decomposieione, 355 area (so disco), 152
di sintesi. 350. 355-356 AS (SQL),262 _ . ' .~
genetici. 426-427 assegnazione di pseudonimi (SQL), 26;1~2.62'._ _'
ALL {SQL}, 264. 268 asset-done, 289-290 ": - "
allocazione assiomj (regole as inferenza) di Armstrong. - . ' '
[ii spazio so disco, 135 325
collagen, 135 associazione, 5359
contigua. 135 binafia. 54-53. 98
indicizzata, 135 classeisottociasse. 77
500 lndice analitlco lndlce analitlco 501

di EQUIJOJN. 226 mom (Oracle), 382-384 RDB. 364 S


di INTERSEZIONE. 222 processo read (commits di accesso a file). 137
record. 131 scan (comando d1 accesso a file). 137
di JOIN ESTERNO, 234-236 di generalizzazione. 87-88
a lunghezza fissa. 132-134 schema, 25
di JOIN NATU'RALE. 226 di normalizzazione. 328
d1 spocializzazione, 87-88 a lunghczza variabile, 132-134 a 1:1c di nave, 406
di JOIN. 225-228. 234-236
:11 esecuzione della baseldidati. 34 a Stella. 406
di PRODOTTO CAKI'ESIANO, 222 Encore. 164
profondith concettuale, 28
di PRODOTTO INCROCIATO, 222 formato, 131-134
globaie (nell’hash cstcndibile), 149 di relazione. 201
di PROIEZIONE. 218-219 organizzazione
locale (hash). 150 ' elementi di. 251
di recupero (311 file). 136 di record spanned. 134
di RlDENOMlNAZIONE, 220—221 progettazione dibasi di dati rclazionaii Eli record unspanned, 134 BR. 62
traduzione da BER in relazionale. 303-307 estcrno. 28
121 SELEZIONE, 216-218 ripartizione in 1:10c (su disco). 134-135
di TI—IETA JOIN. 226 traduzione :13 ER in relationaie; 298-302 tipo di. I31 in SQ]... 25
di UNIONE. 222 progettazione di one base di dati recupero defle informazioni. 443 interno. 2'."
:11 UNIONE ESTERNA. 235 concettuale 42-46 regola modifica cli1 251
outer join in sql, 2'15 raffinamento. 61 di arricchimonto per DE 323 Ioggetti dello (Oracle), 369-371
operazioni fisioa di una base‘di dati. 43. 44 . di associazione. 418-423 SDL (storage definition language) 51 veda
arimetiche in SQL. 265-26? logica di one base di dati. 43, 44 . di inferenza per DF. 323-326 Iinguaggia d1 definizione delta
di join in SQL, 260, 274-275 progettista di basi di dati. 11 regressione lineare. 424-425 memorizzazfarte
di un modello di dati, 24 programma relazione. 201 SELECT (SOL), 258-261
insiemistiche (relazionali), 221-225 appficazivo. 3 associazione. 302 sclettivita del JOIN, 228
Oracle di utiliti. 35 entita. 302 semantics di relazione. 311-314
architemrra. 365—36? prograrrnnatore di applieaziorli. 12 grado. 201 SEQUEL (Structured English QueryI
diziorlario dei dati, 311-372 proiezione di un insieme di DP, 349 in Acces5388-391 Language). 250
istanza, 366-367 proprieti ‘ nidificata, 331 server. 23
metodi. 373 di classe, 103 SET DEFAULT (SQL), 255
riferita, 211
oggetti dello schema. 369-371 di conservazione degli attribufi 348 universale. 320, 347 SET NULL. (SQL). 255
organizzazione della memoria, 314-377 111 join senza perdita (non-additive). 328 SGML (standard generalized marckup
report (Access), 394-395
PUSQL. 328-380 proprietario identificante,‘60 reset (comando di aocesso a file). 137 language) si Veda linguaggia standard
PRO*C. 382-384 protocollo per il trasfcrimento diipet'lestl rete neurale. 425-426 di mamamm generalizzata
processi, 367—368 (http). 434 . sintesi relazionele. 350. 355-356
reticolo
prog'rmmnazione delle applicazioni. 379-334 puntatore sisterna
di generalizzazioni. 84—37Ir
segmento. 375, 376-377 a record. 147 a meme singolo. 37
di specializzazioni, 34-87
segmento dei dati. 3‘15. 376-377 a un albero. 178 operative. 33
renoflusso di dati (backflushjng). 408
spazi delle tabelle. 374-375 aided. 178. 132 sistemi di supporto alle decisioni (DSS). 400
ricerca
SQL. 372 pnnto Encore. 164 sistemi infonnativi geografici (GIS)
elbero di. 176-178
strumenti, 385 binaria, 140 Geographic Irlfomration Systems). 452-
struttura della base di dati, 365-367
trigger. 373
Q campo di, 17? 458
lineare, 136, 13-; sistemi informan'fi per dirigenti site Web, 434
WebServer, 437—433 qualificezione dei nomi (SQL). 261-262
ridondanza. 13-14 software di comunicazione. 36
orario, tipo di dati (SQL), 252 quantificatore in SQL. 271-273
cont-01111111, 14 SOME (SQL), 268
riga, 200. 251 snttoalbero, 175
P R RIGHT OUTER JOIN in SQL. 2'15 specializzazione. 78-31
racooltaianalisi dei requisiti. 42-44 RIM. 364 definite dall’utente, 33
PARADOX, 364
raggnrppmnento (clustering). 231-232 rinomjnazione in SQL, 261-262, 274 definite tramite an attribute, 133
partecipazione
in data mining. 427 riprist'tno. 1'1 definita n-anfite on predicate, 82
parzizfle, 58
in SQL, 271—280 risoluzione delle collisiorn', 145 pamiale, 83
totals. 58
rapporto di cardinalita. 57 ritardo di rotazione, 123, 473 vincoli. 82-84
PUSQL. 378—380
Powerbuilde‘r. 335 rappresentazione della conosoenza (KR). 102- 11.1010 (:31 partscipazione ad un‘associazione}. totale, 83
107 SQL, lingnaggio
precompilatore, 35
Indioe analitico 503
'02 Indlce analifioo

tipo di dati, 5, 201 VDL (View definition language) 5i veda implementazione, 282-289
concetto di catalogo 251
a stinghe di bit (SQL), 252 Iinguaggio di definizione defile vista in SQL, 285-289
concetto di schema, 251
a stringhe d1 caratteri in SQL, 252 verifica del join senza perdita, 351 visualizzazione
DDL (dcfinilione dei dati). 249-252
INTERVAL (SQL), 254 vincoli di chiave dxiJl-down. 405
incapsulato, 291
nei record. 131 nel modello ER, 50 roll-up, 404-405
incorporate (Grade), 372
numerici in SQL. 252 nel modelio mlazionale. 206-207, 329 Struttma (Access), 337
interrogazione, 258—267
numerici interi (SQL), 252 vincoli (ii integriti, 16 VMICMS. 364
tipi Iii dati, 252—254
per data in SQL, 252-254 in SQ]... 252-256, 289-290 voce :11 date. 131
vincoii. 252—256, 289-290
Iimestarnp (SQL), 252 nel modello relazionale, 206-215 VSAM (Virtual Storage Access Method). 194
viste. 285-289
traccia (di disco). 120 violazioni. 212-215
:QL]. 250
traduzione vincolo
:QL2, 25 1-29 1 W
dello schema BER in relazionale, 303-307 di completezza, 83
:QL3, 250
dello schema ER in relazionale, 298—302 di disgiunzione. 83 WATCOM SQL. 364
:QL—92, 250
di catcgon'e (EEK) in relazionale. 306-307 di partecipazionc, 58-59 WHERE (SQL), 258—261
IQL_ERROR. 382
di generalizzazionj in relazionale, 303-306 di sovrapposizione (speciafizzazione). 83 WITH CHECK OPTION (SQL), 289
K21. Server, 364
di speciafizzazioni in relazionale. 303—306 dichiarativo, 289-290
tato
della base di dati, 26 di tipi unione (BER) in relazionale, 3136-301l min-max, 65-66, 101 X
di relazione, 201 transazione standard. 11 sui valori nuili. 208
valido, 2‘? nufla,201-205 vista (relazionale) DB, 364
.tmmenti CASE. 469 dangling, 357-359 aggiornamento. 287-289 XML (extensible markup language) si veda
iUM (SQL), 276) riferente. 211 definizione, 286 linguaggio a‘i mar-comm esrendibfle
:uperchiavc, 206. 329 sacca._219
SYBASe, 364 spuria. 317-319
SYSTEM R, 250
U
1‘ UML (Universal Modeling Language], 95-98
31331121, 200 UNIFY. 364
base. 256 UNION (SQL), 264
oollegata con i join (SQL). 274-275 UNIQUE (SQL) 255, 271
come un insieme in SQL, 263-265 Universe del Discorso (UoD), 2
dei fatti, 405 UPDATE (SQL), 284-285
delle dimensioni, 405 URL (uniform resource locator) si veda
di definizione (di una vista), 286 localizzarore universale di risorre
in SQL, 257 uteme
virtuale. 285 casuale. 11
m1azione, 257 di basi di dafi, 11
23550 di u-aerimento finale, 11-12
di disco. 474 indipendente. 11
(11 one mole d1 dati, 123, 475 non sofisticato, 11
tempo ' sofisticato, 11
di posizionamento, 123. 4T3 vista, 9
di riscrittura. 475 utilitfi di caricamento, 35
di trasfefimento di blooco (di disco}, 123, 474
tipi di vincoli V
Iii chiave, 206—20")I
sui valori nulli. 207-208 valore
5111 dominio, 206 atomico (ii attlibuto, 200. 204. 330
tinn. di associazione, 53
3.:9
\ nun.48.204
-. ___'-' - ‘I M -._..._‘.- .....-- 5...—

You might also like