Pag. 1/3 Sessione ordinaria 2015
Seconda prova scritta
Ministero dell’Istruzione, dell’Università e della Ricerca
–
M963 Esame di Stato di istruzione secondaria superiore
Indirizzo: ITIA - Informatica e telecomunicazioni
Articolazione informatica
Tema di: Informatica
Il candidato svolga la prima parte della prova e risponda a due tra i quesiti proposti nella seconda parte. C
Prima parte O
C Pi
On
Si vuole realizzare una web community per condividere dati e commenti relativi a eventi dal vivo di
A
diverse categorie, ad esempio concerti, spettacoli teatrali, balletti, ecc. che si svolgono in Italia.
C
S
E O
Gli eventi vengono inseriti sul sistema direttamente dai membri stessi della community, che si
Rv
N
registrano sul sito fornendo un nickname, nome, cognome, indirizzo di e-mail e scegliendo una o
Fo
più categorie di eventi a cui sono interessati.
A
T R
Ogni membro iscritto riceve periodicamente per posta elettronica una newsletter, emessa
O M
automaticamente dal sistema, che riporta gli eventi delle categorie da lui scelte, che si svolgeranno
A E
nella settimana seguente nel territorio provinciale dell'utente.
Gl Al
I membri registrati possono interagire con la community sia inserendo i dati di un nuovo evento, per
I L'
il quale occorre specificare categoria, luogo di svolgimento, data, titolo dell’evento e artisti
A O
Att
coinvolti, sia scrivendo un post con un commento ed un voto (da 1 a 5) su un evento.
R
Ig
I
Il sito della community offre a tutti, sia membri registrati sia utenti anonimi, la consultazione dei
D In
dati online, tra cui: Go Al
- Visualizzazione degli eventi di un certo tipo in ordine cronologico, con possibilità di filtro per
S E
territorio di una specifica provincia V
- Visualizzazione di tutti i commenti e voti relativi ad un evento.
Il candidato, fatte le opportune ipotesi aggiuntive, sviluppi un’analisi della realtà di riferimento
- Individuando le possibili soluzioni e scelga quella che a suo motivato giudizio è la più idonea a rispondere alle specifiche indicate
- Uno schema concettuale della base di dati
- Uno schema logico della base di dati
- La definizione in linguaggio SQL di un sottoinsieme delle relazioni della base di dati in cui siano presenti alcune di quelle che contengono vincoli di integrità referenziale e/o vincoli di dominio, laddove presenti
Soluzione della seconda prova di Informatica
Ecco la soluzione della seconda prova di Informatica per la traccia di maturità 2015 dell'Istituto tecnico Informatica. Ti interessa avere aggiornamenti sullo svolgimento della traccia?
Soluzione seconda prova Informatica
Schema concettuale
Schema logico
Schema logico secondo punto
Soluzione query di Informatica
Query 1:
SELECT * FROM evento INNER JOIN luogo ON evento.id_luogo = luogo.id WHERE evento.data_creazione < NOW() ORDER by luogo.provincia ASC
Query 2:
SELECT * FROM utente WHERE NOT EXISTS (SELECT null FROM voto WHERE voto.id_utente = utente.id)
Query 3:
SELECT ROUND(AVG(voto.voto), 1) as 'voto', categoria.nome, evento.nome FROM evento LEFT JOIN voto ON evento.id = voto.id_evento INNER JOIN categoria ON evento.id_categoria = categoria.id GROUP BY evento.nome, categoria.nome
Query 4:
SELECT count(evento.id_utente) as 'Numero Eventi', utente.id, utente.nome, utente.email, utente.nickname FROM evento INNER JOIN utente ON evento.id_utente = utente.id GROUP BY utente.id ORDER BY 'Numero Eventi' DESC LIMIT 1
Soluzione struttura definitiva di Informatica
CREATE TABLE `utente` ( `id` int NOT NULL AUTO_INCREMENT, `nickname` varchar(50) NOT NULL, `nome` varchar(50) DEFAULT NULL, `cognome` varchar(50) DEFAULT NULL, `email` varchar(255) NOT NULL, PRIMARY KEY(id) );
CREATE TABLE `categoria` ( `id` int NOT NULL AUTO_INCREMENT, `nome` varchar(50) DEFAULT NULL, PRIMARY KEY(id) );
CREATE TABLE `utente_categoria` ( `id` int NOT NULL AUTO_INCREMENT, `id_utente` int NOT NULL, `id_categoria` int NOT NULL, PRIMARY KEY(id), FOREIGN KEY (id_utente) REFERENCES utente(id), FOREIGN KEY (id_categoria) REFERENCES categoria(id) );
CREATE TABLE `luogo` ( `id` int NOT NULL AUTO_INCREMENT, `nome` varchar(255) DEFAULT NULL, `latitudine` varchar(50) DEFAULT NULL, `longitudine` varchar(50) DEFAULT NULL, `provincia` varchar(2), PRIMARY KEY(id) );
CREATE TABLE `evento` ( `id` int NOT NULL AUTO_INCREMENT, `nome` varchar(50) NOT NULL, `data_creazione` datetime DEFAULT NULL, `id_luogo` int NOT NULL, `id_categoria` int NOT NULL, `id_utente` int NOT NULL, PRIMARY KEY(id), FOREIGN KEY (id_luogo) REFERENCES luogo(id), FOREIGN KEY (id_categoria) REFERENCES categoria(id), FOREIGN KEY (id_utente) REFERENCES utente(id) );
CREATE TABLE `artista`( `id` int NOT NULL AUTO_INCREMENT, `nome` varchar(50), `cognome` varchar(50), `alias` varchar(50), PRIMARY KEY(id) );
CREATE TABLE `evento_artista` ( `id` int NOT NULL AUTO_INCREMENT, `id_evento` int NOT NULL, `id_artista` int NOT NULL, PRIMARY KEY (id), FOREIGN KEY (id_evento) REFERENCES evento(id), FOREIGN KEY (id_artista) REFERENCES artista(id) );
CREATE TABLE `voto` ( `id` int NOT NULL AUTO_INCREMENT, `id_utente` int NOT NULL, `id_evento` int NOT NULL, `commento` text, `voto` tinyint(4) DEFAULT NULL, PRIMARY KEY(id), FOREIGN KEY (id_utente) REFERENCES utente(id), FOREIGN KEY (id_evento) REFERENCES evento(id) );
Clicca qui per la Soluzione Sito di Informatica