Capitolo 6. Esercizio 6.1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Capitolo 6. Esercizio 6.1"

Transcript

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) VENDITORE (Nome, Città Indirizzo) Progettare la frammentazione orizzontale delle tabelle PRODUZIONE e PRELIEVO in base al tipo di parte (che assume quattro valori: Tastiera, Schermo, CPU e Cablaggio ), prevedendo quattro stabilimenti di produzione disposti a Milano, Torino, Roma e Napoli, e delle tabelle CLIENTE e VENDITORE in base a tre bacini di vendita, centrati su Torino, Milano e Roma; si supponga che le vendite siano distribuite per bacini geografici (quindi, clienti di Milano sono serviti solo da venditori di Milano; si assuma che il bacino di vendita di Roma comprenda anche Napoli) e che ciascuna area geografica abbia una propria base di dati (cioè che sia disponibile una base di dati a Milano, Torino, Roma e Napoli). Esprimere a livello di trasparenza di frammentazione, di allocazione e di linguaggio le interrogazioni: 1. Determinare la quantità disponibile del prodotto 77Y Determinare i clienti che hanno comprato qualche lotto dal rivenditore Bianchi, che ha ufficio a Roma. 3. Determinare le macchine utilizzate per la produzione dei pezzi di tipo Tastiera venduti al cliente Rossi. 4. Modificare l indirizzo del cliente Rossi, che si trasferisce da Via Po 45 di Milano a Viale Trastevere 150 di Roma 5. Calcolare la somma degli importi degli ordini ricevuti a Milano, Torino e Roma (si noti che anche le funzioni aggregate sono disponibili) Inventare poi, ipotizzando di usare il DBMS di Milano, una richiesta remota, una transazione remota, una transazione distribuita e una richiesta distribuita. Frammentazione orizzontale della tabella PRODUZIONE (4 tabelle) PRODUZIONE _1 = σ TipoParte= Tastiera (PRODUZIONE) PRODUZIONE _2= σ TipoParte= Schermo (PRODUZIONE) PRODUZIONE _3= σ TipoParte= CPU (PRODUZIONE) PRODUZIONE _4= σ TipoParte= Cablaggio (PRODUZIONE) Frammentazione orizzontale della tabella PRELIEVO (4 tabelle) PRELIEVO_1= Π NumeroSerie, Lotto, Cliente, Venditore, Ammontare (σ TipoParte= Tastiera (PRELIEVO NumeroSerie = SN SN NumeroSerie (PRODUZIONE)))

2 PRELIEVO_2= Π NumeroSerie, Lotto, Cliente, Venditore, Ammontare (σ TipoParte= Schermo (PRELIEVO NumeroSerie = SN SN NumeroSerie (PRODUZIONE))) PRELIEVO_3= Π NumeroSerie, Lotto, Cliente, Venditore, Ammontare (σ TipoParte= CPU (PRELIEVO NumeroSerie = SN SN NumeroSerie (PRODUZIONE))) PRELIEVO_4= Π NumeroSerie, Lotto, Cliente, Venditore, Ammontare (σ TipoParte= Cablaggio (PRELIEVO NumeroSerie = SN SN NumeroSerie (PRODUZIONE))) Frammentazione orizzontale della tabella CLIENTE (3 tabelle) CLIENTE_1= σ Città = Torino (CLIENTE) CLIENTE_2= σ Città = Milano (CLIENTE) CLIENTE_3= σ Città = Roma V Città = Napoli (CLIENTE) Frammentazione orizzontale della tabella VENDITORE VENDITORE_1= σ Città = Torino (VENDITORE) VENDITORE _2= σ Città = Milano (VENDITORE) VENDITORE _3= σ Città = Roma V Città = Napoli (VENDITORE) Le tabelle PRODUZIONE_1, PRELIEVO_1, CLIENTE_1, VENDITORE_1 potranno essere allocate a Torino (Torino.Azienda.it) Le tabelle PRODUZIONE_2, PRELIEVO_2, CLIENTE_2, VENDITORE_2 potranno essere allocate a Milano (Milano.Azienda.it) Le tabelle PRODUZIONE_3, PRELIEVO_3, CLIENTE_3, VENDITORE_3 potranno essere allocate a Roma (Roma.Azienda.it) Le tabelle PRODUZIONE_4, PRELIEVO_4 potranno essere allocate a Napoli (Napoli.Azienda.it) Punto 1: Trasparenza di frammentazione: Procedure QueryDispo1 ( :Quan) from PRODUZIONE

3 Trasparenza di allocazione: Procedure QueryDispo2 ( :Quan) from PRODUZIONE_1 from PRODUZIONE_2 from PRODUZIONE_3 from PRODUZIONE_4 Trasparenza di linguaggio: Procedure QueryDispo3 ( :Quan) from PRODUZIONE_1@Torino.Azienda.it from PRODUZIONE_2@Milano.Azienda.it from PRODUZIONE_3@Roma.Azienda.it from PRODUZIONE_4@Napoli.Azienda.it Punto 2: Trasparenza di frammentazione: Procedure QueryLotto1 ( :Cl) from PRELIEVO

