TRANSAZIONI TRANSAZIONI

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "TRANSAZIONI TRANSAZIONI"

Transcript

1 TRANSAZIONI Concetto di transazione, comandi di transazione, proprietà ACID delle transazioni Transazioni concorrenti Esecuzione seriale e serializzabile Conflict-equivalenza, grafo dei conflitti Protocollo 2PL e 2PL stretto Protocollo basato su timestamp Lo stallo Gestione dei buffer Affidabilità Malfunzionamenti, do/undo/redo Il LOG Checkpoint Dump Transazioni 1 TRANSAZIONI TRANSAZIONE una singola esecuzione di un programma una unità di lavoro effettuata da un applicazione una unità di lavoro consistente e affidabile Transazioni 2 1

2 Esempio di transazione ESEMPIO: prenotazione di un volo da P1 a P3 con cambio in P2 1. num. posti disponibili volo P1 P num. posti occupati volo P1 P num. posti disponibili volo P2 P num. posti occupati volo P2 P3 ++ vincolo integrità: occupati + disponibili = k malfunzionamento tra 1. e 2. dati inconsistenti rispetto al vincolo di integrità malfunzionamento tra 2. e 3. dati consistenti rispetto al vincolo di integrità dati non corretti Transazioni 3 Esempio di transazione ESEMPIO: prenotazione di un volo da P1 a P3 con cambio in P2 Istruzioni in linguaggio macchina 1 a. leggi num 1 b. somma 1 1 c. scrivi num... esecuzione concorrente da parte di più transazioni di 1a., 1b., 1c. il valore di num può non essere corretto Transazioni 4 2

3 Esecuzione di una transazione database in uno stato consistente database in uno stato consistente il database può essere temporaneamente in uno stato inconsistente inizio transazione fine transazione esecuzione della transazione Transazioni 5 Esempio-1 di transazione [5] FLIGHT (Fno,Date, Src, Dest, Seatsold, Capacity) CUST (Cname, Addr, Bal) FC (Fno, Date, Cname, Special) Begin_transaction Reservation begin input (flight_no, date, customer_name); EXEC SQL UPDATE FLIGHT SET Seatsold = Seatsold + 1 WHERE Fno = flight_no AND Date = date; EXEC SQL INSERT INTO FC (Fno, Date, Cname, Special) VALUES (flight_no, date, customer_name, NULL); output ( reservation completed ) end Affinché l esecuzione sia corretta devono essere eseguiti ambedue i comandi SQL Transazioni 6 3

4 TRANSAZIONI / COMANDI BEGIN TRANSACTION END TRANSACTION COMMIT WORK ROLLBACK WORK i comandi begin transaction e end transaction racchiudono le istruzioni che compongono il corpo della transazione il comando commit work segnala al sistema che gli effetti sul database devono essere resi permanenti deve essere eseguita una operazione di commit il comando rollback work segnala al sistema che gli effetti delle istruzioni eseguite fino a quel momento devono essere annullati deve essere eseguita una operazione di abort Transazioni 7 TRANSAZIONI BEN FORMATE una transazione è ben formata se inizia con begin transaction finisce con end transaction esegue commit work o rollback work (o l uno o l altro) dopo commit work o rollback work non esegue letture e/o scritture sul database si può vedere se una transazione è ben formata solo al momento della sua esecuzione non sempre i comandi visti devono essere scritti esplicitamente dall utente si noti che l operazione abort può essere eseguita dal sistema a seguito dell esecuzione di un rollback work, o può essere decisa dal sistema autonomamente in base alla situazione Transazioni 8 4

5 TRANSAZIONI / COMANDI SQL commit rollback non esistono begin transaction e end transaction una istruzione SQL è implicitamente la prima istruzione di una transazione (transazione corrente) se non esiste già una transazione corrente i comandi commit e rollback segnalano anche la fine della transazione ogni istruzione SQL che segue un commit o un rollback è la prima istruzione di una nuova transazione il comando set transaction serve ad eventualmente definire le caratteristiche della transazione corrente Transazioni 9 Esempio-2 di transazione [5] FLIGHT (Fno,Date, Src, Dest, Seatsold, Capacity) CUST (Cname, Addr, Bal) FC (Fno, Date, Cname, Special) Begin_transaction Reservation begin input (flight_no, date, customer_name); EXEC SQL SELECT Seatsold, Capacity INTO temp1, temp2 FROM FLIGHT WHERE Fno = flight_no AND Date = date; if temp1 = temp2 then begin output ( no free seats ); Rollback end else.. Transazioni 10 5

6 Esempio-2 di transazione [5] FLIGHT (Fno,Date, Src, Dest, Seatsold, Capacity) CUST (Cname, Addr, Bal) FC (Fno, Date, Cname, Special).. begin EXEC SQL UPDATE FLIGHT SET Seatsold = Seatsold + 1 WHERE Fno = flight_no AND Date = date; EXEC SQL INSERT INTO FC (Fno, Date, Cname, Special) VALUES (flight_no, date, customer_name, NULL); Commit; output ( reservation completed ) end end-if end Transazioni 11 TRANSAZIONI / PROPRIETA proprietà acide delle transazioni ACID Atomicity atomicità Consistency consistenza Isolation isolamento Durability persistenza Transazioni 12 6

7 TRANSAZIONI / ATOMICITA la transazione è una unità di elaborazione indivisibile: tutto o niente se la transazione esegue un commit tutte le sue modifiche vengono rese permanenti e visibili alle altre transazioni se la transazione va in abort, è come se non fosse mai iniziata il sistema deve riportare lo stato del database a quello che si aveva prima dell inizio della transazione il sistema deve disfare quello che la transazione ha fatto l abort può essere provocato da esecuzione di un rollback malfunzionamento che causa l interruzione della transazione decisione del sistema ad esempio nel trattamento dello stallo Transazioni 13 TRANSAZIONI / CONSISTENZA una transazione non deve violare i vincoli di integrità definiti sul database i vincoli di integrità possono essere controllati in modo immediato, dopo ogni aggiornamento modo differito, al momento del commit es: inserimenti in tabelle con vincoli di integrità referenziale ciclici Se i vincoli sono controllati in modo immediato, non è possibile fare nessun inserimento Transazioni 14 7

8 TRANSAZIONI / ISOLAMENTO l esecuzione di una transazione è indipendente dall esecuzione concorrente di altre transazioni le modifiche fatte da una transazione sulla base di dati sono visibili alle altre transazioni solo dopo che questa ha effettuato il commit esempio di esecuzione concorrente, non isolata di T 1 e T 2 write 1 (x) read 2 (x) commit 2 abort 1 il dato x letto da T 2 non è valido: T 2 deve essere disfatta e rifatta Transazioni 15 TRANSAZIONI / PERSISTENZA Gli effetti sul database di una transazione andata in commit sono permanenti, non devono andare persi per nessun motivo (es. malfunzionamenti) Transazioni 16 8

9 TRANSAZIONI CONCORRENTI T 1 r 1 (x); e 1 : x=x+100; w 1 (x); commit 1 T 2 r 2 (x); e 2 : x=x-200; w 2 (x); commit 2 x 0 : 1000 esecuzione concorrente r 1 (x) r 2 (x) e 2 e 1 w 2 (x) w 1 (x) c 1 c 2 x f : 1100 risultato non corretto esecuzione seriale di transazioni una esecuzione di T={T 1, T n } è seriale se (T i, T j ) tutte le operazioni di T i vengono eseguite prima di T j o viceversa esecuzione serializzabile di transazioni una esecuzione di T={T 1, T n } è serializzabile se ha sul DB lo stesso effetto di una esecuzione seriale una esecuzione serializzabile è corretta Transazioni 17 ESEMPI ESECUZIONE CONCORRENTE T 1 r 1 (x); e 1 : y=x+1; w 1 (y); c 1 T 2 r 2 (y); e 2 : z=y+1; w 2 (z); c 2 T 3 r 3 (z); e 3 : x=z+1; w 3 (x); c 3 x 0 = y 0 = z 0 = 0 esecuzione seriale T 1 T 2 T 3 r 1 e 1 w 1 c 1 r 2 e 2 w 2 c 2 r 3 e 3 w 3 c 3 x=3 y=1 z=2 esecuzione serializzabile ( T 1 T 3 T 2 ) r 1 r 3 e 3 w 3 c 3 e 1 w 1 c 1 r 2 e 2 w 2 c 2 x=1 y=1 z=2 esecuzione non serializzabile r 2 r 1 r 3 e 2 w 2 c 2 e 1 w 1 c 1 e 3 w 3 c 3 x=1 y=1 z=1 Transazioni 18 9

