BASE DI DATI. Esercizio: Campionato corse Progettazione concettuale Progettazione logica. Informatica Umanistica Università di Pisa

Documenti analoghi
BASE DI DATI. Esercizio: Agenzia pubblicitaria Progettazione concettuale Progettazione logica. Informatica Umanistica Università di Pisa

BASE DI DATI. Esercizi Progettazione concettuale Progettazione logica. Informatica Umanistica Università di Pisa

BASE DI DATI. Esercizio: FACEBOOK Progettazione concettuale Progettazione logica. Informatica Umanistica Università di Pisa

Basi di Dati Corso di Laura in Informatica Umanistica

Basi di Dati. Progettazione Logica

Basi di Dati. La Progettazione Logica. Sommario. Il Processo di Progetto della BD. Algoritmo di Progettazione Logica

Concettuale. Giuseppe Amato

Basi di Dati Corso di Laura in Informatica Umanistica

Versione 1.0. (Iniziamo ad interrogare il DB)

ESAME di INFORMATICA e ARCHIVIAZIONE

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

ESAME di INFORMATICA e ARCHIVIAZIONE

Basi di dati: appello 14/07/06

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

Basi di dati: appello 04/07/06

Verifica di Informatica. Cognome e Nome: Classe 5ª Ci, Data

BASE DI DATI. Esercitazione: Campionato italiano 2015/2016 Raggruppamenti Nidificazione. Informatica Umanistica Università di Pisa

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

BASE DI DATI. Esercitazione: Campionato italiano 2015/2016 Raggruppamenti Nidificazione. Informatica Umanistica Università di Pisa

Basi di Dati. S Q L Lezione 4

Primo Compitino di Basi di Dati

Esercitazione 7 Correzione della prova di autovalutazione

Basi di Dati - Informatica umanistica Esercitazione (Lab)

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

Sia dato il seguente schema di base di dati:

Basi di dati I Prova di autovalutazione 1 novembre 2016 Soluzioni

SQL - Structured Query Language

Basi di dati I 6 settembre 2018 Tempo a disposizione: un ora e 45 minuti.

Laboratorio di Basi di Dati prova totale 20 febbraio 2013

Basi di dati I 11 luglio 2014 Tempo a disposizione: un ora e quarantacinque minuti.

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento

Interrogazioni nidificate

Basi di Dati e Sistemi Informativi

Interrogazioni nidificate

Versione 1.0. (DB Musei)

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

Esercizio con attributo cross-dimensionale - transazionale

Esercitazione 3 SQL 2

Basi di dati Corso di Laurea in Informatica Umanistica

LA PROGETTAZIONE LOGICA

Esame di Basi di Dati, SOLUZIONE APPELLO 09/06/2009

PRODOTTO CARTESIANO Caso Generale

Basi di dati I 10 luglio 2017 Tempo a disposizione: un ora e 30 minuti.

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

Basi di dati: appello 07/02/06

Vincoli di integrità generici: check

Versione 1.0. (DB Visite Specialistiche)

Prova Scritta di Basi di Dati

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

Basi di dati I 19 settembre 2016 Tempo a disposizione: un ora e 45 minuti.

Select Anagrafiche, Movimenti From Descrizione? Where Anagrafiche.Codice=Codice And Cognome=' Bianchi ';

ESERCIZI SQL. Esercizio 1

Il linguaggio SQL: le viste

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

B a s i d i D a t i ( M o d u l o T e o r i a ) P r o v a s c r i t t a

IPOTESI con riferimento al testo proposto come simulazione in preparazione all Esame di Stato 2015

SQL - Structured Query Language

Lezioni di Laboratorio sui Data Base

Basi di Dati: Corso di laboratorio

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

Basi di Dati: Elementi

QL (Query Language) Alice Pavarani

Prova Scritta di Basi di Dati

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query:

Interpretazione delle query nidificate

Basi di dati I Prova di autovalutazione 30 ottobre 2014