4 Trasparenza di allocazione: Procedure QueryLotto2 ( :Cl) from PRELIEVO_1 from PRELIEVO_2 from PRELIEVO_3 from PRELIEVO_4 Trasparenza di linguaggio: Procedure QueryLotto3 ( :Cl) from PRELIEVO_1@Torino.Azienda.it from PRELIEVO_2@Milano.Azienda.it from PRELIEVO_3@Roma.Azienda.it from PRELIEVO_4@Napoli.Azienda.it Punto 3: Trasparenza di frammentazione: Procedure QueryMacchinePerTastiere1 ( :mac) select Macchine into :mac from PRODUZIONE join PRELIEVO On PRODUZIONE.NumeroSerie = PRELIEVO.NumeroSerie where Cliente = Rossi and TipoParte = Tastiera

5 Trasparenza di allocazione: Procedure QueryMacchinePerTastiere2 ( :mac) select Macchine into :mac from PRODUZIONE_1 join PRELIEVO_1 On PRODUZIONE_1.NumeroSerie = PRELIEVO_1.NumeroSerie where Cliente = Rossi Trasparenza di linguaggio: Procedure QueryMacchinePerTastiere3 ( :mac) select Macchine into :mac from PRODUZIONE_1@Torino.Azienda.it join PRELIEVO_1@Torino.Azienda.it On PRODUZIONE_1.NumeroSerie = PRELIEVO_1.NumeroSerie where Cliente = Rossi Punto 4: Trasparenza di frammentazione: Procedure ModificaIndirizzo1 update CLIENTE set Indirizzo= Via Po 45, Città= Milano where Nome = Rossi Trasparenza di allocazione: Procedure ModificaIndirizzo2 delete from CLIENTE_3 where Nome = Rossi ; insert into CLIENTE_2 (Nome, Indirizzo, Città) values ( Rossi, Via Po 45, Milano ) Trasparenza di linguaggio: Procedure ModificaIndirizzo2 delete from CLIENTE_3@Roma.Azienda.it where Nome = Rossi ; insert into CLIENTE_2@Milano.Azienda.it (Nome, Indirizzo, Città) values ( Rossi, Via Po 45, Milano )

6 Punto 5: Trasparenza di frammentazione: Procedure Ordini1 select Citta, sum(ammontare) from PRELIEVO join VENDITORE on Venditore = Nome group by Città Trasparenza di allocazione: Procedure Ordini2 create view PRELIEVO as PRELIEVO_1 union PRELIEVO_2 union PRELIEVO_3 union PRELIEVO_4 select Citta, sum(ammontare) from PRELIEVO join VENDITORE_1 on Venditore = Nome group by Città union select Citta, sum(ammontare) from PRELIEVO join VENDITORE_2 on Venditore = Nome group by Città union select Citta, sum(ammontare) from PRELIEVO join VENDITORE_3 on Venditore = Nome group by Città Trasparenza di linguaggio: Procedure Ordini2 create view PRELIEVO as PRELIEVO_1@Torino.Azienda.it union PRELIEVO_2@Milano.Azienda.it union PRELIEVO_3@Roma.Azienda.it union PRELIEVO_4@Napoli.Azienda.it select Citta, sum(ammontare) from PRELIEVO join VENDITORE_1@Torino.Azienda.it on Venditore = Nome group by Città union select Citta, sum(ammontare) from PRELIEVO join VENDITORE_2@ Milano.Azienda.it on Venditore = Nome group by Città union select Citta, sum(ammontare) from PRELIEVO join VENDITORE_3@Roma.Azienda.it on Venditore = Nome

7 group by Città Richiesta Remota select * from PRODUZIONE_2 where Qta > 100 Transazione Remota update CLIENTE_2 set Indirizzo = Via Fogazzaro 11 where Nome = Verdi Transazione Distribuita delete from CLIENTE_2 where Nome = Bianchi insert into CLIENTE_1 (Nome, Indirizzo, Città) values ( Bianchi, Via Ponente 45, Milano ) Richiesta Distribuita select Nome from PRELIEVO_1 join CLIENTE_3 on Cliente = Nome where NumeroSerie = 458X411 Esercizio 6.2 Assegnare i timestamp agli eventi descritti in figura 3.20 con il metodo di Lamport, e indicare quali eventi sono pseudo-simultanei, cioè sono eventi che non possono essere ordinati in base ai messaggi scambiati. Figura 6.20

8 I timestamp sono indicati nella seguente figura. Gli eventi pseudo-simultanei sono: 1.1, 1.2 e e e e e e 8.3 Esercizio 6.3 Date le condizioni di attesa illustrate in figura 3.21, determinare con l algoritmo di ricerca distribuita le condizioni di deadlock, con due diverse ipotesi di condizione di attesa relative al nodo 4. DBMS1 t 1 t 5 t 6 E4 E4 E2 DBMS2 t 3 t 2 t 5 E1 E3 DBMS3 t 4 E4 t 2 E2 DBMS4, versione 1 t 6 t 4 t 1 E1 E1 E3 DBMS4, versione 2 t 4 t 1 t 6 E3 E1 E1 Figura 6.21

