sql - politecnico di milanohome.deib.polimi.it/picozzi/teaching/20122013 basididati... ·...

12
Matteo Picozzi http://home.dei.polimi.it/picozzi {[email protected] } SQL DDL e vincoli Basi di Dati 1 Esercitazione 4 27/11/2012

Upload: others

Post on 15-Jan-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SQL - Politecnico di Milanohome.deib.polimi.it/picozzi/teaching/20122013 basididati... · 2012-11-27 · Esercizio1.2-dalTdE07/09/2006 B.SQL 2. DDL Considerando lo schema di base

Matteo Picozzihttp://home.dei.polimi.it/picozzi

{[email protected]}

SQLDDL e vincoli

Basi di Dati 1Esercitazione 427/11/2012

Page 2: SQL - Politecnico di Milanohome.deib.polimi.it/picozzi/teaching/20122013 basididati... · 2012-11-27 · Esercizio1.2-dalTdE07/09/2006 B.SQL 2. DDL Considerando lo schema di base

DDL e vincoli

• intra-relazionali- not null- unique- primary key- check

• inter-relazionali- check- references- foreign key

2

create table NomeTabella (NomeAttributo Dominio [ ValoreDiDefault ] [ Constraints ]{, NomeAttributo Dominio [ ValoreDiDefault ] [ Constraints ] }

[ Constraints ])

Page 3: SQL - Politecnico di Milanohome.deib.polimi.it/picozzi/teaching/20122013 basididati... · 2012-11-27 · Esercizio1.2-dalTdE07/09/2006 B.SQL 2. DDL Considerando lo schema di base

Esercizio 1 - dal TdE 07/09/20063

Si consideri il seguente schema di base di dati che vuole tenere traccia dei dati di un campionato di pallacanestro (non vengono memorizzate informazioni di tipo storico):

SQUADRA(NomeSquadra, Città, Logo, NomeAllenatore, CognomeAllenatore)PARTITA(Giornata, SquadraCasa, SquadraOspite, PuntiCasa, PuntiOspite)RISULTATO(Giornata, Squadra, Punti)GIOCATORE(NomeGiocatore, CognomeGiocatore, NomeSquadra, Ruolo, Nazionalità)

Page 4: SQL - Politecnico di Milanohome.deib.polimi.it/picozzi/teaching/20122013 basididati... · 2012-11-27 · Esercizio1.2-dalTdE07/09/2006 B.SQL 2. DDL Considerando lo schema di base

Esercizio 1 - dal TdE 07/09/2006

A.Linguaggi formaliEsprimere in algebra (ottimizzata) e calcolo relazionale la seguente query:

Trovare i nomi delle squadre e il nome e cognome dei rispettivi allenatori di tutte le squadre che hanno ottenuto almeno due vittorie fuori casa e non hanno giocatori di nazionalità inglese.

4

SQUADRA(NomeSquadra, Città, Logo, NomeAllenatore, CognomeAllenatore)PARTITA(Giornata, SquadraCasa, SquadraOspite, PuntiCasa, PuntiOspite)RISULTATO(Giornata, Squadra, Punti)GIOCATORE(NomeGiocatore, CognomeGiocatore, NomeSquadra, Ruolo, Nazionalità)

Non svolto ad

esercitazion

e

Page 5: SQL - Politecnico di Milanohome.deib.polimi.it/picozzi/teaching/20122013 basididati... · 2012-11-27 · Esercizio1.2-dalTdE07/09/2006 B.SQL 2. DDL Considerando lo schema di base

Esercizio 1.1 - dal TdE 07/09/2006

B.SQL1. Interrogazioni in SQL

a. Trovare la classifica attuale del campionato (visualizzando per ogni squadra il nome, le informazioni dell’allenatore e il punteggio).

b. Trovare le squadre che hanno il maggior numero di vittorie in casa.

5

SQUADRA(NomeSquadra, Città, Logo, NomeAllenatore, CognomeAllenatore)PARTITA(Giornata, SquadraCasa, SquadraOspite, PuntiCasa, PuntiOspite)RISULTATO(Giornata, Squadra, Punti)GIOCATORE(NomeGiocatore, CognomeGiocatore, NomeSquadra, Ruolo, Nazionalità)

Page 6: SQL - Politecnico di Milanohome.deib.polimi.it/picozzi/teaching/20122013 basididati... · 2012-11-27 · Esercizio1.2-dalTdE07/09/2006 B.SQL 2. DDL Considerando lo schema di base

Esercizio 1.2 - dal TdE 07/09/2006

B.SQL2. DDL

Considerando lo schema di base di dati in testa al tema d’esame, specificare in SQL la creazione delle tabelle SQUADRA e PARTITA, definendo i vincoli di tupla e di dominio ritenuti opportuni ed esprimendo eventuali vincoli di integrità referenziale relative a tutte le tabelle dello schema.

6

SQUADRA(NomeSquadra, Città, Logo, NomeAllenatore, CognomeAllenatore)PARTITA(Giornata, SquadraCasa, SquadraOspite, PuntiCasa, PuntiOspite)RISULTATO(Giornata, Squadra, Punti)GIOCATORE(NomeGiocatore, CognomeGiocatore, NomeSquadra, Ruolo, Nazionalità)

Page 7: SQL - Politecnico di Milanohome.deib.polimi.it/picozzi/teaching/20122013 basididati... · 2012-11-27 · Esercizio1.2-dalTdE07/09/2006 B.SQL 2. DDL Considerando lo schema di base

Esercizio 1.3 - dal TdE 07/09/2006

B.SQL3. Espressione di vincoli