10 ESEMPI ESECUZIONE CONCORRENTE esecuzione seriale T 1 T 2 r(a) A=A-1 w(a) r(b) B=B+1 w(b) c r(b) B=B-2 w(b) r(c) C=C+2 w(c) c esecuzione serializzabile T 1 r(a) A=A-1 w(a) r(b) B=B+1 w(b) c T 2 r(b) B=B-2 w(b) r(c) C=C+2 w(c) c esecuzione non serializzabile T 1 r(a) A=A-1 w(a) r(b) B=B+1 w(b) c T 2 r(b) B=B-2 w(b) r(c) C=C+2 w(c) c T 1 legge B prima che T 2 l abbia aggiornato Transazioni 19 SCHEDULE (STORIA) DI TRANSAZIONI consideriamo solo le operazioni: lettura, scrittura, commit, abort nessuna transazione legge o scrive un dato più di una volta l esecuzione di T i è un ordinamento su un insieme di operazioni tale che O i {r i (x), w i (x)} { c i, a i } solo una delle due operazioni commit o abort è presente l ultima operazione è commit o abort Dato T= {T 1 T n } una storia (schedule) S su T è un ordinamento su un insieme di operazioni O = i O i che rispetta l ordinamento di ogni T i Transazioni 20 10

11 CONFLICT-EQUIVALENZA DI STORIE due operazioni p e q sono in conflitto se operano sullo stesso dato e almeno una di esse è una scrittura in questo contesto, consideriamo solo transazioni terminate da un commit (commit-proiezione di storie) due storie S 1 e S 2 sono conflict-equivalenti se contengono le stesse operazioni e ordinano allo stesso modo operazioni in conflitto una storia è conflict-serializzabile se è conflict-equivalente ad una storia seriale Transazioni 21 CONFLICT-EQUIVALENZA esempi T 1 r 1 (x) w 1 (x) w 1 (y) c 1 T 2 r 2 (x) w 2 (y) c 2 T 3 r 3 (x) w 3 (x) c 3 S 1 r 2 (x) r 1 (x) w 1 (x) r 3 (x) w 1 (y) c 1 w 2 (y) c 2 w 3 (x) c 3 S 2 r 1 (x) r 2 (x) w 1 (x) r 3 (x) w 3 (x) c 3 w 1 (y) w 2 (y) c 2 c 1 S 3 r 2 (x) r 1 (x) w 1 (x) r 3 (x) w 3 (x) c 3 w 2 (y) w 1 (y) c 2 c 1 S 1 c-equiv S 2 S 1 non è c-equiv S 3 S 3 è c-serializzabile S 3 è c-equiv storia seriale T 2 T 1 T 3 S 1 non è c-serializzabile Transazioni 22 11

12 GRAFO DEI CONFLITTI grafo dei conflitti relativo alla storia S: CG(S) ad ogni transazione corrisponde un nodo si ha un arco T i T j (i j) se e solo se almeno una operazione di T i precede e va in conflitto con una operazione di T j S 2 r 1 (x) r 2 (x) w 1 (x) r 3 (x) w 3 (x) c 3 w 1 (y) w 2 (y) c 2 c 1 T3 T2 T1 S 3 r 2 (x) r 1 (x) w 1 (x) r 3 (x) w 3 (x) c 3 w 2 (y) w 1 (y) c 2 c 1 T3 T2 T1 Transazioni 23 TEOREMA DI SERIALIZZABILITA una storia S è conflict-serializzabile se e solo se il suo grafo dei conflitti è aciclico S 2 non è conflict-serializzabile S 3 è conflict-serializzabile determinare se un grafo è aciclico ha complessità lineare rispetto al numero dei nodi grafi grandi e dinamici Transazioni 24 12

13 CONTROLLO CONCORRENZA: lock vincoli sulle operazioni lettura/scrittura effettuate dalle transazioni: ogni operazione di lettura deve essere preceduta dalla richiesta read_lock e seguita da read_unlock r_lock(x) read(x) r_unlock(x) ogni operazione di scrittura deve essere preceduta dalla richiesta write_lock e seguita da write_unlock w_lock(x) write(x) w_unlock(x) transazioni che seguono questo protocollo sono ben formate rispetto al locking Transazioni 25 CONTROLLO CONCORRENZA: lock gestione dei lock: i lock sono gestiti dal lock manager che tiene traccia dei lock assegnati alle varie transazioni tabella dei lock: [dato_id, tipo_lock, transazione_id] un r_lock(x) viene accordato solo se non è già stato assegnato un w_lock(x) un w_lock(x) viene accordato solo se nessun tipo di lock su x è già stato assegnato (la risorsa x è libera) se una T ottiene un lock continua la sua esecuzione se una T non ottiene un lock, ne viene sospesa l esecuzione in attesa di poterlo ottenere una operazione di unlock annulla l assegnazione del corrispondente lock ad ogni operazione unlock(x) il lock manager controlla se ci sono T in attesa di un lock(x) e se è possibile accordarlo Transazioni 26 13

14 PROTOCOLLO 2PL two phase locking una transazione non può ottenere nessun lock dopo aver effettuato un unlock storia 2PL: esecuzione concorrente di transazioni che seguono il protocollo 2PL num. di lock ottenuti t begin end Transazioni 27 SERIALIZZABILITA DELLE STORIE 2PL il grafo dei conflitti di una storia 2PL è aciclico una storia 2PL è quindi serializzabile Transazioni 28 14

15 PROTOCOLLO A DUE FASI STRETTO strict 2PL consideriamo situazioni reali in cui ci possono essere abort il protocollo 2PL non garantisce l isolamento w_l 1 (x) w 1 (x) w_u 1 (x) r_l 2 (x) r 2 (x) r_u 2 (x) c 2 a 1 protocollo 2PL stretto: una transazione esegue tutti gli unlock solo dopo il commit (abort) num. lock t begin commit end Il protocollo 2PL stretto limita il grado di concorrenza ma dà l isolamento Transazioni 29 CONTR. CONCORRENZA / TIMESTAMP ad ogni transazione viene assegnato un timestamp (marca temporale) i timestamp sono ordinati in modo consistente con l inizio esecuzione delle transazioni valore dell orologio, intero progressivo, obbiettivo scheduler TS: esecuzione di storie serializzabili equivalenti alla storia seriale corrispondente all ordinamento dei timestamp ad ogni dato x vengono associati max_read(x) timestamp più grande delle T che hanno letto x max_write(x) timestamp più grande delle T che hanno scritto x Transazioni 30 15

16 CONTR. CONCORRENZA / TIMESTAMP gestione richieste lettura e scrittura da parte di T con timestamp ts read(x, ts) write(x, ts) read(x, ts): se ts<max_write(x) allora T viene abortita se ts>max_write(x) allora l operazione viene accettata e max_read(x) max(ts, max_read(x)) write(x, ts): se ts<max_write(x) oppure ts<max_read(x) allora T viene abortita altrimenti l operazione viene accettata e max_write(x) ts gestione corretta nell ipotesi di commit proiezione (non si ha isolamento) Transazioni 31 Confronto CS: insieme delle storie conflict-serializzabili 2PL: insieme delle storie ottenibili con il protocollo 2PL TS: insieme delle storie ottenibili con il controllo basato su timestamp CS 2PL TS Transazioni 32 16

