Gestione delle transazioni
|
|
- Bartolommeo Bertini
- 7 anni fa
- Visualizzazioni
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 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 +
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, è
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
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
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
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
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
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
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
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
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
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
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
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.
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à
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
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
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
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
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
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 0-2 0 1 1 Tecniche applicate nei DBMS Le tecniche per il controllo della concorrenza che
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
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,
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
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)
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,
DettagliTRANSAZIONI TRANSAZIONI
TRANSAZIONI Concetto di transazione, comandi di transazione, proprietà ACID delle transazioni Transazioni concorrenti Esecuzione seriale e serializzabile Conflict-equivalenza, grafo dei conflitti Protocollo
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,
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
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)
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
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/
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.
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
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
DettagliBasi 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
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
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,
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
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
DettagliEsercitazione 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,
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
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 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,
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
DettagliGestione 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
DettagliElena 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
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
DettagliStrutture 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
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
DettagliCorso 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
DettagliBasi 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
DettagliBasi 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
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à
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
DettagliUniversità 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
DettagliLe 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
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) è
DettagliL 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
DettagliElena 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
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à
DettagliCap. 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
DettagliSistemi 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
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
DettagliStrutture 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
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 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
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),
DettagliLa 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
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)
Dettagli17. 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
DettagliAZIONI 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
DettagliInterpretazione 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
DettagliSQL 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
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
DettagliBasi 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
DettagliTrigger. 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
DettagliTransazioni - 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
DettagliBasi 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
DettagliElena 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,
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
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
DettagliIntroduzione 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
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.
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 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
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
DettagliIntroduzione 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
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
DettagliSilvia 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
DettagliI 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
DettagliDBMS. 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.
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
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