Indice Prefazione... 1 1 SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9



Documenti analoghi
PROGRAMMA DI CLASSE 5AI

Progettazione Fisica FILE

Strutture di accesso ai dati

Indice. Ringraziamenti dell Editore

Basi di Dati prof. A. Longheu. 5 Progettazione fisica

Lorenzo Braidi. Database design. Libro_datadesign.indb :06:17

L architettura di un DBMS

PIANO DI LAVORO EFFETTIVAMENTE SVOLTO IN RELAZIONE ALLA PROGRAMMAZIONE DISCIPLINARE

DBMS (Data Base Management System)

Prefazione Sistemi informativi e basi di dati Il modello relazionale Il modello ER

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

Basi di Dati e Sistemi Informativi. Le Transazioni. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Esecuzione concorrente di transazioni

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Docente. Sistemi Informativi. Programma. Programma. Ing. Fabrizio Riguzzi

File e indici. Tecnologia delle BD: perché studiarla? Le basi di dati sono grandi e persistenti. DataBase Management System DBMS

Introduzione all Architettura del DBMS

Sistemi Informativi. Ing. Fabrizio Riguzzi

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

ITI M. FARADAY Programmazione modulare a.s

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Introduzione al corso

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Caratteristiche principali. Contesti di utilizzo

Informatica I per la. Fisica

Base di dati e sistemi informativi

Rassegna sui principi e sui sistemi di Data Warehousing

Informatica 3. LEZIONE 23: Indicizzazione. Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI

PROGETTAZIONE FISICA

Indice. Introduzione Scopi del libro Lavorare con il database di esempio Organizzazione del libro Convenzioni utilizzate in questo libro

Linee di evoluzione dei Database

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

1. BASI DI DATI: GENERALITÀ

Settimana I...1. Giorno 1 - Introduzione all XSLT...3

Architetture distribuite

Facoltà di Farmacia - Corso di Informatica

Replicazione. Requisisti di consistenza i clienti devono ricevere risposte consistenti e coerenti. Motivazioni

Sistemi transazionali. sistemi transazionali 1

Organizzazione degli archivi

Tratti dal cap. 9 di: Atzeni, Ceri, Paraboschi, Torlone Basi di Dati II edizione, 1999, McGraw-Hill

Sommario. iii. Prefazione... xi Introduzione...xvii Ringraziamenti... xxi. Parte I - Concetti Capitolo 1 - L hardware del PC...

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Tecnologia di un Database Server (centralizzato) Gestione dell affidabilità

Basi di Dati Esercitazione per la II prova intermedia 2013

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

Introduzione al data base

Archivi e Basi di Dati

Introduzione ai sistemi di basi di dati

Transazioni - Parte 1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Transazioni. Capitolo 13. Scrittura immediata e scrittura differita. Concorrenza in un DBMS. Una transazione. Gestione delle transazioni

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Coordinazione Distribuita

Progettazione di Basi di Dati

Memorizzazione dei dati: Dischi e File

Basi di Dati Distribuite

Introduzione alla teoria dei database relazionali. Come progettare un database

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Il Software. Il software del PC. Il BIOS

DB - Cenni sulla gestione delle transazioni

DESIGNAZIONE: Rappresenta una relazione tra due entità di tipo 1 ad M. Esempio tipico è : REPARTO IMPIEGATO

Access. P a r t e p r i m a

Data warehouse Introduzione

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Recovery manager Gestore della affidabilità

Basi di Dati Complementi Esercizi. Esercizi su strutture fisiche di accesso. Soluzione Esercizio 1. Esercizio 1. Soluzione Esercizio 2.

Indici ad albero. Albero Binario di Ricerca

Linguaggio SQL: costrutti avanzati

Manuale utente Volta Control

Al giorno d oggi, i sistemi per la gestione di database

Capitolo 1 Oracle: la società e il software Terminologia Oracle Corporation: la storia L offerta corrente 12 1.

