SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Corso di Basi di Dati e Laboratorio




                       TRANSAZIONI
                        (concetti introduttivi)




  A.A. 2004/2005          Corso di Basi di Dati e Laboratorio   1




Transazioni
Transazione
Unità elementare di lavoro svolta da un programma
applicativo, cui si vogliono associare particolari
caratteristiche di correttezza, robustezza e isolamento.

Sintatticamente, una transazione è l’insieme delle istruzioni
compresa tra i due comandi
             • begin transaction
             • end transaction




  A.A. 2004/2005          Corso di Basi di Dati e Laboratorio
Transazioni
 • Altri comandi particolari nel codice di una transazione
    – commit work         (o commit)
    – rollback work (o abort)

 • L’effetto di questi due comandi è decisivo per l’esito
   della transazione
    – commit ==> la transazione va a buon fine
    – abort ==> la transazione fallisce

 • ESEMPIO/* operazione bancaria di trasferimento tra
   due c/c */
                   begin transaction
                        c/c1 := c/c1-10;
                        c/c2 := c/c2+10;
                        commit work;
                   end transaction
  A.A. 2004/2005       Corso di Basi di Dati e Laboratorio




Transazioni - proprietà


  • Tutto il codice compreso tra begin
    transaction e end transaction gode
    delle cosiddette proprietà ACIDe
     – Atomicità
     – Consistenza
     – Isolamento
     – Durability (Persistenza)



  A.A. 2004/2005       Corso di Basi di Dati e Laboratorio
Transazioni - proprietà

• Atomicità: una transazione rappresenta una unita’
  indivisibile di esecuzione.
• O vengono resi visibili tutti i suoi effetti nella BD,
  oppure la t. non ha nessun effetto sulla BD
  (approccio “tutto-o-niente”).
• In altre parole, non è possibile che la BD venga
  lasciata in uno stato intermedio attraversato
  durante l’elaborazione della transazione.




  A.A. 2004/2005      Corso di Basi di Dati e Laboratorio




Transazioni - proprietà
Conseguenze sul piano operativo
• La corretta esecuzione dell’operazione di commit fissa il
  momento in cui la t. va a buon fine e i suoi effetti
  possono essere visibili nella BD.
• Se si verifica un errore e qualche operazione
  (lettura/scrittura) della t. fallisce prima dell’operazione di
  commit, il DBMS deve essere in grado di ricostruire la
  situazione della BD all’inizio della t. disfacendo il lavoro
  compiuto fino a quel momento dalla t. (operazione di
  UNDO)
• Dopo l’esecuzione del commit, il DBMS deve assicurare
  che la t. lasci la bd nel suo stato finale. Questo può
  richiedere di dover rifare (operazione di REDO) alcune
  operazioni.

  A.A. 2004/2005      Corso di Basi di Dati e Laboratorio
Transazioni - proprietà
• Consistenza: l’esecuzione di una t. non deve
  violare i vincoli di integrità definiti sulla BD.
  Quando il DBMS rileva che una t. in esecuzione
  sta violando un vincolo (ad es., viene inserita
  una tupla in una tabella con un valore di chiave
  già presente nella tabella), interviene per
  annullare la t. o per correggere la violazione al
  vincolo.




  A.A. 2004/2005   Corso di Basi di Dati e Laboratorio




Transazioni - proprietà
• Isolamento: l’esecuzione di una t. deve essere
  indipendente dalla contemporanea esecuzione di
  altre t.
• Si richiede che l’esecuzione concorrente di un
  insieme di t. sia analogo al risultato che le stesse
  t. otterrebbero nel caso in cui ciascuna di esse
  fosse eseguita da sola.
• Si evita che il rollback di una t. causi il rollback di
  altre t. (effetto domino). Questo potrebbe
  accadere se una t. leggesse i dati modificati da
  un’altra t. che non abbia ancora eseguito il
  comando di commit e che non termina
  correttamente (abort).
  A.A. 2004/2005   Corso di Basi di Dati e Laboratorio
Transazioni - proprietà

 • Persistenza: l’effetto di una t. che ha eseguito il
   commit correttamente non deve essere piu’
   perso. In altre parole, i dati contenuti nella BD
   non devono essere persi per nessun motivo.




  A.A. 2004/2005   Corso di Basi di Dati e Laboratorio




Anomalie delle transazioni concorrenti

T1: bot                        T2: bot
R(lr);
lr = lr-150;
                               R(c/c);
