Data Management (academic year 2019/2020)



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 2020 - May 2020).
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

    • December 14, 2020. The dates of the next exams are January 13, 2020, 2:00pm, and February 2, 2021 (at 9:00am. The type of exam (traditional, or on-line) will be communicated later.
    • March 10, 2020. Starting from Wednesday, March 11, 2020, at 8:15 the lectures will be in streaming, using the "Google meet" platform. I invite all students to use Chrome as browsers and make sure they have access to the "Google meet" application. The various lectures will be held during the official time schedule of the course. The link to follow in order to participate in the lectures has been posted in the MOODLE system, and the post has been sent to all students registered for the course. All the on-line lectures will be recorded and the recording will be available in the MOODLE page of the course.
    • March 4, 2020. The lectures in all universities in Italy are suspended. Please, stay tuned for new information in the next days.
  • 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: http://research.microsoft.com/en-us/people/philbe/ccontrol.aspx
      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.

    The recording of the on-line lectures, starting from the one of March 9, 2020, will be available in the MOODLE page of the course.

    Week Monday (10:00am - 12:00am) classroom 41 Monday (12:00pm - 13:00pm) classroom 41 Wednesday (08:00am - 10:00am) classroom 41
    01 (Feb 24) Lectures 1,2
    - Course overview
    - Relational data model
    Lectures 3
    - Recap of relational algebra
    Lectures 4,5
    - Buffer management
    02 (Mar 02) Lectures 6,7
    - Introduction to transaction management
    - The notion of serializability
    Lectures 8
    - View-serializabilty
    Lectures 9,10
    - Introduction to conflict-serializability
    03 (Mar 09)
    -------
    -------
    Lectures 11,12
    - Properties of conflict-serializability
    - Exercises on view- and conflict-serializability (part 1)
    - Concurrency control through locks
    (on-line using Meet)
    04 (Mar 16) Lectures 13,14
    - Properties of 2PL
    - Exclusive and shared locks
    (on-line using Meet)
    Lectures 15
    - Exercises on 2PL
    - Recoverability, ACR, strictness
    (on-line using Meet)
    Lectures 16,17
    - Strict 2PL
    - Concurrency control based on timestamps
    (on-line using Meet)
    05 (Mar 23) Lectures 18,19
    - Exercises on concurrency (part 2)
    - Multi-version concurrency control
    (on-line using Meet)
    Lectures 20
    - Concurrency control in SQL
    (on-line using Meet)
    Lectures 21,22
    - Recovery
    - Page and record organization
    (on-line using Meet)
    06 (Mar 30) Lectures 23,24
    - File organizations
    - Heap, sorted and hash files
    (on-line using Meet)
    Lectures 25
    - External sorting
    (on-line using Meet)
    Lectures 26,27
    - Types of indexes
    (on-line using Meet)
    07 (Apr 06) Lectures 28,29
    - Clustered sorted index
    (on-line using Meet)
    Lectures 30
    - Unclustered sorted index
    (on-line using Meet)
    Lectures 31,32
    - Exercises on file organizations (part 1)
    - Exercises on file organizations (part 2)
    (on-line using Meet)
    08 (Apr 13)
    -------
    -------
    Lectures 33,34
    - Tree-based indexes
    (on-line using Meet)
    09 (Apr 20) Lectures 35,36
    - Hash-based index
    (on-line using Meet)
    Lectures 37
    - Exercises on indexes
    - Evaluation of relational operators
    (on-line using Meet)
    Lectures 38,39
    - One-pass algorithms
    (on-line using Meet)
    10 (Apr 27) Lectures 40,41
    - Block-nested loop algorithms
    (on-line using Meet)
    Lectures 42
    - Two-pass algorithms based on sorting
    (on-line using Meet)
    Lectures 43,44
    - Two-pass algorithms based on hashing
    (on-line using Meet)
    11 (May 04) Lectures 45,46
    - Multi-pass algorithms based on sorting
    - Multi-pass algorithms based on hashing
    (on-line using Meet)
    Lectures 47
    - Exercises on evaluation of relational operators
    (on-line using Meet)
    Lectures 48,49
    - Index-based algorithms
    (on-line using Meet)
    12 (May 11) Lectures 50,51
    - Parallel algorithms
    (on-line using Meet)
    Lectures 52
    - Exercises on evaluation of relational operators
    (on-line using Meet)
    Lectures 53,54
    - Exercises on evaluation of relational operators
    (on-line using Meet)
    13 (May 18) Lectures 55,56
    - SQL engine: query parsing
    - Logical query plan analysis
    (on-line using Meet)
    Lectures 57
    - Exercises on logical query plan analysis
    (on-line using Meet)
    Lectures 58,59
    - SQL engine: physical query plan analysis
    - Exercises on query processing
    (on-line using Meet)
    14 (May 25) Lectures 60,61
    - SQL engine: physical query plan analysis
    (on-line using Meet)
    Lectures 62
    - Exercises on query processing
    (on-line using Meet)

    Lectures 63,64
    - Exercises on query processing
    (on-line using Meet)
  • Exercises
    • Exercises on concurrency control - part 1 (see the Moodle page)
    • Exercises on concurrency control - part 2 (see the Moodle page)
    • Exercises on file organizations - part 1 (see the Moodle page)
    • Exercises on file organizations - part 2 (see the Moodle page)
    • Exercises on file organizations - part 3 (see the Moodle page)
    • Exercises on evaluation of relational operators - part 1 (see the Moodle page)
    • Exercises on evaluation of relational operators - part 2 (see the Moodle page)
  • Topics covered
    • 1. The structure of a Data Base Management System (DBMS)
    • 2. Buffer management: buffer pool, replacement strategies, operations on the buffer
    • 3. Concurrency management: The concept of transaction, The notion of serializability, Concurrency management strategies
    • 4. Recovery: Crash management, Classification of failures, Recovery strategies
    • 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
  • 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 11, 2020, at 2:00pm
      • Second written exam: July 9, 2020, at 2:00pm
      • Third written exam: September 3, 2020, at 2:00pm
      • Special exam session (only for "fuori corso" or "part-time" students): October 2020
      • Fourth written exam: January 2021
      • Fifth written exam: February 2021
      • Second special exam session (only for "fuori corso" and "part-time" students): April 2021
  • 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 2019-2020 edition will be posted here as soon as they are available.
  • Information on past editions of this course