Course Syllabus
Obiettivi formativi
Il corso è un'introduzione al mondo delle basi di dati relazionali. Sarà illustrato il modello relazionale, il linguaggio SQL per svolgere interrogazioni e per calcolare indicatori sintetici a partire da informazioni memorizzate in banche dati relazionali. Saranno illustrate le metodologie per la progettazione di basi di dati. Saranno introdotte le differenze tra dati strutturati, semi-strutturati e non strutturati, e le problematiche connesse con la loro gestine. Infine il corso offrirà una panoramica sugli aspetti legati alla qualità dei dati.
Contenuti sintetici
- Introduzione ai database relazionali
- Paradigma client/server
- Algebra relazionale e linguaggio SQL
- Analisi ed estrazione di informazioni da banche dati esistenti
- Progettazione concettuale, logica e fisica di banche dati
- Supporto alle transazioni
- Data Quality
- Dati strutturati, semi-strutturati, non strutturati
Il docente si riserva la possibilità di apportare modifiche ai contenuti qua elencati durante l'erogazione del corso. Eventuali variazioni saranno indicate tempestivamente in questo sito web.
Programma esteso
- Il paradigma relazionale
- Primary Key e Foreign Key
- Paradigma client/server
- Gestione centralizzata dei dati
- Algebra relazionale (operatori di proiezione, selezione, prodotto cartesiano, join)
- Cenni di algebra booleana
- Linguaggio SQL (Data Definition and Data Manipulation Language)
- Anatomia di una query SQL
- Clausola Group By e operatori di aggregazione
- Query Annidate
- Calcolo di indicatori tramite query SQL
- Cenni al ciclo di vita dei sistemi informativi e alla progettazione di basi di dati
- Progettazione concettuale di banche dati
- Progettazione logica di banche dati
- Progettazione fisica di banche dati
- Modello ER
- Normalizzazione
- Transazioni e proprietà ACID
- Indici
- Dati strutturati, semi-strutturati, non strutturati
- Scraping di informazioni dal web
Prerequisiti
Nessuno. Si suggerisce di aver frequentato i corsi di "Informatica" e "Laboratorio di informatica" e di aver superato i relativi esami
Metodi didattici
- Lezioni frontale
- Didattica in Blended E-Learning (video, quiz per fissare i contenuti, esercizi di autovalutazione)
- Esercitazioni in laboratorio virtuale e in presenza
- Esercitazione finale con simulazione delle modalità di verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Indicazioni
Per sostenere la verifica dell'apprendimento (cioè l'esame) è obbligatorio effettuare l'iscrizione via segreterie online o via terminali SIFA secondo le scadenze stabilite (generalmente le iscrizioni chiudono 3 giorni lavorativi prima dell'appello d'esame).
Modalità di verifica dell'apprendimento
Le informazioni presenti qua sotto sono fornite a puro titolo indicativo. Le modalità di verifica dell'apprendimento potranno subire delle variazioni. In ogni caso, cercheremo di mantenere aggiornata questa sezione nel tempo se saranno introdotte modifiche.
La verifica dell'apprendimento del corso di Basi di Dati ("esame" oppure "appello d'esame" da qui in avanti) consiste in una prova scritta e in una successiva discussione/accettazione del voto.
La prova scritta è composta da circa 9 domande a risposta chiusa e da 2 domande a risposta aperta, il numero di domande di entrambe le tipologie potrà variare da un appello all'altro. Le numerosità delle domande e il tempo a disposizione potranno variare da una prova all'altra. Come tempi, orientativamente potete preventivare un'ora e mezzo.
Per ogni domanda a riposta chiusa vi saranno proposte un insieme di possibili risposte e dovrete scegliere la risposta corretta (una e una sola sarà la risposta corretta, se non indicato diversamente nel compito). Le risposte sbagliate non daranno luogo a penalizzazioni, le risposte corrette contribuiranno al raggiungimento del voto finale. Le domande a risposta chiusa riguarderanno argomenti di teoria oppure richiederanno di completare una query oppure richiederanno di individuare l'output prodotto da una query. Verso la fine del corso sarà svolta una simulazione dell'esame. Il testo della simulazione e le soluzioni saranno successivamente pubblicati su questa piattaforma.
Nelle domande a risposta aperta vi potrà essere richiesto di:
- Scrivere una query in linguaggio SQL. Per scrivere la query non avrete a disposizione un database su cui sperimentare la vostra query.
- Progettare lo schema ER di un database
- ... (altre tipologie di esercizi)
Per poter passare l'esame dovrete raggiungere la sufficienza, sia nelle domande a risposta chiusa, sia nelle domande aperte. In altre parole dovrete dimostrare una adeguata conoscenza della teoria e dovrete essere in grado sia di scrivere una query SQL sia di progettare una struttura dati. Durante l'esame, ogni studente avrà un compito personalizzato (con domande diverse da quelle di tutti gli altri studenti). Per quanto riguarda la capacità di scrivere query SQL, potete utilizzare un semplice test per verificare la vostra preparazione: al termine del corso, se avete bisogno di guardar le soluzioni per poter svolgere uno qualsiasi degli esercizi proposti durante le esercitazioni, allora dovete studiare ed esercitarvi di più.
In caso di compito gravemente insufficiente, non ci sono limitazioni a ripresentarsi ad uno degli appelli successivi. Confidiamo tuttavia che vi presentiate agli appelli preparati o che chiediate di non correggere la prova se riterrete di aver svolto il compito in modo gravemente insufficiente.
Al termine del corso, dopo la simulazione d'esame sarà aggiunta una sezione del sito con le raccolte dei temi d'esame degli appelli precenti e le relative soluzioni
A causa dell'emergenza COVID le modalità d'esame potranno subire delle variazioni. Saranno comunicate dal docente tramite questo sito.Testi di riferimento
Materiale per lo studio
- Le slide, gli esercizi ed in generale tutto il materiale presentato a lezione sarà pubblicato su questo sito web.
- Libri:
- Atzeni, P., Ceri, S., Paraboschi, S., & Torlone, R. Basi di dati. McGraw-Hill. Una qualsiasi edizione del libro va bene.
- Durante il corso potrà essere indicato del materiale aggiuntivo. I riferimenti saranno pubblicati su questo sito web.
Periodo di erogazione dell’insegnamento
Secondo ciclo del primo semestre.
Lingua di insegnamento
Italiano
Learning objectives
The course is an introduction to the field of relational databases. The relational model and the SQL language will be illustrated. It will be taught how queries can be used to calculate synthetic indicators starting from information stored in relational databases. Database design methodologies will be illustrated. The differences between structured, semi-structured, and unstructured data and the problems associated with their management will be introduced. The course will also give an overview of data quality related topics.
Contents
- Introduction to relational databases
- The Client / Server paradigm
- Relational algebra and SQL language
- Analysis and extraction of information from existing databases
- Conceptual, logical, and physical design of databases
- Transaction support
- Data Quality
- Structured, semi-structured, unstructured data
The teacher might make changes to the aforementioned contents during the teaching activities. Any changes will be promptly indicated on this website.
Detailed program
- The Relational paradigm
- Primary Key and Foreign Key
- Client / Server paradigm
- Centralized data management
- Relational algebra (projection, selection, cartesian product, join)
- Boolean algebra
- SQL Language (Data Definition and Data Manipulation Language)
- Anatomy of an SQL query
- Group By clause and aggregation operators
- Nested Queries
- Calculation of indicators through SQL query
- Information Systems Lifecycle and Database Design
- Conceptual design
- Logical design
- Physical design
- ER Model
- Normalization
- Transactions and ACID properties
- Indexes
- Structured, semi-structured, unstructured data
- Web scraping
Prerequisites
None. It is highly suggested to have previously attended the "Informatica" and "Laboratorio di Informatica" courses and passed the related examinations.
Teaching methods
- Lessons
- Lab exercises
- Final lab activities and a simulation of the final test
Teaching language
Italian
Key information
Staff
-
Mirko Cesarini
-
Federico Ravenda