Course Syllabus
Obiettivi formativi
Il corso costituisce un'introduzione al mondo delle basi di dati ed in particolare alle basi di dati relazionali. Durante le lezioni, saranno illustrate le metodologie per la progettazione di basi di dati, 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 introdotte le differenze tra dati strutturati, semi-strutturati e non strutturati, e le problematiche connesse con la loro gestione.
Contenuti sintetici
Contenuti del corso
- 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
- Dati strutturati, semi-strutturati, non strutturati
Il docente si riserva la possibilità di apportare modifiche ai contenuti durante l'erogazione del corso. Eventuali variazioni saranno indicate tempestivamente sul sito web del corso.
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)
- 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
- Cenni di progettazione fisica di banche dati
- Modello ER
- Normalizzazione
- Transazioni e proprietà ACID
- Indici
- Dati strutturati, semi-strutturati, non strutturati
Prerequisiti
Nessuno. Si suggerisce di aver frequentato un corso di introduzione all'informatica dove siano stati introdotti i seguenti concetti.
- Algebra booleana (in particolare gli operatori AND, OR e NOT)
- Variabili
- Istruzioni condizionali
- File System
Metodi didattici
Il corso è erogato in modalità Blended-elearning e le attività didattiche si svolgeranno secondo le modalità seguenti:
- Lezioni frontale, sia in presenza sia preregistrata
- Lezioni in e-learning (video, quiz o altre attività per fissare i contenuti, esercizi di autovalutazione)
- Esercitazioni in laboratorio informatico
- Esercitazione finale con simulazione delle modalità di verifica dell'apprendimento
Circa il 52% delle lezioni (corrispondenti a 23 ore) sarà erogato sotto forma di "didattica erogativa", tramite Lezioni frontali e didattica in e-learning.
Circa il 48% del corso (corrispondente a 21 ore) sarà erogato sotto forma di "didattica interattiva", tramite esercitazioni in laboratorio.
Alcune delle ore delle lezioni frontali potrebbero essere sostituite. da testimonianze e sessioni di dialogo esperti. In tal caso, le testimonianze avranno luogo orientativamente nelle ultime settimane di lezione, in base alla disponibilità delle persone coinvolte. Date ed orari di questi eventi saranno comunicato sul sito web del corso.
Le attività di laboratorio si svolgeranno in laboratorio informatico in presenza. In caso di mancata disponibilità di aule informatizzate, tali attività potranno svolgersi anche in aule tradizionali (elettrificate o non elettrificate) dove gli studenti potranno usare il proprio pc personale, oppure in laboratori virtuali remoti.
.
Modalità di verifica dell'apprendimento
Per sostenere la verifica dell'apprendimento (cioè l'esame) è obbligatorio effettuare l'iscrizione via segreterie online secondo le scadenze stabilite (generalmente le iscrizioni chiudono 3 giorni lavorativi prima dell'appello d'esame).
Modalità di verifica dell'apprendimento
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 prima è obbligatoria, la seconda è facoltativa, a discrezione del docente e dello studente. Il docente, a sua discrezione, può richiedere ad uno studente di sostenere l'esame orale in caso di dubbi sullo scritto.
Non ci sono differenze tra studenti frequentanti e studenti non frequentanti.
La prova scritta è composta da alcune domande a risposta chiusa e da alcune domande a risposta aperta. Il numero di domande e la loro tipologia possono variare da un appello all'altro. La durata dell'esame scritto può variare da un appello all'altro in base alla quantità di esercizi da svolgere e alla complessità della prova, 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. Il docente si riserva la possibilità di introdurre anche altri tipi di domande chiuse. Verso la fine del corso sarà svolta una simulazione dell'esame in modalità online. Il testo della simulazione e le soluzioni saranno successivamente pubblicati sul sito web del corso.
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 management system su cui sperimentare la vostra query.
- Progettare lo schema ER di un database
- ... (altre tipologie di esercizi sugli argomenti svolti a lezione)
Al termine del corso, dopo la simulazione d'esame sarà resa disponibile una sezione del sito web del corso con le raccolte dei temi d'esame degli appelli precenti e le relative soluzioni
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 di risolvere esercizi (es., scrivere una query SQL, progettare una struttura dati). Durante l'esame, ogni studente avrà un compito personalizzato (con domande parzialmente o totalmente 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. Il docente confida nella collaborazione degli studenti, tuttavia si riserva di poter introdurre in futuro delle limitazioni in caso di reiterati e diffusi comportamenti inopportuni. Si considera un comportamento inopportuno presentarsi ad un appello per nulla preparati oppure non ritirarsi in caso di compito "disastroso". L'introduzione di forme di limitazione, se dovesse avvenire, sarà pubblicizzata sul sito web del corso.
Nei casi seguenti, le modalità d'esame potranno subire variazioni. Eventuali variazioni saranno comunicate dal docente il prima possibile agli iscritti all'esame e tramite questo sito.
- Appelli con un numero particolarmente elevato di iscritti
- Appelli con un numero molto ridotto di iscritti
- Non disponibilità di aule adatte per svolgere l'esame
- Emergenze sanitarie (es., Covid)
Per gli appelli con un numero ridotto di studenti, il docente si riserva di sostituire l'esame scritto con una prova orale. La prova orale consisterà in un colloquio sugli argomenti svolti a lezione. Il docente potrà inoltre chiedere allo studente durante la prova orale di svolgere in tutto o in parte un esercizio simile alle domande aperte di uno scritto, per esempio scrivere una query SQL, di progettare uno schema ER, etc.
L'esame scritto si svolge in italiano. Gli studenti che non parlano italiano possono concordare con il docente di sostituire l'esame scritto con una prova orale in lingua inglese o tedesca.
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.
- Durante il corso potrà essere indicato del materiale aggiuntivo. I riferimenti saranno pubblicati 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.
Periodo di erogazione dell'insegnamento
Secondo ciclo del primo semestre.
Lingua di insegnamento
Italiano
Sustainable Development Goals
Learning objectives
The course is an introduction to the field of databases with a focus on relational databases. Database design methodologies will be illustrated. 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. The differences between structured, semi-structured, and unstructured data and the problems associated with their management will be introduced.
Contents
Course topics
- 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
- Structured, semi-structured, unstructured data
The teacher might change the topics taught. Any changes will be promptly indicated on the course website.
Detailed program
- The Relational paradigm
- Primary Key and Foreign Key
- Client / Server paradigm
- Centralized data management
- Relational algebra (projection, selection, cartesian product, join)
- 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
- Short notes on Physical design
- ER Model
- Normalization
- Transactions and ACID properties
- Indexes
- Structured, semi-structured, unstructured data
Prerequisites
None. It is highly suggested to have previously attended an introductory computer science course where the following concepts have been introduced.
- Boolean algebra (especially the AND, OR and NOT operators)
- Variables
- Conditional statements
- File System
Teaching methods
This is a blended-elearning course and the teaching activities will be performed in several ways:
- Frontal lessons, live and in person or video-recorded
- E-learning lessons (recorded lectures, quizzes or other activities to elaborate the contents, self-assessment exercises)
- Exercises in the computer lab
- Final exercise with simulation of the learning assessment methods
About 52% of the lessons (corresponding to 23 hours) will be delivered in the form of "traditional lectures", through frontal and e-learning lessons.
About 48% of the course (corresponding to 21 hours) will be delivered in the form of "interactive teaching", through laboratory exercises.
Some of the frontal lessons hours might be replaced by testimonials and expert dialogue sessions. In this case, the testimonials will take place approximately in the last weeks of class, based on the availability of the people involved. Dates and times of these events will be communicated on the course website.
The laboratory activities will take place in computer labs in person. In case computer labs were not available, these activities may also take place in traditional classrooms (electrified or not electrified) where students can use their personal PC, or in remote virtual labs.
Assessment methods
Students must regist before taking the exam. It is mandatory to register using the University Information System by the official deadline. Registration usually closes 3 working days before the examination day.
How Learning Verification is performed
The learning verification of the Databases Course ("exam" from here on) is composed of a written test and a subsequent discussion/acceptance of the grade. The former is mandatory, the latter is optional (at the discretion of the teacher and the student).
The teacher, at his discretion, may require a student to take the oral exam in case of doubts about the written exam.
The examination is the same for both attending and non-attending students.
The written test consists of some closed-ended questions and some open-ended questions; The number and the types of questions may change. The written exam duration may change, based on the amount of exercises to be completed and the complexity of the test. As a general reference, you can expect a duration of 1 hour and a half.
For each closed-answer question you will be offered a set of possible answers and you will have to choose the correct answer (one and only one will be the correct answer, unless otherwise indicated in the assignment). Wrong answers will not result in penalties; correct answers will positively contribute to your final grade. Closed-ended questions will focus on theory topics or require completing a query or require identifying the output produced by a query. Other closed-ended question types may be added. A mock exam will be available at the end of the course, so students can take an exam simulation online. The text of the simulation and thesolutions will be available on the course web site.
In the open-ended questions you may be asked to:
- Write a query in SQL language. You will not have a database (management system) for testing your query.
- Design the ER schema of a database.
- ... (other types of exercises focusing on topics presented in class)
At the end of the course, after the exam simulation, a section of the course website containing several previous exam tests and the corresponding solutions will be made available.
To pass the exam you will have to reach a sufficient level both the closed-ended questions and the open-ended questions. I.e., you will need to demonstrate adequate theory knowledge and be able to solve exercises (e.g., write an SQL query, design a data structure). During the exam, each student will have a personalized assignment (with questions that are partially or totally different from those of all other students). Regarding the ability to write SQL queries, you can use a simple test to check your preparation: if (at the end of the course) you need to look at the solutions to solve any of the exercises proposed during the lab activities, then you need to study and practice more.
In the event of a seriously insufficient examination, there are no limitations on registering to the next exam sessions. The teacher trusts in the collaboration of the students, however he reserves the right to introduce limitations in the future in case of repeated and widespread inappropriate behavior. It is considered inappropriate behavior to show up to an exam session completely unprepared or not to withdraw in the event of a "disastrous" assignment. The introduction of forms of limitation, if it were to occur, will be publicized on the course website.
The written exam is held in Italian. Students who do not speak Italian may agree with the teacher to replace the written exam with an oral exam in English or German.
.
Textbooks and Reading Materials
Study material
- The slides, exercises and all the material showed in class will be published on this website.
- Additional material may be shown during the course. The references will be published on this website.
Book
- Atzeni, P., Ceri, S., Paraboschi, S., Torlone, R. Databases. McGraw-Hill. Any edition of the book is ok.
Semester
Second half of the first semester.
Teaching language
Italian
Sustainable Development Goals
Key information
Staff
-
Mirko Cesarini
-
Carla Marini