Matricola: __________________
Cognome:________________________________ Basi di Dati
Nome:___________________________________ Prova intermedia del giugno 2015
Durata 2h
Avvertenze: è severamente vietato consultare libri e appunti.
DOMANDE TEORIA (è obbligatorio rispondere ad almeno una domanda delle quattro di seguito elencate)
a) (3) Illustrare l’architettura di un DMBS descrivendo in particolare il modulo di gestione dei buffer; si indichi
inoltre, per ogni modulo dell’architettura, quali sono le proprietà delle transazioni che contribuisce a garantire.
b) (2) Si presenti in dettaglio la definizione di Conflict-Serializzabilità (CSR).
c) (2) Lo studente illustri la struttura di accesso ai dati denominata indice primario denso: caratteristiche della
struttura, ricerca, inserimento e cancellazione di entry dall’indice.
d) (3) Lo studente illustri l’algoritmo di codifica di Huffmann e mostri un esempio di codifica di un messaggio di
lunghezza 4 sull’alfabeto {Z,W,Y,X}.
d) (3) Domanda aggiuntiva di teoria (Transazioni, DBMS, Affidabilità, Concorrenza, Indici, Ottimizzazione, XML)
ESERCIZI
Esecuzione concorrente
Dato il seguente schedule S:
(2) indicare se è conflict-SR oppure no (calcolare l’insieme dei conflitti)
• S: r (t), r (z), r (z), w (z), r (x), r (x), w (x), w (y), w (y), w (y), w (t)
0 2 3 1 3 2 3 3 2 0 1
conflitti(S) = { (r (t), w (t)), (r (z), w (z)), (r (z), w (z)), (r (x), w (x)), (w (y), w (y)),
0 1 2 1 3 1 2 3 3 2
(w (y), w (y)), (w (y), w (y)) }
3 0 2 0 t 0 t
t 2
1 t 3
Poiché il grafo non è ACICLICO lo schedule non è CSR.
(3) se non è CSR verificare se è view-SR oppure non-SR (giustificare dettagliatamente la risposta).
• S: r (t), r (z), r (z), w (z), r (x), r (x), w (x), w (y), w (y), w (y), w (t)
0 2 3 1 3 2 3 3 2 0 1
r (t), w (y)
t = 0 0
0 w (z), w (t)
t = 1 1
1 r (z), r (x), w (y)
t = 2 2 2
2 r (z), r (x), w (x), w (y)
t = 3 3 3 3
3
LeggeDa(S) = Ø t < t , t < t , t < t , t < t
⇒ 0 1 2 1 3 1 2 3
ScrittureFinali(S) = { w (y), w (t), w (x), w (z) } t2 < t0 , t3 < t0
⇒
0 1 3 1
Schedule seriali da considerare:
S1: r (z), r (x), w (y), r (z), r (x), w (x), w (y), r (t), w (y), w (z), w (t)
2 2 2 3 3 3 3 0 0 1 1
LeggeDa(S1) = Ø
ScrittureFinali(S1) = { w (y), w (z), w (t), w (x) } quindi S è view-equivalente a S1 quindi è
0 1 1 3
VSR.
Ottimizzazione
Si consideri il seguente schema relazionale contenente le ricette di una catena di ristoranti:
INGREDIENTE(Codice, Nome, Calorie);
COMPOSIZIONE(Ricetta, Ingrediente, Quantità)
RICETTA(CodiceRicetta, Nome, Regione, TempoPreparazione)
Nota: la quantità nella tabella COMPOSIZIONE è espressa in grammi
Vincoli di integrità: COMPOSIZIONE.Ricetta → RICETTA, COMPOSIZIONE.Ingrediente → INGREDIENTE
Formulare in SQL la seguente interrogazione:
(1) Trovare gli ingredienti usati in ricette della Regione Veneto, riportando, il codice della ricetta e il nome e
le calorie dell’ingrediente.
SELECT R.CodiceRicetta, I.Nome, I.Calorie
FROM RICETTA R JOIN COMPOSIZIONE C ON R.CodiceRicetta = C.Ricetta
JOIN INGREDIENTE I O
-
Basi di dati - Esercitazioni
-
Idrogeologia - Esercitazioni
-
Geometria - Esercitazioni
-
Basi di dati - esercitazioni trigger