La gestione della concorrenza

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "La gestione della concorrenza"

Transcript

1 La gestione della concorrenza R. A. Elmasri, S. B. Navathe (Addison Wesley - Pearson) Sistemi di Basi di dati Complementi Capitolo 1 e Capitolo 2 Appunti dalle lezioni Transazione Transazioni e tecnologie di supporto Gestione della concorrenza Gestione della affidabilità La gestione della concorrenza 2 1

2 Isolamento Per migliorare i tempi medi di risposta (TpS), è necessario eseguire più transazioni in maniera concorrente. La proprietà di isolamento garantisce che: il risultato di un insieme di transazioni eseguite in maniera concorrente è in qualche modo equivalente (?) a quello che si otterrebbe se le transazioni fossero eseguite una dopo l altra. venga evitato il Rollback a catena l abort di una transazione provoca l abort di un altra transazione e così via; il Rollback a catena sarebbe particolarmente pericoloso qualora coinvolgesse transazioni che hanno già effettuato il commit. La gestione della concorrenza 3 Anomalie delle Transazioni Concorrenti Perdita di Update Letture sporche Update fantasma Letture inconsistenti Le illustreremo con riferimento ad un oggetto che può essere Un attributo di una tupla Una tupla Un blocco di disco Una tabella L intera base dati La gestione della concorrenza 4 2

3 Anomalie delle Transazioni Concorrenti T1 r(x) x = x+1 w(x) commit Perdita di Update T2 r(x) x = x+1 w(x) commit T1 r(x) x = x + 1 w(x) abort Letture Sporche T2 r(x) x = x+1 w(x) commit La gestione della concorrenza 5 Anomalie delle Transazioni Concorrenti T1 r(x) r(y) r(z) somma=x+y+z commit Update Fantasma T2 r(y) y = y-500 r(z) z = z+500 w(y) w(z) commit T1 r(x) Letture Inconsistenti r(x) commit T2 r(x) x = x+1 w(x) commit La gestione della concorrenza 6 3

4 Teoria Della Concorrenza Il gestore della concorrenza è lo strato più interno di un DBMS. Si occupa di trasferire: blocchi in memoria centrale (read); pagine verso la memoria di massa (write). Scheduler: gestisce le operazioni di lettura/scrittura. La gestione della concorrenza 7 Equivalenza di Scheduling E un concetto complesso Si considerino 2 transazioni T1 e T2. Esistono 2 scheduling sequenziali: T1 T2 T2 T1 n è detto che essi forniscano lo stesso risultato. T1 Update CC set saldo = 0 Commit T2 Update CC set saldo = saldo + 30 Commit La gestione della concorrenza 8 4

5 Soluzioni possibili Uno scheduling è considerato corretto se è equivalente a UNO dei possibili scheduling sequenziali Soluzioni: Protocollo 2 phase locking (2PL) Tecnica basata sui timestamps Tecniche multi-versione Tecniche ottimistiche La gestione della concorrenza 9 Lock Dato Un oggetto della base dati L intera base dati, una tabella, una riga, un attributo Lock Una variabile associata ad un dato che ne descrive lo stato con riferimento alle varie operazioni che ad esso possono essere applicate. Lock binari Due stati: locked/unlocked Troppo restrittivo La gestione della concorrenza 10 5

6 Lock Shared/Exclusive lock: Permettere a più transazioni di accedere allo stesso dato per scopi di sola lettura Se una transazione deve modificare un dato, allora deve averne il controllo esclusivo Primitive: r_lock w_lock unlock. La gestione della concorrenza 11 La gestione dei lock Stato R_locked W_locked Free R_lock OK / r_locked NO / W_locked OK / r_locked Richiesta W_lock NO/ r_locked NO / w_locked OK / w_locked Unlock OK / dipende OK / free error I lock garantiscono che sui dati si operi in maniera mutuamente esclusiva. n garantiscono in alcun modo la serializzabilità. La gestione della concorrenza 12 6

7 Esempio: Perdita di Update T1 RL(x)/r(x)/UL(x) x = x+1 T2 RL(x)/r(x)/UL(x) x = x+1 WL(x)/w(x)/UL(x) commit WL(x)/w(x)/UL(x) commit La gestione della concorrenza 13 Il protocollo 2PL Lo scheduler diventa un lock manager che riceve richieste di lock e decide il da farsi. Transazione ben formata rispetto al locking: ogni operazioni di lettura è preceduta da un r_lock e seguita da un unlock; ogni operazioni di scrittura è preceduta da un w_lock e seguita da un unlock; proprietà garantita di compilatori. La gestione della concorrenza 14 7

8 Il protocollo 2PL Una transazione, dopo aver rilasciato un lock, non può acquisirne altri. In una transazione esiste La fase crescente i lock vengono acquisiti la fase calante i lock vengono rilasciati. E concesso l incremento di lock. La gestione della concorrenza 15 Esempio: Perdita di Update T1 WL(x)/r(x) x = x+1 w(x)/ul(x) T2 WL(x) r(x) x = x+1 w(x)/ul(x) Commit Commit La gestione della concorrenza 16 8

9 Letture Sporche non risolte T1 WL(x)/r(x) x=x+1 w(x)/unlock(x) T2 WL(x)/r(x) x=x+1 w(x)/unlock(x) commit abort La gestione della concorrenza 17 2PL stretto Il problema è legato all ipotesi di Commit Proiezione che è alla base della teoria della concorrenza. Nei sistemi reali tale ipotesi deve, per forza di cose, essere abbandonata. 2PL stretto: al 2PL si aggiunge l ulteriore condizione che le risorse possono essere rilasciate solo dopo il commit/abort. La gestione della concorrenza 18 9

10 Deadlock Il meccanismo dei lock introduce un problema: siano T1 e T2 due transazioni; supponiamo che entrambe operino in scrittura su 2 oggetti x e y; T1 blocca x in scrittura; T2 blocca y in scrittura; T1 aspetta che T2 liberi y; T2 aspetta che T1 liberi x. La situazione può durare all infinito. La gestione della concorrenza 19 Deadlock: Prevention Tecnica di prevenzione esatta: le transazione acquisiscono le risorse di cui hanno bisogno in un colpo solo; se qualche risorsa non è disponibile, non viene assegnata nessuna risorsa. Problemi: non sempre una transazione sa in partenza ciò di cui avrà bisogno; si rischia di bloccare troppi oggetti inutilmente. La gestione della concorrenza 20 10

