new basi di dati e sistemi informativi - plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10....
TRANSCRIPT
![Page 1: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/1.jpg)
Basi di Dati e Sistemi Informativi
Esercitazione:
Il Linguaggio SQL (DDL+DML)
!Home page del corso:
http://www.cs.unibo.it/~difelice/dbsi/
![Page 2: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/2.jpg)
Esercizio 1
➢ Scrivere il codice SQL dello schema
Codice Autore Conferenza Anno Formato Pagine
ARTICOLI
➢ Autore deve essere sempre definito. ➢ Conferenza è una stringa di lunghezza max 8. ➢ Formato è una stringa di lunghezza 3. ➢ Il numero di pagine deve essere sempre maggiore
di 0, nel caso di omissione si assume pari ad 1.
![Page 3: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/3.jpg)
Esercizio 1
CREATE TABLE ARTICOLI ( CODICE SMALLINT PRIMARY KEY, AUTORE VARCHAR(20) NOT NULL, CONFERENZA CHAR(8), FORMATO CHAR(3), ANNO DATE, PAGINE SMALLINT DEFAULT 1 CHECK (PAGINE>0) );
![Page 4: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/4.jpg)
Esercizio 1
➢ Scrivere il codice SQL dello schema
Nome Data Organizzatore NumPartecipanti
CONFERENZE
➢ Vincolo di integrita’: ARTICOLO.{Conferenza, Data} à CONFERENZA.{Nome, Data}
➢ Rimuovendo una conferenza da CONFERENZE, vengono rimossi anche gli articoli corrispondenti
![Page 5: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/5.jpg)
Esercizio 1
CREATE TABLE CONFERENZE ( NOME VARCHAR(8), DATA DATE, ORGANIZZATORE VARCHAR(20), NUMPARTECIPANTI INTEGER CHECK (NUMPARTECIPANTI>0), PRIMARY KEY(NOME,DATA) );
![Page 6: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/6.jpg)
Esercizio 1
CREATE TABLE ARTICOLI ( CODICE SMALLINT PRIMARY KEY, AUTORE VARCHAR(20) NOT NULL, CONFERENZA CHAR(8), FORMATO CHAR(3), DATA DATE, PAGINE SMALLINT DEFAULT 1 CHECK (PAGINE>1) FOREIGN KEY (CONFERENZA,DATA) REFERENCES CONFERENZE(NOME, DATA) ON DELETE CASCADE );
![Page 7: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/7.jpg)
Esercizio 1
➢ Scrivere il codice SQL dello schema
NomeConf DataConf Nome Cognome Ruolo
PARTECIPANTE
➢ Vincolo di integrita’: PARTECIPANTE.{NomeConf, DataConf} à CONFERENZA.{Nome, Data}
➢ Ogni aggiornamento di {Nome, Data} nella relazione CONFERENZA viene propagato anche alla relazione PARTECIPANTE.
![Page 8: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/8.jpg)
Esercizio 1
CREATE TABLE PARTECIPANTE ( NOMECONF CHAR(8), DATACONF DATE, NOME VARCHAR(20), COGNOME VARCHAR(30), RUOLO CHARACTER(3), PRIMARY KEY (NOMECONF,DATACONF, NOME, COGNOME) FOREIGN KEY (NOMECONF,DATACONF) REFERENCES CONFERENZE(NOME, DATA) ON UPDATE CASCADE );
![Page 9: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/9.jpg)
Esercizio 2
➢ Definire in SQL i seguenti domini:
1. Saldo: intero, compreso tra -200 e 200, valore di default pari a 5.
2. NomeUtente: stringa di max 10 caratteri, valore di default pari al nome dell’utente che esegue le operazioni di inserimento dati.
![Page 10: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/10.jpg)
Esercizio 2
➢ Definire in SQL i seguenti domini:
1. Saldo: intero, compreso tra -200 e 200, valore di default pari a 5.
2. NomeUtente: stringa di max 10 caratteri, valore di default pari al nome dell’utente che esegue le operazioni di inserimento dati.
CREATE DOMAIN SALDO AS SMALLINT DEFAULT 5 CHECK (VALUE<200 AND VALUE> -200) !
CREATE DOMAIN NOMEUTENTE AS VARCHAR(10) DEFAULT USER
![Page 11: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/11.jpg)
Esercizio 3 (per casa) à
➢ Scrivere il codice SQL dello schema seguente:
Nome Cognome DataNascita Presenza Goal NSquadra
GIOCATORI
➢ Presenza è un intero, valore di default 0. !➢ Goal è un intero, valore di default 0, e può
assumere valori compresi tra 0 e 30. !
➢ Esiste un vincolo di integrità tra GIOCATORI.Nsquadra e SQUADRE.Nome
![Page 12: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/12.jpg)
Esercizio 3 (per casa) à
➢ Scrivere il codice SQL dello schema
Nome Campionato Data Fondazione Città
SQUADRE
➢ Nome è una stringa di lunghezza massima 20 caratteri. !
➢ Campionato è un carattere, e può assumere solo i valori {A,B,C}. !
➢ Città deve essere sempre definito
![Page 13: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/13.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !Scrivere la query SQL che determina: !0.Nomi e cognomi di Atleti della societa’ Borgorosso.
![Page 14: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/14.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !Scrivere la query SQL che determina: !SELECT NOME, COGNOME FROM ATLETA WHERE (SOCIETA’=‘Borgorosso’)
![Page 15: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/15.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !Scrivere la query SQL che determina: !1. Le righe della tabella ATLETA che si riferiscono ad atleti il cui nome inizia per “M” oppure non e’ specificato.
![Page 16: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/16.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !Scrivere la query SQL che determina: !1. Le righe della tabella ATLETA che si riferiscono ad atleti il cui nome inizia per “M” oppure non e’ specificato.
![Page 17: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/17.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !SELECT * FROM ATLETA WHERE ((Nome LIKE ‘M%’) OR (Nome IS NULL))
![Page 18: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/18.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !Scrivere la query SQL che determina: !2. Tutti i codici delle gare di Atletica cui partecipano atleti della societa’ “Borgorosso”.
![Page 19: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/19.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !SELECT CODICEGARA FROM PARTECIPAZIONE, ATLETA WHERE ((PARTECIPAZIONE.CODICEATLETA= ATLETA.CODICE) AND (SOCIETA’ = ‘BORGOROSSO’))
![Page 20: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/20.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !Scrivere la query SQL che determina: !3. Tutti i codici delle gare di Atletica cui partecipano atleti della societa’ “Borgorosso”, svolte in data 7/10/2013.
![Page 21: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/21.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !SELECT CODICEGARA FROM PARTECIPAZIONE, ATLETA, GARA WHERE ((CODICEATLETA=CODICE) AND (GARA.CODICEGARA=PARTECIPAZIONE. CODICEGARA) AND (SOCIETA’ = ‘BORGOROSSO’) AND (DATA=07/10/2013))
![Page 22: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/22.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !Scrivere la query SQL che determina: !4. I nomi delle societa’ i cui atleti hanno vinto una gara di LancioDelDisco. Filtrare i duplicati.
![Page 23: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/23.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !SELECT DISTINCT(SOCIETA’) FROM ATLETA, GARA WHERE ((CODICEVINCITORE=CODICE) AND (DISCIPLINA=‘LANCIODELDISCO’))
![Page 24: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/24.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !Scrivere la query SQL che determina: !5. Il numero di gare svolte in data 7/10/2013.
![Page 25: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/25.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !SELECT COUNT(*) FROM GARA WHERE (DATA=‘7/10/2013’)
![Page 26: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/26.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !Scrivere la query SQL che determina: !6. Per ogni societa’, il numero di atleti che ne fanno parte.
![Page 27: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/27.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !SELECT SOCIETA’, COUNT(*) AS NUMERO FROM ATLETA GROUPBY SOCIETA’
![Page 28: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/28.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !Scrivere la query SQL che determina: !7. Le societa’ che hanno almeno 3 atleti tesserati.
![Page 29: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/29.jpg)
Esercizio 2
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !SELECT SOCIETA’ FROM ATLETA GROUPBY SOCIETA’ HAVING COUNT(*) >=3
![Page 30: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/30.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !Scrivere la query SQL che determina: !7. Gli atleti che hanno partecipato ad almeno 5 gare.
![Page 31: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/31.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !SELECT CODICE FROM ATLETA, PARTECIPAZIONE WHERE (CODICEATLETA=CODICE) GROUPBY CODICE,CODICEATLETA HAVING (COUNT(*)>=5)
![Page 32: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/32.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !Scrivere la query SQL che determina: !8. Gli atleti che NON hanno mai partecipato ad una gara.
![Page 33: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/33.jpg)
Esercizio 4
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !SELECT CODICE FROM ATLETA EXCEPT SELECT DISTINCT(CODICEATLETA) FROM PARTECIPAZIONE
![Page 34: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/34.jpg)
Esercizio 5
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’), 50 elementi Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !1. Determinare la cardinalita’ (#righe) della query seguente: !SELECT CODICE FROM ATLETA
![Page 35: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/35.jpg)
Esercizio 5
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’), 50 elementi Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !1. Determinare la cardinalita’ (#righe) della query seguente: !SELECT CODICE FROM ATLETA !Cardinalita’ del risultato: 50
![Page 36: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/36.jpg)
Esercizio 5
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’), 50 elementi Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !2. Determinare la cardinalita’ (#righe) della query seguente: !SELECT DISTINCT(NOME) FROM ATLETA
![Page 37: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/37.jpg)
Esercizio 5
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’), 50 elementi Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !2. Determinare la cardinalita’ (#righe) della query seguente: !SELECT DISTINCT(NOME) FROM ATLETA
Cardinalita’ del risultato: 1<=x<=50
![Page 38: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/38.jpg)
Esercizio 5
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’), 50 elementi Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !3. Determinare la cardinalita’ (#righe) della query seguente: !SELECT DISTINCT(NOME) FROM ATLETA WHERE (SOCIETA’ =‘Borgorosso’)
![Page 39: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/39.jpg)
Esercizio 5
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’), 50 elementi Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) !3. Determinare la cardinalita’ (#righe) della query seguente: !SELECT DISTINCT(NOME) FROM ATLETA WHERE (SOCIETA’ =‘Borgorosso’)
Cardinalita’ del risultato: 1<=x<=50
![Page 40: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/40.jpg)
Esercizio 5
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’), 50 elementi Gara(CodiceGara, Disciplina, Data, CodiceVincitore), 20 el Partecipazione(CodiceGara, CodiceAtleta), 100 elementi !4. Determinare la cardinalita’ (#righe) della query seguente: !SELECT CODICEGARA FROM PARTECIPAZIONE, ATLETA WHERE (CODICE=CODICEATLETA)
![Page 41: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/41.jpg)
Esercizio 5
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Societa’), 50 elementi Gara(CodiceGara, Disciplina, Data, CodiceVincitore), 20 el Partecipazione(CodiceGara, CodiceAtleta), 100 elementi !4. Determinare la cardinalita’ (#righe) della query seguente: !SELECT CODICEGARA FROM PARTECIPAZIONE, ATLETA WHERE (CODICE=CODICEATLETA)
Cardinalita’ del risultato: 100
![Page 42: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/42.jpg)
Esercizio 5
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, Specialita’), 50 elementi Gara(CodiceGara, Disciplina, Data, CodiceVincitore), 20 el Partecipazione(CodiceGara, CodiceAtleta), 100 elementi !5. Determinare la cardinalita’ (#righe) della query seguente: !SELECT * FROM GARA, ATLETA WHERE (DISCIPLINA=SPECIALITA’)
Cardinalita’ del risultato: 0<=x<=50*20
![Page 43: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/43.jpg)
Esercizio 6 (per casa)
Dato il seguente schema: !Docente(Codice, Nome, Cognome) Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente) !Scrivere la query SQL che determina: !1. Nome e Cognome dei docenti che hanno prenotato l’aula “Ercolani1” in data 13/10/2015.
![Page 44: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/44.jpg)
Esercizio 6 (per casa)
Dato il seguente schema: !Docente(Codice, Nome, Cognome) Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente) !Scrivere la query SQL che determina: !2. Capienza massima tra le aule del dipartimento di Fisica, prenotate dal docente con codice 134.
![Page 45: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/45.jpg)
Esercizio 6 (per casa)
Dato il seguente schema: !Docente(Codice, Nome, Cognome) Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente) !Scrivere la query SQL che determina: !3. Numero dei docenti che hanno prenotato aule del Dipartimento di Matematica, nel periodo compreso tra il 13/06/2014 ed il 13/10/2014.
![Page 46: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/46.jpg)
Esercizio 6 (per casa)
Dato il seguente schema: !Docente(Codice, Nome, Cognome) Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente) !Scrivere la query SQL che determina: !4. Codice del docente che ha prenotato almeno due aule (distinte) del Dipartimento di Fisica, in data 13/10/2014 (VINCOLO: non è possibile usare operatori aggregati!)
![Page 47: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/47.jpg)
Esercizio 6 (per casa)
Dato il seguente schema: !Docente(Codice, Nome, Cognome) Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente) !Scrivere la query SQL che determina: !5. Codice, nome e cognome dei docenti che non hanno mai prenotato aule del dipartimento di Fisica.
![Page 48: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/48.jpg)
Esercizio 6 (per casa)
Dato il seguente schema: !Docente(Codice, Nome, Cognome) Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente) !Scrivere la query SQL che determina: !6. Per ogni dipartimento, il numero di prenotazioni di aule nel periodo compreso tra il 17/10/2013 ed il 17/11/2014.
![Page 49: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/49.jpg)
Esercizio 6 (per casa)
Dato il seguente schema: !Docente(Codice, Nome, Cognome) Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente) !Scrivere la query SQL che determina: !7. I codici dei docenti che hanno effettuato almeno 4 prenotazioni di aule del dipartimento di Fisica.
![Page 50: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/50.jpg)
Esercizio 6 (per casa)
Dato il seguente schema: !Docente(Codice, Nome, Cognome) Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente) !Scrivere la query SQL che determina: !8. Codice, nome e cognome dei docenti che hanno effettuato prenotazioni di aule del dipartimento di Fisica. (VINCOLO: solo 1 tabella nella clausola FROM)
![Page 51: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/51.jpg)
Esercizio 6 (per casa)
Dato il seguente schema: !Docente(Codice, Nome, Cognome) Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente) !Scrivere la query SQL che determina: !9. Dipartimento che ospita l’aula con maggior numero di posti.
![Page 52: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/52.jpg)
Esercizio 6 (per casa)
Dato il seguente schema: !Docente(Codice, Nome, Cognome) Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente) !Scrivere la query SQL che determina: !10. Nomi delle aule del dipartimento di Fisica che non sono state mai prenotate nel periodo dal 30/09/2013 al 30/09/2014.
![Page 53: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/53.jpg)
Esercizio 6 (per casa)
Dato il seguente schema: !Docente(Codice, Nome, Cognome) Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente) !Scrivere la query SQL che determina: !11. Nome/i delle aule prenotate più della media (di tutte le altre aule), nel periodo compreso tra il 1/1/2013 ed il 31/12/2013
![Page 54: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/54.jpg)
Esercizio 7
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, DataNascita, Societa’) Allenatore(Codice, Nome, Cognome, Profilo, Societa’) Sportivi(Nome, Cognome, Societa’) !Scrivere la query SQL che: !1. Inserisce nella tabella sportivi l’utente “Michele Rossi”.
![Page 55: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/55.jpg)
Esercizio 7
Dato il seguente schema: !Atleta(Codice, Nome, Cognome, DataNascita, Societa’) Allenatore(Codice, Nome, Cognome, Profilo, Societa’) Sportivi(Nome, Cognome, Societa’) !!INSERT INTO SPORTIVI(NOME,COGNOME) VALUES (‘Michele’, ‘Rossi’)
![Page 56: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/56.jpg)
Esercizio 7
Dato il seguente schema: !Atleti(Codice, Nome, Cognome, DataNascita, Societa’) Allenatori(Codice, Nome, Cognome, Profilo, Societa’) Sportivi(Nome, Cognome, Societa’) !Scrivere la query SQL che: !2. Popola la tabella Sportivi(Nome, Cognome, Societa’) come insieme di tutti gli atleti ed allenatori presenti nello schema.
![Page 57: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/57.jpg)
Esercizio 7
Dato il seguente schema: !Atleti(Codice, Nome, Cognome, DataNascita, Societa’) Allenatori(Codice, Nome, Cognome, Profilo, Societa’) Sportivi(Nome, Cognome, Societa’) !Scrivere la query SQL che: !INSERT INTO SPORTIVI(NOME,COGNOME, SOCIETA’) (SELECT NOME,COGNOME,SOCIETA’ FROM ATLETI UNION SELECT NOME,COGNOME,SOCIETA’ FROM ALLENATORI)
![Page 58: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/58.jpg)
Esercizio 7
Dato il seguente schema: !Atleti(Codice, Nome, Cognome, DataNascita, Societa’) Allenatori(Codice, Nome, Cognome, Profilo, Societa’) Sportivi(Nome, Cognome, Societa’) !Scrivere la query SQL che: !3. Rimuove tutti gli allenatori la cui societa’ di appartenenza non e’ specificata.
![Page 59: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/59.jpg)
Esercizio 7
Dato il seguente schema: !Atleti(Codice, Nome, Cognome, DataNascita, Societa’) Allenatori(Codice, Nome, Cognome, Profilo, Societa’) Sportivi(Nome, Cognome, Societa’) !Scrivere la query SQL che: !DELETE FROM ALLENATORI WHERE (SOCIETA’ IS NULL)
![Page 60: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/60.jpg)
Esercizio 7
Dato il seguente schema: !Atleti(Codice, Nome, Cognome, DataNascita, Societa’) Allenatori(Codice, Nome, Cognome, Profilo, Societa’) Sportivi(Nome, Cognome, Societa’) !Scrivere la query SQL che: !4. Aggiorna i dati degli Atleti nati in data 10/11/2012, settando il nuovo valore della societa’ a “Polisportiva Rossi”
![Page 61: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/61.jpg)
Esercizio 7
Dato il seguente schema: !Atleti(Codice, Nome, Cognome, DataNascita, Societa’) Allenatori(Codice, Nome, Cognome, Profilo, Societa’) Sportivi(Nome, Cognome, Societa’) !Scrivere la query SQL che: !UPDATE ATLETI SET SOCIETA’=‘POLISPORTIVA ROSSI’ WHERE DATANASCITA=’10/11/2012’
![Page 62: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/62.jpg)
Esercizio 8
Dato il seguente schema: !IMPIEGATO(Matricola, Nome, Cognome, Stipendio, Direttore) DIPARTIMENTO(Codice, Direttore) !SELECT SUM(STIPENDIO) SELECT SUM(STIPENDIO) FROM IMPIEGATO I FROM IMPIEGATO I, DIPARTIMENTO D WHERE I.DIRETTORE IN WHERE (I.DIRETTORE = SELECT DIRETTORE D.DIRETTORE) FROM DIPARTIMENTO
!Definire se le due query sono equivalenti.
![Page 63: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/63.jpg)
Esercizio 9
Dato il seguente schema: !IMPIEGATO(Matricola, Nome, Cognome, Stipendio) !QUERY: Selezionare le matricole di impiegati che guadagnano piu’ di un qualche loro collega. !SELECT MATRICOLA FROM IMPIEGATO WHERE (STIPENDIO SELECT STIPENDIO FROM IMPIEGATO)
Indicare una condizione valida!
![Page 64: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/64.jpg)
Esercizio 9
Dato il seguente schema: !IMPIEGATO(Matricola, Nome, Cognome, Stipendio) !QUERY: Selezionare le matricole di impiegati che guadagnano piu’ di tutti i loro colleghi. !SELECT MATRICOLA FROM IMPIEGATO WHERE (STIPENDIO SELECT STIPENDIO FROM IMPIEGATO)
Indicare una condizione valida!
![Page 65: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/65.jpg)
Esercizio 9
Dato il seguente schema: !IMPIEGATO(Matricola, Nome, Cognome, Stipendio) !QUERY: Selezionare le matricole di impiegati che guadagnano tra i 20K ed i 30K. !SELECT MATRICOLA FROM IMPIEGATO WHERE (MATRICOLA SELECT MATRICOLA FROM IMPIEGATO WHERE (STIPENDIO IN (20000,30000))
Indicare una condizione valida!
![Page 66: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/66.jpg)
Esercizio 10
Dato il seguente schema: !AEROPORTO(Id, Nazione, NumPiste) VOLO(Codice, Partenza, Arrivo, ModAereo) AEREO(ModelloAereo, NumPasseggeri) !Vincoli di integrita’: VOLO.Partenza à AEROPORTO.Id VOLO.Arrivo à AEROPORTO.Id VOLO.ModAereo à AEREO.ModelloAereo !Scrivere la query SQL che determina: !1. Il totale dei passeggeri che hanno volato dalla Francia all’Italia.
![Page 67: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/67.jpg)
Esercizio 10
Dato il seguente schema: !AEROPORTO(Id, Nazione, NumPiste) VOLO(Codice, Partenza, Arrivo, ModAereo) AEREO(ModelloAereo, NumPasseggeri) !Vincoli di integrita’: VOLO.Partenza à AEROPORTO.Id VOLO.Arrivo à AEROPORTO.Id VOLO.ModAereo à AEREO.ModelloAereo !Scrivere la query SQL che determina: !2. Per ogni nazione, il numero di voli in partenza.
![Page 68: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/68.jpg)
Esercizio 10
Dato il seguente schema: !AEROPORTO(Id, Nazione, NumPiste) VOLO(Codice, Partenza, Arrivo, ModAereo) AEREO(ModelloAereo, NumPasseggeri) !Vincoli di integrita’: VOLO.Partenza à AEROPORTO.Id VOLO.Arrivo à AEROPORTO.Id VOLO.ModAereo à AEREO.ModelloAereo !Scrivere la query SQL che determina: !3. I modelli di aerei che volano da aeroporti francesi ad aeroporti italiani (VINCOLO: Max 1 tabella nel FROM)
![Page 69: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/69.jpg)
Esercizio 10
Dato il seguente schema: !AEROPORTO(Id, Nazione, NumPiste) VOLO(Codice, Partenza, Arrivo, ModAereo) AEREO(ModelloAereo, NumPasseggeri) !Vincoli di integrita’: VOLO.Partenza à AEROPORTO.Id VOLO.Arrivo à AEROPORTO.Id VOLO.ModAereo à AEREO.ModelloAereo !Scrivere la query SQL che determina: !4. Le nazioni da cui partono più di venti voli per l’Italia
![Page 70: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/70.jpg)
Esercizio 10
Dato il seguente schema: !AEROPORTO(Id, Nazione, NumPiste) VOLO(Codice, Partenza, Arrivo, ModAereo) AEREO(ModelloAereo, NumPasseggeri) !Vincoli di integrita’: VOLO.Partenza à AEROPORTO.Id VOLO.Arrivo à AEROPORTO.Id VOLO.ModAereo à AEREO.ModelloAereo !Scrivere la query SQL che determina: !5. L’aeroporto (id) da cui partono più voli diretti verso l’Italia rispetto alla media degli altri aeroporti.
![Page 71: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/71.jpg)
Esercizio 10.a
Date le seguenti transazioni: !T0: r0(x) r0(y) r0(z) w0(z) C(T0) T1: w1(y) w1(z) r1(a) r1(b) w1(a) A(T1) T2: r2(a) r2(b) w2(b) w2(a) C(T2) !Lo schedule seguente e’ uno schedule seriale: !➢w1(y) w1(z) r1(a) r1(b) w1(a) A(T1) r2(a) r2(b) w2(b)
w2(a) C(T2) r0(x) r0(y) r0(z) w0(z) C(T0)
![Page 72: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/72.jpg)
Esercizio 10.b
Date le seguenti transazioni: !T0: r0(x) r0(y) r0(z) w0(z) C(T0) T1: w1(y) w1(z) r1(a) r1(b) w1(a) A(T1) T2: r2(a) r2(b) w2(b) w2(a) C(T2) !Il seguente schedule e’ uno schedule seriale: ➢w1(y) w1(z) r1(a) r2(a) r2(b) w2(b) w2(a) C(T2) r0(x)
r0(y) r0(z) w0(z) C(T0) r1(b) w1(a) A(T1)
![Page 73: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/73.jpg)
Esercizio 11
Sia x un oggetto del DB, con WTM(x)=5, RTM(x)=7. Indicare il valore finale di WTM e RTM (TS-based), quali operazioni sono eseguite e quali abortite. !r4(x), r6(x), r17(x), w16(x), w18(x), w23(x), w29(x), r20(x), r30(x), r25(x)
![Page 74: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/74.jpg)
Esercizio 12
Indicare gli insiemi di UNDO/REDO e le operazioni di recovery, se vengono eseguite le seguenti operazioni sul DB: !DUMP B(T1) B(T2) B(T3) I(T1,O1,A1) D(T2,O2,B2) B(T4) U(T4,O3,B3,A3) U(T1,O4,B4,A4) C(T2) CK(T1,T3,T4) B(T5) B(T6) U(T5,O5,B5,A5) A(T3) CK(T1,T4,T5,T6) B(T7) C(T4) U(T7,O6,B6,A6) U(T6,O3,B7,A7) B(T8) A(T7) guasto
![Page 75: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/75.jpg)
Esercizio 13
Dato il seguente schema: !VEICOLO(Targa, Modello, AnnoImmatricolazione) CLIENTI(NrPatente, Nome, Cognome, DataNascita) NOLEGGIO(TargaVeicolo, Data, PatenteCliente)
Scrivere la query SQL che determina: !2. Nome dei clienti (senza duplicati) che NON hanno mai noleggiato una macchina (VINCOLO: usare query annidate).
![Page 76: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/76.jpg)
Esercizio 13
Dato il seguente schema: !VEICOLO(Targa, Modello, AnnoImmatricolazione) CLIENTI(NrPatente, Nome, Cognome, DataNascita) NOLEGGIO(TargaVeicolo, Data, PatenteCliente)
SELECT DISTINCT(Nome) FROM CLIENTI C WHERE NOT EXIST ( SELECT * FROM NOLEGGIO N WHER (C.NRPATENTE=N.PATENTECLIENTE))
![Page 77: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/77.jpg)
Esercizio 13
Dato il seguente schema: !VEICOLO(Targa, Modello, AnnoImmatricolazione) CLIENTI(NrPatente, Nome, Cognome, DataNascita) NOLEGGIO(TargaVeicolo, Data, PatenteCliente)
SELECT DISTINCT(Nome) FROM CLIENTI C WHERE NRPATENTE NOT IN SELECT PATENTECLIENTE FROM NOLEGGIO N
![Page 78: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/78.jpg)
Esercizio 13
Dato il seguente schema: !VEICOLO(Targa, Modello, AnnoImmatricolazione) CLIENTI(NrPatente, Nome, Cognome, DataNascita) NOLEGGIO(TargaVeicolo, Data, PatenteCliente)
Scrivere la query SQL che determina: !3. Nome e cognome dei clienti che hanno noleggiato piu’ macchine rispetto alla media (degli altri clienti).
![Page 79: New Basi di Dati e Sistemi Informativi - Plone sitedifelice/dbsi/2016/esercizi/3e.pdf · 2015. 10. 6. · Aula(Nome, Dipartimento, NumPosti) Prenotazione(Data, NomeAula, CodDocente)](https://reader034.vdocuments.pub/reader034/viewer/2022052104/603f1a13a1493e49ac3aa203/html5/thumbnails/79.jpg)
Esercizio 13
CREATE VIEW TOTNOLEGGI(P, NUM) AS ( SELECT PATENTECLIENTE AS P, COUNT (*) AS NUM FROM NOLEGGIO GROUPBY PATENTECLIENTE ) !SELECT NOME, COGNOME FROM TOTNOLEGGI, CLIENTI WHERE ((NUM > SELECT AVG(NUM) FROM TOTNOLEGGI) AND (P=NRPATENTE))