17 Confronto S: r 1 (x) w 1 (x) r 2 (x) w 2 (x) r 3 (y) w 1 (y) S è conflict-serializzabile, equivalente alla storia seriale T 3 T 1 T 2 S non è 2PL perché T 1 ha rilasciato x (altrimenti T 2 non avrebbe potuto leggerlo) e poi ha chiesto un lock in scrittura su Y T 1 T 2 T 3 Transazioni 33 Confronto S: r 1 (x) w 2 (x) r 3 (x) r 1 (y) w 2 (y) r 1 (v) w 3 (v) r 4 (v) w 4 (y) w 5 (y) non 2PL S è conflict-serializzabile, equivalente alla storia seriale T 1 T 2 T 3 T 4 T 5 S è compatibile con il protocollo basato su timestamp S non è 2PL perché T 2 ha rilasciato x (altrimenti T 3 non avrebbe potuto leggerlo) e poi ha chiesto un lock in scrittura su Y T 1 T 2 T 5 T 4 T 3 Transazioni 34 17

18 Confronto S: r 1 (x) w 1 (x) r 2 (x) w 2 (x) S è 2PL e anche TS S: r 2 (x) w 2 (x) r 1 (x) w 1 (x) S è 2PL ma chiaramente non è TS Transazioni 35 STALLO Con i protocolli basati su lock possono verificarsi situazioni di stallo Esempio di stallo r_lk 1 (x) r_lk 2 (y) r 1 (x) r_ 2 (y) w_lk 1 (y) w_lk 2 (x) La transazione T 1 chiede un lock in scrittura su y e viene messa in attesa perché y è bloccato da T 2 La transazione T 2 chiede un lock in scrittura su x e viene messa in attesa perché x è bloccato da T 1 Nessuna delle due transazioni può andare avanti La probabilità che si verifichi uno stallo è bassa ma non nulla In caso di stallo il grafo delle attese presenta un ciclo T 1 attende che T 2 rilasci y e T 2 attende che T 1 rilasci x y T 1 T 2 x Transazioni 36 18

19 Tecniche per lo stallo: timeout Viene stabilito un limite per il tempo che una transazione può stare in attesa di un lock, scaduto il timeout viene mandata in abort Importanza della scelta di un intervallo adeguato Troppo corto: abort non necessario perché in realtà invece di uno stallo si aveva un attesa lunga Troppo lungo: permanenza del sistema in stallo prima di prendere provvedimenti Tecnica semplice Tecnica spesso usata dai DBMS commerciali Transazioni 37 Tecniche per lo stallo: prevenzione Con questo tipo di tecniche si seguono dei protocolli che fanno sì che non possa verificarsi uno stallo Cfr. sistemi operativi: tecniche che impediscono una delle quattro condizioni necessarie per lo stallo Acquisendo all inizio tutte le risorse necessarie, si nega la condizione possesso e attesa Con il protocollo che vedremo basato sui timestamp, si impediscono cicli nel grafo delle attese Tecnica A: richiedere inizialmente tutti i lock necessari Non è facile da utilizzare perché non sempre le transazioni conoscono a priori tutti i dati che hanno bisogno di bloccare Transazioni 38 19

20 Tecniche per lo stallo: prevenzione basata su timestamp Ad ogni T viene assegnato un timestamp, sia i il timestamp assegnato a T i : T i aspetta per un dato posseduto da T j se e solo se i <j, cioè se e solo se T i è più vecchia di T j altrimenti T i viene mandata in abort e fatta ripartire con lo stesso timestamp Delle due transazioni, viene eventualmente mandata in abort la più giovane (si suppone che abbia fatto meno lavoro da disfare) È una tecnica senza preemption (T j mantiene il dato che ha bloccato) Ci sono protocolli simili che invece effettuano una preemption Ripartire con lo stesso timestamp invecchia la transazione, e impedisce che in caso di conflitto sia sempre quella ad andare in abort Si può facilmente dimostrare che con questa tecnica il grafo delle attese non ha mai cicli (si dimostra per assurdo) Tecnica non usata nei DBMS commerciali: troppi abort Transazioni 39 Tecniche per lo stallo: rilevamento Ricerca di un ciclo nel grafo delle attese / Analisi delle tabelle di lock Es: Lock assegnati a T Transazioni in attesa di lock lock Trans Trans lock r_l(x) T i T k r_l(y) w_l(y) T i T i w_l(u) w_l(z) T j r_l(u) T k Esaminando le due tabelle si può verificare se siamo in stallo o no Quando effettuare il controllo Periodicamente Quando scade un timeout Tecnica usata da alcuni DBMS commerciali Transazioni 40 20

21 GESTIONE DEI BUFFER BUFFER: area in memoria centrale spartita tra le transazioni area buffer organizzata in pagine dim. pagina dim. blocco I/O disco utilizzato dal sistop lettura del dato x da parte della transazione T: determinazione file e blocco-disco B dove x è memorizzato controllo se B è in una pagina P di BUFFER SI: T legge da P NO: il sistema legge B in una pagina P di BUFFER; T legge da P scrittura del dato y da parte della transazione T: determinazione file e blocco-disco B dove y è memorizzato controllo se B è in una pagina P di BUFFER SI: T scrive su P NO: il sistema legge B in una pagina P di BUFFER; T scrive su P scrittura di P su disco (questa scrittura può essere differita) numero di pagine è limitato: politica di sostituzione Transazioni 41 Buffer read(x) x: write(y) y: buff_1 buff_1 x x y y buff_k buff_k Transazioni 42 21

22 STRUTTURE DEL BUFFER MANAGER tabella allocazione pagine: < pagina-buffer, file, blocco-disco, valida, libera> (file, blocco-disco) pagina database Pagina-buffer valida/non valida valida: pagina in uso ad una transazione non valida: pagina non in uso ad alcuna transazione In genere con una richiesta di lettura si ha una pagina in uso ad una transazione, quindi valida; quando la transazione non la usa più, la rilascia e diventa non valida Pagina-buffer libera/non libera libera: pagina che può essere usata per leggere un nuovo blocco non libera: pagina che deve essere copiata su disco prima di usarla per leggere un nuovo blocco Transazioni 43 PRIMITIVE DEL BUFFER MANAGER Operazione fetch ( o fix, use) Viene usata per leggere una pagina in un buffer operazione force su pagina P del buffer richiesta da T: la pagina P viene copiata su disco e T viene sospesa fino al termine della scrittura operazione flush (su pag P del buffer) del buffer manager: la pagina P non più valida, quindi non più usata da una transazione, (e ancora non libera) viene copiata su disco Questa scrittura è asincrona rispetto all esecuzione delle transazioni Transazioni 44 22

23 POLITICHE GESTIONE PAGINE BUFFER steal / no-steal steal: nella sostituzione delle pagine, la vittima può essere anche una pagina valida prima di essere sostituita deve essere copiata su disco se la transazione, che aveva in uso la pagina, successivamente va in abort, deve essere ripristinato il valore iniziale della pagina del database no-steal: nella sostituzione delle pagine la vittima non può essere una pagina valida force / no-force force: tutte le pagine attive di una transazione T vengono copiate su disco quando T effettua il commit no-force: la scrittura delle pagine su disco viene gestita dal buffer manager in modo asincrono rispetto alla transazione (la scrittura può essere effettuata dopo il commit) DBMS: no-steal/ no-force coppia molto frequente Transazioni 45 MALFUNZIONAMENTI E AFFIDABILITA fallimento di transazione: nessuna perdita di dati né in memoria centrale né su disco interruzione da parte dell utente errore di esecuzione violazione vincoli integrità tentativo accedere a dati protetti situazioni di stallo fallimento di sistema (guasto di sistema): perdita del contenuto della memoria centrale anomalia hard/sw con interruzione di tutte le transazioni attive caduta di tensione disastro / crash (guasto di dispositivo): malfunzionamento che danneggia il disco Transazioni 46 23

24 Local Recovery Manager e Buffer Manager Main memory Local Recovery Manager Database stabile read write fetch flush Database Buffer Manager read write Database Buffers o Database volatile Transazioni 47 AFFIDABILITA il controllo dell affidabilità garantisce le proprietà di atomicità e persistenza delle transazioni atomicità: se la transazione va in abort o si ha un guasto di sistema prima del commit, la transazione viene disfatta (undo) persistenza: se una transazione ha effettuato il commit ma non si è sicuri dei suoi risultati sul database, la transazione viene rifatta (redo) memoria stabile: resistente ai guasti (non subisce crash) unità a nastro disco + unità a nastro due dischi a specchio protezione da malfunzionamenti: ridondanza dei dati log (giornale): file su cui vengono registrate le azioni eseguite dalle transazioni checkpoint dump Transazioni 48 24

