CS 190D – Topics in Database System Implementation

Lectures: MWF 6:00-6:50pm @ PCYNH 106

Instructor: Arun Kumar

  • Office: Room 3218 EBU3b (CSE building)

  • Office Hours: Thu 2:00-3:00pm

Teaching Assistant: TBD

  • Office: TBD

  • Office Hours TBD

Class Mailing List: TBD

Piazza: TBD


  • The first class is on Monday 04/03.

Course Goals and Content

This is a hands-on systems-focused course on the implementation of a database management system (DBMS), especially, a relational DBMS (RDBMS). RDBMSs are the cornerstone of large-scale data management in numerous application domains that define our modern world, including finance, insurance, retail, logistics, telecommunications, healthcare, governance, and education. Furthermore, concepts developed in the context of RDBMSs are indispensable for the underpinnings of the so-called Big Data and NoSQL systems that were developed for new applications such as Web search, e-commerce, social media, and advanced analytics.

This course will cover key systems topics in implementing an RDBMS: data storage, buffer management, indexing, sorting, relational operator implementations, a bit of query optimization, and a bit of transaction management and concurrency control. The implementation of newer Big Data systems such as Spark and MapReduce/Hadoop, as well as distributed NoSQL/key-value stores, in-memory RDBMSs, and streaming DBMSs will also be covered.

A major component of this course is hands-on C++ programming to implement two key components of an RDBMS: a buffer manager and a B+-Tree index – on top of a basic RDBMS skeleton that will be provided.

Course Format

  • The class meets 3 times a week for 50-minute lectures.

  • A midterm exam and a final exam.

  • 2 programming projects.

  • A few short in-class quizzes (ungraded).


  • CSE 132A is absolutely essential. CSE 120 and 132B will likely be helpful.

  • You should know, or be willing to learn quickly by yourself, the programming language C++ for the projects. Here is a good C++ tutorial.


  • Recommended: Database Management Systems (3rd edition), by Raghu Ramakrishnan and Johannes Gehrke (aka the "cow book").

  • Additional (optional): Database Systems: The Complete Book (2nd edition), by Hector Garcia-Molina, Jennifer Widom, and Jeffrey Ullman.


  • Project 1: 20%

  • Project 2: 30%

  • Midterm Exam: 20%

  • Final Exam: 30%

Exam Dates

  • Midterm Exam: TBD

  • Final Exam: TBD

Classroom Rules

  • No late days for submitting the programming projects.

  • If plagiarism is detected in the project code or the exams, University authorities will be notified for appropriate disciplinary action to be taken.