next up previous
Next: Svolgimento dell'esercitazione Up: Progettazione di una base Previous: Progettazione di una base

Descrizione del dominio applicativo

Si vuole realizzare un'applicazione base di dati per la gestione di una palestra.

Alla palestra hanno accesso due tipi diversi di persone: gli abbonati e gli utenti occasionali. Gli abbonati sono titolari di un abbonamento alla palestra, mentre gli utenti occasionali accedono alla palestra tramite il pagamento di un'entrata a prezzo fisso (ad esempio Lit. 15.000) e non sono titolari di nessun tipo di abbonamento.

Per ogni persona che ha accesso alla palestra si vogliono memorizzare le seguenti informazioni: nome, cognome, codice fiscale, indirizzo, numero di telefono, data di nascita, luogo di nascita ed eventuali note relative al cliente considerato. Gli abbonati alla palestra hanno una tessera identificata univocamente da un codice di tessera.

Gli abbonati si suddividono in due categorie: studenti e lavoratori. Gli studenti hanno uno sconto del 20% sul costo di tutti i tipi di abbonamento, mentre i lavoratori di enti convenzionati con la palestra hanno uno sconto variabile a seconda dell'ente di appartenenza. Si noti che tutti i lavoratori appartenenti allo stesso ente hanno lo stesso sconto su tutti i tipi di abbonamento. Per gli studenti si vuole sapere se sono studenti di scuola superiore o universitari, il tipo di scuola o il corso di laurea (liceo scientifico piuttosto che corso di laurea in informatica) e l'istituto o l'università cui sono iscritti (liceo scientifico Galileo Galilei piuttosto che università di Milano Bicocca).

Ogni abbonato è titolare di un certo tipo di abbonamento. Ogni tipo di abbonamento è identificato da un codice e dà diritto a frequentare solo i corsi o solo la sala pesi o entrambi. Inoltre, per ogni tipo di abbonamento si vuole memorizzare la durata (che può essere un anno, sei mesi, tre mesi o un mese), il costo, eventuali note relative all'abbonamento ed eventuali bonus a cui l'abbonamento dà diritto (lampade solari gratuite, buoni sconto presso negozi di articoli sportivi, ecc.).

Quando una persona si abbona alla palestra si vogliono memorizzare informazioni relative alla data di inizio e di scadenza dell'abbonamento. Queste informazioni devono essere coerenti con quelle relative al tipo di abbonamento scelto. L'accesso di un abbonato alla palestra è concesso solo ed unicamente entro tali date. Un abbonato può iscriversi alla palestra senza portare il certificato medico. Ha tempo un mese a decorrere dalla data di iscrizione per portare il certificato medico. Dopo un mese non viene più ammesso alla palestra se ancora senza certificato medico.

Quando una persona rinnova l'abbonamento le informazioni relative al precedente abbonamento sono cancellate dalla base di dati. Non si è quindi interessati ad informazioni relative alla storia degli abbonamenti di un abbonato.

Nella palestra si tengono dei corsi. Ogni corso è caratterizzato da un codice, che lo identifica univocamente, un tipo (aerobica, step, kick boxing, ecc.), il giorno della settimana in cui si tiene il corso, un orario (esempio: 9 AM-10 AM)1, nome del preparatore atletico che tiene il corso, grado di difficoltà del corso (da 1 a 5 dove 1 indica i corsi per principianti e 5 i corsi avanzati). Si noti che esiste una sola zona della palestra dove si fanno i corsi, quindi non è possibile effettuare due corsi diversi contemporaneamente. Ogni preparatore atletico non può dedicare più di tre ore al giorno ai corsi. Il sabato pomeriggio (13 PM in poi) non si fanno corsi. Gli orari della palestra sono (9 AM-10 PM) tutti i giorni esclusa la domenica in cui la palestra è chiusa.

