PROVA SCRITTA 28 Luglio 2008 COGNOME NOME MATRICOLA Esercizio di sbarramento Rispondere ai seguenti test. Per ogni test, solo una soluzione e’ corretta L’esercizio si ritiene superato se si risponde correttamente ad almeno 7 domande, di cui almeno una domanda per ogni gruppo di test. Solo se l’esercizio viene superato, gli esercizi successivi verranno corretti e valutati. GRUPPO 1: domande generali Domanda 1 Per creare una vista che contiene un sottoinsieme dei dati contenuti in una tabella già esistente nella vostra base di dati utilizzate: a) Un comando del DML. b) Un comando del DDL. c) Un comando del SDL. Domanda 2 Nel modello relazionale, per una relazione R: a) Esiste sempre almeno una chiave esterna. b) Esiste sempre esattamente una chiave primaria. c) Esistono sempre almeno due chiavi. Domanda 3 Si consideri una relazione R con schema (A,B,C,D0) in cui il dominio di tutti gli attributi è quello degli interi. Quali delle seguenti istanze NON è ammissibile: a) R = {(1, 1, 3, ?), (1, 2, 3, 0), (5, 1, 0, 0), (1, 5, 2, 1)} b) R = {(1, 1, 3, ?), (1, 2, 3, 0), (1, 3, ?, ?), (3, 1, 5, 5)} c) R = {(1, 1, 3, ?), (1, 2, 3, 0), (1, 3, 4, 4), (2, 2, 2, 2)} GRUPPO 2: linguaggi relazionali Si consideri il seguente schema relazionale: Domanda 1 Si consideri la seguente espressione in algebra relazionale (NJ indica il join naturale e JOIN indica il JOIN per semplicita` di scrittura): matricola(Ricercatore) \ ricercatore(RicercaIn NJ (Amministra JOIN amministrativo = matricola ( livello = ‘D’ (Amministrativo)))) Questa espressione permette di determinare: a) I ricercatori che lavorano in almeno un progetto amministrato da almeno una persona di livello D. b) I ricercatori che non lavorano in progetti amministrati soltanto da persone di livello D. c) I ricercatori che non lavorano in progetti amministrati da almeno una persona di livello D. Domanda 2 Si supponga di volere determinare gli amministrativi che lavorano in progetti in cui svolgono attivita` di ricerca non piu` di 5 ricercatori. Questa espressione: a) Non puo’ essere espressa in algebra relazionale ma puo’ essere espressa in calcolo relazionale b) Non puo’ essere espressa ne’ in algebra ne’ in calcolo relazionale c) Puo’ essere espressa in algebra relazionale ed in calcolo relazionale Domanda 3 Si consideri la seguente espressione del calcolo relazionale: { p : Uprogetto | p Progetto ( r ( t ( r Ricercatore t RicercaIn t.ricercatore = r.matricola p.codice = t.progetto r.settore <> p.settore ))) } La precedente espressione permette di determinare: a) I progetti in cui lavorano solo ricercatori con settore uguale a quello del progetto. b) I progetti in cui lavora almeno un ricercatore con settore diverso da quello del progetto. c) I progetti in cui lavorano solo ricercatori con settore diverso da quello del progetto. GRUPPO 3: SQL Si consideri nuovamente lo schema relazionale proposto per il Gruppo 2 di test. Domanda 1 Quale tra i seguenti comandi SQL NON permette di determinare i progetti con fondi superiori a 100.000 Euro in cui lavorano il maggior numero di ricercatori: a) SELECT progetto FROM RicercaIn JOIN Progetto ON progetto = codice WHERE ammontareFondi > 100.000 AND COUNT(ricercatore) >= ALL (SELECT COUNT(ricercatore) FROM RicercaIn JOIN Progetto ON progetto = codice WHERE ammontareFondi > 100.000 GROUP BY progetto); b) SELECT progetto FROM RicercaIn JOIN Progetto ON progetto = codice WHERE ammontareFondi > 100.000 GROUP BY progetto HAVING COUNT(ricercatore) >= ALL (SELECT COUNT(ricercatore) FROM RicercaIn JOIN Progetto ON progetto = codice WHERE ammontareFondi > 100.000 GROUP BY progetto); c) SELECT codice FROM Progetto P WHERE ammontareFondi > 100.000 AND (SELECT COUNT(ricercatore) FROM RicercaIn WHERE progetto = P.codice) > = ALL (SELECT COUNT(ricercatore) FROM RicercaIn JOIN Progetto ON progetto = codice WHERE ammontareFondi > 100.000 GROUP BY progetto); Domanda 2 Si supponga di volere implementare il comportamento per cui, ogni volta che si cancella un progetto, si vogliono cancellare anche le informazioni relative ai ricercatori e al personale amministrativo ad esso relativo. Questa operazione puo` essere semplificata utilizzando: a) Una vista b) Particolari clausole in comandi DDL c) Un’asserzione Domanda 3 Si consideri il seguente comando: SELECT P1.codice FROM Progetto P1, Progetto P2 WHERE P1.ammontareFondi > P2.ammontareFondi; Il comando precedente restituisce: a) b) c) d) Il codice dei progetti con ammontare fondi superiore a quelli di tutti gli altri. Il codice dei progetti per cui esiste almeno un altro progetto con ammontare fondi inferiore. L’interrogazione e` sintatticamente errata. Nessuna delle precedenti. GRUPPO 4: comprensione di schemi ER e progettazione Si risponda alle seguenti domande relative al seguente schema ER, relative ai restauri di libri antichi: Domanda 1 Indicare quali tra le seguenti affermazioni meglio descrive l’associazione ‘restaurata’: a) Ogni copia di libro puo` essere restaurata al piu` una volta. Ogni restauratore deve restaurare almeno una copia di libro. b) Ogni copia di libro puo` essere restaurata piu` volte, in date diverse. Ogni restauratore deve restaurare al piu` una copia di libro. c) Ogni copia di libro puo` essere restaurata piu` volte, in date diverse. Ogni restauratore deve restaurare almeno una copia di libro. d) Ogni copia di libro puo` essere restaurata al piu` una volta. Ogni restauratore deve restaurare al piu` una copia di libro. Domanda 2 Quale tra le seguenti relazioni potrebbe rappresentare l’associazione ‘restaurata’ in uno schema relazionale equivalente allo schema ER dato: a) b) c) d) RESTAURATA(CodiceCopia, CodiceFiscale, DataInizio, DataFine0 ) RESTAURATA(CodiceCopia, CodiceFiscale, DataInizio, DataFine0 ) RESTAURATA(CodiceCopia, CodiceFiscale, DataInizio, DataFine) L’associazione ‘Restaurata’ deve essere rappresentata con una chiave esterna. Domanda 3 Si supponga di volere modellare il vincolo di integrita’ per cui lo stesso restauratore non puo` restaurare due copie di libro distinte a partire dalla stessa data. Quale tra le seguenti dipendenze funzionali modella questo vincolo, rispetto alla relazione RESTAURATA indicata come risposta alla domanda 2: a) CodiceFiscale,DataInizio CodiceCopia b) CodiceCopia DataInizio c) CodiceFiscale,CodiceCopia DataInizio Gruppo Domanda Gruppo 1 1. 2. 3. Gruppo 2 1. 2. 3. Gruppo 3 1. 2. 3. Gruppo 4 1. 2. 3. Risposta