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.