• Non ci sono risultati.

Esercitazione Simulazione Compito

N/A
N/A
Protected

Academic year: 2021

Condividi "Esercitazione Simulazione Compito"

Copied!
18
0
0

Testo completo

(1)

Esercitazione

Simulazione Compito

04/12/2015

Compito del 26/05/2014

(2)

1.1

Il comando DELETE FROM Utenti WHERE alias = ’gino’

dove alias è una primary key:

(a)elimina zero o una riga

(b) elimina un numero imprecisato di righe (c) elimina una tabella

(d) elimina le tabelle con alias ’gino’ nel database Utenti

(3)

1.2

Le cardinalità delle relazioni in uno schema ER:

(a) si riferiscono al numero di operazioni possibili su una entità (b) possono contenere valori negativi

(c) sono il prodotto della cardinalità delle due entità coinvolte

(d) dicono quante volte un’occorrenza di un’entità può essere

legata a occorrenze di un’altra entità

(4)

1.3

Data la relazione R(A,B,C)

(a) π AB (R) può avere meno ennuple di R (b) π A (R) può avere più ennuple di R (c) π B (R) può avere meno ennuple di R

(d) π BC (R) ha un numero di ennuple uguale a R

(5)

1.4

La clausola HAVING :

(a) si usa ogni volta che abbiamo un GROUP BY

(b) può essere usata solo su predicati con operatori aggregati (c) può essere usata indistintamente al posto di WHERE

(d) nessuna delle precedenti

(6)

1.5

Nel modello relazionale:

(a) ogni relazione ha una o più chiavi

(b) ogni relazione ha esattamente una superchiave (c) possono esistere più superchiavi e una di esse può coinvolgere tutti gli attributi

(d) possono esistere più chiavi e una di esse può coinvolgere tutti

gli attributi

(7)

1.6

L’operatore di join naturale:

(a) è commutativo e associativo

(b) è commutativo ma non associativo

(c) è associativo ma non commutativo

(d) nessuna delle precedenti

(8)

2.1

2 Query

Si considerino le seguenti tabelle:

Modello

idModello idMarca nome categoria

121 42 H2 SUV

2212 80 Classe C Berlina

31333 12 Clio Utilitaria

Valutazione

idModello anno prezzo

11234 2003 7000

11234 2008 9000

21234 2004 15000

21234 2005 16000

41234 2012 13000

Marca

idMarca marchio nazionalit`aCasa

4 Hummer Stati Uniti

11 Fiat Italia

12 Renault Francia

15 BMW Germania

80 Mercedes Germania

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

1. Scrivere in SQL una query che restituisce la media delle valutazioni per ogni modello di auto italiana, indicando anche la marca.

2. Scrivere in SQL una query che restituisce, per ogni anno dal 2000 al 2010, il conteggio delle berline tedesche con valutazione maggiore di 30000.

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

4. Scrivere in algebra relazionale una query che restituisce le valutazioni superiori ai 15000, dall’anno 2005 al 2009, delle utilitarie non italiane.

3

Scrivere in SQL una query che restituisce la media delle valutazioni per ogni

modello di auto italiana, indicando anche la marca.

SELECT

AVG(Valutazione.prezzo),Modello.nome,Marca.marchio FROM Valutazione

JOIN Modello on Valutazione.idModello = Modello.idModello JOIN Marca on Modello.idMarca = Marca.idMarca

WHERE Marca.nazionalitaCasa = "Italia"

GROUP BY Modello.idAuto

(9)

2.2

2 Query

Si considerino le seguenti tabelle:

Modello

idModello idMarca nome categoria

121 42 H2 SUV

2212 80 Classe C Berlina

31333 12 Clio Utilitaria

Valutazione

idModello anno prezzo

11234 2003 7000

11234 2008 9000

21234 2004 15000

21234 2005 16000

41234 2012 13000

Marca

idMarca marchio nazionalit`aCasa

4 Hummer Stati Uniti

11 Fiat Italia

12 Renault Francia

15 BMW Germania

80 Mercedes Germania

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

1. Scrivere in SQL una query che restituisce la media delle valutazioni per ogni modello di auto italiana, indicando anche la marca.

2. Scrivere in SQL una query che restituisce, per ogni anno dal 2000 al 2010, il conteggio delle berline tedesche con valutazione maggiore di 30000.

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

4. Scrivere in algebra relazionale una query che restituisce le valutazioni superiori ai 15000, dall’anno 2005 al 2009, delle utilitarie non italiane.

3

Scrivere in SQL una query che

restituisce, per ogni anno dal 2000 al 2010, il conteggio delle berline tedesche con valutazione maggiore di 30000.

SELECT Valutazione.anno,COUNT(Modello.idModello) FROM Valutazione

JOIN Modello on Valutazione.idModello = Modello.idModello JOIN Marca on Modello.idMarca = Marca.idMarca

