Subject: DATABASES (A.A. 2021/2022)
Unit Basi di dati
Information Technology (lesson)
The aim of the course is to give an introduction to fundamental concepts of modern data base systems, the data models, physical structures and data base design and querying.
In particular, the course will provide solid knowledge and understanding in the field of technologies for the representation and management of complex structured data. The ability to apply the knowledge will be reflected primarily in the ability to design databases using appropriate formalisms, to query databases using the SQL language, and in the ability to design and provide complete implementations using database technologies.
Thanks to the fundamental project activities, the course will provide the student with the ability to make judgments, to justify the choices made and to critically evaluate the results obtained. Moreover, the course aims to encourage teamwork, thanks to which the skills of interaction and communication between peers will be learned.
No mandatory requirements. Recommended: Basic courses computer programming and operating systems.
The course includes 72 hours of frontal teaching (9 CFU), each of the topics include both the exposition of the theoretical aspects and the execution of various exercises (including those performed on the computer).
The details of the contents in terms of hours is purely indicative. It may in fact undergo changes during the course of teaching in light of the feedback and participation of students.
* Introduction to enterprise information systems and databases (4 hours).
* Conceptual design: Entity-Relationship model, properties, external identifiers. Expression of advanced constraints through external identifiers. IS-A hierarchies, project strategies (16 hours).
* Logical design: relational model, keys and integrity constraints, conversion of conceptual schemas into relational schemas, normalization, derived data and related evaluation model (10 hours).
* Physical design: organization and cost of data access, hash organization and B+ Tree. Access plans. Query optimization (10 hours).
* Relational algebra: relational operators and algebraic expressions, derivative operators, equivalence of expressions (6 hours).
* SQL language: data definition, schema declaration. Simple queries. Complex queries (sorting, aggregation, grouping, binary and nested). Data modification. Creating indexes, managing views, accessing accessories (15 hours).
* Technology of a DBMS: architectures of Database Management Systems, transactions and access concurrency, isolation levels (5 hours).
* Dynamic database programming: stored procedures and triggers, JDBC (6 hours).
The techniques are presented both theoretically and practically, through a series of hands-on and design activities. Ordinarily, these activities will be carried out face to face in classrooms and laboratories; in case of COVID19 health emergencies, the lessons will be held remotely, mainly in virtual asynchronous mode but with weekly appointments in synchronous virtual mode to enable teacher-student interactions, for insights and for sharing project ideas with respect to the aspects suggested by the teacher. In particular, in addition to standard lectures, where students will learn the theoretical aspects of database design, a substantial number of hours will be devoted to lab / hands-on activities in the form of guided exercises, in which students will experience the application of the learned techniques on simple practical cases. Finally, the course will propose a group project to allow students to learn the application of methods and techniques in real-world complex practical contexts. Questions, interventions and student participation are welcome and encouraged. Attendance is not compulsory, but strongly recommended. The course is held in Italian. All technical and organizational information on teaching, as well as teaching material, will be uploaded to the Dolly platform. The student is invited to register and consult this platform regularly.
The course exam consists of a written part and a group project. The written exam (approx. 45 minutes) includes design exercises related to specific aspects of databases (conceptual and logical schema, derived data), implementation exercises (SQL queries) and open questions on the topics of database technology. The written exam will be carried out in presence or remotely depending on the evolution of the COVID19 health emergency situation. The group project will finally assess the ability to apply the techniques in complex practical contexts; in this case, in addition to identifying a correct and adequate solution, it will also be essential to clearly describe the project and to explain the reasons for the design and technological choices made. Six written exams a year are planned; the project can be delivered at any time of the year and will be corrected in conjunction with the subsequent written exam (the written exam can be taken on this date or on subsequent dates). The final grade is formed by the average of the written and project grade. The grades (written, project, final) are communicated through the Dolly platform typically within one week from the date of the exam.
Knowledge and understanding: Through lectures, students will have a sound knowledge and understanding in the theory of databases, collection and analysis of requirements, methodologies of conceptual and logic design, querying techniques, and the main technologies used in a transactional DBMS.
Applying knowledge and understanding: Through practical computer exercises and individual and group project activities, the student will be able to apply the gained knowledge in the design and implementation of database data and operations, also in connected applications.
Making judgments: Through conducting individual and group project activities, the student will be able to evaluate, explain and critically discuss the design decisions taken and the results obtained in the context of a complex information system.
Communication skills: The design questions and open questions of the written examination and the preparation of the report on the group project, will allow the students to organize and present with clarity and conciseness, as well as with appropriate technical language, the results of their work. In addition, implementing the project will require full practical ability to read with profit English technical documentation.
Learning skills: The described activities will enable students to acquire the methodological tools to continue their studies and to be able to perform their own update; this is especially crucial in an area such as computer information management, where key technologies are ever evolving.