Basi di dati II Prova parziale 11 aprile 2012 Compito A Rispondere su questo fascicolo. Tempo a disposizione: un ora e quindici minuti.

Documenti analoghi
Basi di dati II Esame 22 settembre 2017 Compito A Tempo a disposizione: due ore.

Basi di dati II Prova parziale 16 aprile 2014 Compito A Tempo a disposizione: un ora e quindici minuti.

Basi di dati II, primo modulo Prova parziale 22 aprile 2010 Compito A

Basi di dati II, primo modulo 7 febbraio 2012

Tecnologia delle basi di dati (ex Basi di dati, primo modulo) 15 giugno 2005 Compito A Tempo a disposizione: due ore e quindici minuti

Basi di dati II Prova parziale 23 maggio 2016 Compito A

Basi di dati II 21 febbraio 2017 Tempo a disposizione: un ora e quarantacinque minuti.

Basi di dati II Esame 20 settembre 2013 Compito A

Basi di dati II 30 gennaio 2015

Basi di dati II Prova parziale 9 maggio 2012 Compito A Rispondere su questo fascicolo. Tempo a disposizione: un ora e quindici minuti.

Basi di dati II, primo modulo Prova parziale 22 marzo 2010 Compito A

Basi di dati II 25 febbraio 2014 Tempo a disposizione: due ore.

Basi di dati II Esame 25 settembre 2012 Compito A Rispondere su questo fascicolo. Tempo a disposizione: due ore e trenta minuti.

Basi di dati II Esame 25 settembre 2012 Compito A Cenni sulle soluzioni (senza domande ripetute, le varianti del testo sono in rosso)

Cognome Nome Matricola Ordin.

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

Basi di dati II Esame 21 giugno 2018 Compito A Tempo a disposizione: 1h15 per la prova breve e 2h45 per la prova completa.

Basi di dati II, primo modulo 24 giugno 2011 Compito breve

Basi di dati II, primo modulo 24 giugno 2011 Compito breve Cenni sulle soluzioni

Basi di dati II Esame 28 giugno 2016 Compito A Tempo a disposizione: un ora per la prova breve e due ore e trenta minuti per la prova completa.

Basi di dati II, primo modulo Tecnologia delle basi di dati 24 settembre 2010 Compito A

Basi di dati II, primo modulo prova breve 22 giugno 2010

Basi di dati II Esame 29 settembre 2014

Basi di dati II Prova parziale 28 marzo 2014 Compito A Tempo a disposizione: un ora.

Basi di dati II Esame 18 luglio 2019 Cenni sulle soluzioni

Cenni sulle soluzioni

Basi di dati II Esame 5 luglio 2017 Tempo a disposizione: un ora e quindici minuti per la prova breve e due ore e trenta minuti per la prova completa.

Basi di dati II compito A 19 settembre 2018 Tempo a disposizione: un ora e quarantacinque minuti. Cognome Nome Matricola

Basi di dati II Esame 26 febbraio 2013 Rispondere su questo fascicolo. Tempo a disposizione: due ore e trenta minuti.

Basi di Dati: Strutture ed Algoritmi Appelli del 2001

Basi di dati II 21 settembre 2016 Tempo a disposizione: due ore e trenta minuti.

Basi di dati II, primo modulo 6 settembre 2011

Cognome Nome Matricola Ordin.

Esercizio 10.1 Soluzione

Modificare la dimensione (mostrando la nuova versione per la tabella in figura, con brevi commenti se necessario).

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

Basi di dati II Esame 16 febbraio 2016 Compito A Tempo a disposizione: due ore e quindici minuti.

Basi di dati II Esame 20 giugno 2014 Compito A Tempo a disposizione: due ore e trenta minuti (prova lunga), un ora (prova breve).

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

Basi di dati II Esame 26 febbraio 2013 Cenni sulle soluzioni

Controllo di concorrenza. concorrenza 1

Gestione della Concorrenza

Esecuzione concorrente di transazioni