WHERE Marca.nazionalitaCasa = "Germania"

AND Valutazione.prezzo >30000 AND Valutazione.anno >= 2000 AND Valutazione.anno < 2010 AND Modello.categoria = "Berlina"

GROUP BY Valutazione.anno

(10)

2.3

2 Query

Si considerino le seguenti tabelle:

Modello

idModello idMarca nome categoria

121 42 H2 SUV

2212 80 Classe C Berlina

31333 12 Clio Utilitaria

Valutazione

idModello anno prezzo

11234 2003 7000

11234 2008 9000

21234 2004 15000

21234 2005 16000

41234 2012 13000

Marca

idMarca marchio nazionalit`aCasa

4 Hummer Stati Uniti

11 Fiat Italia

12 Renault Francia

15 BMW Germania

80 Mercedes Germania

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

1. Scrivere in SQL una query che restituisce la media delle valutazioni per ogni modello di auto italiana, indicando anche la marca.

2. Scrivere in SQL una query che restituisce, per ogni anno dal 2000 al 2010, il conteggio delle berline tedesche con valutazione maggiore di 30000.

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

4. Scrivere in algebra relazionale una query che restituisce le valutazioni superiori ai 15000, dall’anno 2005 al 2009, delle utilitarie non italiane.

3

Scrivere in algebra relazionale una query che restituisce le valutazioni delle

berline prodotte dalle case francesi che non hanno valutazione per l’anno 2007.

Traccia di soluzione dell’esame di Basi di dati del 29 Maggio 2014

(1) Domande a risposta multipla

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

(2) Query

1. SELECT AVG(Valutazione.prezzo),Modello.nome,Marca.marchio FROM Valutazione

JOIN Modello on Valutazione.idAuto = Modello.idAuto JOIN Marca on Modello.idMarca = Marca.idMarca

WHERE Marca.nazionalitaCasa = "Italia"

GROUP BY Modello.idAuto

2. SELECT Valutazione.anno,COUNT(Modello.idAuto) FROM Valutazione

JOIN Modello on Valutazione.idAuto = Modello.idAuto JOIN Marca on Modello.idMarca = Marca.idMarca

WHERE Marca.nazionalitaCasa = "Germania"

AND Valutazione.prezzo >30000 AND Valutazione.anno >= 2000 AND Valutazione.anno < 2010

AND Modello.categoria = "Berlina"

GROUP BY Valutazione.anno

3. (⇡

idM odello,nome

(

categoria=berlina^nazionalitaCasa=F rancia

(M odello ./ M arca))

idM odello,nome

(

anno=2007

(M odello ./ V alutazione))) ./ V alutazione

4. ⇡

idM odello,nome,prezzo

((

prezzo>15000^anno>=2005^anno<=2009

V alutazione) ./

(M arca

nazionalitaCasa=Italia

M arca))

8

2 Query

Si considerino le seguenti tabelle:

Modello

idModello idMarca nome categoria

121 42 H2 SUV

2212 80 Classe C Berlina

31333 12 Clio Utilitaria

Valutazione

idModello anno prezzo

11234 2003 7000

11234 2008 9000

21234 2004 15000

21234 2005 16000

41234 2012 13000

Marca

idMarca marchio nazionalit`aCasa

4 Hummer Stati Uniti

11 Fiat Italia

12 Renault Francia

15 BMW Germania

80 Mercedes Germania

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

1. Scrivere in SQL una query che restituisce la media delle valutazioni per ogni modello di auto italiana, indicando anche la marca.

2. Scrivere in SQL una query che restituisce, per ogni anno dal 2000 al 2010, il conteggio delle berline tedesche con valutazione maggiore di 30000.

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

4. Scrivere in algebra relazionale una query che restituisce le valutazioni superiori ai 15000, dall’anno 2005 al 2009, delle utilitarie non italiane.

3

(11)

2.4

2 Query

Si considerino le seguenti tabelle:

Modello

idModello idMarca nome categoria

121 42 H2 SUV

2212 80 Classe C Berlina

31333 12 Clio Utilitaria

Valutazione

idModello anno prezzo

11234 2003 7000

11234 2008 9000

21234 2004 15000

21234 2005 16000

41234 2012 13000

Marca

idMarca marchio nazionalit`aCasa

4 Hummer Stati Uniti

11 Fiat Italia

12 Renault Francia

15 BMW Germania

80 Mercedes Germania

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

1. Scrivere in SQL una query che restituisce la media delle valutazioni per ogni modello di auto italiana, indicando anche la marca.

2. Scrivere in SQL una query che restituisce, per ogni anno dal 2000 al 2010, il conteggio delle berline tedesche con valutazione maggiore di 30000.

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

4. Scrivere in algebra relazionale una query che restituisce le valutazioni superiori ai 15000, dall’anno 2005 al 2009, delle utilitarie non italiane.

3

Scrivere in algebra relazionale una query che restituisce le valutazioni superiori ai 15000, dall’anno 2005 al 2009, delle utilitarie non italiane.

2 Query

Si considerino le seguenti tabelle:

Modello

idModello idMarca nome categoria

121 42 H2 SUV

2212 80 Classe C Berlina

31333 12 Clio Utilitaria

Valutazione

idModello anno prezzo

11234 2003 7000

11234 2008 9000

21234 2004 15000

21234 2005 16000

41234 2012 13000

Marca

idMarca marchio nazionalit`aCasa