Considerando lo schema di base di dati in testa al tema d’esame, specificare in SQL il vincolo che impone la presenza di almeno 5 giocatori per ogni squadra.

7

SQUADRA(NomeSquadra, Città, Logo, NomeAllenatore, CognomeAllenatore)PARTITA(Giornata, SquadraCasa, SquadraOspite, PuntiCasa, PuntiOspite)RISULTATO(Giornata, Squadra, Punti)GIOCATORE(NomeGiocatore, CognomeGiocatore, NomeSquadra, Ruolo, Nazionalità)

Page 8: SQL - Politecnico di Milanohome.deib.polimi.it/picozzi/teaching/20122013 basididati... · 2012-11-27 · Esercizio1.2-dalTdE07/09/2006 B.SQL 2. DDL Considerando lo schema di base

Esercizio 2 - dal TdE 14/07/20068

Si consideri il seguente schema di base di dati che vuole tenere traccia dell’attività di un’agenzia che affitta appartamenti per le vacanze nella città di Varazze.

CLIENTE(CodiceFiscale, Cognome, Nome, Residenza)APPARTAMENTO(CodAppartamento, Indirizzo, NumEdificio, Locali, Metratura, Piano)PALAZZO(Indirizzo, NumEdificio, NumPiani, NomeAmministratore, CognomeAmministratore)AFFITTO(CodiceCliente, CodAppartamento, DataInizio, DataFine, Prezzo)

Page 9: SQL - Politecnico di Milanohome.deib.polimi.it/picozzi/teaching/20122013 basididati... · 2012-11-27 · Esercizio1.2-dalTdE07/09/2006 B.SQL 2. DDL Considerando lo schema di base

A.Linguaggi formaliEsprimere in algebra (ottimizzata) e calcolo relazionale la seguente query:

Trovare nomi e cognomi dei clienti che hanno effettuato almeno due affitti di appartamenti con più di 2 locali o che hanno affittato nell’anno 2005 almeno un appartamento amministrato dal signor Giuseppe Bianchi.

9

CLIENTE(CodiceFiscale, Cognome, Nome, Residenza)APPARTAMENTO(CodAppartamento, Indirizzo, NumEdificio, Locali, Metratura, Piano)PALAZZO(Indirizzo, NumEdificio, NumPiani, NomeAmministratore, CognomeAmministratore)AFFITTO(CodiceCliente, CodAppartamento, DataInizio, DataFine, Prezzo)

Non svolto ad

esercitazion

e

Esercizio 2 - dal TdE 14/07/2006

Page 10: SQL - Politecnico di Milanohome.deib.polimi.it/picozzi/teaching/20122013 basididati... · 2012-11-27 · Esercizio1.2-dalTdE07/09/2006 B.SQL 2. DDL Considerando lo schema di base

B.SQL1. Interrogazioni in SQL

a. Trovare i nomi e i cognomi degli amministratori che hanno in gestione almeno 5 appartamenti più grandi di 100m2, ognuno dei quali è stato affittato almeno una volta.

b. Trovare i nomi e i cognomi dei clienti che hanno effettuato il minor numero di affitti di appartamenti di 3 locali nell’anno 2004.

10

CLIENTE(CodiceFiscale, Cognome, Nome, Residenza)APPARTAMENTO(CodAppartamento, Indirizzo, NumEdificio, Locali, Metratura, Piano)PALAZZO(Indirizzo, NumEdificio, NumPiani, NomeAmministratore, CognomeAmministratore)AFFITTO(CodiceCliente, CodAppartamento, DataInizio, DataFine, Prezzo)

Esercizio 2.1 - dal TdE 14/07/2006

Page 11: SQL - Politecnico di Milanohome.deib.polimi.it/picozzi/teaching/20122013 basididati... · 2012-11-27 · Esercizio1.2-dalTdE07/09/2006 B.SQL 2. DDL Considerando lo schema di base

B.SQL2. DDL

Considerando lo schema di base di dati in testa al tema d’esame, specificare in SQL la creazione delle tabelle APPARTAMENTO e PALAZZO, definendo i vincoli di tupla e di dominio ritenuti opportuni ed esprimendo eventuali vincoli di integrità referenziale relative a tutte le tabelle dello schema.

11

CLIENTE(CodiceFiscale, Cognome, Nome, Residenza)APPARTAMENTO(CodAppartamento, Indirizzo, NumEdificio, Locali, Metratura, Piano)PALAZZO(Indirizzo, NumEdificio, NumPiani, NomeAmministratore, CognomeAmministratore)AFFITTO(CodiceCliente, CodAppartamento, DataInizio, DataFine, Prezzo)

Esercizio 2.2 - dal TdE 14/07/2006

Page 12: SQL - Politecnico di Milanohome.deib.polimi.it/picozzi/teaching/20122013 basididati... · 2012-11-27 · Esercizio1.2-dalTdE07/09/2006 B.SQL 2. DDL Considerando lo schema di base

B.SQL3. Espressione di vincoli

Considerando lo schema di base di dati in testa al tema d’esame, specificare in SQL il vincolo che impone un prezzo di affitto superiore a 500€ per affitti di durata maggiore di 5 giorni per ogni tipologia di appartamento.

12

CLIENTE(CodiceFiscale, Cognome, Nome, Residenza)APPARTAMENTO(CodAppartamento, Indirizzo, NumEdificio, Locali, Metratura, Piano)PALAZZO(Indirizzo, NumEdificio, NumPiani, NomeAmministratore, CognomeAmministratore)AFFITTO(CodiceCliente, CodAppartamento, DataInizio, DataFine, Prezzo)

Esercizio 2.3 - dal TdE 14/07/2006