Basi di Dati e Sistemi Informativi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Basi di Dati e Sistemi Informativi"

Transcript

1 Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso:

2 Esercizio 1 Scrivere il codice SQL dello schema ARTICOLI Codice Autore Conferenza Anno Formato Pagine 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.

3 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) );

4 Esercizio 1 Scrivere il codice SQL dello schema CONFERENZE Nome Data Organizzatore NumPartecipanti Vincolo di integrita : ARTICOLO.{Conferenza, Data} à CONFERENZA.{Nome, Data} Rimuovendo una conferenza da CONFERENZE, vengono rimossi anche gli articoli corrispondenti

5 Esercizio 1 CREATE TABLE CONFERENZE ( NOME VARCHAR(8), DATA DATE, ORGANIZZATORE VARCHAR(20), NUMPARTECIPANTI INTEGER CHECK (NUMPARTECIPANTI>0), ); PRIMARY KEY(NOME,DATA)

6 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 );

7 Esercizio 1 Scrivere il codice SQL dello schema PARTECIPANTE NomeConf DataConf Nome Cognome Ruolo Vincolo di integrita : PARTECIPANTE. {NomeConf, DataConf} à CONFERENZA. {Nome, Data} Ogni aggiornamento di {Nome, Data} nella relazione CONFERENZA viene propagato anche alla relazione PARTECIPANTE.

8 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 );

9 Esercizio 2 Definire in SQL i seguenti domini: 1. Saldo: intero, compreso tra -200 e 200, valore di default pari a NomeUtente: stringa di max 10 caratteri, valore di default pari al nome dell utente che esegue le operazioni di inserimento dati.

10 Esercizio 2 Definire in SQL i seguenti domini: 1. Saldo: intero, compreso tra -200 e 200, valore di default pari a 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

11 Esercizio 3 (per casa) à Scrivere il codice SQL dello schema seguente: GIOCATORI Nome Cognome DataNascita Presenza Goal NSquadra 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

12 Esercizio 3 (per casa) à Scrivere il codice SQL dello schema SQUADRE Nome Campionato Data Fondazione Città 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

13 Esercizio 4 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.

14 Esercizio 4 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 )

15 Esercizio 4 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.

16 Esercizio 4 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.

17 Esercizio 4 Atleta(Codice, Nome, Cognome, Societa ) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) SELECT * FROM ATLETA WHERE ((Nome LIKE M% ) OR (Nome IS NULL))

18 Esercizio 4 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.

19 Esercizio 4 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 ))

20 Esercizio 4 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.

21 Esercizio 4 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))

22 Esercizio 4 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.

23 Esercizio 4 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 ))

24 Esercizio 4 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.

25 Esercizio 4 Atleta(Codice, Nome, Cognome, Societa ) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) SELECT COUNT(*) FROM GARA WHERE (DATA= 7/10/2013 )

26 Esercizio 4 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.

27 Esercizio 4 Atleta(Codice, Nome, Cognome, Societa ) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) SELECT SOCIETA, COUNT(*) AS NUMERO FROM ATLETA GROUPBY SOCIETA

28 Esercizio 4 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.

29 Esercizio 2 Atleta(Codice, Nome, Cognome, Societa ) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) SELECT SOCIETA FROM ATLETA GROUPBY SOCIETA HAVING COUNT(*) >=3

30 Esercizio 4 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.

31 Esercizio 4 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)

32 Esercizio 4 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.

33 Esercizio 4 Atleta(Codice, Nome, Cognome, Societa ) Gara(CodiceGara, Disciplina, Data, CodiceVincitore) Partecipazione(CodiceGara, CodiceAtleta) SELECT CODICE FROM ATLETA EXCEPT SELECT DISTINCT(CODICEATLETA) FROM PARTECIPAZIONE

34 Esercizio 5 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

35 Esercizio 5 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

36 Esercizio 5 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

37 Esercizio 5 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

38 Esercizio 5 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 )

39 Esercizio 5 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

40 Esercizio 5 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)

41 Esercizio 5 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

42 Esercizio 5 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

43 Esercizio 6 (per casa) 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.

44 Esercizio 6 (per casa) 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.

45 Esercizio 6 (per casa) 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.

46 Esercizio 6 (per casa) 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)

47 Esercizio 6 (per casa) 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.

48 Esercizio 6 (per casa) 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.

49 Esercizio 6 (per casa) 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.

50 Esercizio 6 (per casa) 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)

51 Esercizio 6 (per casa) 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.

52 Esercizio 6 (per casa) 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.

53 Esercizio 6 (per casa) 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

54 Esercizio 7 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.