Per quello che riguarda il body building, esistono un insieme di schede predefinite da assegnare agli abbonati che hanno accesso alla sala pesi. Tali schede sono caratterizzate da un codice di scheda che le identifica, un grado di difficoltà (analogo a quello dei corsi), il nome del preparatore atletico che ha creato la scheda, se la scheda è adatta solo agli uomini, solo alle donne o ad entrambi, il tipo della scheda (circuito aerobico, potenziamento, tonificazione, ecc.), il tempo medio stimato per effettuare la scheda (un'ora, due ore, ecc.), per quanto tempo deve essere fatta la scheda (una settimana, un mese, due settimane, ecc.), quante volte alla settimana deve essere fatta la scheda. Ad ogni scheda è associato un certo numero di esercizi. Ogni esercizio è caratterizzato dal nome della macchina su cui fare l'esercizio e dalla descrizione dell'esercizio stesso. Si vuole inoltre tenere traccia del numero di ripetizioni per ogni serie e del numero di serie che devono essere effettuate per un dato esercizio relativamente ad una scheda.

Quando una persona si iscrive alla palestra con accesso alla sala pesi le viene assegnata obbligatoriamente una scheda. Si osservi che le schede hanno dei vincoli sul sesso della persona che svolge la scheda. Si vogliono tenere informazioni relative alla data in cui tale scheda è stata assegnata, la data in cui si presume di cambiare scheda2 e il preparatore atletico che la assegna, che può essere diverso da quello che ha creato la scheda. Una volta raggiunta la data in cui si presume di cambiare scheda il preparatore atletico convoca l'abbonato per effettuare un eventuale cambio di scheda o confermare quella attualmente assegnata. È possibile cambiare la scheda attualmente assegnata solo con una di 1 grado di difficoltà più alto di quella in corso, con una minore o con una di pari grado. Si può eventualmente confermare quella attualmente in uso. Va conservata nella base di dati la storia delle schede assegnate ad una persona fino a quando tale persona è iscritta alla palestra.

Si vogliono gestire, in modo consistente, attraverso la base di dati le entrate delle persone nella palestra. Per ogni entrata si memorizza la data3, l'ora di entrata e di uscita4. Nel caso in cui una persona entri per frequentare una o più ore di corsi si vuole memorizzare quali corsi la persona ha seguito. Gli utenti occasionali dopo cinque entrate hanno diritto ad un'entrata gratis. Per gli abbonati le entrate sono vincolate al tipo di abbonamento che una persona possiede. Alla data di scadenza di un abbonamento si vogliono cancellare le entrate relative a quell'abbonamento. Di seguito si enunciano, a titolo di esempio, alcuni (ma non tutti) dei vincoli che devono essere verificati.

Le operazioni previste sulla base di dati sono le seguenti:

1.
Persone.
(a)
Registrazione di una nuova persona.
(b)
Cancellazione di una persona.
(c)
Modifica dei dati relativi ad una persona.
(d)
Assegnazione di un tipo di abbonamento e, nel caso di abbonamento sala pesi o misto, di una scheda.
(e)
Determinazione degli abbonamenti scaduti e cancellazione dei dati relativi.
2.
Tipi di abbonamento.
(a)
Registrazione di un nuovo tipo di abbonamento.
(b)
Cancellazione di un tipo di abbonamento.
3.
Corsi.
(a)
Registrazione di un nuovo corso.
(b)
Cancellazione di un corso.
(c)
Aggiornamento delle informazioni relative ad un corso esistente.
4.
Scheda.
(a)
Registrazione di una nuova scheda.
(b)
Cancellazione di una scheda.
(c)
Aggiornamento delle informazioni relative ad una scheda esistente.
5.
Entrate.
(a)
Registrazione di una nuova entrata.
(b)
Eliminazione di tutte le entrate comprese fra due date fornite in ingresso.

6.
Altre procedure di gestione (di base).

(a)
Dato un abbonato, restituire i dati relativi all'abbonamento attualmente in suo possesso, indicando il prezzo dell'abbonamento e l'importo effettivamente pagato dall'abbonato.
(b)
Dato un abbonato, restituire i suoi ingressi alla palestra nell'ultimo mese.
(c)
Dato un abbonato con accesso alla sala pesi, restituire la storia delle schede a lui assegnate.
(d)
Dato un preparatore atletico restituire le schede da lui preparate e gli abbonati che le hanno effettuate per un periodo di tempo di almeno 1 mese.
(e)
Restituire tutti i corsi di un determinato tipo.
(f)
Dato un tipo di corso restituire il numero di ore settimanali allocate per quel tipo corso.
(g)
Data una persona restituire il numero di entrate effettuate da tale persona come utente occasionale e il guadagno della palestra determinato da tali entrate.
(h)
Restituire il codice di corso mediamente più frequentato5.
(i)
Data una settimana restituire il corso che ha registrato il massimo numero di presenze in tale settimana. Restituire, inoltre, tale numero di presenze.
(j)
Restituire le schede associate più frequentemente alle donne comprese fra i 26 e i 30 anni.
(k)
Restituire per ogni tipo di abbonamento la percentuale di lavoratori che lo possiede.
(l)
Restituire le percentuali di abbonati alla palestra suddivisi in fasce di età (21-25, 26-30, ecc.), rispetto al totale di abbonati.

È possibile inserire procedure di gestione addizionali che si ritengono utili.


next up previous
Next: Svolgimento dell'esercitazione Up: Progettazione di una base Previous: Progettazione di una base
Marco Mesiti
1999-12-22