Librinformatica

Newsletter

Libreria Gaia Scienza Edizioni Erasmo Edizioni del Boccale

Sistemi di basi di dati Fondamenti - sesta edizione

Pearson Education Italia

Sistemi di basi di dati Fondamenti - sesta edizione

In offerta
33,30 € IVA compresa

37,00 € IVA compresa

(sconto del 10 %)

9788871926285

  • Volumi: 1
  • Data Pubblicazione: 09/2011
  • Lingua: italiano
  • Livello: Introduttivo Intermedio
  • Pagine: 562
  • Collana: Always learning
  • Editore Originale: Pearson Education
  • Titolo Originale: Fundamentals of database systems, sixth edition
  • Autore: Elmasri Ramez A. , Navathe Shamkant B.

La nuova edizione italiana del “classico” di Elmasri e Navathe presenta un aggiornamento puntuale di tutte le tecnologie e una nuova ristrutturazione dei contenuti. Pensato per un primo corso di basi di dati, offre una panoramica ampia e dettagliata dei principali argomenti introduttivi per la progettazione, l’implementazione e la gestione delle basi di dati.


La nuova edizione italiana è stata curata da Silvana Castano, Dipartimento di Informatica e Comunicazione, Università degli Studi di Milano.


Gli autori

Ramez A. Elmasri (autore) insegna all’Università del Texas ad Arlington, ed è autore di oltre 70 pubblicazioni. Ha lavorato per Honeywell e per l’Università di Houston, è stato condirettore del Journal of Parallel and Distributed Databases e membro del comitato direttivo dell’International Conference on Conceptual Modeling. Negli ultimi vent’anni ha svolto ricerche finanziate da NSF, NASA, Texas Instruments, Honeywell, Digital Equipment Corporation in molte aree dei sistemi di basi di dati e nell’area dell’integrazione dei sistemi e del software.


Shamkant B. Navathe (autore) è professore e coordinatore del gruppo di ricerca sulle basi di dati al College of Computing del Georgia Institute of Technology Ha lavorato in precedenza con IBM e Siemens ed è stato consulente per varie aziende, fra cui Digital Equipment Corporation, Hewlett-Packard ed Equifax. È stato condirettore di ACM Computing Surveys ed IEEE Transactions on Knowledge and Data Engineering, e attualmente è nei comitati di redazione di Information Systems e Distributed and Parallel Databases.


Questo libro presenta i concetti fondamentali necessari per progettare, implementare e usare i sistemi di basi di dati e le relative applicazioni. L’approccio scelto mette in particolare rilievo i fondamenti della modellazione e della progettazione di basi di dati, i linguaggi e le funzioni dei sistemi di gestione e le tecniche di implementazione di questi
sistemi. Il libro è stato pensato per un utilizzo in ambito accademico, ma costituisce anche un valido riferimento come libro di consultazione. I lettori dovrebbero già avere
una certa familiarità con i concetti elementari della programmazione e delle strutture dati, e conoscere gli aspetti basilari dell’architettura dei calcolatori.
La trattazione inizia con l’introduzione della terminologia e dei concetti base, prosegue presentando i principi della modellazione concettuale delle basi di dati e approfondendo
gli aspetti più importanti dei fondamenti delle basi di dati.


Novità della sesta edizione