9 Prima versione: In questa situazione, le condizioni di attesa del sistema sono: 1) E4 t 1 t 6 E4 E2 t 5 t 6 E4 2) E3 t 2 t 5 E1 4) E1 t 6 t 1 E1 E3 t 4 t 1 E1 Supponendo di inviare le sole condizioni di attesa E in t i t j E out dove i>j, il DBMS4 spedisce le sue condizioni di attesa al DBMS1 che scopre il deadlock. DBMS1 t 4 t 1 t 5 E2 E3 E4 t 6 E4 Il deadlock coinvolge le transazioni < t 1, t 5, t 6 > e per risolverlo si dovrà eseguire il rollback su una di esse. Seconda versione: In questa situazione, le condizioni di attesa del sistema sono: 1) E4 t 1 t 6 E4 E2 t 5 t 6 E4 2) E3 t 2 t 5 E1 Supponendo di inviare le sole condizioni di attesa E in t i t j E out dove i>j, nessun DBMS invia le proprie condizioni di attesa. Non ci sono deadlock.

10 Esercizio 6.4 Descrivere come si modifica il protocollo di ripresa a caldo tendo presente che alcune sottotransazioni distribuite possono essere in stato di ready. Protocollo di ripresa a caldo in sistemi distribuiti: 1) Si accede all ultimo blocco del log e si ripercorre il log all indietro fino al record di checkpoint. Si costruiscono 3 insiemi, detti di UNDO, di REDO e di READY. Gli insiemi REDO e READY sono vuoti, mentre quello di UNDO contiene le transazioni indicare nel record di checkpoint. 2) Si ripercorre il log in avanti, aggiungendo all insieme di UNDO tutte le transazioni di cui è presente il record di begin. Se viene rilevato un record ready, la corrispondente transazione viene spostata in READY. Se viene trovato un record di commit si sposta la transazione corrispondente nell insieme di REDO (viene rimossa da READY o da UNDO). Se si trova un record abort e la transazione corrispondente si trova in READY, essa viene tolta da READY e messa in UNDO. 3) Se l insieme READY non è vuoto, il sistema deve chiedere al TM (Transaction Manager) l esito delle transazioni di questo insieme, che si trovano in uno stato incerto. Il TM indica quali transazioni hanno effettuato il commit e quali l abort. Queste transazioni saranno quindi trasferite negli insiemi di REDO o di UNDO e i rispettivi record scritti nel log. 4) Il protocollo continua come in un sistema non distribuito. Esercizio 6.5 Applicare il protocollo di ripresa a caldo dopo la caduta di un nodo assumendo un algoritmo di commit a due fasi, a fronte del seguente input (ove r(t i ) indica la presenza del record di ready): B(T 1 ), B(T 2 ), B(T 3 ), I(T 1,O 1,A 1 ), D(T 2,O 2,B 2 ), B(T 4 ), R(T 1 ), U(T 4,O 3,B 3,A 3 ), C(T 1 ), CK(T 2,T 3,T 4 ), B(T 5 ), B(T 6 ), U(T 5,O 5,B 5,A 5 ), R(T 5 ), B(T 7 ), U(T 7,O 6,B 6,A 6 ), B(T 8 ), U(T 6,O 1,B 7,A 7 ), A(T 7 ), R(T 6 ), guasto 1) Il log viene ripercorso all indietro sino al record di checkpoint CK(T 2,T 3,T 4 ) e si creano i tre insiemi di UNDO, REDO e READY. UNDO = { T 2,T 3,T 4 } REDO = {} READY = {} 2) Il record viene percorso in avanti, aggiornandogli insiemi. B(T 5 ) UNDO = { T 2,T 3,T 4,T 5 } REDO = {} READY = {} B(T 6 ) UNDO = { T 2,T 3,T 4,T 5,T 6 } REDO = {} READY = {} R(T 5 ) UNDO = { T 2,T 3,T 4,T 6 } REDO = {} READY = {T 5 } B(T 7 ) UNDO = { T 2,T 3,T 4,T 6,T 7 } REDO = {} READY = {T 5 }

11 B(T 8 ) UNDO = { T 2,T 3,T 4,T 6,T 7,T 8 } REDO = {} READY = {T 5 } A(T 7 ) UNDO = { T 2,T 3,T 4,T 6,T 7,T 8 } REDO = {} READY = {T 5 } R(T 6 ) UNDO = { T 2,T 3,T 4 T 7,T 8 } REDO = {} READY = {T 5,T 6 } 3) A questo punto dovremmo chiedere al Transaction Manager l esito delle transazioni in stato di READY. Supponendo che il TM indichi un global commit per T 5 e T 6 otteniamo: UNDO = { T 2,T 3,T 4 T 7,T 8 } REDO = {T 5,T 6 } I record C(T 5 ) e C(T 6 ) sono scritti nel log. 4) Il record viene ripercorso all indietro sino a D(T 2,O 2,B 2 ), eseguendo le operazioni di UNDO. O 6 = B 6 O 3 = B 3 Insert O 2 = B 2 5) Infine il log viene percorso in avanti e vengono eseguite le operazioni di REDO. O 5 = A 5 O 1 = A 7 Esercizio 6.6 Applicare il protocollo di ripresa a caldo dopo la caduta di un nodo assumendo un algoritmo di commit a tre fasi, a fronte del seguente input (ove PC(T i ) indica la presenza di un record di precommit): B(T 1 ), B(T 2 ), B(T 3 ), I(T 1,O 1,A 1 ), D(T 2,O 2,B 2 ), B(T 4 ), R(T 1 ), U(T 4,O 3,B 3,A 3 ), PC(T 1 ), C(T 1 ), CK(T 2,T 3,T 4 ), B(T 5 ), B(T 6 ), U(T 5,O 5,B 5,A 5 ), R(T 5 ), B(T 7 ), U(T 7,O 6,B 6,A 6 ), U(T 6,O 3,B 7,A 7 ), B(T 8 ), PC(T 5 ), A(T 7 ), R(T 6 ), guasto. Soluzione : 1) Come negli altri protocolli di ripresa a caldo per prima cosa si ripercorre all indietro il log sino a record di checkpoint, in questo caso CK(T 2,T 3,T 4 ). Vengono creati 4 insiemi: UNDO, REDO, READY e PRE-COMMIT: L insieme UNDO contiene le transazioni indicate dal record di checkpoint, mentre gli altri insiemi sono vuoti. UNDO = {T 2,T 3,T 4 } REDO = {} READY = {} PRE-COMIT = {} 2) Il log viene percorso in avanti. Se si trova in record di commit la transazione viene messa nell insieme REDO. Se si incontra un abort la transazione viene posta nell insieme UNDO. Se si trova il record ready la transazione va in READY. Infine, se si trova l insieme pre-commit, la transazione viene messa nell insieme PRE- COMMIT. B(T 5 ) UNDO = {T 2,T 3,T 4,T 5 } REDO = {} READY = {} PRE-COMIT = {} B(T 6 ) UNDO = {T 2,T 3,T 4,T 5,T 6 } REDO = {} READY = {} PRE-COMIT = {}

