TRANSAZIONI TRANSAZIONI
|
|
- Lorenzo Elia
- 5 anni fa
- Visualizzazioni
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 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
DettagliLa 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
DettagliARCHITETTURA 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
DettagliGESTIONE 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, è
DettagliTecnologia 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
DettagliIntoduzione 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
DettagliFunzioni 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
DettagliParte 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
DettagliLe 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 +
DettagliSistemi 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
DettagliEsempio 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
DettagliParte 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/
DettagliTecnologia 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
DettagliIl 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
DettagliTransazioni. 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
DettagliGestione 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
DettagliSQL 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
DettagliBasi 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
DettagliTransazioni. 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
DettagliRecovery 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,
DettagliBasi 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à
DettagliEsecuzione 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
DettagliUnità 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
DettagliEsecuzione 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
Dettagli6.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
DettagliBasi 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) è
DettagliParte 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/
DettagliTecnologia 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à
DettagliSistemi 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
DettagliL 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)
DettagliGestione 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é
DettagliBasi 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
DettagliBasi 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
DettagliAzioni 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
DettagliTRANSAZIONI 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à
DettagliPaolo 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
DettagliSistemi 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
DettagliGestione 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
DettagliGestione 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
DettagliSistemi 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.
DettagliSerializable 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
Dettagli1- 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
DettagliCREATE 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
DettagliBasi 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
DettagliAffidabilità 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:
Dettagli1. 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
DettagliCapitolo 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,
DettagliCorso 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
DettagliTali 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
DettagliCorso 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
DettagliGestione 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
DettagliCapitolo 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)
DettagliTransazioni. 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
DettagliIndicare 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),
DettagliCognome 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
DettagliGestione 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
DettagliBASI 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
DettagliBasi 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
DettagliComponenti 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
DettagliBasi 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,
DettagliBasi 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
Dettagli06 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
DettagliGestione 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)
DettagliGestione 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
DettagliBasi 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.
DettagliIl 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
DettagliGestione 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
DettagliBasi 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
DettagliBasi 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
DettagliARCHITETTURA 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
DettagliBasi 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,
DettagliTransazioni. 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
Dettagli8 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
DettagliL'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
DettagliBASI 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,
DettagliEsercizio. 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.
DettagliEsempio 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
DettagliTransazioni. 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
DettagliIl 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
DettagliBasi 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
DettagliESERCIZIO 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,
DettagliCap. 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
DettagliLinguaggio 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
DettagliAzioni. 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)
DettagliARCHITETTURA 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
DettagliLezione 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
DettagliBasi 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,
DettagliEsempio 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
DettagliBasi 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
DettagliIl 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
DettagliMeccanismi 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,
DettagliRM - 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.
DettagliTecnologia 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
DettagliParte 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),
DettagliA. 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:
DettagliPag. 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
DettagliPROCESSI 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
DettagliBasi 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
DettagliARCHITETTURA 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