Linguaggio SQL: costrutti avanzati

Documenti analoghi
Pag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo

Tecnologia di un Database Server (centralizzato) Introduzione generale

Introduzione all Architettura del DBMS

Data Base Management System. Strumenti: Formato: Pro: Contro: Software specifico. Proprietario

L architettura di un DBMS

Il linguaggio SQL: transazioni

DB - Cenni sulla gestione delle transazioni

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Basi di Dati prof. A. Longheu. 5 Progettazione fisica

Basi di dati. Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: presentazione corso (1.

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Corso di Informatica

Introduzione al data base

Corso di Basi di Dati e Conoscenza

Sistemi di gestione delle basi di dati. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Esecuzione concorrente di transazioni

Archivi e database. Lezione n. 7

DESIGNAZIONE: Rappresenta una relazione tra due entità di tipo 1 ad M. Esempio tipico è : REPARTO IMPIEGATO

Basi di Dati Distribuite

Base di dati e sistemi informativi

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Tecnologia di un Database Server (centralizzato) Gestione dell affidabilità

Al giorno d oggi, i sistemi per la gestione di database

Modello relazionale. ing. Alfredo Cozzi 1

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Lezione 1. Introduzione e Modellazione Concettuale

Transazioni. Capitolo 13. Scrittura immediata e scrittura differita. Concorrenza in un DBMS. Una transazione. Gestione delle transazioni

Le funzionalità di un DBMS

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Il Modello Relazionale

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Nuova procedura di Cassa Contanti Wingesfar: istruzioni per le farmacie Novembre 2009

Sistemi centralizzati e distribuiti

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER

Facoltà di Farmacia - Corso di Informatica

IL SISTEMA INFORMATIVO

TRANSAZIONI DISTRIBUITE TRANSAZIONI

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Introduzione alle basi di dati (prima parte)

Transazioni in SQL. Nicola Vitacolonna Corso di Basi di Dati Università degli Studi di Udine 4 dicembre 2013

Organizzazione degli archivi

Finalità della soluzione Schema generale e modalità d integrazione Gestione centralizzata in TeamPortal... 6

1.1 Introduzione alle basi di dati

Gestione Turni. Introduzione

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Tecnologia di un Database Server (centralizzato) Gestione del buffer

TEORIA DEI SISTEMI OPERATIVI

BASE DI DATI: sicurezza. Informatica febbraio ASA

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Progettaz. e sviluppo Data Base

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

AI DIRETTORI REGIONALI AI DIRETTORI PROVINCIALI e SUBPROVINCIALI AI DIRETTORI DELLE AGENZIE

Gestione delle tabelle

IL CONTRIBUTO STATALE PER LA PERDITA DI GETTITO I.C.I. RIFERITA AGLI IMMOBILI DEL GRUPPO CATASTALE D

1. BASI DI DATI: GENERALITÀ

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Le banche e la moneta bancaria. Il conto corrente

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

Basi di Dati. prof. Letizia Tanca. Le transazioni e il database server, cenni sui nuovi sistemi per Big Data

Progettazione di Basi di Dati

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Linee guida per la programmazione di transazioni in PL/SQL

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Fatturazione elettronica con WebCare

DBMS (Data Base Management System)

LABORATORIO di INFORMATICA

FARO. Il Bancomat più vicino in tempo reale

Recovery manager Gestore della affidabilità

Basi di dati 9 febbraio 2010 Compito A

Regione Piemonte Portale Rilevazioni Crediti EELL Manuale Utente

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

TEORIA sulle BASI DI DATI

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Pillola 2015/057 del 06/10/2015: Cassa contanti - Panoramica

I database relazionali (Access)

Introduzione alla teoria dei database relazionali. Come progettare un database

Pillola 2015/058 del 13/10/2015: Cassa contanti - Gestione

Artifact Centric Business Processes (I)

8 Tecniche di recovery

FIRESHOP.NET. Gestione completa degli ordini e degli impegni. Rev

Transcript:

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 di prelievo dal proprio conto corrente mediante bancomat 4 Pag. 2 2

Esempio applicativo Operazioni bancarie operazione di prelievo dal proprio conto corrente mediante bancomat operazione di versamento di denaro contante sul proprio conto corrente 5 Prelievo Operazioni svolte specificare l importo richiesto verificare la disponibilità memorizzare il movimento aggiornare il saldo abilitare l erogazione della somma richiesta 6 Pag. 3 3

Prelievo Operazioni svolte specificare l importo richiesto verificare la disponibilità memorizzare il movimento aggiornare il saldo abilitare l erogazione della somma richiesta Tutte le operazioni devono essere eseguite correttamente, altrimenti il prelievo non va a buon fine 7 Prelievo Cosa succede se un cointestatario diverso del conto fa un altro prelievo? 8 Pag. 4 4

Prelievo Cosa succede se un cointestatario diverso del conto fa un altro prelievo? Cosa succede in caso di malfunzionamento? 9 Versamento Operazioni svolte verificare l importo versato memorizzare il movimento aggiornare il saldo Tutte le operazioni devono essere eseguite correttamente, altrimenti il versamento non va a buon fine 10 Pag. 5 5

Versamento Cosa succede se un altra persona fa un versamento sullo stesso conto? 11 Versamento Cosa succede se un altra persona fa un versamento sullo stesso conto? Cosa succede in caso di malfunzionamento? 12 Pag. 6 6

Esempio: operazioni bancarie La base di dati bancaria è un ambiente multiutente diversi operatori possono operare contemporaneamente sulla stessa porzione di dati 13 Esempio: operazioni bancarie La base di dati bancaria è un ambiente multiutente diversi operatori possono operare contemporaneamente sulla stessa porzione di dati La corretta gestione delle informazioni richiede meccanismi per la gestione dell accesso concorrente alla base di dati 14 Pag. 7 7

Esempio: operazioni bancarie La base di dati bancaria è un ambiente multiutente diversi operatori possono operare contemporaneamente sulla stessa porzione di dati La corretta gestione delle informazioni richiede meccanismi per la gestione dell accesso concorrente alla base di dati meccanismi per il ripristino (recovery) dello stato corretto della base di dati in caso di guasti 15 Gestione delle transazioni Necessaria quando più utenti possono accedere contemporaneamente ai dati Offre meccanismi efficienti per gestire l accesso concorrente ai dati effettuare il recovery a seguito di un malfunzionamento 16 Pag. 8 8

Transazione Una transazione è una sequenza di operazioni che rappresenta un unità elementare di lavoro può concludersi con un successo o un insuccesso in caso di successo, il risultato delle operazioni eseguite deve essere permanente nella base di dati in caso di insuccesso, la base di dati deve ritornare allo stato precedente l inizio della transazione 17 Sistema transazionale Un sistema che mette a disposizione un meccanismo per la definizione e l esecuzione di transazioni viene detto sistema transazionale I DBMS contengono blocchi architetturali che offrono servizi di gestione delle transazioni 18 Pag. 9 9

Gestione delle transazioni Transazione Una transazione è un unità logica di lavoro, non ulteriormente scomponibile una sequenza di operazioni (istruzioni SQL) di modifica dei dati, che porta la base di dati da uno stato consistente a un altro stato consistente non è necessario conservare la consistenza negli stati intermedi 20 Pag. 10 10

Inizio di una transazione Per definire l inizio di una transazione, il linguaggio SQL prevede l istruzione START TRANSACTION 21 Inizio di una transazione Per definire l inizio di una transazione, il linguaggio SQL prevede l istruzione START TRANSACTION Di solito l istruzione di inizio della transazione è omessa l inizio è implicito prima istruzione SQL del programma che accede alla base di dati prima istruzione SQL successiva all istruzione di termine della transazione precedente 22 Pag. 11 11

Fine di una transazione Il linguaggio SQL prevede istruzioni per definire la fine di una transazione Transazione terminata con successo COMMIT [WORK] l azione associata all istruzione si chiama commit 23 Fine di una transazione Il linguaggio SQL prevede istruzioni per definire la fine di una transazione Transazione terminata con successo COMMIT [WORK] l azione associata all istruzione si chiama commit Transazione terminata con insuccesso ROLLBACK [WORK] l azione associata all istruzione si chiama abort 24 Pag. 12 12

Commit Azione eseguita quando una transazione termina con successo 25 Commit Azione eseguita quando una transazione termina con successo La base di dati è in un nuovo stato (finale) corretto Le modifiche dei dati effettuate dalla transazione divengono permanenti visibili agli altri utenti 26 Pag. 13 13

Rollback Azione eseguita quando una transazione termina a causa di un errore per esempio, di un errore applicativo 27 Rollback Azione eseguita quando una transazione termina a causa di un errore per esempio, di un errore applicativo Tutte le operazioni di modifica dei dati eseguite durante la transazione sono annullate La base di dati ritorna nello stato precedente l inizio della transazione i dati sono nuovamente visibili agli altri utenti 28 Pag. 14 14

Esempio Trasferire la somma 100 dal conto corrente bancario IT92X0108201004300000322229 al conto corrente bancario IT32L0201601002410000278976 29 Esempio Trasferire la somma 100 dal conto corrente bancario IT92X0108201004300000322229 al conto corrente bancario IT32L0201601002410000278976 START TRANSACTION; 30 Pag. 15 15

Esempio Trasferire la somma 100 dal conto corrente bancario IT92X0108201004300000322229 al conto corrente bancario IT32L0201601002410000278976 START TRANSACTION; UPDATE Conto-Corrente SET Saldo = Saldo + 100 WHERE IBAN='IT92X0108201004300000322229'; 31 Esempio Trasferire la somma 100 dal conto corrente bancario IT92X0108201004300000322229 al conto corrente bancario IT32L0201601002410000278976 START TRANSACTION; UPDATE Conto-Corrente SET Saldo = Saldo + 100 WHERE IBAN='IT92X0108201004300000322229'; UPDATE Conto-Corrente SET Saldo = Saldo - 100 WHERE IBAN= 'IT32L0201601002410000278976'; 32 Pag. 16 16

Esempio Trasferire la somma 100 dal conto corrente bancario IT92X0108201004300000322229 al conto corrente bancario IT32L0201601002410000278976 START TRANSACTION; UPDATE Conto-Corrente SET Saldo = Saldo + 100 WHERE IBAN='IT92X0108201004300000322229'; UPDATE Conto-Corrente SET Saldo = Saldo - 100 WHERE IBAN= 'IT32L0201601002410000278976'; COMMIT; 33 Gestione delle transazioni Pag. 17 17

Proprietà delle transazioni Le proprietà principali delle transazioni sono Atomicity atomicità 35 Proprietà delle transazioni Le proprietà principali delle transazioni sono Atomicity atomicità Consistency consistenza 36 Pag. 18 18

Proprietà delle transazioni Le proprietà principali delle transazioni sono Atomicity atomicità Consistency consistenza Isolation isolamento 37 Proprietà delle transazioni Le proprietà principali delle transazioni sono Atomicity atomicità Consistency consistenza Isolation isolamento Durability persistenza (o durabilità) 38 Pag. 19 19

Proprietà delle transazioni Le proprietà principali delle transazioni sono Atomicity atomicità Consistency consistenza Isolation isolamento Durability persistenza (o durabilità) Sono riassunte dall acronimo (inglese) ACID 39 Atomicità Una transazione è un unità indivisibile (atomo) di lavoro devono essere eseguite tutte le operazioni contenute nella transazione oppure nessuna delle operazioni contenute nella transazione deve essere eseguita la transazione non ha nessun effetto sulla base di dati 40 Pag. 20 20

Atomicità Una transazione è un unità indivisibile (atomo) di lavoro devono essere eseguite tutte le operazioni contenute nella transazione oppure nessuna delle operazioni contenute nella transazione deve essere eseguita la transazione non ha nessun effetto sulla base di dati La base di dati non può rimanere in uno stato intermedio assunto durante l esecuzione di una transazione 41 Consistenza L esecuzione di una transazione deve portare la base di dati da uno stato iniziale consistente (corretto) a uno stato finale consistente 42 Pag. 21 21

Consistenza L esecuzione di una transazione deve portare la base di dati da uno stato iniziale consistente (corretto) a uno stato finale consistente La correttezza è verificata dai vincoli di integrità definiti sulla base di dati 43 Consistenza L esecuzione di una transazione deve portare la base di dati da uno stato iniziale consistente (corretto) a uno stato finale consistente La correttezza è verificata dai vincoli di integrità definiti sulla base di dati Quando si verifica la violazione di un vincolo di integrità il sistema interviene per annullare la transazione oppure, per modificare lo stato della base di dati eliminando la violazione del vincolo 44 Pag. 22 22

Isolamento L esecuzione di una transazione è indipendente dalla contemporanea esecuzione di altre transazioni 45 Isolamento L esecuzione di una transazione è indipendente dalla contemporanea esecuzione di altre transazioni Gli effetti di una transazione non sono visibili dalle altre transazioni fino a quando la transazione non è terminata si evita la visibilità di stati intermedi non stabili uno stato intermedio può essere annullato da un rollback successivo in caso di rollback, è necessario effettuare rollback delle altre transazioni che hanno osservato lo stato intermedio (effetto domino) 46 Pag. 23 23

Persistenza L effetto di una transazione che ha effettuato il commit è memorizzato in modo permanente le modifiche dei dati eseguite da una transazione terminata con successo sono permanenti dopo il commit 47 Persistenza L effetto di una transazione che ha effettuato il commit è memorizzato in modo permanente le modifiche dei dati eseguite da una transazione terminata con successo sono permanenti dopo il commit Garantisce l affidabilità delle operazioni di modifica dei dati i DBMS offrono meccanismi di ripristino dello stato corretto della base di dati dopo che si è verificato un guasto 48 Pag. 24 24