Caso 1 6WUXWWXUHÃILVLFKHÃLQÃDOFXQLÃ'%06 6WUXWWXUHÃILVLFKHÃQHLÃ'%06ÃUHOD]LRQDOL 3URJHWWD]LRQHÃILVLFD HXULVWLFKHÃVXJJHULWHÃGDÃ,QIRUPL[

Indice Prefazione Funzionalit `a e architettura dei DBMS La gestione della memoria permanente e del buffer Organizzazioni seriale e sequenziale

Casi di studio per il tuning delle strutture fisiche (Shasha)

Basi di Dati: Complementi Docente: Prof. Pierangela Samarati

Esercizi proposti a lezione cap. 1 rev. ott da Atzeni e altri - Basi di dati vol. 2 ed/ ORGANIZZAZIONE FISICA

Strutture fisiche di accesso

Basi di dati I 28 gennaio 2014 Compito A Tempo a disposizione: un ora e quarantacinque minuti.

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

Progettazione Fisica

Tecnologia delle Basi di Dati

Basi di dati II Prova parziale 20 maggio 2013 Compito A

Le transazioni. Update CC set saldo = saldo + 25 where ccnum = Update CC set saldo = saldo 25 where ccnum = 26488

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

Esecuzione concorrente di transazioni

Basi di dati 11 gennaio 2016 Prova parziale Compito A Tempo a disposizione: un ora e quindici minuti. Libri chiusi.

Esercizio Dispositivi-1. Soluzione

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

una chiave primaria o secondaria => B+tree primario o secondario (NL,g e h diversi) clustered o unclustered => ho un piano di accesso diverso!!

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

Memorizzazione di una relazione

Basi di dati I 14 febbraio 2019 Compito A Tempo a disposizione: un ora e quindici minuti per la prova breve, due ore per la prova lunga

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

Transazioni. Transazioni. Stati di una transazione. Transazioni

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

GESTIONE DELLE TRANSAZIONI

Esercizio FAT 1. Soluzione:

Esecuzione concorrente di transazioni

Sistemi informativi e basi di dati. Il modello relazionale. SQL come DCL Utilizzo di un DBMS Reale. Forme normali. Basi di dati direzionali

Esercitazione E3 File System

Compito Sistemi Informativi LM. Tempo concesso : 90 minuti 10 febbraio 2011 Nome: Cognome: Matricola:

Affidabilità e Concorrenza

Basi di Dati 2. Corso del Prof. Stefano Ceri. Politecnico di Milano Anno Accademico 2010/2011. Stefano Invernizzi

Settore Inizio lettura: t+ Fine lettura Inizio trasf. in memoria Fine trasf. in memoria 5 (35-21).0,1= 1,4 1,5 1,5 1,56

Strutture fisiche e strutture di accesso ai dati

Strutture Fisiche di Memorizzazione

Basi di dati I 10 settembre 2019 Tempo a disposizione: un ora e 30 minuti. Possibili soluzioni. Cognome: Nome: Matricola:

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

Informatica 3. LEZIONE 20: Ordinamento esterno. Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno

Introduzione Definizioni

Tecnologia di un DBMS

Serializable Snapshot Isolation (SSI) in PostgreSQL 9.1

ARCHITETTURA DEI DBMS 1

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 17 Febbraio 2006

Sistemi Operativi e Laboratorio, Prova del 5/6/2017

Esercizio FAT 1. Soluzione: 1. Capacità del disco: 2 24 blocchi (3 byte=24 bit) 2

ARCHITETTURA DEI DBMS

Parte 2 Esercitazione sulla gestione della concorrenza

Capitolo 9. Sistemi di basi di dati Pearson Addison-Wesley. All rights reserved

MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI

FILE E INDICI Architettura DBMS

Organizzazione fisica dei dati

Pag Politecnico di Torino 1

D B M G D B M G 2. Gestione degli indici. Introduzione Strutture fisiche di accesso Definizione di indici in SQL Progettazione fisica

Basi di dati I 22 settembre 2014 Tempo a disposizione: un ora e trenta minuti.

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

Ottimizzazione e organizzazione fisica

Transcript:

Basi di dati II Prova parziale 11 aprile 2012 Compito A Rispondere su questo fascicolo. Tempo a disposizione: un ora e quindici minuti. Cognome Nome Matricola Ordin. Domanda 1 (20%) Considerare un sistema con dischi con N = 400 blocchi per traccia tempo medio di posizionamento della testina (tempo di seek) t S = 5 msec tempo medio di latenza (attesa dovuta alla rotazione) t L = 3 msec tempo minimo di lettura di un blocco t B = 15 µsec Rispondere alle seguenti domande mostrando formula e valore numerico (N.B. non servono calcolatrici, i calcoli sono semplici; se si ritengono le informazioni imprecise, dare risposte approssimate, usando il buon senso). 1. Qual è il tempo medio necessario per leggere un blocco del quale sia dato l indirizzo fisico? 2. Qual è il tempo medio necessario per la scansione sequenziale di un file costituito da F = 100 blocchi contigui, non letti di recente? 3. Qual è il tempo che si può ipotizzare necessario per eseguire un accesso diretto ad un record di un file attraverso un indice che abbia profondità p = 4 e fan-out (fattore di blocco dell indice) f I = 100, usato di recente, ma in modo non molto intenso? 4. Qual è il tempo che si può ipotizzare necessario per eseguire m = 1000 accessi diretti in tempi ravvicinati a record di un file (molto grande) attraverso un indice che abbia profondità p = 4, fan-out f I = 100, con disponibilità di circa P = 150 pagine di buffer?

Domanda 2 (20%) Si consideri una base di dati con le relazioni R1(A,B,C,D) con N 1 =2.500.000 ennuple di lunghezza l 1 = 20 Byte b=5 valori diversi sull attributo B (tutti gli interi compresi fra 1 e b) c=25.000 valori diversi sull attributo C (tutti gli interi compresi fra 1 e c) una struttura disordinata, un indice sulla chiave primaria A e un altro sull attributo C; R2(E,F,G) con N 2 =1.000.000 ennuple di lunghezza l 2 = 100 Byte una struttura disordinata, un indice sulla chiave primaria E Supporre che: i blocchi abbiano dimensione P = 2 KByte (approssimabile a 2000 Byte); ogni operazione possa contare su un numero di pagine di buffer pari a circa q=300; gli indici abbiano tutti p=4 livelli (contando anche radice e foglie) e fattore di blocco massimo f i =100; il sistema esegua i join come nested loop oppure come hash-join (si ricorda che questi ultimi hanno un costo pari a circa tre volte la somma dei blocchi dei due file, a condizione che il quadrato del numero di pagine di buffer disponibili sia maggiore del numero di blocchi del più piccolo dei due file). Valutare il costo, indicandolo in modo sia simbolico sia numerico e specificando quale algoritmo si utilizza per il join di ciascuna delle interrogazioni seguenti (NB: al di là del dettaglio, la cui precisione non è forse nemmeno possibile, è essenziale mostrare una comprensione degli ordini di grandezza): where B=5 where C=502

Domanda 3 (20%) Per ciascuno degli schedule sotto riportati, indicare, scrivendo sì o no in ciascuna casella, a quali classi appartiene: S (seriale, rispetto a letture e scritture, ignorare commit e abort), CSR (conflict-serializzabile), S2PL (cioè generabile da uno scheduler basato su 2PL stretto), MV (cioè generabile da uno scheduler multiversion con controllo di serializzabilità: a serializable transaction cannot modify or lock rows changed by other transactions after the serializable transaction began ). Negli schedule, s i indica l inizio della transazione i e c i il suo commit. S CSR S2PL MV s 2, s 1, r 2 (x), w 2 (x), c 2, r 1 (x), w 1 (x), c 1 s 2, r 2 (x), w 2 (x), c 2, s 1, r 1 (x), w 1 (x), c 1 s 1, r 1 (x), s 2, r 2 (x), w 1 (x), c 1, w 2 (x), c 2 s 1, r 1 (x), s 2, r 2 (x), w 2 (x), r 2 (y), w 2 (y), c 2, r 1 (y), c 1 Domanda 4 (20%) Una catena di supermercati ha una base di dati dei propri clienti che dispongono di una tessera fedeltà, con varie informazioni su ciascun cliente, fra cui (a) il totale dei punti acquisiti attraverso l uso della tessera e (b) il negozio della catena cui fa riferimento (ad esempio, quello presso cui ha inizialmente richiesto la tessera). Si vuole eseguire su di essa l interrogazione che calcola, per ciascun negozio, il numero dei clienti, la somma dei punti fedeltà dei clienti e la relativa media per cliente. Indicare quale livello di isolamento (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ o SERIALIZABLE) si potrebbe scegliere in ciascuno dei seguenti casi (si supponga che, in generale, sia stato rilevato che, nel corso degli inserimenti e delle modifiche, vengono inseriti valori sbagliati anche di vari ordini di grandezza, che sono poi corretti prima del commit): 1. L operazione è eseguita mentre vengono inseriti alcuni nuovi clienti (per ciascun negozio pochi rispetto a quelli già presenti), con la finalità di acquisire informazioni approssimate ma ragionevolmente indicative sugli andamenti complessivi. 2. L operazione è eseguita mentre vengono inseriti molti nuovi clienti, con la finalità di acquisire informazioni approssimate ma ragionevolmente indicative sugli andamenti complessivi. 3. L operazione è eseguita mentre vengono inseriti alcuni nuovi clienti (per ciascun negozio pochi rispetto a quelli già presenti), con la finalità di individuare i primi tre negozi da premiare in una campagna promozionale sulla base dei punti acquisiti dai rispettivi clienti. 4. L operazione è eseguita mentre vengono modificati i valori dei punti fedeltà di tutti i clienti (a seguito di una ridefinizione dei criteri di assegnazione dei punti stessi), con la finalità di individuare i primi tre negozi da premiare in una campagna promozionale sulla base dei punti acquisiti dai rispettivi clienti. 5. L operazione è eseguita in un momento in cui non ci sono aggiornamenti di alcun genere, con la finalità di acquisire informazioni approssimate ma ragionevolmente indicative sugli andamenti complessivi. 1. 2. 3. 4. 5.

Domanda 5 (20%) Si considerino due relazioni R 1 (A, C), R 2 (A, D, E, F ), in cui gli attributi hanno tutti la stessa dimensione L = 4Byte, molto più piccola della dimensione del blocco pari a B = 4000 Byte. Si supponga che le relazioni abbiano entrambe N = 1.000.000 ennuple, con gli stessi valori su A, e che le operazioni più frequenti su di essa siano le seguenti: o 1 selezione di una ennupla del join di R 1 e R 2 (sulla base del valore di A), con frequenza f 1 = 10.000; o 2 scansione dell intera relazione R 1, con frequenza f 2 = 1 Valutare le due seguenti alternative di memorizzazione, calcolando il costo complessivo (riportare la formula che indica il numero di accessi nell unità di tempo, in base alle variabili sopra citate): (i) memorizzazione separata delle due relazioni, entrambe ordinate su A e con indice primario su A con profondità p = 4, con 2 livelli mediamente disponibili nel buffer. costo unitario di o 1 : costo unitario di o 2 : costo complessivo: (ii) memorizzazione in un cluster delle due relazioni pure entrambe ordinate su A e con indice primario su A con profondità sempre p = 4, con 2 livelli mediamente disponibili nel buffer. costo unitario di o 1 : costo unitario di o 2 : costo complessivo: In conclusione, conviene quindi la memorizzazione in un cluster? (Sì o No)

Basi di dati II Prova parziale 11 aprile 2012 Compito B Rispondere su questo fascicolo. Tempo a disposizione: un ora e quindici minuti. Cognome Nome Matricola Ordin. Domanda 1 (20%) Considerare un sistema con dischi con N = 400 blocchi per traccia tempo medio di posizionamento della testina (tempo di seek) t S = 4 msec tempo medio di latenza (attesa dovuta alla rotazione) t L = 4 msec tempo minimo di lettura di un blocco t B = 15 µsec Rispondere alle seguenti domande mostrando formula e valore numerico (N.B. non servono calcolatrici, i calcoli sono semplici; se si ritengono le informazioni imprecise, dare risposte approssimate, usando il buon senso). 1. Qual è il tempo medio necessario per leggere un blocco del quale sia dato l indirizzo fisico? 2. Qual è il tempo medio necessario per la scansione sequenziale di un file costituito da F = 100 blocchi contigui, non letti di recente? 3. Qual è il tempo che si può ipotizzare necessario per eseguire un accesso diretto ad un record di un file attraverso un indice che abbia profondità p = 4 e fan-out (fattore di blocco dell indice) f I = 100, usato di recente, ma in modo non molto intenso? 4. Qual è il tempo che si può ipotizzare necessario per eseguire m = 2000 accessi diretti in tempi ravvicinati a record di un file (molto grande) attraverso un indice che abbia profondità p = 4, fan-out f I = 100, con disponibilità di circa P = 150 pagine di buffer?

Domanda 2 (20%) Si consideri una base di dati con le relazioni R1(A,B,C,D) con L 1 =1.500.000 ennuple di lunghezza l 1 = 40 Byte b=5 valori diversi sull attributo B (tutti gli interi compresi fra 1 e b) c=15.000 valori diversi sull attributo C (tutti gli interi compresi fra 1 e c) una struttura disordinata, un indice sulla chiave primaria A e un altro sull attributo C; R2(E,F,G) con L 2 =2.000.000 ennuple di lunghezza l 2 = 200 Byte una struttura disordinata, un indice sulla chiave primaria E Supporre che: i blocchi abbiano dimensione P = 4 KByte (approssimabile a 4000 Byte); ogni operazione possa contare su un numero di pagine di buffer pari a circa q=300; gli indici abbiano tutti i=4 livelli (contando anche radice e foglie) e fattore di blocco massimo f i =100; il sistema esegua i join come nested loop oppure come hash-join (si ricorda che questi ultimi hanno un costo pari a circa tre volte la somma dei blocchi dei due file, a condizione che il quadrato del numero di pagine di buffer disponibili sia maggiore del numero di blocchi del più piccolo dei due file). Valutare il costo, indicandolo in modo sia simbolico sia numerico e specificando quale algoritmo si utilizza per il join di ciascuna delle interrogazioni seguenti (NB: al di là del dettaglio, la cui precisione non è forse nemmeno possibile, è essenziale mostrare una comprensione degli ordini di grandezza): where B=5 where C=502

Domanda 3 (20%) Per ciascuno degli schedule sotto riportati, indicare, scrivendo sì o no in ciascuna casella, a quali classi appartiene: S (seriale, rispetto a letture e scritture, ignorare commit e abort), CSR (conflict-serializzabile), S2PL (cioè generabile da uno scheduler basato su 2PL stretto), MV (cioè generabile da uno scheduler multiversion con controllo di serializzabilità: a serializable transaction cannot modify or lock rows changed by other transactions after the serializable transaction began ). Negli schedule, s i indica l inizio della transazione i e c i il suo commit. S CSR S2PL MV s 2, r 2 (x), w 2 (x), c 2, s 1, r 1 (x), w 1 (x), c 1 s 1, r 1 (x), s 2, r 2 (x), w 1 (x), c 1, w 2 (x), c 2 s 2, s 1, r 2 (x), w 2 (x), c 2, r 1 (x), w 1 (x), c 1 s 1, r 1 (x), s 2, r 2 (x), w 2 (x), r 2 (y), w 2 (y), c 2, r 1 (y), c 1 Domanda 4 (20%) Una catena di supermercati ha una base di dati dei propri clienti che dispongono di una tessera fedeltà, con varie informazioni su ciascun cliente, fra cui (a) il totale dei punti acquisiti attraverso l uso della tessera e (b) il negozio della catena cui fa riferimento (ad esempio, quello presso cui ha inizialmente richiesto la tessera). Si vuole eseguire su di essa l interrogazione che calcola, per ciascun negozio, il numero dei clienti, la somma dei punti fedeltà dei clienti e la relativa media per cliente. Indicare quale livello di isolamento (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ o SERIALIZABLE) si potrebbe scegliere in ciascuno dei seguenti casi (si supponga che, in generale, sia stato rilevato che, nel corso degli inserimenti e delle modifiche, vengono inseriti valori sbagliati anche di vari ordini di grandezza, che sono poi corretti prima del commit): 1. L operazione è eseguita mentre vengono inseriti molti nuovi clienti, con la finalità di acquisire informazioni approssimate ma ragionevolmente indicative sugli andamenti complessivi. 2. L operazione è eseguita mentre vengono modificati i valori dei punti fedeltà di alcuni clienti (in ciascun negozio una piccola percentuale), con la finalità di acquisire informazioni approssimate ma ragionevolmente indicative sugli andamenti complessivi. 3. L operazione è eseguita in un momento in cui non ci sono aggiornamenti di alcun genere, con la finalità di individuare i primi tre negozi da premiare in una campagna promozionale sulla base dei punti acquisiti dai rispettivi clienti. 4. L operazione è eseguita mentre vengono inseriti molti nuovi clienti, con la finalità di individuare i primi tre negozi da premiare in una campagna promozionale sulla base dei punti acquisiti dai rispettivi clienti. 5. L operazione è eseguita mentre vengono modificati i valori dei punti fedeltà di alcuni clienti (in ciascun negozio una piccola percentuale), con la finalità di individuare i primi tre negozi da premiare in una campagna promozionale sulla base dei punti acquisiti dai rispettivi clienti. 1. 2. 3. 4. 5.

Domanda 5 (20%) Si considerino due relazioni R 1 (A, C), R 2 (A, D, E, F ), in cui gli attributi hanno tutti la stessa dimensione a = 4Byte, molto più piccola della dimensione del blocco pari a B = 4000 Byte. Si supponga che le relazioni abbiano entrambe L = 1.000.000 ennuple, con gli stessi valori su A, e che le operazioni più frequenti su di essa siano le seguenti: o 1 selezione di una ennupla del join di R 1 e R 2 (sulla base del valore di A), con frequenza f 1 = 1000; o 2 scansione dell intera relazione R 1, con frequenza f 2 = 10 Valutare le due seguenti alternative di memorizzazione, calcolando il costo complessivo (riportare la formula che indica il numero di accessi nell unità di tempo, in base alle variabili sopra citate): (i) memorizzazione separata delle due relazioni, entrambe ordinate su A e con indice primario su A con profondità p = 4, con 2 livelli mediamente disponibili nel buffer. costo unitario di o 1 : costo unitario di o 2 : costo complessivo: (ii) memorizzazione in un cluster delle due relazioni pure entrambe ordinate su A e con indice primario su A con profondità sempre p = 4, con 2 livelli mediamente disponibili nel buffer. costo unitario di o 1 : costo unitario di o 2 : costo complessivo: In conclusione, conviene quindi la memorizzazione in un cluster? (Sì o No)

Basi di dati II Prova parziale 11 aprile 2012 Compito C Rispondere su questo fascicolo. Tempo a disposizione: un ora e quindici minuti. Cognome Nome Matricola Ordin. Domanda 1 (20%) Considerare un sistema con dischi con N = 400 blocchi per traccia tempo medio di posizionamento della testina (tempo di seek) t S = 4 msec tempo medio di latenza (attesa dovuta alla rotazione) t L = 4 msec tempo minimo di lettura di un blocco t B = 15 µsec Rispondere alle seguenti domande mostrando formula e valore numerico (N.B. non servono calcolatrici, i calcoli sono semplici; se si ritengono le informazioni imprecise, dare risposte approssimate, usando il buon senso). 1. Qual è il tempo medio necessario per leggere un blocco del quale sia dato l indirizzo fisico? 2. Qual è il tempo medio necessario per la scansione sequenziale di un file costituito da F = 100 blocchi contigui, non letti di recente? 3. Qual è il tempo che si può ipotizzare necessario per eseguire un accesso diretto ad un record di un file attraverso un indice che abbia profondità p = 4 e fan-out (fattore di blocco dell indice) f I = 100, usato di recente, ma in modo non molto intenso? 4. Qual è il tempo che si può ipotizzare necessario per eseguire m = 1000 accessi diretti in tempi ravvicinati a record di un file (molto grande) attraverso un indice che abbia profondità p = 4, fan-out f I = 100, con disponibilità di circa P = 150 pagine di buffer?

Domanda 2 (20%) Si consideri una base di dati con le relazioni R1(A,B,C,D) con N 1 =2.500.000 ennuple di lunghezza l 1 = 20 Byte b=5 valori diversi sull attributo B (tutti gli interi compresi fra 1 e b) c=25.000 valori diversi sull attributo C (tutti gli interi compresi fra 1 e c) una struttura disordinata, un indice sulla chiave primaria A e un altro sull attributo C; R2(E,F,G) con N 2 =1.000.000 ennuple di lunghezza l 2 = 100 Byte una struttura disordinata, un indice sulla chiave primaria E Supporre che: i blocchi abbiano dimensione P = 2 KByte (approssimabile a 2000 Byte); ogni operazione possa contare su un numero di pagine di buffer pari a circa q=300; gli indici abbiano tutti i=4 livelli (contando anche radice e foglie) e fattore di blocco massimo f i =100; il sistema esegua i join come nested loop oppure come hash-join (si ricorda che questi ultimi hanno un costo pari a circa tre volte la somma dei blocchi dei due file, a condizione che il quadrato del numero di pagine di buffer disponibili sia maggiore del numero di blocchi del più piccolo dei due file). Valutare il costo, indicandolo in modo sia simbolico sia numerico e specificando quale algoritmo si utilizza per il join di ciascuna delle interrogazioni seguenti (NB: al di là del dettaglio, la cui precisione non è forse nemmeno possibile, è essenziale mostrare una comprensione degli ordini di grandezza): where B=5 where C=502

Domanda 3 (20%) Per ciascuno degli schedule sotto riportati, indicare, scrivendo sì o no in ciascuna casella, a quali classi appartiene: S (seriale, rispetto a letture e scritture, ignorare commit e abort), CSR (conflict-serializzabile), S2PL (cioè generabile da uno scheduler basato su 2PL stretto), MV (cioè generabile da uno scheduler multiversion con controllo di serializzabilità: a serializable transaction cannot modify or lock rows changed by other transactions after the serializable transaction began ). Negli schedule, s i indica l inizio della transazione i e c i il suo commit. S CSR S2PL MV s 2, s 1, r 2 (x), w 2 (x), c 2, r 1 (x), w 1 (x), c 1 s 2, r 2 (x), w 2 (x), c 2, s 1, r 1 (x), w 1 (x), c 1 s 1, r 1 (x), s 2, r 2 (x), w 2 (x), r 2 (y), w 2 (y), c 2, r 1 (y), c 1 s 1, r 1 (x), s 2, r 2 (x), w 1 (x), c 1, w 2 (x), c 2 Domanda 4 (20%) Una catena di supermercati ha una base di dati dei propri clienti che dispongono di una tessera fedeltà, con varie informazioni su ciascun cliente, fra cui (a) il totale dei punti acquisiti attraverso l uso della tessera e (b) il negozio della catena cui fa riferimento (ad esempio, quello presso cui ha inizialmente richiesto la tessera). Si vuole eseguire su di essa l interrogazione che calcola, per ciascun negozio, il numero dei clienti, la somma dei punti fedeltà dei clienti e la relativa media per cliente. Indicare quale livello di isolamento (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ o SERIALIZABLE) si potrebbe scegliere in ciascuno dei seguenti casi (si supponga che, in generale, sia stato rilevato che, nel corso degli inserimenti e delle modifiche, vengono inseriti valori sbagliati anche di vari ordini di grandezza, che sono poi corretti prima del commit): 1. L operazione è eseguita mentre vengono inseriti alcuni nuovi clienti (per ciascun negozio pochi rispetto a quelli già presenti), con la finalità di acquisire informazioni approssimate ma ragionevolmente indicative sugli andamenti complessivi. 2. L operazione è eseguita mentre vengono modificati i valori dei punti fedeltà di tutti i clienti (a seguito di una ridefinizione dei criteri di assegnazione dei punti stessi), con la finalità di acquisire informazioni approssimate ma ragionevolmente indicative sugli andamenti complessivi. 3. L operazione è eseguita in un momento in cui non ci sono aggiornamenti di alcun genere, con la finalità di individuare i primi tre negozi da premiare in una campagna promozionale sulla base dei punti acquisiti dai rispettivi clienti. 4. L operazione è eseguita mentre vengono inseriti alcuni nuovi clienti (per ciascun negozio pochi rispetto a quelli già presenti), con la finalità di individuare i primi tre negozi da premiare in una campagna promozionale sulla base dei punti acquisiti dai rispettivi clienti. 5. L operazione è eseguita mentre vengono modificati i valori dei punti fedeltà di tutti i clienti (a seguito di una ridefinizione dei criteri di assegnazione dei punti stessi), con la finalità di individuare i primi tre negozi da premiare in una campagna promozionale sulla base dei punti acquisiti dai rispettivi clienti. 1. 2. 3. 4. 5.

Domanda 5 (20%) Si considerino due relazioni R 1 (A, C), R 2 (A, D, E, F ), in cui gli attributi hanno tutti la stessa dimensione a = 4Byte, molto più piccola della dimensione del blocco pari a B = 4000 Byte. Si supponga che le relazioni abbiano entrambe L = 1.000.000 ennuple, con gli stessi valori su A, e che le operazioni più frequenti su di essa siano le seguenti: o 1 selezione di una ennupla del join di R 1 e R 2 (sulla base del valore di A), con frequenza f 1 = 10.000; o 2 scansione dell intera relazione R 1, con frequenza f 2 = 1 Valutare le due seguenti alternative di memorizzazione, calcolando il costo complessivo (riportare la formula che indica il numero di accessi nell unità di tempo, in base alle variabili sopra citate): (i) memorizzazione separata delle due relazioni, entrambe ordinate su A e con indice primario su A con profondità p = 4, con 2 livelli mediamente disponibili nel buffer. costo unitario di o 1 : costo unitario di o 2 : costo complessivo: (ii) memorizzazione in un cluster delle due relazioni pure entrambe ordinate su A e con indice primario su A con profondità sempre p = 4, con 2 livelli mediamente disponibili nel buffer. costo unitario di o 1 : costo unitario di o 2 : costo complessivo: In conclusione, conviene quindi la memorizzazione in un cluster? (Sì o No)

Basi di dati II Prova parziale 11 aprile 2012 Compito D Rispondere su questo fascicolo. Tempo a disposizione: un ora e quindici minuti. Cognome Nome Matricola Ordin. Domanda 1 (20%) Considerare un sistema con dischi con N = 400 blocchi per traccia tempo medio di posizionamento della testina (tempo di seek) t S = 5 msec tempo medio di latenza (attesa dovuta alla rotazione) t L = 3 msec tempo minimo di lettura di un blocco t B = 15 µsec Rispondere alle seguenti domande mostrando formula e valore numerico (N.B. non servono calcolatrici, i calcoli sono semplici; se si ritengono le informazioni imprecise, dare risposte approssimate, usando il buon senso). 1. Qual è il tempo medio necessario per leggere un blocco del quale sia dato l indirizzo fisico? 2. Qual è il tempo medio necessario per la scansione sequenziale di un file costituito da F = 100 blocchi contigui, non letti di recente? 3. Qual è il tempo che si può ipotizzare necessario per eseguire un accesso diretto ad un record di un file attraverso un indice che abbia profondità p = 4 e fan-out (fattore di blocco dell indice) f I = 100, usato di recente, ma in modo non molto intenso? 4. Qual è il tempo che si può ipotizzare necessario per eseguire m = 2000 accessi diretti in tempi ravvicinati a record di un file (molto grande) attraverso un indice che abbia profondità p = 4, fan-out f I = 100, con disponibilità di circa P = 150 pagine di buffer?

Domanda 2 (20%) Si consideri una base di dati con le relazioni R1(A,B,C,D) con L 1 =1.500.000 ennuple di lunghezza l 1 = 40 Byte b=5 valori diversi sull attributo B (tutti gli interi compresi fra 1 e b) c=15.000 valori diversi sull attributo C (tutti gli interi compresi fra 1 e c) una struttura disordinata, un indice sulla chiave primaria A e un altro sull attributo C; R2(E,F,G) con L 2 =2.000.000 ennuple di lunghezza l 2 = 200 Byte una struttura disordinata, un indice sulla chiave primaria E Supporre che: i blocchi abbiano dimensione P = 4 KByte (approssimabile a 4000 Byte); ogni operazione possa contare su un numero di pagine di buffer pari a circa q=300; gli indici abbiano tutti p=4 livelli (contando anche radice e foglie) e fattore di blocco massimo f i =100; il sistema esegua i join come nested loop oppure come hash-join (si ricorda che questi ultimi hanno un costo pari a circa tre volte la somma dei blocchi dei due file, a condizione che il quadrato del numero di pagine di buffer disponibili sia maggiore del numero di blocchi del più piccolo dei due file). Valutare il costo, indicandolo in modo sia simbolico sia numerico e specificando quale algoritmo si utilizza per il join di ciascuna delle interrogazioni seguenti (NB: al di là del dettaglio, la cui precisione non è forse nemmeno possibile, è essenziale mostrare una comprensione degli ordini di grandezza): where B=5 where C=502

Domanda 3 (20%) Per ciascuno degli schedule sotto riportati, indicare, scrivendo sì o no in ciascuna casella, a quali classi appartiene: S (seriale, rispetto a letture e scritture, ignorare commit e abort), CSR (conflict-serializzabile), S2PL (cioè generabile da uno scheduler basato su 2PL stretto), MV (cioè generabile da uno scheduler multiversion con controllo di serializzabilità: a serializable transaction cannot modify or lock rows changed by other transactions after the serializable transaction began ). Negli schedule, s i indica l inizio della transazione i e c i il suo commit. S CSR S2PL MV s 1, r 1 (x), s 2, r 2 (x), w 2 (x), r 2 (y), w 2 (y), c 2, r 1 (y), c 1 s 1, r 1 (x), s 2, r 2 (x), w 1 (x), c 1, w 2 (x), c 2 s 2, s 1, r 2 (x), w 2 (x), c 2, r 1 (x), w 1 (x), c 1 s 2, r 2 (x), w 2 (x), c 2, s 1, r 1 (x), w 1 (x), c 1 Domanda 4 (20%) Una catena di supermercati ha una base di dati dei propri clienti che dispongono di una tessera fedeltà, con varie informazioni su ciascun cliente, fra cui (a) il totale dei punti acquisiti attraverso l uso della tessera e (b) il negozio della catena cui fa riferimento (ad esempio, quello presso cui ha inizialmente richiesto la tessera). Si vuole eseguire su di essa l interrogazione che calcola, per ciascun negozio, il numero dei clienti, la somma dei punti fedeltà dei clienti e la relativa media per cliente. Indicare quale livello di isolamento (READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ o SERIALIZABLE) si potrebbe scegliere in ciascuno dei seguenti casi (si supponga che, in generale, sia stato rilevato che, nel corso degli inserimenti e delle modifiche, vengono inseriti valori sbagliati anche di vari ordini di grandezza, che sono poi corretti prima del commit): 1. L operazione è eseguita mentre vengono modificati i valori dei punti fedeltà di tutti i clienti (a seguito di una ridefinizione dei criteri di assegnazione dei punti stessi), con la finalità di acquisire informazioni approssimate ma ragionevolmente indicative sugli andamenti complessivi. 2. L operazione è eseguita mentre vengono inseriti molti nuovi clienti, con la finalità di individuare i primi tre negozi da premiare in una campagna promozionale sulla base dei punti acquisiti dai rispettivi clienti. 3. L operazione è eseguita mentre vengono modificati i valori dei punti fedeltà di alcuni clienti (in ciascun negozio una piccola percentuale), con la finalità di acquisire informazioni approssimate ma ragionevolmente indicative sugli andamenti complessivi. 4. L operazione è eseguita mentre vengono modificati i valori dei punti fedeltà di alcuni clienti (in ciascun negozio una piccola percentuale), con la finalità di individuare i primi tre negozi da premiare in una campagna promozionale sulla base dei punti acquisiti dai rispettivi clienti. 5. L operazione è eseguita in un momento in cui non ci sono aggiornamenti di alcun genere, con la finalità di individuare i primi tre negozi da premiare in una campagna promozionale sulla base dei punti acquisiti dai rispettivi clienti. 1. 2. 3. 4. 5.

Domanda 5 (20%) Si considerino due relazioni R 1 (A, C), R 2 (A, D, E, F ), in cui gli attributi hanno tutti la stessa dimensione L = 4Byte, molto più piccola della dimensione del blocco pari a B = 4000 Byte. Si supponga che le relazioni abbiano entrambe N = 1.000.000 ennuple, con gli stessi valori su A, e che le operazioni più frequenti su di essa siano le seguenti: o 1 selezione di una ennupla del join di R 1 e R 2 (sulla base del valore di A), con frequenza f 1 = 1000; o 2 scansione dell intera relazione R 1, con frequenza f 2 = 10 Valutare le due seguenti alternative di memorizzazione, calcolando il costo complessivo (riportare la formula che indica il numero di accessi nell unità di tempo, in base alle variabili sopra citate): (i) memorizzazione separata delle due relazioni, entrambe ordinate su A e con indice primario su A con profondità p = 4, con 2 livelli mediamente disponibili nel buffer. costo unitario di o 1 : costo unitario di o 2 : costo complessivo: (ii) memorizzazione in un cluster delle due relazioni pure entrambe ordinate su A e con indice primario su A con profondità sempre p = 4, con 2 livelli mediamente disponibili nel buffer. costo unitario di o 1 : costo unitario di o 2 : costo complessivo: In conclusione, conviene quindi la memorizzazione in un cluster? (Sì o No)