Progettazione concettuale usando il modello Entità-Relazione (ER)

Esame di Basi di Dati SOLUZIONE APPELLO 14/06/2011

Basi di Dati. S Q L Lezione 3

Persona(CodiceFiscale, Cognome, Nome, DataDiNascita, LuogoDiNascita, Indirizzo)

SQL - Sottointerrogazioni correlate

Esercitazione 6 SQL 3

SQL. Argomenti della lezione. Join esplicito. Interrogazioni complesse in SQL join esplicito outer join operatori aggregati interrogazioni nidificate

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

SQL Laboratorio di Basi di Dati a.a. 2002/2003

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

Esercizio 5.1. Soluzione:

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

SQL: le funzioni di aggregazione

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

CORSO di INFORMATICA e ARCHIVIAZIONE

Basi di Dati. Esercitazione 2: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL

Structured Query Language

Estensioni del linguaggio SQL per interrogazioni OLAP

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

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

Esercitazione 3 SQL.

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

Il programma di oggi. Gli indici. Ottimizzazione. Metodi per la Gestione dei Dati (lezioni di laboratorio)

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

Corso sul linguaggio SQL

Laboratorio di Basi di Dati Esercizio 8.4/9.1

Basi di dati II, primo modulo Prova parziale 22 marzo 2010 Compito A

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

Esercitazione 3 SQL.

Basi di Dati. Concetti Avanzati

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

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

Transcript:

BASE DI DAI Esercizio: Campionato corse Progettazione concettuale Progettazione logica Informatica Umanistica Università di Pisa

Esercizio: campionato corse Si vuole costruire una base di dati che contenga le informazioni salienti sul campionato automobilistico dell anno in corso: I campionati sono caratterizzati sicuramente da un presidente e non necessariamente da un vicepresidente. I campionati si distinguono in Formula 1 e Formula 3. Dei campionati di Formula 1 bisogna specificare anche il bonus in denaro aggiuntivo per il primo classificato. le case automobilistiche possono partecipare (nell anno in corso) ad un solo campionato. le case automobilistiche sono caratterizzate dalla sigla (che è unica), dal nome, dalla nazione, dal punteggio accumulato nella classifica costruttori. Ad ogni casa automobilistica sono associati due piloti: il pilota primario e il pilota secondario; i piloti sono caratterizzati dal codice fiscale, dal nome, dalla nazione, dal punteggio accumulato nella classifica piloti; dei circuiti/gare del campionato occorre ricordare il luogo, la nazione, il nome della pista, la data. Per ogni gara bisogna tener conto dei piloti partecipanti e delle posizioni da questi conseguite. 11/12/2015 Progettazione: CampionatoCorse 2

Schema concettuale Un campionato si svolge in almeno una gara/circuito, mentre una gara/circuito può far riferimento a più campionati (ad es. alla Formula 1 e alla Formula 3). La data è relativa alla gara che si disputa per il campionato. Ad un campionato deve partecipare almeno una casa automobilistica, mente una casa automobilistica può partecipare ad un solo campionato nell anno in corso CodiceScuderia Sigla Circuiti/Gare Luogo Nazione NomePista Un pilota partecipa almeno ad una gara nel campionato in corso. Ad una gara deve partecipare almeno un pilota (o più piloti). Si_svolge FormulaUno DataDellaCorsa BonusPrimoClassificato Partecipano PosizioneConseguita Campionato Presidente Vicepresidente Formulare 1..1 Concorrere Completa/disgiunta Alternativa: Doppia associazione? 11/12/2015 Progettazione: CampionatoCorse PilotaPrimario Nome nazione PunteggioAccumulato 1..1 Associato Piloti CodiceFiscale Nome Cognome nazione PunteggioPilota Completa/disgiunta PilotaSecondario 3