Introduzione al Data Warehousing

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo

Data Warehousing (DW)

Corso di Laboratorio di Basi di Dati

Transazioni. Architettura di un DBMS. Utente/Applicazione. transazioni. Transaction Manager. metadati, statistiche.

Corso di Informatica RDBMS RDBMS. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

Indice generale VIII

Sistemi avanzati di gestione dei Sistemi Informativi

Problemi che possono sorgere nell ambito della concorrenza delle transizioni:

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Archivi e database. Lezione n. 7

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

SQL Server BI Development Studio

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Introduzione all Information Retrieval

Introduzione ai Sistemi di Gestione di Basi di Dati XML

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

Utilizzo degli indici nei DBMS relazionali

Lezione 1. Introduzione e Modellazione Concettuale

TRANSAZIONI DISTRIBUITE TRANSAZIONI

Corso di Informatica

Introduzione data warehose. Gian Luigi Ferrari Dipartimento di Informatica Università di Pisa. Data Warehouse

Transcript:

Prefazione... 1 Contenuti... 1 Ringraziamenti... 2 1 SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 1.1 Dichiarazione di funzioni e procedure... 3 1.2 Istruzioni PSM... 4 2 Vincoli e Trigger... 9 2.1 Vincoli di chiave primaria... 9 2.2 Vincoli di chiave esterna... 10 2.3 Vincoli check su singoli attributi... 12 2.4 Vincoli check su intere tuple di attributi... 13 2.5 Asserzioni... 13 2.6 Trigger... 14 2.6.1 Proprietà dei Trigger... 19 2.6.2 Analisi di terminazione... 20 2.6.3 Modi di esecuzione dei trigger rispetto alle transazioni... 20 3 SQL nei linguaggi di programmazione... 21 4 Hardware... 23 4.1 Disco rigido... 23 4.1.1 Tempo di accesso ai dati: latenza del disco... 24 4.1.2 Densità del disco... 27 4.1.3 Affidabilità del disco... 28 RAID livello 0 (striping)... 29 RAID livello 1 (mirroring)... 30 RAID livello 4 (striping con parità)... 30 RAID livello 5 (striping con parità distribuita)... 31 4.2 Organizzazione dei record nei blocchi... 32 4.2 Gestore del buffer e delle transazioni... 37 4.3 DBMS e File System... 40 4.1.1 Organizzazione dei records nei file... 40 5 Indici... 43 5.1 Tipi di indici... 43 5.2 Indici ISAM... 43

II Indice 5.2.1 Indici Primari... 43 5.2.1.1 Indice denso... 44 5.2.1.2 Indice sparso... 45 5.2.1.3 Indice denso con possibili chiavi duplicate... 47 5.2.1.4 Indice sparso con possibili chiavi duplicate... 48 5.2.1.5 Cancellazione da un file con indice caso indice denso... 49 5.2.1.6 Cancellazione da un file con indice sparso... 50 5.2.1.7 Inserimento in un file con indice sparso... 53 5.2.1.8 Inserimento in un file con indice denso... 54 5.2.2 Indici Secondari... 55 5.2.2.1 Indici secondari con valori duplicati... 56 5.3 Indici B+-Tree... 59 5.3.1 Alberi binari di ricerca... 59 5.3.2 Alberi n-ari di ricerca... 59 5.3.3 B+-Tree... 60 5.3.3.1 Organizzazione dei nodi intermedi... 60 5.3.3.2 Organizzazione dei nodi foglia... 61 5.3.3.3 Operazione di ricerca... 61 5.3.3.4 Operazioni di inserimento e cancellazione... 61 Inserimento in un B+-Tree... 61 Algoritmo di inserimento Gestione delle chiavi nelle foglie... 62 Algoritmo di inserimento Gestione delle chiavi nei nodi non foglia... 64 Cancellazione da un B+-Tree... 67 Algoritmo di cancellazione Gestione delle chiavi nelle foglie... 67 Algoritmo di cancellazione Gestione delle chiavi nei nodi non foglia... 67 5.3.3.5 Efficienza del B+-Tree... 68 5.4 Dati geografici... 70 5.4.1 Condizioni di ricerca composte... 71 5.4.2 File grid... 73 6 Hashing... 75 6.1 Hashing statico... 75 6.1.1 Inserimento... 76 6.1.2 Cancellazione... 76 6.1.3 Dimesionamento dei bucket... 77

