G. Mecca – – Università della Basilicata Basi di Dati Tecnologia di un DBMS: Concorrenza e Affidabilità Concetti Avanzati versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
2 G. Mecca - - Basi di Dati Concetti Avanzati m Transazioni proprietà acide rapporto con il S. O. m Concorrenza consistenza isolamento m Affidabilità m Architettura di un DBMS Tecnologia DBMS >> Sommario
3 G. Mecca - - Basi di Dati Transazioni m Transazione sequenza di operazioni effettuate da una applicazione sulla base di dati m Transazioni semplici es: aggiungi un nuovo studente m Transazioni complesse es: bonifico bancario m Approccio alla descrizione: sviluppatori Tecnologia DBMS >> Concetti Avanzati >> Transazioni
4 G. Mecca - - Basi di Dati Transazioni m Normalmente: modalità non concatenata una transazione per operazione (autocommit) m Conseguenza il completamento di unoperazione della transazione non implica necessariamente il completamento delle successive possibilità di inconsistenze nella base di dati Tecnologia DBMS >> Concetti Avanzati >> Transazioni
5 G. Mecca - - Basi di Dati Transazioni m Modalità concatenata una transazione contiene più operazioni tutte le operazioni della transazione vengono eseguite oppure non ne viene eseguita nessuna (esecuzione atomica) m Inizio della transazione sintassi non standard SQL:1999: START TRANSACTION) in PgSQL: START TRANSACTION (>=7.3) oppure BEGIN TRANSACTION Tecnologia DBMS >> Concetti Avanzati >> Transazioni
6 G. Mecca - - Basi di Dati Transazioni m Fine della transazione istruzioni COMMIT e ROLLBACK (ABORT) (standard SQL-92) m Esito della transazione esecuzione come unità indivisibile COMMIT: rende permanenti le operazioni errore: operazioni annullate dal sistema ROLLBACK: annulla esplicitamente le operazioni Tecnologia DBMS >> Concetti Avanzati >> Transazioni >> esempio di transazione -commit con successo -commit dopo errore -rollback
7 G. Mecca - - Basi di Dati Transazioni: La Base di Dati dei Video Tecnologia DBMS >> Concetti Avanzati >> Transazioni CREATE TABLE Videoc ( cod integer PRIMARY KEY, titolo varchar(50) NOT NULL, regista varchar(20), quantita integer DEFAULT 1, prezzo numeric(4,2) ); CREATE TABLE Noleggi ( video integer NOT NULL REFERENCES Videoc(cod), tessera char(4) NOT NULL REFERENCES Tessere(cod), data date NOT NULL, PRIMARY KEY (video, tessera, data) ); CREATE TABLE Tessere ( cod char(4) PRIMARY KEY, nomeCliente varchar(50), indirizzo varchar(50), totalenoleggi integer DEFAULT 0 ); BEGIN TRANSACTION; INSERT INTO Noleggi VALUES (110, pp02, ); UPDATE Videoc SET quant.=quant.-1 WHERE cod=110; UPDATE Tessere SET totn.=totn.+1 WHERE cod=pp02; COMMIT; Esempio: noleggio di una videocassetta
8 G. Mecca - - Basi di Dati Proprietà ACIDE delle Transazioni m Atomicità tutte le operazioni oppure nessuna m Consistenza stati consistenti della base di dati m Isolamento correttezza dellaccesso concorrente m Durevolezza effetto persistente sulla base di dati (guasti) Tecnologia DBMS >> Concetti Avanzati >> Transazioni
9 G. Mecca - - Basi di Dati Gestione delle Transazioni in un DBMS m Due moduli fondamentali m Gestore della concorrenza garantisce isolamento e consistenza implementa tecniche più sofisticate di sincr. m Gestore dellaffidabilità garantisce atomicità e durevolezza utilizza un file di registrazioni (log) per consentire il recupero in caso di guasti Tecnologia DBMS >> Concetti Avanzati >> Transazioni
10 G. Mecca - - Basi di Dati Gestione della Concorrenza m Assume atomicità e durevolezza fornite dal gestore dellaffidabilità >> m Due obiettivi fondamentali garantire la consistenza della base di dati (partendo da uno stato consistente, la transazione genera uno stato consistente) garantire lisolamento delle transazioni (le transazioni devono essere eseguite come se fossero isolate) Tecnologia DBMS >> Concetti Avanzati >> Gestione della Concorrenza
11 G. Mecca - - Basi di Dati Consistenza m Impone i vincoli di integrità definiti nel DDL (più eventuali trigger) m Vincoli di riferimento la verifica può essere immediata o differita m Istruzione SET CONSTRAINTS SET CONSTRAINTS ALL DEFERRED; m Vincoli differibili (deferrable) i vincoli vengono verificati solo al COMMIT Tecnologia DBMS >> Concetti Avanzati >> Gestione della Concorrenza
12 G. Mecca - - Basi di Dati Consistenza m Esempio: in Noleggi video integer NOT NULL REFERENCES Videoc(cod) DEFERRABLE; Tecnologia DBMS >> Concetti Avanzati >> Gestione della Concorrenza BEGIN TRANSACTION; SET CONSTRAINTS ALL DEFERRED; INSERT INTO Noleggi VALUES (200, pp02, ); INSERT INTO Videoc VALUES (200, Clerks,...); UPDATE Videoc SET quantita=quantita-1 WHERE cod=200; COMMIT; Attenzione: parte dellintegrità è a carico del programmatore (in questo caso non viene aggiornato il totalenoleggi della tessera)
13 G. Mecca - - Basi di Dati Isolamento m Lesecuzione di una transazione deve essere indipendente da quella delle altre m Strategia di esecuzione (schedule) ordine di esecuzione delle operazioni m Correttezza di una strategia concorrente proprietà di serializzabilità il risultato è equivalente a quello di unesecuzione seriale (in ordine qualsiasi) evita vari problemi di esecuzione (>>) Tecnologia DBMS >> Concetti Avanzati >> Gestione della Concorrenza
14 G. Mecca - - Basi di Dati Gestione dellAffidabilità m Due obiettivi fondamentali garantire latomicità delle transazioni garantire la durevolezza degli effetti, anche in caso di guasti (recupero della base di dati) m Idee di base registrare tutte le azioni eseguite in un file di registro (log) mantenere copie dei dati e del log (mirror) strettamente legato alla gestione del buffer Tecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilità
15 G. Mecca - - Basi di Dati Gestione dellAffidabilità m File di registro (log) si registrano tutte le istruzioni di aggiornamento tutte le istruzioni di start transaction tutte le istruzioni commit tutte le istruzioni rollback m Formato dei record del log ciascun record del log registra la modifica di un record della base di dati da parte di una transazione Tecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilità
16 G. Mecca - - Basi di Dati Gestione dellAffidabilità m Protocollo di scrittura anticipata Write Ahead Logging (WAL) m Idea le informazioni vengono scritte secondo un ordine che garantisce la ripristinabilità in caso di guasti i record del log sono scritti prima dei record della base di dati (garantisce latomicità) i record del log di una transazione sono scritti tutti prima di effettuare il commit (garantisce la durevolezza) Tecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilità
17 G. Mecca - - Basi di Dati Gestione dellAffidabilità m Attenzione in ogni istante parte delle pagine del disco sono nel buffer in memoria centrale se sono state modificate, in caso di guasto si perdono le modifiche m Punto di controllo (checkpoint) fotografia stabile della situazione della base di dati in un certo istante informazioni sulle transazioni attive in quel momento scrittura su disco delle pagine relative del buffer Tecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilità
18 G. Mecca - - Basi di Dati Gestione dellAffidabilità m Situazione di guasto es: corrente, rottura disco, crash sistema m Problema: ripristinare la base di dati ripetere lesecuzione delle transazioni a partire dal contenuto del log attenzione alle transazioni interrotte a metà m Algoritmo ARIES sul log viene localizzato il primo checkpoint azione di ripetizione (in avanti) azione di annullamento (indietro) Tecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilità
19 G. Mecca - - Basi di Dati Gestione dellAffidabilità Tecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilità m Localizzazione del checkp. Checkpoint A Punto di inizio della transazione più antica tra quelle fallite U R Punto di inizio della transazione più antica tra quelle concluse Guasto log m Fase 1: Analisi ricerca di transazioni concluse e fallite dal checkpoint m Fase 2: REDO ripetizione di tutte le azioni delle transazioni attive m Fase 3: UNDO annullamento di tutte le azioni delle transazioni interrotte
20 G. Mecca - - Basi di Dati Gestione dellAffidabilità m Descrizione semplificata m Tipicamente in caso di interruzione improvvisa, il recupero è completamente automatico supponendo di avere a disposizione log e checkpoint es: PostgreSQL /var/lib/pgsql/data al riavvio la base di dati viene ripristinata Tecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilità
21 G. Mecca - - Basi di Dati Gestione dellAffidabilità m Tecniche per laffidabilità mantenere copie del log; es: mirror mantenere copie di backup della base di dati m Copie della base di dati (dump) copia di /var/lib/pgsql/data (a DBMS fermo) pg_dump: estrae un file di comandi esempio: pg_dump –U pguser deputati > deputati.sql psql –d deputati –f deputati.sql Tecnologia DBMS >> Concetti Avanzati >> Gestione dellAffidabilità
22 G. Mecca - - Basi di Dati Architettura di un DBMS Tecnologia DBMS >> Concetti Avanzati >> Architettura di un DBMS Algebra (Operatori) Gestione dei Metodi di acc. Gestione del buffer Gestione del disco DB Connessioni (TCP/IP) Sicurezza e Autorizzazioni Concorrenza Affidabilità Esecuzione interrogazioni Ottimizzazione
23 G. Mecca - - Basi di Dati Architettura di un DBMS Tecnologia DBMS >> Concetti Avanzati >> Architettura di un DBMS m PostgreSQL piattaforma Linux transazionale SQL-92 intermediate estensioni SQL:1999 sicurezza (connessioni in chiaro e cifrate) multi-version concurrency control WAL
24 G. Mecca - - Basi di Dati Architettura di un DBMS Tecnologia DBMS >> Concetti Avanzati >> Architettura di un DBMS m MySQL (3.xx) piattaforma Linux e Windows non transazionale (componenti esterni) sottoinsieme di SQL-92 intermediate mancano i vincoli di riferimento mancano le viste mancano intersezione e differenza mancano le query nidificate enfasi sulle prestazioni
25 G. Mecca - - Basi di Dati Architettura di un DBMS Tecnologia DBMS >> Concetti Avanzati >> Architettura di un DBMS m Access piattaforma Windows non transazionale sottoinsieme di SQL-92 intermediate no intersezione e differenza limitate autenticazioni limitato controllo di concorrenza enfasi sullinterfaccia utente client grafico o SQL per DBMS di fascia alta
26 G. Mecca - - Basi di Dati Concetti Avanzati m Transazioni proprietà acide rapporto con il S. O. m Concorrenza consistenza isolamento m Affidabilità m Architettura di un DBMS Tecnologia DBMS >> Sommario
27 G. Mecca - - Basi di Dati Transazioni: La Base di Dati dei Video Tecnologia DBMS >> Concetti Avanzati >> Transazioni CREATE TABLE Videoc ( cod integer PRIMARY KEY, titolo varchar(50) NOT NULL, regista varchar(20), quantita integer DEFAULT 1, prezzo numeric(4,2) ); CREATE TABLE Noleggi ( video integer NOT NULL REFERENCES Videoc(cod), tessera char(4) NOT NULL REFERENCES Tessere(cod), data date NOT NULL, PRIMARY KEY (video, tessera, data) ); CREATE TABLE Tessere ( cod char(4) PRIMARY KEY, nomeCliente varchar(50), indirizzo varchar(50), totalenoleggi integer DEFAULT 0 );
28 G. Mecca - - Basi di Dati Termini della Licenza m This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. m Questo lavoro viene concesso in uso secondo i termini della licenza Attribution-ShareAlike di Creative Commons. Per ottenere una copia della licenza, è possibile visitare oppure inviare una lettera allindirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.