11 Deadlock: Prevention Tecnica approssimata: tutte le transazioni richiedono i lock nello stesso ordine; non sempre la transazione conosce tutto quello di cui avrà bisogno; Tecnica approssimata: ad ogni transazione è associato un timestamp; se un lock non è concesso, la transazione aspetta solo se essa è più giovane della transazione che detiene il lock; i deadlock sono eliminati ma possiamo avere starvation Una transazione viene continuamente uccisa La gestione della concorrenza 21 Deadlock: Detection n si pongono vincoli alle transazioni. Ad intervalli prefissati il contenuto della tabella dei lock è esaminato e comparato con le richieste pendenti. Si costruisce un grafo delle richieste. Se in tale grafico esiste un ciclo, c è un deadlock. Il ciclo deve essere spezzato uccidendo almeno una transazione. T1 T6 T7 T3 T5 T2 T8 La gestione della concorrenza 22 11

12 Deadlock: Time-Out E la tecnica più semplice e più usata. Ad richiesta di lock è associato un tempo massimo di attesa. Scaduto tale tempo, la richiesta si intende rifiutata e la transazione uccisa. La gestione della concorrenza 23 Granularità dei lock I lock entrano in tutti i metodi. E importante gestirli in maniera efficiente. Cosa blocco? Attributo Granularità fine Base Dati Granularità grossa La granularità ottimale dipende dalla transazione che sto eseguendo Un DBMS supporta diverse granularità e la possibilità di scegliere (in maniera più o meno trasparente all utente) cosa bloccare BD Table 1.. Table n Blocco 1.. Tupla 1.. Attributo 1.. Blocco n Tupla n Attributo n La gestione della concorrenza 24 12

13 Lock gerarchici IS (Intention Shared) Saranno richiesti uno o più lock condivisi su qualche nodo discendente IX (Intention Exclusive) Saranno chiesti uno o più lock esclusivi su qualche nodo discendente SIX (Shared Intension Exclusive) Si richiede il blocco del nodo corrente in maniera condivisa e si annuncia che qualche nodo discendente sarà bloccato in maniera esclusiva La gestione della concorrenza 25 Lock gerarchici Stato Richiesta IS IX S SIX X IS OK OK OK OK IX OK OK S OK OK SIX OK X La gestione della concorrenza 26 13

14 2PL a granularità multipla Si parte dalla radice dell albero Un nodo N può essere bloccato in modalità S o IS solo se il padre è bloccato in modalità IS o IX Un nodo N può essere bloccato in modalità X o IX solo se il padre è bloccato in modalità IX o SIX Una transazione può bloccare un nodo solo se non ne ha sbloccato altri Una transazione T può sbloccare un nodo N solo se T non blocca nessuno dei figli di N La gestione della concorrenza 27 Timestamps Timestamp Identificatore numerico assegnato dal DBMS ad ogni transazione TS(T1)<TS(T2) T1 è iniziata prima di T2 Idea base del Timestamp Ordering Ordinare le transazioni in base ai loro timestamps La gestione della concorrenza 28 14

15 Basic Timestamp ordering Ad ogni oggetto X del DB vengono associati Read_TS Valore del TS della transazione più giovane (TS più elevato) tra le transazioni che hanno letto X Write_TS Valore del TS della transazione più giovane (TS più elevato) tra le transazioni che hanno modificato X La gestione della concorrenza 29 Basic Timestamp ordering La transazione T con timestamp TS chiede di leggere X Se Write_TS(X) > TS T vuole leggere qualcosa scritto da una transazione più giovane La transazione viene annullata e risottomessa al sistema con un nuovo timestamp Altrimenti L operazione di scrittura viene concessa Read_TS(X) = max {Read_TS(X),TS} La gestione della concorrenza 30 15

16 Basic Timestamp ordering La transazione T con timestamp TS chiede di scrivere X Se Read_TS(X) > TS oppure Il dato è stato già letto da una transazione più giovane Se Write_TS(X) > TS Il dato è stato già scritto da una transazione più giovane La transazione viene annullata e risottomessa al sistema con un nuovo timestamp Altrimenti L operazione di scrittura viene concessa Write_TS(X) = TS La gestione della concorrenza 31 Strict Timestamp ordering La versione basic dell algoritmo non ci tutela dai rollback a cascata Versione Strict L operazione di lettura o scrittura di T su X viene ritardata fino a che l ultima transazione T1 che ha scritto X non è terminata (con un committ o con un abort) Tale meccanismo è implementato tramite lock n si generano deadlock in quanto T attende solamente se TS(T) > TS(T1) La gestione della concorrenza 32 16

17 Tecniche multi-versione (MVCC) Ogni volta che un oggetto X viene aggiornato, si tiene traccia anche del suo vecchio valore. X {X 1,X 2, X n } Idea base: Alcune operazioni di lettura rifiutate, ad esempio con una tecnica timestamp, potrebbero essere accettate leggendo una versione più vecchia. La gestione della concorrenza 33 MVCC basato su 2PL Il meccanismo di base è lo strict 2PL Qui, se una transazione ha il WL su un oggetto, le altre non possono né leggerlo né scriverlo. Idea: Manteniamo, per ogni oggetto X, due versioni X1: versione scritta da una transazione che ha eseguito il commit (versione committed) X2: create nel momento in cui una transazione T acquisisce il lock in scrittura La gestione della concorrenza 34 17

18 MVCC basato su 2PL Mentre T detiene il lock in scrittura Le altre che vogliono leggere X leggono la versione committed X1 Quando T vuole fare il commit deve ottenere un certify lock su ogni elemento su cui ha un WL. E un lock esclusivo La gestione della concorrenza 35 MVCC basato su timestamps X {X 1,X 2, X n } Alla generica copia X i Read_TS(X i ) TS della transazione più giovane che ha letto Write_TS(X i ) TS della transazione che ha scritto X i La gestione della concorrenza 36 18

