LABORATORIO DI INFORMATICA

Anno accademico 2025/2026 - Docente: ANTONIO SALVATORE CALANDUCCI

Risultati di apprendimento attesi

Conoscenza e comprensione

Lo studente acquisisce le conoscenze fondamentali dei sistemi di gestione di basi di dati relazionali (RDBMS) e del linguaggio SQL per l'interrogazione e la manipolazione dei dati. Conosce i principi della progettazione logica di una base di dati (modello Entità-Relazione) e della sua progettazione fisica (definizione di tabelle, vincoli, tipi di dato), e comprende come questi principi si applichino alla gestione delle informazioni. Conosce inoltre Oracle Application Express (APEX), piattaforma low-code per lo sviluppo rapido di applicazioni web data-oriented, come strumento per rendere accessibile e utilizzabile una base di dati anche a utenti non programmatori.

Capacità di applicare conoscenza

Lo studente è in grado di progettare la struttura logica e fisica di una semplice base di dati relazionale a partire da un'esigenza informativa reale, di scrivere ed eseguire interrogazioni SQL per estrarre, filtrare, ordinare, raggruppare e mettere in relazione i dati, e di utilizzare Oracle APEX per realizzare una semplice applicazione web data-oriented di consultazione e gestione dei dati. Il corso ha un taglio prevalentemente pratico: l'obiettivo primario è che lo studente sperimenti concretamente, in laboratorio, l'intero percorso che va dalla progettazione di un database al suo utilizzo quotidiano, acquisendo competenze operative trasferibili anche ad altri strumenti e contesti professionali.

Autonomia di giudizio

Lo studente sviluppa la capacità di analizzare autonomamente un'esigenza informativa reale in ambito professionale sanitario e di individuare la soluzione organizzativa più adatta a rappresentarla e gestirla in un sistema informativo, valutando criticamente la qualità, la completezza e l'affidabilità dei dati e delle informazioni prodotte.

Abilità comunicative

Lo studente acquisisce la capacità di descrivere in modo chiaro, anche a interlocutori privi di competenze informatiche, come sono organizzate le informazioni in un sistema informativo e le scelte fatte per rappresentarle, favorendo il dialogo tra professionisti sanitari e informatici nella progettazione e nell'uso di strumenti digitali per la gestione dei dati clinico-assistenziali.

Capacità di apprendimento

Lo studente acquisisce un metodo di lavoro (analisi del problema, progettazione dei dati, verifica incrementale delle soluzioni), trasferibile ad altri strumenti e contesti, che gli consente di proseguire autonomamente l'apprendimento relativo all'organizzazione e alla gestione delle informazioni anche al di fuori degli strumenti specifici utilizzati durante il corso.

Modalità di svolgimento dell'insegnamento

Il corso si svolge in presenza, in un laboratorio informatico, con modalità prevalentemente pratica: ogni lezione alterna momenti di spiegazione teorica a esercitazioni individuali svolte direttamente nell'ambiente Oracle APEX. A supporto della didattica in presenza, per ciascun argomento sono disponibili su Moodle lezioni testuali con istruzioni passo-passo (con esercizi e soluzioni) e video-lezioni registrate con relativa trascrizione testuale, utilizzabili dallo studente per il ripasso autonomo e il recupero di eventuali assenze.

Prerequisiti richiesti

Non sono richiesti prerequisiti di programmazione o di informatica avanzata. Sono utili conoscenze informatiche di base (uso del computer, navigazione web, gestione di file e cartelle). È necessaria la disponibilità di un dispositivo (Mac/PC/iPad/tablet Android) con connessione internet per l'accesso alla piattaforma cloud Oracle APEX, utilizzata per l'intero corso.

Frequenza lezioni

Frequenza obbligatoria, come previsto dal regolamento del Corso di Laurea in Ostetricia per le attività di laboratorio, con un max del 25% di assenze

Contenuti del corso

