classi 4E, 4I e 5E Sia: Tracce esercizi sui database
5E Sia: Tracce esercizi sui database
SISTEMI INFORMATIVI DA SVILUPPARE:
Si vuole creare un database che gestisca le varie macchinette (della stessa azienda, quella per la quale si crea il database!) per le bibite sparse nelle scuole di una città. Si vuole conoscere quali bibite e merende sono disponibili ed il loro costo, nonché dove sono situate le macchinette.
Auto officina
Si vuole rappresentare una base di dati per un’auto officina. I clienti dell’auto officina sono caratterizzati dal codice fiscale, dal nome e dall’indirizzo. Le automobili dei clienti sono caratterizzate dalla targa, dal proprietario attuale (cliente dell’auto officina), dall’anno di immatricolazione e dal tipo di auto. Le informazioni relative al tipo di auto sono costituite dal costruttore e modello dell’auto (es. Fiat Bravo), dalla cilindrata e da una serie di informazioni tecniche. Si vuole inoltre tenere traccia del fatto che l’auto sia un’auto d’epoca. Gli interventi di manutenzione effettuati dall’auto officina per conto dei clienti sono contraddistinti da un codice e sono caratterizzati dall’auto su cui sono stati effettuati, dal proprietario, dai pezzi di ricambio eventualmente impiegati, dal costo della manodopera, e dal costo complessivo. I pezzi di ricambio sono contraddistinti da un codice, dalla denominazione, dal costo, e dai tipi di auto a cui possono essere applicati.
Agenzia Viaggi
Si progetti un sistema informativo per la gestione di una agenzia di viaggi.
L'agenzia fornisce sia servizi tradizionali, che servizi innovativi. Tradizionalmente, un'agenzia deve vendere:
settimane di villeggiatura scelte da appositi cataloghi;
biglietti aerei, ferroviari e per traghetti;
soggiorni in alberghi particolari.
Per i servizi innovativi, l'agenzia deve offrire la possibilità di:
cercare il volo più economico per una determinata località;
cercare il soggiorno più esclusivo, più economico, oppure più caratteristico;
confrontare le diverse offerte per la medesima località turistica;
scegliere fra rinunce e offerte della settimana, che devono essere vendute a prezzi scontati.
L'agenzia deve tener traccia anche del fatturato accumulato da ogni cliente e del volume d'affari con ogni catalogo trattato. Nel primo caso, le informazioni raccolte potrebbero essere utilizzate per definire offerte o sconti particolari. Nel secondo caso, le informazioni potrebbero servire per spuntare prezzi d'acquisto (per l'agenzia) migliori.
Gestione "evoluta" di una farmacia.
La farmacia deve conoscere tutti i medicinali prescrivibili. Per ogni prodotto, deve tener traccia del prezzo di vendita, dei vincoli imposti per legge alla vendita (ad esempio, solo su presentazione di ricetta medica) e di eventuali effetti collaterali. Il farmacista dovrebbe essere in grado di consigliare oppure sconsigliare il cliente se il prodotto richiesto dovesse presentare effetti collaterali "troppo" nocivi, oppure fosse sconsigliato in presenza di patologie o disturbi particolari. Ovviamente, ogni farmaco ha una casa produttrice che deve essere contatta nel momento in cui le scorte del prodotto dovessero andare sotto il livello di guardia. La farmacia registra anche ogni cliente, sia per fornire un servizio migliore, cioè per tener traccia di allergie, patologie, oppure problemi che potrebbero sconsigliare l'assunzione di un particolare prodotto, sia per produrre statistiche d'uso dei diversi farmaci per l'ASL. A questo proposito la farmacia registra anche i medici che hanno proposto le diverse prescrizioni. Ancora la finalità è duplice: instaurare un rapporto di collaborazione con il medico e produrre le statistiche per l'ASL. A richiesta la farmacia deve anche saper ricostruire lo storico (l'ultimo anno, ad esempio) del singolo cliente, oppure del singolo medico.
Gestione di un negozio di dischi
Si vuole realizzare una base di dati per automatizzare la gestione di un negozio di dischi.
Si richiede che ogni album presente nel catalogo venga identificato in base ad un codice. Le informazioni riguardanti un album di cui si vuole tenere traccia sono: il titolo, l’anno di uscita, la case editrice, il genere (classica, jazz, pop, new age, rock, ...) ed il supporto di registrazione (CD, minidisk, cassetta). Per semplicità, se uno stesso album viene memorizzato su, ad esempio, due supporti differenti, i dati relativi a quell’album devono essere registrati separatamente.
Di ciascun album si vogliono registrare le seguenti informazioni sui brani in esso contenuti: titolo e durata totale (espressa in secondi). Nulla vieta che uno stesso brano faccia parte di più di un album (ad es. le raccolte contengono brani appartenenti, in genere, ad album già pubblicati).
Le informazioni che interessano riguardano:
Gli automezzi: caratterizzati da targa, marca, portata;
Gli autisti: codice fiscale, cognome, nome;
I viaggi compiuti: codice viaggio, automezzo utilizzato, gli autisti del mezzo (possono essere più di uno), una descrizione del carico trasportato, città di destinazione.
Trovare gli automezzi con portata compresa tra le 300 e 500 tonnellate che siano della Ford oppure della Fiat
Trovare i nomi degli autisti che hanno viaggiato verso Firenze portando verdura
Trovare i nomi degli autisti che hanno guidato un veicolo Fiat sino a Lucca portando verdura o carne
Trovare tutti i veicoli che hanno viaggiato sino a Pisa guidati da Marco Rossi o Franco Bianchi
Il crimine organizzato
I criminali sono organizzati in bande; di ciascuno di essi, identificato da un codice, interessano i dati anagrafici, la banda cui è affiliato, gli eventuali crimini addebitategli con l’anno in cui gli investigatori hanno formulato l’incriminazione.
Di ogni banda, identificata da un codice, interessa il nome, il capo e gli altri affiliati, le altre bande con cui eventualmente collabora. Una banda è costituita da almeno tre affiliati, compreso il capo.
Di ogni crimine, identificato da un codice, interessa il luogo e la data, le persone colpite, gli eventuali responsabili.
Definire una interrogazione in SQL che data una banda, restituisca tutti i crimini addebitati ai suoi affiliati
Gestione di un’impresa edile.
Il sistema deve gestire i cantieri, i dipendenti e il magazzino centrale.
Ogni cantiere, oltre alla propria posizione, descrizione, data di inizio lavori e data di fine prevista, deve conoscere i dipendenti (muratori, carpentieri, autisti, geometri, ecc.) assegnati. Si noti che un dipendente potrebbe lavorare in più cantieri. Per ogni dipendente, oltre ai dati anagrafici, si deve conoscere la qualifica, la fascia di stipendio e eventuali richieste e/o capacità particolari.
L'impresa ha un magazzino centrale e un "piccolo magazzino" per ogni cantiere aperto. Ogni magazzino registra i prodotti per costruzione (mattoni, tegole, cemento, ecc.) , gli strumenti e i mezzi disponibili in ogni magazzino. Il magazzino centrale deve essere in grado di assegnare il materiale (strumento o mezzo) richiesto ad ogni cantiere cercando di minimizzare i tempi e le distanze. Ad esempio, deve essere possibile localizzare il carico di mattoni più vicino al cantiere che l'ha richiesto e deve essere possibile "spostarlo" da un magazzino ad un altro.
A richiesta il cantiere deve anche saper calcolare il costo "corrente" di un cantiere. Deve anche saper ricostruire lo storico (l'ultimo anno, ad esempio) del singolo cantiere, del singolo dipendente, oppure del singolo mezzo.
La gestione di una società di autobus.
Il sistema deve gestire le linee servite dalla società. Ogni linea ha una stazione di testa e una stazione di coda e gli autobus la possono percorrere nelle due direzioni (dalla testa alla coda, oppure viceversa). Si noti che le fermate nelle due direzioni potrebbero essere diverse (ad esempio, una strada potrebbe essere a senso unico). Ogni linea è coperta da un certo numero di corse giornaliere: si supponga che la cadenza e l'orario di inizio e di fine delle corse dipendano dal giorno della settimana e/o da particolari giorni di festa (giorni lavorativi, sabato, domenica e festività). Una corsa però non deve necessariamente coprire l'intera tratta, ma potrebbe anche essere limitata ad un sottoinsieme delle fermate previste dalla linea.
Il sistema deve stampare anche l'orario stagionale e deve gestire gli autisti e gli autobus. Solitamente un mezzo è assegnato a una particolare linea (corsa) e un autista è assegnato a un particolare mezzo. Il sistema deve controllare che ogni autista non lavori mai per più di 7 ore al giorno, quindi il numero di corse effettuabili da ogni autista e il numero di autisti necessari per coprire una singola linea devono essere calcolati in base ai tempi di percorrenza.
Si esemplifichi il comportamento del sistema nei due casi seguenti:
Il sistema deve calcolare il numero di autisti necessario per coprire la linea Topolinia-Paperopoli, sapendo che la tratta completa consta di 12 fermate e che il tempo medio da una fermata alla successiva è di 10 minuti.
Il sistema vuole calcolare il numero di mezzi necessari per coprire tutte le corse individuate.
Il sistema informativo (semplificato) della motorizzazione civile.
Il sistema deve gestire sia le immatricolazioni dei mezzi di trasporto, sia l'emissione delle patenti. I mezzi di trasporto sono suddivisi in motociclette, automobili, pullman e camion.
La motorizzazione vuole tenere traccia sia dei modelli, che dei singoli autoveicoli. I modelli possono essere modelli standard (identificati da nome del modello, codice e data di omologazione), oppure prototipi (identificati da nome del prototipo, codice, data di immatricolazione e persona che ha presentato la richiesta di immatricolazione).
Ogni mezzo di trasporto è identificato da numero di telaio, modello, data di immatricolazione, targa e proprietario. I proprietari possono essere persone fisiche, oppure società. Ad ogni persona fisica può essere associata una patente; non è ovviamente possibile associare patenti a società. Le persone e le società sono identificate attraverso i soliti attributi, Le patenti devono avere un proprietario, una data di rilascio, eventuali note specifiche e eventuali rinnovi.
Si modelli il sistema utilizzando le notazioni che si ritengono più opportune. Si descriva anche, il comportamento del sistema nei seguenti casi:
Il sistema (l'utente) vuole immatricolare una nuova macchina: Fiat Punto blu, data immatricolazione 20/06/2000, telaio # 123AS34, targa FS 904 LB, proprietario Antonio Rossi.
Il sistema (l'utente) vuole identificare il proprietario della Alfa Romeo 156 targata FR 374 CB, telaio # 453HH92.
Il sistema informativo per la gestione del programma fedeltà di una compagnia aerea.
La premessa, magari non nota a tutti, è che chi si iscrive al programma, ogni volta in cui vola con MyAir, accumula punti (miglia) che danno diritto a premi. Ad esempio, bisogna volare per almeno 25.000 miglia per avere diritto a un volo gratuito in Europa; ci vogliono 65.000 miglia per un volo negli Stati Uniti; bastano 5.000 per un buono acquisto in un negozio convenzionato.
Il sistema deve gestire i clienti della compagnia che partecipano al programma. I partecipanti sono organizzati in tre fasce di merito in funzione delle miglia volate durante un anno solare: tutti appartengono al primo livello. Se si volano 35.000 miglia si passa al secondo livello; si accede al terzo livello con 100.000 miglia volate in un anno. I tre livelli danno diritto a facilitazioni e premi differenziati.
Oltre ai clienti, il sistema deve gestire i premi, ovvero la tipologia di premio (volo gratuito, soggiorno gratuito, buono sconto), il numero di miglia richieste per ogni premio particolare (un volo gratuito a New York richiede più miglia di un volo per Roma) e lo storico dei clienti: quanti voli ha effettuato ogni cliente, quante miglia ha guadagnato, quali premi ha già riscosso e quante miglia gli restano da "spendere". Si fa notare che le miglia scadono dopo 5 anni dal momento in cui sono state acquisite, cioè dalla data del volo.
Il sistema deve essere in grado di aggiornare la posizione di ogni cliente in funzione di ogni volo effettuato e di ogni premi richiesto. Deve anche gestire l'effettiva disponibilità dei premi. Ad esempio, un volo gratuito potrebbe non essere soddisfacibile se il volo richiesto fosse già pieno.
Si esemplifichi il comportamento del sistema nei due casi seguenti:
Il signor Rossi chiede un volo premio per Nairobi. Il sistema deve verificare le miglia in possesso del signor Rossi, confrontarle con quelle richieste per un volo per Nairobi e ricordare al signor Rossi che non ha miglia sufficienti.
Il signor Bianchi ha effettuato il decimo volo del 2000 e questo significa che la classe di merito cambia da quella base al secondo livello. Il sistema deve modificare l'immagine del signor Bianchi (cioè i dati memorizzati) e deve predisporre l'invio della nuova tessera di fideizzazione.
Il sistema informativo per la gestione di un'azienda dolciaria.
Il sistema deve classificare e gestire tutti i prodotti dell'azienda. Ogni prodotto richiede una ricetta e un certo numero di materie prime. Il sistema deve poter controllare la ricetta scelta e decidere se esistono scorte sufficienti per preparare il prodotto nella quantità stabilita. Se non ci fossero materie prime sufficienti, il sistema dovrebbe provvedere all'espletamento delle pratiche per il riordino: la modalità può essere sia automatica, che manuale. Nel primo caso, è il sistema che fa tutto; nel secondo caso, il sistema segnala solamente le materie prime mancanti e lascia la decisione finale all'operatore.
L'azienda dispone, anche, di un proprio sito Internet con il quale presenta e vende i prodotti. La presentazione è attraverso particolari "tour per golosi"; la vendita è una classica vendita via Internet: i clienti scelgono cosa comprare e decidono modalità di spedizione e tempi di consegna. Chiaramente tempi di consegna e modalità diverse hanno prezzi diversi.
Gli utenti del sistema possono caratterizzare i loro profili, specificando i gusti (ad esempio, prodotti alla panna, oppure torte con la glassa) e richieste (ad esempio, consegna sempre tramite fattorino). Le preferenze devono essere usate dal sistema per organizzare i "tour per golosi", privilegiando quelli che corrispondono ai gusti dichiarati. Ad esempio, i fanatici del cioccolato dovranno avere tutti i tour con prodotti al cioccolato, come prima scelta, e poi via via gli altri. I tour devono anche presentare l'equivalente calorico di ogni prodotto, giusto per infierire sul cliente.
Si esemplifichi il suo comportamento (interaction o activity diagram) nei due casi seguenti:
Si deve produrre la torta della nonna e si scopre che mancano alcuni ingredienti (ad esempio, uova e pinoli). Il sistema, in modalità automatica, deve provvedere all'emissione degli ordini d'acquisto.
L'utente Rosso Rossi richiede la consegna di una bavarese alla fragola per corriere espresso entro 12 ore. Supponendo che la cosa sia possibile, il sistema deve calcolare il costo dell'operazione (spedizione più involucro protettivo) e deve emettere la fattura virtuale al cliente.
Una base di dati per la comunità scientifica di ricerca paleontologica.
Si devono memorizzare i dati riguardanti i reperti fossili di vertebrati custoditi dai musei. I reperti sono caratterizzati dal luogo e dall’anno di ritrovamento, dal ricercatore responsabile della scoperta, dal museo e dalla sala in cui è custodito.
Ogni reperto può essere attribuito a diverse specie, con diverso grado di probabilità. Ad ogni specie possono essere associati più nomi, qualora diversi ricercatori abbiano fornito lo stesso nome a specie diverse: in tal caso il nome ufficiale è il nome più vecchio. I musei sono caratterizzati dalle sale, dai loro ricercatori, dal loro direttore (che può essere un paleontologo o un ricercatore di altra materia).
Definire lo schema ER e lo Schema Logico relativo alla base di dati. Tradurre inoltre lo Schema Logico nel linguaggio SQL.
Si ricorda che lo schema concettuale deve comprendere l’indicazione delle cardinalità di relazioni ed attributi, degli identificatori di tutte le entità, e dei vincoli d’integrità non esprimibili attraverso lo schema.
Commenti
Posta un commento