BASI DI DATI

Obiettivi formativi

Obiettivi Generali: Obiettivo del corso è la presentazione dei principi fondamentali delle basi di dati e dei relativi sistemi di gestione. Gli argomenti vengono trattati da vari punti di vista, coprendo aspetti teorici, metodologici, tecnologici ed applicativi. Alla fine del corso lo studente dovrebbe aver acquisito non soltanto le conoscenze teoriche sulla materia trattata, ma anche le tecniche e gli strumenti metodologici sufficienti per affrontare e condurre a termine il progetto completo di una base di dati. Obiettivi specifici: Conoscenza e comprensione: I principali modelli e linguaggi per la progettazione e la gestione delle basi di dati. Applicare conoscenza e comprensione: Essere in grado di progettare una base di dati a partire dai requisiti costruendo lo schema concettuale completo di vincoli; tradurre tale schema in un modello logico ed implementarlo su un DBMS relazionale, corredato di opportune interrogazioni. Capacità critiche e di giudizio: Essere in grado di valutare la qualità di un progetto di basi di dati e la correttezza delle applicazioni utilizzate nella gestione. Capacità comunicative: Le attività progettuali e le esercitazioni del corso permettono allo studente di essere in grado di comunicare/condividere i requisiti di una base di dati, nonché le scelte progettuali e le metodologie di progettazione e sviluppo. Capacità di apprendimento: Oltre alle classiche capacità di apprendimento fornite dallo studio teorico del materiale didattico, le modalità di svolgimento del corso, in particolare le attività progettuali, stimolano lo studente all'approfondimento autonomo di alcuni argomenti presentati nel corso, al lavoro di gruppo, e all'applicazione concreta delle nozioni e delle tecniche apprese durante il corso.

Canale 1
Canale 2
GABRIELE PROIETTI MATTIA Scheda docente

Programmi - Frequenza - Esami

