• Non ci sono risultati.

Esame di Basi di Dati

N/A
N/A
Protected

Academic year: 2021

Condividi "Esame di Basi di Dati"

Copied!
8
0
0

Testo completo

(1)

Esame di Basi di Dati

11 Giugno 2013

Matricola CFU (9/12/9+9) Progetto (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, e ricevere conferma di avvenuta ricezione della notifica. Passato questo termine, i voti di coloro che non li hanno esplicitamente rifiutati si intendono accettati, e il docente provve- der` 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 il numero di cfu del corso nel proprio anno di iscrizione e 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. Si pu` o usare il verso se necessario. 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:

1

(2)

1 Domande a risposta multipla

1. Adottando il protocollo strict two-phase locking:

(a) una transazione abortita potrebbe lasciare il DB in uno stato incon- sistente.=

(b) e’ garantita l’assenza di deadlock.

(c) tutti i lock effettuati da una transazione sono rilasciati dopo il suo commit.

(d) si usa un solo lock esclusivo per lettura e scrittura.

2. L’attributo o insieme di attributi che identificano univocamente le ennuple di una relazione si chiama:

(a) identificatore (b) chiave

(c) indice

(d) chiave simmetrica

3. In SQL-92 quale comando e’ usato per aggiungere una o piu’ righe in una tabella?

(a) ALTER TABLE (b) ADD ROW

(c) INSERT (d) APPEND

4. Uno degli obiettivi della normalizzazione e’:

(a) minimizzare il numero di relazioni (b) minimizzare il numero di entita’

(c) minimizzare il numero di tabelle (d) minimizzare la ridondanza dei dati

5. In SQL-92 si pu` o verificare se un valore ` e nullo tramite il predicato:

(a) is null.

(b) = null.

(c) all.

(d) nessuno dei precedenti.

6. Il modello logico relazionale ` e basato sui valori, per cui:

(a) i DBMS relazionali non possono usare puntatori ne’ a livello logico ne’ a livello fisico.

(b) i riferimenti fra i dati in strutture (relazioni) diverse sono rappresen- tati tramite l’utilizzo esplicito di puntatori tra record.

(c) i riferimenti fra i dati in strutture (relazioni) diverse sono rappresen- tati per mezzo dei valori stessi.

(d) Nessuna delle risposte precedenti.

2

(3)

2 Query

Si considerino le seguenti tabelle:

Impiegato

codImpiegato nome cognome qualifica

1111 Paolo Rossi Operatore grafico

2222 Mario Verdi Programmatore

3333 Giovanni Bianchi Programmatore

4444 Carmela Neri Analista Programmatore

Progetto

codProgetto nomeProgetto

p1 Social.Com

p2 GreenPlanet

p3 Smart city

p4 Secure home

Collabora

codImpiegato codProgetto mesiUomo

1111 p1 9

1111 p2 2

2222 p3 24

(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’ detto che non ci siano altri tipi di qualifiche oltre a quelle elencate)

1. Scrivere in SQL una query che seleziona l’elenco degli impiegati, con il loro nome e cognome, che non collaborano al progetto ’Smart city’.

2. Scrivere in SQL una query che seleziona, per ciascun progetto, il numero di persone che vi collaborano.

3. 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’ di 9 mesi.

4. Scrivere in algebra relazionale una query che restituisce l’elenco degli im- piegati con codImpiegato, nome e cognome, che non partecipano a progetti con la qualifica di ’Programmatore’ o ’Operatore grafico’.

3

(4)
(5)

3 Progettazione

Progettare lo schema ER relativo al sistema per la gestione del personale di un villaggio vacanze. Il personale del villaggio (di cui son mantenuti i dati anagrafici e retributivi: nome, cognome, data assunzione, stipendio) si divide in ’temporaneo’ e ’fisso’. I temporanei lavorano per il villaggio per periodi di tempo determinato (es. stagione estiva di 3 mesi), non godono di ferie, ma hanno un giorno di riposo settimanale e alcuni giorni di permesso (il cui numero dipende dalla tipologia e dalla durata del contratto). I ’fissi’ hanno un contratto a tempo indeterminato che prevede oltre al giorno di riposo anche 30 giorni di ferie all’anno che possono essere utilizzati in uno o piu’ periodi di ferie. Inoltre il personale si distingue in base al ruolo o ai ruoli svolti nel villaggio (animatore, cuoco, istruttore sportivo). Il sistema deve registrare il giorno di riposo, il numero di giorni di permesso utilizzati dal personale temporaneo e i periodi di ferie utilizzati dal personale fisso.

Rappresentare le cardinalita’, le chiavi e indicare eventuali vincoli non espri- mibili nel diagramma ER.

5

(6)

4 Indici

Dato il seguente b+tree:

• mostare cosa accade dopo aver inserito 59

• e successivamente cancellando 91.

6

(7)

Traccia di soluzione dell’Esame di Basi di dati dell’11 Giugno 2013

(1) Domande a risposta multipla

1-c; 2-b; 3-c; 4-d; 5-a; 6-c.

(2) Query

1. SELECT codImpiegato, nome, cognome FROM IMPIEGATO

WHERE cod Impiegato NOT IN ( SELECT COLLABORA.codImpiegato,

FROM PROGETTO JOIN COLLABORA

WHERE PROGETTO.codProgetto = COLLABORA.codProgetto AND PROGETTO.nomeProgetto = ’Smart city’

)

2. SELECT PROGETTO.codProgetto, count(*) FROM PROGETTO JOIN COLLABORA

WHERE PROGETTO.codImpiegato = COLLABORA.codImpiegato GROUP BY PROGETTO.codProgetto

3. π CodImpiegato,N ome,Cognome (Impiegato) ./

(π codImpiegato (Collabora) − π codImpiegato (σ mesiU omo<=9 (Collabora)) 4. π CodImpiegato,N ome,Cognome (Impiegato) ./ (π codImpiegato (Impiegato)−

π codImpiegato (σ qualif ica=

0

P rogrammatore

0

OR qualif ica=

0

Operatore graf ico

0

Impiegato ./

(Collabora)))

(3) Progettazione

BR1: Ciascun dipendente puo’ prendere un massimo di 30 giorni di ferie all’an- no.

7

(8)

(4) Indici

1. Visitiamo l’albero verificando che 59 non sia gia’ presente e lo inseriamo nel nodo opportuno:

2. Eliminiamo ora 91, dopo questa operazione l’albero e’ sbilanciato, vediamo in figura le operazioni necessarie per bilanciare l’albero:

dopo l’eliminazione di 91 e il bilanciamento del b+tree avremo:

8

Riferimenti

Documenti correlati

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 i cognomi dei soci che hanno piu’ di 10 euro di credito, che non hanno preso in prestito un dvd in data

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,

Scrivere in algebra relazionale una query che restituisce la cucina delle ricette, con difficolt` a superiore a 4, che non contengono nessun ingrediente di tipo

I dipendenti della vigilanza non hanno inoltre titolo per intervenire sulle attività o lavorazioni in atto da parte di personale del Comune,, dell’affidatario e degli altri

Pertanto è fatto divieto al personale dell’affidatario, del Comune di Trieste e degli altri soggetti di intervenire in qualsiasi modo o forma nell’esecuzione