19 MVCC basato su timestamps T richiede di leggere X La richiesta è sempre accettata Il valore letto è l X i tale che Il suo Write_TS(X i ) è il più grande che sia anche minore o uguale di TS(T) La gestione della concorrenza 37 MVCC basato su timestamps T richiede di scrivere X Sia X i : Il suo Write_TS(X i ) è il più grande che sia anche minore o uguale di TS(T) Se TS(T) < Read_TS(X i ) Abort di T Altrimenti Crea una nuova copia di X (X n+1 ) Read_TS(X n+1 ) = Write_TS(X n+1 ) = TS(T) Ancora una volta si presenta il problema dei rollback a catena per cui bisogna prevedere meccanismi di ritardo. La gestione della concorrenza 38 19

20 Tecniche ottimistiche Tecniche di validazione o certificazione. n si attua alcun controllo durante la transazione. Particolarmente efficaci per: Transazioni con basso livello di interferenza. Transazioni che leggono soltanto. La gestione della concorrenza 39 Tecniche ottimistiche Fase di lettura: Si leggono valori committed e le modifiche vengono applicate a copie locali. Se la transazione chiede il committ: Fase di validazione: Ci si assicura che applicare le modifiche non violi la serializzabilità. Fase di scrittura: Se la validazione è superata, le modifiche vengono riportate alla base dati. Altrimenti le modifiche sono scartate e la transazione è riavviata. La gestione della concorrenza 40 20

21 Fase di validazione: esempio Ad ogni transazione viene associato un timestamp. Per ogni transazione si mantiene anche: L istante di inizio e di fine delle tre fasi. Il write-set L elenco degli oggetti che essa scrive Il read-set L elenco degli oggetti che essa legge La gestione della concorrenza 41 Fase di validazione di T Sia TC l insieme delle transazioni che Ha effettuato il commit E in fase di validazione Entra in validazione TC = TC T T viene confrontata con ogni T j TC: T T j Passare la fase di validazione significa passare la validazione nei confronti di ogni T j La gestione della concorrenza 42 21

22 Fase di validazione di T verso T j La validazione di T verso T j è passata se: T j completa la sua fase di scrittura prima che T i inizi la sua fase di lettura Se T j completa la sua fase di scrittura prima che T inizi la sua fase di scrittura WS(T j ) RS(T) = Se T j completa la sua fase di lettura prima che T completi la sua fase di lettura WS(T j ) RS(T) = WS(T j ) WS(T) = Altrimenti T viene uccisa e riavviata. La gestione della concorrenza 43 Livello di isolamento delle Transazioni Il livello di isolamento di una transazione determina il comportamento della stessa. Io posso decidere di accettare alcune anomalie per andare più veloce Uncommitted Read Committed Read Repeatable Read Serializable Sono da intendersi come requisiti al negativo La gestione della concorrenza 44 22

23 Uncommitted Read La transazione accetta di leggere dati modificati da una transazione che non ha ancora fatto il commit Se usiamo il 2PL: Ignora i lock esclusivi in lettura n acquisisce i lock in lettura. Deve però acquisire i lock in scrittura La gestione della concorrenza 45 Committed Read La transazione non legge dati cambiati da una transazione che non ha ancora fatto il commit. Se però essa legge due volte lo stesso dato, può trovare dati diversi. n blocca i dati che legge La gestione della concorrenza 46 23

24 Repeatable Read Si aggiunge al commited read la caratteristica che, se un dato è letto due volte, si avrà sempre lo stesso risultato. Si applica il 2PL stretto Le righe realmente lette non possono essere modificate o cancellate. Possono però essere aggiunte righe anche nell intervallo specificato nella clausola where della transazione che legge. Tutti i dati letti sono read_locked; Un insert non interferisce con questi lock La gestione della concorrenza 47 Serializable Si aggiunge al repeatable read la caratteristica che, se una query è fatta due volte, non vengono aggiunte righe. n sono possibili modifiche neanche all interno dell intervallo coperto nella lettura. Il SERIALIZABLE blocca cioè intervalli di dati, inclusi quelli di fatto non esistono, impedendo cioè che vengano effettuati insert. La gestione della concorrenza 48 24

25 Gestione della concorrenza in PostgreSQL 9.0 Capitolo 13 del manuale Data consistency is maintained by using a multi-version model. This means that while querying a database each transaction sees a snapshot of data (a database version) as it was some time ago, regardless of the current state of the underlying data. This protects the transaction from viewing inconsistent data that could be caused by (other) concurrent transaction updates on the same data rows, providing transaction isolation for each database session. MVCC, by eschewing explicit locking methodologies of traditional database systems, minimizes lock contention in order to allow for reasonable performance in multiuser environments. The main advantage of using the MVCC rather than locking is that in MVCC locks acquired for reading data do not conflict with locks acquired for writing data, and so reading never blocks writing and writing never blocks reading. La gestione della concorrenza 49 Isolation Levels in PostgreSQL 9.0 You can request any of the four standard transaction isolation levels. Internally, there are only two distinct isolation levels, which correspond to the levels Read Committed and Serializable. When you select the level Read Uncommitted you really get Read Committed When you select Repeatable Read you really get Serializable, so the actual isolation level might be stricter than what you select. This is permitted by the SQL standard: the four isolation levels only define which phenomena must not happen, they do not define which phenomena must happen. The reason that PostgreSQL only provides two isolation levels is that this is the only sensible way to map the standard isolation levels to the multiversion concurrency control architecture. La gestione della concorrenza 50 25

26 Isolation Levels in PostgreSQL 9.0 Read Committed is the default isolation level in PostgreSQL start transaction isolation level read uncommitted; start transaction isolation level read committed; start transaction isolation level read committed; start transaction isolation level read committed; set transaction isolation level read uncommitted; set transaction isolation level read committed; set transaction isolation level read committed; set transaction isolation level read committed; La gestione della concorrenza 51 Locks in PostgreSQL 9.0 Table- and row-level locking facilities are also available in PostgreSQL for applications that cannot adapt easily to MVCC behavior. However, proper use of MVCC will generally provide better performance than locks. In addition, application-defined advisory locks provide a mechanism for acquiring locks that are not tied to a single transaction. La gestione della concorrenza 52 26