Programma
Il corso introduce gli studenti ai concetti fondamentali dei sistemi di gestione di basi di dati (DBMS), affrontando sia gli aspetti teorici dei modelli dei dati, sia quelli pratici legati all’interrogazione e progettazione di basi di dati relazionali. Comprende moduli su modellazione concettuale, algebra relazionale, SQL e progettazione logica, alternando lezioni teoriche a esercitazioni pratiche. Argomenti principali - Introduzione al corso e concetti base: definizione di base di dati e di DBMS; nozioni su controllo di concorrenza e architettura dei sistemi di gestione. - Modelli dei dati: focus sul modello relazionale, vincoli intrarelazionali e interrelazionali. - Algebra Relazionale: -- Operatori di base: unione, intersezione, differenza, prodotto cartesiano. -- Operatori di selezione, proiezione e join (theta, equi, naturale). -- Operatori avanzati: divisione e gestione dei valori null. -- Esercitazioni dedicate sull’algebra relazionale. - SQL (Structured Query Language): -- Introduzione e forma base delle interrogazioni. -- Operazioni di join espliciti, naturali ed esterni. -- Aggregazione: funzioni di gruppo, GROUP BY, HAVING, operatori insiemistici. -- DDL (Data Definition Language) e DML (Data Manipulation Language). -- Interrogazioni nidificate. -- Esercitazioni pratiche su SQL: installazione PostgreSQL, creazione database, viste, vincoli e asserzioni. - Progettazione concettuale: -- Entità, relazioni e attributi. -- Generalizzazioni (ISA), aggregazioni e vincoli di cardinalità e identificazione. -- Metodologie di progettazione e esercizi di modellazione concettuale. - Progettazione logica: -- Traduzione dello schema concettuale (ER) in uno schema relazionale. -- Gestione delle ISA, vincoli e ridondanze. -- Esercitazioni su ristrutturazione e traduzione dello schema. - Chiusura corso: esercitazioni riepilogative e simulazioni di esami finali.
Prerequisiti
- Conoscenze di base di fondamenti di informatica - Conoscenza di almeno un linguaggio di programmazione ad alto livello - Nozioni introduttive di matematica discreta e logica - Capacità di utilizzo di strumenti software su sistemi operativi desktop
Testi di riferimento
Slide disponibili sul sito del corso R. Ramakrishnan, J. Gehrke. Sistemi di basi di dati. McGraw-Hill, 2004. (facoltativo) P.Atzeni, S.Ceri, S.Paraboschi, R.Torlone. Basi di Dati. Modelli e Linguaggi di Interrogazione. McGraw-Hill, 2014.
Frequenza
La frequenza al corso non è obbligatoria, ma è fortemente consigliata per una migliore comprensione dei contenuti e un apprendimento più efficace. Gli studenti sono invitati a partecipare attivamente alle lezioni frontali e alle esercitazioni pratiche sempre tenute in aula.
Modalità di esame
La valutazione del corso si basa su prove scritte che combinano esercizi teorico-pratici e interrogazioni formali, volte a verificare la comprensione e l'applicazione dei concetti fondamentali trattati. Opzionale è l'orale, se richiesto dallo studente o dal docente. Dettaglio della valutazione attraverso un esempio d'esame: - Domanda 1 (10 punti): Progettazione dello schema Entity-Relationship (ER) di un'applicazione concreta, richiedendo la traduzione di specifiche testuali in un modello concettuale grafico con entità, relazioni e attributi. - Domanda 2 (8 punti): Progettazione logica dello schema ER realizzato, enfatizzando la riduzione di valori nulli e la preparazione della base dati per una implementazione efficiente. - Domanda 3 (3 + 4 + 4 punti): Scrittura di interrogazioni SQL complesse su uno schema relazionale dato. - Domanda 4 (3 punti): Traduzione di un'interrogazione SQL in algebra relazionale, verificando la padronanza del linguaggio formale. Questa modalità di valutazione richiede quindi allo studente di saper passare dalla teoria alla pratica, utilizzando sia modellazione concettuale che interrogazioni su dati relazionali.
Bibliografia
R. Ramakrishnan, J. Gehrke. Sistemi di basi di dati. McGraw-Hill, 2004. (facoltativo) P.Atzeni, S.Ceri, S.Paraboschi, R.Torlone. Basi di Dati. Modelli e Linguaggi di Interrogazione. McGraw-Hill, 2014.
Modalità di erogazione
Il corso viene svolto attraverso un approccio misto che combina lezioni frontali teoriche con esercitazioni pratiche in laboratorio. La didattica si articola in diverse fasi: - Lezioni frontali: Vengono trattati i concetti teorici fondamentali legati ai sistemi di gestione di basi di dati, ai modelli relazionali, all’algebra relazionale, al linguaggio SQL, e alle metodologie di progettazione a livello concettuale, logico e fisico. Tali lezioni sono integrate da esempi pratici svolti in aula. - Esercitazioni pratiche: Durante le attività di laboratorio, gli studenti applicano le conoscenze teoriche realizzando modelli ER, scrivendo interrogazioni SQL e lavorando direttamente su DBMS come PostgreSQL o MySQL. Queste sessioni sono fondamentali per acquisire dimestichezza con la creazione, gestione, e interrogazione dei database. - Attività autonome: Vengono proposti esercizi da svolgere individualmente o in gruppo, in modo da sviluppare autonomia nello studio e nella risoluzione di problemi concreti. Questa impostazione didattica favorisce un apprendimento graduale che dall’acquisizione della teoria porta alla capacità di implementare e interrogare basi di dati reali in contesti simili a quelli professionali
  • Codice insegnamento1017397
  • Anno accademico2025/2026
  • CorsoIngegneria Gestionale
  • CurriculumCurriculum unico
  • Anno3º anno
  • Semestre1º semestre
  • SSDING-INF/05
  • CFU6