ESERCIZIO 1 Dato il seguente schema relazionale: PAZIENTE

Transcript

ESERCIZIO 1 Dato il seguente schema relazionale: PAZIENTE
ESERCIZIO 1
Dato il seguente schema relazionale:
PAZIENTE(Tessera_SSN, Nome, Indirizzo, Esenzione_Ticket)
ACQUISTO(Tessera_SSN, Num_Farmacia, Data, Luogo, Nome_Farmaco)
FARMACO(Nome_Farmaco, Tipo_Farmaco, Ditta, Costo)
esprimere in SQL le seguenti interrogazioni:
a) estrarre il costo complessivo dei farmaci acquistati a Capri nel 1991 da pazienti con
esenzione ticket
b) estrarre il nome dei pazienti che hanno acquistato tutti i farmaci nella stessa farmacia
ESERCIZIO 2
Dato il seguente schema relazionale:
PASTA(Tipo_P, Marca, Prezzo_al_Kg, Cont_Prod, Cont_Calor)
NEGOZIO(Nome_N, Proprietario, Tipo_N, Indirizzo, Citta)
VENDE(Tipo_P, Marca, Nome_N, Proprietario)
esprimere in SQL le seguenti interrogazioni:
a) stabilire in quali negozi si vende una pasta che costa meno di L. 2000 al Kg e che ha un
contenuto proteico maggiore di qualche pasta (non necessariamente venduta dallo stesso
negozio) che costa meno di L. 2000 al Kg
b) determinare qual è il prezzio medio della pasta nei negozi di ogni città
ESERCIZIO 3
Dato il seguente schema relazionale:
PROGETTO(Nome, Responsabile, Data_Inizio, Data_fine)
RAPPORTO(Codice, Titolo, Nome_Prog, Primo_Aut, Numero_Aut, Data)
esprimere in SQL le seguenti interrogazioni:
a) trovare i titoli dei rapporti scritti nell’ambito del progetto Logres il cui primo autore è il
responsabile del progetto, pubblicati dopo la fine del progetto
b) trovare i progetti che hanno prodotto più di dieci rapporti con più di tre autori, il cui
responsabile non figura come primo autore in nessuno dei rapporti del progetto
ESERCIZIO 4
Dato il seguente schema relazionale:
Partita(NroProgr, Data, Stadio, Arbitro, Girone)
PartitaSquadra(NroProgrPartita, Squadra)
Giocatore(Nome, Squadra, Numero, Ruolo)
Rete(NroProgrPartita, Squadra, Minuto, NomeGiocatore, FlagAutogol, FlagRigore)
EntrataGiocatore(NroProgrPartita, NomeGioc, Minuto)
UscitaGiocatore(NroProgrPartita, NomeGioc, Minuto, Motivo)
esprimere in SQL le seguenti interrogazioni:
a) trovare i giocatori che sono stati sostituiti tutte le volte che hanno segnato una rete
b) individuare qual è lo stadio in cui ha giocato più partite il portiere del Camerun con la
maglia numero 1 (si supponga che esista un elemento in EntrataGiocatore con Minuto pari a
zero per ogni giocatore presente in campo all’inizio della partita).
ESERCIZIO 5
Dato il seguente schema relazionale:
GranPremio(Nazione, Anno, Data, Circuito)
Piazzamento(Nazione, Anno, Pilota, Scuderia, PosInProva, PosInGara, Squalifica, Punti)
Pilota(Nome, Nazione, DataNascita)
esprimere in SQL le seguenti interrogazioni:
a) quali sono i piloti itliani che hanno vinto almeno tre gran premi di San Marino svoltisi a
Imola.
b) trovare le scuderie con due piloti in cui, quando i piloti hanno conquistato in gara posizioni
consecutive, uno dei due ha sempre preceduto l’altro.
c) visualizzare, per ogni nazione, il pilota di quella nazione che ha conquistato il maggior
numero di punti, ordinando i piloti in modo decrescente rispetto ai punti.
d) quali sono i piloti che hanno partecipato a gare nelle nazioni in cui si sono disputati due gran
premi
ESERCIZIO 6
Dato il seguente schema relazionale:
Partners(Progetto, Nome)
Progetti(Numero, Titolo, Budget, DataInizio, DataFine, PercBudgetSpeso)
Attività(NumProg, Persona, Tipo, NroOre)
Coordinatori(NumProg, Persona)
Persone(Nome. CostoOrario, AttivitàPrinc)
esprimere in SQL le seguenti interrogazioni:
a) formulare un comando SQL che assegni all’attributo AttivitàPrinc di Persone il valore
dell’attributo Tipo di Attività in corrispondenza del quale la persona ha lavorato il
maggior numero di ore.
b) estrarre le persone che sono state coinvolte, tra i vari progetti a cui hanno partecipato, in
tutti i tipi di attività, compreso il ruolo di coordinatore.
ESERCIZIO 7
Dato il seguente schema relazionale:
Musicista(Nome, DataNascita, LuogoNascita, Sesso, Nazionalità)
Gruppo(Nome, DataFormazione, DataScioglimento)
Parteciazione(NomeMusicista, NomeGruppo, DataInizio, DataFine)
Disco(Titolo, Artista, DataUscita, NumCopie)
esprimere in SQL le seguenti interrogazioni:
a) inserire in una vista il numero totale di copie vendute dei dischi che il musicista ha
realizzato, da solo o in un gruppo (si noti che Artista può essere il nome sia di un musicista
che di un gruppo); si supponga di poter svolgere operazioni aritmetiche sulle date per
controllare che il disco del gruppo sia stato realizzato quando il musicista faceva
effettivamente parte del gruppo. Si noti ancora che un valore null per DataFine rappresenta il
fatto che il musicista fa ancora parte del gruppo.
b) determinare il musicista che ha lasciato il massimo numero di gruppi prima del loro
scioglimento
ESERCIZIO 8
Dato il seguente schema relazionale:
Impiegato(Nome. Cognome, Ufficio, Stipendio, Reparto)
Reparto(Nome, Indirizzo, Città)
esprimere in SQL le seguenti interrogazioni:
a)
b)
c)
d)
reperire i cognomi degli impiegati del reparto Produzione
reperire lo stipendio mensile degli impiegati di cognome Bianchi
reperire gli impiegati con cognome avente una ‘o’ in seconda posizione e terminante per ‘i’
reperire i nomi e i cognomi degli impiegati con la città in cui lavorano