W(lr);
                               c/c=c/c+500;
R(c/c);
                               W(c/c);
                               Commit T2
c/c=c/c+150;
W(c/c);
Commit T1
                   La somma depositata da T2 viene persa
                   (lost update)
  A.A. 2004/2005   Corso di Basi di Dati e Laboratorio
Transazioni
• Atomicità e persistenza      garantite dal
  sottosistema del DBMS denominato “controllore
  dell’affidabilità” (recovery manager)
• Isolamento      garantito dal sottosistema del
  DBMS denominato “controllore della
  concorrenza”
• Consistenza      gestita dal compilatore DDL, che
  introduce opportuni controlli di consistenza e
  opportune procedure per la loro verifica in fase di
  esecuzione delle transazioni.


 A.A. 2004/2005   Corso di Basi di Dati e Laboratorio

Contenu connexe

Similaire à Corso Di Basi Di Dati 10 Transazioni

3 bis i nuovi sistemi di costing
3 bis i nuovi sistemi di costing3 bis i nuovi sistemi di costing
3 bis i nuovi sistemi di costingGiacomo Migliorini
 
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q Lguestbe916c
 
Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...
Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...
Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...Emerasoft, solutions to collaborate
 
Agile Day 2012 - Sviluppo agile in un contesto bancario: come far convivere t...
Agile Day 2012 - Sviluppo agile in un contesto bancario: come far convivere t...Agile Day 2012 - Sviluppo agile in un contesto bancario: come far convivere t...
Agile Day 2012 - Sviluppo agile in un contesto bancario: come far convivere t...Tommaso Torti
 
corso oracle plsql.ppt
corso oracle plsql.pptcorso oracle plsql.ppt
corso oracle plsql.pptssuserf7962d
 
MANAGEMENT DELLA QUALITA'
MANAGEMENT DELLA QUALITA'MANAGEMENT DELLA QUALITA'
MANAGEMENT DELLA QUALITA'GiuliaForconi
 
"Sistemi managed in alta affidabilità e in open source" by Andrea Di Marco
"Sistemi managed in alta affidabilità e in open source" by Andrea Di Marco"Sistemi managed in alta affidabilità e in open source" by Andrea Di Marco
"Sistemi managed in alta affidabilità e in open source" by Andrea Di MarcoThinkOpen
 
Model-View-ViewModel
Model-View-ViewModelModel-View-ViewModel
Model-View-ViewModelDotNetMarche
 
TSQL Advanced Query Techniques
TSQL Advanced Query TechniquesTSQL Advanced Query Techniques
TSQL Advanced Query TechniquesGianluca Sartori
 
Il deploy è nulla senza il monitoring - Azure Day
Il deploy è nulla senza il monitoring - Azure DayIl deploy è nulla senza il monitoring - Azure Day
Il deploy è nulla senza il monitoring - Azure DayEmanuele Garofalo
 
Il modulo dell'efficienza: L'OEE
Il modulo dell'efficienza: L'OEEIl modulo dell'efficienza: L'OEE
Il modulo dell'efficienza: L'OEEnextsrl
 
IMPROVE 4.0
IMPROVE 4.0IMPROVE 4.0
IMPROVE 4.0nextsrl
 
F1 Vincoli Procedure Trigger
F1 Vincoli Procedure TriggerF1 Vincoli Procedure Trigger
F1 Vincoli Procedure TriggerMajong DevJfu
 
Layered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRSLayered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRSAndrea Saltarello
 
Verziagi Paolo, EMAK - Minitab, alcuni casi aziendali
Verziagi Paolo, EMAK - Minitab, alcuni casi aziendaliVerziagi Paolo, EMAK - Minitab, alcuni casi aziendali
Verziagi Paolo, EMAK - Minitab, alcuni casi aziendaliGMSL S.r.l.
 
Semi-Active Replication Protocol
Semi-Active Replication ProtocolSemi-Active Replication Protocol
Semi-Active Replication ProtocolPaolo Maresca
 
REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...
REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...
REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...Enrico Paluzzano
 
Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Fabio Armani
 

Similaire à Corso Di Basi Di Dati 10 Transazioni (20)

3 bis i nuovi sistemi di costing
3 bis i nuovi sistemi di costing3 bis i nuovi sistemi di costing
3 bis i nuovi sistemi di costing
 
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
 
Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...
Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...
Polarion UC 2010 - Reale Mutua Assicurazioni - Il Change Management Applicati...
 
