2002 – Banca del tempo

Un’associazione Banca del Tempo vuole realizzare una base di dati per registrare e gestire le attività dell’associazione.

La Banca del Tempo (BdT) indica uno di quei sistemi organizzati di persone che si associano per scambiare servizi e/o saperi, attuando un aiuto reciproco.
Attraverso la BdT le persone mettono a disposizione il proprio tempo per determinate prestazioni (effettuare una piccola riparazione in casa, preparare una torta, conversare in lingua straniera, ecc.) aspettando di ricevere prestazioni da altri.
Non circola denaro, tutte le prestazioni sono valutate in tempo, anche le attività di segreteria.
Le prestazioni sono suddivise in categorie (lavori manuali, tecnologie, servizi di trasporto, bambini, attività sportive, ecc.).

Chi dà un’ora del suo tempo a qualunque socio, riceve un’ora di tempo da chiunque faccia parte della BdT.
La base di dati dovrà mantenere le informazioni relative ad ogni prestazione (quale prestazione, da chi è stata erogata, quale socio ha ricevuto quella prestazione, per quante ore e in quale data) per consentire anche interrogazioni di tipo statistico.

Il territorio di riferimento della BdT è limitato (un quartiere in una grande città o un piccolo comune) ed è suddiviso in zone; la base di dati dovrà contenere la mappa del territorio e delle singole zone, in forma grafica.

Si consideri la realtà di riferimento sopra descritta e si realizzino:

  1. la progettazione concettuale della realtà indicata attraverso la produzione di uno schema (ad esempio ER, Entity – Relationship) con gli attributi di ogni entità, il tipo di ogni relazione e i suoi eventuali attributi;
  2. una traduzione dello schema concettuale realizzato in uno schema logico (ad esempio secondo uno schema relazionale);
  3. le seguenti interrogazioni espresse in algebra relazionale e/o in linguaggio SQL:
    1. produrre l’elenco dei soci (con cognome, nome e telefono) che hanno un “debito” nella BdT (coloro che hanno usufruito di ore di prestazioni in numero superiore a quelle erogate);
    2. data una richiesta di prestazione, visualizzare la porzione di mappa del territorio nel quale si trova il socio richiedente e l’elenco di tutti i soci che si trovano in quella zona in grado di erogare quella prestazione, visualizzandone il nome, cognome, indirizzo e numero di telefono;
    3. visualizzare tutti i soci che fanno parte della segreteria e che offrono anche altri tipi di prestazione;
    4. produrre un elenco delle prestazioni ordinato in modo decrescente secondo il numero di ore erogate per ciascuna prestazione.
  4. (Facoltativo) Sviluppare il problema posto scegliendo una delle due seguenti proposte descrivendone le problematiche e le soluzioni tecniche adottabili:
    1. l’associazione BdT vuole realizzare un sito Web per rendere pubbliche le sue attività consentendo anche di effettuare on-line le interrogazioni della base di dati previste nel punto 3;
    2. l’associazione BdT vuole realizzare un sito Web attraverso il quale possa raccogliere l’adesione on-line di altri associati, attraverso il riempimento di un modulo da inviare via Internet all’associazione.