|
|
CONSIGLIATO DA LIBRINFORMATICA
Sistemi di basi di dati Fondamenti - quinta edizione
|
| Editore | Pearson Education Italia |
| Autore | Elmasri Ramez A. ; Navathe Shamkant B. |
| Titolo originale | Fundamentals of database systems, fifth edition |
| Editore originale | Pearson Education |
| Collana | Accademica |
| Pagine | 676 |
| Volumi | 1 |
| Livello | Introduttivo-Intermedio |
| Lingua | Italiano |
| Data pubblicazione | 02 - 2007 |
| ISBN | 8871923109 |
|
|
| Prezzo di copertina |
| Euro 37,00 |
|
Prefazione all’edizione italiana
Prefazione
Contenuti della quinta edizione
Linee guida per l’uso di questo libro
Materiale supplementare
Ringraziamenti
Parte prima Introduzione e modellazione concettuale
Capitolo 1 Basi di dati e utenti di basi di dati
1.1 Introduzione
1.2 Un esempio
1.3 Caratteristiche dell’approccio con basi di dati
1.3.1 Natura autodescrittiva di un sistema di basi di dati
1.3.2 Separazione tra programmi e dati, e astrazione dei dati
1.3.3 Supporto di viste multiple dei dati
1.3.4 Condivisione dei dati e gestione
1.4 Gli attori in scena
1.4.1 Amministratori
1.4.2 Progettisti
1.4.3 Utenti finali
1.4.4 Analisti di sistema e programmatori di applicazioni (ingegneri del software)
1.5 I lavoratori dietro le quinte
1.6 Vantaggi dell’uso di un DBMS
1.6.1 Controllo della ridondanza
1.6.2 Divieto all’accesso non autorizzato
1.6.3 Memorizzazione persistente degli oggetti di un programma
1.6.4 Strutture di memorizzazione per l’esecuzione efficiente di interrogazioni
1.6.5 Backup e recovery
1.6.6 Disponibilità di numerose interfacce utente
1.6.7 Rappresentazione di associazioni complesse fra dati
1.6.8 Impostazione di vincoli di integrità
1.6.9 Permesso di eseguire inferenze e azioni tramite regole
1.6.10 Altre conseguenze di un approccio fondato su basi di dati
1.7 Breve storia delle applicazioni di basi di dati
1.7.1 Prime applicazioni di basi di dati con sistemi reticolari e gerarchici
1.7.2 Flessibilità applicativa delle basi di dati relazionali
1.7.3 Applicazioni orientate agli oggetti ed esigenza di basi di dati più complesse
1.7.4 Interscambio di dati su Web per il commercio elettronico
1.7.5 Estensione delle funzionalità delle basi di dati per nuove applicazioni
1.4.1 Basi di dati e Information Retrieval
1.5 Quando non usare un DBMS
Riepilogo
Questionario di verifica
Esercizi
Bibliografia selezionata
Capitolo 2 Concetti e architettura di un sistema di basi di dati
2.1 Modelli di dati, schemi e istanze
2.1.1 Categorie di modelli dei dati
2.1.2 Schemi, istanze e stato di una base di dati
2.2. Architettura a tre livelli e indipendenza dei dati
2.2.1 Architettura a tre livelli
2.2.2 Indipendenza dei dati
2.3 Linguaggi e interfacce di basi di dati
2.3.1 Linguaggi dei DBMS
2.3.2 Interfacce dei DBMS
2.4 Ambiente di un sistema di basi di dati
2.4.1 Moduli componenti un DBMS
2.4.2 Programmi di utilità di un sistema di basi di dati
2.4.3 Strumenti, ambienti applicativi e funzioni di comunicazione
2.5 Architetture centralizzate e client/server per i DBMS
2.5.1 Architetture centralizzate dei DBMS
2.5.2 Architetture cliente/server
2.5.3 Architetture client/server a due livelli per DBMS
2.5.4 Architetture client/server a tre livelli per applicazioni Web
2.6 Classificazione dei sistemi di gestione di basi di dati
Riepilogo
Questionario di verifica
Esercizi
Bibliografia selezionata
Capitolo
Capitolo 3 Uso del modello Entità-Associazione (ER) per modellare i dati
3.1 Uso di modelli dei dati concettuali di alto livello per la progettazione di basi di dati
3.2 Un’applicazione esemplificativa di basi di dati
3.3 Tipi di entità, insiemi di entità, attributi e chiavi
3.3.1 Entità e attributi
3.3.2 Tipi di entità, insiemi di entità, chiavi e insiemi di valori
3.3.3 Progettazione concettuale iniziale della base di dati AZIENDA
3.4 Tipi di associazione, insiemi di associazioni, ruoli e vincoli
3.4.1 Tipi di associazione, insiemi di associazioni e istanze di associazione
3.4.2 Grado di un’associazione, nomi di ruolo e associazioni ricorsive
3.4.3 Vincoli sui tipi di associazione
3.4.4 Attributi di tipi di associazione
3.4.5 Notazioni alternative per i diagrammi ER
3.5 Tipi di entità debole
3.6 Raffinamento della progettazione ER per la base di dati AZIENDA
3.7 Diagrammi ER, convenzioni di denominazione e problemi di progettazione
3.7.1 Riepilogo della notazione dei diagrammi ER
3.7.2 denominazione appropriata dei costrutti dello schema
3.7.3 Scelte per la progettazione concettuale ER
3.8 Un esempio di notazione alternativa: i diagrammi delle classi UML
3.9 Tipi di associazione di grado maggiore di due
3.9.1 Scelta tra associazioni binarie e associazioni ternarie (o di grado più elevato)
3.9.2 Vincoli su associazioni ternarie (o di grado maggiore)
Riepilogo
Questionario di verifica
Esercizi
Esercizi di laboratorio
Bibliografia selezionata
Capitolo 4 Modellazione Entità-Associazione estesa (modello EER)
4.1 Sottoclassi, superclassi ed ereditarietà
4.2 Specializzazione e generalizzazione
4.2.1 Specializzazione
4.2.2 Generalizzazione
4.3 Vincoli e caratteristiche delle gerarchie di specializzazione e generalizzazione
4.3.1 Vincoli su specializzazione e generalizzazione
4.3.2 Gerarchie e reticoli di specializzazioni e generalizzazioni
4.3.3 Uso della specializzazione e della generalizzazione nella modellazione concettuale di dati
4.4 Modellazione di tipi UNIONE attraverso l’uso di categorie
4.5 Uno schema EER esemplificativo UNIVERSITA’, scelte progettuali e definizioni formali
4.5.1 La base di dati esemplificativa UNIVERSITA’
4.5.2 Scelte progettuali per la specializzazione/generalizzazione
4.5.3 Definizioni formali per i concetti del modello EER
4.6 Un esempio di notazione alternativa: rappresentazione della specializzazione/generalizzazione nei diagrammi delle classi UML
4.7 Concetti di astrazione dei dati, rappresentazione della conoscenza e ontologia
4.7.1 Classificazione e istanziazione
4.7.2 Identificazione
4.7.3 Specializzazione e generalizzazione
4.7.4 Aggregazione e associazione
4.7.5 Ontologie e Web semantico
Riepilogo
Questionario di verifica
Esercizi
Esercizi di laboratorio
Bibliografia selezionata
Parte seconda Modello relazionale: concetti, vincoli, linguaggi, progettazione e programmazione
Capitolo 5 Il modello relazionale e i vincoli per le basi di dati relazionali
5.1 Concetti del modello relazionale
5.1.1 Domini, attributi, tuple e relazioni
5.1.2 Caratteristiche delle relazioni
5.1.3 Notazione del modello relazionale
5.2 Vincoli del modello relazionale e schemi di basi di dati relazionali
5.2.1 Vincoli di dominio
5.2.2 Vincoli di chiave e vincoli sui valori nulli
5.2.3 Basi di dati e schemi di basi di dati relazionali
5.2.4 Integrità dell’entità, integrità referenziale e chiavi esterne
5.2.5 Altri tipi di vincoli
5.3 Operazioni di aggiornamento, transazioni e gestione delle violazioni dei vincoli
5.3.1 L’operazione di inserimento
5.3.2 L’operazione di cancellazione
5.3.3 L’operazione di modifica
5.3.4 Concetto di transazione
Riepilogo
Questionario di verifica
Esercizi
Bibliografia selezionata
Capitolo 6 L’algebra relazionale e il calcolo relazionale
6.1 Operazioni relazionali unarie: selezione e proiezione
6.1.1 L’operazione di SELEZIONE
6.1.2 L’operazione di PROIEZIONE
6.1.3 Sequenze di operazioni e operazione di RIDENOMINAZIONE
6.2 Operazioni insiemistiche dell’algebra relazionale
6.2.1 Le operazioni di UNIONE, INTERSEZIONE e DIFFERENZA
6.2.2 L’operazione di PRODOTTO CARTESIANO
6.3 Operazioni relazionali binarie: JOIN e DIVISIONE
6.3.1 L’operazione di JOIN
6.3.2 Le operazioni di EQUAJOIN e JOIN NATURALE
6.3.3 Un insieme completo di operazioni dell’algebra relazionale
6.3.4 L’operazione di DIVISIONE
6.3.5 Notazione per gli alberi di interrogazione
6.4 Operazioni relazionali aggiuntive
6.4.1 Proiezione generalizzata
6.4.2 Funzioni aggregate e raggruppamento
6.4.3 Operazioni di chiusura ricorsiva
6.4.4 Operazioni di JOIN ESTERNO
6.4.5 L’operazione di UNIONE ESTERNA
6.5 Esempi di interrogazioni in algebra relazionale
6.6 Il calcolo relazionale su tuple
6.6.1 Variabili di tupla e relazioni d’intervallo
6.6.2 Espressioni e formule nel calcolo relazionale su tuple
6.6.3 I quantificatori universale ed esistenziale
6.6.4 Interrogazioni di esempio usando il quantificatore esistenziale
6.6.5 Notazione per i grafi di interrogazione
6.6.6 Trasformazione dei quantificatori universale ed esistenziale
6.6.7 Uso del quantificatore universale
6.6.8 Espressioni safe
6.7 Calcolo relazionale su domini
Riepilogo
Questionario di verifica
Esercizi
esercizi di laboratorio
Bibliografia selezionata
Capitolo 7 Progettazione di basi di dati relazionali attraverso la traduzione da schemi ER ed EER a schemi relazionali
7.1 Progettazione di basi di dati relazionali attraverso la traduzione da ER a relazionale
7.1.1 Algoritmo di traduzione da ER a relazionale
7.1.2 Discussione e riepilogo delle regole di traduzione per i costrutti dei modelli
7.2 Traduzione dei costrutti del modello EER in relazioni
7.2.1 Traduzione della specializzazione o generalizzazione
7.2.2 Traduzione delle sottoclassi condivise (ereditarietà multipla)
7.2.3 Traduzione delle categorie (tipi unione)
Riepilogo
Questionario di verifica
Esercizi
Esercizi di laboratorio
Bibliografia selezionata
Capitolo 8 SQL-99: definizione dello schema, vincoli di base interrogazioni e viste
8.1 Tipi di dati e definizione dei dati in SQL
8.1.1 I concetti di schema e di catalogo in SQL
8.1.2 Il comando CREATE TABLE in SQL
8.1.3 Domini e tipi di dati per gli attributi in SQL
8.2 Specificazione dei vincoli di base in SQL
8.2.1 Specificazione di vincoli e di valori predefiniti per gli attributi
8.2.2 Specificazione dei vincoli di chiave e di integrità referenziale
8.2.3 Attribuzione di un nome ai vincoli
8.2.4 Specificazione di vincoli sulle tuple usando CHECK
8.3 Istruzioni di modifica degli schemi in SQL
8.3.1 Il comando DROP
8.3.2 Il comando ALTER
8.4 Interrogazioni fondamentali in SQL
8.4.1 La struttura SELCT-FROM-WHERE delle interrogazioni fondamentali in SQL
8.4.2 Nomi di attributi ambigui, assegnazione di alias e variabili di tupla
8.4.3 Assenza della clausola WHERE e utilizzo dell’asterisco
8.4.4 Le tabelle come insiemi in SQL
8.4.5 Confronti di sottostringhe e operatori aritmetici
8.4.6 Ordinamento dei risultati delle interrogazioni
8.5 Interrogazioni SQL più complesse
8.5.1 Confronti che coinvolgono NULL e la logica a tre valori
8.5.2 Interrogazioni nidificate e confronti di tuple e di insiemi/multinsiemi
8.5.3 Interrogazioni nidificate correlate
8.5.4 Funzioni EXISTS e UNIQUE in SQL
8.5.5 Insiemi espliciti e ridenominazione degli attributi in SQL
Tabelle collegate via join in SQL
8.5.7 Funzioni di aggregazione in SQL
Raggruppamento: le clausole GROUP BY e HAVING
Discussione e riepilogo delle interrogazioni SQL
8.6 Comandi INSERT, DELETE e UPDATE in SQL
8.6.1 Il comando INSERT
8.6.2 Il comando DELETE
8.6.3 Il comando UPDATE
8.7 Specificazione di vincoli generali mediante asserzioni e trigger
8.8 Viste (tabelle virtuali) in SQL
8.8.1 Il concetto di vista
8.8.2 Specificazione delle viste
8.8.3 Implementazione e aggiornamento delle viste
8.9 Ulteriori funzioni di SQL
Riepilogo
Questionario di verifica
Esercizi
Esercizi di laboratorio
Bibliografia selezionata
Capitolo 9 Introduzione alle tecniche di programmazione per SQL
9.1 Trigger e concetti di basi di dati attive
9.1.1 Modello generalizzato per le basi di dati attive e trigger di Oracle
9.1.2 Problemi di progettazione e implementazione per le basi di dati attive
9.1.3 Esempi di regole attive a livello di istruzione in STARBURST
9.1.4 Applicazioni potenziali delle basi di dati attive
9.1.5 Trigger in SQL-99
9.2 Programmazione per le basi di dati: tecniche e problematiche
9.2.1 Approcci alla programmazione per basi di dati
9.2.2 Conflitto di impedenza
9.2.3 Sequenza tipica di interazione nella programmazione per basi di dati
9.3 Embedded SQL, SDQL dinamico e SQLJ
9.3.1 Il reperimento di tuple singole con embedded SQL
9.3.2 Reperimento di insiemi di tuple con embedded SQL mediante cursori
9.3.3 Specificazione di interrogazioni al momento dell’esecuzione usando SQL dinamico
9.3.4 SQLJ: incapsulamento di comandi SQL in Java
9.3.5 Reperimento di insiemi di tuple in SQLJ mediante iteratori
9.4 Programmazione per basi di dati con chiamate di funzione SQL/CLI/ e JDBC
9.4.1 Programmazione per basi di dati con SQL/CLI usando C come linguaggio ospite
9.4.2 JDBC: chiamate di funzione SQL per la programmazione Java
9.5 Stored procedure per basi di dati e SQL/PSM
9.5.1 Funzioni e stored procedure per basi di dati
9.5.2 SQL/PSM: estensione di SQL per specificare moduli memorizzati persistenti
Riepilogo
Questionario di verifica
Esercizi
Esercizi di laboratorio
Bibliografia selezionata
Parte terza Teoria e metodologie di progettazione di basi di dati
Capitolo 10 Dipendenze funzionali e normalizzazione per basi di dati relazionali
10.1 Linee guida informali di progettazione di schemi di relazione
10.1.1 Assegnazione di una semantica esplicita agli attributi delle relazioni
10.1.2 Informazioni ridondanti nelle tuple e anomalie di aggiornamento
10.1.3 Valori nulli nelle tuple
10.1.4 Generazione di tuple spurie
10.1.5 Sommario delle linee guida di progettazione
10.2 Dipendenze funzionali
10.2.1 Definizione di dipendenza funzionale
10.2.2 Regole di inferenza per dipendenze funzionali
10.2.3 Equivalenza di insiemi di dipendenze funzionali
10.2.4 Insiemi minimali di dipendenze funzionali
10.3 Forme normali basate su chiavi primarie
10.3.1 Normalizzazione delle relazioni
101.3.2 Uso pratico delle forme normali
10.3.3 Definizioni di chiavi e attributi che partecipano alle chiavi
10.3.4 Prima forma normale
10.3.5 Seconda forma normale
10.3.6 Terza forma normale
10.4 Definizioni generali di seconda e terza forma normale
10.4.1 Definizione generale di seconda forma normale
10.4.2 Definizione generale di terza forma normale
10.4.3 Interpretazione della definizione generale di terza forma normale
10.5 Forma normale di Boyce e Codd
Riepilogo
Questionario di verifica
Esercizi
Bibliografia selezionata
Capitolo 11 Algoritmi di progettazione di basi di dati relazionali e altre dipendenze
11.1 Proprietà delle decomposizioni relazionali
11.1.1 Decomposizione delle relazioni e insufficienza delle forme normali
11.1.2 Proprietà di conservazione delle dipendenze di una decompilazione
11.1.3 Proprietà di join non-additivo (senza perdita) di una decomposizione
11.1.4 Verifica della proprietà di join non-additivo su decomposizioni binarie
11.1.5 Ulteriori decomposizioni non-additive
11.2 Algoritmi di progettazione di schemi di basi di dati relazionali
11.2.1 Decomposizione in schemi 3NF con conservazione delle dipendenze
11.2.2 Decomposizione non-additiva in schemi in BCNF
11.2.3 Decomposizione con conservazione delle dipendenze e non-additiva (senza perdita) in schemi in 3NF
11.2.4 Problemi con valori nulli e tuple dangling
11.2.5 Analisi degli algoritmi di normalizzazione
11.3 Dipendenze multivalore e quarta forma normale
11.3.1 Definizione formale di dipendenza multivalore
11.3.2 Regole di inferenza per dipendenze funzionali e multivalore
11.3.3 Quarta forma normale
11.3.4 Decomposizione di join non-additivo in schemi in 4NF
11.4 Dipendenze di join e quinta forma normale
11.5 Dipendenze di inclusione
11.6 Altre dipendenze e forme normali
11.6.1 Dipendenze modello
11.6.2 Dipendenze funzionali basate su funzioni aritmetiche e procedure
11.6.3 Forma normale dominio-chiave
Riepilogo
Questionario di verifica
Esercizi
Bibliografia selezionata
Capitolo 12 Metodologia pratica di progettazione di basi di dati e uso dei diagrammi UML
12.1 Il ruolo dei sistemi informativi nelle organizzazioni
12.1.1 Il contesto organizzativo per l’uso di sistemi di basi di dati
12.1.2 Il ciclo di vita dei sistemi informativi
12.1.3 Il ciclo di vita dei sistemi di basi di dati
12.2 Il processo di progettazione e implementazione delle basi di dati
12.2.1 Fase 1: raccolta e analisi dei requisiti
12.2.2 Fase 2: progettazione concettuale della base di dati
12.2.3 Fase 3: scelta di un DBMS
12.2.4 Fase 4: Mapping del modello dei dati (progettazione logica della base di dati)
12.2.5 Fase 5: progettazione fisica della base di dati
12.2.6 Fase 6: implementazione e ottimizzazione del sistema di base di dati
12.3Uso dei diagrammi UML come supporto alla progettazione della base di dati
12.3.1 UML come standard di specifica della progettazione
12.3.2 UML per la progettazione di applicazioni di basi di dati
12.3.3 I diversi diagrammi UML
12.3.4 Un esempio di modellazione e progettazione: una base di dati universitaria
12.4 Rational Rose, uno strumento di progettazione basato su UML
12.4.1 Rational Rose per la progettazione di basi di dati
12.4.2 Rational Rose Data Modeler
12.4.3 La modellazione dei dati tramite Rational Rose Data Modeler
12.5 Strumenti automatici per la progettazione di basi di dati
Riepilogo
Questionario di verifica
Bibliografia selezionata
Parte quarta Memorizzazione dei dati, indici e progettazione fisica
Capitolo 13 Memorizzazione su disco, organizzazioni di file e tecniche hash
13.1 Introduzione
13.1.1 Gerarchie di memorie e dispositivi di memorizzazione
13.1.2 Memorizzazione di basi di dati
13.2 Dispositivi dell’hardware dei dispositivi a disco
13.2.1 Descrizione dell’hardware dei dispositivi a disco
13.2.2 Dispositivi di memorizzazione a nastro magnetico
13.3 Bufferizzazione di blocchi
13.4 Collocazione su disco dei record di un file
13.4.1 Record e tipi di record
13.4.2 File, record a lunghezza fissa e record a lunghezza variabile
13.4.3 Ripartizione dei record in blocchi e confronto tra record con spanning e record senza spanning
13.4.4 Allocazione dei blocchi di un file su disco
13.4.5 Header dei file
13.5 Operazioni sui file
13.6 File di record non ordinati (file heap)
13.7 File di record ordinati (file sorted)
13.8 Tecniche hash
13.8.1 Hash interno
13.8.2 Hash esterno per file su disco
13.8.3 Tecniche hash che consentono un’espansione dinamica dei file
13.9 Altre organizzazioni primarie dei file
13.9.1 File di record misti
13.9.2 Alberi B e altre strutture dati come organizzazione primaria
13.10 Rendere parallelo l’accesso al disco attraverso l’uso della tecnologia RAID
13.10.1 Miglioramento dell’affidabilità con RAID
13.10.2 Miglioramento delle prestazioni con RAID
13.10.3 Organizzazioni e livelli RAID
13.11 Nuovi sistemi di memorizzazione
13.11.1 Storage Area Network
13.11.2 Memorizzazione in rete
Riepilogo
Questionario di verifica
Esercizi
Bibliografia selezionata
Capitolo 14 Indici per file
14.1 Tipi di indici ordinari a un solo livello
14.1.1 Indici primari
14.1.2 Indici di cluster
14.1.3 Indici secondari
14.1.4 Riepilogo
14.2 Indice multilivello
14.3 Indici dinamici multilivello implementati con alberi B e alberi B+
14.3.1 Alberi di ricerca e alberi B
14.3.2 Alberi B+
14.4 Indici su chiavi multiple
14.4.1 Indice ordinato su più attributi
14.4.2 Hash partizionato
14.4.3 File a griglia
14.5 Altri tipi di indici
14.5.1 Utilizzo di hash e di altre strutture di dati come indici
14.5.2 Confronto tra indici logici e indici fisici
14.5.3 Discussione
Riepilogo
Questionario di verifica
Esercizi
Bibliografia selezionata
Parte quinta Introduzione alle transazioni e programmazione di basi di dati su Web
Capitolo 15 Introduzione alla gestione delle transazioni
15.1 Introduzione alla gestione delle transazioni
15.1.1 Confronto tra sistemi monoutente e sistemi multiutente
15.1.2 Transazioni, operazioni di lettura e scrittura e buffer del DBMS
15.1.3 Perché è necessario il controllo di concorrenza
15.1.4 Perché è necessario il controllo di affidabilità
15.2 Concetti di transazione e di sistema
15.2.1 Stati delle transazioni e ulteriori operazioni
15.2.2 Il log di sistema
15.2.3 Punto di commit di una transazione
15.3Proprietà auspicabili delle transazioni
Riepilogo
Questionario di verifica
Bibliografia selezionata
Capitolo 16 Programmazione di basi di dati su Web con il linguaggio PHP
16.1 Dati strutturati, semi-strutturati e non strutturati
16.2 Un semplice esempio in PHP
16.3 Caratteristiche di base di PHP
16.3.1 Variabili, tipi di dato e costrutti di programmazione in PHP
16.3.2 Vettori in PHP
16.3.3 Funzioni in PHP
16.3.4 Variabili server e form in PHP
16.4 Introduzione alla programmazione PHP per le basi di dati
16.4.1 Connessione a una base di dati
16.4.2 Raccolta di dati dalla forme e inserimento di record
16.4.3 Interrogazioni per il reperimento di dati da una base di dati
16.5 Riepilogo
Questionario di verifica
Esercizi
Esercizi di laboratorio
Bibliografia selezionata
Appendice A Notazioni diagrammatiche alternative per i modelli ER
Appendice B Parametri dei dischi
Appendice C Panoramica del linguaggio QBE
C.1 Interrogazioni base in QBE
C.2 Raggruppamento, aggregazione e modifica dei dati con QBE
Bibliografia
Abbreviazioni
Indice analitico
|
|
|
|