Esame Basi di Dati
21 Gennaio 2013
Matricola
Prog. (Sı̀/No)
Cognome
Nome
Istruzioni
• I voti verranno resi disponibili su AlmaEsami. Chi vorrà rifiutare il voto
dovrà comunicarlo tassativamente 5 giorni dalla data della pubblicazione all’indirizzo [email protected]. Passato questo termine, i voti
di coloro che non li hanno esplicitamente rifiutati si intendono accettati, e
il docente provvederà a registrarli successivamente — il momento preciso
in cui avverrà la registrazione non è definito a priori, e può variare da
appello ad appello, l’unico termine fisso è quello dei 5 giorni per rifiutare
il voto. Quanto detto vale per i voti maggiori o uguali a 18.
• Non sarà compilato alcuno statino, e il libretto non verrà firmato. La
registrazione avviene solamente elettronicamente. Pertanto non bisogna
presentarsi fisicamente dal docente per la registrazione.
• Prima di iniziare, scrivere nome, cognome e matricola su tutti i fogli,
in modo leggibile. Nella tabella sopra riportata indicare anche se si deve
sostenere la parte di laboratorio e, in caso positivo, se si è svolto il progetto.
• Scrivere le soluzioni direttamente su questi fogli, e utilizzare i fogli protocollo solo per la brutta: i fogli protocollo verranno ritirati, ma non
verranno corretti. Non è gradito l’uso delle matite: si deve utilizzare una
penna.
• Non si possono utilizzare libri o appunti, né tenere telefoni cellulari o altri
dispositivi di comunicazione, neanche se spenti. Il tempo a disposizione è
di due ore.
• Si consiglia di non dare soltanto le soluzioni, ma anche i ragionamenti
che hanno portato alla soluzione. Questo ci permetterà di valutare anche
risposte parziali o parzialmente false.
Firma per la presa visione delle istruzioni:
1
1
Multiple choice
1. Come viene rappresentata l’associazione uno a molti nel modello logico?
(a) L’identificatore univoco dell’entita’ di arrivo diventa chiave esterna
del’entita’ di partenza associata.
(b) L’identificatore univoco dell’entita’ di partenza diventa chiave esterna
del’entita’ di arrivo associata.
(c) Viene creata una nuova entita’ che contiene le chiavi della prima e
della seconda entita’.
(d) Viene creata una nuova entita’ che contiene solo gli attributi che non
sono chiavi.
2. Cosa si intende con normalizzazione?
(a) E’ una tecnica di verifica dei risultati della progettazione di una base
di dati.
(b) E’ una metodologia di progettazione.
(c) Ambedue le risposte precedenti sono vere.
(d) Nessuna delle risposte precedenti e’ vera.
3. Quando si dice che una transazione rispetta la proprieta’ di durabilita?
(a) Se tutte le operazioni che la compongono sono affidabili.
(b) Se tutte le operazioni che la compongono sono completate, oppure
sono disfatte, come se non fossero mai state eseguite.
(c) Se rende permanenti le modifiche effettuate immediatamente dopo il
termine della transazione.
(d) Se e’ eseguita nel sistema contemporaneamente ad altre transazioni,
come se fosse l’unica ad essere eseguita.
4. In cosa consiste la fase di progettazione logica?
(a) La descrizione verbale di uno problema.
(b) La traduzione di una descrizione verbale verso uno schema E/R.
(c) La traduzione di una schema E/R verso la costruzione di un’elenco
di tabelle.
(d) La traduzione verso SQL.
5. In algebra relazionale, la cardinalità di una differenza tra due relazioni r1
e r2 (|r1 − r2|, assumendo che la differenza sia ben definita) è:
(a) sempre compresa tra 0 e |r1|.
(b) sempre compresa tra 0 e |r2|.
(c) sempre compresa tra min(|r1|,|r2|) e max(|r1|,|r2|).
(d) nessuna delle risposte precedenti.
6. Nella fase di ristrutturazione di uno schema ER, una generalizzazione
senza associazioni:
2
(a) Può essere ristrutturata mantenendo solo l’entità padre solo se la
generalizzazione è esclusiva.
(b) Può sempre essere ristrutturata mantenendo solo l’entità padre.
(c) Può essere ristrutturata mantenendo solo l’entità padre solo se la
generalizzazione è totale.
(d) Non può essere ristrutturata mantenendo solo l’entità padre.
3
2
Query
Si considerino le seguenti tabelle:
Socio
numeroTessera
1111
2222
3333
Prestito
articolo
dvd1
dvd1
dvd2
dvd3
dvd1
Dvd
codice
dvd1
dvd2
dvd3
dvd4
nome
Paolo
Mario
Giovanni
numeroTessera
1111
1111
1111
2222
3333
cognome
Rossi
Verdi
Bianchi
dataInizio
1/1/2013
10/1/2013
1/1/2013
1/1/2013
17/1/2013
titolo
Ultimo dei templari (2011)
Social network (the)
Discorso del re (Il)
Fast and Furious 5
credito
20
15
14.20
dataFine
10/1/2013
15/1/2013
10/1/2013
10/1/2013
22/1/2013
genere
Fantasy
Drammatico
Drammatico
Thriller
(Importante: il contenuto delle tabelle è solamente un esempio; non possono trarsi conclusioni sull’assenza o la completezza dei dati—ad esempio, non
è garantito che non ci siano altri dvd oltre a quelli mostrati qui)
1. Scrivere in SQL una query che restituisce i cognomi dei soci che hanno
preso in presito piu’ di due DVD di genere drammatico.
2. Scrivere in SQL una query che restituische i cognomi dei soci che hanno
preso in prestito un dvd lo stesso giorno.
3. Scrivere in algebra relazionale una query che restituisce i numeri di tessera
dei soci che non hanno mai chiesto una proroga del prestito di un dvd.
4. Scrivere in algebra relazionale una query che restituisce i cognomi dei soci
che hanno piu’ di 10 euro di credito, che non hanno preso in prestito un
dvd in data 10/01/2013.
4
3
Progettazione ER: MUSEO
Progettare lo schema ER relativo ad un museo contenente informazioni su:
1. Le opere (di cui sono rilevanti: il codice dell’opera, nome, periodo storico,
valore).
2. Gli autori (di cui sono rilevanti: nome, cognome, data di nascita).
3. Le sale (di cui sono rilevanti: il nome, altezza, larghezza, lunghezza).
4. Le zone (di cui sono rilevanti: il codice della zona, orario di visita).
5. I custodi (di cui sono rilevanti: il codice del custode, nome, cognome,
numero di cellulare).
Il museo e’ composto da diverse zone, ciascuna comprendente un certo numero
di sale.
Una sala appartiene ad una ed una sola zona.
Ogni zona ha un orario di visita ed e’ custodita giornalmente da uno ed un
solo custode secondo un turno settimanale che resta invariato.
L’orario di visita di una zona e’ sempre lo stesso.
Il turno settimanale definisce per ciascun custode la zona di cui si deve
occupare per ciascun giorno della settimana.
Durante una settimana un custode non puo’ custodire piu’ di una volta la
stessa zona.
Non ci sono autori con stesso nome e cognome.
Non ci sono sale con lo stesso nome.
Ciascuna sala contiene opere d’arte.
Le opere d’arte si dividono in: dipinti e sculture.
5
Laboratorio
Sia dato l’indice B+Tree secondario rappresentato in figura. I primi (n-1)
puntatori di ogni foglia puntano a liste di identificatori di record RID, non
rappresentati in Figura.
Si assuma che l’albero sia utilizzato per indicizzare un file di 12.000 record,
in cui ogni blocco contiene un record. I valori della chiave di ricerca presenti nel
file corrispondono ovviamente ai valori presenti nelle foglie dell’indice. Inoltre,
si assuma che in ogni blocco delle liste di RID siano presenti 100 RID, e che la
radice dell’albero sia mantenuta in memoria centrale.
1. Nel file vengono inseriti alcuni record, tutti con chiave di ricerca 42. Si
disegni l’albero dopo gli inserimenti (senza rappresentare le liste di RID).
2. A partire dal B+tree generato al punto 1, si stimi nel caso medio il numero
di accessi a disco necessari per recuperare i record con chiave di ricerca
32.
3. A partire dal B+tree generato al punto 1, si stimi nel caso medio il numero
di accessi a disco necessari per recuperare i record con chiave di ricerca
41.
Per i punti 2 e 3 si mostrino anche i passaggi intermedi, non solo il risultato
finale.
6
Esame basi di dati 21 Gennaio 2013: Traccia
(1) Multiple choice
1-b; 2-a; 3-c; 4-c; 5-a; 6-b.
(2) Query
1. SELECT cognome
FROM Socio, Prestito, Dvd
WHERE Socio.numeroTessera=Prestito.numeroTessera and
Dvd.genere=’Drammatico’ and
Prestito.articolo=Dvd.codice
GROUP BY Socio.cognome
HAVING COUNT(*) > 2
2. SELECT DISTINCT S.cognome
FROM Prestito AS P1, Prestito AS P2, Socio AS S
WHERE P1.dataInizio = P2.dataInizio and
P1.numeroTessera=S.numeroTessera
and P1.numeroTessera <> P2.numeroTessera
3. πN umeroT essera (P restito) − πN umeroT essera
(P restito ./DataFine=DataInizio∧Articolo=Articolo∧NumeroTessera=NumeroTessera P restito)
4. Il numero di tessera dei soci che hanno piu’ di 10 euro di credito meno il
numero di tessera dei soci che hanno preso in prestito un dvd il 10 Gennaio
2013.
R1=πN umeroT essera (σcredito>10 (Socio))−πN umeroT essera (σDataInizio≥0 10/01/20130 (P restito))
Il risultato in join con Socio per ottenere il cognome dei soci:
πCognome (Socio ./NumeroTessera=NumeroTessera R1)
7
(3) E/R
Poiche’ durante una settimana un custode non puo’ custodire piu’ di una volta la stessa zona, la rappresentazione dei turni puo’ avvenire tramite l’attributo
Giorno dell’associazione custodita da tra le entita’ Custode e Zona.
(4) Laboratorio
1. Il B+tree dopo l’inserimento di 42:
2. 2 accessi, di cui 1 per livello (esclusa la radice). Non essendo presente la
chiave cercata, non vi sono record con valore 32.
3. 2 accessi per ottenere il puntatore alla lista di RID. Abbiamo 12.000 record
e 12 valori distinti, per cui in media 1000 record con valore 41. Per cui
servono 1000/100 =10 accessi per recuperare la lista di RID, e 1000 accessi
al file, essendoci un record per blocco. In tutto, 1012 accessi.
8
Scarica

Esame Basi di Dati