P r o vincia di P i stoia PIAZZA S. LEONE 1 51100 PISTOIA - TEL. 0573/3741 - http://www.provincia.pistoia.it OGGETTO: SELEZIONE PUBBLICA PER TITOLI ED ESAMI A N. 1 POSTO DI CAT. D.1., POSIZIONE ECONOMICA D.1, C.C.N.L. 31.03.1999 COMPARTO REGIONI AUTONOMIE LOCALI, PROFILO INFORMATICO – SERVIZIO BILANCIO E SERVIZI INFORMATICI. Prima Prova Scritta (18 settembre 2008) Prova estratta PROVA A Domanda 1 Determinazione della netmask ottima per un’unica rete IP. Sia data una rete con 27 hosts. Determinare la netmask minima necessaria per la gestione di tale rete, supponendo che debba essere inserita in una stessa network IP. Domanda 2 In Oracle, quali sono le funzionalità tipiche del tool RMAN? Domanda 3 In quale ambito ed a quale scopo è utilizzato il protocollo ICMP ? Domanda 4 che cosa è l’IP masquerading? Domanda 5 Descrivere sinteticamente qual è l’effetto del seguente comando in Linux: # iptables -A INPUT -s 192.168.0.10 -p tcp –dport 80 \ -j LOG --log-prefix "Dropped (http): " Domanda 6 In Linux, fornire un esempio d’uso di istruzioni PostgreSQL per effettuare un backup ed un restore di un database. Domanda 7 Si descriva sinteticamente (ad esempio in UML) lo schema di funzionamento di un software publish-subscribe. Domanda 8 In PHP, illustrare la differenza tra l’istruzione require e l’istruzione include. Domanda 9 Nell’ambito dell’ingegneria del software, definire lo scopo di utilizzo di una WBS (Work Breakdown Structure) e di un diagramma di PERT. Domanda 10 In Linux, descrivere il significato del seguente comando: route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.50 Domanda 11 In Linux, con quale comando è possibile impostare per una certa interfaccia di rete, più indirizzi ip (alias)? Se ne fornisca un esempio, supponendo che la scheda eth0 abbia IP 192.168.1.5 e si voglia impostare un alias 192.168.1.6 Date le seguenti informazioni (valevoli per le prossime 4 domande): Base di dati: Hotel La Base di Dati di una agenzia che organizza banchetti in vari Hotel sparsi sul territorio nazionale contiene le seguenti informazioni: Un elenco di Hotel, tra cui ci sono anche Hotel caratteristici che sono gli unici ad offrire particolari specialità Gli elenchi degli invitati ai singoli banchetti Anagrafica persone, contenente i dati delle persone che si rivolgono all’agenzia per organizzare un banchetto e i dati delle persone invitate al banchetto. Informazioni sui banchetti organizzati in occasione di particolari eventi (congressi, matrimoni, …) per conto dei clienti Un elenco delle portate tra cui si distinguono le specialità Un insieme di menu con l’elenco delle portate di cui sono composti La descrizione degli ingredienti di cui una portata è composta Tabelle HOTEL(NomeH, Località, Indirizzo, Telefono, #Posti) HOTEL _OFFRE_MENU(NomeH, Località, IdMenu) INVITATO(CodiceBanchetto, CodFiscInvitato) PERSONA(CodiceFiscale, Nome, Cognome, DataNascita, Indirizzo,#Telefono, Professione) MENU(IdMenu, NomePortata) PREZZO(IdMenu, Costo) PORTATA(NomePortata, Prezzo, Tipo, Specialità) INGREDIENTE(NomeIngrediente, Tipo) INGREDIENTI_IN_PORTATA(NomePortata, NomeIngrediente,Quantità) BANCHETTO(Codice, Occasione, Data, #Partecipanti, CodFiscCliente,NomeHotel, Località, IdMenu) Domanda 12 Tramite SQL , trovare il nome di tutti gli Hotel di Firenze e di Pistoia che abbiano almeno 50 posti Domanda 13 Tramite SQL, trovare gli ingredienti di tutti i primi piatti che sono specialità e appartengono a menù con un costo inferiore a 10 euro (nel risultato riportare anche il nome della portata) Domanda 14 Tramite SQL , creare una vista che contenga tutti gli ingredienti e le quantità delle specialità Domanda 15 Tramite SQL , modificare le righe della tabella Portata aumentando i prezzi pari a 15 euro di 5 euro Domanda 16 Cosa si intende per variazione di bilancio? Domanda 17 Descrivere i requisiti per la conservazione di documenti informatici ai sensi del Codice dell’Amministrazione Digitale. Domanda 18 Nel caso di attività di controllo ed ispettive, quali finalità vengono considerate di rilevante interesse pubblico ai sensi dell’art. 67 del Decreto Legislativo 196/2003? Prove non estratte PROVA B Domanda 1 Descrivere il significato della seguente riga di codice PHP: <? require("nome_file.php"); ?> Domanda 2 Sia data una rete con 15 host ed un router. Si cerchi di organizzare la rete in modo da impegnare un numero di indirizzi più limitato possibile Domanda 3 In quale ambito viene usato il protocollo H323? Domanda 4 In PostgreSQL su Linux, specificare quali sono i comandi per: - fermare il server - far avviare il server Domanda 5 Nel networking, a cosa serve la SNMP COMMUNITY ? Domanda 6 In Oracle, qual è lo scopo dei Redo Log Files? Domanda 7 In linux , in quale contesto viene tipicamente utilizzato il comando make config ? Domanda 8 Descrivere sinteticamente qual è l’effetto del seguente comando in Linux: # iptables -A FORWARD -m state NEW \ -m mac –mac-source 00 :CA :EA :BB :DE :00 –j ACCEPT Domanda 9 In Linux, fornire il comando per impostare la subnet 255.255.255.0 per la scheda eth0. Domanda 10 Elencare alcune tipologie di diagrammi UML utili per documentare il software nella programmazione ad oggetti. Domanda 11 In Linux, qual è l’utilizzo tipico del comando netstat ? Fornire inoltre il significato del seguente comando: netstat -ia Date le seguenti informazioni (valevoli per le prossime 4 domande): Base di dati: Hotel La Base di Dati di una agenzia che organizza banchetti in vari Hotel sparsi sul territorio nazionale contiene le seguenti informazioni: Un elenco di Hotel, tra cui ci sono anche Hotel caratteristici che sono gli unici ad offrire particolari specialità Gli elenchi degli invitati ai singoli banchetti Anagrafica persone, contenente i dati delle persone che si rivolgono all’agenzia per organizzare un banchetto e i dati delle persone invitate al banchetto. Informazioni sui banchetti organizzati in occasione di particolari eventi (congressi, matrimoni, …) per conto dei clienti Un elenco delle portate tra cui si distinguono le specialità Un insieme di menu con l’elenco delle portate di cui sono composti La descrizione degli ingredienti di cui una portata è composta Tabelle HOTEL(NomeH, Località, Indirizzo, Telefono, #Posti) HOTEL _OFFRE_MENU(NomeH, Località, IdMenu) INVITATO(CodiceBanchetto, CodFiscInvitato) PERSONA(CodiceFiscale, Nome, Cognome, DataNascita, Indirizzo,#Telefono, Professione) MENU(IdMenu, NomePortata) PREZZO(IdMenu, Costo) PORTATA(NomePortata, Prezzo, Tipo, Specialità) INGREDIENTE(NomeIngrediente, Tipo) INGREDIENTI_IN_PORTATA(NomePortata, NomeIngrediente,Quantità) BANCHETTO(Codice, Occasione, Data, #Partecipanti, CodFiscCliente,NomeHotel, Località, IdMenu) Domanda 12 Tramite SQL, trovare il nome di tutte le portate che hanno tra gli ingrediente almeno 50 gr. di Burro Domanda 13 Tramite SQL, modificare le righe della tabella Portata diminuendo i prezzi pari a 50 euro di 5 euro Domanda 14 Tramite SQL, trovare il nome degli Hotel e la rispettiva località che hanno un menù in cui offrono le Penne al pomodoro. Domanda 15 Tramite SQL, creare una vista che contenga nome e località di tutti gli Hotel caratteristici (Hotel che offrono specialità) di Pistoia. Domanda 16 Quali sono i diritti dei Consiglieri provinciali nei confronti degli organi e degli uffici dell’Amministrazione provinciale? Domanda 17 Descrivere le caratteristiche ed i requisiti che devono possedere i certificatori ai sensi del Codice dell’Amministrazione Digitale. Domanda 18 Si indichi quando l’interessato ha diritto ad opporsi al trattamento dei dati personali. PROVA C Domanda 1 In Linux, descrivere il significato del seguente comando: kill -9 3208 Domanda 2 In Linux, se ad un file è associato il diritto di accesso tramite la mask 610, cosa vuol dire? Domanda 3 In Oracle, descrivere come fare un backup completo di un database a “caldo”. Domanda 4 In Linux, descrivere il significato del seguente comando: route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0 Domanda 5 Descrivere il significato della seguente riga di codice Java: import java.sql.* Domanda 6 Ad una rete IP privata è assegnato l’insieme di indirizzi definiti da: - address: 208.57.0.0 - netmask: 255.255.0.0 Occorre partizionare la rete in modo da servire una vecchia rete locale con circa 4000 host. a) che netmask serve per definire la sotto-rete per i circa 4000 host? b) che indirizzo di rete gli si può associare (risposta non univoca)? c) quante altre reti delle stesse dimensioni si possono definire? Domanda 7 Nell’ambito dei DBMS, che cosa sono i trigger? Fornirne un semplice esempio descrittivo. Domanda 8 In quale ambito è utilizzato il protocollo SNMP ? Domanda 9 Per documentare le applicazioni object-oriented, quali diagrammi UML vengono tipicamente usati? Domanda 10 In PostgreSQL su Linux , specificare come effettuare un dump di un Database. Domanda 11 In Linux, qual è l’utilizzo tipico del comando netstat ? Fornire inoltre il significato del seguente comando: netstat -nr Date le seguenti informazioni (valevoli per le prossime 4 domande): Base di dati: Hotel La Base di Dati di una agenzia che organizza banchetti in vari Hotel sparsi sul territorio nazionale contiene le seguenti informazioni: Un elenco di Hotel, tra cui ci sono anche Hotel caratteristici che sono gli unici ad offrire particolari specialità Gli elenchi degli invitati ai singoli banchetti Anagrafica persone, contenente i dati delle persone che si rivolgono all’agenzia per organizzare un banchetto e i dati delle persone invitate al banchetto. Informazioni sui banchetti organizzati in occasione di particolari eventi (congressi, matrimoni, …) per conto dei clienti Un elenco delle portate tra cui si distinguono le specialità Un insieme di menu con l’elenco delle portate di cui sono composti La descrizione degli ingredienti di cui una portata è composta Tabelle HOTEL(NomeH, Località, Indirizzo, Telefono, #Posti) HOTEL _OFFRE_MENU(NomeH, Località, IdMenu) INVITATO(CodiceBanchetto, CodFiscInvitato) PERSONA(CodiceFiscale, Nome, Cognome, DataNascita, Indirizzo,#Telefono, Professione) MENU(IdMenu, NomePortata) PREZZO(IdMenu, Costo) PORTATA(NomePortata, Prezzo, Tipo, Specialità) INGREDIENTE(NomeIngrediente, Tipo) INGREDIENTI_IN_PORTATA(NomePortata, NomeIngrediente,Quantità) BANCHETTO(Codice, Occasione, Data, #Partecipanti, CodFiscCliente,NomeHotel, Località, IdMenu) Domanda 12 Tramite SQL, trovare i nomi degli Hotel di Pistoia aventi un numero di posti superiore a 50 e che offrono specialità. Domanda 13 Tramite SQL, trovare nome e cognome delle persone che si sono rivolte all’agenzia per organizzare un banchetto in occasione di un Compleanno. Domanda 14 Tramite SQL, modificare le righe della tabella Portata raddoppiando i prezzi pari a 10 euro. Domanda 15 Tramite SQL, creare una vista che contenga nome e località di tutti gli Hotel che offrono specialità a Firenze. Domanda 16 Cosa si intende per residui attivi? Domanda 17 Indicare la composizione della Commissione di coordinamento del Sistema Pubblico di Connettività. Domanda 18 Indicare quali sono i dati sensibili ai sensi del Decreto Legislativo 196/2003. Seconda Prova Scritta (19 settembre 2008) Prova estratta TRACCIA C L’Amministrazione ha deciso di dotarsi di un Firewall per migliorare la sicurezza perimetrale del proprio Ente (da collocarsi in corrispondenza dell’unica linea dati per la connessione all’esterno). Si descrivano i principali requisiti funzionali che dovrà possedere il Firewall (motivando le scelte adottate). Al fine di fornire un ordine di grandezza del contesto, si supponga che l’Amministrazione debba gestire almeno 20 sistemi server su LAN con un congruo numero di applicativi fruibili via Intranet da almeno 400 client e siano previste tre DMZ con circa due server e 5 applicativi per ciascuna DMZ. Si supponga che uno dei suddetti Server in DMZ ospiti il seguente Database UnivDb (in ambiente MYSQL): cdl = {id, id_facolta, nome, classe_di_laurea, numero_chiuso}; facolta = {id, nome, indirizzo, citta}; insegnamento = {id, id_cdl, nome, crediti, anno}; Supponiamo di voler cancellare tutti i dati di un corso di laurea attraverso un’applicazione web. La struttura generale dovrà essere la seguente: all'utente sarà proposta una form in cui si richiederà di immettere il codice del corso e poi, cliccando su un pulsante, verrà visualizzata un’ulteriore form contenente i dati principali del corso (es. classe di laurea e codice facoltà) da cancellare. L’utente potrà così confermare la cancellazione dei dati cliccando su un pulsante a video; a conclusione dell’operazione l'utente riceverà una pagina con la "ricevuta" dell'operazione. Il candidato descriva e riporti le porzioni di codice ritenute più significative per identificare la soluzione del suddetto problema. Il linguaggio da utilizzare dovrà essere Open-Source (preferibilmente PHP o Java). Il candidato illustri come poter gestire le problematiche relative all’integrità referenziale del database per il problema illustrato. Fornire un esempio di diagramma UML che documenti opportunamente l’ipotetico programma sviluppato. Prove non estratte TRACCIA A Si illustri come realizzare una congrua architettura di disaster-recovery per il salvataggio di alcuni sistemi e dei dati presenti nel sistema informatico della LAN dell’Amministrazione: si supponga di disporre di almeno 20 sistemi server (con vari sistemi operativi sui diversi server e vari applicativi e DBMS). Riguardo ai server, 15 sono situati nella sede centrale e 5 in sedi remote (1 server per sede remota) con collegamenti xDSL punto-punto tra la sede remota e la sede centrale. La soluzione adottata dovrà essere il più possibile automatizzata e centralizzata nella gestione. Riguardo alle scelte tecnologiche (architettura, protocolli, QoS, politiche di backup e sicurezza, ecc.) si fornisca una motivazione delle scelte adottate. Si supponga inoltre che la suddetta sede centrale dell’Amministrazione ospiti un Server con il seguente Database UnivDb (in ambiente MYSQL): cdl = {id, id_facolta, nome, classe_di_laurea, numero_chiuso}; facolta = {id, nome, indirizzo, citta}; insegnamento = {id, id_cdl, nome, crediti, anno}; Supponiamo di voler creare una pagina web per l'inserimento dei dati minimali associati ad un nuovo corso di laurea (es. codice del corso e codice della facoltà). La struttura generale dovrà essere la seguente: dovrà comparire una form in cui si richiede all'utente di immettere i dati che si vogliono inserire e poi, cliccando su un pulsante, il controllo passerà ad uno script che eseguirà l'operazione di aggiornamento della base di dati. Una volta avvenuto l'inserimento, uno script richiamerà automaticamente un nuova pagina che si occuperà di visualizzare un messaggio di conferma all'utente. Il candidato descriva e riporti le porzioni di codice ritenute più significative per identificare la soluzione del suddetto problema. Il linguaggio da utilizzare dovrà essere Open-Source (preferibilmente PHP o Java). In riferimento ai fogli di stile, il candidato illustri come sia possibile associare un foglio di stile CSS ai form, fornendone un semplice esempio per il form di inserimento dati. Fornire un esempio di diagramma UML che documenti opportunamente l’ipotetico programma sviluppato. TRACCIA B Si illustri una soluzione per realizzare un collegamento dati wireless che consenta il collegamento di tre sedi remote con la sede centrale dell’Amministrazione. Tutte le sedi si trovano nell’ambito dello stesso centro cittadino. Si illustrino in particolare le problematiche da dover valutare, le scelte tecnologiche, i protocolli adottati, l’architettura per la sicurezza, il monitoraggio e la QoS. Fornire un’opportuna motivazione delle scelte adottate. Si supponga inoltre che la suddetta sede centrale dell’Amministrazione ospiti un Server con il seguente Database UnivDb (in ambiente MYSQL): cdl = {id, id_facolta, nome, classe_di_laurea, numero_chiuso}; facolta = {id, nome, indirizzo, citta}; insegnamento = {id, id_cdl, nome, crediti, anno}; Supponiamo di voler creare una pagina web per la modifica di alcuni dati di un corso di laurea. La struttura generale dovrà essere la seguente: dovrà comparire una form in cui si richiede all'utente di immettere il codice del corso di laurea e poi, cliccando su un pulsante, i dati principali del corso (es. classe di laurea e codice facoltà) sono presentati all'utente in una form, pronti per essere modificati. Una volta che l'utente avrà sottomesso la form, il controllo passerà ad uno script che eseguirà l'operazione di aggiornamento della base di dati. Se la modifica è avvenuta con successo l'utente viene rediretto a una pagina con la "ricevuta" dell'operazione (la “ricevuta” visualizza i dati modificati). Il candidato descriva e riporti le porzioni di codice ritenute più significative per identificare la soluzione del suddetto problema. Il linguaggio da utilizzare dovrà essere Open-Source (preferibilmente PHP o Java). Si illustri inoltre come poter gestire eventuali controlli sui dati immessi e relativi messaggi all’utente, fornendone un esempio. Fornire un esempio di diagramma UML che documenti opportunamente l’ipotetico programma sviluppato.