55 Esercizio 7 Atleta(Codice, Nome, Cognome, DataNascita, Societa ) Allenatore(Codice, Nome, Cognome, Profilo, Societa ) Sportivi(Nome, Cognome, Societa ) INSERT INTO SPORTIVI(NOME,COGNOME) VALUES ( Michele, Rossi )

56 Esercizio 7 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.

57 Esercizio 7 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)

58 Esercizio 7 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.

59 Esercizio 7 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)

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

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

62 Esercizio 8 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.

63 Esercizio 9 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 Indicare una condizione valida SELECT STIPENDIO FROM IMPIEGATO)

64 Esercizio 9 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 Indicare una condizione valida SELECT STIPENDIO FROM IMPIEGATO)

65 Esercizio 9 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 Indicare una condizione valida SELECT MATRICOLA FROM IMPIEGATO WHERE (STIPENDIO IN (20000,30000))

66 Esercizio 10 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.

67 Esercizio 10 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.

68 Esercizio 10 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)

69 Esercizio 10 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

70 Esercizio 10 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.

71 Esercizio 10.a Date le seguenti transazioni: T 0 : r 0 (x) r 0 (y) r 0 (z) w 0 (z) C(T 0 ) T 1 : w 1 (y) w 1 (z) r 1 (a) r 1 (b) w 1 (a) A(T 1 ) T 2 : r 2 (a) r 2 (b) w 2 (b) w 2 (a) C(T 2 ) Lo schedule seguente e uno schedule seriale: w 1 (y) w 1 (z) r 1 (a) r 1 (b) w 1 (a) A(T 1 ) r 2 (a) r 2 (b) w 2 (b) w 2 (a) C(T 2 ) r 0 (x) r 0 (y) r 0 (z) w 0 (z) C(T 0 )

72 Esercizio 10.b Date le seguenti transazioni: T 0 : r 0 (x) r 0 (y) r 0 (z) w 0 (z) C(T 0 ) T 1 : w 1 (y) w 1 (z) r 1 (a) r 1 (b) w 1 (a) A(T 1 ) T 2 : r 2 (a) r 2 (b) w 2 (b) w 2 (a) C(T 2 ) Il seguente schedule e uno schedule seriale: w 1 (y) w 1 (z) r 1 (a) r 2 (a) r 2 (b) w 2 (b) w 2 (a) C(T 2 ) r 0 (x) r 0 (y) r 0 (z) w 0 (z) C(T 0 ) r 1 (b) w 1 (a) A(T 1 )

73 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. r 4 (x), r 6 (x), r 17 (x), w 16 (x), w 18 (x), w 23 (x), w 29 (x), r 20 (x), r 30 (x), r 25 (x)

74 Esercizio 12 Indicare gli insiemi di UNDO/REDO e le operazioni di recovery, se vengono eseguite le seguenti operazioni sul DB: DUMP B(T 1 ) B(T 2 ) B(T 3 ) I(T 1,O 1,A 1 ) D(T 2,O 2,B 2 ) B(T 4 ) U(T 4,O 3,B 3,A 3 ) U(T 1,O 4,B 4,A 4 ) C(T 2 ) CK(T 1,T 3,T 4 ) B(T 5 ) B(T 6 ) U(T 5,O 5,B 5,A 5 ) A(T 3 ) CK(T 1,T 4,T 5,T 6 ) B(T 7 ) C(T 4 ) U(T 7,O 6,B 6,A 6 ) U(T 6,O 3,B 7,A 7 ) B(T 8 ) A(T 7 ) guasto

75 Esercizio 13 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).

76 Esercizio 13 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))

77 Esercizio 13 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

78 Esercizio 13 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).

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

Corso di Basi di Dati A.A. 2015/2016

Corso di Basi di Dati A.A. 2015/2016 Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2015/2016 - Esercizi Tiziana Catarci, Andrea Marrella Ultimo aggiornamento : 06/04/2016 Esercizio 1 Dare

Dettagli

Stringhe di caratteri

Stringhe di caratteri Domini primitivi In SQL sono disponibili alcune famiglie di domini elementari attraverso le quali è possibile definire i domini di appartenenza dei campi. Stringhe di caratteri CHARACTER [VARYING] [(NumeroCaratteri)]

Dettagli

Soluzione esercitazione 01

Soluzione esercitazione 01 Soluzione esercitazione 01 Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SolEse01.pdf Sistemi Informativi L-A Videonoleggio - caso A: tabella

Dettagli

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Vincoli di integrita 2 Cosa e un vincolo di integrita E una proprieta sempre valida

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 2 Vincoli di integrità Proprietà che devono essere soddisfatte da ogni istanza della base di dati. Il soddisfacimento è definito rispetto al