27 Locks in PostgreSQL 9.0 Locks a livello di tabella LOCK [ TABLE ] [ ONLY ] name [,...] [ IN lockmode MODE ] [ NOWAIT ] lockmode: ACCESS SHARE ROW SHARE ROW EXCLUSIVE SHARE UPDATE EXCLUSIVE SHARE SHARE ROW EXCLUSIVE EXCLUSIVE ACCESS EXCLUSIVE ACCESS SHARE ACCESS EXCLUSIVE n esiste l Unlock! La gestione della concorrenza 53 Locks in PostgreSQL 9.0 Locks a livello di riga SELECT FOR SHARE.. SELECT FOR UPDATE. n esiste l Unlock! La gestione della concorrenza 54 27

28 Isolation levels in JDBC int Connection.getIsolationLevel(); Void Connection.setIsolationLevel(int) TRANSACTION_NONE TRANSCTION_READ_UNCOMMITTED TRANSCTION_READ_COMMITTED TRANSACTION_REPETEABLE_READ TRANSACTION_SERIALIZABLE La gestione della concorrenza 55 La gestione della concorrenza 56 28

La gestione della concorrenza in pratica

La gestione della concorrenza in pratica La gestione della concorrenza in pratica Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 2 Appunti dalle lezioni Soluzioni possibili Uno scheduling è considerato corretto se

Dettagli

Gestione della Concorrenza

Gestione della Concorrenza Corso di Complementi di Basi di Dati Gestione della Concorrenza Angelo Montanari 1 Anomalie delle transazioni concorrenti -1 Perdita di aggiornamento Lettura sporca Aggiornamento fantasma 2 2 Anomalie

Dettagli

Esecuzione concorrente di transazioni

Esecuzione concorrente di transazioni Esecuzione concorrente di transazioni A L B E R T O B E L U S S I P A R T E I I A N N O A C C A D E M I C O 2 0 1 1-2 0 1 2 Tecniche applicate nei DBMS Le tecniche per il controllo della concorrenza che

Dettagli

Transazioni. Transazioni. Stati di una transazione. Transazioni

Transazioni. Transazioni. Stati di una transazione. Transazioni Transazioni Antonella Poggi Domenico Lembo Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico 2009-2010 Transazioni Una transazione

Dettagli

Transazioni. Antonella Poggi. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza

Transazioni. Antonella Poggi. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Transazioni Antonella Poggi Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi sono stati prodotti sulla

Dettagli

Parte 2 Esercitazione sulla gestione della concorrenza

Parte 2 Esercitazione sulla gestione della concorrenza Gestione dei dati Parte 2 Esercitazione sulla gestione della concorrenza Maurizio Lenzerini, Riccardo Rosati Facoltà di Ingegneria Sapienza Università di Roma Anno Accademico 2012/2013 http://www.dis.uniroma1.it/~rosati/gd/

Dettagli

Tratti dal cap. 9 di: Atzeni, Ceri, Paraboschi, Torlone Basi di Dati II edizione, 1999, McGraw-Hill

Tratti dal cap. 9 di: Atzeni, Ceri, Paraboschi, Torlone Basi di Dati II edizione, 1999, McGraw-Hill /XFLGLVXOFRQWUROORGHOODFRQFRUUHQ]D Tratti dal cap. 9 di: Atzeni, Ceri, Paraboschi, Torlone Basi di Dati II edizione, 1999, McGraw-Hill $QRPDOLD /RVW8SGDWH Si considerino le due transazioni identiche: W1

Dettagli

BENEDETTI ALESSANDRO Matricola :252805 PROGETTO DI TECNOLOGIA DELLE BASI DI DATI PARTE 2

BENEDETTI ALESSANDRO Matricola :252805 PROGETTO DI TECNOLOGIA DELLE BASI DI DATI PARTE 2 BENEDETTI ALESSANDRO Matricola :252805 PROGETTO DI TECNOLOGIA DELLE BASI DI DATI PARTE 2 Testo: Sviluppare semplici programmi che permettano di verificare i diversi livelli di isolamento previsti da SQL

Dettagli

Basi di Dati e Sistemi Informativi. Le Transazioni. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Basi di Dati e Sistemi Informativi. Le Transazioni. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Giuseppe Loseto Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Struttura DBMS Gestore delle interrogazioni Decide le strategie di accesso ai dati per rispondere alle interrogazioni Gestore

Dettagli

6.6 Regioni Critiche Condizionali. 6.9 Transazioni Atomiche Modello del Sistema Transazionale

6.6 Regioni Critiche Condizionali. 6.9 Transazioni Atomiche Modello del Sistema Transazionale 45 6.6 Regioni Critiche Condizionali 6.7 Monitor Costrutti linguistici inventati per evitare i problemi di programmazione che facilmente si fanno con i semafori Attenzione con i thread: in tale ambiente

Dettagli

Esecuzione concorrente di transazioni

Esecuzione concorrente di transazioni Esecuzione concorrente di transazioni A L B E R T O B E L U S S I P A R T E I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Osservazione Per gestire con prestazione accettabili il carico di lavoro tipico

Dettagli

Concorrenza, lucidi integrativi

Concorrenza, lucidi integrativi Concorrenza, lucidi integrativi Paolo Atzeni, gennaio 2001 Anomaly 5: Phantom Transaction t 1 Transaction t 2 bot read salaries of employees in dept A and compute average bot insert new employee in Dept

Dettagli

Controllo concorrenza

Controllo concorrenza Controllo concorrenza Esercitazioni - Basi di dati (complementi) Autore: Dr. Simone Grega Esercizio. Dati gli schedule: s r w r w r w s r w r w r3 w r r3 s3 r r3 rz w w3 Specificare, con una breve giustificazione,

Dettagli

Tecnologia di un Database Server (centralizzato) Gestione della concorrenza

Tecnologia di un Database Server (centralizzato) Gestione della concorrenza Concorrenza Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Gestione della concorrenza Angelo Montanari Dipartimento di Matematica e Informatica Università