Progettazione logica I passo: traduzione iniziale delle classi non coinvolte in gerarchie II passo: traduzione iniziale delle gerarchie III passo: traduzione degli attributi multivalore IV passo: traduzione delle associazioni molti a molti V passo: traduzione delle associazioni uno a molti VI passo: traduzione delle associazioni uno a uno VII passo: introduzione di eventuali ulteriori vincoli VIII passo: progettazione degli schemi esterni 11/12/2015 Progettazione: CampionatoCorse 4

I passo: traduzione iniziale delle classi non coinvolte in gerarchie e chiavi primarie CircuitiGare Circuiti/Gare Luogo Nazione NomePista NomePista VARCHAR(15) Nazione VARCHAR(16) Luogo VARCHAR(16) La sigla della casa poteva essere usata come chiave primaria poiché univoca. CodiceScuderia Sigla Nome nazione PunteggioAccumulato codicescuderia CHAR(3) Sigla VARCHAR(3) nazione VARCHAR(16) PunteggioAccumulato INEGER 11/12/2015 Progettazione: CampionatoCorse 5

II passo: traduzione iniziale delle gerarchie Circuiti/Gare Si_svolge Luogo Nazione NomePista DataDellaCorsa Campionato Presidente Concorrere Vicepresidente 1..1 Completa/disgiunta CodiceScuderia Sigla Nome nazione PunteggioAccumulato FormulaUno BonusPrimoClassificato Formulare re possibili strade: 1. radurre solo il padre della gerarchia (accorpare i figli nel padre) 2. tradurre solo i figli della gerarchia (accorpare il padre nei figli) 3. tradurre il padre e i figli collegandoli con chiavi esterne I Soluzione: Solo il padre. Non abbiamo associazioni che si riferiscono alle sottoclassi 11/12/2015 Progettazione: CampionatoCorse 6

II passo: traduzione iniziale delle gerarchie I Soluzione: Solo il padre Campionato Presidente Vicepresidente Completa/disgiunta FormulaUno Formulare BonusPrimoClassificato Campionato Presidente VARCHAR(16) VicePresident VARCHAR(16) ipo VARCHAR(10) BonusPrimoClassificato INEGER Il tipo di campionato (se Formula1 o Formula3) viene espressa dall attributo tipo. L attributo Bonus potrà avere valore nullo e ciò avviene quando si considera la Formula 3 11/12/2015 Progettazione: CampionatoCorse 7

II passo: traduzione iniziale delle gerarchie Circuiti/Gare Luogo Nazione NomePista PilotaPrimario Piloti CodiceFiscale Nome Cognome nazione PunteggioPilota Completa/disgiunta PilotaSecondario CodiceScuderia Sigla Nome nazione PunteggioAccumulato re possibili strade: 1. radurre solo il padre della gerarchia (accorpare i figli nel padre) 2. tradurre solo i figli della gerarchia (accorpare il padre nei figli) 3. tradurre il padre e i figli collegandoli con chiavi esterne I Soluzione: Solo il padre. Non abbiamo associazioni che si riferiscono alle sotto-classi. I figli non hanno attributi. 11/12/2015 Progettazione: CampionatoCorse 8

II passo: traduzione iniziale delle gerarchie I Soluzione: Solo il padre PilotaPrimario Piloti CodiceFiscale Nome Cognome nazione PunteggioPilota Completa/disgiunta PilotaSecondario Pilota Nome VARCHAR(16) Congnome VARCHAR(16) nazione VARCHAR(16) PunteggioPilota INEGER RuoloPilota INEGER Il ruolo del pilota (1 oppure 2) viene espressa dall attributo RuoloPilota. 11/12/2015 Progettazione: CampionatoCorse 9

II passo: traduzione iniziale delle gerarchie codicescuderia CHAR(3) Pilota Sigla VARCHAR(3) CircuitiGare NomePista VARCHAR(15) Nazione VARCHAR(16) Luogo VARCHAR(16) nazione VARCHAR(16) PunteggioAccumulato INEGER Campionato Presidente VARCHAR(16) Nome VARCHAR(16) Congnome VARCHAR(16) nazione VARCHAR(16) PunteggioPilota INEGER RuoloPilota INEGER VicePresident VARCHAR(16) ipo VARCHAR(10) BonusPrimoClassificato INEGER 11/12/2015 Progettazione: CampionatoCorse 10

