Capitolo 6. Esercizio 6.1
|
|
|
- Ottaviano Calabrese
- 8 anni fa
- Visualizzazioni
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 [email protected] from [email protected] from [email protected] from [email protected] 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 [email protected] from [email protected] from [email protected] from [email protected] 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 [email protected] join [email protected] 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 [email protected] where Nome = Rossi ; insert into [email protected] (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 [email protected] union [email protected] union [email protected] union [email protected] select Citta, sum(ammontare) from PRELIEVO join [email protected] 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 [email protected] 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: PRODUZIONE (NumeroSerie, TipoParte, Modello, Qta, Macchina) PRELIEVO (NumeroSerie, Lotto, Cliente, Venditore, Ammontare) CLIENTE (Nome,
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
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
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à
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
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
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à
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à)
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),
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,
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
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
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 è
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,
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,
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
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
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
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,
<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
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
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
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
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
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;
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
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
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
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
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
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:
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
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
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
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
σ 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)
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
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
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
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:
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
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)
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 ()(),,.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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,
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,
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
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
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
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
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
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:
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).
