Esercizio DataBase

DataBase - Una web community per eventi

Si vuole realizzare una web community per condividere dati e commenti relativi a eventi dal vivo di diverse categorie, ad esempio concerti, spettacoli teatrali, balletti, ecc. che si svolgono in Italia. Gli eventi vengono inseriti sul sistema direttamente dai membri stessi della community, che si registrano sul sito fornendo un nickname, nome, cognome, indirizzo di e-mail e scegliendo una o più categorie di eventi a cui sono interessati. Ogni membro iscritto riceve periodicamente per posta elettronica una newsletter, emessa automaticamente dal sistema, che riporta gli eventi delle categorie da lui scelte, che si svolgeranno nella settimana seguente nel territorio provinciale dell'utente. I membri registrati possono interagire con la community sia inserendo i dati di un nuovo evento, per il quale occorre specificare categoria, luogo di svolgimento, data, titolo dell’evento e artisti coinvolti, sia scrivendo un post con un commento ed un voto (da 1 a 5) su un evento. Il sito della community offre a tutti, sia membri registrati sia utenti anonimi, la consultazione dei dati on line, tra cui:

- visualizzazione degli eventi di un certo tipo in ordine cronologico, con possibilità di filtro per territorio di una specifica provincia;
- visualizzazione di tutti i commenti e voti relativi ad un evento.

Si sviluppi:
1. uno schema concettuale della base di dati;
2. uno schema logico della base di dati;
3. le seguenti interrogazioni espresse in linguaggio SQL:
a. elenco degli eventi già svolti, in ordine alfabetico di provincia;
b. elenco dei membri che non hanno mai inserito un commento;
c. per ogni evento il voto medio ottenuto in ordine di categoria e titolo;
d. i dati dell'utente che ha registrato il maggior numero di eventi;
4. il progetto della pagina dell’interfaccia WEB che permetta ad un utente registrato di svolgere le operazioni specificate;
5. la codifica in un linguaggio a scelta di un segmento significativo dell'applicazione Web che consente l'interazione con la base di dati.

Le due sezioni sottostanti sono praticamente identiche, si possono eseguire Query di tipo SELECT e di tipo NON-SELECT sia nella prima sezione che nella seconda, è indifferente.
Si consiglia di eseguire le query di selezione nella prima sezione e gli inserimenti o cancellazioni nella seconda, così da lasciare memorizzata nel box di esecuzione della prima sezione l'ultima query utilizzata (ripetibile con un click).


Per esempio (1):

Per esempio (2):

Per esempio (3):

Per esempio (4):

Per esempio (5):

Per esempio (?):

 

Cliccare sul bottone qui sopra può essere utile per visualizzare i risultati delle query non-SELECT appena eseguite senza dover scorrere la pagina ogni volta fino al bottone "Esegui Query" in cima all'esercizio: se si agisce su una tabella ad esempio inserendo o togliendo righe tramite i comandi qui sotto e si lascia una SELECT su QUELLA tabella memorizzata nel bottone sopra, si potrà giocare col DB senza mai spostarsi nella pagina, solo scrivendo Query qui sotto e visualizzandone i risultati in modo agevole.


Per esempio (1):

Per esempio (2):

Per esempio (3):