In questa guida, Guida alla soluzione dei temi d’esame di Informatica, do alcuni consigli su come affrontare i temi d’esame di maturità per gli Istituti Tecnici ad indirizzo informatico

In questa guida, Guida alla soluzione dei temi d’esame di Informatica, do alcuni consigli su come affrontare i temi d’esame di maturità per gli Istituti Tecnici ad indirizzo informatico

Indice dei contenuti

Introduzione

In genere la prova d’esame di Informatica richiede la progettazione del database con il modello concettuale e il modello logico, la codifica in linguaggio SQL delle operazioni di creazione, manipolazione e interrogazione delle tabelle del database e la codifica di una parte significativa dell’ applicazione WEB per l’interazione con la base di dati utilizzando linguaggi a scelta sia lato client (HTML, CSS, JavaScript) sia lato server (in genere si sviluppa in PHP).

Le prove sono suddivise in due parti: la prima parte riguarda tutto quanto descritto finora mentre la seconda parte prevede di rispondere a due dei quattro quesiti proposti (in genere di carattere teorico- applicativo)

Nella guida fornirò alcune note e consigli per svolgere la prova nel miglior modo possibile.

La modellazione dei dati

1. Leggere più volte e attentamente il testo prima di decidere il modello dei dati

E’ fondamentale leggere più volte il testo prima di decidere il modello dei dati. E’ anche necessario focalizzare l’attenzione sull’output richiesto e sulle query per determinare correttamente e in modo completo gli attributi delle entità.

E’ utile anche motivare le scelte fatte evidenziando le eventuali ipotesi aggiuntive e i vincoli introdotti

2. L’ambito del problema non è un’entità.

In un problema come il seguente: ”In un Istituto scolastico si vogliono gestire con un database le informazioni sui docenti e gli studenti…”, l’Istituto non è un’entità.

3. Regole generali su entità, attributi e associazioni

Nella maggior parte dei casi:

  • i sostantivi corrispondono alle entità,
  • gli aggettivi e le proprietà corrispondono agli attributi,
  • i verbi alle associazioni.

4. Attributi descrittivi che si ripeteranno con valori uguali per istanze diverse della stessa entità

Gli attributi descrittivi che si ripeteranno con valori uguali per istanze diverse della stessa entità, per esigenze di normalizzazione, devono diventare entità (per esempio, Comuni, causali, tipologie, ecc.) legate da un’associazione 1:N con l’entità che devono descrivere. Esse saranno poi derivate in tabelle di decodifica (codice, descrizione).

5. Scelta del tipo di associazioni

Nella scelta del tipo di associazioni può essere utile ricorrere ad alcune considerazioni di carattere generale:

  • 1:1 è molto rara, probabilmente si risolve con una sola entità con gli attributi opportuni; se invece nel modello E/R deve essere per forza presente, si ricordi la regola di derivazione che risolve l’associazione in un’unica tabella con gli attributi della prima e della seconda entità;
  • 1:N è la più frequente; di solito la parte statica (o anagrafica) sta vicino a 1 e la parte dinamica, che rappresenta gli eventi (o movimenti), sta vicino a N;
  • N:N è possibile, ma può anche essere spezzata, già nella fase di modellazione, in due associazioni 1:N; in questo caso le due entità di partenza si trovano vicino a 1 e l’entità “di legame” si trova vicino a N. In caso contrario, dal modello E/R con associazione N:N, la regola di derivazione crea tre tabelle: la terza tabella contiene la chiave della prima entità, la chiave della seconda e gli eventuali attributi dell’associazione. L’insieme delle due chiavi può diventare la chiave composta della terza tabella.

6. Entità di tipo dinamico

Le entità di tipo dinamico (o movimenti) hanno sicuramente una data di registrazione perché rappresentano eventi; inoltre possono essere opportunamente caratterizzate da una chiave autoincrementale (ID di tipo contatore), numero progressivo o numero di registrazione.

7. Utilizzare regole di lettura per verificare la correttezza delle frasi

Dopo aver disegnato il modello E/R, utilizzare le regole di lettura per controllare la correttezza delle frasi in linguaggio comune rispetto al problema trattato. Le regole di lettura non devono essere considerate una scrittura formale, ma un modo concreto per validare il modello E/R. Se si ottiene una frase che non ha senso o è in contrasto con quanto scritto nel testo del problema, è bene rivedere il modello E/R, in particolare il tipo e i versi delle associazioni (entità che stanno vicino a 1 e entità che stanno vicino a molti).

La derivazione delle tabelle

Le regole di derivazione devono essere usate sempre con rigore ricordando che:

  • Ogni associazione 1:1, con le dovute eccezioni, diventa un’unica tabella.
  • Ogni associazione 1:N porta una chiave esterna nella tabella dalla parte di N.
  • Ogni associazione N:N porta due chiavi esterne nella terza tabella derivata.