12 R(T 5 ) UNDO = {T 2,T 3,T 4,T 6 } REDO = {} READY = {T 5 } PRE-COMIT = {} B(T 7 ) UNDO = {T 2,T 3,T 4,T 6,T 7 } REDO = {} READY = {T 5 } PRE-COMIT = {} B(T 8 ) UNDO = {T 2,T 3,T 4,T 6,T 7,T 8 } REDO = {} READY = {T 5 } PRE-COMIT = {} PC(T 5 ) UNDO = {T 2,T 3,T 4,T 6,T 7,T 8 } REDO = {} READY = {} PRE-COMIT = {T 5 } A(T 7 ) UNDO = {T 2,T 3,T 4,T 6,T 7,T 8 } REDO = {} READY = {} PRE-COMIT = {T 5 } R(T 6 ) UNDO = {T 2,T 3,T 4,T 7,T 8 } REDO = {} READY = {T 6 } PRE-COMIT = {T 5 } 3) Il sistema deve consultare il TM per conoscere l esito delle transazioni negli insiemi di READY e PRE-COMMIT. Per ogni transazione nell insieme PRE-COMMIT il TM può rispondere con commit, abort o ancora con pre-commit; nei primi due casi le transazioni vengono messe nei rispettivi insiemi, altrimenti il sistema può riprendere il protocollo a tre fasi, 3PC. Per ogni transazione nell insieme READY il sistema può rispondere ancosa con commit, abort o pre-commit. In caso di pre-commit la transazione viene collocata nell insieme PRE-COMMIT e il protocollo 3PC ripreso. 4) Quando l esito di ogni transazione è conosciuto, il protocollo di ripresa a caldo continua con le operazioni di undo e redo. Se il coordinatore non risponde entro un tempo specifico il sistema fa partire il CFP (Coordinator Failure Protocol), ovvero si elegge un nuovo TM ed esso decide l esito delle transazioni in dubbio. Esercizio 6.7 Dato un sistema distribuito con 8 nodi, assegnare un quorum necessario per decidere commit e un quorum necessario per decidere abort in modo da massimizzare la probabilità di raggiungere una decisione di commit qualora vi siano 4 partizioni con 2 nodi ciascuna. Questo caso può verificarsi quando viene utilizzato un protocollo di commit a 3 fasi. Quando avviene il partizionamento della rete ogni partizione continua per conto proprio l esecuzione del protocollo. Alla ripresa delle trasmissioni di rete il TM chiede agli RM e agli RM che erano stati eletti TM l esito delle transazioni e in base ai quorum predefiniti prende una decisione globale. Per il commit il quorum deve essere pari a 2, mentre per l abort il quorum è pari a 7, che è stato calcolato un base al numero di nodi più uno meno il quorum di commit, in modo tale da non avere conflitti. Esercizio 6.8 Descrivere uno schema di esecuzione delle seguenti interrogazioni che massimizzino il parallelismo inter-query: 1. Estrarre la somma della quantità delle produzioni, raggruppate in base a tipo e modello delle parti. 2. Estrarre la media delle parti vendute dai venditori, raggruppate in base a tipo e modello delle parti.

