Data Management (academic year 2018/2019)

For whom is this course. This 6 credits course is for the students of the Master of Science in Engineering of Computer Science (School of Engineering) of the Sapienza Università di Roma. This course is also for students of the Corso di Laurea Magistrale in Ingegneria Gestionale of the same School. The language for both the course and the exam is English. The lectures are held in the second semester (March 2019 - May 2019).
Prerequisites. A good knowledge of the fundamentals of Programming Structures (algorithms and data structures), Programming Languages, Databases (SQL, relational data model, Entity-Relationship data model, conceptual and logical database design), Theoretical Computer Science (computational complexity, computability) is required.
Course goals. The course presents the basic concepts of database systems. Several major issues related to the theory and the design of database systems are covered, including concurrency control, recovery, file and index organizations, query processing.

  • News
    • September 22, 2018. The lectures of this course will be delivered in the second semester. Here are the information about the 2017-2018 edition.
  • Lecture material
    • M. Lenzerini, Lecture notes (slides to download)
      Students can download the course slides by accessing the MOODLE system at this page.
      The slides will be available during the lecture period. Please, note that all students of Sapienza can access the MOODLE system by using the user name and the password of the university
    • R. Ramakrishnan, J. Gehrke. Database Management Systems. McGraw-Hill, 2004
    • Students willing to read more about concurrency control can freely download an excellent book from the following site:
      If one is looking for a more modern book, which is not free, a good suggestion is:
      Gerhard Weikum, Gottfried Vossen, "Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery", The Morgan Kaufmann Series in Data Management Systems.
  • Lectures
    • Monday: [10:00am - 12:00am], via Eudossiana 18, classroom 41,
    • Monday: [12:00pm - 13:00pm], via Eudossiana 18, classroom 41,
    • Wednesday: [08:00am -- 10:00am] via Eudossiana 18, classroom 41.
    Week Monday (10:00am - 12:00am) classroom 41 Monday (12:00pm - 13:00pm) classroom 41 Wednesday (08:00am - 10:00am) classroom 41
    01 (Feb 26) Lectures 1,2
    - Course overview
    - Relational data model
    Lectures 3
    - Recap of relational algebra
    02 (Mar 04) Lectures 4,5
    - Buffer management
    - Introduction to transaction management
    Lectures 6
    - The notion of serializability
    - View serializability
    Lectures 7,8
    - Exercise on view serializability
    03 (Mar 11) Lectures 9,10
    - Conflict-serializability
    Lectures 11
    - Exercises on conflict-serializability
    Lectures 12,13
    - Locking protocols
    - Two-phase locking
    04 (Mar 18)
    Lectures 14,15
    - Comparison between two-phase locking and conflict-serializability
    - Exercises on concurrency
    05 (Mar 25) Lectures 16,17
    - Exercises on concurrency
    - The notion of recoverability
    Lectures 18
    - Schedules avoiding cascading rollback
    - Strict and rigorous schedules
    Lectures 19,20
    - Concurrency control based on timestamps
    06 (Apr 01)
    07 (Apr 08)
    08 (Apr 15)
    09 (Apr 22)
    10 (Apr 29)
    11 (May 06)
    12 (May 13)
    13 (May 20)
    14 (May 27)

  • Exercises

  • Topics covered (preliminary)
    • 1. The structure of a Data Base Management System (DBMS)
    • 2. Concurrency management: The concept of transaction, The notion of serializability, Concurrency management strategies
    • 3. Recovery: Crash management, Classification of failures, Recovery strategies
    • 4. Buffer management: buffer pool, replacement strategies, operations on the buffer
    • 5. Physical structures for data bases: Record and page organizations, Simple file organizations, Indexed file organizations
    • 6. Query processing: Evaluation of relational algebra operators, logical and physical query plans
    • 7. NoSQL databases: The case of document-oriented databases and MongoDB
  • Exam
    • Final exam: the final exam is constituted by a written exam, and a possible oral examinations. Students have 2 hours for completing the written exam
    • Past written exams: you can have a look at the texts of past exams
    • To book for the exam: Please, follow the on-line booking procedure.
    • Schedule of exams:
      • First written exam: June 2019
      • Second written exam: July 2019
      • Third written exam: September 2019
      • Special exam session (only for "fuori corso" or "part-time" students): October 2019
      • Fourth written exam: January 2020
      • Fifth written exam: February 2020
      • Second special exam session (only for "fuori corso" and "part-time" students): April 2020
  • Information about course evaluation by students
    • Data about the evaluation of the course by students of the previous editions are available in the home pages of the corresponding editions (see below). Data about the 2018-2019 edition will be posted here as soon as they are available.
  • Information on past editions of this course
  • Office hours. Tuesday, 5:00 pm, at the Dipartimento di Ingegneria Informatica Automatica e Gestionale "Antonio Ruberti", via Ariosto 25, Roma, second floor, room B203 (if available), or room B217 (otherwise) -- please, look at the last minute news for the next office hours