Esercizi
Esercizio 1
Date le seguenti coppie di Entità, disegnare lo schema E/R evidenziando anche attributi (anche Chiave primaria) e associazioni. Descrivere quanto rappresentato.
-
CITTADINO – TESSERA SANITARIA
-
DOCENTE – MATERIA
-
IMPIEGATO- PROGETTO
-
PERSONA – AUTOMOBILE
-
STUDENTE -MATERIA
Esercizio 2
Si progetti lo schema Entità-Relazione e lo schema logico di una base di dati in cui si vogliono memorizzare le seguenti informazioni relative ad un sistema informativo per una Facoltà universitaria: per ciascun corso siano individuati il docente (nome e codice fiscale), l'elenco degli studenti che seguono il corso (matricola e nome) col voto riportato da ciascuno, ed infine giorni, orario e sedi delle lezioni.
Utilizzando il linguaggio SQL si risponda poi alle seguenti richieste:
-
elenco docenti in ordine alfabetico
-
dato in input il nominativo dello studente, elencare i codici dei corsi di cui ha sostenuto l’esame
-
elencare i corsi e le relative sedi
Esercizio 3
Al porto turistico di Ancona vengono ospitate le imbarcazioni che ne fanno richiesta. I clienti occasionali possono prenotare il posto barca in base alla disponibilità dei posti e alla dimensione della barca. I posti barca sono ovviamente di dimensioni diverse e quindi al momento della prenotazione verrà richiesta anche la lunghezza della barca in modo da trovare il posto più adatto. Si progetti lo schema E/R e lo schema logico.
Utilizzando il linguaggio SQL si risponda poi alle seguenti richieste:
-
creazione di tutte le tabelle
-
elenco dei posti ( numero, posizione) adatti ad ospitare una barca di cui si conosce la dimensione
-
elenco delle prenotazioni effettuate nel tempo da un cliente il cui nome e cognome vengono dati in input
Esercizio 4
In occasioni delle Olimpiadi Internazionali di Informatica 2008, la società organizzatrice desidera
realizzare un sistema informatico per la gestione delle gare e degli “atleti”.
La base di dati deve consentire la memorizzazione delle informazioni :
-
degli atleti, che possono partecipare alle gare sia singolarmente sia raggruppati in squadre;
-
delle gare nelle varie fasi ;
-
delle sedi di gara .
Le Olimpiadi prevedono una fase scolastica (in ciascun istituto scolastico partecipante), una fase
regionale, una finale nazionale e la gara internazionale che designerà il vincitore e la squadra vincitrice.
Dopo fatto le opportune eventuali ipotesi aggiuntive realizzare:
1. un’analisi della realtà di riferimento individuando le possibili soluzioni e scegliere quella motivato giudizio più idonea a rispondere alle specifiche indicate
2. uno schema concettuale della base di dati
3. uno schema logico della base di dati
4. la definizione delle relazioni della base di dati in linguaggio SQL
5. le seguenti interrogazioni espresse in linguaggio SQL:
• stampare l’elenco degli atleti raggruppati per squadre per ogni singola fase
• dato il nome di un atleta stampare i risultati ottenuti nelle diverse gare alle quali ha partecipato
• stampare il calendario delle gare
• stampare una scheda informativa (cognome, nome, istituto scolastico di provenienza,
nazionalità) del vincitore e della squadra vincitrice
• stampare la classifica per ciascuna gara (a parità di punteggio vengono privilegiati gli atleti più
giovani)
• aggiornare, per ciascuna fase (scolastica-regionale-nazionale-internazionale) gli eventuali
punteggi record
• calcolare il punteggio medio ottenuto durante la prima selezione, per ciascun istituto scolastico
• stampare per ciascuna squadra il numero di “atleti” partecipanti e l’età media
Esercizio 5
Si vuole creare un database per gestire, mediante le opportune tabelle e relazioni, le informazioni riguardanti i dati appartenenti al sistema informativo di un mobilificio, relativi alla vendita di mobili componibili.
Di seguito le specifiche:
-
Gli articoli sono suddivisi per categorie. I dati riguardano la descrizione, il prezzo, l’aliquota IVA e le spese di trasporto
-
Ciascun articolo è costituito da una serie di componenti, di cui si conoscono la descrizione e il costo
-
I componenti vengono prodotti dai laboratori, di cui si conoscono l’indirizzo la città e il telefono
-
Gli articoli possono comparire in ordini , di ciascuno dei quali viene archiviata la data
-
Gli ordini vengono effettuati dai negozi, di cui vengono archiviati il nome, l’indirizzo,la città, il telefono, il responsabile
Si richiede oltre allo schema concettuale, con la descrizione precisa dello stesso, anche lo schema logico evidenziando le chiavi primarie e le chiavi esterne.
Interrogazioni SQL:
-
elencare gli articoli (codice e descrizione) in ordine alfabetico
-
elencare gli articoli il cui prezzo è compreso tra €500 e € 1000
-
elencare i negozi di Firenze o di Roma o di Ancona
-
elencare i negozi di cui non è stato memorizzato il nome del responsabile
Esercizio 6
Gestire le prenotazioni di visite specialistiche presso un centro ambulatoriale. I pazienti prenotano una o più visite di una certa specialità( es. ortopedia, cardiologia, etc.), in una certa data, in certo orario e con un certo medico. Scrivere il diagramma E/R e la sua descrizione, lo schema logico e poi in SQL scrivi le seguenti richieste:
elenco dei pazienti che hanno un appuntamento nel mese di novembre
elenco dei medici presenti nel centro ambulatoriale con la relativa specializzazione in ordine alfabetico
il numero dei pazienti visitati dal medico dato in input nel primo semestre dell’anno in corso
la visita più costosa
il numero delle visite prenotate in un giorno dato in input
dato in input il nome di un paziente dare in output la somma spesa nell’anno scorso per le visite
Esercizio 7
Una galleria d'arte ha deciso di creare un sistema che consenta ai suoi clienti di consultare da casa il catalogo dei quadri, tramite accesso a una pagina web che la galleria può creare presso un fornitore di servizi telematici.
Per ogni quadro è compilata una scheda che riporta l'autore, il titolo, la tecnica (olio, tempera ecc.), le dimensioni, il prezzo, foto del quadro. La consultazione del catalogo può avvenire o semplicemente scorrendo avanti e indietro le schede in ordine alfabetico oppure cercando uno specifico autore.
Fatte le ipotesi aggiuntive che si ritiene necessarie,
-
proporre una soluzione per la creazione del sistema illustrandone la struttura a blocchi e indicando una soluzione di principio per ciascun blocco;
N.B. per blocchi si intende “moduli funzionali” : pagine pubbliche per i clienti, pagine per la direzione della galleria, database, cartella con le immagini. Questi sono in linea di massima le funzioni che potete individuare nel problema.
2) proporre e illustrare una struttura per il Data Base dei quadri,
3) sviluppare in dettaglio la soluzione, (descrivendo il software che viene utilizzato)
a) creazione del Data Base ( creazione delle relazioni),
b) creazione di una semplice pagina web della galleria,
c) interfaccia per consentire al cliente la consultazione del catalogo e la visione delle singole schede
Rispondere in SQL alle seguenti interrogazioni
-
Elencare i quadri di un autore dato in input
-
elencare i quadri eseguiti con una certa tecnica
-
contare i quadri presenti nella galleria suddivisi per autore
elencare gli autori dei quali in questo momento non sono presenti quadri in galleria
Dopo aver recuperato lo schema e/r relativo alla Galleria d’Arte scrivere le seguenti interrogazioni SQL( adeguando ovviamente gli attributi alle richieste e ripassando tutta la sintassi SQL)
-
creazione delle tabelle che non avevamo creato alla lavagna
-
i nomi delle tecniche che non hanno quadri corrispondenti
-
gli artisti i cui nomi o pseudonimi o cognomi iniziano per una lettera data in input
-
gli artisti viventi
-
i titoli dei quadri fatti con una certa tecnica aventi un prezzo superiore ad un valore dato in input
-
tutti i quadri eccetto quelli di un artista dato in input
-
tutti gli artisti che non sono italiani
-
tutti gli artisti che usano solo una tecnica data in input
Esercizio 8
La base di dati per la gestione delle regate di una coppa internazionale contiene le informazioni seguenti:
-ogni regata è caratterizzata dal luogo, dalla data e dai dati del percorso(lunghezza);
-le barche sono caratterizzate dal nome, dalla nazionalità, dal modello, dalla lunghezza, dalla stazza e dallo skipper
- le barche sono finanziate da sponsor, anche più di uno, delle quali si conoscono il nominativo, il codice fiscale, l’indirizzo e l’ammontare della somma fornita
- si conosce inoltre il punteggio totalizzato da una barca in ogni regata cui ha partecipato
- ogni barca ha un equipaggio composto da un numero variabile fra le 15 e le 20 persone, ciascuna con una sua nazionalità e un proprio ruolo(che può variare da regata a regata)
Scrivere per prima cosa un’analisi del problema, facendo le ipotesi aggiuntive che ritenete opportune, realizzare poi lo schema E/R e lo schema logico.
Formulare , oltre alla creazione di due relazioni a scelta, le seguenti query in SQL:
-
elenco delle barche che hanno partecipato alle regate di S.Francisco e di Valencia ma non a quella di Bergen
-
la barca/barche che alla fine della coppa hanno totalizzato il maggior numero di punti
-
per ogni barca un elenco del tipo “nome barca” “totale importo sponsorizzazioni”
-
elenco dell’equipaggio della barca il cui nome viene dato in input, in una data regata, con l’output dei nominativi e il loro ruolo
-
elenco delle barche nel cui equipaggio di contano almeno tre italiani
-
la barca/barche che nelle varie regate hanno totalizzato un punteggio medio maggiore della media dei punteggi totalizzati da tutte le barche
Vi ricordo che le viste in certe situazioni possono essere d’aiuto (create view)
Scegliere poi una query e “crearci” le pagine PHP/HTML/CSS con l’obiettivo di utilizzare tutte le istruzioni PHP conosciute ( anche le variabili di sessione).