Dettagli

Esempio di sistema informativo

Esempio di sistema informativo Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2009-2010 2010 Docente: Gigliola Vaglini Docente laboratorio: Luca Martini Esempio di sistema informativo GESTIONE

Dettagli

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

Transazioni in SQL. Nicola Vitacolonna Corso di Basi di Dati Università degli Studi di Udine 4 dicembre 2013 Transazioni in SQL Nicola Vitacolonna Corso di Basi di Dati Università degli Studi di Udine 4 dicembre 2013 1 Introduzione Informalmente, una transazione è una sequenza (arbitrariamente lunga) di operazioni

Dettagli

Basi di Dati Complementi Esercizi Esercizi su concurrency control

Basi di Dati Complementi Esercizi Esercizi su concurrency control Basi di Dati Complementi Esercizi Esercizi su concurrenc control Esercizio. Dati gli schedule : s r w r w r w s r w r w r3 w r r3 s3 r r3 rz w w3 a. specificare, con una breve giustificazione, a quali

Dettagli

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

Basi di Dati prof. A. Longheu. 5 Progettazione fisica Basi di Dati prof. A. Longheu 5 Progettazione fisica Progettazione Fisica Per effettuare la progettazione fisica, ossia l implementazione reale del modello logico creato nella fase della progettazione

Dettagli

Parte VII Gestione delle transazioni

Parte VII Gestione delle transazioni Parte VII Gestione delle transazioni Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VII - 1 Funzioni del DBMS Gestione dei dati: cura la memorizzazione permanente dei dati ed il loro accessso Gestione

Dettagli

Il linguaggio SQL: transazioni

Il linguaggio SQL: transazioni Il linguaggio SQL: transazioni Sistemi Informativi T Versione elettronica: 4.8.SQL.transazioni.pdf Cos è una transazione? Una transazione è un unità logica di elaborazione che corrisponde a una serie di

Dettagli

ARCHITETTURA DI UN B.D.M.S. Parte I Il controllo di concorrenza

ARCHITETTURA DI UN B.D.M.S. Parte I Il controllo di concorrenza ARCHITETTURA DI UN B.D.M.S. Parte I Il controllo di concorrenza Michele de Nittis Generalità A livello astratto un DataBase Management System può essere suddiviso nei seguenti moduli: OTTIMIZZATORE FILE

Dettagli

Unità D3. Sicurezza nelle basi di dati. Sicurezza e concorrenza nelle basi di dati. Controllo accesso. Protezione e integrità dati

Unità D3. Sicurezza nelle basi di dati. Sicurezza e concorrenza nelle basi di dati. Controllo accesso. Protezione e integrità dati Sicurezza nelle basi di dati Unità D3 Sicurezza e concorrenza nelle basi di dati Una base di dati è sicura quando soddisfa i seguenti parametri: regola l accesso ai dati protetti; evita la modifica o la

Dettagli

Le Basi di Dati Attive

Le Basi di Dati Attive Le Basi di Dati Attive Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 5 Appunti dalle lezioni SQL in Linguaggi di programmazione L uso diretto dell interprete SQL è tipicamente

Dettagli

Azioni atomiche. Definizioni. Proprietà

Azioni atomiche. Definizioni. Proprietà Azioni atomiche Definizioni Azione atomica: strumento di alto livello per strutturare programmi concorrenti e/o distribuiti, tolleranti a vari tipi di malfunzionamenti; o Realizzata con strumenti linguistici

Dettagli

Indicare se i seguenti schedule possono produrre anomalie; i simboli ci e ai indicano l esito (commit o abort) della transazione.

Indicare se i seguenti schedule possono produrre anomalie; i simboli ci e ai indicano l esito (commit o abort) della transazione. Capitolo 2 Esercizio 2.1 Indicare se i seguenti schedule possono produrre anomalie; i simboli ci e ai indicano l esito (commit o abort) della transazione. 1. r1(x), w1(x), r2(x), w2(y), a1, c2 2. r1(x),

Dettagli

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

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

Dettagli

DB - Cenni sulla gestione delle transazioni

DB - Cenni sulla gestione delle transazioni transazioni Cenni sulla gestione delle transazioni in DBMS transazioni Cenni sulla gestione delle transazioni in DBMS Basato sulle slides di transazioni Cenni sulla gestione delle transazioni in DBMS Basato

Dettagli

Le transazioni. Dott. Doria Mauro doriamauro@gmail.com

Le transazioni. Dott. Doria Mauro doriamauro@gmail.com Hibernate Le transazioni Dott. Doria Mauro doriamauro@gmail.com Introduzione La demarcazione delle transazioni può essere fatta: In maniera programmatica: demarcazione all interno del codice applicativo.

Dettagli

Gestione delle transazioni

Gestione delle transazioni Gestione delle transazioni Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: transazioni.pdf Sistemi Informativi L-B Cos è una transazione? Una

Dettagli

Architettura MySQL. E Motori MySQL

Architettura MySQL. E Motori MySQL E Motori MySQL Caratteristiche Differente dagli altri DBMS Non perfetta Ma flessibile Gestisce DataWarehouses, OLTP, ecc. Architettura delle Storage Engine Separa il query processing dai task di memorizzazione

Dettagli

Intoduzione alle transazioni e alle proprieta ACID delle transazioni

Intoduzione alle transazioni e alle proprieta ACID delle transazioni Basi di Dati Complementi Parte 2: Tecnologie per MS Parte 2.4: Introduzione alle transazioni e Intoduzione alle transazioni e alle proprieta ACID delle transazioni @ Carlo Batini 2006 1 @ Carlo Batini

Dettagli

Un sistema transazionale POSTGRESQL. POSTGRESQL come sistema transazionale. Michele Finelli BioDec

Un sistema transazionale POSTGRESQL. POSTGRESQL come sistema transazionale. Michele Finelli BioDec POSTGRESQL POSTGRESQL come sistema transazionale Michele Finelli m@biodec.com BioDec Indice Cos è un sistema transazionale La questione dell isolamento La questione della persistenza Come POSTGRESQL è

Dettagli

