This course covers the implementation of database systems by addressing the main topics, including data storage, indexing, querying; query optimization and execution; concurrency control and transaction management.
The purpose of the course is to become familiar with the principles and the ideas behind established techniques for handling data at scale. Students will implement classic and cutting-edge database systems methods in three projects. Projects represent the biggest chunk of this course. The projects require extending the functionality of a data management system in order to support novel features. In at least one the projects, students will also write a technical report that describes and experimentally evaluates the built system.
The course is complemented by lab sessions to guide students through the design and validation of the methods developed duringthe lectures.
Teaching and Learning Methods: Lectures and Lab sessions (preferably one student per group).
Course Policies :
Students are expected to do their own assigned work. If it is determined that a student has engaged in any form of academic dishonesty, he or she may fail the course and additional sanctions according to Eurecom's policies.
During the course, we will cover several chapters in the textbook: "Database Management Systems", R. Ramakrishnan and J. Gehrke.
When needed, suggested books and/or research articles will be reported in class.
For the course to be effective, course participants should already have acquired basic database knowledge (i.e., know SQL basics). Course participants should also have programming experience.
The course will cover the following topics:
- Introduction to database systems
- Fondations architecturales
- Buffer management
- Index structures
- Query execution
- Query optimization
- Concurrency control
- Advanced topics
- Project review
- Be able to identify the key elements composing a database systems
- Be able to recognize the suitability of different techniques given a data processing problem
- Be able to use and evaluate alternative techniques for data processing problems
- Be able to develop proof-of-concept components of a DBMS
Nb hours : 42.00, at least 4 Lab sessions (12 hours)
Grading Policy :
Assessed projects (50%), final written exam (50%).
To pass the course is required to submit all projects and score >=50% on the final exam.