25 DO / UNDO / REDO <scrittura pag. modificata>; commit fallimento di transazione DB modificato vecchi valori UNDO DB senza modifiche commit; <scrittura pag. modificata> fallimento di sistema DB senza modifiche nuovi valori REDO DB modificato Transazioni 49 STRUTTURA DEL LOG file sequenziale su memoria stabile in cui vengono registrate le azioni effettuate sul database nell ordine temporale di esecuzione azioni eseguite dal sistema dump checkpoint azioni eseguite dalle transazioni Begin (T) Commit (T) Abort (T) Update (T, Object, Before State, After State) Insert (T, Object, After State) Delete (T, Object, Before State) CK... B(T 1 ) I(T 1,O x, AS) C(T 2 ) U(T 1, O y, BS, AS) C(T 1 ) Transazioni 50 25

26 USO DEL LOG undo e redo utilizzano BS e AS (Before State e After State) idempotenza: undo(azione)=undo(undo(azione)) redo(azione)=redo(redo(azione)) i record di log vengono scritti sequenzialmente su un buffer che generalmente viene copiato sul file log quando è pieno Transazioni 51 Logging Main memory LOG stabile read write Local Recovery Manager LOG buffers Database stabile read write fetch flush Database Buffer Manager read write read write Database Buffers o Database volatile Transazioni 52 26

27 CHECKPOINT / DUMP checkpoint: operazione fatta periodicamente dal sistema per limitare la parte di giornale da scandire in caso di malfunzionamenti rifiuta una nuova operazione di commit scrive su disco le pagine P del buffer modificate, relative a transazioni che hanno effettuato un commit scrive nel log un record checkpoint(t 1, T n ) che indica le transazioni attive in quel momento dopo un checkpoint le modifiche sul database effettuate in precedenza da transazioni terminate sono sicuramente su disco dump: copia completa del database rifiuta l attivazione di nuove transazioni attende il completamento delle transazioni attive scrive su disco le pagine P del buffer modificate fa una copia del database (backup) scrive nel log un record dump Transazioni 53 GESTIONE SCRITTURA SUL LOG regola WAL, Write Ahead LOG: il Before State di un record di log deve essere scritto sul file log (in memoria stabile) prima che la modifica sull oggetto venga scritta sul database su disco si è sicuri che quando il nuovo valore viene scritto su disco il vecchio valore sia stato salvato nel log, così si può eventualmente recuperarlo regola CP, Commit-Precedenza: l After State di un record di log deve essere scritto sul file log (in memoria stabile) prima del commit se una transazione effettua il commit, ma le sue pagine modificate non sono state ancora riportate su disco dal buffer manager, e si verifica un malfunzionamento di sistema, la transazione deve essere rifatta con la regola Commit- Precedenza si è sicuri di ritrovare i dati modificati (After State) nel log Transazioni 54 27

28 GESTIONE SCRITTURA LOG E DATABASE schema no-redo la scrittura del record log precede la scrittura sulla base di dati tutte le pagine modificate vengono copiate su disco prima della scrittura del record commit sul log schema no-undo la scrittura del record log precede la scrittura sulla base di dati tutte le pagine modificate vengono copiate su disco dopo la scrittura del record commit sul log schema undo/redo (DB2, ORACLE) le scritture sul database su disco possono avvenire in un momento qualunque rispetto alla scrittura del commit sul log i tre schemi rispettano le regole WAL e CP, scrivono il commit su disco in modo sincrono, si differenziano per il momento in cui scrivono sul database su disco Transazioni 55 GESTIONE GUASTI MODELLO FAIL-STOP (guasto: evento istantaneo) guasto di sistema arresto di tutte le transazioni ripresa a caldo (warm restart) del sistema guasto di dispositivo arresto di tutte le transazioni ripresa a freddo (cold restart) del sistema Transazioni 56 28

29 WARM RESTART CKP guasto t T1 T2 T3 T4 T5 UNDO: T3 T5 completamente REDO: T2 T4 Si ricordi che il checkpoint copia su disco le scritture effettuate dalle transazioni andate in commit Transazioni 57 WARM RESTART 1. si accede al log e lo si percorre all indietro fino all ultimo ckp 2. si costruiscono gli insiemi UNDO_set e REDO_set 3. si disfano le transazioni di UNDO_set ripercorrendo all indietro il log fino al loro inizio (anche prima di ckp) 4. si rifanno le transazioni in REDO_set rifacendo le loro azioni nell ordine in cui compaiono nel log 2.1 UNDO_set:= transazioni elencate nel ckp record 2.2 REDO_set:= 2.3 si scandisce il log: se Begin(T) allora UNDO_set:= UNDO_set T se Commit(T) allora UNDO_set:= UNDO_set - T REDO_set:= REDO_set T Transazioni 58 29

30 COLD RESTART si ricopia il database (la parte deteriorata) dal dump più recente si accede all ultimo record dump sul log si scandisce il log rifacendo tutte le azioni effettuate sul database dalle transazioni andate in commit si effettua una ripartenza a caldo Transazioni 59 30

Esecuzione concorrente di transazioni

Esecuzione concorrente di transazioni Esecuzione concorrente di transazioni A L B E R T O B E L U S S I P A R T E I I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Tecniche applicate nei DBMS Le tecniche per il controllo della concorrenza che

Dettagli

La durability. I dati modificati da una transazione che ha fatto il commit non devono mai essere persi. La durability consente di reagire a:

La durability. I dati modificati da una transazione che ha fatto il commit non devono mai essere persi. La durability consente di reagire a: La durability Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 2 Appunti dalle lezioni Durability (Persistenza) I dati modificati da una transazione che ha fatto il commit non

Dettagli

ARCHITETTURA DI UN B.D.M.S. Parte III Il Controllo di Affidabilità

ARCHITETTURA DI UN B.D.M.S. Parte III Il Controllo di Affidabilità ARCHITETTURA DI UN B.D.M.S. Parte III Il Controllo di Affidabilità Michele de Nittis Generalità Il controllo di affidabilità (CA) è quel servizio che provvede a garantire le proprietà di atomicità e persistenza

Dettagli

GESTIONE DELLE TRANSAZIONI

GESTIONE DELLE TRANSAZIONI GESTIONE DELLE TRANSAZIONI Transazioni! L esecuzione concorrente dei programmi utente è essenziale per le buone prestazioni del DBMS! Poiché gli accessi al disco sono frequenti e relativamente lenti, è

Dettagli

Tecnologia di un DBMS

Tecnologia di un DBMS Tecnologia di un DBMS Atzeni, Ceri, Paraboschi, Torlone Basi di Dati: Architetture e Linee di Evouzione McGraw-Hill Italia Capitolo 2 Introduzione Update CC set saldo = saldo 25 where ccnum = 26488 Update

Dettagli

Intoduzione alle transazioni e alle proprieta ACID delle transazioni

Intoduzione alle transazioni e alle proprieta ACID delle transazioni Basi di Dati Complementi Parte 2: Tecnologie per MS Parte 2.4: Introduzione alle transazioni e Intoduzione alle transazioni e alle proprieta ACID delle transazioni @ Carlo Batini 2006 1 @ Carlo Batini

Dettagli

Funzioni del DBMS. Transazioni. Transazioni: esempio. Parte VII. Gestione delle transazioni

Funzioni del DBMS. Transazioni. Transazioni: esempio. Parte VII. Gestione delle transazioni Funzioni del DBMS Parte VII Gestione delle transazioni Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VII - 1 Gestione dei dati: cura la memorizzazione permanente dei dati ed il loro accessso Gestione

Dettagli

Parte VII Gestione delle transazioni

Parte VII Gestione delle transazioni Parte VII Gestione delle transazioni Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VII - 1 Funzioni del DBMS Gestione dei dati: cura la memorizzazione permanente dei dati ed il loro accessso Gestione

Dettagli

Le transazioni. Update CC set saldo = saldo + 25 where ccnum = Update CC set saldo = saldo 25 where ccnum = 26488

