This course introduces database design and their lifecycle, the tools for their design, the languages for the creation, querying, and manipulation of centralized databases, and the fundamentals of relational databases.
The course aims to provide students with:
Knowledge and understanding of database concepts, models, and architectures.
Practical skills in SQL programming and relational schema design.
Critical thinking in evaluating alternative schema designs and query strategies.
Communication skills in presenting and documenting database projects.
Lectures (in English) with slides and examples
Hands-on practice with Microsoft SQL Server
Exercises and case studies
Introduction to database systems and DBMS architecture
Data modeling with ER/EER diagrams
Relational model and relational constraints
SQL: schema definition, data manipulation, queries, views, triggers
Schema design: mapping from ER/EER to relational schemas
Functional dependencies and normalization
Basics of physical organization and indexing (overview)
Transactions, concurrency control, and recovery
Security and data protection in database systems
R. Elmasri, S. Navathe – Fundamentals of Database Systems, 7th Edition, Pearson, 2016 (English).
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone – Database Systems: Concepts, Languages and Architectures, Addison Wesley, 1999 (English).
P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone – Basi di dati, 6ª edizione, McGraw-Hill, 2023 (Italian).
Microsoft SQL Server official documentation.
Lecture slides and exercises provided by the instructor.
Ricevimento: Upon request by e-mail norbert.maggi@ext.unige.it or Teams platform
GIANNI VIARDO VERCELLI (President)
https://corsi.unige.it/corsi/8719/studenti-orario
The timetable for this course is available here: EasyAcademy
The exam consists of a practical test followed by an oral discussion.
In the practical part, students will design and query a relational database, using SQL for schema definition, data manipulation, and complex queries.
In the oral part, students will discuss the solutions provided, explain their design choices, and answer questions on theoretical concepts covered in the course.
The practical test evaluates the ability to design schemas, apply normalization, implement constraints, and write SQL queries correctly.
The oral discussion evaluates understanding of theoretical concepts, correctness of reasoning, and the ability to explain design and implementation choices.
Both parts must be passed in order to successfully complete the exam.