Agile Day 2012 - Sviluppo agile in un contesto bancario: come far convivere t...
Agile Day 2012 - Sviluppo agile in un contesto bancario: come far convivere t...Agile Day 2012 - Sviluppo agile in un contesto bancario: come far convivere t...
Agile Day 2012 - Sviluppo agile in un contesto bancario: come far convivere t...
 
corso oracle plsql.ppt
corso oracle plsql.pptcorso oracle plsql.ppt
corso oracle plsql.ppt
 
MANAGEMENT DELLA QUALITA'
MANAGEMENT DELLA QUALITA'MANAGEMENT DELLA QUALITA'
MANAGEMENT DELLA QUALITA'
 
"Sistemi managed in alta affidabilità e in open source" by Andrea Di Marco
"Sistemi managed in alta affidabilità e in open source" by Andrea Di Marco"Sistemi managed in alta affidabilità e in open source" by Andrea Di Marco
"Sistemi managed in alta affidabilità e in open source" by Andrea Di Marco
 
Model-View-ViewModel
Model-View-ViewModelModel-View-ViewModel
Model-View-ViewModel
 
TSQL Advanced Query Techniques
TSQL Advanced Query TechniquesTSQL Advanced Query Techniques
TSQL Advanced Query Techniques
 
Demand Driven MRP - Come implementarlo con successo in azienda
Demand Driven MRP -  Come implementarlo con successo in aziendaDemand Driven MRP -  Come implementarlo con successo in azienda
Demand Driven MRP - Come implementarlo con successo in azienda
 
Il deploy è nulla senza il monitoring - Azure Day
Il deploy è nulla senza il monitoring - Azure DayIl deploy è nulla senza il monitoring - Azure Day
Il deploy è nulla senza il monitoring - Azure Day
 
Java codestyle & tipstricks
Java codestyle & tipstricksJava codestyle & tipstricks
Java codestyle & tipstricks
 
Il modulo dell'efficienza: L'OEE
Il modulo dell'efficienza: L'OEEIl modulo dell'efficienza: L'OEE
Il modulo dell'efficienza: L'OEE
 
IMPROVE 4.0
IMPROVE 4.0IMPROVE 4.0
IMPROVE 4.0
 
F1 Vincoli Procedure Trigger
F1 Vincoli Procedure TriggerF1 Vincoli Procedure Trigger
F1 Vincoli Procedure Trigger
 
Layered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRSLayered Expression Trees feat. CQRS
Layered Expression Trees feat. CQRS
 
Verziagi Paolo, EMAK - Minitab, alcuni casi aziendali
Verziagi Paolo, EMAK - Minitab, alcuni casi aziendaliVerziagi Paolo, EMAK - Minitab, alcuni casi aziendali
Verziagi Paolo, EMAK - Minitab, alcuni casi aziendali
 
Semi-Active Replication Protocol
Semi-Active Replication ProtocolSemi-Active Replication Protocol
Semi-Active Replication Protocol
 
REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...
REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...
REALIZZAZIONE DI UN SOFTWARE DI COMUNICAZIONE MULTIPROTOCOLLO PER IL CONTROLL...
 
Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)
 

Plus de guestbe916c

Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
Laboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H PLaboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H P
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H Pguestbe916c
 
Laboratorio Di Basi Di Dati 08 Il Web Server Apache
Laboratorio Di  Basi Di  Dati 08  Il  Web Server  ApacheLaboratorio Di  Basi Di  Dati 08  Il  Web Server  Apache
Laboratorio Di Basi Di Dati 08 Il Web Server Apacheguestbe916c
 
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M Lguestbe916c
 
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
Laboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q LLaboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q L
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q Lguestbe916c
 
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M S
Laboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M SLaboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M S
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M Sguestbe916c
 
Laboratorio Di Basi Di Dati 01 Introduzione
Laboratorio Di  Basi Di  Dati 01 IntroduzioneLaboratorio Di  Basi Di  Dati 01 Introduzione
Laboratorio Di Basi Di Dati 01 Introduzioneguestbe916c
 
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
Laboratorio Di  Basi Di  Dati 10  P H P    Cookie E SessioniLaboratorio Di  Basi Di  Dati 10  P H P    Cookie E Sessioni
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioniguestbe916c
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controlloguestbe916c
 
Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q Lguestbe916c
 
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
Laboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato ServerLaboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato Server
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Serverguestbe916c
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Clientguestbe916c
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionaleguestbe916c
 
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
Corso Di  Basi Di  Dati 06  Esercizi Di Progettazione ConcettualeCorso Di  Basi Di  Dati 06  Esercizi Di Progettazione Concettuale
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettualeguestbe916c
 
