# Eserciziario di informatica/Ricerche in SQL

Eserciziario di informatica
Copertina Tutti i moduli · Sviluppo
    CopertinaEserciziario di informatica/Copertina
Programmazione strutturata
* Assegnazione e strutture di sequenzaEserciziario di informatica/Assegnazione e strutture di sequenza
* Condizioni logiche e struttura di selezioneEserciziario di informatica/Condizioni logiche e struttura di selezione
* Struttura di iterazione
* Strutture annidate
* Array
* Vettori paralleli
* Matrici
* Archivi sequenziali
* Archivi ad accesso diretto
* FunzioniEserciziario di informatica/Funzioni
* Funzioni ricorsiveEserciziario di informatica/Funzioni ricorsive
* SottoprogrammiEserciziario di informatica/Sottoprogrammi
* LaboratorioEserciziario di informatica/Laboratorio
Database
* Progettazione dei dati
* Strutture dati in SQL
* Gestione dei dati in SQL
* Ricerche in SQLEserciziario di informatica/Ricerche in SQL
Progettazione di applicazioni
Modifica il sommario
N.B. La soluzione degli esercizi che seguono richiede le conoscenze acquisite ai punti progettazione dati, uso di sql per la definizione dei dati e uso di sql per la gestione dei dati.
A. Ogni vino di una certa annata viene vinificato da una cantina che lo produce partendo da una o più qualità di uva (uvaggi). Del vino interessano la gradazione alcolica legale e delle cantine il volume totale dei serbatoi. Dopo avere sviluppato il modello E-R relativo ai dati descritti, scrivere le istruzioni SQL che permettono di:
* Contare entro quanti vini entra ogni uvaggio.
* Elencare le cantine che vinificano un solo vino.
* Determinare la gradazione legale del vino che viene composto con il maggior numero di uvaggi.
* Determinare la quantità massima di ogni vino che può essere prodotto per ogni annata.
B. Riferendosi alla base di dati:
* Elencare gli articoli con prezzo maggiore del prezzo medio.
* Elencare gli articoli con pU maggiore del massimo pU degli articoli deperibili.
* Elencare gli articoli con pU maggiore di quello di almeno un articolo sottoscorta.
* Individuare la categoria del prodotto presente con il maggior numero di articoli.
* Elencare gli articoli che non sono stati movimentati nel Maggio 2007.
Soluzione.
C.Creare una base di dati che rappresenti le corse disputate, i cavalli che le hanno vinte e chi ne fosse il fantino. Dei cavalli interessa anche la scuderia di appartenenza, oltre al nome e all’anno di nascita; un cavallo appartiene ad una sola scuderia, non sono ammesse comproprietà. Delle scuderie interessano nome, nazionalità e domicilio. Dei fantini interessano nome, cognome, soprannome e anno di nascita. Ciascuna corsa viene disputata in un ippodromo con un certo nome in una tal data conferisce un trofeo. Al vincitore di ciascuna corsa è corrisposto un premio in denaro.
In seguito sviluppare le query in SQL che permettano di:
* Determinare il numero dei cavalli di ciascuna scuderia.
* Determinare il nome del cavallo che ha vinto il maggiore numero di corse.
* Determinare il nome del cavallo che ha vinto il minore numero di corse.
* Determinare il numero di vittorie di ciascuna scuderia.
* Individuare il fantino che ha guadagnato di più con i premi.
* Determinare il numero di vittorie di ciascuna nazione.
* Determinare l’ippodromo che ha ospitato più corse.
Soluzione:
D. Ciascuno dei prodotti minerari estratti in varie regioni d’Europa deve essere sottoposto ad un ben determinato processo di raffinazione. Ciascun prodotto ha un certo costo al kg. In alcune regioni sono poi ubicati gli impianti entro ciascuno dei quali si effettuano uno o più di questi processi.
* Determinare quali minerali vengano estratti in una regione specificata dall’esecutore.
* Determinare il costo al grammo di tutti i minerali.
* Determinare in quali impianti si raffinano minerali il costo al kg dei quali sia superiore ad 1 euro.
E. Si costruisca il modello dei dati relativo alle vaccinazioni alle quali sono sottoposti i bambini di una città. Ogni vaccinazione viene somministrata da un medico ad un certo bambino. Rappresentare anche i genitori di tali bambini.
* Elencare il cognome e il luogo di nascita dei bambini di una certa età.
* Elencare tutte le vaccinazioni fatte da un certo bambino.
* Determinare i figli di un certo genitore.
* Contare i figli di ogni genitore.
* Contare da quanti medici sia stato vaccinato ogni bambino.
F.Ogni navigazione di una nave è caratterizzata da un porto di partenza e da uno di arrivo. Ignoriamo la possibilità di scali intermedi. In ogni navigazione vi sono dei passeggeri e delle merci trasportate in una certa quantità e di un certo valore.
* Contare il numero delle navigazioni effettuate da ogni nave.
* Determinare il valore totale delle merci di trasportate in una determinata navigazione.
* Determinare il valore medio delle merci trasportate.