LABORATORIO DI INFORMATICA
Anno accademico 2025/2026 - Docente: ANTONIO SALVATORE CALANDUCCIRisultati 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.
- Introduzione al corso: presentazione degli obiettivi didattici, creazione del workspace personale su Oracle APEX e caricamento del dataset di lavoro.
- 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.
- JOIN, ordinamento e aggregazione: chiavi primarie ed esterne, relazioni tra tabelle, NATURAL JOIN, ORDER BY, GROUP BY e COUNT.
- SQL avanzato, DDL e progettazione logica: l'istruzione DELETE, il linguaggio DDL e l'istruzione CREATE TABLE, i diagrammi Entità-Relazione (ERD).
- 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.
- 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.
- 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).
| Autore | Titolo | Editore | Anno | ISBN |
|---|---|---|---|---|
| Atzeni P., Ceri S., Paraboschi S., Torlone R. | Basi di dati: modelli e linguaggi di interrogazione | McGraw-Hill Education | 2009 (o edizione più recente) | 9788838666001 |
| Geller A., Spendolini B. | Oracle Application Express: Build Powerful Data-Centric Web Apps with APEX (Oracle Press) | McGraw-Hill Education | 2017 | 9780071843041 |
| Oracle Academy | Solve It With SQL (materiale didattico gratuito / free courseware) | Oracle Academy | 2025 | — |
Programmazione del corso
| Argomenti | Riferimenti testi | |
|---|---|---|
| 1 | Lezione I — Introduzione al corso: obiettivi, creazione del workspace Oracle APEX, caricamento del dataset | Materiale del docente (Moodle) |
| 2 | Lezione II — Introduzione a SQL: SELECT, WHERE, operatori logici, regole di precedenza, operatori di confronto, BETWEEN, INSERT | Materiale del docente (Moodle); Oracle Academy — Solve It With SQL |
| 3 | Lezione III — JOIN, ordinamento e aggregazione: chiavi primarie/esterne, NATURAL JOIN, ORDER BY, GROUP BY, COUNT | Materiale del docente (Moodle) |
| 4 | Lezione IV — SQL avanzato, DDL e progettazione logica: DELETE, CREATE TABLE, diagrammi ERD | Materiale del docente (Moodle) |
| 5 | Lezione V — Progettazione fisica ed equi-join: Data Dictionary, ALTER TABLE, UPDATE, equi-join | Materiale del docente (Moodle) |
| 6 | Lezione VI — Sviluppo app con Oracle APEX (I): struttura app, colonne BLOB, App Builder, tema grafico | Materiale del docente (Moodle) |
| 7 | Lezione VII — Sviluppo app con Oracle APEX (II): CRUD su form, faceted search, grafici e statistiche | Materiale 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
- 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'; - 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 - 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() - 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; - 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)
- 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).
- 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.
- Scrivi ed esegui una query che calcoli il peso medio dei neonati suddiviso per tipo di parto (Naturale/Cesareo), utilizzando GROUP BY.
- 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.
- 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.