Esercitazione Simulazione Compito 05/12/2014 Compito del 26/05/2014
1.1 Il comando DELETE FROM UtenE 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 UtenE
1.2 Le cardinalità delle relazioni in uno schema ER: (a) si riferiscono al numero di operazioni possibili su una enetà (b) possono contenere valori negaevi (c) sono il prodovo della cardinalità delle due enetà coinvolte (d) dicono quante volte un occorrenza di un enetà può essere legata a occorrenze di un altra enetà
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
1.4 La clausola HAVING : (a) si usa ogni volta che abbiamo un GROUP BY (b) può essere usata solo su predicae con operatori aggregae (c) può essere usata indisentamente al posto di WHERE (d) nessuna delle precedene
1.5 Nel modello relazionale: (a) ogni relazione ha una o più chiavi (b) ogni relazione ha esavamente una superchiave (c) possono esistere più superchiavi e una di esse può coinvolgere tud gli avribue (d) possono esistere più chiavi e una di esse può coinvolgere tud gli avribue
1.6 L operatore di join naturale: (a) è commutaevo e associaevo (b) è commutaevo ma non associaevo (c) è associaevo ma non commutaevo (d) nessuna delle precedene
2 Query 2.1 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àcasa 4 Hummer Stati Uniti 11 Fiat Italia 12 Renault Francia 15 BMW Germania 80 Mercedes Germania Scrivere in SQL una query che resetuisce 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. Modello JOIN Marca on Modello.idMarca = Marca.idMarca WHERE Marca.nazionalitaCasa = "Italia" GROUP BY Modello.idAuto (Importante: il contenuto delle tabelle è solamente un esempio; non possono 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 Query 2.2 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àcasa 4 Hummer Stati Uniti 11 Fiat Italia 12 Renault Francia 15 BMW Germania 80 Mercedes Germania (Importante: il contenuto delle tabelle è solamente un esempio; non possono 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. Scrivere in SQL una query che resetuisce, 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
1-a; 2-d; 3-c; 4-b; 5-c; 6-a. (2) Query 2.3 1. 2 SELECT QueryAVG(Valutazione.prezzo),Modello.nome,Marca.marchio 21234 2004 15000 21234 2005 16000 FROM Valutazione Si considerino le seguenti tabelle: 41234 2012 13000 JOIN Modello on Valutazione.idAuto = Modello.idAuto JOIN ModelloMarca on Modello.idMarca = Marca.idMarca idmodello idmarca nome categoria WHERE 121 Marca.nazionalitaCasa 42 H2 SUV = "Italia" GROUP 2212 BY 80 Modello.idAuto Classe C Berlina 31333 12 Clio Utilitaria 2. SELECT Valutazione.anno,COUNT(Modello.idAuto) 15 BMW Germania Valutazione 80 Mercedes Germania FROM idmodello Valutazione anno prezzo JOIN 11234 Modello 2003 on 7000Valutazione.idAuto = Modello.idAuto 11234 2008 9000 JOIN Marca on Modello.idMarca = Marca.idMarca 21234 2004 15000 WHERE 21234 Marca.nazionalitaCasa 2005 16000 = "Germania" 41234 2012 13000 Scrivere in algebra relazionale una query AND Valutazione.prezzo >30000 che resetuisce le valutazioni delle AND Valutazione.anno >= 2000 berline prodove dalle case francesi che AND Valutazione.anno < 2010 non hanno valutazione per l anno 2007. AND Modello.categoria = "Berlina" GROUP BY Valutazione.anno Marca idmarca marchio nazionalitàcasa 4 Hummer Stati Uniti 11 Fiat Italia 12 Renault Francia 15 BMW Germania 80 Mercedes Germania 3. ( idmodello,nome ( categoria=berlina^nazionalitacasa=francia (Modello./ Marca)) idmodello,nome ( anno=2007 (Modello./ Valutazione)))./ V alutazione (Importante: il contenuto delle tabelle è solamente un esempio; non possono trarsi conclusioni sull assenza o la completezza dei dati.) 4. idmodello,nome,prezzo (( prezzo>15000^anno>=2005^anno<=2009 Valutazione)./ (Marca 1. Scrivere in SQLnazionalitaCasa=ItaliaMarca)) una query che restituisce la media delle valutazioni per ogni modello di auto italiana, indicando anche la marca. 31333 12 Clio Utilitaria Valutazione idmodello anno prezzo 11234 2003 7000 11234 2008 9000 idmarca marchio nazionalitàcasa 4 Hummer Stati Uniti 11 Fiat Italia 12 Renault Francia (Importante: il contenuto delle tabelle è 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 pe 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 valutazion superiori ai 15000, dall anno 2005 al 2009, delle utilitarie non italiane.
(2) Query 1. SELECT AVG(Valutazione.prezzo),Modello.nome,Marca.marchio Valutazione idmodello anno prezzo FROM Valutazione 11234 2003 7000 JOIN Modello on Valutazione.idAuto 2.4 = 11234 Modello.idAuto 2008 9000 21234 2004 15000 2 JOIN Query Marca on Modello.idMarca = Marca.idMarca 21234 2005 16000 Si considerino WHERE Marca.nazionalitaCasa le seguenti tabelle: = "Italia" 41234 2012 13000 GROUP BY Modello.idAuto Modello idmodello idmarca nome categoria 121 42 H2 SUV 2212 80 Classe C Berlina 31333 12 Clio Utilitaria 2. SELECT Valutazione.anno,COUNT(Modello.idAuto) 4 Hummer Stati Uniti FROM Valutazione 11 Fiat Italia 12 Renault Francia JOIN Modello on Valutazione.idAuto = Modello.idAuto 15 BMW Germania JOIN Valutazione Marca on Modello.idMarca = Marca.idMarca 80 Mercedes Germania idmodello anno prezzo WHERE Marca.nazionalitaCasa = "Germania" 11234 2003 7000 AND 11234Valutazione.prezzo 2008 9000 >30000 AND 21234Valutazione.anno 2004 15000 >= 2000 21234 2005 16000 AND 41234Valutazione.anno 2012 13000 < 2010 Scrivere in algebra relazionale una query AND Modello.categoria = "Berlina" che resetuisce le valutazioni superiori ai GROUP BY Valutazione.anno 15000, dall anno 2005 al 2009, delle uelitarie non italiane. 3. ( idmodello,nome ( categoria=berlina^nazionalitacasa=francia (Modello./ Marca)) idmodello,nome ( anno=2007 (Modello./ Valutazione))) 2007../ V alutazione Marca idmarca marchio nazionalitàcasa 4 Hummer Stati Uniti 11 Fiat Italia 12 Renault Francia 15 BMW Germania 80 Mercedes Germania (Importante: il contenuto delle tabelle è solamente un esempio; non possono 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. 31333 12 Clio Utilitaria Marca idmarca marchio nazionalitàcasa (Importante: il contenuto delle tabelle è 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 pe 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 4. Scrivere in algebra relazionale una query che restituisce le valutazion superiori ai 15000, dall anno 2005 al 2009, delle utilitarie non italiane. 4. idmodello,nome,prezzo (( prezzo>15000^anno>=2005^anno<=2009 Valutazione)./ (Marca nazionalitacasa=italiamarca)./ categoria=utilitaria (Modello))
3 Si vuole progevare un database per una piavaforma geseonale delle spese di un appartamento. La piavaforma fa riferimento allo scenario in cui a coinquilini diversi di un appartamento sono intestate utenze diverse, e supporta la geseone del dare/ avere tra coinquilini per quanto riguarda le bolleve. 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 piavaforma e può essere associato a non più di un appartamento. Un coinquilino può avere nessuna, una o più utenze a sè intestate, con un contravo riportante data di sepulazione, fornitore, Epologia (es. luce, acqua, gas, internet) e cadenza del pagamento in mesi. Quando arriva una bolleva questa viene registrata con i suoi dae: inizio e fine periodo, costo totale, scadenza del pagamento e codice ideneficaevo. Il codice di una bolleva è univoco solo in relazione a un contravo Uno qualunque dei coinquilini può pagare la bolleva, e successivamente gli altri possono pagargli la somma dovuta, relaeva a una specifica bolleva. Queste operazioni vengono registrate insieme con la data in cui avvengono. Si disegni il modello concevuale del dominio descrivo uelizzando i diagrammi E/R e si indichino gli eventuali vincoli non esprimibili.
(3) Progettazione 3
4 Mostrare i passi della cancellazione della chiave K=8 nel seguente B+Tree:
PASSO 1 4
PASSO 2 4
PASSO 3 4
PASSO 4 4