III 6.1.4 Costo dell accesso ai dati... 78 6.2 Hashing dinamico... 78 6.2.1 Hashing estendibile... 78 6.2.1.1 Inserimento in una tabella hash estendibile... 79 6.2.1.2 Cancellazione in una hash table estendibile... 80 6.2.2 Hashing lineare... 80 6.2.2.1 Inserimento in una hash table lineare... 81 6.3 Hash partizionato... 83 7 Organizzazione fisica dei dati... 85 7.1 Partizioni... 85 7.2 Memorizzazione delle tabelle nelle partizioni... 86 7.2.1 Heap... 86 7.2.2 Tabelle clustered... 86 7.2.3 Indici secondari... 87 7.3 Unità di allocazione... 88 7.4 Gestione dello spazio su disco... 88 8 Elaborazione delle query... 93 8.1 Ottimizzazione dell algebra relazionale... 94 8.2 Ottimizzazione del piano di query fisico... 95 8.2.1 Stima della dimensione del risultato... 95 8.3 Stima del numero di operazioni di I/O... 102 8.3.1 Algoritmi di ordinamento... 102 8.3.2 Algoritmi per la selezione... 106 Selezione con predicato di uguaglianza... 106 Selezione con predicato di disuguaglianza... 106 8.3.3 Algoritmi di join... 107 Join a un passo... 107 Join a un passo e mezzo... 107 Join a un passo e mezzo basato sulle tuple... 108 Join a un passo e mezzo basato sui blocchi... 108 Join a due passi... 109 Sort based join... 109 Sort join... 110 Join con indice... 111 Hash join... 112 Hash join ibrido... 113 9 Progetto fisico... 117

IV Indice 9.1 SQL Server... 118 9.2 Oracle... 118 9.3 DB2... 118 10 Gestione delle transazioni... 119 10.1 Definizione di una transazione... 119 10.2 Proprietà ACID delle transazioni... 120 10.2.1 Atomicità... 120 10.2.2 Consistenza... 121 10.2.3 Isolamento... 121 10.2.4 Persistenza... 121 10.3 Gestore dell affidabilità... 122 10.3.1 Organizzazione del file di log... 122 10.3.2 Esecuzione delle transazioni e scrittura del log... 124 10.3.3 Gestione dei guasti... 124 10.3.3.1 Ripresa a caldo warm restart... 125 10.3.3.2 Ripresa a freddo cold restart... 132 10.4 Gestore della concorrenza... 132 10.4.1 Anomalie delle transazioni concorrenti... 132 10.4.1.1 Perdita di aggiornamento lost update... 132 10.4.1.2 Lettura sporca dirty read... 133 10.4.1.3 Letture inconsistenti inconsistent read (non repeatable read).. 134 10.4.1.4 Aggiornamento fantasma ghost update... 134 10.4.1.5 Inserimento (o cancellazione) fantasma - phantom insert (or delete) 135 10.4.2 Teoria del controllo di concorrenza... 135 10.4.2.1 Schedules seriali e serializzabili... 136 10.4.2.2 View-equivalenza... 136 10.4.2.3 Conflict equivalenza... 139 10.4.2.4 Locking... 141 10.4.2.5 Two-phase locking... 143 10.4.2.6 Lettura sporca... 145 10.4.2.7 Inserimento fantasma... 145 10.4.2.8 Meccanismi per la gestione dei lock... 145 10.4.2.9 Lock gerarchico... 146 10.4.2.10 Controllo di concorrenza basato sui timestamp... 147 10.4.2.11 Blocco critico... 152 10.4.2.12 Timeout... 153 10.4.2.13 Deadlock prevention... 153