Dettagli

Laboratorio di Basi di Dati Esercizio 8.4/9.1

Laboratorio di Basi di Dati Esercizio 8.4/9.1 Laboratorio di Basi di Dati Esercizio 8.4/9.1 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs S.p.A. R&D Department

Dettagli

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA 3. Panoramica su SQL Prof. Mauro Giacomini Sommario Introduzione Istruzione SELECT Tipi di Join Subquery Comandi DML Creazione delle tabelle Introduzione

Dettagli

PRODOTTO CARTESIANO Caso Generale

PRODOTTO CARTESIANO Caso Generale PRODOTTO CARTESIANO Caso Generale Vincoli di integrità dei dati Un database non deve solamente memorizzare i dati, ma garantire che i dati memorizzati siano corretti; se i dati sono imprecisi o incoerenti,

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2017/2018 1 Settima parte Interrogazione di una

Dettagli

SQL - Structured Query Language

SQL - Structured Query Language SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente

Dettagli

A.A. 2018/2019. Esercitazione 11. Strutturazione di Istruzioni in Linguaggio SQL. [ Possibili Soluzioni ] FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

A.A. 2018/2019. Esercitazione 11. Strutturazione di Istruzioni in Linguaggio SQL. [ Possibili Soluzioni ] FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE A.A. 2018/2019 Esercitazione 11 Strutturazione di Istruzioni in Linguaggio SQL [ Possibili Soluzioni ] Docente Prof. Raffaele Pizzolante FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE Esercizio 1 Scrivere

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Basi di Dati Il Linguaggio SQL Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ Il Linguaggio SQL SQL (Structured Query Language) è il linguaggio di riferimento per le basi di dati

Dettagli

A.A. 2018/2019. Esercitazione 12. Strutturazione di Istruzioni in Linguaggio SQL. [ Possibili Soluzioni ] FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

A.A. 2018/2019. Esercitazione 12. Strutturazione di Istruzioni in Linguaggio SQL. [ Possibili Soluzioni ] FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE A.A. 2018/2019 Esercitazione 12 Strutturazione di Istruzioni in Linguaggio SQL [ Possibili Soluzioni ] Docente Prof. Raffaele Pizzolante FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE Esercizio 1 Scrivere

Dettagli

SQL. SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe

SQL. SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe SQL SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe Operazioni di aggiornamento Abbiamo visto come creare tabelle e come interrogarle. Vedremo ora come popolarle

Dettagli

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a. 2012-2013 2013 Docente: Gigliola Vaglini Docenti laboratorio: Francesco Pistolesi, Antonio Virdis Lezione

Dettagli

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste Corso di Basi di Dati 9. Esercitazioni in SQL: Check, asserzioni, viste A.A. 2016 2017 Check Come abbiamo visto, SQL permette di specificare vincoli sugli attributi e le tabelle attraverso il comando check

Dettagli

Interrogazioni in SQL

Interrogazioni in SQL Interrogazioni in SQL Corso di Basi di Dati 4 dicembre 2013 1 Interrogazioni sullo schema aziendale 1. Ottenere i nomi dei dipartimenti dislocati in piú sedi. 2. Ottenere il numero di supervisori. 3. Produrre

Dettagli

Basi di dati: appello 04/07/06

Basi di dati: appello 04/07/06 Basi di dati: appello 04/07/06 Si consideri il seguente schema di base di dati che vuole tenere traccia dei DVD noleggiati dai clienti di una videoteca: CLIENTE (CodiceFiscale, Cognome, Nome, Residenza)

Dettagli

SQL. Dott.ssa Elisa Quintarelli

SQL. Dott.ssa Elisa Quintarelli Corso Basi di Dati Dott.ssa Elisa Quintarelli SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio universale dei sistemi relazionali È un linguaggio con varie funzionalità:

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,

Dettagli

Inserimento. Cancellazione. Modifica. INSERT INTO Persone VALUES ('Mario',25,52) INSERT INTO Persone(Nome, Eta, Reddito) VALUES('Pino',25,52)

Inserimento. Cancellazione. Modifica. INSERT INTO Persone VALUES ('Mario',25,52) INSERT INTO Persone(Nome, Eta, Reddito) VALUES('Pino',25,52) Inserimento insert into Dipartimento(NomeDip, Città) values('produzione','torino') Si utilizza in genere mediante una maschera (form) per consentire agli utenti di inserire dati. L'ordinamento degli attributi

Dettagli

Interrogazioni nidificate

Interrogazioni nidificate Interrogazioni nidificate Trovare nome, cognome e matricola degli studenti che non hanno fatto esami select Matricola,Nome,Cognome from studenti where matricola all (select studente group by studente)

