• Non ci sono risultati.

Esame Basi di Dati

N/A
N/A
Protected

Academic year: 2021

Condividi "Esame Basi di Dati"

Copied!
8
0
0

Testo completo

(1)

Esame Basi di Dati

21 Gennaio 2013

Matricola Prog. (S`ı/No)

Cognome Nome

Istruzioni

• I voti verranno resi disponibili su AlmaEsami. Chi vorr` a rifiutare il voto dovr` a comunicarlo tassativamente 5 giorni dalla data della pubblica- zione all’indirizzo montesi@cs.unibo.it. Passato questo termine, i voti di coloro che non li hanno esplicitamente rifiutati si intendono accettati, e il docente provveder` a a registrarli successivamente — il momento preciso in cui avverr` a la registrazione non ` e definito a priori, e pu` o variare da appello ad appello, l’unico termine fisso ` e quello dei 5 giorni per rifiutare il voto. Quanto detto vale per i voti maggiori o uguali a 18.

• Non sar` a compilato alcuno statino, e il libretto non verr` a 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 ` e svolto il progetto.

• Scrivere le soluzioni direttamente su questi fogli, e utilizzare i fogli pro- tocollo solo per la brutta: i fogli protocollo verranno ritirati, ma non verranno corretti. Non ` e gradito l’uso delle matite: si deve utilizzare una penna.

• Non si possono utilizzare libri o appunti, n´ e tenere telefoni cellulari o altri dispositivi di comunicazione, neanche se spenti. Il tempo a disposizione ` e di due ore.

• Si consiglia di non dare soltanto le soluzioni, ma anche i ragionamenti che hanno portato alla soluzione. Questo ci permetter` a di valutare anche risposte parziali o parzialmente false.

Firma per la presa visione delle istruzioni:

(2)

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` a di una differenza tra due relazioni r1 e r2 (|r1 − r2|, assumendo che la differenza sia ben definita) ` e:

(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

(3)

(a) Pu` o essere ristrutturata mantenendo solo l’entit` a padre solo se la generalizzazione ` e esclusiva.

(b) Pu` o sempre essere ristrutturata mantenendo solo l’entit` a padre.

(c) Pu` o essere ristrutturata mantenendo solo l’entit` a padre solo se la generalizzazione ` e totale.

(d) Non pu` o essere ristrutturata mantenendo solo l’entit` a padre.

(4)

2 Query

Si considerino le seguenti tabelle:

Socio

numeroTessera nome cognome credito

1111 Paolo Rossi 20

2222 Mario Verdi 15

3333 Giovanni Bianchi 14.20

Prestito

articolo numeroTessera dataInizio dataFine

dvd1 1111 1/1/2013 10/1/2013

dvd1 1111 10/1/2013 15/1/2013

dvd2 1111 1/1/2013 10/1/2013

dvd3 2222 1/1/2013 10/1/2013

dvd1 3333 17/1/2013 22/1/2013

Dvd

codice titolo genere

dvd1 Ultimo dei templari (2011) Fantasy dvd2 Social network (the) Drammatico dvd3 Discorso del re (Il) Drammatico dvd4 Fast and Furious 5 Thriller

(Importante: il contenuto delle tabelle ` e solamente un esempio; non pos- sono trarsi conclusioni sull’assenza o la completezza dei dati—ad esempio, non

`

e 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

(5)

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.

(6)

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

(7)

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/2013

0

(P restito))

Il risultato in join con Socio per ottenere il cognome dei soci:

π Cognome (Socio ./ NumeroTessera=NumeroTessera R1)

(8)

(3) E/R

Poiche’ durante una settimana un custode non puo’ custodire piu’ di una vol- ta 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

Riferimenti

Documenti correlati

Come confrontare tuple di una stessa tabella? Generazione di una o più copie della tabella e join. un esempio: come determinare il valore massimo o minimo associato ad dato

Padre Figlio Adamo Caino Adamo Abele Abramo Isacco Abramo

Genitore Figlio Luca Anna Maria Anna Giorgio Luca Silvia Maria Enzo Maria. Genitori Per trovare nonni

l’attributo MatrDocente nella relazione Corsi fa riferimento a Matricola nella relazione Docenti I valori assunti da un attributo nella relazione referenziante devono

Scrivere in algebra relazionale una query che restituisce le valutazioni delle berline prodotte dalle case francesi che non hanno valutazione per l’anno 2007.. Scrivere in

Scrivere in algebra relazionale una query che restituisce l’elenco degli im- piegati con codImpiegato, nome e cognome, che a tutti i progetti cui collaborano, vi collaborano per piu’

Scrivere in algebra relazionale una query che restituisce i dati degli utenti che hanno votato Django ma non hanno votato Pulp

Nel database si vogliono memorizzare i dati riguardanti ogni autore, ovvero nome, cognome e data di nascita, che insieme rendono possibile l’identificazione univoca dell’autore,