1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD,...

27
1 Le transazioni Itis Max Planck

Transcript of 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD,...

Page 1: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

1

Le transazioni

Itis Max Planck

Page 2: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

2

Definizione di transazione

• Sequenza di operazioni sulla BD, trattata dal sistema come un’unità di lavoro indivisibile, cioè non può avere un effetto parziale.

• Consiste in un insieme di operazioni di interrogazione o modifica della BD che devono essere eseguite unitariamente come se fossero un’unica operazione.

Itis Max Planck

Page 3: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

3

Continua Transazioni

• La transazione costituisce un’unità logica di lavoro

• Esempio: transazioni bancarie prelievo allo sportello– Registrata operazione prelievo

– Aggiornamento del saldo, controllando la sua disponibilità

N.B. se una di queste operazioni non va a buon fine devono essere annullate anche le altre.

Itis Max Planck

Page 4: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

4

Comandi

• Begin transaction• Commit• Rollback

Itis Max Planck

Page 5: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

5

Continua

• Solo quando la transazione termina con successo (committed transaction), la BD transita in un nuovo stato.

• Se invece la transazione termina prematuramente (aborted transaction), per il sistema è come se non fosse mai iniziata: la BD si troverà nello stato esistente prima che la transazione iniziasse, vengono perciò intraprese opportune azioni rollback.

Itis Max Planck

Page 6: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

6

Comandi speciali

• Rollback: ha l’effetto di annullare tutte le modifiche alla base di dati apportate dall’inizio della transazione.

• Commit indica la conferma di tutto il lavoro fatto e termina la transazione.

Itis Max Planck

Page 7: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

Stati avanzamento transazione

Itis Max Planck 7

ParzialmenteCOMMITED

FALLITA

COMMITTED

ABORTITA

\

errori

ATTIVATA

Page 8: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

8

Perché termina una transazione

• Errori logici

• Fallimenti voluti dall’utente

• Sbloccare situazione di stallo, in caso di accesso concorrente

• Anomalia HW o SW

• Crash di sistema

Itis Max Planck

Page 9: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

9

Come ripristinare lo stato

1. Il sistema gestisce opportuni dati ausiliari per poter ripristinare lo stato esistente prima che la transazione iniziasse.

2. Backup copy3. Durante l’uso della BD il sistema registra

nel giornale delle modifiche (journal), la storia delle modifiche fatte sin dal momento in cui è stata fatta l’ultima copia

Itis Max Planck

Page 10: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

10

Journal

Informazioni contenute nel Journal:

• Identificatore della transazione

• Tipo operazione

• Riferimento al dato modificato

• Per ogni attributo modificato il vecchio e nuovo valore

Itis Max Planck

Page 11: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

11

Proprietà ACID

• Atomicità

• Consistenza

• Isolamento

• Persistenza (Durability)

Itis Max Planck

Page 12: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

12

Uso concorrente

• T1 e T2 vogliono modificare lo stesso dato R:

• t1: T1 riceve copia di R;

• t2: T2 riceve copia di R;

• t3:T1 aggiorna R e lo memorizza

• t4:T2 aggiorna R e lo memorizza

Itis Max Planck

Page 13: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

13

Uso concorrente

• L’esecuzione contemporanea di più transazioni è corretta se e solo se l’effetto è lo stesso di quello ottenibile eseguendo le transazioni serialmente, in un qualche ordine.

Itis Max Planck

Page 14: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

14

Lo scheduler

Due possibili strategie

1. Impedire a T2 al tempo t2 di proseguire, perché T1 ha già avuto accesso al dato per modificarlo

2. Impedire a T2al tempo t4 di modificare il dato, perché le sue operazioni sono state fatte a partire da un dato nel frattempo modificato da T1. T2 viene interrotta e fatta ripartire.

Itis Max Planck

Page 15: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

15

Continua

• Nella prima soluzione i dati vengono concessi in uso esclusivo alla transazione che intende modificarli (lock dei dati).

• La seconda soluzione, ordinamento temporale.

Itis Max Planck

Page 16: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

Le transazioni in SQL

• BEGIN TRANSACTION: prima della serie di istruzioni della transazione

• COMMIT: conferma la fine di una transazione corretta

