Data Management (academic year 2016/2017)

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 Ingegneria Gestionale of the same School. The language for both the course and the exam is English. The lectures will be held in the first semester (September 2016 - December 2016).
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, emphasizing the relational model. Several major issues related to the theory and the design of relational database systems are covered, including concurrency control, recovery, file and index organizations, query processing.

  • News
    • May 16, 2016. Next exam will be held on June 13, 2017, at 9:00am, in classroom 33 in via Eudossiana 18. The students can book for the exam until June 10, 2017. Who does not book for the exam within such deadline will not be allowed to participate in the exam, and there will be no exception to this rule.
    • December 15, 2016. The lectures of the course are over. Professor Lenzerini thanks all the students who have regularly attended the lectures, and encourages them to carry out the evaluation of the course.
  • 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
    • When: Wednesday [08:30am - 10:00am], Thursday [10:15am - 11:45am], and Friday [15:45 -- 17:15] from September 2016 to December 2016
    • Where: Wednesday: Classroom 105, Edificio Ex-Poste, via Scalo San Lorenzo 82; Thursday and Friday: Classroom B2 "Marco Cadoli", via Ariosto 25, Roma
    • Schedule:

      Week Wednesday (08:30 - 10:00) Thursday (10:15 - 11:45) Friday (15:45 - 17:15)
      01 (Oct 03) Lectures 1,2
      - Course overview
      - Relational data model
      Lectures 3
      - Relational algebra queries
      - SQL
      Lectures 4,5
      - The structure of a DBMS
      - Buffer Management
      02 (Oct 10) Lectures 6,7
      - Simple file organizations
      Lectures 8,9
      - External sorting
      Lectures 10,11
      - The notion of index
      - Types of indexes
      03 (Oct 17) Lectures 12,13
      - Sorted indexes
      - Classification of sorted indexes
      Lectures 14,15
      - Clustering sorted indexes
      - Exercises on sorted indexes
      Lectures 16,17
      - Unclustering sorted indexes
      - Exercises on sorted indexes
      04 (Oct 24) Lectures 18,19
      - Tree-based indexes
      - ISAM
      - B*-tree indexes
      Lectures 20,21
      - Hash-based indexes
      - Exendible hashing
      - Exercises on file organizations
      05 (Oct 31) Lectures 22,23
      - Linear hashing
      - Evaluation of relational operators
      Lectures 24,25
      - Exercises on file organizations
      - Evaluation of relational operators: one pass algorithms
      Lectures 26,27
      - Evaluation of relational operators: nested loop algorithms
      06 (Nov 07) Lectures 28,29
      - Evaluation of relational operators: two pass algorithms
      Lectures 30,31
      - Evaluation of relational operators: index-based algorithms
      Lectures 32,33
      - Evaluation of relational operators: multipass algorithms
      07 (Nov 14) Lectures 34,35
      - Exercises on evaluation of relational operators
      Lectures 36,37
      - Query compilation
      08 (Nov 21) Lectures 38,39
      - Cost estimation
      Lectures 40,41
      - Query optimization
      Lectures 42,43
      - Transaction management
      - Serializability
      09 (Nov 28) Lectures 44
      - View serializability
      - Conflict serializabiity
      Lectures 45,46
      - Graph databases (Prof. Domenico Lembo)
      10 (Dec 05) Lectures 47,48
      - Algorithms for conflict serializabiity
      Lectures 49,50
      - Lock-based concurrency
      - Two-phase locking
      11 (Dec 12) Lectures 51,52
      - Recoverability
      - Strictness and rigorousness
      - Timestamp-baaed methods
      Lectures 53,54
      - Exercises on concurrency control
  • Exercises
  • Topics covered
    • 1. The structure of a Data Base Management System (DBMS)
    • 2. Buffer management: buffer pool, replacement strategies, operations on the buffer
    • 3. Physical structures for data bases: Record and page organizations, Simple file organizations, Indexed file organizations
    • 4. Query processing: The notion of access path, Evaluation of relational algebra operators
    • 5. Graph databases: The notion of graph data management, queries on graph data, storage structure
    • 6. Concurrency management: The concept of transaction, The notion of serializability, Concurrency management strategies
    • 7. Recovery: Crash management, Classification of failures, Recovery strategies
  • 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: January 12, 2017, at 9:00am, in classroom 8, via Eudossiana 18, Roma
      • Second written exam: February 6, 2017, at 9:00am, in classroom 33, via Eudossiana 18, Roma
      • Special exam session (only for "fuori corso" and "part-time" students): March 22, 2017, at 9:00am, in classroom 1, via del Castro Laurenziano
      • Third written exam: June 13, 2017, at 9:00 in classroom 33, via Eudossiana 18
      • Fourth written exam: July 6, 2017, at 9:00 in classroom 33, via Eudossiana 18
      • Fifth written exam: September 6, 2017, at 9:00 in classroom 33, via Eudossiana 18
      • Second special exam session (only for "fuori corso" and "part-time" students): October 2017
  • 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 2016-2017 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