testo

Transcript

testo
ESERCIZIOBONUS3(+0.5)–
Progettazionedibasididatirelazionali
7/11/2016,Consegna:17/11/2016,ore23.55
Modalità di consegna à Attraverso la piattaforma di e-learning (https://elearningcds.unibo.it/course/view.php?id=9864)diUNIBO.Passidasvolgere:
1) Collegarsi a: https://elearning-cds.unibo.it/course/view.php?id=9864, utilizzando le
propriecredenzialiistituzionaliUNIBO(email/password)perl’accesso.
2) ScegliereilcorsodiBasididati(codice:70155).
3) Inserirelachiavediiscrizione:bd2017
4) Cliccare su Esercizio Bonus 3 à Consegna File, e procedere con l’upload del file
contenentelasoluzionedell’esercizio.E’possibileripeterel’operazionediupload.
5) Quandosivuoleconsegnarel’elaboratoDEFINITIVO,cliccaresu“ConsegnaCompito”.
Daquestomomento,nessunulterioreuploadèpossibile.Senonsicliccasu“Consegna
Compito”,ildocenteNONvedel’elaborato.
6) Lasottomissioneèpossibiledal7/11/2016al17/11/2016,ore23.55.
COSACONSEGNARE?
• Allegare un singolo file consegna3.pdf, contenente la soluzione degli esercizi
proposti.
------------------------------------------------------------------------------------------------------------------------
SPECIFICHEDELSISTEMA
Sivuoleprogettareunabasedidatiperlagestione(semplificata)deiparcheggidellacittà
di Bologna. Di ogni parcheggio, si vogliono memorizzare: nome (univoco), via e posizione
(latitudine/longitudine). Sono previste due categorie di parcheggi: parcheggi liberi (PL) e
parcheggiapagamentocoperti(PPC).Ogniparcheggiogestitodalsistemaricadeinunadelle
duecategoriesovracitate.Nelprimocaso(PL),sivuoleteneretracciadelladuratamassima
della sosta. Tale durata è espressa in ore nel range [0-24]. Nel secondo caso (PPC), si
vogliono memorizzare: numero di telefono, recapito email, nome della società gestore. Ogni
PCC dispone di un certo numero di posti auto. Ogni posto auto dispone di un numero
progressivo (univoco localmente per un dato parcheggio, ma non globalmente su tutti i
parcheggidellacittàdiBologna),unalarghezza,unalunghezza,epuòdisporrediunsensore
associatoperilrilevamentoautomaticodellostato(libero/occupato).Nelcasosiapresente,si
vuole tenere traccia dell’ID del sensore, del modello e del nome dell’azienda produttrice.
Inoltre, per i PCC, si vogliono gestire le soste operate dagli utenti. Ogni sosta dispone di un
codiceunivocoglobale(ossiaalivellodicittàdiBologna),unadatadiinizio,unadatadifine,
un costo, ed è associata ad un posto auto e ad un utente. Il costo della sosta si ottiene
moltiplicandoladuratadelparcheggioinoreperuncostounitarioorarioparia0.5euro.Per
quantoriguardagliutenti,lapiattaformadevegestire:codicefiscale,nome,cognome,annodi
nascita,numerodipatente.OgniPPCpuòvenderedeiPASSperl’accessoallezoneatraffico
limitatodellacittàdiBologna.OgniPASSdisponedi:codiceunivocoglobale,datadirilascio,
durata,enomedellazonadivalidità.SivuoleteneretracciadellostoricodegliacquistidiPASS
operati da ciascun utente. Inoltre, sono previste due categorie di utenti speciali: utenti
premium (UP), ed utenti abbonati (UA). Dei primi (UP), si vogliono memorizzare anche
nickname e password per l’accesso Web al portale dei parcheggi di Bologna. Tramite tali
credenziali,ogniUPpuòinseriresegnalazionigenerichecircalostatodiunparcheggiolibero
(PL). Ogni segnalazione dispone di una data di inserimento, un campo commenti (es. “il
parcheggiodisponealmomentodiXpostiliberi”),èinseritadaunUSefariferimentoadun
PL tra quelli gestiti dal sistema. Gli utenti abbonati (UA) dispongono di un abbonamento,
attraverso il quale viene loro assegnato in pianta stabile un posto auto di un PPC;
l’abbonamentoincludeundatadiinizio,unadatadifine,uncosto.Nonèpossibileassegnare
lostessopostoautoapiùabbonamenti,perunastessadata.Nontuttigliutentidelsistema
appartengonoallecategorieUPoUA.
------------------------------------------------------------------------------------------------------------------------
1) CostruireilmodelloEntità-Relazione(E-R)dellabasedidati.DisegnareildiagrammaE-R
utilizzandoiltoolJDER(https://gianvitopio.wordpress.com/jder/).
2) Definire la tabella delle business rules, ossia dei vincoli presenti nel documento di
specificaNONmodellatidaldiagrammaE-R.
3) Definireilcostodelleseguentioperazionisuidati:
1. Aggiungereunnuovoutenteedunasosta(5v/mese)(Interattivo)
2. Rimuoveretuttigliutenti(2v/mese)(Interattiva)
3. Contare il numero di soste di durata maggiore ai 60 minuti effettuate da un
certoutente(2v/mese)(Batch)
4. VisualizzaretuttiidatideiPL,edellesegnalazioniadessoassociate(20v/mese)
(Interattiva)
Assumendolaseguentetabelladeivolumi:
- Numeromediodiutenti:50
- Numeromediodisostepersingoloutente:10
- NumeromediodiPL:30
- NumeromediodisegnalazionipersingoloPL:10
- Costanti: wI (peso operazioni interattive)=0.8, wB (peso operazioni batch)=0.2, α=2
(pesooperazioniscrittura)
4) Ripetere l’esercizio precedente, assumendo l’esistenza di un campo “numeroSOSTE”
associato all’entità UTENTE. Decidere sulla base dell’analisi dei costi/memoria se la
ridondanzadeveesseremantenutaoeliminata.
5) Tradurre il diagramma E-R nello schema logico relazionale, indicando i vincoli di
integrità referenziale. Nella traduzione di eventuali generalizzazioni, scegliere l’opzione
cheminimizziilnumerodipotenzialivaloriNULLnelletabelle.
6) Tradurre il diagramma E-R nello schema logico relazionale, indicando i vincoli di
integrità referenziale. Nella traduzione di eventuali generalizzazioni, scegliere l’opzione
cheminimizziilnumeroditabellegenerate.
7) [OPZIONALE – Non oggetto di valutazione] Implementare lo schema del database del
punto (6) in MySQL, consentendo le operazioni 1-4 come storedprocedures. Allegare
nellarelazioneilcodiceprodotto.
------------------------------------------------------------------------------------------------------------------------
VINCOLIDICONSEGNA
• La progettazione della base di dati deve essere completa rispetto alle specifiche, e
correttadalpuntodivistadell’utilizzodeicostruttideldiagrammaE-R.
• Nell’analisideicosti,giustificare(brevemente)ipassaggiseguitinelcalcolo.
• NON sono consentite consegne di gruppo. Consegne multiple (ossia stesse
consegnedapartedipiùstudenti)NONsonovalutate.
• La consegna deve avvenire attraverso la piattaforma indicata nella prima pagina, ed
entroladeadlinestabilita.ConsegneviaemailNONsarannovalutate.
• L’assegnamentodelbonusèunafunzionebooleana(assegnato/nonassegnato).