• ROLLBACK: ripristina il database allo stato in cui era prima del comando BEGIN TRANSACTION, nel caso che i risultati della transazione non corrispondano a quelli attesi.

Itis Max Planck 16

Page 17: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

Controllo della concorrenza

• Def: Due transazioni si dicono concorrenti se una ha inizio prima della terminazione dell’altra.

• La proprietà di isolamento è garantita se tutte le transazioni vengono eseguite in modo seriale.

• Problema: si allungano i tempi di risposta.• Introduzione schedulatore

Itis Max Planck 17

Page 18: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

Proprietà isolamento nelle transazioni

• La proprietà di isolamento consiste nell’escludere quelle schedulazioni che possono portare ai seguenti fenomeni:

1. Aggiornamento perduto

2. Lettura sporca

3. Lettura non – ripetibile

4. Scrittura o lettura dati inesistenti

5. Fenomeno dei fantasmi

Itis Max Planck 18

Page 19: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

Schedulazioni serializabili

• Soluzione problema gestione concorrenza:• Schedulazioni seriali• Schedulazioni non seriali, ma serializzabili• Schedulazioni non serializzabili.• Le schedulazioni serializzabili è una

schedulazione che produce gli stessi effetti di una schedulazione seriale, ossia garantisce proprietà di isolamento.

Itis Max Planck 19

Page 20: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

Protocollo di bloccaggio

• Per garantire la serializzabilità delle schedulazioni si fa uso dei comandi di bloccaggio, al fine di ordinare gli eventi in modo opportuno.

• Per migliorare il livello di concorrenza, visto che le transazioni per la maggior parte eseguono interrogazioni sulla BD (select), alcuni DBMS mettono a disposizione istruzioni di bloccaggio in sola lettura.

Itis Max Planck 20

Page 21: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

21

Gestione accessi

• Per concedere permesso a determinati utenti di poter compiere determinate operazioni comando grantGRANT UPDATE

ON STUDENTE

TO USER1, USER2;

Itis Max Planck

Page 22: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

Permessi

• per concedere un permesso

• GRANT [operazione] ON [tabella] TO [utente];

• esempio:

• GRANT UPDATE ON STUDENTE TO USER1, USER2;

• per revocare un permesso

• REVOKE [operazione] ON [tabella] TO [utente];

• esempio:

• REVOKE UPDATE ON STUDENTE FROM USER1, USER2;

I permessi che possono essere concessi o revocati sono: ALTER, DELETE, INDEX, INSERT, SELECT, UPDATE

Per concedere o revocare tutti i permessi contemporaneamente: ALL

esempio: GRANT ALL ON STUDENTE TO USER1;

Itis Max Planck 22

Page 23: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

23

Gestione accessi

• Revoca dei permessi avviene con comando revokeREVOKE UPDATE

ON STUDENTE

FROM USER1, USER2;

Itis Max Planck

Page 24: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

24

Permessi

• I permessi che possono essere concessi o revocati sono:ALTER

DELETE

INDEX

INSERT

SELECT

UPDATE

ALL

Itis Max Planck

Page 25: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

25

Le viste

• In SQL è possibile decidere le modalità con le quali gli utenti possono vedere le tabelle del database, creando una vista solo su alcuni dati contenuti su una o più tabelle.

• Una vista (view) quindi è una tabella ridotta ottenuta dalle tabelle di partenza, a disposizione di uno o più utenti che su di essa possono operare con le autorizzazioni viste prima. Itis Max Planck

Page 26: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

26

Viste

• Con le viste è possibile decidere che un utente debba avere una visione solo parziale dei dati registrati nel database si elimina così il rischio di modifiche indesiderate, si proteggono i dati riservati a certi livelli aziendali e si evita che l'utente sia distratto da troppi dati rispetto alle elaborazioni che deve effettuare.

Itis Max Planck

Page 27: 1 Le transazioni Itis Max Planck. 2 Definizione di transazione Sequenza di operazioni sulla BD, trattata dal sistema come ununità di lavoro indivisibile,

27

Creare/Eliminare una vista

CREATE VIEW nomeVistaAS SELECT *FROM tabellaWHERE condizione;

DROP VIEW nomeVista;

Itis Max Planck