III passo: traduzione degli attributi multivalore Nulla da fare!!! 11/12/2015 Progettazione: CampionatoCorse 11

IV passo: traduzione delle associazioni molti a molti Circuiti/Gare Luogo Nazione Si_svolge Campionato Presidente Vicepresidente NomePista DataDellaCorsa CircuitiGare Campionato NomePista VARCHAR(15) Nazione VARCHAR(16) Luogo VARCHAR(16) GareCampionato DataDellaCorsa DAE, FK, FK Presidente VARCHAR(16) VicePresident VARCHAR(16) ipo VARCHAR(10) BonusPrimoClassificato INEGER 11/12/2015 Progettazione: CampionatoCorse 12

IV passo: traduzione delle associazioni molti a molti Circuiti/Gare Luogo Nazione NomePista Partecipano PosizioneConseguita Piloti CodiceFiscale Nome Cognome nazione PunteggioPilota CircuitiGare NomePista VARCHAR(15) Nazione VARCHAR(16) Luogo VARCHAR(16) Partecipazione PosizioneConseguite INEGER, FK, FK Pilota Nome VARCHAR(16) Congnome VARCHAR(16) nazione VARCHAR(16) PunteggioPilota INEGER RuoloPilota INEGER 11/12/2015 Progettazione: CampionatoCorse 13

V passo: traduzione delle associazioni uno a molti Campionato Presidente Vicepresidente 1..1 Concorrere CodiceScuderia Sigla Nome nazione PunteggioAccumulato Campionato Presidente VARCHAR(16) VicePresident VARCHAR(16) ipo VARCHAR(10) BonusPrimoClassificato INEGER codicescuderia CHAR(3) Sigla VARCHAR(3) nazione VARCHAR(16) PunteggioAccumulato INEGER FK 11/12/2015 Progettazione: CampionatoCorse 14

V passo: traduzione delle associazioni uno a molti codicescuderia CHAR(3) Sigla VARCHAR(3) nazione VARCHAR(16) PunteggioAccumulato INEGER Pilota Nome VARCHAR(16) Congnome VARCHAR(16) nazione VARCHAR(16) PunteggioPilota INEGER RuoloPilota INEGER CodiceScuderia CHAR(3) FK CodiceScuderia Sigla Nome nazione PunteggioAccumulato 1..1 Piloti CodiceFiscale Nome Cognome nazione Associato PunteggioPilota 11/12/2015 Progettazione: CampionatoCorse 15

VII passo: introduzione di eventuali ulteriori vincoli: NO NULL e UNIQUE Campionato GareCampionato DataDellaCorsa DAE NO NULL CircuitiGare NomePista VARCHAR(15) NO NULL Nazione VARCHAR(16) NO NULL Luogo VARCHAR(16) NO NULL, FK, FK Presidente VARCHAR(16) NO NULL VicePresident VARCHAR(16) ipo VARCHAR(10) NO NULL BonusPrimoClassificato INEGER BonusPrimoClassificato E VicePresidente possono assumere valore NULLO Partecipazione PosizioneConseguite INEGER NO NULL, FK, FK codicescuderia CHAR(3) Sigla VARCHAR(3) NO NULL UNIQUE nazione VARCHAR(16) NO NULL PunteggioAccumulato INEGER NO NULL NO NULL Pilota Nome VARCHAR(16) NO NULL Cognome VARCHAR(16) NO NULL nazione VARCHAR(16) NO NULL PunteggioPilota INEGER NO NULL RuoloPilota INEGER NO NULL CodiceScuderia CHAR(3) NO NULL FK FK 11/12/2015 Progettazione: CampionatoCorse 16