Il corso si articola in sette lezioni in laboratorio (per un totale di circa 21 ore) a taglio prevalentemente pratico. Ogni lezione viene sperimentata direttamente in Oracle APEX, piattaforma cloud gratuita di Oracle che consente di scrivere interrogazioni SQL e sviluppare semplici applicazioni web di gestione dati: gli argomenti sono introdotti in modo progressivo, con teoria seguita immediatamente da esercizi pratici e relative soluzioni.

  1. Introduzione al corso: presentazione degli obiettivi didattici, creazione del workspace personale su Oracle APEX e caricamento del dataset di lavoro.
  2. Introduzione a SQL: l'istruzione SELECT, la clausola WHERE, gli operatori logici (AND, OR, NOT), le regole di precedenza, gli operatori di confronto e BETWEEN, l'istruzione INSERT.
  3. JOIN, ordinamento e aggregazione: chiavi primarie ed esterne, relazioni tra tabelle, NATURAL JOIN, ORDER BY, GROUP BY e COUNT.
  4. SQL avanzato, DDL e progettazione logica: l'istruzione DELETE, il linguaggio DDL e l'istruzione CREATE TABLE, i diagrammi Entità-Relazione (ERD).
  5. Progettazione fisica ed equi-join: dal Data Dictionary allo script CREATE TABLE, le istruzioni ALTER TABLE e UPDATE, l'equi-join tra tabelle con colonne di nome differente.
  6. Sviluppo di un'applicazione con Oracle APEX (parte I): struttura di un'applicazione APEX, gestione di colonne di tipo BLOB per il caricamento di immagini, creazione guidata di una nuova applicazione con l'App Builder, personalizzazione del tema grafico.
  7. Sviluppo di un'applicazione con Oracle APEX (parte II): operazioni di creazione, modifica ed eliminazione di record (CRUD) tramite form, creazione di pagine di ricerca a filtri multipli (faceted search), realizzazione di grafici e statistiche a partire da interrogazioni SQL.

Testi di riferimento