V 10.4.2.14 Deadlock detection... 154 10.4.2.15 Gestione della concorrenza in SQL 1999... 154 11 Datalog... 157 11.1 Predicati e atomi... 157 11.2 Regole e query... 157 11.2.1 Regole safe... 158 11.2.2 Algoritmi per applicare le regole... 158 11.3 Programmi Datalog... 160 11.3.1 Dall algebra relazionale al Datalog... 161 11.3.1.1 Ricosione... 162 Rispondere a query... 166 Ricorsione in SQL 99... 168 Forma di query SQL ricorsiva... 168 12 Dati semistrutturati... 171 12.1 Dati semistrutturati... 171 12.2 XML... 172 12.2.1 Document Type Definitions (DTD)... 174 12.2.2.1 Entità... 178 12.3 Namespace... 179 12.4 XML schema... 180 12.4.1 Tipi di dato... 182 12.4.2 Tipi derivati... 182 12.4.2.1 XPATH... 183 12.4.2.2 XQUERY... 184 13 Data Warehousing... 187 13.1 Accesso integrato a dati provenienti da diverse sorgenti... 187 13.2 Che cos è una data warehouse?... 190 13.3 Modelli e operazioni su una data warehouse... 193 13.4 Sistemi ROLAP... 193 13.4.1 Schema a stella... 194 13.4.2 Schema a fiocco di neve... 196 13.5 Sistemi MOLAP... 198 13.6 Operazioni... 200 13.6.1 Operazioni sui dati in sistemi ROLAP... 200 13.6.2 Operazioni sui dati in sistemi MOLAP... 204 13.7 Come si implementa una data warehouse?... 208 13.7.1 Monitoring... 208

VI Indice 13.7.2 Integrating... 209 13.7.3 Processing... 210 14 Knowledge Discovery in Databases... 213 15 Clustering... 217 15.1 Misure di dissimilarità o di distanza... 217 15.2 Misure di similarità... 217 15.3 Algoritmi di clustering... 218 15.3.1 Algoritmo K Means, versione di Forgy... 218 15.3.2 Algoritmo K Means, versione di MacQueen... 219 15.3.3 Algoritmo PAM (Partitioning Around Medoids)... 220 15.3.4 Clustering basato sulla probabilità... 222 15.3.5 Algoritmo EM... 225 16 Regole Associative... 231 16.1 Definizione di regola associativa... 231 16.2 Confidenza e supporto... 232 16.3 Algoritmo APRIORI... 234 16.4 Altra forma del database... 237 16.5 Weka... 238 17 Database Distribuiti... 239 17.1 Frammentazione dei dati... 239 17.2 Distribuzione dei frammenti... 240 17.3 Linguaggi di interrogazione di database distribuiti... 240 17.4 Ottimizzazione delle query distribuite... 241 17.5 Individuazione di deadlock distribuiti... 242 17.6 Transazioni distribuite... 242 17.6.1 Restart del sistema in seguito al fallimento di un subordinato... 244 17.6.2 Restart del sistema in seguito al fallimento del coordinatore... 244 17.6.4 Osservazioni sul protocollo 2PC... 245 17.7 Replicazione dei dati... 245 17.7.1 Replicazione sincrona... 246 17.7.1.1 Costo della replicazione sincrona... 246 17.7.2 Replicazione asincrona... 247 18 Database internazionali... 249 18.1 Gestione dei campi data/ora... 249 18.2 Gestione dei caratteri non ASCII... 249 18.3 Memorizzazione delle stringhe in SQL Server... 251

VII 18.3.1 Ricerca full-text... 252 Bibliografia... 255