Download - Basi di Dati

Transcript
Page 1: Basi di Dati

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)

Page 2: Basi di Dati

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

Page 3: Basi di Dati

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

Page 4: Basi di Dati

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

Page 5: Basi di Dati

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

Page 6: Basi di Dati

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

Page 7: Basi di Dati

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

Page 8: Basi di Dati

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

Page 9: Basi di Dati

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

Page 10: Basi di Dati

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

Page 11: Basi di Dati

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

Page 12: Basi di Dati

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)

Page 13: Basi di Dati

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

Page 14: Basi di Dati

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à

Page 15: Basi di Dati

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à

Page 16: Basi di Dati

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à

Page 17: Basi di Dati

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à

Page 18: Basi di Dati

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à

Page 19: Basi di Dati

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

Page 20: Basi di Dati

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à

Page 21: Basi di Dati

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à

Page 22: Basi di Dati

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

Page 23: Basi di Dati

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

Page 24: Basi di Dati

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

Page 25: Basi di Dati

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

Page 26: Basi di Dati

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

Page 27: Basi di Dati

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);

Page 28: Basi di Dati

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.