Corso Di Basi Di Dati 03 Progettazione Concettuale
Corso Di  Basi Di  Dati 03  Progettazione ConcettualeCorso Di  Basi Di  Dati 03  Progettazione Concettuale
Corso Di Basi Di Dati 03 Progettazione Concettualeguestbe916c
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazioneguestbe916c
 
Corso Di Basi Di Dati 04 Progettazione Logica
Corso Di  Basi Di  Dati 04  Progettazione LogicaCorso Di  Basi Di  Dati 04  Progettazione Logica
Corso Di Basi Di Dati 04 Progettazione Logicaguestbe916c
 
Corso Di Basi Di Dati 02 S Q L Query
Corso Di  Basi Di  Dati 02  S Q L   QueryCorso Di  Basi Di  Dati 02  S Q L   Query
Corso Di Basi Di Dati 02 S Q L Queryguestbe916c
 
Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q Lguestbe916c
 
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
Corso Di  Basi Di  Dati 01  Algebra Relazionale   OttimizzazioniCorso Di  Basi Di  Dati 01  Algebra Relazionale   Ottimizzazioni
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioniguestbe916c
 

Plus de guestbe916c (20)

Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
Laboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H PLaboratorio Di  Basi Di  Dati 09  Il Linguaggio  P H P
Laboratorio Di Basi Di Dati 09 Il Linguaggio P H P
 
Laboratorio Di Basi Di Dati 08 Il Web Server Apache
Laboratorio Di  Basi Di  Dati 08  Il  Web Server  ApacheLaboratorio Di  Basi Di  Dati 08  Il  Web Server  Apache
Laboratorio Di Basi Di Dati 08 Il Web Server Apache
 
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
 
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
Laboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q LLaboratorio Di  Basi Di  Dati 03  Il  D B M S  Postgre S Q L
Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L
 
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M S
Laboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M SLaboratorio Di  Basi Di  Dati 11  P H P   Interazione Con I  D B M S
Laboratorio Di Basi Di Dati 11 P H P Interazione Con I D B M S
 
Laboratorio Di Basi Di Dati 01 Introduzione
Laboratorio Di  Basi Di  Dati 01 IntroduzioneLaboratorio Di  Basi Di  Dati 01 Introduzione
Laboratorio Di Basi Di Dati 01 Introduzione
 
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
Laboratorio Di  Basi Di  Dati 10  P H P    Cookie E SessioniLaboratorio Di  Basi Di  Dati 10  P H P    Cookie E Sessioni
Laboratorio Di Basi Di Dati 10 P H P Cookie E Sessioni
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controllo
 
Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q L
 
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
Laboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato ServerLaboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato Server
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionale
 
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
Corso Di  Basi Di  Dati 06  Esercizi Di Progettazione ConcettualeCorso Di  Basi Di  Dati 06  Esercizi Di Progettazione Concettuale
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
 
Corso Di Basi Di Dati 03 Progettazione Concettuale
Corso Di  Basi Di  Dati 03  Progettazione ConcettualeCorso Di  Basi Di  Dati 03  Progettazione Concettuale
Corso Di Basi Di Dati 03 Progettazione Concettuale
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazione
 
Corso Di Basi Di Dati 04 Progettazione Logica
Corso Di  Basi Di  Dati 04  Progettazione LogicaCorso Di  Basi Di  Dati 04  Progettazione Logica
Corso Di Basi Di Dati 04 Progettazione Logica
 
Corso Di Basi Di Dati 02 S Q L Query
Corso Di  Basi Di  Dati 02  S Q L   QueryCorso Di  Basi Di  Dati 02  S Q L   Query
Corso Di Basi Di Dati 02 S Q L Query
 
Algebra
AlgebraAlgebra
Algebra
 
Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q L
 
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
Corso Di  Basi Di  Dati 01  Algebra Relazionale   OttimizzazioniCorso Di  Basi Di  Dati 01  Algebra Relazionale   Ottimizzazioni
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
 