Le transazioni. Update CC set saldo = saldo + 25 where ccnum = Update CC set saldo = saldo 25 where ccnum = 26488 Le transazioni Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 2 (paragrafo 2.1) Appunti dalle lezioni Transazione ContiCorrenti(ccnum,saldo) Update CC set saldo = saldo +

Dettagli

Sistemi informativi e basi di dati. Il modello relazionale. SQL come DCL Utilizzo di un DBMS Reale. Forme normali. Basi di dati direzionali

Sistemi informativi e basi di dati. Il modello relazionale. SQL come DCL Utilizzo di un DBMS Reale. Forme normali. Basi di dati direzionali Le transazioni Appunti dalle lezioni SQL come DDL Sistemi informativi e basi di dati La Progettazione Concettuale SQL come DML Il modello relazionale La Progettazione Logica SQL come DCL Utilizzo di un

Dettagli

Esempio di sistema informativo

Esempio di sistema informativo Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2009-2010 2010 Docente: Gigliola Vaglini Docente laboratorio: Luca Martini Esempio di sistema informativo GESTIONE

Dettagli

Parte 3 Gestione del buffer e gestione del recovery

Parte 3 Gestione del buffer e gestione del recovery Gestione dei dati Parte 3 Gestione del buffer e gestione del recovery Maurizio Lenzerini, Riccardo Rosati Facoltà di Ingegneria Sapienza Università di Roma Anno Accademico 2012/2013 http://www.dis.uniroma1.it/~rosati/gd/

Dettagli

Tecnologia delle Basi di Dati

Tecnologia delle Basi di Dati Basi di Dati Prof. Alfredo Cuzzocrea Università degli Studi di Trieste Tecnologia delle Basi di Dati Credits to: Dr. A. Poggi UniRoma1 Transazioni Una transazione è una unità elementare di lavoro svolta

Dettagli

Il linguaggio SQL: transazioni

Il linguaggio SQL: transazioni Il linguaggio SQL: transazioni Sistemi Informativi T Versione elettronica: 04.8.SQL.transazioni.pdf Cos è una transazione? Una transazione è un unità logica di elaborazione che corrisponde a una serie

Dettagli

Transazioni. Transazioni. Stati di una transazione. Transazioni

Transazioni. Transazioni. Stati di una transazione. Transazioni Transazioni Antonella Poggi Domenico Lembo Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico 2009-2010 Transazioni Una transazione

Dettagli

Gestione delle transazioni. Basi di dati. Elena Baralis 2007 Politecnico di Torino 1 D B M G D B M G 2. Linguaggio SQL: costrutti avanzati

Gestione delle transazioni. Basi di dati. Elena Baralis 2007 Politecnico di Torino 1 D B M G D B M G 2. Linguaggio SQL: costrutti avanzati Linguaggio SQL: costrutti avanzati D B M G Introduzione Transazioni in SQL Proprietà delle transazioni D B M G 2 2007 Politecnico di Torino 1 D B M G Esempio applicativo Operazioni bancarie operazione

Dettagli

SQL Transazioni. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

SQL Transazioni. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni SQL Transazioni Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Transazioni Le Transazioni sono unità elementari di lavoro sulla base di dati di cui si vogliono garantire proprietà di

Dettagli

Basi di Dati Complementi. 2. Tecnologie per DBMS -2.4 Introduzione alle Transazioni e Buffer Manager

Basi di Dati Complementi. 2. Tecnologie per DBMS -2.4 Introduzione alle Transazioni e Buffer Manager Basi di Dati Complementi 2. Tecnologie per DBMS -2.4 Introduzione alle Transazioni e Buffer Manager Andrea Maurino 2007 2008 Parte del materiale è stato fornito dal prof. Batini Fonti Libro Architetture

Dettagli

Transazioni. Antonella Poggi. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza

Transazioni. Antonella Poggi. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Transazioni Antonella Poggi Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi sono stati prodotti sulla

Dettagli

Recovery manager Gestore della affidabilità

Recovery manager Gestore della affidabilità Riferimenti Basi di Dati Complementi Parte 2: Tecnologie per DBMS Parte 2.5: Recovery Manager Trasparenze parte Recovery manager Basi di Dati Atzeni et al. - Capitolo 2.1, 2.2 Anche: Garcia Molina, Ullman,

Dettagli

Basi di Dati: Complementi Docente: Prof. Pierangela Samarati

Basi di Dati: Complementi Docente: Prof. Pierangela Samarati Basi di Dati: Complementi Docente: Prof. Pierangela Samarati Appello di Maggio online 22 Maggio 2010 Tempo a disposizione 2:00h Soluzioni Domanda 1) Elencare e descrivere in modo completo le proprietà

Dettagli

Esecuzione concorrente di transazioni

Esecuzione concorrente di transazioni Esecuzione concorrente di transazioni A L B E R T O B E L U S S I P A R T E I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Osservazione Per gestire con prestazione accettabili il carico di lavoro tipico

Dettagli

Unità D3. Sicurezza nelle basi di dati. Sicurezza e concorrenza nelle basi di dati. Controllo accesso. Protezione e integrità dati

Unità D3. Sicurezza nelle basi di dati. Sicurezza e concorrenza nelle basi di dati. Controllo accesso. Protezione e integrità dati Sicurezza nelle basi di dati Unità D3 Sicurezza e concorrenza nelle basi di dati Una base di dati è sicura quando soddisfa i seguenti parametri: regola l accesso ai dati protetti; evita la modifica o la

Dettagli

Esecuzione concorrente di transazioni

Esecuzione concorrente di transazioni Esecuzione concorrente di transazioni A L B E R T O B E L U S S I P A R T E I I A N N O A C C A D E M I C O 2 0 1 1-2 0 1 2 Tecniche applicate nei DBMS Le tecniche per il controllo della concorrenza che

Dettagli

6.6 Regioni Critiche Condizionali. 6.9 Transazioni Atomiche Modello del Sistema Transazionale

6.6 Regioni Critiche Condizionali. 6.9 Transazioni Atomiche Modello del Sistema Transazionale 45 6.6 Regioni Critiche Condizionali 6.7 Monitor Costrutti linguistici inventati per evitare i problemi di programmazione che facilmente si fanno con i semafori Attenzione con i thread: in tale ambiente

Dettagli

Basi di dati Architetture e linee di evoluzione. Gestione delle transazioni. Sistema di Gestione di Basi di Dati. Le Basi di Dati sono GRANDI

Basi di dati Architetture e linee di evoluzione. Gestione delle transazioni. Sistema di Gestione di Basi di Dati. Le Basi di Dati sono GRANDI Sistema di Gestione di Basi di Dati Basi di dati Architetture e linee di evoluzione Capitolo 2 Gestione delle transazioni i Un Sistema di Gestione di Basi di Dati (DataBase Management System - DBMS) è

Dettagli

Parte 2 Esercitazione sulla gestione della concorrenza

Parte 2 Esercitazione sulla gestione della concorrenza Gestione dei dati Parte 2 Esercitazione sulla gestione della concorrenza Maurizio Lenzerini, Riccardo Rosati Facoltà di Ingegneria Sapienza Università di Roma Anno Accademico 2012/2013 http://www.dis.uniroma1.it/~rosati/gd/

Dettagli

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

Tecnologia di un Database Server (centralizzato) Gestione dell affidabilità Affidabilità Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Gestione dell affidabilità Angelo Montanari Dipartimento di Matematica e Informatica Università

Dettagli

Sistemi Informativi: transazioni

Sistemi Informativi: transazioni Sistemi Informativi: transazioni 1 Progettazione delle transazioni Transazione Unita logica di lavoro Transizione tra due stati consistenti del DB Atomica: tutti i risultati registrati assieme oppure nessuno

Dettagli

L evoluzione della specie

L evoluzione della specie DBMS Data Base Management System Dai dati grezzi ad informazioni strutturate 1 L evoluzione della specie Strumenti di Business Intelligence Data Warehouse Data Mining Data Base Management System (DBMS)

Dettagli

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

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Gestione delle transazioni Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Transazioni v L esecuzione concorrente dei programmi utente è essenziale per le buone prestazioni del DBMS Poiché

Dettagli

Basi di dati II. Gestione delle transazioni LE TRANSAZIONI. Definizione di transazione. Differenza fra applicazione e transazione