La descrizione dei dati

I campi che non vengono usati in calcoli sono di tipo testo (stringa); per esempio, telefono, partita IVA, CAP, pur essendo composti da cifre, sono di tipo testo. Per facilitare la comprensione a se stessi e al docente, si possono esplicitare alcuni dati di esempio per ciascuna delle tabelle. I dati di esempio possono essere poi eventualmente usati nelle query.

Le interrogazioni e il linguaggio SQL

Anche nella gestione delle query è utile fare riferimento ai criteri generali:

  • Le query devono essere ottimizzate in modo da usare il minor numero di tabelle; se la richiesta riguarda solo un codice, che è chiave esterna, non serve usare anche la tabella collegata.
  • Se si usano funzioni di aggregazione (COUNT, SUM, AVG, …), quasi sempre c’è un GROUP BY. Ciò non significa nella totalità dei casi, perché le funzioni si possono usare anche per contare le righe che rispettano una condizione, oppure per sommare i valori di un campo numerico per le righe che rispettano una condizione.
  • Gli attributi scritti vicino a SELECT devono essere scritti vicino a GROUP BY e viceversa, a meno che non siano usati come argomento di funzioni di aggregazione.
  • Se c’è HAVING, ci deve essere GROUP BY, perché HAVING pone condizioni sui gruppi.
  • Vicino a HAVING c’è sicuramente una condizione con una funzione di aggregazione.
  • Vicino a HAVING non ci può essere una condizione sulle singole righe: questa deve essere messa vicino a WHERE. Viceversa, vicino a WHERE non ci possono essere condizioni con funzioni di aggregazione.
  • Per una più facile lettura e per una gestione più efficiente dei nomi, conviene sempre usare la clausola AS (alias) per assegnare un nome a un’espressione di calcolo o al valore restituito da una funzione di aggregazione; si può usare AS anche per assegnare nomi più corti ai nomi delle tabelle nelle query complesse.

La codifica in SQL

Il codice SQL deve essere scritto in modo ordinato e indentato su più righe per facilitarne la lettura. Normalmente le richieste del tema di esame riguardano operazioni di manipolazione e interrogazione sul database. Raramente viene richiesto di esplicitare in SQL l’operazione di creazione del database e delle tabelle, che sono attività svolte di solito attraverso l’interfaccia grafica dei software DBMS.Tuttavia per far capire meglio al docente le proprie scelte progettuali su campi, tipi di dato, scelta delle chiavi e integrità referenziale, può essere utile e più chiaro, nella presentazione dell’elaborato, scrivere il comando di creazione delle tabelle in linguaggio SQL. Per esempio, il comando di creazione della tabella Dipartimenti in associazione molti a uno con la tabella Dipendenti (nell’ipotesi che un dipendente-manager possa essere a capo di più di un dipartimento, mentre un dipartimento è diretto da un unico manager) è il seguente:

CREATE TABLE Dipartimenti(
  Codie varchar(5),
  Descrizione varchar(20) not null,
  Sede varchar(20),
  Manager smallint,
  Primary Key (Codice),
  Unique (Descrizione),
  Foreign Key (Manager) 
  references Dipendenti(ID)
  );

Le pagine WEB

  • Se la richiesta di visualizzazione dei dati riguarda informazioni contenute in un database, occorre sicuramente usare una pagina dinamica (ASP.NET o PHP).
  • Le operazioni sul database possono essere principalmente di manipolazione o di interrogazione: le prime restituiscono il numero di righe coinvolte nell’operazione, le seconde un insieme di righe. Le interrogazioni che usano funzioni di calcolo possono restituire anche una sola riga con un solo campo (conteggi, somme, medie, ecc.)
  • Il cuore della pagina dinamica è sicuramente il codice SQL: per maggiore chiarezza nella presentazione del compito, è opportuno trascrivere il comando o la query in SQL prima della pagina Web.
  • Se l’utente deve scegliere tra un elenco di descrizioni, è importante che la scelta sia guidata attraverso una casella combinata che presenta all’utente i valori contenuti nella tabella di decodifica, anche per prevenire possibili problemi di SQL Injection con l’input in caselle di testo.

Conclusioni

A questo punto abbiamo a disposizione tutti gli elementi per svolgere in modo appropriato il tema di esame. A breve sarà disponibile una sezione in cui potrete leggere gli articoli che fanno riferimento allo svolgimento di temi d’esame proposti durante gli anni passati ed una sezione in cui potrete visualizzare i video Youtube nei quali implemento step by step le soluzioni proposte

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *