• Non ci sono risultati.

Compito di Basi di dati - 9 CFU 31 gennaio 2014

N/A
N/A
Protected

Academic year: 2021

Condividi "Compito di Basi di dati - 9 CFU 31 gennaio 2014"

Copied!
2
0
0

Testo completo

(1)

Compito di Basi di dati - 9 CFU

31 gennaio 2014

Esercizio 1:

Sia dato il seguente schema di una base di dati relazionale relativo ad un insieme di aziende control- late da un dato insieme di ispettori nell’arco di un certo numero di anni:

Ispettore(CF ispettore, Grado, AnnoN ascita);

HaControllato(Ispettore, Azienda, Anno, V alutazione);

SiT rovaIn(Azienda, Citt`a).

Si assuma che ogni ispettore sia identificato dal codice fiscale e sia caratterizzato da un grado, che ne descrive il livello professionale, e dall’anno di nascita. Inoltre, si assuma che, per ogni controllo effettuato da un ispettore, vengano riportati l’azienda controllata, l’anno del controllo e la valutazione (positiva, negativa). Si assuma anche che una data azienda possa essere controllata da pi`u ispettori e che un ispettore possa controllare pi`u volte una stessa azienda, ma non durante uno stesso anno. Infine, di ogni azienda, si specifichi la citt`a in cui ha sede.

Definire preliminarmente le chiavi primarie, le eventuali altre chiavi candidate e, se ve ne sono, le chiavi esterne delle relazioni date. Successivamente, formulare opportune interrogazioni in algebra relazionale che permettano di determinare (senza usare l’operatore di divisione e usando solo se e quando necessario le funzioni aggregate):

(a) le aziende che sono state controllate da un unico ispettore;

(b) gli ispettori che, nell’anno 2013, hanno controllato (esattamente) una o due aziende;

(c) gli ispettori che hanno controllato esattamente le stesse aziende.

Esercizio 2:

Con riferimento all’Esercizio 1, formulare opportune interrogazioni in SQL che permettano di deter- minare quanto richiesto (senza usare l’operatore CONTAINS e usando solo se e quando necessario le funzioni aggregate).

Esercizio 3:

Si voglia modellare il seguente insieme di informazioni riguardanti una libreria online.

• Ogni libro sia identificato unicamente da un codice (codice ISBN) e sia caratterizzato da un titolo, un anno di pubblicazione, un prezzo, uno o pi`u autori e una casa editrice. Ogni autore sia identificato univocamente da un codice autore e sia caratterizzato da nome e cognome, indirizzo, recapito tele- fonico, eventuale recapito email ed eventuale URL. Ogni casa editrice sia identificata univocamente dal nome e sia caratterizzata da indirizzo, recapito email e URL.

• Le copie dei vari libri correntemente disponibili per la vendita siano conservate in un insieme di magazzini. Ogni magazzino sia identificato da un codice magazzino e sia caratterizzato da indirizzo e recapito telefonico. Le copie di un determinato libro possano essere distribuite in pi`u magazzini.

Di ogni libro, si tenga traccia del numero totale di copie correntemente disponibili e del numero di copie correntemente disponibili in ciascun magazzino.

1

(2)

• Ogni cliente sia identificato univocamente dal codice fiscale e sia caratterizzato da nome e cognome, indirizzo, recapito telefonico e recapito email. Ogni ordine di acquisto da parte di un cliente sia identificato da un codice acquisto e sia caratterizzato dalla data in cui l’ordine di acquisto `e stato inoltrato e dai libri acquistati (una o pi`u copie di uno o pi`u libri).

Si definisca uno schema Entit`a-Relazioni che descriva il contenuto informativo del sistema, illustrando con chiarezza le eventuali assunzioni fatte. Lo schema dovr`a essere completato con attributi ragionevoli per ciascuna entit`a (identificando le possibili chiavi) e relazione. Vanno specificati accuratamente i vincoli di cardinalit`a e partecipazione di ciascuna relazione. Si definiscano anche eventuali regole di derivazione e/o vincoli di integrit`a necessari per codificare alcuni dei requisiti attesi del sistema.

Esercizio 4:

Si stabilisca se i seguenti schedule appartengono o meno a VSR, CSR, 2PL, TS e 2PL stretto:

(s1) r3(z), r2(x), w2(t), r3(x), w3(z), w1(t), r2(y), w3(x), w4(z), w4(y), w1(z);

(s2) r1(y), r2(x), w2(x), r2(y), r1(z), w1(y), w1(z), r3(z), w2(y), r3(y), r3(x), w3(x), w3(y).

(FACOLTATIVO) Si risponda ai seguenti quesiti, motivando adeguatamente le risposte (no perch´e .., s`ı perch´e ..).

QUESITO 1: possono comparire pi`u istruzioni di commit e abort in una singola transazione?

QUESITO 2: una transazione pu`o essere annidata all’intero di un’altra transazione?

Esercizio 5:

Si consideri un file contenente 10000000 record di dimensione prefissata pari a 100 byte, memorizzati in blocchi di dimensione pari a 4096 byte in modo unspanned. La dimensione del campo chiave primaria V sia 14 byte; la dimensione del puntatore a blocco P sia 6 byte.

(a) Si assuma che il file sia ordinato rispetto alla chiave primaria V . Determinare il numero medio di accessi a blocco richiesto da una ricerca basata sulla chiave primaria.

(b) Si assuma che il file sia ordinato rispetto alla chiave primaria V . Determinare il numero medio di accessi a blocco richiesto da una ricerca basata su un campo chiave V0, diverso dalla chiave primaria, di dimensione 9 byte.

(c) Si assuma che il file sia ordinato rispetto alla chiave primaria V . Determinare il numero medio di accessi a blocco richiesto da una ricerca con indice primario.

(d) Si assuma che il file sia ordinato rispetto alla chiave primaria V . Determinare il numero medio di accessi a blocco richiesto da una ricerca con indice secondario costruito su un campo chiave V0, diverso dalla chiave primaria, di dimensione 9 byte.

(e) Si determinino dimensione e struttura di un indice multilivello statico ottenuto a partire dall’indice primario di cui al punto (c).

(f) Si determinino imensione e struttura di un B-albero, con campo di ricerca il campo chiave primaria V , puntatore ai dati di dimensione pari a 7 byte e puntatore ausiliario di dimensione pari a 6 byte, assumendo che ciascun nodo del B-albero sia pieno al 70%.

Riferimenti

Documenti correlati

• ogni paziente sia identificato univocamente dal codice fiscale, sia caratterizzato da un nome, un cognome e un anno di nascita, e si trovi in un letto di un dato reparto;.. •

• Ogni collegamento giornaliero offerto da una determinata compagnia di navigazione sia identificato univocamente da un numero progressivo (ad esempio, il collegamento numero 3

Di ogni persona coinvolta in almeno un incidente vengano memorizzati il codice fiscale, o documento equivalente nel caso di stranieri, che lo identifica univocamente, il nome,

• (i) ogni gara sia identificata univocamente dal suo nome (ad esempio, non vi possano essere due gare di salto in alto femminile), (ii) gare diverse possano avere lo stesso orario

• Per ogni specifica istanza di tratta, la data in cui avr` a luogo (ad esempio, la tratta Trieste-Monaco del 25 febbraio 2012), l’aeroplano utilizzato (si assuma che su una

La banca memorizzata nome, cognome e recapito telefonico di ogni suo dipendente, pi` u il nome dell’eventuale supervisore (un altro dipendente della banca).. Un impiegato pu` o

• ogni volo sia identificato univocamente da un opportuno codice (ad esempio, il codice FR4984 iden- tifichi il volo Ryanair da Parigi Beauvais a Venezia delle 10:45) e

Ogni modello sia identificato univocamente dal nome (si assuma, in particolare, che modelli sviluppati da produttori diversi non possano avere lo stesso nome) e sia caratterizzato