Basi di dati II. Gestione delle transazioni LE TRANSAZIONI. Definizione di transazione. Differenza fra applicazione e transazione Basi di dati II 2- LE TRANSAZIONI 1 2 Definizione di transazione Differenza fra applicazione e transazione Transazione: parte di programma caratterizzata da un inizio (begin-transaction, start transaction

Dettagli

Basi di Dati e Sistemi Informativi. Architetture Distribuite per Basi di Dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Basi di Dati e Sistemi Informativi. Architetture Distribuite per Basi di Dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Architetture Distribuite per Basi di Dati Giuseppe Loseto Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Architetture Distribuite Parallelismo: usato per ottimizzare le prestazioni di componenti/sistemi

Dettagli

Azioni atomiche. Definizioni. Proprietà

Azioni atomiche. Definizioni. Proprietà Azioni atomiche Definizioni Azione atomica: strumento di alto livello per strutturare programmi concorrenti e/o distribuiti, tolleranti a vari tipi di malfunzionamenti; o Realizzata con strumenti linguistici

Dettagli

TRANSAZIONI DISTRIBUITE TRANSAZIONI

TRANSAZIONI DISTRIBUITE TRANSAZIONI TRANSAZIONI DISTRIBUITE Transazioni distribuite Atomicità di una transazione distribuita Protocollo Two-Phase Commit Gestione dell affidabilità Fallimenti durante il 2PC Gestione della concorrenza Serializzabilità

Dettagli

Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Basi Di Dati, Seconda Edizione McGraw-Hill Italia, 1999 Capitolo 9

Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Basi Di Dati, Seconda Edizione McGraw-Hill Italia, 1999 Capitolo 9 Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Basi Di Dati, Seconda Edizione McGraw-Hill Italia, 1999 Capitolo 9 Transazione Insieme ordinato di operazioni di lettura e scrittura su

Dettagli

Sistemi transazionali. sistemi transazionali 1

Sistemi transazionali. sistemi transazionali 1 Sistemi transazionali sistemi transazionali 1 Ricordiamo le principali caratteristiche dei DBMS condivisione dei dati - concorrenza qualità dei dati - integrità efficienza - caricamento, query, sort controllo

Dettagli

Gestione delle transazioni

Gestione delle transazioni Gestione delle transazioni Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: transazioni.pdf Sistemi Informativi L-B Cos è una transazione? Una

Dettagli

Gestione delle transazioni

Gestione delle transazioni Gestione delle transazioni Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: transazioni.pdf Sistemi Informativi L-B Cos è una transazione? Una

Dettagli

Sistemi mono o multiutente. Un criterio per classificare un sistema di basi di dati è il numero degli utenti che possono fruirne simultaneamente.

Sistemi mono o multiutente. Un criterio per classificare un sistema di basi di dati è il numero degli utenti che possono fruirne simultaneamente. TRANSAZIONI Introduzione alla gestione delle transazioni 2 Sistemi mono o multiutente Un criterio per classificare un sistema di basi di dati è il numero degli utenti che possono fruirne simultaneamente.

Dettagli

Serializable Snapshot Isolation (SSI) in PostgreSQL 9.1

Serializable Snapshot Isolation (SSI) in PostgreSQL 9.1 Serializable Snapshot Isolation (SSI) in PostgreSQL 9.1 Marco Nenciarini Italian PostgreSQL Users Group www.itpug.org www.postgresql.org Chi sono? DBA, sviluppatore e sysadmin presso 2ndQuadrant Database

Dettagli

1- AFFIDABILITA. Esercizio n.1

1- AFFIDABILITA. Esercizio n.1 1- AFFIDABILITA Esercizio n.1 Il check-point prevede le seguenti attività (durante le quali non sono ammessi commit e abort): 1. scrittura in memoria stabile (force) di tutte le pagine "sporche" del buffer

Dettagli

CREATE VIEW. CREATE VIEW <nome_vista> AS (SELECT <lista_campi> FROM <lista_tabelle> WHERE <condizione>);

CREATE VIEW. CREATE VIEW <nome_vista> AS (SELECT <lista_campi> FROM <lista_tabelle> WHERE <condizione>); SQL AVANZATO VIEW VISTE UTENTE VIEW (Viste utente) Le VIEW sono tabelle virtuali il cui contenuto (colonne e righe) è definito da una query Le VIEW sono normalmente utilizzate per: analizzare, semplificare

Dettagli

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

Basi di Dati prof. A. Longheu. 5 Progettazione fisica Basi di Dati prof. A. Longheu 5 Progettazione fisica Progettazione Fisica Per effettuare la progettazione fisica, ossia l implementazione reale del modello logico creato nella fase della progettazione

Dettagli

Affidabilità e Concorrenza

Affidabilità e Concorrenza Affidabilità e Concorrenza Affidabilità Resistenza ai guasti Concorrenza Efficienza: più transazioni contemporanee Senza introdurre fenomeni indesiderati 2 Transazione Unità elementare di lavoro Ben formata:

Dettagli

1. in alcuni sistemi si prende nota delle transazioni attive e si rifiutano (momentaneamente) nuovi commit

1. in alcuni sistemi si prende nota delle transazioni attive e si rifiutano (momentaneamente) nuovi commit AFFIDABILITA Esercizio n. 1 Il check-point prevede le seguenti attività (durante le quali non sono ammessi commit e abort): 1. scrittura in memoria secondaria (force) di tutte le pagine "sporche" del buffer

Dettagli

Capitolo 20. I Sistemi Informativi

Capitolo 20. I Sistemi Informativi Capitolo 20 I Sistemi Informativi Il Sistema Informativo È il sistema che gestisce le informazioni che, attualmente, vengono codificate e rappresentate sotto forma di dati, memorizzati su appositi supporti,

Dettagli

Corso di. Basi di Dati I. 10. Esercitazioni in SQL: Complementi

Corso di. Basi di Dati I. 10. Esercitazioni in SQL: Complementi Corso di Basi di Dati 10. Esercitazioni in SQL: Complementi A.A. 2016 2017 Funzioni condizionali Vediamo qualche altro comando utile di SQL. Il comando coalesce ammette come argomento una sequenza di espressioni

Dettagli

Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla. eseguono azioni sulla base di dati stessa.

Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla. eseguono azioni sulla base di dati stessa. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole attive o trigger. Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla base di dati

Dettagli

Corso di. Basi di Dati I. 10. Esercitazioni in SQL: Complementi

Corso di. Basi di Dati I. 10. Esercitazioni in SQL: Complementi Corso di Basi di Dati 10. Esercitazioni in SQL: Complementi A.A. 2016 2017 Funzioni condizionali Vediamo qualche altro comando utile di SQL. Il comando coalesce ammette come argomento una sequenza di espressioni

Dettagli

Gestione delle transazioni

Gestione delle transazioni Concetto di transazione Una transazione è vista come un'unità logica di elaborazione : per consentire transazioni concorrenti e per garantire la base di dati da malfunzionamenti sono necessari opportuni

Dettagli

Capitolo 6. Esercizio 6.1

Capitolo 6. Esercizio 6.1 Capitolo 6 Esercizio 6.1 Si consideri la base dati: PRODUZIONE (NumeroSerie, TipoParte, Modello, Qta, Macchina) PRELIEVO (NumeroSerie, Lotto, Cliente, Venditore, Ammontare) CLIENTE (Nome, Città Indirizzo)

Dettagli

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

Transazioni. Capitolo 13. Scrittura immediata e scrittura differita. Concorrenza in un DBMS. Una transazione. Gestione delle transazioni Capitolo 13 Gestione delle transazioni Transazioni L esecuzione concorrente dei programmi utente è essenziale per le buone prestazioni del DBMS Poiché gli accessi al disco sono frequenti e relativamente

Dettagli

Indicare se i seguenti schedule possono produrre anomalie; i simboli ci e ai indicano l esito (commit o abort) della transazione.

Indicare se i seguenti schedule possono produrre anomalie; i simboli ci e ai indicano l esito (commit o abort) della transazione. Capitolo 2 Esercizio 2.1 Indicare se i seguenti schedule possono produrre anomalie; i simboli ci e ai indicano l esito (commit o abort) della transazione. 1. r1(x), w1(x), r2(x), w2(y), a1, c2 2. r1(x),

Dettagli

Cognome Nome Matricola Ordin.

Cognome Nome Matricola Ordin. Basi di dati II, primo modulo Tecnologia delle basi di dati Prova parziale 27 marzo 2009 Compito A Scrivere il nome su questo foglio e su quello protocollo. Rispondere su questo foglio, eventualmente con

Dettagli

Gestione della Concorrenza

Gestione della Concorrenza Corso di Complementi di Basi di Dati Gestione della Concorrenza Angelo Montanari 1 Anomalie delle transazioni concorrenti -1 Perdita di aggiornamento Lettura sporca Aggiornamento fantasma 2 2 Anomalie

Dettagli

BASI DI DATI TECNOLOGIA DEI SERVER PER BASI DI DATI

BASI DI DATI TECNOLOGIA DEI SERVER PER BASI DI DATI BASI DI DATI TECNOLOGIA DEI SERVER PER BASI DI DATI Prof. Fabio A. Schreiber Dipartimento di Elettronica e Informazione Politecnico di Milano tratto da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati

Dettagli

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Giuseppe Loseto Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Struttura DBMS Gestore delle interrogazioni Decide le strategie di accesso ai dati per rispondere alle interrogazioni Gestore

Dettagli

Componenti di un DBMS

Componenti di un DBMS Componenti di un DBMS Come fa un DBMS a garantire le proprietà ACIDe di una transazione? Vediamo i componenti principali dal più interno a quello di più alto livello: Controllore di Concorrenza Gestore

Dettagli

Basi di Dati: Strutture ed Algoritmi Appelli del 2001

Basi di Dati: Strutture ed Algoritmi Appelli del 2001 Basi di Dati: Strutture ed Algoritmi Appelli del 2001 Appello del 15.1.2001 1. Si considerino la base di dati: Studenti(Matricola, Nome, Area, Altro) Frequenze(Matricola, Codice, Semestre) Corsi(Codice,

Dettagli

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

Basi di Dati e Sistemi Informativi. Le Transazioni. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Giuseppe Loseto Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Struttura DBMS Gestore delle interrogazioni Decide le strategie di accesso ai dati per rispondere alle interrogazioni Gestore

Dettagli

06 Gestione delle transazioni

06 Gestione delle transazioni 06 Gestione delle transazioni La transazione fornisce un meccanismo per descrivere le unità logiche di elaborazione delle basi di dati. I sistemi di gestione delle transazioni sono sistemi con grandi basi

Dettagli

Gestione delle transazioni. Concetto di transazione

Gestione delle transazioni. Concetto di transazione Dario Maio http://www.csr.unibo.it/~maio/ dmaio@deis.unibo.it Concetto di transazione Una transazione è un unità logica di elaborazione che corrisponde a un insieme di operazioni fisiche elementari (letture/scritture)

Dettagli

Gestione delle transazioni

Gestione delle transazioni Funzionalità avanzate dei DBMS Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna 1 Gestione delle transazioni Per approfondimenti: Ciaccia, Maio. Lezioni di basi di dati: pp 439-461

Dettagli

Basi di dati II compito A 19 settembre 2018 Tempo a disposizione: un ora e quarantacinque minuti. Cognome Nome Matricola

Basi di dati II compito A 19 settembre 2018 Tempo a disposizione: un ora e quarantacinque minuti. Cognome Nome Matricola Tempo a disposizione: un ora e quarantacinque minuti. Cognome Nome Matricola Domanda 1 (20%) Considerare lo scenario a fianco in cui tre client diversi inviano richieste ad un gestore della concorrenza.

Dettagli

Il linguaggio SQL: transazioni

Il linguaggio SQL: transazioni Il linguaggio SQL: transazioni Sistemi Informativi T Versione elettronica: 04.8.SQL.transazioni.pdf Cos è una transazione? Una transazione è un unità logica di elaborazione che corrisponde a una serie

Dettagli

Gestione del Buffer. Gestione delle Transazioni. Il buffer. Il gestore del buffer 2. Il gestore del buffer 1

Gestione del Buffer. Gestione delle Transazioni. Il buffer. Il gestore del buffer 2. Il gestore del buffer 1 Gestione delle Transazioni Parte terza Argomenti: Gestore del Buffer,Ripristino, File di Log, Protocolli per il ripristino, Savepoint, Shadow Pages, Gestione del Buffer Obiettivi: Minimizzare gli accessi

Dettagli

Basi di dati II 21 febbraio 2017 Tempo a disposizione: un ora e quarantacinque minuti.

Basi di dati II 21 febbraio 2017 Tempo a disposizione: un ora e quarantacinque minuti. Tempo a disposizione: un ora e quarantacinque minuti. Cognome Nome Matricola Domanda 1 (15%) Considerare un sistema con dischi con N = 1000 blocchi per traccia tempo medio di posizionamento della testina

Dettagli

Basi di dati II, primo modulo 24 giugno 2011 Compito breve

Basi di dati II, primo modulo 24 giugno 2011 Compito breve Basi di dati II, primo modulo 24 giugno 2011 Compito breve Cognome Nome Matricola Domanda 1 Come noto, si stanno diffondendo applicazioni nelle quali è necessaria una grande scalabilità e che vengono quindi

Dettagli

ARCHITETTURA DEI DBMS 1

ARCHITETTURA DEI DBMS 1 ARCHITETTURA DEI DBMS 1 DBMS MACCHINA LOGICA GESTORE INTERROGAZIONI COMANDI SQL GESTORE COMANDI DDL OTTIMIZZATORE GESTORE PIANI DI ACCESSO GESTORE COMANDI DDL DATI, INDICI CATALOGO, GIORNALE MEMORIA PERMANENTE

Dettagli

Basi di dati vol.2 Capitolo 2 Gestione delle transazioni 20/05/2007

Basi di dati vol.2 Capitolo 2 Gestione delle transazioni 20/05/2007 Basi di dati vol.2 Capitolo 2 Gestione delle transazioni 20/05/2007 1 DEFINIZIONE DI TRANSAZIONE Transazione: parte di programma caratterizzata da un inizio (begin-transaction, start transaction in SQL,

Dettagli

Transazioni. Transazioni. Transazioni. Definizione di una transazione. Transazione

Transazioni. Transazioni. Transazioni. Definizione di una transazione. Transazione Transazioni Transazioni Per mantenere le informazioni consistenti è necessario controllare opportunamente le sequenze di accessi e aggiornamenti ai dati Gli utenti interagiscono con la base di dati attraverso

Dettagli

8 Tecniche di recovery

8 Tecniche di recovery 8 Tecniche di recovery Se viene sottomessa una transazione T, o tutte le operazioni di T sono completate ed il loro effetto è registrato permanentemente nel DB, o T non ha nessun effetto né sul DB né su

Dettagli

L'esecuzione concorrente è essenziale per garantire buone prestazioni nei database, poichè i dischi sono lenti ed è bene tenere la CPU impegnata.

L'esecuzione concorrente è essenziale per garantire buone prestazioni nei database, poichè i dischi sono lenti ed è bene tenere la CPU impegnata. Transazioni L'esecuzione concorrente è essenziale per garantire buone prestazioni nei database, poichè i dischi sono lenti ed è bene tenere la CPU impegnata. Una transazione è una astrazione per un DBMS

Dettagli

BASI DI DATI DISTRIBUITE. Esercizio n. 1 Si consideri la base dati:

BASI DI DATI DISTRIBUITE. Esercizio n. 1 Si consideri la base dati: BASI DI DATI DISTRIBUITE Esercizio n. 1 Si consideri la base dati: PRODUZIONE (NumeroSerie, TipoParte, Modello, Qta, Macchina) PRELIEVO (NumeroSerie, Lotto, Cliente, Venditore, Ammontare) CLIENTE (Nome,

Dettagli

Esercizio. 11. U(T4,O6,B4,A5) 12. I(T4,O7,A6) 13. U(T4,O2,B5,A7) 14. C(T3) 15. I(T2,O8,A9) 16. A(T1) 17. U(T4,O3,B7,A10) 18.

Esercizio. 11. U(T4,O6,B4,A5) 12. I(T4,O7,A6) 13. U(T4,O2,B5,A7) 14. C(T3) 15. I(T2,O8,A9) 16. A(T1) 17. U(T4,O3,B7,A10) 18. Esercizi d esame Esercizio Dato il seguente log 1. B(T1) 2. U(T1,O1,B1,A1) 3. B(T2) 4. I(T1,O2,A2) 5. B(T3) 6. D(T3,O3,B2) 7. U(T2,O4,B3,A3) 8. CK(T1,T2,T3) 9. I(T3,O5,A4) 10.B(T4) 11. U(T4,O6,B4,A5) 12.

Dettagli

Esempio di sistema informativo

Esempio di sistema informativo Basi di dati vol.2 Capitolo 2 Gestione delle transazioni 26/05/2005 Esempio di sistema informativo GESTIONE IMPIANTI IMMISSIONE DI ORDINI DI SERVIZIO CLIENTI GESTIONE ELENCHI ABBONATI GESTIONE RETE AMMINISTRAZIONE

Dettagli

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

Transazioni. Architettura di un DBMS. Utente/Applicazione. transazioni. Transaction Manager. metadati, statistiche. Query/update Query plan Execution Engine richieste di indici, record e file Index/file/record Manager comandi su pagine Query Compiler Buffer Manager Lettura/scrittura pagine Architettura di un DBMS Utente/Applicazione

Dettagli

Il linguaggio SQL: transazioni

Il linguaggio SQL: transazioni Il linguaggio SQL: transazioni Sistemi Informativi T Versione elettronica: 04.8.SQL.transazioni.pdf Esecuzione seriale di transazioni Un DBMS, dovendo supportare l esecuzione di diverse transazioni che

Dettagli

Basi di dati II Esame 5 luglio 2017 Tempo a disposizione: un ora e quindici minuti per la prova breve e due ore e trenta minuti per la prova completa.

Basi di dati II Esame 5 luglio 2017 Tempo a disposizione: un ora e quindici minuti per la prova breve e due ore e trenta minuti per la prova completa. Basi di dati II Esame 5 luglio 2017 Tempo a disposizione: un ora e quindici minuti per la prova breve e due ore e trenta minuti per la prova completa. Cognome Nome Matricola Domanda 1 (15% per la prova

Dettagli

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative all amministrazione di un condominio:

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative all amministrazione di un condominio: NOME COGNOME MATRICOLA ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative all amministrazione di un condominio: APPARTAMENTO(NumeroInterno, MetriQuadri, SpeseCondominio,

Dettagli

Cap. 7 -Trigger e loro uso

Cap. 7 -Trigger e loro uso 1 SOMMARIO 2 Introduzione... 3 Definizione standard di trigger... 10 Cap. 7 -Trigger e loro uso Uso dei trigger e integrità referenziale... 18 Comportamento attivo delle BD Si realizza disponendo di un

Dettagli

Linguaggio SQL: costrutti avanzati

Linguaggio SQL: costrutti avanzati Linguaggio SQL: costrutti avanzati Gestione delle transazioni Introduzione Transazioni in SQL Proprietà delle transazioni 2 Pag. 1 1 Gestione delle transazioni Esempio applicativo Operazioni bancarie operazione

Dettagli

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

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)

Dettagli

ARCHITETTURA DEI DBMS

ARCHITETTURA DEI DBMS ARCHITETTURA DEI DBMS Macchina logica: gestore comandi SQL Comandi SQL Gestore Comandi DDL Gestore interrogazioni Ottimizzatore Gestore piani di accesso Gestore catalogo Macchina fisica: gestore memoria

Dettagli

Lezione 1. Introduzione ai sistemi di basi di dati

Lezione 1. Introduzione ai sistemi di basi di dati Lezione 1 Introduzione ai sistemi di basi di dati Pag.1 Testi consigliati Sistemi di Basi di Dati, di Raghu Ramakrishnan e Johannes Gehrke, McGraw Hill, 2004 (http://www.ateneonline.it/rama) Database Management

Dettagli

Basi di dati II Esame 20 settembre 2013 Compito A

Basi di dati II Esame 20 settembre 2013 Compito A Basi di dati II Esame 20 settembre 2013 Compito A Rispondere su questo fascicolo. Tempo a disposizione: due ore. Cognome Nome Matricola Domanda 1 (15%) Per ciascuno degli schedule sotto riportati, indicare,

Dettagli

Esempio di sistema informativo

Esempio di sistema informativo Basi di dati vol.2 Capitolo 2 Gestione delle transazioni 12/10/2003 Esempio di sistema informativo GESTIONE IMPIANTI IMMISSIONE DI ORDINI DI SERVIZIO CLIENTI GESTIONE ELENCHI ABBONATI GESTIONE RETE AMMINISTRAZIONE

Dettagli

Basi di Dati Complementi Esercizi Esercizi su concurrency control

Basi di Dati Complementi Esercizi Esercizi su concurrency control Basi di Dati Complementi Esercizi Esercizi su concurrenc control Esercizio. Dati gli schedule : s r w r w r w s r w r w r3 w r r3 s3 r r3 rz w w3 a. specificare, con una breve giustificazione, a quali

Dettagli

Il linguaggio SQL: transazioni

Il linguaggio SQL: transazioni Il linguaggio SQL: transazioni Sistemi Informativi T Versione elettronica: 4.8.SQL.transazioni.pdf Cos è una transazione? Una transazione è un unità logica di elaborazione che corrisponde a una serie di

Dettagli

Meccanismi per la Gestione efficiente di transazioni in un DBMS

Meccanismi per la Gestione efficiente di transazioni in un DBMS Meccanismi per la Gestione efficiente di transazioni in un DBMS Transazioni Una Transazione è una sequenza di azioni di lettura e scrittura della base di dati e di elaborazioni di dati in memoria temporanea,

Dettagli

RM - I server che partecipano alla decisione: gestori di risorse TM Processo coordinatore: gestore della transazione

RM - I server che partecipano alla decisione: gestori di risorse TM Processo coordinatore: gestore della transazione 02 Gennaio 2010 Il 2-phase-commit è un protocollo per il commit distribuito e permette a una transazione di prendere la decisione corretta di commit o abort su tutti i nodi che partecipano alla transazione.

Dettagli

Tecnologia di un Database Server (centralizzato) Introduzione generale

Tecnologia di un Database Server (centralizzato) Introduzione generale Introduzione Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Introduzione generale Angelo Montanari Dipartimento di Matematica e Informatica Università di

Dettagli

Parte IX Basi di dati distribuite e parallele

Parte IX Basi di dati distribuite e parallele Parte IX Basi di dati distribuite e parallele Basi di dati - prof. Silvio Salza - a.a. 2014-2015 IX - 1 Architetture distribuite e parallele Diverse soluzioni architetturali (sia hardware che software),

Dettagli

A. Ferrari SQL. Structured Query Language

A. Ferrari SQL. Structured Query Language SQL Structured Query Language VIEW viste utente VIEW (Viste utente) o le VIEW sono tabelle virtuali il cui contenuto (colonne e righe) è definito da una query o le VIEW sono normalmente utilizzate per:

Dettagli

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

Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo Gestione delle transazioni Introduzione Transazioni in SQL Linguaggio SQL: costrutti avanzati 2 applicativo Operazioni bancarie operazione di prelievo dal proprio conto corrente mediante bancomat Gestione

Dettagli

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un

Dettagli

Basi di dati II Esame 22 settembre 2017 Compito A Tempo a disposizione: due ore.

Basi di dati II Esame 22 settembre 2017 Compito A Tempo a disposizione: due ore. Basi di dati II Esame 22 settembre 2017 Compito A Tempo a disposizione: due ore. Cognome Nome Matricola Domanda 1 (20%) Considerare le relazioni R1 ed R2 e l indice I2 su R2 schematizzati sotto. I riquadri

Dettagli

ARCHITETTURA DEI DBMS

ARCHITETTURA DEI DBMS ARCHITETTURA DEI DBMS Macchina logica: gestore comandi SQL Comandi SQL Gestore Comandi DDL Gestore interrogazioni Ottimizzatore Gestore piani di accesso Gestore catalogo Macchina fisica: gestore memoria

Dettagli