Transazioni. Architettura di un DBMS. Utente/Applicazione. transazioni. Transaction Manager. metadati, statistiche.

Transazioni. Architettura di un DBMS. Utente/Applicazione. transazioni. Transaction Manager. metadati, statistiche. Query/update Query plan Execution Engine richieste di indici, record e file Index/file/record Manager comandi su pagine Query Compiler Buffer Manager Lettura/scrittura pagine Architettura di un DBMS Utente/Applicazione

Dettagli

Ogni ufficio è formato da 100 dipendenti, i quali hanno a loro volta 3 clienti ciascuno. Inoltre, ad ogni ufficio sono stati assegnati 4 fornitori.

Ogni ufficio è formato da 100 dipendenti, i quali hanno a loro volta 3 clienti ciascuno. Inoltre, ad ogni ufficio sono stati assegnati 4 fornitori. Tecnologia delle Basi Dati Analisi del dbms Postgresql. Luigi Cestoni Prima Parte Descrizione del Database Abbiamo realizzato un database costituito da quattro tabelle: 1. dipendente( id,nome,cognome,eta,telefono,idufficio)

Dettagli

Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla. eseguono azioni sulla base di dati stessa.

Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla. eseguono azioni sulla base di dati stessa. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole attive o trigger. Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla base di dati

Dettagli

Progettazione di Sistemi Informatici

Progettazione di Sistemi Informatici Progettazione di Sistemi Informatici Stored routines e transazioni Domenico Diacono Corso ADM Gennaio 2008 Definizione di stored procedure Una stored routine è costituita o da una procedura o da una funzione

Dettagli

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

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

Dettagli

Corso di Sistemi di Gestione di Basi di Dati. Esercitazione sul controllo di concorrenza 12/02/2004

Corso di Sistemi di Gestione di Basi di Dati. Esercitazione sul controllo di concorrenza 12/02/2004 Corso di Sistemi di Gestione di Basi di Dati Esercitazione sul controllo di concorrenza 12/02/2004 Dott.ssa Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezione 6 Raffaella Gentilini 1 / 40 Sommario 1 Viste 2 3 2 / 40 Viste Viste le viste sono tabelle virtuali corrispondono al risultato di una query (SELECT) valutata

Dettagli

TRANSAZIONI. Una transazione è una successione di operazioni che si può concludere con successo o con insuccesso.

TRANSAZIONI. Una transazione è una successione di operazioni che si può concludere con successo o con insuccesso. Una transazione è una successione di operazioni che si può concludere con successo o con insuccesso. Nel caso di successo, i risultati delle operazioni effettuate devono essere resi definitivi; invece,

Dettagli

Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata

Marco Cesati Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata Lezione R9 I NPCS Sistemi embedded e real-time 4 dicembre 2012 Dipartimento di Ingegneria Civile e Ingegneria Informatica Università degli Studi di Roma Tor Vergata SERT 13 R9.1 Di cosa parliamo in questa

Dettagli

APPENDICE. Procedure in SQL (1)

APPENDICE. Procedure in SQL (1) APPENDICE Procedure in SQL Transazioni in SQL Embedded SQL Remote Procedure Call Appendice 1 Procedure in SQL (1) Standard SQL2 permette di definire procedure, associate a singoli comandi SQL, memorizzate