4 Hummer Stati Uniti

11 Fiat Italia

12 Renault Francia

15 BMW Germania

80 Mercedes Germania

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

1. Scrivere in SQL una query che restituisce la media delle valutazioni per ogni modello di auto italiana, indicando anche la marca.

2. Scrivere in SQL una query che restituisce, per ogni anno dal 2000 al 2010, il conteggio delle berline tedesche con valutazione maggiore di 30000.

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

4. Scrivere in algebra relazionale una query che restituisce le valutazioni superiori ai 15000, dall’anno 2005 al 2009, delle utilitarie non italiane.

3

Traccia di soluzione dell’esame di Basi di dati del 29 Maggio 2014

(1) Domande a risposta multipla

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

(2) Query

1. SELECT AVG(Valutazione.prezzo),Modello.nome,Marca.marchio FROM Valutazione

JOIN Modello on Valutazione.idAuto = Modello.idAuto JOIN Marca on Modello.idMarca = Marca.idMarca

WHERE Marca.nazionalitaCasa = "Italia"

GROUP BY Modello.idAuto

2. SELECT Valutazione.anno,COUNT(Modello.idAuto) FROM Valutazione

JOIN Modello on Valutazione.idAuto = Modello.idAuto JOIN Marca on Modello.idMarca = Marca.idMarca

WHERE Marca.nazionalitaCasa = "Germania"

AND Valutazione.prezzo >30000 AND Valutazione.anno >= 2000 AND Valutazione.anno < 2010

AND Modello.categoria = "Berlina"

GROUP BY Valutazione.anno

3. (⇡

idM odello,nome

(

categoria=berlina^nazionalitaCasa=F rancia

(M odello ./ M arca))

idM odello,nome

(

anno=2007

(M odello ./ V alutazione))) ./ V alutazione

4. ⇡

idM odello,nome,prezzo

((

prezzo>15000^anno>=2005^anno<=2009

V alutazione) ./

(M arca

nazionalitaCasa=Italia

M arca) ./

categoria=U tilitaria

(M odello))

8

(12)

3

Si vuole progettare un database per una piattaforma gestionale delle spese di un appartamento. La piattaforma fa riferimento allo scenario in cui a coinquilini diversi di un appartamento sono intestate utenze diverse, e supporta la gestione del

dare/avere tra coinquilini per quanto riguarda le bollette. Ogni utente che si registra si può dichiarare coinquilino di un appartamento, oppure crea un nuovo

appartamento, definito con un nome di fantasia e un indirizzo. Non è possibile

inserire un appartamento con lo stesso nome e lo stesso indirizzo. L’utente ha un id univoco per la piattaforma e può essere associato a non più di un appartamento. Un coinquilino può avere nessuna, una o più utenze a sè intestate, con un contratto riportante data di stipulazione, fornitore, tipologia (es. luce, acqua, gas, internet) e cadenza del pagamento in mesi. Quando arriva una bolletta questa viene registrata con i suoi dati: inizio e fine periodo, costo totale, scadenza del pagamento e codice identificativo. Il codice di una bolletta è univoco solo in relazione a un contratto.

Uno qualunque dei coinquilini può pagare la bolletta, e successivamente gli altri possono pagargli la somma dovuta, relativa a una specifica bolletta. Queste

operazioni vengono registrate insieme con la data in cui avvengono.

Si disegni il modello concettuale del dominio descritto utilizzando i diagrammi E/R e

si indichino gli eventuali vincoli non esprimibili.

(13)

3

(3) Progettazione

9

(14)

4

Mostrare i passi della cancellazione della chiave K=8 nel seguente B+Tree:

(15)

4

PASSO 1

(16)

4

PASSO 2

(17)

4

PASSO 3

(18)

4

PASSO 4

Riferimenti

Documenti correlati

Algebra Relazionale e SQL.. a) Elencare i medici che appartengono a reparti in cui è ricoverata almeno una donna b) Elencare i primari di ciascun reparto, ciascuno con la

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

***In Britannia i cinghiali scarseggiano, e così Borelix ha dovuto mettersi a dieta: ogni giorno mangia 1 cinghiale in più dei 2/3 del numero di cinghiali che aveva mangiato il

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

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

Padre Figlio Adamo Caino Adamo Abele Abramo Isacco Abramo