VII passo: introduzione di eventuali ulteriori vincoli: CHECK Campionato Presidente VARCHAR(16) NO NULL VicePresident VARCHAR(16) ipo VARCHAR(10) NO NULL BonusPrimoClassificato INEGER CHECK (BonusPrimoClassificato IS NULL OR ipo = FormulaUno ) 11/12/2015 Progettazione: CampionatoCorse 17

QUERY 11/12/2015 Progettazione: CampionatoCorse 23

Schema concettuale codicescuderia CHAR(3) GareCampionato DataDellaCorsa DAE NO NULL CircuitiGare NomePista VARCHAR(15) NO NULL Nazione VARCHAR(16) NO NULL Luogo VARCHAR(16) NO NULL, FK, FK Campionato Presidente VARCHAR(16) NO NULL VicePresident VARCHAR(16) ipo VARCHAR(10) NO NULL BonusPrimoClassificato INEGER Partecipazione PosizioneConseguite INEGER NO NULL, FK, FK Sigla VARCHAR(3) NO NULL UNIQUE nazione VARCHAR(16) NO NULL PunteggioAccumulato INEGER NO NULL NO NULL Pilota Nome VARCHAR(16) NO NULL Cognome VARCHAR(16) NO NULL nazione VARCHAR(16) NO NULL PunteggioPilota INEGER NO NULL RuoloPilota INEGER NO NULL CodiceScuderia CHAR(3) NO NULL FK FK 11/12/2015 Progettazione: CampionatoCorse 24

Interrogazione 1 Partecipazione PosizioneConseguite INEGER NO NULL Elenco che riporta, per ciascun pilota, il numero di corse in cui si è piazzato sul podio. Visualizzare anche nome, cognome, nazione. Select PI.nome, PI.cognome, PI.nazione, PI.codiceFiscale, count(*) From Partecipazione AS PA JOIN Pilota AS PI ON PA.codiceFiscale=PI.codiceFiscale Where PA.partecipazioneConseguite = 1 OR PA.partecipazioneConseguite = 2 OR PA.partecipazioneConseguite = 3 Group by PI.codiceFiscale, PI.nome, PI.cognome, PI.nazione 11/12/2015 Progettazione: CampionatoCorse 25, FK, FK Pilota Nome VARCHAR(16) NO NULL Cognome VARCHAR(16) NO NULL nazione VARCHAR(16) NO NULL PunteggioPilota INEGER NO NULL RuoloPilota INEGER NO NULL CodiceScuderia CHAR(3) NO NULL

Interrogazione 2 Partecipazione PosizioneConseguite INEGER NO NULL Scrivere una vista che riporta, per ciascuna casa automobilistica, il numero di corse vinte (ovvero in cui uno dei piloti è arrivato primo). Riportare solo quelle che hanno vinto almeno 10 gare., FK, FK codicescuderia CHAR(3) Sigla VARCHAR(3) nazione VARCHAR(16) PunteggioAccumulato INEGER FK Create view VistaNum (CasaAuto, numerovincite) Select CA.Sigla, count(*) From AS CA JOIN Pilota AS PI ON CA.codiceScuderia=PI.codiceScuderia JOIN Partecipazione AS PA ON PA.codiceFiscale=PI.codiceFiscale Where PA.posizioneConseguite = 1 Group by CA.Sigla Having count(*) >= 10 Pilota Nome VARCHAR(16) NO NULL Cognome VARCHAR(16) NO NULL nazione VARCHAR(16) NO NULL PunteggioPilota INEGER NO NULL RuoloPilota INEGER NO NULL CodiceScuderia CHAR(3) NO NULL 11/12/2015 Progettazione: CampionatoCorse 26

