Course Content
The objective of this course is to provide an in-depth understanding of the inside details of database systems, i.e., indexing, query optimization, transaction processing and concurrency management. It will also cover advanced aspects such as distributed databases, distributed transaction management, parallel databases, and NoSQL. Last but not least, the course will present advanced query languages. The aims of this course are to learn the technical details of database systems; to understand how these concepts are implemented in concrete systems; and to get hands-on experience in using a database system.
Objectives
- Understand the internals of various database technologies, the assumptions behind their designs challenges, and their technological stack
- Develop the ability to select the appropriate database technology to address specific challenges
- Gain practical experience by experimenting with relevant technologies
Info
Lecture and practice slots are on Zoom
- Wednesday 16:15 – 18:00 and (log into courses to see link)
- Friday 16:15 – 18:00 (log into courses to see link)
The course will follow an alternation of lectures and practice. Any variations to the tentative calendar will be announced.
Syllabus
- Introduction and Database Recap: SQL and Relational Algebra
- Data storage and File structures
- Query Processing and Optimisation
- Transaction Processing, Concurrency Control, and Recovery
- Advanced Querying
- NoSQL
Grading
- Assignments: 20% ( 5 assignments, we take the best 4)
- Projects: 50% ( 4 projects you have to choose between streaming/graph)
- Mid-term: 20% (could be one time or split, it will be decided according to the class participation)
- Final Exam: 20%
NOTE!!: The lectures reserve the right to call for an individual interview that can impact the final grade.
Text Book
- Database System Concepts Seventh Edition - Avi Silberschatz, Henry F. Korth, S. Sudarshan McGraw-Hill ISBN 9780078022159
- Database Internals: A Deep Dive into How Distributed Data Systems Work 1st Edition by Alex Petrov