Gestione delle transazioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Gestione delle transazioni"

Transcript

1 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 moduli di gestione. Un esempio : PARTI(PAR#,GIACENZA,...) ORDINI(ORD#,FOR#,PAR#,QUANT) vincolo di integrità : per una parte PAR# nella relazione PARTI, il valore GIACENZA deve essere pari alla somma delle quantità QUANT ordinate per quella parte nella relazione ORDINI. Si consideri la sequenza di operazioni per aggiungere un nuovo ordine : ('AZ007','F5','P6',1000) La transazione deve operare un aggiornamento sia della relazione ORDINI sia della relazione PARTI. pag.1

2 Il frammento di programma in ambiente DB2 per la transazione in esame è: EXEC SQL WHENEVER SQLERROR GOTO UNDO; EXEC SQL INSERT INTO ORDINI(ORD#,FOR#,PAR#,QUANT) VALUES ('AZ007','F5','P6',1000); EXEC SQL UPDATE PARTI SET GIACENZA=GIACENZA+1000 WHERE PAR#='P6'; EXEC SQL COMMIT; GOTO FINISH; UNDO : EXEC SQL ROLLBACK; FINISH : RETURN; Se uno dei due aggiornamenti non venisse eseguito il database si troverebbe in uno stato inconsistente. Il gestore delle transazioni (transaction manager) deve pertanto garantire che la transazione sia considerata atomica anche se in realtà è composta da più operazioni. pag.2

3 commit : segnala al transaction manager che la transazione è andata a buon fine e richiede che gli effetti prodotti sul database vengano resi permanenti. rollback (abort) : segnala che si è verificato qualche problema durante l'esecuzione e che il database può essere in uno stato inconsistente; si devono dunque attivare opportune procedure per annullare gli effetti prodotti e riportare il database in uno stato consistente (UNDO). Per gestire in modo corretto le conseguenze derivanti da una transazione che abortisce, il DBMS gestisce un log dove vengono memorizzati dettagli circa le operazioni di aggiornamento effettuate (in particolare vengono gestiti before values e after values). In generale si definisce before image lo stato del database prima di una modifica e after image lo stato raggiunto dopo aver effettuato la modifica. Nello stesso modo sono gestiti i comandi SQL che sono set_level: ogni comando interattivo SQL è visto come una transazione. pag.3

4 Stati di una transazione rea d/wr ite eseguita c omm it termina ta end tr ansac tion a ttiva begin tra nsac tion fa llita abort a bor tita a livello sintattico sintassi non standard ANSI standard BEGIN TRANSACTION statement; statement; statement; statement; END TRANSACTION COMMIT pag.4

5 Definizioni Azione: operazione di lettura (r[x]) o scrittura (w[x]) sulla base di dati. Stato consistente: stato che soddisfa tutti i vincoli di integrità. Stato corretto: stato consistente e coerente con una situazione ammissibile della realtà. Transazione: una sequenza di operazioni sulla base di dati e di operazioni in memoria temporanea con le seguenti proprietà: atomicità correttezza isolamento serializzabilità persistenza proprieta` ACID (Atomicity Consistency Isolation Durability) pag.5

6 atomicità: solo le committed transactions fanno transitare la base di dati in un nuovo stato corretto. Le aborted transactions sono trattate dal sistema come se non fossero mai state avviate. correttezza/consistenza: una transazione eseguita isolatamente porta la base di dati da uno stato corretto in un stato corretto. isolamento: le modifiche sulla base di dati fatte da una transazione T sono visibili da altre transazioni solo dopo la terminazione di T. serializzabilità: l'effetto sulla base di dati di esecuzioni concorrenti di più transazioni è equivalente a una esecuzione seriale delle transazioni, cioè ad un'esecuzione in cui le transazioni vengono eseguite una dopo l'altra in un qualche ordine. persistenza: gli effetti sulla base di dati prodotti da una transazione terminata con successo sono permanenti, ovvero non sono alterati da eventuali malfunzionamenti. pag.6

7 Modello di un DBMS Si considerano per una transazione Ti soltanto le seguenti operazioni : ri[x] : legge dalla base di dati un dato x e copia il valore in una variabile di programma che per semplicità ha lo stesso nome x. wi[x] : copia il contenuto di una variabile x di programma nella base di dati. ci : commit. ai : abort (rollback) Programma Sta to Area di la voro Eventi per una operazione di lettura (scrittura) DBMS Sistema Operativo Sc hema E sterno Sc hema Logico Sc hema F isic o Buffer Ba se di dati pag.7

8 Esecuzione di una istruzione di lettura r[x] 1. il programma chiede al sistema di leggere il dato x; 2. il DBMS consulta lo schema esterno, lo schema logico e quello fisico per reperire il dato; 3. il DBMS chiede al sistema operativo di trasferire la pagina che contiene il dato x; 4. il sistema operativo copia la pagina dati nel buffer, se non e gia presente; 5. il DBMS copia il dato x dal buffer nella variabile x secondo la struttura definita nello schema esterno; 6. Il DBMS comunica al programma l informazione sullo stato dell operazione. pag.8

9 Esecuzione di una istruzione di scrittura w[x] 1. il programma chiede al sistema di scrivere il dato x; 2. il DBMS consulta lo schema esterno, lo schema logico e quello fisico per individuare il dato; 3. il DBMS chiede al sistema operativo di trasferire la pagina che dovra contenere il dato x; 4. il sistema operativo copia la pagina dati nel buffer, se non e gia presente; 5. il DBMS copia il valore del dato x nella pagina del buffer secondo la struttura definita nello schema logico e poi chiede al sistema operativo di copiare nella memoria permanente la pagina modificata nel buffer. Questa operazione puo essere eseguita immediatamente o differita. 6. il DBMS comunica al programma l informazione sullo stato dell operazione. pag.9

10 Malfunzionamenti Si distinguono tre tipi di anomalie di funzionamento: transaction abort interruzione di una transazione che non comporta perdita di dati in memoria temporanea o permanente. Puo' essere causata da una situazione prevista dal programma (esempio : violazione vincoli di integrità, tentativo di accesso a dati protetti) o rilevata dal gestore (deadlock). system abort interruzione di transazioni attive derivante da un'anomalia hardware o software dell'unità centrale o di una periferica (un esempio tipico è l'interruzione dell'alimentazione elettrica). Si assume che il contenuto della memoria permanente sopravviva, mentre si considera perso il contenuto della memoria temporanea. pag.10

11 system crash anomalia che danneggia la memoria permanente (esempi : errori umani, rottura di dischi). Si assume che un malfunzionamento sia sempre rilevato da parte del DBMS e che comporti: l'interruzione istantanea di una o più transazioni o dell'intero sistema a seconda del tipo di anomalia riscontrata; l'attivazione di procedure di recovery atte a ripristinare la base di dati in uno stato corretto. Tipo di anomalia Frequenza Tempo di ripristino transaction alcuni millisecondi abort al minuto system abort alcuni al mese secondi system crash alcuni all'anno minuti pag.11

12 Quando un database è condiviso fra più utenti l'interferenza tra le transazioni concorrenti può provocare inconsistenze. In assenza di un gestore, dedicato al controllo della concorrenza e alla schedulazione corretta delle operazioni, possono insorgere problemi che rientrano essenzialmente nelle seguenti tre categorie: Lost Update Problem : perdita di modifiche da parte di una transazione a causa di un aggiornamento effettuato da un'altra; Uncommitted Dependency Problem : dipendenza di una transazione da un'altra non completata con successo; Inconsistency Analysis Problem : analisi inconsistente di dati da parte di una transazione causata da aggiornamenti prodotti da un'altra. pag.12

13 Lost Update Problem Transaction A Time Transaction B read R update R commit t1 t2 t3 t4 read R update R commit La transazione A perde al tempo t4 l'aggiornamento effettuato al tempo t3, visto che B modifica nuovamente il valore senza sapere che quello osservato al tempo t2 non è più valido al tempo t4. pag.13

14 Uncommitted Dependency Problem (dirty read) Accade quando viene concesso a una transazione di accedere a un dato (e peggio ancora modificarne il valore) che è stato aggiornato da un'altra transazione non ancora completata con successo. Transaction A Time Transaction B t0 read R t1 t2 t3 update R rollback La transazione A vede un valore di R al tempo t2, valore che non esiste di fatto in quanto verrà sostituito al tempo t3 con il valore che era valido al tempo t0. Si noti che il rollback da parte di B può essere dovuto ad una caduta del sistema : ciò implica che alla ripartenza, se A era stata completata con successo, il rollback interesserà solo B e non A. pag.14

15 Un altro esempio di questo tipo con conseguenze più gravi: Transaction A Time Transaction B t0 update R t1 t2 t3 update R rollback Non solo la transazione A dipende dall'insuccesso della transazione B ma perde anche le modifiche fatte al tempo t2 a causa del rollback che interesserà B al tempo t3. Si tratta dunque di un'altra versione del lost update problem. pag.15

16 Inconsistent Analysis Problem Si consideri il caso in cui due transazioni A e B operino su record relativi a conti bancari. A vuole sommare gli importi dei vari conti di un cliente, mentre B vuole trasferire un importo di 1000 $ dal conto ACC3 al conto ACC1. ACC1=4000 $ ACC2=5000 $ ACC3=3000 $ Transaction A Time Transaction B read ACC1 sum = 4000 read ACC2 sum = 9000 read ACC3 sum = t1 t2 t3 t4 t5 t6 t7 t8 read ACC3 update ACC >2000 read ACC1 update ACC >5000 commit pag.16

17 La transazione A opera un'analisi inconsistente dei dati e fornisce come risultato $ in luogo di $. Se questo dato fosse memorizzato in modo permanente nel database verrebbe violato il vincolo che la somma dei conti deve restare costante in caso di trasferimento di denaro da un conto all'altro dello stesso cliente. In questo caso non si tratta di una dipendenza di A da un insuccesso di B, in quanto quest'ultima ha eseguito commit con successo. Gli esempi visti suggeriscono : fondamentale per ogni processo di aggiornamento è il concetto di transazione come unità logica di elaborazione, che deve poter essere annullata se necessario per ripristinare il database in uno stato consistente; la gestione delle transazioni non può essere affidata direttamente dell'utente; le transazioni variano in termini di complessità, frequenza di esecuzione e criticità, tuttavia in ogni caso devono essere viste come atomiche. pag.17

18 Modello per la gestione delle transazioni T 1 T 2 T n Tr ansac tion Mana ger Resta rt Sc heduler Rec overy Ma nager Da ta Ma na ger Buffe r Ma na ge r Sta ble Storage Vola tile Storage DB DB c opy page DB Buffer Log Log Buffer pag.18

19 Transaction Manager Controlla l'esecuzione delle transazioni ricevendo le richieste di begin transaction, end transaction, le richieste di accesso ai dati, i comandi commit e abort. Le richieste vengono poi inoltrate allo scheduler. In un sistema distribuito il Transaction Manager è anche responsabile di decidere in quali siti si deve procedere all'esecuzione. Scheduler Garantisce che l'esecuzione concorrente delle transazioni sia equivalente a una esecuzione seriale delle stesse e sia ripristinabile (recoverability). Ciò implica restringere l'ordine in cui il Data Manager può eseguire read, write, commit e abort delle transazioni. Dopo aver ricevuto una richiesta lo Scheduler prende una delle seguenti decisioni: execute passa il controllo al Data Manager che esegue l'operazione e informa lo Scheduler dello stato raggiunto; in caso di read il valore viene passato allo Scheduler che a sua volta lo restituisce alla transazione; pag.19

20 reject la richesta viene rifiutata e comporta un abort per la transazione che verrà gestito dal Transaction Manager; delay la richesta viene accodata. Si consideri come esempio l'esecuzione concorrente di due transazioni di deposito di una somma su un medesimo conto corrente Acc: Transaction A Time Transaction B read Acc update Acc commit t1 t2 t3 t4 t5 t6 read Acc update Acc commit pag.20

21 Per evitare questa esecuzione non corretta lo scheduler può : a) impedire alla transazione A di eseguire l'operazione update, facendola dunque fallire; in questo caso l'utente potrà riprovare in un altro momento senza interferire con B. b) impedire alla transazione B di eseguire l'update, facendo abortire B. c) ritardare la richiesta read di B fino al completamento di A. d) ritardare sia l'update di A sia l'update di B causando un deadlock, e poi decidere alla rilevazione della situazione di stallo quale delle due transazioni far fallire. pag.21

22 Data Manager E' il modulo del sistema che esegue le operazioni trasmesse dallo scheduler e dal comando restart generato dal sistema operativo dopo un fallimento del sistema, garantendo che la base di dati contenga solo gli effetti delle transazioni terminate normalmente. Dopo ogni operazione eseguita dal Data Manager, e' previsto che invii allo scheduler un segnale di fine operazione (aknowledgment). Inoltre se l' operazione e' di read, restituisce il valore richiesto che viene poi traferito alla transazione. La memoria e' divisa in permanente e temporanea (buffer). Il dato trasferito fra il buffer e la memoria permanente e' di solito una pagina data, mentre il record manager scambia di solito con il resto del sistema un record. Infine il data manager prevede un modulo per il ripristino dei malfunzionamenti (recovery manager) che fa uso di algoritmi basati su UNDO e REDO. pag.22

23 Buffer Manager Si occupa della gestione di buffer di memoria volatile; opera in concomitanza con il Recovery Manager. Fa uso di opportune tecniche per gestire in modo efficiente la condivisione dei buffer da parte di più transazioni concorrenti. Tecniche di Recovery e Recovery Manager Def: Il recovery e' l'operazione che riporta la base di dati ad un precedente stato corretto dopo che un malfunzionamento ne ha reso incerto lo stato attuale. Il Recovery Manager garantisce che il database memorizzi in modo persistente solo gli effetti prodotti dalle transazioni che hanno eseguito con successo l'operazione commit. Deve dunque fornire supporto per le operazioni di start, commit, abort, read e write. Il Recovery Manager provvede al ripristino del database in caso di malfunzionamenti: in caso di caduta di sistema si occupa di annullare gli effetti prodotti da transazioni ancora attive al momento del guasto. Al fine di garantire un grado di resilienza accettabile in caso di guasti ai dispositivi di memoria di massa (media failures) il Recovery Manager mantiene copia aggiornata del database o di porzioni di esso. Il Recovery Manager usa i log file e copie di backup dei dati (database dump) per fornire la duplicazione dei dati necessaria all'attivita' di recovery. pag.23

24 Data Base Dump (periodico) 1. rifiuta attivazione nuove transazioni 2. attende completamento transazioni attive 3. forza la scrittura nelle basi di dati stabili e nel log file delle pagine ancora presenti nella memoria temporanea 4. scrive la marca DUMP sul log 5. fa una copia della base di dati pag.24

25 Uso del Log file Durante l'uso della base di dati, il sistema registra nel log la storia delle azioni effettuate dal momento in cui di essa e' stata fatta l'ultima copia (dump). Il log memorizza entita' logiche (tuple e attributi); entita' fisiche cioe' pagine dati; cambiamenti di stato : vecchi valori di dati, nuovi valori di dati o operazioni (transazioni e parametri). E' un file sequenziale di sistema che contiene la before image e la after image delle pagine modificate in ordine di tempo, marcate con gli identificatori delle transazioni che le hanno modificate e contenenti i record dei begin transaction, commit e abort. Before image = pagina dati prima di una operazione di update. After image = pagina dati dopo una operazione di update. Solitamente e' memorizzato in un'area separata di disco rispetto ai dati. Per maggiore sicurezza normalmente ce sono due o tre copie. pag.25

26 Problema : un sistema reale puo' generare 200 milioni di bytes di log data al giorno e quindi non puo' essere tenuto tutto in linea. Per questo solitamente si ha un active log ed il Log Manager fa il dump del log su nastro quando il log e' pieno. una pagina di log è trasferita dal buffer alla memoria secondaria solo quando è completamente piena, cio' comporta che gli algoritmi di gestione delle transazioni debbano forzare alcune volte la scrittura delle pagine di log sulla memoria secondaria. Una ulteriore informazione memorizzata nel log e' il cosiddetto checkpoint record (record di allineamento). Il checkchpoint e' un allineamento del log ad uno stato corretto della base di dati relativamente ad un punto di allineamento (synchpoint). Il synchpoint puo' essere attivato ad intervalli fissati di tempo o dopo che sono state scritte un certo numero di registrazioni sul log oppure dietro esplicita richiesta dell'operatore. Possibile compressione del Log: vengono eliminati i log record delle transazioni che hanno fatto rollback e di quelli che hanno fatto commit al (punto di allineamento). pag.26

27 Recovery = redundancy 1. una volta al giorno l'intero database viene dumped (tipicamente su nastro) 2. tutte le volte che viene fatta una modifica di un record nel database, sul file di log viene scritto un record con il vecchio valore ed il nuovo valore In caso di guasto: Se il guasto e' sul disco viene ripristinato il database dal DUMP e viene usati il file di log per rifare (REDO) tutte le modifiche fatte fino al momento del guasto; Se (caso piu' fortunato) e' una singola transazione che e' terminata in modo anomalo (senza raggiungere il COMMIT) il database e' riportato ad uno stato corretto precedente la transazione usando il log per disfare (UNDO) le modifiche eventualmente non completate dalla transazione. Spesso il database e' duplicato su disco (DUPLEXING) pag.27

28 System checkpoints Per ridurre la dimensione dei dati da ripristinare dopo un malfunzionamento, quando si raggiunge il synchpoint vengono effettuate alcune azioni per garantire il ripristino: viene memorizzato nel log il checkpoint record (CKP) contenente la lista di tutte le transazioni attive in quell'istante e viene effettuata la scrittura forzata dei buffer di log e del database, cioe' il trasferimento in memoria secondaria del contenuto dei buffer (anche se non sono pieni). La lista delle azioni per garantire il ripristino e' la seguente: Passo 1: forza la scrittura del log buffer; Passo 2: scrive sul log il checkpoint record; Passo 3: forza la scrittura dei buffer di Passo4: scrive l' indirizzo del checkpoint nel log file su restart file. database; record I passi 1 e 2 sono fatti in base al protocollo write-ahead log, cioe' prima di poter fare una modifica nel database va scritto il valore del vecchio dato sul log file, per potere effettuare l'undo se richiesto. Il passo 3 serve per non dover rifare il lavoro che e' gia' stato fatto prima del synchpoint. pag.28

29 Restart procedure: procedure di sistema eseguite al tempo di restart per ricostruire il piu' recente stato consistente di un database. Sono basate sul log, su backup di linea ed eventualmente su nastri. al tempo di restart il Recovery Manager ottiene dal file di restart l' indirizzo del piu' recente checkpoint record e poi scandisce il file di log per cercare le transazione che devono essere disfatte (undo) e quello che devono essere rifatte (redo): viene fatto UNDO delle transazioni che non hanno raggiunto il commit prima del fallimento; viene fatto REDO delle transazioni che hanno raggiunto il commit dopo il synchpoint perche' non e' garantito che gli update siano su memoria secondaria. pag.29

30 Ripresa da malfunzionamenti fallimenti di transazioni - si scrive sul log (T, abort) e si fa UNDO della transazione T fallimenti di sistema si attiva restart che: riporta la base di dati allo stato corretto esistente prima del malfunzionamento; segnala al gestore delle transazioni il fallimento di alcune transazioni; riprende il funzionamento del sistema fallimenti hardware si carica la dump più recente della base di dati; si ricostruisce la copia corretta più recente dei dati usando il log. pag.30

31 Esempio di ripristino dopo fallimento di sistema t1 t2 t4 t3 t5 S 0 S 0 S 1 S 2 S 3 S 1 S 2 S 3 Stato iniziale Stato al punto di allineamento Stato al tempo di malfunzionamento Stato in assenza di malfunzionamento Le transazioni t3 e t5 devono essere disfatte, perche' scandendo il log a partire dal checkpoint record (CKP, {t2,t3}) non si trovano le registrazioni (t3,commit) e (t5,commit). t2 e t4 devono essere rifatte qualora si adotti il commit anticipato (cio' si scrive commit prima di forzare la scruttura). La transazioni t1 va ignorata perche' le modifiche da essa apportate sono state rese presistenti al tempo S1. pag.31

32 Come DB2 risolve i 3 problemi di concorrenza DB2 utilizza la tecnica del locking granularità del locking tipica è un record del database (fisicamente il locking è sulla pagina) due tipi di lock: S (Shared) e X (exclusive) operazioni a livello di record una transazione in richiesta di lock aspetta. Se raggiunge un tempo di attesa massimo fallisce. X S X N N Y S N Y Y Y Y Y matrice (X, S) di compatibilità dei tipi di lock N indica conflitto Y indica compatibiltà pag.32

33 le richieste di lock sono sempre implicite: se una transazione fa un update acquisisce automaticamente un X lock tutti i lock sono mantenuti fino al prossimo synchpoint che è stabilito ad inizio programma, commit e rollback LOST UPDATE PROBLEM transaction A FETCH R (acquire S lock on R) UPDATE R (request X lock on R) time t1 t2 t3 t4 transaction B FETCH R (acquire S lock on R) UPDATE R (request X lock on R) non si perde nessuna modifica, ma si verifica DEADLOCK al tempo t4 UNCOMMITTED DEPENDENCY PROBLEM pag.33

34 transaction A FETCH R (request S lock on R) resume: FETCH R (acquire S lock on R) time t1 t2 t3 t4 transaction B UPDATE R (acquire X lock on R) synchpoint (release X lock on R) Alla transazione A viene impedito di vedere il record cambiato al tempo t2 fino a quando B non fa commit o rollback (t3 ) pag.34

35 UNCOMMITTED DEPENDENCY PROBLEM transaction A UPDATE R (request X lock on R) resume: UPDATE R (acquire X lock on R) time t1 t2 t3 t4 transaction B UPDATE R (acquire X lock on R) synchpoint (release X lock on R) Alla transazione A viene impedito di fare un update fino a quando B non ha raggiunto un synchpoint (t3) pag.35

36 The inconsistent analysis problem ACC1=4000 $ ACC2=5000 $ ACC3=3000 $ Transaction A Time Transaction B FETCH ACC1(4000) (acquire S lock on ACC1) :sum = 4000 FETCH ACC1(5000) (acquire S lock on ACC2) :sum = 9000 t1 t2 t3 FETCH ACC3(3000) (acquire S lock on ACC3) : t4 update ACC >2000 (acquire X lock on ACC3): > 2000 t5 FETCH ACC1(3000) (acquire S lock on ACC1) : fetch ACC1 (request S lock on ACC3): t6 t7 update ACC >5000 (request X lock on ACC1): L'inconsistenza è impedita, ma il deadlock si verifica al tempo t7 pag.36

37 In generale ogni operazione che richiede lock può ricevere di ritorno un codice di errore che indica che si è verificato deadlock e che la transazione è stata scelta come vittima. DEADLOCK transaction A LOCK R1 IN X MODE LOCK R2 IN X MODE time t1 t2 t3 t4 transaction B LOCK R2 IN X MODE LOCK R1 IN X MODE Un esempio di deadlock EXEC SQL... IF SQLCODE = value indicating "deadlock victim" then DO ; EXEC SQL ROLLBACK; reinitialize variables from initial input data; GO TO beginning of program; END; pag.37

38 Transazioni distribuite Def: Una transazione e' distribuita quando e' costituita da sottotransazioni eseguite concorrentemente da processi diversi. Nel caso di DBMS distribuiti le sottotransazioni sono eseguite su nodi diversi di una rete. Il frammento di programma riportato descrive una transazione per trasferimento di fondi, nell' ipotesi che le due relazioni ContiCorrenti(Numero,Saldo) ContiRisparmi(Numero,Saldo) siano memorizzate in due nodi diversi della rete e che la transazione inizi nel nodo dove si trova la relazionecontirisparmi. La transazione distribuita viene eseguita come due processi che si scambiano messaggi. Process Coordinatore; var EXEC SQL begin declare section Ammontare, xsaldo: integer; Numero,DaConto,AConto: array[1..6] of char; EXEC SQL end declare section begin transaction begin writeln('scrivi Ammontare, Da quale conto, A quale conto'); read (Ammontare, DaConto, AConto); EXEC SQL pag.38

39 Select Saldo into :xsaldo from ContiRisparmi where Numero = :DaConto if xsaldo < Ammontare then begin writeln('saldo Insufficiente); ABORT; end end; else begin EXEC SQL UPDATE ContiRisparmi set Saldo=:xSaldo- :Ammontare where Numero = :DaConto; create Partecipante; send (Ammontare, AConto); COMMIT; end; end transaction; end Coordinatore; Process Partecipante; var EXEC SQL begin declare section Ammontare, xsaldo:integer; AConto: array[1..6] of char; EXEC SQL end declare section begin pag.39

40 receive (Ammontare, AConto) from Coordinatore; EXEC SQL UPDATE ContiCorrenti set Saldo = :xsaldo + :Ammontare where Numero = :AConto; if sqlcode = 0 then commit else abort end Partecipante pag.40

41 Transazioni distribuite Protocollo two-phase commit La terminazione di una transazione distribuita T avviene in due fasi: tutte le sottotransazioni Ti prendono una decisione comune sul modo di terminare vengono eseguite le operazioni corrispondenti alla decisione presa. coordinatore: a) prepara "precommit" sul log b) fissa un tempo max di attesa c) invia un messaggio "preparati" a tutti i partecipanti d) se scade il tempo max senza avere ricevuto pronto da tutte le transazioni, registra abort sul log e invia il messaggio "abort" a tutti i partecipanti; pag.41

42 se ha ricevuto commit da tutte in tempo utile registra commit sul log e invia il messaggio "commit" a tutti i partecipanti e) se riceve eseguito da tutti i partecipanti registra end commit sul log. Sottotransazione partecipante a) esegue le operazioni e rimane in attesa del messaggio "preparati" b) quando riceve "preparati" se può terminare registra sul log "pronto" e invia tale messaggio al coordinatore. Se non può terminare registra sul log "non pronto" e invia al coordinatore tale messaggio (fase di precommit) c) quando riceve dal coordinatore il messaggio "commit" o "abort" registra sul log il messaggio, esegue il comando e invia al coordinatore il messaggio "eseguito" (fase di commit) Fallimenti Fallimento nodo partecipante P a) prima di precommit abort globale pag.42

43 b) dopo precommit richiesta al coordinatore C e decisione coordinatore C a) fallisce tra precommit e commit. La procedura di ripristino riavvia il protocollo dall'inizio b) fallisce dopo aver registrato "commit" o "abort" e prima di "end commit" invia di nuovo il messaggio pag.43

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 0-2 0 1 1 Tecniche applicate nei DBMS Le tecniche per il controllo della concorrenza che

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

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

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

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

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

TRANSAZIONI TRANSAZIONI

TRANSAZIONI TRANSAZIONI TRANSAZIONI Concetto di transazione, comandi di transazione, proprietà ACID delle transazioni Transazioni concorrenti Esecuzione seriale e serializzabile Conflict-equivalenza, grafo dei conflitti Protocollo

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

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

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

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

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

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

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

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

Basi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive

Basi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive Basi di dati attive Paolo Atzeni Stefano Ceri Basi di dati attive BD con componente per la gestione di regole Evento- Condizione-Azione (regole di produzione): eventi: normalmente modifiche della base

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

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

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

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

Esercitazione 10 SQL: transazioni

Esercitazione 10 SQL: transazioni Esercitazione 10 SQL: transazioni Sistemi Informativi T Versione elettronica: L10.transazioni.pdf Transazioni Le transazionisono unità logiche di elaborazione per cui il DBMS garantisce le proprietà ACID(Atomicity,

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

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

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

Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS

Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS 2007 Politecnico di Torino 1 Basi di dati DB M B G Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS DB M B G 2 2007 Politecnico

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 2007 Politecnico di Torino 1 Basi di dati Gestione delle informazioni Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS DB M BG2 Gestione delle informazioni Le informazioni sono

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

Strutture dei sistemi di calcolo

Strutture dei sistemi di calcolo Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di protezione Architettura di un sistema di calcolo

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

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo. Corso integrato di Sistemi di Elaborazione Modulo I Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Basi di dati: introduzione 2 Introduzione Gestione delle informazioni Basi di dati / DBMS Modello dei

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 9 Raffaella Gentilini 1 / 41 Sommario 1 DBMS Attivi e Triggers 2 2 / 41 DBMS Attivi DBMS Attivi I DBMS tradizionale sono passivi: Eseguono delle operazioni solo

Dettagli

Basi di dati II Prova parziale 29 maggio 2014 Compito A Tempo a disposizione: un ora e trenta minuti.

Basi di dati II Prova parziale 29 maggio 2014 Compito A Tempo a disposizione: un ora e trenta minuti. Basi di dati II Prova parziale 29 maggio 2014 Compito A Tempo a disposizione: un ora e trenta minuti. Cognome Nome Matricola Domanda 1 (20%) Considerare un sistema distribuito su cui viene eseguita una

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

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 5 Martedì 25-10-2016 Definizione di processo Esiste una distinzione concettuale

Dettagli

Le Azioni Atomiche 1

Le Azioni Atomiche 1 Le Azioni Atomiche 1 AZIONI ATOMICHE Strumento di alto livello per la strutturazione di programmi concorrenti e/o distribuiti tolleranti ai malfunzionamenti. Applicazioni: sistemi operativi distribuiti

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

L architettura di un DBMS

L architettura di un DBMS L architettura di un DBMS sources: Lucidi del corso di Lucidi del corso di Laboratorio di Basi di dati e sistemi informativi, Montesi, Magnani, Corso di laurea in Informatica per il management, Scienze

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Basi di dati DB M BG2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS DB M BG4 D B M G6 2007 Politecnico di Torino 1 D B M G7 D B M G8 D B M G9 D B

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

Cap. 1-I 1 I sistemi informatici

Cap. 1-I 1 I sistemi informatici Libro di testo A. Chianese,V. Moscato, A. Picariello, L. Sansone Basi di dati per la gestione dell informazione McGraw-Hill, 2007 Informazioni sul corso http://www.docenti.unina.it/lucio.sansone Ricevimento

Dettagli

Sistemi informativi D B M G. Introduzione. Introduzione alle basi di dati D B M G 2. Elena Baralis 2007 Politecnico di Torino 1

Sistemi informativi D B M G. Introduzione. Introduzione alle basi di dati D B M G 2. Elena Baralis 2007 Politecnico di Torino 1 Sistemi informativi D B M G Introduzione D B M G 2 2007 Politecnico di Torino 1 Introduzione D B M G Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi

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

Strutture fisiche e strutture di accesso ai dati

Strutture fisiche e strutture di accesso ai dati Strutture fisiche e strutture di accesso ai dati 1 A L B E R T O B E L U S S I P R I M A P A R T E A N N O A C C A D E M I C O 2 0 1 2-2 0 1 3 Gestore dei metodi di accesso 2 E il modulo del DBMS che esegue

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 attive. Paolo Atzeni. Basi di dati attive

Basi di dati attive. Paolo Atzeni. Basi di dati attive Basi di dati attive Paolo Atzeni Basi di dati attive BD con componente per la gestione di regole Evento- Condizione-Azione (regole di produzione): eventi: normalmente modifiche della base di dati valuta

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

La connessione ai database MySQL tramite script PHP versione 5.5

La connessione ai database MySQL tramite script PHP versione 5.5 La connessione ai database MySQL tramite script PHP versione 5.5 Php è un linguaggio di scripting che estende le funzionalità del server Web, mentre MySQL è un programma server che si occupa della gestione

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

17. ARCHITETTURA DI UN DBMS

17. ARCHITETTURA DI UN DBMS 17. ARCHITETTURA DI UN DBMS Vediamo ora dove sono effettivamente memorizzati i dati e quali sono le principali funzionalità di un sistema di gestione di basi dati. Parliamo quindi di DBMS. DEF: Un DBMS

Dettagli

AZIONI ATOMICHE MULTIPROCESSO

AZIONI ATOMICHE MULTIPROCESSO AZIONI ATOMICHE MULTIPROCESSO In alcune applicazioni può risultare conveniente che le operazioni sugli oggetti di una azione atomica siano eseguite non da un solo processo, ma da più processi. Le azioni

Dettagli

Interpretazione delle query nidificate

Interpretazione delle query nidificate Interpretazione delle query nidificate Per analizzare il risultato di una interrogazione nidificata si può supporre di valutare prima il risultato dell interrogazione nidificata (query interna) per poi

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

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

Basi di Dati Attive. Basi di Dati Attive

Basi di Dati Attive. Basi di Dati Attive Basi di Dati Passive le politiche di reazione nei vincoli d integrità referenziale sono il primo esempio della necessità di introdurre un comportamento reattivo nelle basi di dati mettendo a fattor comune

Dettagli

Trigger. Basi di dati attive. Trigger: regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi

Trigger. Basi di dati attive. Trigger: regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi Basi di dati attive : regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi Oggi fanno parte dello standard SLQ-99 In passato ogni DBMS li implementava seguendo

Dettagli

Transazioni - Parte 1

Transazioni - Parte 1 Basi di dati II Lezione 3 09/10/2008 Caputo Domenico Cosimo, Francesco Pichierri Transazioni - Parte 1 Le transazioni hanno a che fare con la programmabilità delle basi di dati. Prima di trattarle è necessaria

Dettagli

Basi di dati II Esame 26 febbraio 2013 Rispondere su questo fascicolo. Tempo a disposizione: due ore e trenta minuti.

Basi di dati II Esame 26 febbraio 2013 Rispondere su questo fascicolo. Tempo a disposizione: due ore e trenta minuti. Basi di dati II Esame 26 febbraio 2013 Rispondere su questo fascicolo. Tempo a disposizione: due ore e trenta minuti. Cognome Nome Matricola Domanda 1 (15%) Si consideri un DBMS che preveda, in aggiunta

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Sistemi informativi 2 Introduzione Base di dati Modello dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS 4 6 2007 Politecnico di Torino 1 7 8 9 10 Sistema informatico Nei sistemi informatici,

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

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

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1 ECDL - Database Introduzione European Computer Driving Licence - Modulo 5 - Database LEZIONE 1 Informazioni sul corso orario: Giovedì - 14.30-16.30 materiale: http://www.fotoboni.com/carlo/ docente: webmaster@fotoboni.com

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

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 CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI

Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI La finalità di questa esercitazione è quella di creare, date delle specifiche progettuale, appositi script di creazione e popolamento di una base

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

Introduzione all Architettura del DBMS

Introduzione all Architettura del DBMS Introduzione all Architettura del DBMS Data Base Management System (DBMS) Un DBMS è uno strumento per la creazione e la gestione efficiente di grandi quantità di dati che consente di conservarli in modo

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

Silvia Chiusano, Paolo Garza 1

Silvia Chiusano, Paolo Garza 1 Creazione di un trigger Sviluppo ed utilizzo dei trigger in Oracle Silvia Chiusano Paolo Garza CREATE TRIGGER nome_trigger modo evento [OR evento] ON tabella [REFERENCING referenza] [] [WHEN (predicato

Dettagli

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non

Dettagli

DBMS. Affidabilità. Privatezza dei dati. Efficienza. Efficacia. Un DBMS deve garantire:

DBMS. Affidabilità. Privatezza dei dati. Efficienza. Efficacia. Un DBMS deve garantire: DBMS Un DBMS deve garantire: Affidabilità Privatezza dei dati Efficienza Efficacia DBMS Affidabilità Un DBMS deve garantire di poter mantenere intatto il suo contenuto, anche in caso di malfunzionamento.

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

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