Dettagli

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative all amministrazione di un condominio:

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative all amministrazione di un condominio: NOME COGNOME MATRICOLA ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative all amministrazione di un condominio: APPARTAMENTO(NumeroInterno, MetriQuadri, SpeseCondominio,

Dettagli

La durability. I dati modificati da una transazione che ha fatto il commit non devono mai essere persi. La durability consente di reagire a:

La durability. I dati modificati da una transazione che ha fatto il commit non devono mai essere persi. La durability consente di reagire a: La durability Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 2 Appunti dalle lezioni Durability (Persistenza) I dati modificati da una transazione che ha fatto il commit non

Dettagli

L'esecuzione concorrente è essenziale per garantire buone prestazioni nei database, poichè i dischi sono lenti ed è bene tenere la CPU impegnata.

L'esecuzione concorrente è essenziale per garantire buone prestazioni nei database, poichè i dischi sono lenti ed è bene tenere la CPU impegnata. Transazioni L'esecuzione concorrente è essenziale per garantire buone prestazioni nei database, poichè i dischi sono lenti ed è bene tenere la CPU impegnata. Una transazione è una astrazione per un DBMS

Dettagli

TRANSAZIONI DISTRIBUITE TRANSAZIONI

TRANSAZIONI DISTRIBUITE TRANSAZIONI TRANSAZIONI DISTRIBUITE Transazioni distribuite Atomicità di una transazione distribuita Protocollo Two-Phase Commit Gestione dell affidabilità Fallimenti durante il 2PC Gestione della concorrenza Serializzabilità

Dettagli

Componenti di un DBMS

Componenti di un DBMS Componenti di un DBMS Come fa un DBMS a garantire le proprietà ACIDe di una transazione? Vediamo i componenti principali dal più interno a quello di più alto livello: Controllore di Concorrenza Gestore

Dettagli

Sincronizzazione nei Sistemi Distribuiti

Sincronizzazione nei Sistemi Distribuiti Sincronizzazione nei Sistemi Distribuiti Sincronizzazione dei Clock In un sistema centralizzato la misurazione del tempo non presenta ambiguità. (Ogni computer ha il proprio clock) In un sistema distribuito

Dettagli

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

Transazioni. Capitolo 13. Scrittura immediata e scrittura differita. Concorrenza in un DBMS. Una transazione. Gestione delle transazioni Capitolo 13 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

Dettagli

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad una Software (SW) House:

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad una Software (SW) House: NOME COGNOME MATRICOLA ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad una Software (SW) House: SVILUPPATORE(Codice, Nome, Cognome, AnnoNascita) PROGETTO_SW(Nome,

Dettagli

Indice Prefazione... 1 1 SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9

Indice Prefazione... 1 1 SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9 Prefazione... 1 Contenuti... 1 Ringraziamenti... 2 1 SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 1.1 Dichiarazione di funzioni e procedure... 3 1.2 Istruzioni PSM... 4 2 Vincoli e Trigger...

Dettagli

SQL - Structured Query Language

SQL - Structured Query Language SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente

Dettagli

Sincronizzazione nei Sistemi Distribuiti

Sincronizzazione nei Sistemi Distribuiti Sincronizzazione nei Sistemi Distribuiti Sincronizzazione dei Clock In un sistema centralizzato la misurazione del tempo non presenta ambiguità. (ogni computer ha il proprio clock) In un sistema distribuito

Dettagli

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

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

Dettagli

Basi di Dati e Sistemi Informativi. Architetture Distribuite per Basi di Dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Basi di Dati e Sistemi Informativi. Architetture Distribuite per Basi di Dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Architetture Distribuite per Basi di Dati Giuseppe Loseto Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Architetture Distribuite Parallelismo: usato per ottimizzare le prestazioni di componenti/sistemi

Dettagli

ARCHITETTURE DEI CALCOLATORI Multiprocessori: : L approccio Transactional Memory

ARCHITETTURE DEI CALCOLATORI Multiprocessori: : L approccio Transactional Memory ARCHITETTURE DEI CALCOLATORI Multiprocessori: : L approccio Transactional Memory Mariagiovanna Sami 1 I limiti della cache coherence e della sincronizzazione lock-based Problema più grave: viene col vero

Dettagli

L architettura di un DBMS

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

Dettagli

Triggers. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza

Triggers. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Triggers Antonella Poggi, Claudio Corona Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi sono stati prodotti

Dettagli

Basi di Dati Distribuite

Basi di Dati Distribuite Basi di Dati Distribuite P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone (McGraw-Hill Italia) Basi di dati: architetture linee di evoluzione - seconda edizione Capitolo 3 Appunti dalle lezioni SQL come DDL

Dettagli

Cognome Nome Matricola Ordin.

Cognome Nome Matricola Ordin. Basi di dati II, primo modulo Tecnologia delle basi di dati Prova parziale 27 marzo 2009 Compito A Scrivere il nome su questo foglio e su quello protocollo. Rispondere su questo foglio, eventualmente con

Dettagli

2011 Politecnico di Torino 1

2011 Politecnico di Torino 1 SQL per le applicazioni Call Level Interface Le richieste sono inviate al DBMS per mezzo di funzioni del linguaggio ospite soluzione basata su interfacce predefinite API, Application Programming Interface

Dettagli

Gestione delle transazioni. Concetto di transazione

Gestione delle transazioni. Concetto di transazione Dario Maio http://www.csr.unibo.it/~maio/ dmaio@deis.unibo.it Concetto di transazione Una transazione è un unità logica di elaborazione che corrisponde a un insieme di operazioni fisiche elementari (letture/scritture)

Dettagli

Gestione delle transazioni

Gestione delle transazioni Funzionalità avanzate dei DBMS Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna 1 Gestione delle transazioni Per approfondimenti: Ciaccia, Maio. Lezioni di basi di dati: pp 439-461

Dettagli

Come fare il debug di query SQL complicate usando le CTE scrivibili

Come fare il debug di query SQL complicate usando le CTE scrivibili Come fare il debug di query SQL complicate usando le CTE scrivibili 2ndQuadrant Italia PGDay Italiano 2011 Prato, 25 novembre Outline 1 Il problema Descrizione Esempi generici Esempio specifico 2 Soluzione

Dettagli

Basi di dati II 30 gennaio 2015

Basi di dati II 30 gennaio 2015 Tempo a disposizione: due ore. Cognome Nome Matricola Domanda 1 (20%) Una tecnica per il controllo di concorrenza diversa da quelle viste nel corso va sotto il nome di concorrenza basata sulla validazione

Dettagli

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio Basi di Dati: Corso di laboratorio Lezioni 6 7 Raffaella Gentilini 1 / 46 Sommario 1 Subquery (o Interrogazioni Nidificate) Interrogazioni Annidate con Predicati di Confronto Interrogazioni Annidate con

Dettagli

Capitolo 6. Esercizio 6.1

Capitolo 6. Esercizio 6.1 Capitolo 6 Esercizio 6.1 Si consideri la base dati: PRODUZIONE (NumeroSerie, TipoParte, Modello, Qta, Macchina) PRELIEVO (NumeroSerie, Lotto, Cliente, Venditore, Ammontare) CLIENTE (Nome, Città Indirizzo)

Dettagli

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

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

Dettagli

Caratteristiche dei linguaggi per Database

Caratteristiche dei linguaggi per Database IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Manuale SQL. Manuale SQL - 1 -

Manuale SQL. Manuale SQL - 1 - Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,

Dettagli

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI

LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI Read Online and Download Ebook LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO TESTAMENTO VERSIONE RIVEDUTA BY GIOVANNI LUZZI DOWNLOAD EBOOK : LA SACRA BIBBIA: OSSIA L'ANTICO E IL NUOVO Click link bellow and

Dettagli

Esame di Basi di Dati

Esame di Basi di Dati Esame di Basi di Dati 28 Gennaio 2014 Matricola CFU (9/12/9+9) Progetto (Sì/No) Cognome Nome Istruzioni I voti verranno resi disponibili su AlmaEsami. Chi vorrà rifiutare il voto dovrà comunicarlo tassativamente

Dettagli

Transazioni. Transazioni. Transazioni. Definizione di una transazione. Transazione

Transazioni. Transazioni. Transazioni. Definizione di una transazione. Transazione Transazioni Transazioni Per mantenere le informazioni consistenti è necessario controllare opportunamente le sequenze di accessi e aggiornamenti ai dati Gli utenti interagiscono con la base di dati attraverso

Dettagli

1- AFFIDABILITA. Esercizio n.1

1- AFFIDABILITA. Esercizio n.1 1- AFFIDABILITA Esercizio n.1 Il check-point prevede le seguenti attività (durante le quali non sono ammessi commit e abort): 1. scrittura in memoria stabile (force) di tutte le pagine "sporche" del buffer

Dettagli

Gestione delle transazioni

Gestione delle transazioni Funzionalità avanzate dei DBMS Prof. Matteo Golfarelli Alma Mater Studiorum - Università di Bologna Gestione delle transazioni Per approfondimenti: Ciaccia, Maio. Lezioni di basi di dati: pp 439-46 ORACLE

Dettagli

BASI DI DATI TECNOLOGIA DEI SERVER PER BASI DI DATI

BASI DI DATI TECNOLOGIA DEI SERVER PER BASI DI DATI BASI DI DATI TECNOLOGIA DEI SERVER PER BASI DI DATI Prof. Fabio A. Schreiber Dipartimento di Elettronica e Informazione Politecnico di Milano tratto da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati

Dettagli

DATABASE PER IL WEB. Programmazione Web 1

DATABASE PER IL WEB. Programmazione Web 1 DATABASE PER IL WEB Programmazione Web 1 Archite3ura web con database Client Tier Web/App Tier DB Tier Client Web / App Server Database Il server web comunica con un altro server che con8ene il la banca

Dettagli

Basi di Dati: Corso di laboratorio

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

Dettagli

Aniello Murano Problemi non decidibili e riducibilità

Aniello Murano Problemi non decidibili e riducibilità Aniello Murano Problemi non decidibili e riducibilità 8 Lezione n. Parole chiave: Riduzione Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Overview Nelle lezioni

Dettagli

Basi di dati attive. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger).

Basi di dati attive. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger). Basi di dati attive Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger). Tali regole vengono attivate in modo automatico al verificarsi