Dettagli

Basi di dati: appello 14/07/06

Basi di dati: appello 14/07/06 Basi di dati: appello 14/07/06 Si consideri il seguente schema di base di dati che vuole tenere traccia dell attività di un agenzia che affitta appartamenti per vacanze nella città di Varazze. CLIENTE

Dettagli

Basi di dati: appello 07/02/06

Basi di dati: appello 07/02/06 Basi di dati: appello 07/02/06 Si consideri il seguente schema di base di dati di una casa editrice: restauro (id_quadro, data, tipo intervento, c.f._restauratore, ora_inizio, ora _fine.) quadro (id, titolo,

Dettagli

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari: SQL SQL (pronunciato anche come l inglese sequel): acronimo di Structured Query Language (linguaggio di interrogazione strutturato) Linguaggio completo che presenta anche proprietà di: DDL (Data Definition

Dettagli

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. Linguaggio di interrogazione per basi di dati relazionali

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. Linguaggio di interrogazione per basi di dati relazionali SQL Linguaggio di interrogazione per basi di dati relazionali SQL Structured Query Language Linguaggio di interrogazione per basi di dati relazionali. Permette di comunicare con diversi sistemi tramite

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Basi di Dati Il Linguaggio SQL Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ Il Linguaggio SQL SQL (Structured Query Language) è il linguaggio di riferimento per le basi di dati

Dettagli

SQL /10/2016 Basi di dati - SQL 1

SQL /10/2016 Basi di dati - SQL 1 SQL 24-27/10/2016 Basi di dati - SQL 1 Esercitazioni pratiche Per SQL è possibile (e fondamentale) svolgere esercitazioni pratiche Verranno anche richieste copme condizione per svolgere le prove parziali

Dettagli

Corso di. Basi di Dati I. 7. Esercitazioni in SQL: Definizione e manipolazione dei dati

Corso di. Basi di Dati I. 7. Esercitazioni in SQL: Definizione e manipolazione dei dati Corso di Basi di Dati 7. Esercitazioni in SQL: Definizione e manipolazione dei dati A.A. 2016 2017 Collegarsi a MySQL, caricare e salvare basi di dati Per collegarsi a mysql, aprire un terminale e inserire

Dettagli

Corso di. Basi di Dati I. 7. Esercitazioni in SQL: Definizione e manipolazione dei dati

Corso di. Basi di Dati I. 7. Esercitazioni in SQL: Definizione e manipolazione dei dati Corso di Basi di Dati 7. Esercitazioni in SQL: Definizione e manipolazione dei dati A.A. 2016 2017 Collegarsi a MySQL, caricare e salvare basi di dati Per collegarsi a mysql, aprire un terminale e inserire

Dettagli

Corso di. Basi di Dati I. 11. Esercitazioni in SQL: Altri esercizi

Corso di. Basi di Dati I. 11. Esercitazioni in SQL: Altri esercizi Corso di Basi di Dati 11. Esercitazioni in SQL: Altri esercizi A.A. 2016 2017 Esempio: consideriamo le seguenti tabelle Articoli(Id, Nome, Colore) Fornitori(Id, Nome, Indirizzo) Catalogo(Articolo, Fornitore,

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL SQL originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia

Dettagli

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati Corso di Laura in Informatica Umanistica Basi di Dati Corso di Laura in Informatica Umanistica Appello del 28/06/2010 Parte 1: Algebra Relazionale e linguaggio SQL Docente: Giuseppe Amato Sia dato il seguente schema di base di dati per la gestione

Dettagli

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati

Structured. Language. Basi di Dati. Introduzione. DDL: Data Definition Language. Tipi di dato. Query. Modifica dei Dati Basi di Dati Matteo Longhi Structured Query Language Introduzione Standard creato nel 1976 da IBM Aggiornato (versione 2 nel 1992 (ANSI X3.135 e ISO 9075 Consente di: DDL: definire la struttura del DB

Dettagli

SQL-DDL. Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste

SQL-DDL. Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste Basi di Dati Prof. Alfredo Cuzzocrea Università degli Studi di Trieste SQL-DDL Credits to: Prof. P. Atzeni UniRoma3 Prof. S. Ceri PoliMI Prof. S. Paraboschi UniBG Prof. R. Torlone UniRoma3 SQL originariamente

Dettagli

Principi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL

Principi di Progettazione del Software a.a Il linguaggio SQL. Il Linguaggio SQL Principi di Progettazione del Software a.a. 2017-2018 Ing. Università del Salento Il Linguaggio SQL Due componenti principali: Ø DDL (Data Definition Language) Contiene i costrutti necessari per la creazione/modifica

Dettagli

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 1 OTTOBRE 2015 Tempo: 2h30m

Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 1 OTTOBRE 2015 Tempo: 2h30m Basi di Dati 1 Prof. L. Tanca e F. A. Schreiber APPELLO DEL 1 OTTOBRE 2015 Tempo: 2h30m Si consideri il seguente schema di base di dati, che vuole memorizzare informazioni relative ai viaggi di lavoro

Dettagli

Structured Query Language

Structured Query Language IL LINGUAGGIO SQL Structured Query Language Contiene sia il DDL sia il DML, quindi consente di: Definire e creare il database Effettuare l inserimento, la cancellazione, l aggiornamento dei record di un

Dettagli

Principi di Progettazione del Software a.a Il linguaggio SQL. Prof. Luca Mainetti Università del Salento

Principi di Progettazione del Software a.a Il linguaggio SQL. Prof. Luca Mainetti Università del Salento Principi di Progettazione del Software a.a. 2016-2017 Prof. Università del Salento Linguaggi per DBMS Il modello relazionale definisce i concetti generali ed i vincoli per modellare e strutturare i dati

Dettagli

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 : SQL Operazioni di aggiornamento operazioni di inserimento: insert eliminazione: delete modifica: update di una o più ennuple di una

Dettagli

Principi di Progettazione del Software a.a Il linguaggio SQL. Linguaggi per DBMS

Principi di Progettazione del Software a.a Il linguaggio SQL. Linguaggi per DBMS Principi di Progettazione del Software a.a. 2017-2018 Ing. Università del Salento Linguaggi per DBMS Il modello relazionale definisce i concetti generali ed i vincoli per modellare e strutturare i dati

Dettagli

Esercitazione 4 SQL.

Esercitazione 4 SQL. Esercitazione 4 SQL foglia@iet.unipi.it DB Riferimento Il database di riferimento è il database UNIPI, creare una nuova istanza di database sul server e caricare i dati CREATE TABLE 1. Creare una tabella

Dettagli

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 6 MARZO 2015 Tempo: 2h30m

Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 6 MARZO 2015 Tempo: 2h30m Basi di Dati Prof. L. Tanca e F. A. Schreiber APPELLO DEL 6 MARZO 2015 Tempo: 2h30m Si consideri il seguente schema di base di dati, che vuole memorizzare alcune informazioni relative a Twitter. TWEET

Dettagli

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null Capitolo 4 Esercizio 4.1 Ordinare i seguenti domini in base al valore massimo rappresentable, supponendo che integer abbia una rappresentazione a 32 bit e smallint a 16 bit: numeric(12,4), decimal(10),

Dettagli

Informatica documentale Laurea in Scienze della Comunicazione Prova scritta del 25 giugno Cognome e nome: Matricola:

Informatica documentale Laurea in Scienze della Comunicazione Prova scritta del 25 giugno Cognome e nome: Matricola: Informatica documentale Laurea in Scienze della Comunicazione Prova scritta del 25 giugno 2012 Cognome e nome: Matricola: Parte prima Domanda 1 Domanda 2 Domanda 3 Totale Istruzioni: È vietato portare

Dettagli

OBIETTIVI DELL'ESERCITAZIONE

OBIETTIVI DELL'ESERCITAZIONE Laurea in Ingegneria Informatica - Università di Roma "La Sapienza" Corso di Basi di Dati - A.A. 2005/2006 Esercitazione su SQL Giuseppe De Giacomo Domenico Lembo OBIETTIVI DELL'ESERCITAZIONE Creare schema

Dettagli

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati Corso di Laura in Informatica Umanistica Basi di Dati Corso di Laura in Informatica Umanistica Appello del 26/07/2010 Parte 1: Algebra Relazionale e linguaggio SQL Docente: Giuseppe Amato Sia dato il seguente schema di base di dati per la gestione

Dettagli

ESERCIZI SQL. Esercizio 1

ESERCIZI SQL. Esercizio 1 ESERCIZI SQL 2 Esercizio 1 3 Esercizio 1 4 Esercizio 1 Si specifichino le seguenti interrogazioni SQL sulla base di dati relazionale AZIENDA. Si mostri il risultato di ciascuna interrogazione. 1. Si restituisca

Dettagli

ESERCITAZIONE: AZIENDA

ESERCITAZIONE: AZIENDA ESERCITAZIONE: AZIENDA Homework 24 ottobre 2002 Emanuel Weitschek emanuel@dia.uniroma3.it Prerequisiti (software) PostgreSQL pgadmin Driver JDBC Ambito Si consideri una base di dati che contiene informazioni

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio SQL è

Dettagli

8 SQL : Check, Asserzioni,Viste

8 SQL : Check, Asserzioni,Viste Corso di Laurea in Ingegneria Gestionale SAPIENZA Università di Roma Esercitazioni del corso di Basi di Dati Prof.ssa Catarci e Prof.ssa Scannapieco Anno Accademico 2011/2012 8 SQL : Check, Asserzioni,Viste

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2017/2018 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2017-18.htm Prof.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

PROGETTAZIONE DI DATABASE Linguaggio SQL

PROGETTAZIONE DI DATABASE Linguaggio SQL PROGETTAZIONE DI DATABASE Linguaggio SQL Modello Concettuale (Modellazione del mondo reale) Modello Logico (Definizione del tipo e del formato dei dati) Modello Fisico (Implementazione fisica su supporti

Dettagli

Manuale SQL. Manuale SQL - 1 -

Manuale SQL. Manuale SQL - 1 - Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,

Dettagli

SQL: "storia" 31/05/2006 2

SQL: storia 31/05/2006 2 SQL originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali, non i dettagli

Dettagli

Corso di Basi di Dati

Corso di Basi di Dati Corso di Laurea in Ingegneria Gestionale Sapienza - Università di Roma Corso di Basi di Dati A.A. 2016/2017 7 SQL : Check, Asserzioni,Viste Tiziana Catarci Ultimo aggiornamento : 22/02/2017 Costrutti Avanzati

Dettagli

Interpretazione delle query nidificate

Interpretazione delle query nidificate Interpretazione delle query nidificate Per analizzare il risultato di una interrogazione nidificata si può supporre di valutare prima il risultato dell interrogazione nidificata (query interna) per poi

Dettagli

Fondamenti di Informatica A. A / 1 9

Fondamenti di Informatica A. A / 1 9 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2 0 1 8 / 1 9 Concetti Introduttivi 1/2 SQL (Structured Query Language) permette di manipolare i dati, interrogare un database relazionale e modellarne

Dettagli

SQL e algebra relazionale

SQL e algebra relazionale SQL e algebra relazionale Il linguaggio SQL consente una maggiore espressività dell algebra relazionale grazie a costrutti che permettono: di definire join più sofisticati di ordinare le righe dei risultati

Dettagli

Laboratorio di Basi di Dati

Laboratorio di Basi di Dati Laboratorio di Basi di Dati Esercitazione PostgreSQL Dopo aver lanciato il client grafico pgadmin III di PostgreSQL svolgere le operazioni descritte nel seguito, tenendo presenti i suggerimenti forniti

Dettagli

SQL: DDL, VI, Aggiornamenti e Viste

SQL: DDL, VI, Aggiornamenti e Viste SQL: DDL, VI, Aggiornamenti e Viste 1 SQL è più di un semplice linguaggio di interrogazione v Linguaggio di definizione dati (Data-definition language, DDL): Crea/distrugge/modifica relazioni e viste Definisce

Dettagli

Prova Scritta di Basi di Dati

Prova Scritta di Basi di Dati Prova Scritta di Basi di Dati 1 Luglio 2008 COGNOME: NOME: MATRICOLA: Si prega di risolvere gli esercizi direttamente sui fogli del testo, negli spazi indicati. Usare il foglio protocollo solo per la brutta

Dettagli

ESAME di INFORMATICA e ARCHIVIAZIONE

ESAME di INFORMATICA e ARCHIVIAZIONE UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME di INFORMATICA e ARCHIVIAZIONE 8 settembre 2011 1 Progettazione

Dettagli

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi. Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi. Cognome: Nome: Matricola: Domanda 1 (15%) Considerare la base di dati relazionale contenente le seguenti relazioni:

Dettagli

ESERCITAZIONE: Fornitore-Fornisce-Articolo

ESERCITAZIONE: Fornitore-Fornisce-Articolo ESERCITAZIONE: Fornitore--Articolo PROGETTAZIONE CONCETTUALE Sia dato il diagramma ER rappresentativo di una certa realtà di interesse Cognome CodF Nome DataN CodA Descrizione Prezzo Fornitore N N E Fornito

Dettagli

SQL. Lezione 1. Docente: Alberto Belussi

SQL. Lezione 1. Docente: Alberto Belussi LaboratoriodiBasidiDatieWeb Docente: Alberto Belussi Lezione 1 SQL Structured Query Language SQL è stato definito nel 1973 ed è oggi il linguaggio più diffuso per i DBMS relazionali Il linguaggio SQL è

Dettagli

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad una piattaforma di gestione di gare podistiche:

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad una piattaforma di gestione di gare podistiche: NOME COGNOME MATRICOLA ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad una piattaforma di gestione di gare podistiche: MARATONETA(Nome, Nazione, Età)

Dettagli

Esercizio 4.1. Soluzione:

Esercizio 4.1. Soluzione: Capitolo 4 Esercizio 4.1 Ordinare i seguenti domini in base al valore massimo rappresentable, supponendo che integer abbia una rappresentazione a 32 bit e smallint a 16 bit: numeric(12,4), decimal(10),

Dettagli

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo. PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,

Dettagli

SQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati

SQL. SQL: una visione panoramica. SQL: storia Definizione dei dati SQL SQL: una visione panoramica I lucidi presentati sono liberamente ispirati al contenuto del Capitolo 4 del libro Atzeni, Ceri, Paraboschi, Torlone Basi di dati - McGraw-Hill, 1999 Structured Query Language

Dettagli

σ data 15/12/2013 data 20/12/2014

σ data 15/12/2013 data 20/12/2014 Dato lo schema: Basi di Dati Prof. Alfredo Pulvirenti A.A. 2014-2015 Prova in itinere 18 dicembre 2014 (A) EVENTO(id, titolo, data, categoria, costo_partecipazione, idcatering) ORGANIZZATORE(id,idevento)

Dettagli

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

Viste come strumenti di programmazione

Viste come strumenti di programmazione Viste come strumenti di programmazione Trovare gli impiegati che hanno lo stesso capo di Rossi Senza vista: PROJ Impiegato ((Afferenza JOIN Direzione) JOIN REN ImpR,RepR Impiegato,Reparto ( SEL Impiegato='Rossi'

Dettagli

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: BASI DI DATI INGEGNERIA INFORMATICA PROVA PRATICA 25 SETTEMBRE 2014 SOLUZIONI Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: PAZIENTE(CodFiscale, Cognome,

Dettagli

Primo Compitino di Basi di Dati

Primo Compitino di Basi di Dati Primo Compitino di Basi di Dati 19 Aprile 2004 Svolgere gli esercizi direttamente sul foglio del testo Usare fogli aggiuntivi solo in mancanza di spazio. NOME: COGNOME: MATRICOLA: Esercizio Punti previsti

Dettagli

Il linguaggio SQL: DDL di base

Il linguaggio SQL: DDL di base Il linguaggio SQL: DDL di base Sistemi Informativi T Versione elettronica: 04.1.SQL.DDLbase.pdf SQL: caratteristiche generali SQL (Structured Query Language) è il linguaggio standard de facto per DBMS

Dettagli

SQl come DML. Angelo Chianese,, Vincenzo Moscato, Antonio Picariello,, Lucio Sansone

SQl come DML. Angelo Chianese,, Vincenzo Moscato, Antonio Picariello,, Lucio Sansone SQl come DML Angelo Chianese,, Vincenzo Moscato, Antonio Picariello,, Lucio Sansone Basi di dati per la gestione dell'informazione 2/ed McGraw-Hill Capitolo 5 Appunti dalle lezioni SQL come DDL Sistemi

Dettagli

Basi di dati: appello 28/02/06

Basi di dati: appello 28/02/06 Basi di dati: appello 28/02/06 Si consideri il seguente schema di base di dati che vuole tenere traccia della programmazione delle radio italiane: EMITTENTE (id, nome, frequenza, città.) SCALETTA (id_radio,

Dettagli

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto SQL Università degli Studi di Salerno Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto A.A. 2005/2006 Select La forma di select cui siamo arrivati

Dettagli

ESAME di INFORMATICA e ARCHIVIAZIONE

ESAME di INFORMATICA e ARCHIVIAZIONE UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME di INFORMATICA e ARCHIVIAZIONE 20 luglio 2011 1 Progettazione

Dettagli

Vincoli di integrità generici: check

Vincoli di integrità generici: check Lezione 5 Vincoli di integrità e Viste 1 Vincoli di integrità generici: check La clausola check permette di restringere i domini e specificare predicati che devono essere soddisfatti ogni volta che un

Dettagli

Appunti dalle lezioni. Sistemi informativi e basi di dati. Il modello relazionale. SQL come DCL Utilizzo di un DBMS Reale.

Appunti dalle lezioni. Sistemi informativi e basi di dati. Il modello relazionale. SQL come DCL Utilizzo di un DBMS Reale. SQl come DDL Angelo Chianese,, Vincenzo Moscato, Antonio Picariello,, Lucio Sansone Basi di dati per la gestione dell'informazione 2/ed McGraw-Hill Capitolo 2 Appunti dalle lezioni SQL come DDL Sistemi

Dettagli

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: storia SQL SQL: concetti base originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali,

Dettagli

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: BASI DI DATI ING. INFORMATICA PROVA PRATICA 10 LUGLIO 2013 SOLUZIONI Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema: PAZIENTE(CodFiscale, Cognome, Nome,

Dettagli

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di un sistema di gestione di campionati di basket.

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di un sistema di gestione di campionati di basket. NOME COGNOME MATRICOLA ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella i dati di un sistema di gestione di campionati di basket. GIOCATORE (Codice, Nome, Cognome, AnnoNascita) CONTRATTO(Id,

Dettagli

A.A. 2018/2019. Introduzione a SQL FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

A.A. 2018/2019. Introduzione a SQL FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante A.A. 2018/2019 Introduzione a SQL Docente Prof. Raffaele Pizzolante FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE Le Origini di SQL Principali Versioni Anni 70 1986 SEQUEL Structured English QUEry Language

Dettagli

ESERCITAZIONI ACCESS

ESERCITAZIONI ACCESS ESERCITAZIONI ACCESS MS Access 2000 Struttura di riferimento: Studente (Matricola, Cognome, Nome) Esame (Matricola, Materia, Voto, Data) CREARE LE TABELLE IN SQL: Create table STUDENTE ( matricola char(6)

Dettagli

Dichiarazione degli schemi in SQL DDL 1

Dichiarazione degli schemi in SQL DDL 1 Dichiarazione degli schemi in SQL DDL 1 Storia di SQL Definito nell'ambito del progetto SYSTEM R (IBM S. JOSE) nel 1976 Nome originario: SEQUEL Adottato progressivamente da tutti i sistemi commerciali

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Matricola Nome Cog Firma Es.1 Es.2 Es.3 Es.4 Es.5 Tot. Esercizio 1 (6 punti) Data la seguente struttura dati: typedef struct{ int elementi[5][5]; int numerorighe; int numerocolonne; Matrice; Fondamenti

Dettagli

Corso di Informatica Linguaggio SQL prima parte

Corso di Informatica Linguaggio SQL prima parte Corso di Informatica Linguaggio SQL prima parte Anno Accademico 2018-2019 Linguaggio SQL (Structured Query Language) 2 Il linguaggio SQL Un linguaggio per DBMS (DataBase Management System) deve permettere

Dettagli

Basi di Dati. Esercitazione SQL. 18 maggio 2007

Basi di Dati. Esercitazione SQL. 18 maggio 2007 Basi di Dati Esercitazione SQL 18 maggio 2007 1 Considerando la seguente base di dati: Fornitori (CodiceFornitore, Nome, Indirizzo, Città) Prodotti (CodiceProdotto, Nome, Marca, Modello) Catalogo (CodiceFornitore,

Dettagli

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

Versione 1.0. (DB Musei)

Versione 1.0. (DB Musei) Appunti di Informatica SQL for COOL PEOPLE Versione 1.0 Lezione 05 DB Musei) prof. Michele Salvemini 2015/2016 Sommario Impostazione della lezione... 3 pre-requisiti:... 3 Argomenti Trattati... 3 Vincoli...

Dettagli

2011 Politecnico di Torino 1

2011 Politecnico di Torino 1 SQL per le applicazioni Esercitazione PHP e MySQL Svolgimento D B M G Passi di risoluzione creazione e popolamento della base di dati Creazione di un script SQL Passo 2 creazione di una query d interrogazione

Dettagli

Check, esempio. Vincoli di integrità generici. Asserzioni. Asserzioni

Check, esempio. Vincoli di integrità generici. Asserzioni. Asserzioni Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste l istruzione check (Condizione) La condizione specificata

Dettagli

Basi di Dati. Dettagli e Approfondimenti SQL-92 25/02/2004. Dettagli e Approfondimenti. DDL: Tabelle. DML: Aggiornamenti.

Basi di Dati. Dettagli e Approfondimenti SQL-92 25/02/2004. Dettagli e Approfondimenti. DDL: Tabelle. DML: Aggiornamenti. Basi di Dati SQL-92 Dettagli e Approfondimenti SQL-92 >> Sommario Dettagli e Approfondimenti DDL: Tabelle valori di default vincoli di riferimento modifiche allo schema DDL: Viste definizione e uso DDL:

Dettagli

Interrogazioni con ANY e ALL. Operatori ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL

Interrogazioni con ANY e ALL. Operatori ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL Interrogazioni con ANY e ALL Operatori ANY e ALL Sintassi: WHERE Attributo OperatoreConfronto [ANY ALL] (SelectAttributoSingolo) ANY: la riga soddisfa la condizione se risulta vero il confronto con almeno

Dettagli