La sesta edizione presenta le seguenti caratteristiche.

  • La sequenza dei capitoli è stata riorganizzata per consentire al docente di presentare progetti ed esercizi di laboratorio fin dall’inizio del corso.
  • Il materiale relativo a SQL, lo standard delle basi di dati relazionali, è stato anticipato nel libro ai Capitoli 4 e 5 per consentire al docente di focalizzarsi su questo importante
    argomento all’inizio del corso.
  • I capitoli relativi alla teoria della normalizzazione sono stati riorganizzati in modo tale che il Capitolo 11 illustri i concetti della normalizzazione in modo intuitivo, mentre l’Apparato di Approfondimento Algoritmi di progettazione di basi di dati relazionali e altre dipendenze (disponibile on-line sul sito Web del volume) presenti le teorie e gli algoritmi di normalizzazione in modo formale.


    Il libro è caratterizzato dai seguenti aspetti chiave.

  • Un’organizzazione autonoma e flessibile che può essere adattata alle specifiche esigenze individuali.
  • Un facile interprete per l’algebra e il calcolo relazionale.
  • Una raccolta di materiale integrativo, inclusa una significativa documentazione per docenti e studenti, quali diapositive PowerPoint, illustrazioni del testo e manuali con
    soluzione per i docenti.


    Organizzazione della sesta edizione

    La sesta edizione è caratterizzata da significativi cambiamenti dell’intera organizzazione e da miglioramenti dei singoli capitoli. Il libro è articolato in cinque parti come segue:

  • La prima parte (Capitoli 1 e 2) comprende i capitoli introduttivi.
  • La presentazione relativa alle basi di dati relazionali e a SQL è stata spostata nella seconda parte del libro (Capitoli da 3 a 6); il Capitolo 3 descrive il modello relazionale
    da un punto di vista formale e i vincoli delle basi di dati relazionali; il materiale su SQL (Capitoli 4 e 5) precede l’algebra e il calcolo relazionale (Capitolo 6), in
    modo da consentire ai docenti di anticipare l’avvio delle attività di progetto con SQL qualora lo desiderino (questa riorganizzazione trova riscontro in uno studio nel quale
    si afferma che l’apprendimento di SQL da parte degli studenti è più efficace se questo argomento è presentato prima dei linguaggi relazionali formali).
  • La modellazione Entità-Associazione e la progettazione di basi di dati sono state collocate nella terza parte (Capitoli da 7 a 11), che può comunque essere presentata
    prima della seconda parte qualora il tema centrale del corso sia la progettazione di basi di dati.
  • La quarta parte comprende i capitoli sulle tecniche di programmazione per le basi di dati (Capitolo 12) e sulla programmazione Web di basi di dati con PHP (Capitolo
    13).
  • La quinta parte (Capitoli 14, 15 e 16) comprende i capitoli relativi all’organizzazione dei file, all’indicizzazione, alle tecniche hash e ai concetti di gestione delle transazioni.


    Contenuti della sesta edizione

    Nella prima parte sono descritti i concetti fondamentali propedeutici a una corretta comprensione dei modelli, dei sistemi e dei linguaggi delle basi di dati. I Capitoli 1 e 2
    introducono le basi di dati e i loro utenti tipici, i concetti, la terminologia e l’architettura dei sistemi DBMS.

    La seconda parte analizza il modello dei dati relazionale, lo standard SQL e i linguaggi relazionali formali. Il Capitolo 3 descrive il modello relazionale, i suoi vincoli di
    integrità e le operazioni di aggiornamento. Il Capitolo 4 illustra le parti fondamentali dello standard SQL per le basi di dati relazionali, incluse le operazioni di definizione e
    manipolazione dei dati e le interrogazioni SQL di base. Il Capitolo 5 discute le interrogazioni SQL più complesse e i concetti di trigger, asserzioni, viste e modifiche dello
    schema in SQL. Il Capitolo 6 esamina le operazioni dell’algebra relazionale e introduce il calcolo relazionale.

    La terza parte verte sui vari aspetti collegati alla modellazione concettuale e alla progettazione delle basi di dati. Nel Capitolo 7 si illustrano i concetti di modello Entità-
    Associazione (ER) e di diagramma ER, discutendo il loro ruolo nella progettazione concettuale di basi di dati. Il Capitolo 8 è dedicato all’astrazione dei dati e ai concetti
    relativi alla modellazione semantica dei dati, dove si mostrano possibili estensioni al modello ER arrivando così al modello di dati EER e ai relativi diagrammi EER. I concetti
    presentati nel Capitolo 8 comprendono le sottoclassi, la specializzazione, la generalizzazione e i tipi unione (categorie). Nei Capitoli 7 e 8 è stata introdotta anche la
    notazione dei diagrammi delle classi UML. Il Capitolo 9 tratta la progettazione di basi di dati relazionali attraverso la traduzione da schemi ER ed EER a schemi relazionali.
    Nel Capitolo 10 si presenta una panoramica delle diverse fasi del processo di progettazione delle basi di dati in contesto aziendale per la realizzazione di applicazioni di basi
    di dati di medie e grandi dimensioni. La terza parte si conclude con il Capitolo 11, dove viene presentata la normalizzazione a livello intuitivo, definendo anche le nozioni di
    dipendenza multivalore e di dipendenza di join.

    La quarta parte è relativa alle tecniche di programmazione per le basi di dati. Il Capitolo 12 tratta argomenti inerenti alla programmazione SQL, come embedded SQL, SQL
    dinamico, ODBC, SQLJ, JDBC e SQL/CLI. Il Capitolo 13 introduce la programmazione Web per le basi di dati utilizzando esempi con il linguaggio di scripting PHP.
    La quinta parte descrive le strutture fisiche di memorizzazione e i relativi metodi di accesso impiegati nei sistemi di basi di dati, oltre alla la gestione di transazioni. Il Capitolo
    14 illustra i metodi di organizzazione su disco di file di record, comprese le funzioni hash di tipo statico e dinamico. Il Capitolo 15 analizza le tecniche di indicizzazione
    dei file, con riferimento alle strutture dati ad albero B e B+ e ai file grid. Il Capitolo 16 introduce le tecniche utilizzate nei sistemi di gestione delle transazioni e definisce i
    concetti di ripristinabilità e serializzabilità di uno schedule.


    Linee guida per l’uso di questo libro

    Se l’enfasi del corso è rivolta alla progettazione di basi di dati, il docente dovrebbe anticipare la presentazione dei Capitoli 7 e 8, illustrandoli prima delle basi di dati relazionali.
    Un corso che copra l’intero ciclo di vita delle basi di dati, compresa la progettazione e l’implementazione, deve trattare la progettazione concettuale (Capitoli 7 e 8), le
    basi di dati relazionali (Capitoli 3, 4 e 5), la traduzione da modello ER a modello relazionale (Capitolo 9), la normalizzazione (Capitolo 11) e la realizzazione di programmi
    applicativi con SQL (Capitolo 12). È possibile includere anche il Capitolo 13 qualora l’enfasi del corso sia sulla programmazione e sulla realizzazione di applicazioni basi di
    dati su Web. In questo caso, è necessario acquisire documentazione supplementare per quanto riguarda gli specifici linguaggi e DBMS relazionali impiegati. Il libro è stato
    pensato in modo da rendere possibile l’esposizione degli argomenti seguendo percorsi diversi.
     

  • Sommario

    Prefazione all’edizione italiana XIX

    Prefazione XXI



    Parte 1 Introduzione alle basi di dati1



    Capitolo 1 Basi di dati e utenti di basi di dati 3

    1.1 Introduzione 4

    1.2 Un esempio 6

    1.3 Caratteristiche dell’approccio con basi di dati 9

    1.3.1 Natura autodescrittiva di un sistema di basi di dati 10

    1.3.2 Separazione tra programmi e dati e astrazione dei dati 10

    1.3.3 Supporto di viste multiple dei dati 13

    1.3.4 Condivisione dei dati e gestione delle transazioni in ambiente multiutente 13

    1.4 Gli attori in scena 14

    1.4.1 Amministratori 14

    1.4.2 Progettisti 14

    1.4.3 Utenti finali 15

    1.4.4 Analisti di sistema e programmatori di applicazioni (ingegneri del software) 16

    1.5 I lavoratori dietro le quinte 16

    1.6 Vantaggi dell’uso di un DBMS 17

    1.6.1 Controllo della ridondanza 17

    1.6.2 Divieto all’accesso non autorizzato 18

    1.6.3 Memorizzazione persistente degli oggetti di un programma 18

    1.6.4 Strutture di memorizzazione per l’esecuzione efficiente di interrogazioni 19

    1.6.5 Backup e recovery 19

    1.6.6 Disponibilità di numerose interfacce utente 20

    1.6.7 Rappresentazione di associazioni complesse fra dati 20

    1.6.8 Imposizione di vincoli di integrità 20

    1.6.9 Permesso di eseguire inferenze e azioni tramite regole 21

    1.6.10 Altre conseguenze di un approccio fondato su basi di dati 21

    1.7 Breve storia delle applicazioni di basi di dati 22

    1.7.1 Prime applicazioni di basi di dati con sistemi reticolari e gerarchici 23

    1.7.2 Flessibilità applicativa delle basi di dati relazionali 23

    1.7.3 Applicazioni orientate agli oggetti ed esigenza di basi di dati più complesse 24

    1.7.4 Interscambio di dati su Web per il commercio elettronico utilizzando XML 24

    1.7.5 Estensione delle funzionalità delle basi di dati per nuove applicazioni 24

    1.7.6 Basi di dati e Information Retrieval 26

    1.8 Quando non usare un DBMS 26

    Questionario di verifica 27

    Esercizi 27



    Capitolo 2 Concetti e architettura di un sistema di basi di dati 29

    2.1 Modelli dei dati, schemi e istanze 29

    2.1.1 Categorie di modelli dei dati 30

    2.1.2 Schemi, istanze e stato di una base di dati 31

    2.2 Architettura a tre livelli e indipendenza dei dati 33

    2.2.1 Architettura a tre livelli 33

    2.2.2 Indipendenza dei dati 35

    2.3 Linguaggi e interfacce di basi di dati 36

    2.3.1 Linguaggi dei DBMS 37

    2.3.2 Interfacce dei DBMS 38

    2.4 Ambiente di un sistema di basi di dati 40

    2.4.1 Moduli componenti un DBMS 40

    2.4.2 Programmi di utilità di un sistema di basi di dati 43

    2.4.3 Strumenti, ambienti applicativi e funzioni di comunicazione 43

    2.5 Architetture centralizzate e client/server per i DBMS 44

    2.5.1 Architetture centralizzate dei DBMS 44

    2.5.2 Architetture client/server 45

    2.5.3 Architetture client/server a due livelli per DBMS 46

    2.5.4 Architetture client/server a tre livelli per applicazioni Web 48

    2.6 Classificazione dei sistemi di gestione di basi di dati 49

    Questionario di verifica 53

    Esercizi 53



    Parte 2 Il modello relazionale e SQL55



    Capitolo 3 Il modello relazionale e i vincoli per le basi di dati relazionali 57

    3.1 Concetti del modello relazionale 57

    3.1.1 Domini, attributi, tuple e relazioni 58

    3.1.2 Caratteristiche delle relazioni 60

    3.1.3 Notazione del modello relazionale 63

    3.2 Vincoli del modello relazionale e schemi di basi di dati relazionali 64

    3.2.1 Vincoli di dominio 65

    3.2.2 Vincoli di chiave e vincoli sui valori nulli 65

    3.2.3 Basi di dati e schemi di basi di dati relazionali 67

    3.2.4 Integrità, integrità referenziale e chiavi esterne 70

    3.2.5 Altri tipi di vincoli 72

    3.3 Operazioni di aggiornamento, transazioni e gestione delle violazioni dei vincoli 72

    3.3.1 Operazione di inserimento 73

    3.3.2 Operazione di cancellazione 74

    3.3.3 Operazione di modifica 75

    3.3.4 Concetto di transazione 76

    Questionario di verifica 76

    Esercizi 77



    Capitolo 4 Concetti essenziali di SQL 81

    4.1 Tipi di dati e definizione dei dati in SQL 83

    4.1.1 Concetti di schema e di catalogo in SQL 83

    4.1.2 Il comando CREATE TABLE in SQL 84

    4.1.3 Domini e tipi di dati per gli attributi in SQL 84

    4.2 Specificazione dei vincoli di base in SQL 88

    4.2.1 Specificazione di vincoli e di valori predefiniti per gli attributi 88

    4.2.2 Specificazione dei vincoli di chiave e di integrità referenziale 89

    4.2.3 Attribuzione di un nome ai vincoli 90

    4.2.4 Specificazione di vincoli sulle tuple usando CHECK 91

    4.3 Interrogazioni fondamentali in SQL 91

    4.3.1 La struttura SELECT-FROM-WHERE delle interrogazioni fondamentali in SQL 91

    4.3.2 Nomi di attributi ambigui, assegnazione di alias e variabili di tupla 94

    4.3.3 Assenza della clausola WHERE e utilizzo dell’asterisco 96

    4.3.4 Le tabelle come insiemi in SQL 97

    4.3.5 Confronti di sottostringhe e operatori aritmetici 99

    4.3.6 Ordinamento dei risultati delle interrogazioni 101

    4.3.7 Discussione e riepilogo delle interrogazioni SQL fondamentali 102

    4.4 Comandi INSERT, DELETE e UPDATE in SQL 102

    4.4.1 Il comando INSERT 102

    4.4.2 Il comando DELETE 104

    4.4.3 Il comando UPDATE 104

    4.5 Ulteriori funzioni di SQL 105

    Questionario di verifica 107

    Esercizi 107



    Capitolo 5 SQL avanzato: interrogazioni complesse, trigger, viste e modifiche dello schema 109

    5.1 Interrogazioni SQL più complesse 109

    5.1.1 Confronti che coinvolgono NULL e la logica a tre valori 109

    5.1.2 Interrogazioni nidificate e confronti di tuple e di insiemi/multinsiemi 111

    5.1.3 Interrogazioni nidificate correlate 113

    5.1.4 Funzioni EXISTS e UNIQUE in SQL 114

    5.1.5 Insiemi espliciti e ridenominazione degli attributi in SQL 117

    5.1.6 Tabelle collegate via join in SQL 118

    5.1.7 Funzioni di aggregazione in SQL 120

    5.1.8 Raggruppamento: le clausole GROUP BY e HAVING 122

    5.1.9 Discussione e riepilogo delle interrogazioni SQL 125

    5.2 Specifica di vincoli mediante asserzioni e di azioni mediante trigger 126

    5.2.1 Specifica di vincoli generali mediante asserzioni in SQL 127

    5.2.2 Introduzione ai trigger in SQL 128

    5.3 Viste (tabelle virtuali) in SQL 129

    5.3.1 Il concetto di vista 129

    5.3.2 Specificazione delle viste 130

    5.3.3 Implementazione e aggiornamento delle viste 131

    5.4 Istruzioni di modifica degli schemi in SQL 134

    5.4.1 Il comando DROP 134

    5.4.2 Il comando ALTER 135

    Questionario di verifica 136

    Esercizi 136



    Capitolo 6 L’algebra relazionale e il calcolo relazionale 139

    6.1 Operazioni relazionali unarie: selezione e proiezione 140

    6.1.1 L’operazione di SELEZIONE 140

    6.1.2 L’operazione di PROIEZIONE 142

    6.1.3 Sequenze di operazioni e operazione di RIDENOMINAZIONE 144

    6.2 Operazioni insiemistiche dell’algebra relazionale 145

    6.2.1 Le operazioni di UNIONE, INTERSEZIONE e DIFFERENZA 145

    6.2.2 L’operazione di PRODOTTO CARTESIANO 148

    6.3 Operazioni relazionali binarie: JOIN e DIVISIONE 150

    6.3.1 L’operazione di JOIN 150

    6.3.2 Operazioni di EQUIJOIN e JOIN NATURALE 151

    6.3.3 Un insieme completo di operazioni dell’algebra relazionale 154

    6.3.4 L’operazione di DIVISIONE 154

    6.3.5 Notazione per gli alberi di interrogazione 156

    6.4 Operazioni relazionali aggiuntive 159

    6.4.1 Proiezione generalizzata 159

    6.4.2 Funzioni aggregate e raggruppamento 159

    6.4.3 Operazioni di chiusura ricorsiva 161

    6.4.4 Operazioni di JOIN ESTERNO 162

    6.4.5 L’operazione di UNIONE ESTERNA 164

    6.5 Esempi di interrogazioni in algebra relazionale 165

    Questionario di verifica 168

    Esercizi 168



    Parte 3 Modellazione concettuale, progettazione e normalizzazione di basi di dati 171



    Capitolo 7 Uso del modello Entità-Associazione (ER) per modellare i dati 173

    7.1 Uso di modelli dei dati concettuali di alto livello per la progettazione di basi di dati 174

    7.2 Un’applicazione esemplificativa di basi di dati 176

    7.3 Tipi di entità, insiemi di entità, attributi e chiavi 178

    7.3.1 Entità e attributi 178

    7.3.2 Tipi di entità, insiemi di entità, chiavi e insiemi di valori 181

    7.3.3 Progettazione concettuale iniziale della base di dati AZIENDA 184

    7.4 Tipi di associazione, insiemi di associazioni, ruoli e vincoli 185

    7.4.1 Tipi di associazione, insiemi di associazioni e istanze di associazione 186

    7.4.2 Grado di un’associazione, nomi di ruolo e associazioni ricorsive 186

    7.4.3 Vincoli sui tipi di associazione 189

    7.4.4 Attributi di tipi di associazione 192

    7.5 Tipi di entità debole 192

    7.6 Raffinamento della progettazione ER per la base di dati AZIENDA 193

    7.7 Diagrammi ER, convenzioni di denominazione e problemi di progettazione 194

    7.7.1 Riepilogo della notazione dei diagrammi ER 194

    7.7.2 Denominazione appropriata dei costrutti dello schema 195

    7.7.3 Scelte per la progettazione concettuale ER 197

    7.7.4 Notazioni alternative per i diagrammi ER 198

    7.8 Un esempio di notazione alternativa: i diagrammi delle classi UML 198

    7.9 Tipi di associazione di grado maggiore di due 201

    7.9.1 Scelta tra associazioni binarie e associazioni ternarie (o di grado più elevato) 201

    7.9.2 Vincoli su associazioni ternarie (o di grado maggiore) 205

    Questionario di verifica 206

    Esercizi 206



    Capitolo 8 Modellazione Entità-Associazione estesa (modello EER) 213

    8.1 Sottoclassi, superclassi ed ereditarietà 214

    8.2 Specializzazione e generalizzazione 216

    8.2.1 Specializzazione 216

    8.2.2 Generalizzazione 218

    8.3 Vincoli e caratteristiche delle gerarchie di specializzazione e generalizzazione 219

    8.3.1 Vincoli su specializzazione e generalizzazione 219

    8.3.2 Gerarchie e reticoli di specializzazioni e generalizzazioni 222

    8.3.3 Uso della specializzazione e della generalizzazione nella modellazione concettuale di dati 226

    8.4 Modellazione di tipi UNIONE attraverso l’uso di categorie 227

    8.5 Uno schema EER esemplificativo UNIVERSITÀ, scelte progettuali e definizioni formali 229

    8.5.1 La base di dati esemplificativa UNIVERSITÀ 229

    8.5.2 Scelte progettuali per la specializzazione/generalizzazione 232

    8.5.3 Definizioni formali per i concetti del modello EER 233

    8.6 Un esempio di notazione alternativa: rappresentazione della specializzazione/ generalizzazione nei diagrammi delle classi UML 234

    8.7 Concetti di astrazione dei dati, rappresentazione della conoscenza e ontologia 235

    8.7.1 Classificazione e istanziazione 236

    8.7.2 Identificazione 237

    8.7.3 Specializzazione e generalizzazione 238

    8.7.4 Aggregazione e associazione 238

    8.7.5 Ontologie e Web semantico 240

    Questionario di verifica 241

    Esercizi 242



    Capitolo 9 Progettazione di basi di dati relazionali attraverso la traduzione da schemi ER ed EER a schemi relazionali 249

    9.1 Progettazione di basi di dati relazionali attraverso la traduzione da ER a relazionale 249

    9.1.1 Algoritmo di traduzione da ER a relazionale 249

    9.1.2 Discussione e riepilogo delle regole di traduzione per i costrutti dei modelli 256

    9.2 Traduzione dei costrutti del modello EER in relazioni 257

    9.2.1 Traduzione della specializzazione o generalizzazione 258

    9.2.2 Traduzione delle sottoclassi condivise (ereditarietà multipla) 261

    9.2.3 Traduzione delle categorie (tipi unione) 261

    Questionario di verifica 263

    Esercizi 263



    Capitolo 10 Metodologia pratica di progettazione di basi di dati e uso dei diagrammi UML 265

    10.1 Il ruolo dei sistemi informativi nelle organizzazioni 266

    10.1.1 Il contesto organizzativo per l’uso di sistemi di basi di dati 266

    10.1.2 Il ciclo di vita dei sistemi informativi 268

    10.1.3 Il ciclo di vita dei sistemi di basi di dati 269

    10.2 Il processo di progettazione e implementazione delle basi di dati 270

    10.2.1 Fase 1: raccolta e analisi dei requisiti 273

    10.2.2 Fase 2: progettazione concettuale della base di dati 275

    10.2.3 Fase 3: scelta di un DBMS 285

    10.2.4 Fase 4: mapping del modello dei dati (progettazione logica della base di dati) 288

    10.2.5 Fase 5: progettazione fisica della base di dati 288

    10.2.6 Fase 6: implementazione e ottimizzazione del sistema di base di dati 289

    10.3 Uso dei diagrammi UML come supporto alla progettazione della base di dati 290

    10.3.1 UML come standard di specifica della progettazione 290

    10.3.2 UML per la progettazione di applicazioni di basi di dati 291

    10.3.3 I diversi tipi di diagrammi UML 292

    10.3.4 Un esempio di modellazione e progettazione: una base di dati universitaria 298

    10.4 Rational Rose, uno strumento di progettazione basato su UML 300

    10.4.1 Rational Rose per la progettazione di basi di dati 300

    10.4.2 Rational Rose Data Modeler 300

    10.4.3 La modellazione dei dati tramite Rational Rose Data Modeler 302

    10.5 Strumenti automatici per la progettazione di basi di dati 306

    Questionario di verifica 309



    Capitolo 11 Dipendenze funzionali e normalizzazione per basi di dati relazionali 313

    11.1 Linee guida informali di progettazione di schemi di relazione 314

    11.1.1 Assegnazione di una semantica esplicita agli attributi delle relazioni 315

    11.1.2 Informazioni ridondanti nelle tuple e anomalie di aggiornamento 318

    11.1.3 Valori nulli nelle tuple 320

    11.1.4 Generazione di tuple spurie 321

    11.1.5 Sommario delle linee guida di progettazione 324

    11.2 Dipendenze funzionali 324

    11.2.1 Definizione di dipendenza funzionale 325

    11.3 Forme normali basate su chiavi primarie 328

    11.3.1 Normalizzazione delle relazioni 328

    11.3.2 Uso pratico delle forme normali 329

    11.3.3 Definizioni di chiavi e attributi che partecipano alle chiavi 330

    11.3.4 Prima forma normale 330

    11.3.5 Seconda forma normale 334

    11.3.6 Terza forma normale 335

    11.4 Definizioni generali di seconda e terza forma normale 336

    11.4.1 Definizione generale di seconda forma normale 337

    11.4.2 Definizione generale di terza forma normale 339

    11.4.3 Interpretazione della definizione generale di terza forma normale 339

    11.5 Forma normale di Boyce e Codd 340

    Questionario di verifica 343

    Esercizi 343



    Parte 4 Tecniche di programmazione p er basi di dati 347



    Capitolo 12 Introduzione alle tecniche di programmazione per SQL 349

    12.1 Trigger e concetti di basi di dati attive 350

    12.1.1 Modello generalizzato per le basi di dati attive  e trigger di Oracle 350

    12.1.2 Problemi di progettazione e implementazione per le basi di dati attive 355

    12.1.3 Esempi di regole attive a livello di istruzione in STARBURST 357

    12.1.4 Applicazioni potenziali delle basi di dati attive 359

    12.1.5 Trigger in SQL-99 360

    12.2 Programmazione per le basi di dati: tecniche e problematiche 360

    12.2.1 Approcci alla programmazione per basi di dati 361

    12.2.2 Conflitto di impedenza 361

    12.2.3 Sequenza tipica di interazione nella programmazione per basi di dati 362

    12.3 Embedded SQL, SQL dinamico e SQLJ 363

    12.3.1 Il reperimento di tuple singole con embedded SQL 363

    12.3.2 Reperimento di insiemi di tuple con embedded SQL mediante cursori 367

    12.3.3 Specificazione di interrogazioni al momento dell’esecuzione usando SQL dinamico 369

    12.3.4 SQLJ: incapsulamento di comandi SQL in Java 370

    12.3.5 Reperimento di insiemi di tuple in SQLJ mediante iteratori 373

    12.4 Programmazione per basi di dati con chiamate di funzione: SQL/CLI e JDBC 375

    12.4.1 Programmazione per basi di dati con SQL/CLI usando C come linguaggio ospite 376

    12.4.2 JDBC: chiamate di funzione SQL per la programmazione Java 380

    12.5 Stored procedure per basi di dati e SQL/PSM 384

    12.5.1 Funzioni e stored procedure per basi di dati 385

    12.5.2 SQL/PSM: estensione di SQL per specificare moduli memorizzati persistenti 386

    12.6 Confronto dei tre approcci 388

    Questionario di verifica 389

    Esercizi 389



    Capitolo 13 Programmazione di basi di dati su Web con il linguaggio PHP 391

    13.1 Un semplice esempio in PHP 391

    13.2 Caratteristiche di base di PHP 394

    13.2.1 Variabili, tipi di dato e costrutti di programmazione in PHP 395

    13.2.2 Vettori in PHP 396

    13.2.3 Funzioni in PHP 398

    13.2.4 Variabili server e form in PHP 400

    13.3 Introduzione alla programmazione PHP per le basi di dati 401

    13.3.1 Connessione a una base di dati 402

    13.3.2 Raccolta di dati dalle form e inserimento di record 404

    13.3.3 Interrogazioni per il reperimento di dati da una base di dati 405

    Questionario di verifica 406

    Esercizi 406



    Parte 5 M emorizzazione dei dati, i ndici e i ntroduzione alle transazioni407



    Capitolo 14 Memorizzazione su disco, organizzazioni di file e tecniche hash 409

    14.1 Introduzione 409

    14.1.1 Gerarchie di memorie e dispositivi di memorizzazione 410

    14.1.2 Memorizzazione di basi di dati 412

    14.2 Dispositivi di memoria secondaria 413

    14.2.1 Descrizione dell’hardware dei dispositivi a disco 413

    14.2.2 Dispositivi di memorizzazione a nastro magnetico 418

    14.3 Bufferizzazione di blocchi 419

    14.4 Collocazione su disco dei record di un file 421

    14.4.1 Record e tipi di record 421

    14.4.2 File, record a lunghezza fissa e record a lunghezza variabile 422

    14.4.3 Ripartizione dei record in blocchi e confronto tra record con spanning e record senza spanning 424

    14.4.4 Allocazione dei blocchi di un file su disco 424

    14.4.5 Header dei file 425

    14.5 Operazioni sui file 426

    14.6 File di record non ordinati (file heap) 429

    14.7 File di record ordinati (file sorted) 430

    14.8 Tecniche hash 433

    14.8.1 Hash interno 434

    14.8.2 Hash esterno per file su disco 437

    14.8.3 Tecniche hash che consentono un’espansione dinamica dei file 439

    14.9 Altre organizzazioni primarie dei file 444

    14.9.1 File di record misti 444

    14.9.2 Alberi B e altre strutture dati come organizzazione primaria 444

    14.10 Rendere parallelo l’accesso al disco attraverso l’uso della tecnologia RAID 445

    14.10.1 Miglioramento dell’affidabilità con RAID 446

    14.10.2 Miglioramento delle prestazioni con RAID 447

    14.10.3 Organizzazioni e livelli RAID 448

    14.11 Nuovi sistemi di memorizzazione 449

    14.11.1 Storage Area Network 449

    14.11.2 Memorizzazione in rete 450

    14.11.3 Sistemi di memorizzazione iSCSI 451

    Questionario di verifica 452

    Esercizi 453



    Capitolo 15 Indici per file 457

    15.1 Tipi di indici ordinati a un solo livello 457

    15.1.1 Indici primari 458

    15.1.2 Indici di cluster 461

    15.1.3 Indici secondari 462

    15.1.4 Riepilogo 466

    15.2 Indice multilivello 466

    15.3 Indici dinamici multilivello implementati con alberi B e alberi B+ 471

    15.3.1 Alberi di ricerca e alberi B 472

    15.3.2 Alberi B+ 477

    15.4 Indici su chiavi multiple 486

    15.4.1 Indice ordinato su più attributi 486

    15.4.2 Hash partizionato 487

    15.4.3 File a griglia 487

    15.5 Altri tipi di indici 488

    15.5.1 Indici hash 488

    15.5.2 Indici bitmapped 489

    15.5.3 Indici basati su funzione 492

    15.6 Alcune questioni generali riguardanti gli indici 493

    15.6.1 Confronto tra indici logici e indici fisici 493

    15.6.2 Discussione 494

    15.6.3 Memorizzazione di relazioni per colonna 495

    Questionario di verifica 495

    Esercizi 496



    Capitolo 16 Introduzione alla gestione delle transazioni 499

    16.1 Introduzione alla gestione delle transazioni 499

    16.1.1 Confronto tra sistemi monoutente e sistemi multiutente 499

    16.1.2 Transazioni, item della base di dati, operazioni di lettura e scrittura e buffer del DBMS 500

    16.1.3 Perché è necessario il controllo di concorrenza 502

    16.1.4 Perché è necessario il controllo di affidabilità 505

    16.2 Concetti di transazione e di sistema 506

    16.2.1 Stati delle transazioni e ulteriori operazioni 507

    16.2.2 Il log di sistema 508

    16.2.3 Punto di commit di una transazione 509

    16.3 Proprietà auspicabili delle transazioni 510

    16.4 Supporto alle transaziono in SQL 511

    Questionario di verifica 513

    Esercizi 514



    Bibliografia 515

    Indice analitico 553

    Carrello

    Non ci sono prodotti

    Spedizione 0,00 €
    Totale 0,00 €

    Carrello Acquista