Corso Di Basi Di Dati 10 Transazioni

  • 1. Corso di Basi di Dati e Laboratorio TRANSAZIONI (concetti introduttivi) A.A. 2004/2005 Corso di Basi di Dati e Laboratorio 1 Transazioni Transazione Unità elementare di lavoro svolta da un programma applicativo, cui si vogliono associare particolari caratteristiche di correttezza, robustezza e isolamento. Sintatticamente, una transazione è l’insieme delle istruzioni compresa tra i due comandi • begin transaction • end transaction A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
  • 2. Transazioni • Altri comandi particolari nel codice di una transazione – commit work (o commit) – rollback work (o abort) • L’effetto di questi due comandi è decisivo per l’esito della transazione – commit ==> la transazione va a buon fine – abort ==> la transazione fallisce • ESEMPIO/* operazione bancaria di trasferimento tra due c/c */ begin transaction c/c1 := c/c1-10; c/c2 := c/c2+10; commit work; end transaction A.A. 2004/2005 Corso di Basi di Dati e Laboratorio Transazioni - proprietà • Tutto il codice compreso tra begin transaction e end transaction gode delle cosiddette proprietà ACIDe – Atomicità – Consistenza – Isolamento – Durability (Persistenza) A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
  • 3. Transazioni - proprietà • Atomicità: una transazione rappresenta una unita’ indivisibile di esecuzione. • O vengono resi visibili tutti i suoi effetti nella BD, oppure la t. non ha nessun effetto sulla BD (approccio “tutto-o-niente”). • In altre parole, non è possibile che la BD venga lasciata in uno stato intermedio attraversato durante l’elaborazione della transazione. A.A. 2004/2005 Corso di Basi di Dati e Laboratorio Transazioni - proprietà Conseguenze sul piano operativo • La corretta esecuzione dell’operazione di commit fissa il momento in cui la t. va a buon fine e i suoi effetti possono essere visibili nella BD. • Se si verifica un errore e qualche operazione (lettura/scrittura) della t. fallisce prima dell’operazione di commit, il DBMS deve essere in grado di ricostruire la situazione della BD all’inizio della t. disfacendo il lavoro compiuto fino a quel momento dalla t. (operazione di UNDO) • Dopo l’esecuzione del commit, il DBMS deve assicurare che la t. lasci la bd nel suo stato finale. Questo può richiedere di dover rifare (operazione di REDO) alcune operazioni. A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
  • 4. Transazioni - proprietà • Consistenza: l’esecuzione di una t. non deve violare i vincoli di integrità definiti sulla BD. Quando il DBMS rileva che una t. in esecuzione sta violando un vincolo (ad es., viene inserita una tupla in una tabella con un valore di chiave già presente nella tabella), interviene per annullare la t. o per correggere la violazione al vincolo. A.A. 2004/2005 Corso di Basi di Dati e Laboratorio Transazioni - proprietà • Isolamento: l’esecuzione di una t. deve essere indipendente dalla contemporanea esecuzione di altre t. • Si richiede che l’esecuzione concorrente di un insieme di t. sia analogo al risultato che le stesse t. otterrebbero nel caso in cui ciascuna di esse fosse eseguita da sola. • Si evita che il rollback di una t. causi il rollback di altre t. (effetto domino). Questo potrebbe accadere se una t. leggesse i dati modificati da un’altra t. che non abbia ancora eseguito il comando di commit e che non termina correttamente (abort). A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
  • 5. Transazioni - proprietà • Persistenza: l’effetto di una t. che ha eseguito il commit correttamente non deve essere piu’ perso. In altre parole, i dati contenuti nella BD non devono essere persi per nessun motivo. A.A. 2004/2005 Corso di Basi di Dati e Laboratorio Anomalie delle transazioni concorrenti T1: bot T2: bot R(lr); lr = lr-150; R(c/c); W(lr); c/c=c/c+500; R(c/c); W(c/c); Commit T2 c/c=c/c+150; W(c/c); Commit T1 La somma depositata da T2 viene persa (lost update) A.A. 2004/2005 Corso di Basi di Dati e Laboratorio
  • 6. Transazioni • Atomicità e persistenza garantite dal sottosistema del DBMS denominato “controllore dell’affidabilità” (recovery manager) • Isolamento garantito dal sottosistema del DBMS denominato “controllore della concorrenza” • Consistenza gestita dal compilatore DDL, che introduce opportuni controlli di consistenza e opportune procedure per la loro verifica in fase di esecuzione delle transazioni. A.A. 2004/2005 Corso di Basi di Dati e Laboratorio