Interrogazione 3 Partecipazione PosizioneConseguite INEGER NO NULL, FK, FK CircuitiGare NomePista VARCHAR(15) NO NULL Nazione VARCHAR(16) NO NULL Luogo VARCHAR(16) NO NULL Pilota Nome VARCHAR(16) NO NULL Cognome VARCHAR(16) NO NULL nazione VARCHAR(16) NO NULL PunteggioPilota INEGER NO NULL RuoloPilota INEGER NO NULL CodiceScuderia CHAR(3) NO NULL Elenco che riporta, per ciascun pilota, il miglior piazzamento nelle corse svolte nella nazione in cui è nato. Visualizzare anche il nome e il cognome del pilota. Select P.CodiceFiscale, P.cognome, P.nome, P.nazione, min(p.posizioneconseguita) From Piloti AS P, CircuitiGare AS CG, Partecipazione PA Where P.codiceFiscale=PA.codiceFiscale AND PA.IdPista=CG.idPista AND P.nazione = CG.nazione GROUP BY P.CodiceFiscale, P.cognome, P.nome, P.nazione 11/12/2015 Progettazione: CampionatoCorse 27

Interrogazione 4 Partecipazione PosizioneConseguite INEGER NO NULL Elenco che riporta il pilota (nome, cognome) il cui punteggio è maggiore della media dei punteggi di tutti i piloti. Select P1.cognome, P1.nome From Piloti AS P1 Where P1.PunteggioPilota > ( select avg(p2.punteggiopilota) from Piloti AS P2) 11/12/2015 Progettazione: CampionatoCorse 28, FK, FK Pilota Nome VARCHAR(16) NO NULL Cognome VARCHAR(16) NO NULL nazione VARCHAR(16) NO NULL PunteggioPilota INEGER NO NULL RuoloPilota INEGER NO NULL CodiceScuderia CHAR(3) NO NULL

Interrogazione 5 codicescuderia CHAR(3) Sigla VARCHAR(3) nazione VARCHAR(16) PunteggioAccumulato INEGER FK Elenco che riporta la casa automobilistica (Sigla, nazione) prima in classifica. Select CA.Sigla, nazione From AS CA Where CA.punteggioAccumulato = (Select max(casa.punteggioaccumulato) From AS Casa) 11/12/2015 Progettazione: CampionatoCorse 29

Interrogazione 6 Elenco che riporta il pilota (nome, cognome) il cui punteggio è maggiore dei punteggi accumulati da tutti i piloti della scuderia Ferrari (sigla SF) (usare select annidate) Select P1.cognome, P1.nome From Piloti AS P1 Where P1.PunteggioPilota > ALL ( select P2.PunteggioPilota from Piloti AS P2 where sigla = SF ) Nota che ci sono più piloti, quindi più punteggi, relativi alla Ferrari 11/12/2015 Progettazione: CampionatoCorse 30 Pilota Nome VARCHAR(16) NO NULL Cognome VARCHAR(16) NO NULL nazione VARCHAR(16) NO NULL PunteggioPilota INEGER NO NULL RuoloPilota INEGER NO NULL CodiceScuderia CHAR(3) NO NULL

Interrogazione 7 codicescuderia CHAR(3) Sigla VARCHAR(3) nazione VARCHAR(16) PunteggioAccumulato INEGER FK CircuitiGare NomePista VARCHAR(15) NO NULL Nazione VARCHAR(16) NO NULL Luogo VARCHAR(16) NO NULL Elenco che riporta le gare (Nome pista e Nazione) che sono situati in nazioni che cui non ci sono case automobilistiche che corrono in casa, ma ci sono piloti che corrono in casa. Ad esempio: il circuito di Singapore verrebbe visualizzato poiché non esistono case automobilistiche di Singapore, ma vi sono piloti la cui nazione è Singapore (usare select annidate) Select nomepisa, nazione From CircuitiGare Where nazione NO IN (Select nazione from ) AND nazione IN (Select nazione from Pilota) 11/12/2015 Progettazione: CampionatoCorse 31 Pilota Nome VARCHAR(16) NO NULL Cognome VARCHAR(16) NO NULL nazione VARCHAR(16) NO NULL PunteggioPilota INEGER NO NULL RuoloPilota INEGER NO NULL CodiceScuderia CHAR(3) NO NULL