Basi di Dati 1 Esercitazione 4 -...

Post on 18-Feb-2019

223 views 4 download

transcript

Matteo Picozzi http://home.dei.polimi.it/picozzi

{picozzi@elet.polimi.it}

SQL DDL e vincoli

Basi di Dati 1 Esercitazione 4

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

Esercizio 1 - dal TdE 07/09/2006���3

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

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

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

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

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

Esercizio 2 - dal TdE 14/07/2006���8

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)

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

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

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

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