Dettagli

Sistemi mono o multiutente. Un criterio per classificare un sistema di basi di dati è il numero degli utenti che possono fruirne simultaneamente.

Sistemi mono o multiutente. Un criterio per classificare un sistema di basi di dati è il numero degli utenti che possono fruirne simultaneamente. TRANSAZIONI Introduzione alla gestione delle transazioni 2 Sistemi mono o multiutente Un criterio per classificare un sistema di basi di dati è il numero degli utenti che possono fruirne simultaneamente.

Dettagli

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione 1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione su un sistema con una sola CPU? 2. Qual è la differenza tra un interruzione e una trap? Si faccia qualche esempio. 1.

Dettagli

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Giuseppe Loseto Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Struttura DBMS Gestore delle interrogazioni Decide le strategie di accesso ai dati per rispondere alle interrogazioni Gestore

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

BASI DI DATI: Aspetti gestionali e sviluppi evolutivi dei DBMS info@vittorioprisco.com

BASI DI DATI: Aspetti gestionali e sviluppi evolutivi dei DBMS info@vittorioprisco.com BASI DI DATI: Aspetti gestionali e sviluppi evolutivi dei DBMS info@vittorioprisco.com 1 Tecnologia di un Database Server - DEFINIZIONI - DATABASE SERVER: E un sistema dedicato alla gestione dei dati.

Dettagli

2011 Politecnico di Torino 1

2011 Politecnico di Torino 1 SQL per le applicazioni Esercitazione PHP e MySQL Svolgimento D B M G Passi di risoluzione creazione e popolamento della base di dati Creazione di un script SQL Passo 2 creazione di una query d interrogazione

Dettagli

I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO

I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO READ ONLINE AND DOWNLOAD EBOOK : I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO

Dettagli

Gestione del Buffer. Gestione delle Transazioni. Il buffer. Il gestore del buffer 2. Il gestore del buffer 1

Gestione del Buffer. Gestione delle Transazioni. Il buffer. Il gestore del buffer 2. Il gestore del buffer 1 Gestione delle Transazioni Parte terza Argomenti: Gestore del Buffer,Ripristino, File di Log, Protocolli per il ripristino, Savepoint, Shadow Pages, Gestione del Buffer Obiettivi: Minimizzare gli accessi

Dettagli

Il linguaggio SQL: autorizzazioni

Il linguaggio SQL: autorizzazioni Il linguaggio SQL: autorizzazioni Sistemi Informativi T Versione elettronica: 04.6.SQL.autorizzazioni.pdf Autorità e privilegi Nei DBMS SQL ogni operazione deve essere autorizzata, ovvero l utente che

Dettagli

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Gestione delle transazioni Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Transazioni v L esecuzione concorrente dei programmi utente è essenziale per le buone prestazioni del DBMS Poiché

Dettagli

Schemi di paginazione nell architettura 86 (32 e 64 bit)

Schemi di paginazione nell architettura 86 (32 e 64 bit) Paginazione X86 1 Schemi di paginazione nell architettura 86 (32 e 64 bit) Questo documento mette insieme figure dai manuali Intel che illustrano gli aspetti salienti della gestione della memoria nell

Dettagli

Concorrenza e sincronizzazione

Concorrenza e sincronizzazione Concorrenza e sincronizzazione Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Cosa faremo oggi 2 Concorrenza Sincronizzazione Concorrenza 3 Nei programmi Java fino ad ora sviluppati è presente

Dettagli

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java programmi sorgente: files.java compilatore Indipendenza di java dalla macchina ospite Programmi java Programmi java Programmi java files.class bytecode linker/loader bytecode bytecode Java API files.class

Dettagli

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A I/O, thread, socket in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A I/O, thread, socket in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Esercitazione I/O, thread, socket in Java

Dettagli

Recovery manager Gestore della affidabilità

Recovery manager Gestore della affidabilità Riferimenti Basi di Dati Complementi Parte 2: Tecnologie per DBMS Parte 2.5: Recovery Manager Trasparenze parte Recovery manager Basi di Dati Atzeni et al. - Capitolo 2.1, 2.2 Anche: Garcia Molina, Ullman,

Dettagli

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE Dato il seguente schema E/R E la sua traduzione nel seguente schema relazionale: disponibile in http://www.dbgroup.unimo.it/sire/20110513/20110513.bak Viene richiesto di 1) Risolvere la seguente interrogazione

Dettagli

Sincronizzazione nei Sistemi Distribuiti

Sincronizzazione nei Sistemi Distribuiti Sincronizzazione nei Sistemi Distribuiti Sincronizzazione dei Clock In un sistema centralizzato la misurazione del tempo non presenta ambiguità. (ogni computer ha il proprio clock) In un sistema distribuito

Dettagli