13 Nell esercizio 6.1 si effettuava una frammentazione orizzontale sulle tabelle PRODUZIONE e PRELIEVO in base ai differenti valori di TipoParte. 1) In accordo con questa frammentazione, la prima query può essere eseguita con 4 differenti query, ognuna delle quali è applicata a una delle tabelle PRODUZIONE_1, PRODUZIONE_2, PRODUZIONE_3, PRODUZIONE_4. select sum(qta), Modello, TipoParte from PRODUZIONE_1 gruop by Modello, TipoParte select sum(qta), Modello, TipoParte from PRODUZIONE_2 gruop by Modello, TipoParte select sum(qta), Modello, TipoParte from PRODUZIONE_3 gruop by Modello, TipoParte select sum(qta), Modello, TipoParte from PRODUZIONE_4 gruop by Modello, TipoParte Si noti che ogni tabella contiene un solo valore in TipoParte. 2) Sullo stesso schema la query può essere: select avg(ammontare), Modello, TipoParte from PRELIEVO_1 join PRODUZIONE_1 on PRELIEVO_1.NumeroSerie = PRODUZIONE_1.NumeroSerie group by Modello, TipoParte select avg(ammontare), Modello, TipoParte from PRELIEVO_2 join PRODUZIONE_2 on PRELIEVO_2.NumeroSerie = PRODUZIONE_2.NumeroSerie group by Modello, TipoParte select avg(ammontare), Modello, TipoParte from PRELIEVO_3 join PRODUZIONE_3 on PRELIEVO_3.NumeroSerie = PRODUZIONE_3.NumeroSerie group by Modello, TipoParte select avg(ammontare), Modello, TipoParte from PRELIEVO_4 join PRODUZIONE_4 on PRELIEVO_4.NumeroSerie = PRODUZIONE_4.NumeroSerie group by Modello, TipoParte

14 Nella situazione descritta nell esercizio 6.1, ogni query potrà essere eseguita su un differente DBMS. Per massimizzare il parallelismo inter-query, ogni query potrebbe essere ulteriormente frammentata in accordo con i diversi valori dell attributo Modello. Esercizio 6.9 Descrivere un esempio di comportamento di base di dati replicata in cui si verifichi un disallineamento fra i dati. Riferendoci allo schema del database descritto nell esercizio 3.1, supponiamo che ogni frammento della tabella PRODUZIONE sia allocato su tutti DBMS. Ogni DBMS usa solo un nodo e spedisce tutte le modifiche sul suo frammento agli altri DBMS. In questo modo ogni ha una copia dell intero database. In caso di guasto su un DBMS il database è ancora completamente accessibile dagli altri sistemi. Se tutte le query vengono correttamente reindirizzate, il guasto è trasparente al Client della base dati. Comunque, se si verifica un guasto nella rete, questo può generare un partizionamento della rete, per esempio con due sottoreti. In questa situazione si può verificare un disallineamento dei dati. Ad esempio, supponendo che la tabella PRODUZIONE contenga la seguente tupla: NumeroSerie TipoParte Modello Qta Macchina CPU Pentium IV 1000 A Se due transazioni vogliono entrambe prelevare 800 pezzi dall attributo quantità, una delle due transazioni non terminerà correttamente (in genere quella arrivata dopo); ma se le due transazioni si presentano su due DBMS che non sono connessi (come nel caso di partizionamento della rete), nessuna delle due fallirà e i dati contenuti nel database saranno disallineati e quindi inconsistenti. Esercizio 6.10 Descrivere un esempio di comportamento di base di dati con replicazione simmetrica in cui si verifichi una inconsistenza dei dati. Nella replicazione simmetrica ogni DBMS ha una copia dell intero database. Ogni modifica deve essere effettuata su qualunque copia e si ha quindi una situazione alla pari (peer to peer) fra le copie. Questa situazione può produrre gli stessi effetti di un unico DBMS senza il controllo di concorrenza. Le due transazioni descritte nell esercizio 6.9 producono un inconsistenza anche senza guasti sulla rete, se i cambiamenti non vengono comunicati immediatamente alle altre copie.

BASI DI DATI DISTRIBUITE. Esercizio n. 1 Si consideri la base dati:

BASI DI DATI DISTRIBUITE. Esercizio n. 1 Si consideri la base dati: BASI DI DATI DISTRIBUITE Esercizio n. 1 Si consideri la base dati: PRODUZIONE (NumeroSerie, TipoParte, Modello, Qta, Macchina) PRELIEVO (NumeroSerie, Lotto, Cliente, Venditore, Ammontare) CLIENTE (Nome,

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

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

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

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

Tecnologia di un Database Server (centralizzato) Gestione dell affidabilità Affidabilità Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Gestione dell affidabilità Angelo Montanari Dipartimento di Matematica e Informatica Università

Dettagli

Elena Baralis 2007 Politecnico di Torino 1

Elena Baralis 2007 Politecnico di Torino 1 Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE Linguaggio SQL: fondamenti 2 (1/3) Inserimento di tuple Cancellazione di tuple Modifica di tuple 4 (2/3) INSERT inserimento di nuove tuple

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

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

Basi di Dati Parallele

Basi di Dati Parallele Basi di Dati Parallele Capitolo 3 Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone 1 Scalabilità delle applicazioni Carico insieme di tutte le

Dettagli

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad una piattaforma di gestione di gare podistiche:

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad una piattaforma di gestione di gare podistiche: NOME COGNOME MATRICOLA ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad una piattaforma di gestione di gare podistiche: MARATONETA(Nome, Nazione, Età)

Dettagli

Architetture Distribuite

Architetture Distribuite Architetture Distribuite Capitolo 3 Basi di dati Architetture e linee di evoluzione P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone 1 Sommario Architetture client-server Basi di dati distribuite

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

1. in alcuni sistemi si prende nota delle transazioni attive e si rifiutano (momentaneamente) nuovi commit

1. in alcuni sistemi si prende nota delle transazioni attive e si rifiutano (momentaneamente) nuovi commit AFFIDABILITA Esercizio n. 1 Il check-point prevede le seguenti attività (durante le quali non sono ammessi commit e abort): 1. scrittura in memoria secondaria (force) di tutte le pagine "sporche" del buffer

Dettagli

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di un sistema di gestione di campionati di basket.

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di un sistema di gestione di campionati di basket. NOME COGNOME MATRICOLA ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di un sistema di gestione di campionati di basket. GIOCATORE (Codice, Nome, Cognome, AnnoNascita) CONTRATTO(Id,

Dettagli

Capitolo 5. Soluzione: Soluzione in C:

Capitolo 5. Soluzione: Soluzione in C: Capitolo 5 Esercizio 5.1 Realizzare una procedura in un linguaggio di programmazione di alto livello che tramite SQL Embedded elimina dalla tabella DIPARTIMENTO l'elemento che ha il nome che viene fornito

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

Architetture distribuite

Architetture distribuite Architetture distribuite -ARC 1 Basi di dati distribuite a RETE : LAN (Local Area Network) WAN (Wide Area Network) b DBMS : Sistema omogeneo Sistema eterogeneo SYBASE ORACLE DB2 CLIENT -ARC 2 Problemi

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

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Interrogare una base di dati: algebra relazionale e SQL Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor Contesto didattico Il seguente materiale didattico è

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

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

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

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

Sistemi transazionali. sistemi transazionali 1

Sistemi transazionali. sistemi transazionali 1 Sistemi transazionali sistemi transazionali 1 Ricordiamo le principali caratteristiche dei DBMS condivisione dei dati - concorrenza qualità dei dati - integrità efficienza - caricamento, query, sort controllo

Dettagli

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo. PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,

Dettagli

<Nome Tabella>.<attributo>

<Nome Tabella>.<attributo> Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (2) Tabelle mult., variabili, aggreg, group Prof. Alberto

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

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

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

a) Tracciare le curve del ricavo marginale e del costo marginale. b) Quale quantità deciderà di produrre?