Il materiale didattico principale è fornito dal docente attraverso la piattaforma Moodle del corso (https://elearning.unict.it/course/view.php?id=73591) e comprende: slide di teoria, video-registrazioni delle lezioni con relativa trascrizione testuale, esercizi pratici con le rispettive soluzioni.

Come testi di riferimento per approfondimento si consigliano: 

  • P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di dati: modelli e linguaggi di interrogazione, McGraw-Hill (per i fondamenti di basi di dati relazionali e SQL), 
  • A. Geller, B. Spendolini, Oracle Application Express: Build Powerful Data-Centric Web Apps with APEX, Oracle Press/McGraw-Hill (per l'ambiente Oracle APEX). 
Si utilizza inoltre, come riferimento gratuito, il materiale Oracle Academy "Solve It With SQL" e la documentazione ufficiale di Oracle APEX (https://docs.oracle.com/en/database/oracle/apex/).


AutoreTitoloEditoreAnnoISBN
Atzeni P., Ceri S., Paraboschi S., Torlone R.Basi di dati: modelli e linguaggi di interrogazioneMcGraw-Hill Education2009 (o edizione più recente)9788838666001
Geller A., Spendolini B.Oracle Application Express: Build Powerful Data-Centric Web Apps with APEX (Oracle Press)McGraw-Hill Education20179780071843041
Oracle AcademySolve It With SQL (materiale didattico gratuito / free courseware)Oracle Academy2025

Programmazione del corso

 ArgomentiRiferimenti testi
1Lezione I — Introduzione al corso: obiettivi, creazione del workspace Oracle APEX, caricamento del datasetMateriale del docente (Moodle)
2Lezione II — Introduzione a SQL: SELECT, WHERE, operatori logici, regole di precedenza, operatori di confronto, BETWEEN, INSERTMateriale del docente (Moodle); Oracle Academy — Solve It With SQL
3Lezione III — JOIN, ordinamento e aggregazione: chiavi primarie/esterne, NATURAL JOIN, ORDER BY, GROUP BY, COUNTMateriale del docente (Moodle)
4Lezione IV — SQL avanzato, DDL e progettazione logica: DELETE, CREATE TABLE, diagrammi ERDMateriale del docente (Moodle)
5Lezione V — Progettazione fisica ed equi-join: Data Dictionary, ALTER TABLE, UPDATE, equi-joinMateriale del docente (Moodle)
6Lezione VI — Sviluppo app con Oracle APEX (I): struttura app, colonne BLOB, App Builder, tema graficoMateriale del docente (Moodle)
7Lezione VII — Sviluppo app con Oracle APEX (II): CRUD su form, faceted search, grafici e statisticheMateriale del docente (Moodle)

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

La verifica dell'apprendimento avviene, di norma, tramite un test/prova pratica, svolta al computer nell'ambiente Moodle/Oracle APEX, articolata in due parti:

  • una serie di domande a risposta multipla relative ai concetti teorici del corso (organizzazione dei dati, modellazione di un database, linguaggio SQL, funzionalità di Oracle APEX, etc);
  • una serie di domande a risposta aperta che richiedono allo studente di scrivere ed eseguire una o più interrogazioni SQL nell'ambiente Oracle APEX per individuare la risposta corretta a partire da un dataset fornito dal docente, riportando sia la query utilizzata sia il risultato ottenuto.

In alternativa alla prova scritta, lo studente può concordare in anticipo con il docente un progetto facoltativo: la progettazione e realizzazione di una semplice applicazione di gestione dati in Oracle APEX su un caso d'uso da definire insieme al docente.

Per superare la prova lo studente deve dimostrare di saper interpretare correttamente la struttura di un database relazionale e di saper tradurre un quesito espresso in linguaggio naturale in un'interrogazione SQL sintatticamente corretta ed efficace.

L'insegnamento prevede un giudizio di idoneità (Idoneo/Non idoneo). Il giudizio di idoneità si consegue rispondendo correttamente a un numero minimo di domande, fissato dal docente e comunicato agli studenti prima della prova, calcolato come percentuale del totale delle domande a risposta multipla e a risposta aperta proposte nella prova (indicativamente, almeno il 60% delle domande complessive, con un numero minimo di domande a risposta aperta risolte correttamente).

Esempi di domande e/o esercizi frequenti

Le domande d'esame fanno riferimento a un semplice database di un'azienda sanitaria in ambito ostetrico, con le seguenti tabelle (schema semplificato fornito allo studente in sede d'esame):

  • pazienti (paziente_id, nome, cognome, data_nascita, comune_residenza)
  • parti (parto_id, paziente_id, data_parto, settimana_gestazionale, tipo_parto [Naturale/Cesareo], peso_neonato_g, punteggio_apgar, ostetrica_id)
  • personale (personale_id, nome, cognome, ruolo, reparto)

Domande a risposta multipla

  1. Quale istruzione SQL restituisce tutti i parti avvenuti con taglio cesareo dalla tabella parti?
    a) SELECT * FROM parti WHERE tipo_parto = 'Cesareo'; (risposta corretta)
    b) SELECT * FROM parti WHERE tipo_parto == 'Cesareo';
    c) SELECT * FROM parti WHERE tipo_parto LIKE Cesareo;
    d) SELECT * FROM parti VALUES tipo_parto = 'Cesareo';
  2. Quale clausola/costrutto SQL si utilizza per combinare i dati delle tabelle pazienti e parti sulla base di una chiave in comune?
    a) GROUP BY
    b) ORDER BY
    c) JOIN (o equi-join) (risposta corretta)
    d) WHERE NOT
  3. Per calcolare il peso medio dei neonati registrati nella colonna peso_neonato_g della tabella parti, quale funzione di aggregazione SQL si utilizza?
    a) SUM()
    b) AVG() (risposta corretta)
    c) COUNT()
    d) MAX()
  4. Quale delle seguenti istruzioni appartiene al DDL (Data Definition Language) e non al DML?
    a) INSERT INTO parti (...) VALUES (...);
    b) UPDATE pazienti SET comune_residenza = 'Catania' WHERE paziente_id = 10;
    c) CREATE TABLE personale (...); (risposta corretta)
    d) DELETE FROM personale WHERE personale_id = 5;
  5. Nella condizione WHERE reparto = 'Ostetricia' AND eta > 30 OR eta < 20, secondo le regole di precedenza SQL, quale coppia di condizioni viene valutata per prima?
    a) eta > 30 OR eta < 20
    b) reparto = 'Ostetricia' AND eta > 30 (risposta corretta)
    c) Nessuna delle due: le condizioni si valutano sempre da sinistra a destra
    d) In SQL la precedenza degli operatori logici non esiste

Domande a risposta aperta (richiedono la scrittura e l'esecuzione di una query SQL in Oracle APEX; lo studente deve riportare la query e il risultato)

  1. Scrivi ed esegui una query che restituisca nome e cognome di tutte le pazienti che hanno avuto un parto cesareo con settimana gestazionale inferiore alla 37ª (parto pretermine).
  2. Scrivi ed esegui una query che, tramite un JOIN tra le tabelle parti e personale, restituisca per ciascuna ostetrica il numero di parti seguiti, ordinando i risultati dal più alto al più basso.
  3. Scrivi ed esegui una query che calcoli il peso medio dei neonati suddiviso per tipo di parto (Naturale/Cesareo), utilizzando GROUP BY.
  4. Una neonatologa richiede l'elenco delle pazienti che hanno partorito nell'ultimo mese con un punteggio APGAR inferiore a 7. Scrivi ed esegui la query SQL che risolve la richiesta.
  5. Scrivi l'istruzione CREATE TABLE per una nuova tabella visite_prenatali che memorizzi: un identificativo univoco, il riferimento alla paziente (chiave esterna verso pazienti), la data della visita, la settimana gestazionale al momento della visita, e l'esito della visita in forma testuale.
ENGLISH VERSION