SPECIFICHE DEL SISTEMA
Si vuole realizzare una base di dati per un sistema (collaborativo) di raccolta di informazioni turistiche. Il sistema gestisce i dati relativi alle localita’ turistiche d’interesse ed agli utenti registrati. Per le localita’ turistiche, si vuole memorizzare il nome, la regione, lo stato, ed il prefisso telefonico. Ad ogni localita’ turistica possono essere associati uno o piu’ Punti d’Interesse (PI). Ogni PI ha un nome univoco (per quella localita’), ed una coppia di coordinate GPS (latitudine, longitudine). Inoltre, i PI possono appartenere a tre categorie: PI naturalistici, PI architettonici e PI museali. I PI architettonici possono disporre di notizie storiche ad esso associate, inserite dagli utenti del sistema. Per i PI museali, si vuole memorizzare: orario apertura, orario chiusura, recapito telefonico, prezzo d’ingresso. Inoltre, si vuole tenere traccia delle mostre correnti che potrebbero svolgersi in ciascun PI museale (al piu’ 3 mostre per ciascun museo), memorizzando il nome univoco dell’esposizione, la data d’inizio, la data di fine, il prezzo d’ingresso. A ciascun PI possono essere associate delle raccolte fotografiche. Ogni raccolta ha un nome univoco, una breve descrizione, e contiene un insieme di foto (di cui ciascuna ha un nome, una risoluzione, una dimensione in KB, ed una data d’acquisizione). Gli utenti del sistema hanno un nickname (univoco), una password d’accesso, uno o piu’
recapiti email. Sono divisi in due categorie: Utenti Semplici (US) ed Utenti dell’Associazione (UA). Ogni utente puo’:
-‐ Inserire un appunto di viaggio relativo ad un PI. L’appunto di viaggio e’ un commento di testo (di max 50 caratteri), con una data d’inserimento, ed una valutazione complessiva sul gradimento (un intero compreso tra 0 e 5).
-‐ Inserire una nota storica relativa ad un PI architettonico. Ogni nota e’ un commento di testo (max 200 caratteri), con data d’inserimento, e corredata da eventuali riferimenti bibliografici.
-‐ Definire dei percorsi personalizzati tra i PI di una certa localita’. Ogni percorso ha un nome univoco (per quella localita’), una distanza in Km, una durata (in minuti), una difficolta’ (un intero tra 0 e 5), ed e’ composto da un certo insieme di tappe. Ogni tappa connette un PI di partenza con un PI d’arrivo, ha un numero progressivo (per quel percorso), una distanza (in Km), un tempo di trasferimento, ed un tempo di sosta sul PI d’arrivo. Il tempo complessivo di un percorso deve essere pari alla somma dei tempi di trasferimento e di sosta di ciascuna tappa intermedia.
Gli utenti dell’Associazione hanno un abbonamento (con data di inizio/fine) e possono proporsi come Referenti (ossia come persone da contattare in caso di necessita’ di eventuali informazioni) per una o piu’ tappe del percorso. Inoltre, il sistema prevede la presenza di “canali tematici” composti da gruppi di utenti che dispongono di interessi simili. Ogni canale ha un nome univoco (es. “Appassionati del Medioevo”), una breve descrizione, ed una lista di utenti registrati a quel canale, oltre al numero degli stessi. Non e’ consentito creare dei percorsi con piu’ di 20 tappe. Ogni Utente Semplice (US) puo’ creare al max 5 percorsi per una stessa localita’.
Sono a disposizione le seguenti informazioni sui volume (medio) previsto sui dati:
-‐ Numero medio di utenti registrati: 1000, di cui il 10% come UA -‐ Numero medio di localita’: 40
-‐ Numero di PI per ciascuna localita’: 50
-‐ Numero medio di percorsi per ciascuna localita’: 30 -‐ Numero medio di canali tematici: 25
-‐ Numero medio di registrazioni di ciascun utente: 5
Dal punto di vista degli utenti del sistema, si considerano come prioritarie per la realizzazione del sistema le seguenti operazioni sui dati:
[Op1] Interattiva -‐ frequenza: 100 volte/giorno: visualizzare tutti i percorsi associati ad una certa localita’. Di ogni percorso si vuole visualizzare nome, distanza, durata, difficolta’ e nome dell’utente che lo ha creato.
[Op2] Interattiva -‐ frequenza: 10 volte/giorno: aggiungere una nota storica ad un PI architettonico.
[Op3] Interattiva-‐ frequenza: 20 volte/giorno: aggiungere un appunto di viaggio relativo ad un PI.
[Op4] Interattiva-‐ frequenza: 100 volte/giorno: visualizzare le informazioni relative alle tappe associate di un percorso. Per ogni PI di partenza o arrivo di una tappa, visualizzare il nome, le coordinate, e la categoria.
[Op5] Interattiva-‐ frequenza: 5 volte/giorno: modificare un percorso aggiungendo/rimuovendo una tappa.
[Op6] Interattiva-‐ frequenza: 10 volte/giorno: registrarsi presso un canale tematico d’interesse.
[Op7] Interattiva-‐ frequenza: 1 volte/giorno: rimuovere tutte le registrazioni effettuate a canali tematici d’interesse.
[Op8 (sistema)] Batch -‐ frequenza: 1 volte/giorno: visualizzare tutti i dati (nome, descrizione, numero utenti) dei canali tematici che hanno piu’ di 20 registrazioni.
PROGETTAZIONE DEL SISTEMA
(1) Effettuare la decomposizione del testo in frasi omogenee, e costruire un glossario dei termini.
(2) Costruire il diagramma E-‐R dei dati.
(3) Corredare il diagramma E-‐R di dizionari dei dati (entita’/relazione) e della tavola delle business rules.
(4) Effettuare l’analisi delle ridondanze, valutando la necessita’ di rimuoverle o conservarle nello schema E-‐R.
(5) Ristrutturare lo schema E-‐R per favorirne la traduzione nel modello logico.
(6) Tradurre il diagramma E-‐R ristrutturato nel modello logico, individuando eventuali vincoli di integrita’ sui dati.
(7) Implementare lo schema logico in SQL, e popolare un’istanza della base di dati in PostgreSQL, considerando tutti i vincoli dello schema.