a) Tracciare le curve del ricavo marginale e del costo marginale. b) Quale quantità deciderà di produrre? Domande 1. Supponete che un impresa possa vendere qualsiasi quantità desideri a 13 euro e che abbia i seguenti costi (CT) per vari livelli di produzione (Q): a) Tracciare le curve del ricavo marginale

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

Parte 3 Gestione del buffer e gestione del recovery

Parte 3 Gestione del buffer e gestione del recovery Gestione dei dati Parte 3 Gestione del buffer e gestione del recovery Maurizio Lenzerini, Riccardo Rosati Facoltà di Ingegneria Sapienza Università di Roma Anno Accademico 2012/2013 http://www.dis.uniroma1.it/~rosati/gd/

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

Pag Politecnico di Torino 1

Pag Politecnico di Torino 1 Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica Linguaggio SQL: costrutti avanzati D B M G D B M G2 Organizzazione fisica dei dati All interno di un DBMS relazionale,

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 2 Vincoli di integrità Proprietà che devono essere soddisfatte da ogni istanza della base di dati. Il soddisfacimento è definito rispetto al

Dettagli

Basi di dati II Esame 7 settembre 2015 Compito A Tempo a disposizione: due ore e trenta minuti.

Basi di dati II Esame 7 settembre 2015 Compito A Tempo a disposizione: due ore e trenta minuti. Basi di dati II Esame 7 settembre 2015 Compito A Tempo a disposizione: due ore e trenta minuti. Cognome Nome Matricola Domanda 1 (20%) Si consideri una base di dati sulle seguenti relazioni, ognuna delle

Dettagli

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati

Database Lezione 2. Sommario. - Progettazione di un database - Join - Valore NULL - Operatori aggregati Sommario - Progettazione di un database - Join - Valore NULL - Operatori aggregati Progettazione di un database - In un database c'è una marcata distinzione tra i valori in esso contenuti e le operazioni

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

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

Data Management Software. Il linguaggio SQL. Query Innestate. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management 10 Settembre 2003

Data Management Software. Il linguaggio SQL. Query Innestate. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management 10 Settembre 2003 DB2 Data Management Software Il linguaggio SQL Query Innestate Paolo Avallone Sr Consulting IT Specialist DB2, Data Management 10 Settembre 2003 LEGGERE LE SEGUENTI ATTENZIONI Le informazioni contenute

Dettagli

Architetture distribuite

Architetture distribuite Architetture distribuite Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 6 Appunti dalle lezioni Sommario Architetture client-server Basi di dati distribuite Basi di dati parallele

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

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

Architetture per l analisi dei dati

Architetture per l analisi dei dati Architetture per l analisi dei dati Esercizio 8.1 Progettare un cubo multidimensionale relativo all analisi dei sinistri per una compagnia assicurativa, basandosi sulle specifiche accennate nel paragrafo

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

BASI DI DATI. basi di dati - introduzione ai sistemi informativi 1

BASI DI DATI. basi di dati - introduzione ai sistemi informativi 1 BASI DI DATI basi di dati - introduzione ai sistemi informativi 1 Sistema Informativo Insieme degli strumenti, risorse e procedure che consentono la gestione delle informazioni aziendali e' essenziale

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

Basi di dati distribuite

Basi di dati distribuite 1 Paradigmi per la distribuzione dei dati Architettura client-server: separazione tra client e server della base di dati : la stessa applicazione utilizza diversi database server Basi di dati parallele:

Dettagli

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti. Tempo a disposizione: un ora e 45 minuti. Cognome: Nome: Matricola: Domanda 1 (15%) Considerare la relazione Stipendi(Matricola,StipLordo,Tasse,Netto,OK) Spiegare (sinteticamente ma in modo chiaro) quali

Dettagli

Eprogram ITIS V anno Unità 4 - Il linguaggio SQL

Eprogram ITIS V anno Unità 4 - Il linguaggio SQL Eprogram ITIS V anno Unità 4 - Il linguaggio SQL Compito in classe proposto Date le seguenti tabelle: scrivi in SQL le seguenti richieste (per facilitare query complesse utilizza le viste): 1. elencare

Dettagli

Data warehouse in Oracle

Data warehouse in Oracle Data warehouse in Oracle Viste materializzate e estensioni al linguaggio SQL per l analisi dei dati presenti nei data warehouse Viste materializzate Paolo Garza 1 Viste materializzate Viste materializzate

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

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)

Dettagli

Il linguaggio SQL: le viste

Il linguaggio SQL: le viste Il linguaggio SQL: le viste Basi di dati 1 Il linguaggio SQL: le viste Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il linguaggio SQL: le viste Basi di dati 2 Introduzione

Dettagli

RETI DI CALCOLATORI Home Work ritardi e livello applicativo

RETI DI CALCOLATORI Home Work ritardi e livello applicativo RETI DI CALCOLATORI Home Work ritardi e livello applicativo Prima parte Q1. Supponiamo che un router A trasmetta un pacchetto su un collegamento con un router B, che la frequenza di trasmissione del collegamento

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

σ data 15/12/2013 data 20/12/2014

σ data 15/12/2013 data 20/12/2014 Dato lo schema: Basi di Dati Prof. Alfredo Pulvirenti A.A. 2014-2015 Prova in itinere 18 dicembre 2014 (A) EVENTO(id, titolo, data, categoria, costo_partecipazione, idcatering) ORGANIZZATORE(id,idevento)

Dettagli

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

Domande utili alla preparazione dell orale di Informatica all Esame di Stato Domande utili alla preparazione dell orale di Informatica all Esame di Stato 1.Al livello fisico un database si appoggia ai files per contenere i suoi dati? 2.Esistono altri modelli di organizzazione oltre

Dettagli

B a s i d i D a t i ( M o d u l o T e o r i a ) P r o v a s c r i t t a

B a s i d i D a t i ( M o d u l o T e o r i a ) P r o v a s c r i t t a Matricola Cognome Nome B a s i d i D a t i ( M o d u l o T e o r i a ) P r o v a s c r i t t a Durata: 2 ore e 15 minuti Avvertenze: è severamente vietato consultare libri e appunti. DOMANDE PRELIMINARI

Dettagli

Basi di dati distribuite. BD distribiute 1

Basi di dati distribuite. BD distribiute 1 Basi di dati distribuite BD distribiute 1 Motivazioni della distribuzione dei dati natura intrinsecamente distribuita delle organizzazioni evoluzione degli elaboratori - aumento della capacità elaborativa

Dettagli

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi. Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi. Cognome: Nome: Matricola: Domanda 1 (15%) Considerare la base di dati relazionale contenente le seguenti relazioni:

Dettagli

Basi di dati: appello 14/07/06

Basi di dati: appello 14/07/06 Basi di dati: appello 14/07/06 Si consideri il seguente schema di base di dati che vuole tenere traccia dell attività di un agenzia che affitta appartamenti per vacanze nella città di Varazze. CLIENTE

Dettagli

SQL - Sottointerrogazioni

SQL - Sottointerrogazioni una delle ragioni che rendono SQL un linguaggio potente è la possibilità di esprimere interrogazioni più complesse in termini di interrogazioni più semplici, tramite il meccanismo delle subqueries (sottointerrogazioni)

Dettagli

Tabelle esempio: Impiegato/Dipartimento

Tabelle esempio: Impiegato/Dipartimento Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia Università degli Studi di Salerno : SQL (4) Query di aggiornamento Prof. Alberto Postiglione

Dettagli

Transazioni - Parte 1

Transazioni - Parte 1 Basi di dati II Lezione 3 09/10/2008 Caputo Domenico Cosimo, Francesco Pichierri Transazioni - Parte 1 Le transazioni hanno a che fare con la programmabilità delle basi di dati. Prima di trattarle è necessaria

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

Basi di dati Architetture e linee di evoluzione

Basi di dati Architetture e linee di evoluzione Basi di dati Architetture e linee di evoluzione Paolo Atzeni Stefano Ceri Piero Fraternali Stefano Paraboschi Riccardo Tarlane web site McGraw-Hill IUAV - VENEZIA H 9891 BIBLIOTECA CENTRALE I J ()(),,.

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

La gestione delle interrogazioni

La gestione delle interrogazioni La gestione delle interrogazioni Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 1 Appunti dalle lezioni Esecuzione e ottimizzazione delle query Un modulo del DBMS Query processor

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

2104 volume III Programmazione

2104 volume III Programmazione 2103 SQLite Capitolo 77 77.1 Utilizzo generale................................. 2104 77.1.1 Utilizzo di sqlite3».......................... 2104 77.1.2 Copie di sicurezza............................ 2106

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

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

Soluzione esercitazione 01

Soluzione esercitazione 01 Soluzione esercitazione 01 Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SolEse01.pdf Sistemi Informativi L-A Videonoleggio - caso A: tabella

