Corso di Basi di Dati - Università di Bologna
Transcript
Corso di Basi di Dati - Università di Bologna
CorsodiBasidiDati CdSInformaticaperilManagement TRACCIAdiPROGETTO,A.A.2016/2017 PREMESSA. Si vuole realizzare la piattaforma social “UNIBO Social Sport Sharing” (ispirata a Fubles: https://it.fubles.com/) per studenti dell’Università di Bologna. In particolare, la piattaforma consenteaglistudentidiorganizzareeventisportivi(partitedicalcio,dipallavolooditennis) presso le strutture del CUSB, di partecipare ad eventi sportivi, di interagire con altri utenti attraversonewsemeccanismidirating. SPECIFICHESUIDATI. La piattaforma gestisce gli eventi sportivi appartenenti a tre categorie: partite di calcio, pallavolo e tennis1. Per ogni categoria, si vogliono memorizzare: il regolamento (campo di testo), il numero di giocatori, ed una foto esplicativa. In aggiunta, si vogliono gestire le informazioni degli utenti della piattaforma. Ogni utente dispone di username (univoco) e password, nome, cognome, anno e luogo di nascita, foto, recapito telefonico, numero di matricola, e nome del Corso di Studi cui afferisce. Gli utenti possono appartenere a due tipologie:utentipremium(UP)outentesemplici(US).Ogniutentedellapiattaformaricadein una delle due tipologie sovra indicate. Un utente UP –e solo lui- può organizzare un evento sportivo(ES):ognieventodisponediunidentificativounivoco,unadatadisvolgimento,uno stato (APERTO/CHIUSO), ed appartiene ad una delle categorie tra quelle gestite dalla piattaforma.OgniESsisvolgeall’internodiunimpiantodelCUSB.Perogniimpianto,sivuole tenere traccia di: nome (univoco), via, numero di telefono, indirizzo email, coordinate (latitudine/longitudine). Inoltre, è prevista la possibilità per gli utenti –sia US sia UP- di iscriversiagliESAPERTIpresentisullapiattaforma,inqualitàdigiocatoreodiarbitro.Ogni iscrizionefariferimentoadunsingoloES,edisponediunadataediuncampostatochepuò assumere due valori: CONFERMATO o RIFIUTATO, a seconda che l’UP organizzatore dell’ES abbiaapprovatoomenolarichiestadiiscrizione.Ogniutente–siaUSsiaUP-disponeditre campiaggiuntivi:numerodipartitedicalciogiocate(ossiacuisièiscritto,eperlequalisiè ricevuto conferma positiva), numero di partite di pallavolo giocate, numero di partite di tennis giocate. Il numero totale di utenti giocatori CONFERMATI per un certo ES NON può eccedere il numero di partecipanti previsti dalla categoria cui afferisce l’evento. Il numero totalediutentiARBITRICONFERMATInonpuòesseremaggioredi1perundatoevento.Lo stato di un ES diventa CHIUSO quando si raggiunge un numero di giocatori pari a quello previstodallacategoria(lapresenzadell’arbitroèopzionale);intalcaso,nonèpiùpossibile effettuareiscrizioniall’ES.Inoltre,èprevistalapossibilitàdimemorizzarel’esitodiunES.L’ esitodisponediunadatadiinserimento(chedeveessereovviamenteposteriorealladatadi svolgimento), ed è immesso dall’UP organizzatore dell’evento stesso. Nel caso di ES appartenentiallacategoriapartitadicalcio/partitadipallavolo,l’esitocontiene:inomidelle due squadre, le composizioni (ossia le liste degli utenti giocatori per ciascuna squadra), il numerodigoal/puntidellaprimasquadra,ilnumerodigoal/puntidellasecondasquadra,il numerodigoal/puntimessiasegnodaciascunutentegiocatore.NelcasodiESappartenente alla categoria tennis, l’esito contiene: il numero di set vinti da ciascun utente giocatore e la durata della partita. Inoltre, ogni utente –sia UP sia US- che ha partecipato ad un ES può eventualmente valutare la prestazione degli altri utenti giocatori; la valutazione include la 1Lecategoriepossonoessereesteseadiscrezionedellostudenteinserendoaltrisport. data, un punteggio (da 0 a 10), un eventuale commento. Infine, si vuole consentire la possibilitàagliutenti–siaUSsiaUP-diinserirepostall’internodiforumtematici.Ogniforum fariferimentoadunacategoriatraquelligestitedallapiattaformaeadunCorsodiStudio(es. forumdelTennisdeglistudentidiInformatica).Ognipostèinseritodaunutenteall’internodi unforumedinclude:data,testo,eventualefoto. Operazionisuidati2: - Visualizzazione Visualizzaretuttigliimpiantipresentinelsistema Visualizzarelecategoriepresentinelsistema Visualizzare/cercareiprofilidegliutentidellapiattaforma Visualizzare,perciascunUP,lalistadegliESorganizzati Visualizzare,perciascunutente,lalistadegliEScuisièpartecipato Visualizzare la lista degli eventi APERTI alla data attuale, per le diverse categorie: [OPZIONALE] mostrare su una mappa – usando le API di Google Maps-laposizionedellastrutturecheospitanoeventiAPERTI o Visualizzarelalistael’esitodegliESCHIUSI o Visualizzareipostpresentisuivariforum o o o o o o - Inserimento o o o o o o - OrganizzareunnuovoES(perUP) IscriversiadunES(perUPoUS) Confermare/rifiutarelapartecipazionediutentiall’ESorganizzato(perUP) Inserirel’esitodell’ESorganizzato(perUP) InserirelavalutazionediunaltroutentegiocatoreperunEScuisièpartecipato Inserireunpostinunforum Statistiche o Mostrare,perogniutente,lestatisticherelativeall’utilizzodellapiattaforma: #numeropartitecalciogiocate:X #numeropartitepallavologiocate:Y #numeropartitetennisgiocate:Z o Mostrare,perogniutente,lestatisticherelativeallevalutazioniricevute: #votomediocomecalciatore:X1 #mediagoal/partita:X2 #votomediocomepallavolista:Y #mediapunti/partita:Y2 #votomediocometennista:Z #numeropartitetennisvinte:Z2 o MostrarelestatistichedelgiocatoreTOP: #giocatorechehapartecipatoalmaggiornumerodiES,nellevariecategorie #giocatoreconvotomassimo,nellevariecategorie 2Lalistacontieneleoperazionidibase:puòessereestesa/modificataadiscrezionedello studente. o MostrarelestatistichedellasquadraTOP(percalcio/pallavolo): #squadrachehapartecipatoalmaggiornumerodiES,nellevariecategorie #squadrachehavintoilmaggiornumerodipartite,nellevariecategorie - Analisidati[OPZIONALEpergruppiconmenodi4studenti/OBBLIGATORIOin casodisvolgimentocongruppida4studenti] o Implementare un sistema di clustering basato su algoritmo di K-Means, attraverso il quale si raggruppano gli utenti della piattaforma sulla base di caratteristichesimili(es.#numpartitegiocate,#puntegginellecategorie,etc). Ogniutentehaquindilapossibilità–attraversol’applicazione-divisualizzarela lista dei giocatori a lui simili, e –se UP- di tenerne conto in fase di organizzazionediunES. Vincolisull’implementazione: - Implementaretutteleoperazionisuidati(ovepossibile)attraversostoredprocedure. - Implementareilseguentevincolo:quandounutentepartecipaapiùdidieciES,viene automaticamentepromossoadutentePREMIUM(UP).Utilizzareuntrigger. - Implementare il seguente vincolo: ogni qualvolta un ES raggiunge un numero di giocatori CONFERMATI pari a quello previsto dalla categoria, il suo stato diventa automaticamentepariaCHIUSO.Utilizzareuntrigger. - Implementareilseguentevincolo:rimuovendounutente,vengonorimossituttiisuoi post dai forum, e vengono aggiornati tutti gli eventi cui ha partecipato (come giocatore/organizzatore) sostituendo il nominativo dell’utente con la stringa: “UTENTEANONIMO”. Tabelledeivolumi: - Nonspecificate,adiscrezionediognigruppo. - Valutare se le seguenti ridondanze associate ad un utente (#numero partite calcio giocate, #numero partite pallavolo giocate, #numero partite tennis giocate) devono esseretenuteoeliminate.