Subject: DATABASES (A.A. 2023/2024)
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.
*Introduction to enterprise information systems and databases (2 hours)
*Conceptual design (12 hours): Entity-Relationship model, properties, external identifiers. Expression of advanced constraints through external identifiers. IS-A hierarchies, project strategies.
*Logical design (10 hours): relational model, keys and integrity constraints, conversion of conceptual schemas into relational schemas, normalization, derived data and related evaluation model.
*Physical design (10 hours): organization and cost of data access, hash organization and B+ Tree. Access plans. Query optimization.
*Relational algebra (10 hours): relational operators and algebraic expressions, derivative operators, equivalence of expressions.
*SQL language (10 hours): data definition, schema declaration. Simple queries. Complex queries (sorting, aggregation, grouping, binary and nested). Data modification. Creating indexes, managing views, accessing accessories.
*Technology of a DBMS (10 hours): architectures of Database Management Systems, transactions and access concurrency, isolation levels.
*Dynamic database programming (8 hours): stored procedures and triggers, JDBC.
The techniques are presented both theoretically and practically, through a series of hands-on and design activities. 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. The course is delivered in Italian and in-person. Attendance is not mandatory but strongly recommended.
The course exam consists of a written part and a group project. The written exam 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 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 final grade is formed by the average of the written and project grade.
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.
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