Databases

Course objectives

GENERAL OBJECTIVES The course aims to teach 1. theoretical aspects, consisting of models and database languages, 2. project methodologies, which will allow the student, once they are acquired, to tackle concrete cases, 3. technologies, consistent in various software tools used in a combined way for the implementation of databases, by means of tools that are widespread in business practices. At the end of the course the student will be able to interact with the recipient of a database application in order to correctly summarize the requirements and to develop the project first, then the application itself, choosing the most suitable tools. SPECIFIC OBJECTIVES KNOWLEDGE AND UNDERSTANDING. The course aims to provide the student with the knowledge and understanding of the theoretical, methodological, technological tools that cover the various aspects useful for interacting with the environment of databases, with professional or scientific objectives. CAPABILITY TO APPLY KNOWLEDGE AND UNDERSTANDING. Thanks to the course the student will be able to proceed with the definition, project and implementation of a data base that can be integrated with application components, using formalisms (during the project) and languages (in development) that constitute consolidated industrial standards. MAKING AUTONOMOUS JUDGEMENTS. Both the written test and the project work put the student in front of unforeseen situations that encourage the development of the ability to make decisions autonomously, both in the contents (the design object) and in the tools. COMMUNICATION SKILLS. The use of wide-spread representation standards determines the acquisition of a "language" to interact in any professional context. The project work requires on the one hand to interact and to take into account the needs of "clients" (true or presumed) of the database application, and on the other to defend the choices made during the discussion of the project work. LEARNING SKILLS. On one hand the course provides theoretical knowledge of a very general nature, on the other (in the context of project work) it requires developing practical experiences with multiple tools integrated with each other, in many cases having to look for the accompanying documentation on its own. This kind of experience, together with a solid basic culture in the sector, creates the best conditions for the independent development of further knowledge.

Channel 1
UMBERTO NANNI Lecturers' profile

Program - Frequency - Exams

Course program
1. Introduction to the course, program, exams, textbooks [2 hours] 2. Basic Concepts: Databases, Information Systems, Data Models, Metadata, Physical Independence, DBMS [4 hours] 3. Relational databases: basic concepts, schemes and instances; languages, relational algebra, SQL; uniqueness constraints, primary key; simple queries; data manipulation [12 hours] 4. Structuring of Databases: foreign keys and constraints of referential integrity; composition of queries with multiple tables; logical independence and views [8 hours] 5. Database design: life cycle, design phases; Entity-Relationship Model and Conceptual Design; ER-relational logic design; Generalization hierarchies and the EER model; Data redundancy and anomalies; Functional dependencies; Indexing [16 hours] 6. Complex queries: aggregative operators; nested queries; handling functions [4 hours] 7. Database Management Systems: general information; users and access languages; functionality, modules and services of a DBMS; consistency; backup; safety; concurrency and transactions; the database in application architectures; evolution of DBMS [4 hours] 8. Introduction to normalization [4 hours] 9. BD advanced design: discretization of domains; representation of trees and graphs/networks as a BD [2 hours] 10. Application design: Software and data requirements; State diagram and GUI project; Client-Server applications with GUI on DBMS. [4 hours] PRACTICE 11. Practical use of a database management system (postgres): installation, basic elements of administration, graphical interfaces, insertion and execution of code [4 hours] 12. SQL exercises: creation of databases, data types, definition of tables, integrity constraints, data insertion and modification, queries, use of functions, construction of complex queries [18 hours] 13. Client-server configuration (e.g., ODBC) and development of applications with separate environments for client and server; case study analysis [8 hours]
Prerequisites
Basic knowledge of the following topics: 1. programming techniques 2. data structures 3. architecture of processing systems 4. operating systems
Books
Textbooks: L. Allulli, U. Nanni, Basi di Dati - Progetto, sviluppo ed utilizzo pratico, Hoepli, September 2017. U. Nanni, Un esercizio sulla Normalizzazione (Dispensa didattica per il corso di Basi di Dati), Dicembre 2019. U. Nanni, Slides used in the lectures. Additional material: U. Nanni, Esercizi su Progetto di Basi di Dati ed SQL (Dispensa didattica per il corso di Basi di Dati), Settembre 2017. U. Nanni, code samples and solution of exercises with comments.
Teaching mode
The prevailing didactic model is the frontal lesson (in classroom and/or in distance learning) with the aim of transferring the main concepts relating to: 1. formalisms used in databases, 2. representation and design methodologies, 3. database-related technologies. The methodological aspects (design) are accompanied by examples developed from scratch, leading to the discussion of alternatives with the students. The exercises are illustrated and then performed on a computer, requiring students to develop their solution at the same time, with the possibility of interacting with the teacher at any time.
Frequency
Classroom attendance is not mandatory but highly recommended.
Exam mode
1. Written test. 2. Project discussion (oral). The exam mode includes an evaluation of the student in two parts: 1. Written test - weight: 2/3 (with the possibility of laude) 2. Project work - weight: 1/3 1. The written test contains questions about the teaching program provided in the classroom and requires the resolution of some exercises. The duration of the written test is 90 minutes. The written test allows to evaluate individual knowledge and understanding, ability to apply the acquired knowledge. 2. The project work consists of an individual or group work, including a maximum of 3 students, which requires the production of a document describing an ANALYSIS / PROJECT of a case study, and an IMPLEMENTATION (software running on a PC). The structure of the project document is known (discussed with the class and outlined on the course website). The presentation of the report and the presentation on the computer require each student to discuss a portion of the project. This presentation allows to evaluate communication skills, ability to apply the acquired knowledge, autonomy of judgment, students' ability to teamwork and their ability to learn the practical skills required for the implementation of a concrete project. The maximum mark (30 cum laude) is awarded with a score of 30 cum laude in the written test and a maximum score in the project work.
Bibliography
Additional reference books: P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, Basi di Dati, 4a ed., McGraw-Hill Education (Italy), 2014. R. Elmasri, S.B. Navathe: Sistemi di basi di dati - Fondamenti. Addison Wesley, 2011.
Lesson mode
The prevailing didactic model is the frontal lesson (in classroom and/or in distance learning) with the aim of transferring the main concepts relating to: 1. formalisms used in databases, 2. representation and design methodologies, 3. database-related technologies. The methodological aspects (design) are accompanied by examples developed from scratch, leading to the discussion of alternatives with the students. The exercises are illustrated and then performed on a computer, requiring students to develop their solution at the same time, with the possibility of interacting with the teacher at any time.
  • Lesson code1052231
  • Academic year2024/2025
  • CourseInformation Engineering
  • CurriculumInformatica (percorso valido per il conseguimento del doppio titolo italo-venezuelano)
  • Year3rd year
  • Semester1st semester
  • SSDING-INF/05
  • CFU9
  • Subject areaIngegneria informatica