Data Management (academic year 2017/2018)
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 2017 - December 2017).
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.
- February 15, 2018. The exam of March-April (for "fuori corso " and part-time students) will be held on March 29, 2019, at 9:00am, in classroom 3, Istituto Castelnuovo (Sapienza main campus). Students can book for the exam through the Infostud system within March 26, 2019. Only students who will book for the exam will be allowed to participate in the exam, and there will be no exception to this rule.
- December 22, 2017. The lectures of the course are over. I would like to thank all the students who have regularly attended the lectures. I had good time with you!
- 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: [08:00am - 10:00am], via Eudossiana 18, classroom 11,
- Tuesday: [02:00pm - 04:00pm], via Eudossiana 18, classroom 29,
- Friday: [10:00am -- 11:00am] via Eudossiana 18, classroom 41.
Week | Monday (08:00am - 10:00am) classroom 11 | Tuesday (02:00pm - 04:00pm) classroom 29 | Friday (10:00am - 11:00am) classroom 41 |
01 (Sep 25) | Lectures 1,2 - Course overview - Relational data model |
|
Lectures 3 - Recap of relational algebra and SQL |
02 (Oct 02) | Lectures 4,5 - Buffer management - Transaction management |
Lectures 6,7 - Serializability - View equivalence and serializability |
Lectures 8 - Monotonicity of classes of schedules - Algorithms for view serializability |
03 (Oct 09) | Lectures 9,10 - Conflict equivalence - Conflict serializability - Conflict serializability theorem |
Lectures 11,12 - Locking protocols - The two-phase locking protocol |
Lectures 13 - Deadlock in locking protocols - Exercises on concurrency |
04 (Oct 16) | Lectures 14,15 - Recoverability - Strict and rigorous schedules - Strict 2PL protocol |
|
Lectures 16 - Timestamp-based scheduler - Multiversion concurrency control - Concurrency in SQL |
05 (Oct 23) | Lectures 17,18 - Recovery in DBMSs - Introduction to file organizations |
Lectures 19,20 - Simple file organizations - 2-way external sorting |
Lectures 21 - k-way external sorting - The notion of index - Types of indexes |
06 (Oct 30) | Lectures 22,23 - The notion of index - Types of indexes |
Lectures 24,25 - Clustering sorted indexes - Non-clustering sorted indexes |
|
07 (Nov 06) | Lectures 26,27 - Clustered files - Exercises on sorting and sorted indexes |
Lectures 28,29 - MongoDB: a non-relational database management system (Prof. Domenico Lembo) |
Lectures 30 - Tree-based indexes |
08 (Nov 13) | Lectures 31,32 - Hash-based indexes - Exercises on file organizations |
Lectures 33,34 - Exercises on file organizations |
Lectures 35 - Evaluation of relational operators: classification of algorithms |
09 (Nov 20) | Lectures 36,37 - One pass algorithms |
Lectures 38,39 - Evaluation of relational operators: nested loop algorithms |
Lectures 40 - Evaluation of relational operators:nested loop join |
10 (Nov 27) | Lectures 41,42 - Evaluation of relational operators: two pass algorithms based on sorting |
Lectures 43,44 - Evaluation of relational operators: two pass algorithms based on hashing |
Lectures 45 - Index-based algorithms |
11 (Dec 04) | Lectures 46,47 - Multi-pass algorithms |
Lectures 48,49 - Exercises on evaluation of relational operators |
|
12 (Dec 11) | Lectures 50,51 - Parallel processing for relational operators |
Lectures 52,53 - Producing logical plans for SQL queries |
Lectures 54 - Estimating the size of results of relational expressions |
12 (Dec 18) | Lectures 55,56 - Physical query plans |
Lectures 57,58 - Exercises on physical query plans | Lectures 59 - Exercises on logical and physical query plans |
- 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 - the slides, with solutions, can be downloaded from the course page of the MOODLE system.
- Exercises on query plans - 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
- 7. NoSQL databases: The case of document-oriented databases and MongoDB
- 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, 2018, 2:00pm, classroom III, Istituto Castelnuovo, Facoltà di Matematica, Main Campus Sapienza
- Second written exam: February 6, 2018, 2:00pm, classroom III, Istituto Castelnuovo, Facoltà di Matematica, Main Campus Sapienza
- Special exam session (only for "fuori corso" or "part-time" students): April 17, 2018
- Third written exam: June 15, 2018, at 9am
- Fourth written exam: July 13, 2018, at 9am
- Fifth written exam: September 6, 2018, at 2:00pm
- Second special exam session (only for "fuori corso" and "part-time" students): October 19, 2018
- Sixth written exam: January 11, 2019, at 2pm, classroom 3, Istituto Castelnuovo
- Seventh written exam: February 5, 2019, at 2pm, classroom 3, Istituto Castelnuovo
- Third special exam session (only for "fuori corso" or "part-time" students): March 29, 2019
- 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)