Nuova ricerca

Federica MANDREOLI

Professore Ordinario
Dipartimento di Scienze Fisiche, Informatiche e Matematiche sede ex-Matematica

Insegnamento: Basi di dati

Informatica (Offerta formativa 2024)

Obiettivi formativi

Il corso di Basi di Dati si propone di introdurre gli studenti agli argomenti fondamentali nel campo delle basi di dati, i modelli, le strutture, la progettazione e l'interrogazione dei dati.

In particolare, il corso fornirà solide conoscenze e capacità di comprensione nell'ambito delle tecnologie per la rappresentazione e la gestione di dati strutturati complessi. La capacità di applicazione delle conoscenze si esplicherà principalmente nella capacità di progettare database mediante opportuni formalismi, di interrogare database mediante il linguaggio SQL, nonché nella capacità di progettare e realizzare complete implementazioni mediante tecnologie database.

Grazie alle fondamentali attività di progettazione, il corso fornirà allo studente anche la capacità di esprimere giudizi autonomi, di giustificare le scelte operate e di valutare criticamente i risultati ottenuti. Inoltre, sempre attraverso l'attività progettuale, il corso si pone l'obiettivo di incentivare il lavoro di gruppo, grazie al quale affinare le capacità di interazione e comunicazione tra pari.

Prerequisiti

Nessun prerequisito obbligatorio. Consigliati: Corsi di base sulla programmazione ed i sistemi operativi.

Programma del corso

*Introduzione ai sistemi informativi aziendali e alle basi di dati. 2 ore

*Progettazione concettuale (12 ore): modello Entità-Associazione, proprietà, identificatori esterni. Espressione di vincoli avanzati tramite identificatori esterni. Gerarchie IS-A, strategie di progetto.

*Progettazione logica (10 ore): modello logico relazionale, chiavi e vincoli di integrità, conversione di schemi concettuali in schemi relazionali, normalizzazione, dati derivati e relativo modello di valutazione.

*Progettazione fisica (10 ore): strutture e relativo costo di accesso ai dati, organizzazioni hash e B+Tree. Piani di accesso. Ottimizzazione di interrogazioni.

*Algebra relazionale (10 ore): operatori relazionali ed espressioni algebriche, operatori derivati, equivalenza di espressioni.

*Linguaggio SQL (10 ore): definizione dei dati, dichiarazione degli schemi. Interrogazioni semplici. Interrogazioni complesse (con ordinamento, aggregazione, raggruppamento, binarie e nidificate). Modifica dei dati. Creazione di indici, gestione di viste, autorizzazioni di accesso.

*Tecnologia di un DBMS (10 ore): architetture dei Data Base Management Systems, transazioni e concorrenza degli accessi, livelli di isolamento.

*Programmazione database dinamica (8 ore): stored procedure e trigger, JDBC.

Metodi didattici

Le tecniche presentate nel corso saranno mostrate sia dal punto di vista teorico che pratico, tramite un'ampia serie di attività di laboratorio e progettuali.

In particolare, oltre alle lezioni frontali, in cui gli studenti apprenderanno gli aspetti teorici della progettazione di basi di dati, un consistente numero di ore del corso sarà dedicato ad attività di laboratorio nella forma di esercitazioni sotto la guida del docente, in cui gli studenti proveranno con mano l'applicazione delle tecniche imparate a lezione su semplici casi pratici. Il corso prevede infine lo svolgimento di un progetto di gruppo per permettere agli studenti di imparare ad applicare metodi e tecniche in contesti pratici complessi e vicini alla realtà.

il corso è erogato in lingua italiana e in presenza. La frequenza non è obbligatoria ma fortemente consigliata.

Testi di riferimento

Appunti e lucidi di lezione disponibili su Moodle.
Testi di riferimento:
Atzeni P. Ceri Paraboschi Torlone:"Basi di Dati", Mc-Graw Hill 2023.
Beneventano D., Bergamaschi S., Vincini M.:"Progetto di Basi di Dati Relazionali", Pitagora.
Albano A: "Costruire sistemi per basi di dati", Addison Wesley.
Grandi F: "Esercizi di Basi di Dati", Progetto Leonardo

Verifica dell'apprendimento

Il corso prevede un esame scritto e un progetto di gruppo. Lo scritto comprende sia esercizi di progettazione relativi a specifici aspetti delle basi di dati (schema concettuale e logico, dati derivati), sia esercizi di implementazione (interrogazioni in SQL), sia domande aperte sugli argomenti di tecnologia database visti a lezione. Ad ogni esercizio è attribuito un punteggio massimo.

Lo svolgimento di un progetto di gruppo consentirà infine di valutare la capacità di applicazione delle tecniche viste a contesti pratici complessi; in questo caso, oltre ad individuare una soluzione corretta ed adeguata, sarà fondamentale anche descrivere con chiarezza il proprio progetto ed esplicitare le motivazioni delle scelte progettuali e tecnologiche effettuate.

Prova scritta e progetto sono valutati con punteggio massimo di 32 punti (valutazioni maggiori di 30 corrispondono a 30 e lode).

Il voto finale è la media pesata del voto della prova scritta e del progetto.

Sono previsti sei appelli scritti all'anno; il progetto potrà essere consegnato in qualunque momento dell'anno e verrà corretto in concomitanza con l'appello scritto successivo.

Risultati attesi

Conoscenza e capacità di comprensione: Tramite lezioni in aula, lo studente avrà solide conoscenze e capacità di comprensione nell'ambito della teoria delle basi di dati, della raccolta ed analisi dei requisiti, delle metodologie di progettazione concettuale e logica, delle tecniche di interrogazione, delle principali tecnologie utilizzate in un DBMS transazionale.

Capacità di applicare conoscenza e comprensione: Tramite esercitazioni pratiche al computer e lo svolgimento di attività progettuali individuali e di gruppo, lo studente sarò in grado di applicare le conoscenze acquisite nella progettazione ed implementazione dei dati e delle operazioni di una base di dati, anche in applicativi collegati.

Autonomia di giudizio: Tramite lo svolgimento di attività progettuali individuali e di gruppo, lo studente sarà in grado di valutare, esporre e discutere criticamente le scelte progettuali adottate ed i risultati ottenuti nell'ambito di un sistema informativo complesso.

Abilità comunicative: Le domande progettuali e le domande aperte dell'esame scritto, nonché la stesura della relazione sul progetto di gruppo, daranno modo allo studente di organizzare e presentare con chiarezza e sinteticità, oltre che con linguaggio tecnico appropriato, i risultati del proprio lavoro. Inoltre, lo svolgimento pratico del progetto richiederà piena capacità di leggere con profitto documentazione tecnica in lingua inglese.

Capacità di apprendimento: Le attività descritte consentiranno allo studente di acquisire gli strumenti metodologici per proseguire gli studi e per potere provvedere autonomamente al proprio aggiornamento, particolarmente cruciale in un ambito come quello informatico di gestione dell'informazione, dove le tecnologie sono spesso in continua evoluzione.