G. Mecca – [email protected] – Università della BasilicataG. Mecca – [email protected] – 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)
2G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Concetti Avanzati
Transazioniproprietà “acide”rapporto con il S. O.
Concorrenzaconsistenzaisolamento
Affidabilità Architettura di un DBMS
Tecnologia DBMS >> Sommario
3G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Transazioni
Transazionesequenza di operazioni effettuate da una
applicazione sulla base di dati Transazioni semplici
es: aggiungi un nuovo studente Transazioni complesse
es: bonifico bancario Approccio alla descrizione: sviluppatori
Tecnologia DBMS >> Concetti Avanzati >> Transazioni
4G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Transazioni
Normalmente: modalità non concatenatauna transazione per operazione
(“autocommit”) Conseguenza
il completamento di un’operazione della transazione non implica necessariamente il completamento delle successive
possibilità di inconsistenze nella base di dati
Tecnologia DBMS >> Concetti Avanzati >> Transazioni
5G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Transazioni
Modalità concatenatauna transazione contiene più operazionitutte le operazioni della transazione vengono
eseguite oppure non ne viene eseguita nessuna (esecuzione “atomica”)
Inizio della transazionesintassi non standard SQL:1999: START TRANSACTION)in PgSQL: START TRANSACTION (>=7.3)
oppure BEGIN TRANSACTION
Tecnologia DBMS >> Concetti Avanzati >> Transazioni
6G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Transazioni
Fine della transazioneistruzioni COMMIT e ROLLBACK (ABORT)
(standard SQL-92) Esito della transazione
esecuzione come unità indivisibileCOMMIT: rende permanenti le operazionierrore: operazioni annullate dal sistemaROLLBACK: annulla esplicitamente le
operazioni
Tecnologia DBMS >> Concetti Avanzati >> Transazioni
>> esempio di transazione-commit con successo-commit dopo errore-rollback
7G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - 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’, ‘2002-04-15’); UPDATE Videoc SET quant.=quant.-1 WHERE cod=110; UPDATE Tessere SET totn.=totn.+1 WHERE cod=‘pp02’;COMMIT;
Esempio: noleggio di una videocassetta
8G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Proprietà “ACIDE” delle Transazioni Atomicità
tutte le operazioni oppure nessuna Consistenza
stati consistenti della base di dati Isolamento
correttezza dell’accesso concorrente Durevolezza
effetto persistente sulla base di dati (guasti)
Tecnologia DBMS >> Concetti Avanzati >> Transazioni
9G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Gestione delle Transazioni in un DBMS Due moduli fondamentali Gestore della concorrenza
garantisce isolamento e consistenzaimplementa tecniche più sofisticate di sincr.
Gestore dell’affidabilitàgarantisce atomicità e durevolezzautilizza un file di registrazioni (“log”) per
consentire il recupero in caso di guasti
Tecnologia DBMS >> Concetti Avanzati >> Transazioni
10G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Gestione della Concorrenza
Assume atomicità e durevolezzafornite dal gestore dell’affidabilità >>
Due obiettivi fondamentaligarantire la consistenza della base di dati
(partendo da uno stato consistente, la transazione genera uno stato consistente)
garantire l’isolamento delle transazioni(le transazioni devono essere eseguite come se fossero isolate)
Tecnologia DBMS >> Concetti Avanzati >> Gestione della Concorrenza
11G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Consistenza
Impone i vincoli di integritàdefiniti nel DDL (più eventuali “trigger”)
Vincoli di riferimentola verifica può essere immediata o differita
Istruzione SET CONSTRAINTSSET CONSTRAINTS ALL DEFERRED;
Vincoli differibili (“deferrable”)i vincoli vengono verificati solo al COMMIT
Tecnologia DBMS >> Concetti Avanzati >> Gestione della Concorrenza
12G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Consistenza
Esempio: in Noleggivideo 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’, ‘2002-04-15’); INSERT INTO Videoc VALUES (200, ‘Clerks’, ...); UPDATE Videoc SET quantita=quantita-1 WHERE cod=200;COMMIT;
Attenzione: partedell’integrità è a
carico del programmatore (in questo caso non
viene aggiornatoil totalenoleggi della
tessera)
13G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Isolamento
L’esecuzione di una transazione deve essere indipendente da quella delle altre
Strategia di esecuzione (“schedule”)ordine di esecuzione delle operazioni
Correttezza di una strategia concorrenteproprietà di “serializzabilità”il risultato è equivalente a quello di
un’esecuzione seriale (in ordine qualsiasi)evita vari problemi di esecuzione (>>)
Tecnologia DBMS >> Concetti Avanzati >> Gestione della Concorrenza
14G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Gestione dell’Affidabilità
Due obiettivi fondamentaligarantire l’atomicità delle transazionigarantire la durevolezza degli effetti, anche
in caso di guasti (recupero della base di dati) 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 dell’Affidabilità
15G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Gestione dell’Affidabilità
File di registro (“log”)si registrano tutte le istruzioni di aggiornamentotutte le istruzioni di start transactiontutte le istruzioni committutte le istruzioni rollback
Formato dei record del logciascun record del log registra la modifica di un
record della base di dati da parte di una transazione<id trans, id record, vecchio val, nuovo val.>
Tecnologia DBMS >> Concetti Avanzati >> Gestione dell’Affidabilità
16G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Gestione dell’Affidabilità
Protocollo di scrittura anticipata“Write Ahead Logging” (WAL)
Ideale informazioni vengono scritte secondo un ordine
che garantisce la ripristinabilità in caso di guastii record del log sono scritti prima dei record della
base di dati (garantisce l’atomicità)i record del log di una transazione sono scritti tutti
prima di effettuare il commit (garantisce la durevolezza)
Tecnologia DBMS >> Concetti Avanzati >> Gestione dell’Affidabilità
17G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Gestione dell’Affidabilità
Attenzionein ogni istante parte delle pagine del disco sono nel
buffer in memoria centralese sono state modificate, in caso di guasto si
perdono le modifiche Punto di controllo (“checkpoint”)
“fotografia” stabile della situazione della base di dati in un certo istante
informazioni sulle transazioni attive in quel momentoscrittura su disco delle pagine relative del buffer
Tecnologia DBMS >> Concetti Avanzati >> Gestione dell’Affidabilità
18G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Gestione dell’Affidabilità
Situazione di guastoes: corrente, rottura disco, crash sistema
Problema: ripristinare la base di datiripetere l’esecuzione delle transazioni a partire dal
contenuto del logattenzione alle transazioni interrotte a metà
Algoritmo ARIESsul log viene localizzato il primo checkpointazione di ripetizione (in avanti)azione di annullamento (indietro)
Tecnologia DBMS >> Concetti Avanzati >> Gestione dell’Affidabilità
19G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Gestione dell’Affidabilità
Tecnologia DBMS >> Concetti Avanzati >> Gestione dell’Affidabilità
Localizzazione del checkp.
Checkpoint
A
Punto di inizio della transazionepiù antica traquelle fallite
UR
Punto di inizio della transazionepiù antica traquelle concluse
Guasto
log
Fase 1: Analisiricerca di transazioni concluse
e fallite dal checkpoint Fase 2: REDO
ripetizione di tutte le azioni delle transazioni attive
Fase 3: UNDOannullamento di tutte le azioni
delle transazioni interrotte
20G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Gestione dell’Affidabilità
Descrizione semplificata Tipicamente
in caso di interruzione improvvisa, il recupero è completamente automatico
supponendo di avere a disposizione log e checkpoint
es: PostgreSQL /var/lib/pgsql/dataal riavvio la base di dati viene ripristinata
Tecnologia DBMS >> Concetti Avanzati >> Gestione dell’Affidabilità
21G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Gestione dell’Affidabilità
Tecniche per l’affidabilitàmantenere copie del log; es: mirrormantenere copie di backup della base di dati
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.sqlpsql –d deputati –f deputati.sql
Tecnologia DBMS >> Concetti Avanzati >> Gestione dell’Affidabilità
22G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - 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
Co
nne
ssio
ni(T
CP
/IP)
Sic
ure
zza
e
Au
tori
zza
zio
ni
Co
nco
rre
nza
Affi
dab
ilità
Esecuzione interrogazioniOttimizzazione
23G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Architettura di un DBMS
Tecnologia DBMS >> Concetti Avanzati >> Architettura di un DBMS
PostgreSQLpiattaforma LinuxtransazionaleSQL-92 intermediateestensioni SQL:1999sicurezza (connessioni in chiaro e cifrate)“multi-version concurrency control”WAL
24G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Architettura di un DBMS
Tecnologia DBMS >> Concetti Avanzati >> Architettura di un DBMS
MySQL (3.xx)piattaforma Linux e Windowsnon transazionale (componenti esterni)sottoinsieme di SQL-92 intermediate
mancano i vincoli di riferimentomancano le vistemancano intersezione e differenzamancano le query nidificate
enfasi sulle prestazioni
25G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Architettura di un DBMS
Tecnologia DBMS >> Concetti Avanzati >> Architettura di un DBMS
Accesspiattaforma Windowsnon transazionalesottoinsieme di SQL-92 intermediate
no intersezione e differenzalimitate autenticazionilimitato controllo di concorrenzaenfasi sull’interfaccia utenteclient grafico o SQL per DBMS di fascia alta
26G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Concetti Avanzati
Transazioniproprietà “acide”rapporto con il S. O.
Concorrenzaconsistenzaisolamento
Affidabilità Architettura di un DBMS
Tecnologia DBMS >> Sommario
27G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - 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);
28G. Mecca - [email protected] - Basi di DatiG. Mecca - [email protected] - Basi di Dati
Termini della Licenza
Termini della Licenza
This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Top Related