Dettagli

StudiodiunCaso. Roberto Basili,

StudiodiunCaso. Roberto Basili, StudiodiunCaso Roberto Basili, Department of Computer Science, System and Production University of Roma, Tor Vergata Via Della Ricerca Scientifica s.n.c., 00133, Roma, ITALY e-mail: basili@info.uniroma2.it

Dettagli

Viste materializzate in Oracle e SQL esteso. Sistemi di gestione di basi di dati. Tania Cerquitelli e Paolo Garza 1.

Viste materializzate in Oracle e SQL esteso. Sistemi di gestione di basi di dati. Tania Cerquitelli e Paolo Garza 1. Tabella d esempio Data warehouse in Oracle Schema tabella VENDITE(Città, Data, Importo) Viste materializzate ed estensioni al linguaggio SQL per l analisi dei dati presenti nei data warehouse Estensioni

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

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

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

Linguaggio SQL seconda parte

Linguaggio SQL seconda parte Linguaggio SQL seconda parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright Istituto Italiano Edizioni Atlas Le condizioni di ricerca 2 Le condizioni di ricerca Usate nelle

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

Architetture Distribuite per Basi di Dati

Architetture Distribuite per Basi di Dati Architetture Distribuite per Basi di Dati Carlo Combi e Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine 1 Architetture distribuite per Basi di Dati Introduzione

Dettagli

Esempio di database relazionale con l utilizzo del prodotto MySQL

Esempio di database relazionale con l utilizzo del prodotto MySQL Esempio di database relazionale con l utilizzo del prodotto MySQL Marco Liverani Aprile 2015 In queste pagine viene riportato in sintesi il progetto di un database relazionale esemplificativo con cui viene

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

COGNOME MATRICOLA. STUDENTE(Codice, Nome, Cognome, LuogoNascita) CDL (Codice, Nome, PunteggioMinimo) QUIZ(CodiceCorso, CodiceStudente, Punteggio)

COGNOME MATRICOLA. STUDENTE(Codice, Nome, Cognome, LuogoNascita) CDL (Codice, Nome, PunteggioMinimo) QUIZ(CodiceCorso, CodiceStudente, Punteggio) NOME COGNOME MATRICOLA ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella un sistema di gestione dei Quiz per l ammissione a corsi di Laurea a numero programmato dell Università di

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

8 Tecniche di recovery

8 Tecniche di recovery 8 Tecniche di recovery Se viene sottomessa una transazione T, o tutte le operazioni di T sono completate ed il loro effetto è registrato permanentemente nel DB, o T non ha nessun effetto né sul DB né su

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

Estensioni del linguaggio SQL per interrogazioni OLAP

Estensioni del linguaggio SQL per interrogazioni OLAP Sistemi Informativi Avanzati Anno Accademico 2012/2013 Prof. Domenico Beneventano Estensioni del linguaggio SQL per interrogazioni OLAP Esempio! Esempio delle vendite con scontrino (nella tabella, per

Dettagli

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di società di assicurazioni che erogano polizze sanitarie.

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di società di assicurazioni che erogano polizze sanitarie. NOME COGNOME MATRICOLA ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di società di assicurazioni che erogano polizze sanitarie. UTENTE(Codice, Cognome, Professione) SOCIETA(Nome,

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,

Dettagli

Basi di Dati. Esercitazione Algebra Relazionale e SQL. Ing. Paolo Cappellari. 15 maggio 2006

Basi di Dati. Esercitazione Algebra Relazionale e SQL. Ing. Paolo Cappellari. 15 maggio 2006 Basi di Dati Esercitazione Algebra Relazionale e SQL 15 maggio 2006 Ing. Paolo Cappellari Esercitazione Considerando la seguente base di dati: Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti

Dettagli

SISTEMI INFORMATIVI AZIENDALI. introduzione ai sistemi informativi 1

SISTEMI INFORMATIVI AZIENDALI. introduzione ai sistemi informativi 1 SISTEMI INFORMATIVI AZIENDALI introduzione ai sistemi informativi 1 Sistema Informativo Insieme degli strumenti, risorse e procedure che consentono la gestione delle informazioni aziendali e' essenziale

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

Basi di Dati e Sistemi Informativi. Asserzioni, Viste e Trigger Basi di dati Attive

Basi di Dati e Sistemi Informativi. Asserzioni, Viste e Trigger Basi di dati Attive Basi di Dati e Sistemi Informativi Basi di dati Attive Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Asserzioni Introdotte in SQL-2 rappresentano dei vincoli che non sono però associati

Dettagli

Alessandra Raffaetà. Esercizio: Cinema

Alessandra Raffaetà. Esercizio: Cinema Lezione 8 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Esercizio: Cinema

Dettagli

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà Lezione 8 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Esercizio: Cinema

Dettagli

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti. Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti. Cognome: Nome: Matricola: Domanda 1 (20%) Considerare la base di dati relazionale contenente le seguenti relazioni:

Dettagli

BASI DATI: algebra relazionale

BASI DATI: algebra relazionale BASI DATI: algebra relazionale BIOINGEGNERIA ED INFORMATICA MEDICA 1 Algebra relazionale Definizione L'algebra relazionale è un insieme di operazioni (query) che servono per manipolare relazioni (tabelle).

Dettagli