La prova richiesta agli studenti di Tecnico industriale ha previsto un testo valevole per i corsi di ordinamento e per i corsi sperimentali del progetto Sirio. In particolare, la prova verteva sulla realizzazione di un sistema informativo per la gestione dello stato degli immobili delle aziende dislocate sul territorio. IlSussidiario.net ha chiesto alla professoressa Laura Pavia di svolgere il tema assegnato agli studenti. Secondo la professoressa “la prova non presentava particolari difficoltà ed è in linea con quanto richiesto nelle prove d’esame degli anni passati”. Ecco lo svolgimento del tema. L’immagine riferita al Diagramma E/R si trova in terza pagina di questo articolo.
Principali ipotesi integrative
Il testo non indica se per un immobile è consentito aprire più di una pratica; nella soluzione proposta supponiamo che ciò sia possibile.
Una pratica si riferisce ad un progetto di risanamento di un edificio che può interessare più interventi di messa a norma; ciò è possibile poichè il testo non richiede elaborazioni relative a specifiche bonifiche.
L’inserimento, l’aggiornamento e la visualizzazione delle pratiche di un Comune possono essere effettuati solo dal/dai funzionari responsabili. Le operazioni riguardanti la Regione si suppone siano a carico di funzionari regionali.
Diagramma E/R
Schema logico
IMMOBILE (id_immobile,indirizzo,id_comune,id_azienda)
MATERIALE (id_materiale,nome,tipo_rischio)
UTILIZZATO (id_immobile,id_materiale)
COMUNE (id_comune,comune,regione)
AZIENDA (id_azienda,denominazione,indirizzo)
PRATICA (id_pratica,data_apertura, data_primo_sollecito,data_secondo_sollecito,data_inizio_lavori,
Data_fine_lavori, data_collaudo,esito_collaudo,data_chiusura,id_immobile,id_funzionario)
FUNZIONARIO (id_funzionario, nome, cognome, user, password,id_comune)
QUERY 1
Specifica: per data di registrazione si intende la data di apertura della pratica (dalla versione MySQL 3.23 vi è la possibilità di utilizzare + e – con i campi di tipo data).
SELECT p.*,comune
FROM pratica p, immobile i, comune c
WHERE p.id_immobile=i.id_immobile AND i. id_comune=c.id_comune AND now()-data_apertura>365
ORDER BY comune
QUERY 2
SELECT count(*) as totale
FROM pratica p, immobile i, comune c
WHERE p.id_immobile=i.id_immobile AND i. id_comune=c.id_comune AND regione=’$regione’ AND year(data_collaudo)=’$anno’ AND esito_collaudo=’APPROVATO’
QUERY 3
SELECT p.id_pratica
FROM pratica p, immobile i, comune c
WHERE p.id_immobile=i.id_immobile AND i. id_comune=c.id_comune AND c.comune=’$comune’
AND data_chiusura IS NULL
ORDER BY p. data_apertura
QUERY 4
CREATE TABLE TMP
SELECT c.id_comune, count(*) as totale
FROM pratica p, immobile i, comune c
WHERE p.id_immobile=i.id_immobile AND i. id_comune=c.id_comune AND regione=’$regione’ AND p.data_chiusura IS NOT NULL
GROUP BY c. id_comune
SELECT avg(totale) as media
FROM TMP
DROP TABLE TMP
NOTA: la query 4 potrebbe anche essere risolta utilizzando istruzioni SELECT annidate.
QUERY 5
SELECT c.comune, count(*) as totale
FROM pratica p, immobile i, comune c
WHERE p.id_immobile=i.id_immobile AND i. id_comune=c.id_comune AND p.data_chiusura IS NULL
Group by c.comune
ORDER BY totale DESC
QUERY 6
Il tempo di risposta al primo sollecito si calcola facendo la differenza fra la data di inizio lavori e la data di invio del sollecito
SELECT avg(data_inizio_lavori – data_primo sollecito) as durata_media
FROM pratica p, immobile i, comune c
WHERE p.id_immobile=i.id_immobile AND i. id_comune=c.id_comune AND c.comune=’$comune’ AND data_secondo_sollecito IS NULL
QUERY 7
SELECT *
FROM pratica
WHERE id_pratica=’$pratica’
Sito web
Per quanto riguarda il sito web, è lasciato ampio spazio al candidato per la scelta della/e pagine da progettare e codificare.
SOLUZIONE PROPOSTA DA: Amori Luisa, Bassani Claudia, Pavia Laura
Docenti IIS HENSEMBERGER – MONZA