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.
- April 10, 2020. The exam of Data Management originally scheduled for April 16, 2020 is postponed to May 4, 2020, at 3:00pm. The students will be informed about the method adopted for the exam, which will be based on distance learning tools. Students willing to participate in the exam must book through Infostud within April 12, 2020.
- March 9, 2020. Following the law imposed by the government, all exams are currently suspended. Information about when and how the exam of the "appello straordinario" will be held will be posted in this page, as soon as they will be available.
- 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.
- 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 25) | 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 - ACR, strict and rigorous schedules - Concurrency control based on timestamps |
Lectures 19,20 - Concurrency control in SQL and Postgres - Recovery manager - Page and record organizations |
06 (Apr 01) | Lectures 21,22 - Simple file organizations - Sorting in secondary storage |
Lectures 23 - The notion of index |
Lectures 24,25 - Clustered sorted-index |
07 (Apr 08) | Lectures 26,27 - Unclustered sorted-index |
Lectures 28 - Clustered files - Exercises on sorted indexes |
Lectures 29,30 - Tree-based index - ISAM |
08 (Apr 15) | Lectures 31,32 - B+-trees - Exercises on B+-trees |
Lectures 33 - Hash-based indexes |
Lectures 34,35 - Evaluation of relational operators |
09 (Apr 22) | |
|
Lectures 36,37 - Cost model for relational operators |
10 (Apr 29) | Lectures 38,39 - One-pass algorithms |
Lectures 40 - Nested-loop algorithms |
|
11 (May 06) | Lectures 41,42 - Two-pass algorithms based on sorting |
Lectures 43 - Two-pass algorithms based on hashing |
Lectures 44,45 - Multi-pass algorithms - Exercises on algorithms for relational operators |
12 (May 13) | Lectures 46,47 - Index-based algorithms |
Lectures 48 - Index-based algorithms |
Lectures 49,50 - Exercises on algorithms for relational operators |
13 (May 20) | Lectures 51,52 - Query parsing |
Lectures 53 - Logical query plan |
Lectures 54,55 - Physical query plan |
14 (May 27) | Lectures 56,57,58,59,60 - Exercises on algorithms for query evaluation |
- Exercises on concurrency control (part 1) - the slides, with solutions, can be downloaded from the course page of the MOODLE system.
- Exercises on concurrency control (part 2) - the slides, with solutions, can be downloaded from the course page of the MOODLE system.
- Exercises on file organizations (part 1) - the slides, with solutions, can be downloaded from the course page of the MOODLE system.
- Exercises on file organizations (part 2) - the slides, with solutions, can be downloaded from the course page of the MOODLE system.
- Exercises on the evaluation of relational operators (part 1) - the slides, with solutions, can be downloaded from the course page of the MOODLE system.
- Exercises on the evaluation of relational operators (part 2) - the slides, with solutions, can be downloaded from the course page of the MOODLE system.
- Exercises on query evaluation and optimization - the slides, with solutions, can be downloaded from the course page of the MOODLE system.
- 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
- 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 13, 2019, 9:00am, classroom 33 + 11 (via Eudossiana 18)
- Second written exam: July 12, 2019, 9:00am, classroom 33 + 11 (via Eudossiana 18)
- Third written exam: September 5, 2019, 9:00am, classroom 33 (via Eudossiana 18)
- Special exam session (only for "fuori corso" or "part-time" students): October 26, 2019, 10:00am, classroom 6 (via Eudossiana 18)
- Fourth written exam: January 2020
- Fifth written exam: February 2020
- Second special exam session (only for "fuori corso" and "part-time" students): April 2020
- 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.
- Academic year 2017/2018
- Academic year 2016/2017
- Academic year 2015/2016
- Academic year 2014/2015
- Academic year 2013/2014
- Academic year 2012/2013
- Academic year 2011/2012
- Academic year 2010/2011
- Academic year 2009/2010
- Academic year 2008/2009
- Academic year 2007/2008
- Anno accademico 2006/2007 (in Italian)
- Anno accademico 2005/2006 (in Italian)
- Anno accademico 2004/2005 (in Italian)
- Anno accademico 2003/2004 (in Italian)