Database System Implementation

3.00 / 5 rating2.83 / 5 difficulty12.17 hrs / week

Quick Facts and Resources

Something missing or incorrect? Tell us more.

Name
Database System Implementation
Listed As
CS-6422
Credit Hours
3
Available to
CS students
Description
Design and implementatuion of a databse system covering: storage manager, query optimizer, transaction manager, and recovery manager. Study of the advantages of different implementation algorithms. Credit not allowed for both CS 6422 and CS 4420.
Syllabus
Syllabus
  • C3Idv8ylYpFDQqlwsq904A==spring 2026

    Background: not an SWE but fair amount of coding experience and systems courses such as GIOS, AOS, DC, CN, undergrad OS, computer architecture, DSA. Having taken all of those systems courses was definitely helpful for understanding the assigned readings.

    I wouldn't say this course is an easy one, but definitely not harder than GIOS or AOS. My impression is that early reviews of this course were done by students who are much more skilled in C++ or when the curve was more generous, quizzes were easier etc. At the same time, instructors offered 10% extra credit this semester, so I wouldn't be surprised if most students ended up with an A again.

    Assuming familiarity with C++, the assignments take about 0.5-0.8x the time of a typical GIOS/AOS assignment. Like most other courses, this course's quiz/exam questions could be worded more clearly or precisely.

    For me personally, most of the knowledge I learned was from reading the textbook, papers, and studying for the exams. The lectures are very high-level and prioritize teaching C++ too much at the expense of teaching about databases.

    I would get rid of:

    1. C++ warm-up assignment -- this assignment is kind of a time suck, and the main learning benefit is for students who don't know have experience with C++. But C/C++ and systems programming is already a course pre-requisite and this assignment doesn't teach anything about database implementation, so why bother? Especially with giving students a whole 3 weeks to complete
    2. new R-Tree assignment -- coding up an R-tree is cool, but it's a fairly niche index structure and the marginal learning benefit is too small since we already implement a B+ tree in assignment 3

    I would have liked to see a coding project on vectorized execution, columnar storage, or log-structured merge trees.

    TAs are nice but kind of slow responding to questions and not really transparent about bugs or issues that come up with the assignment instructions etc.

    Rating: 3 / 5Difficulty: 3 / 5Workload: 20 hours / week

  • Hlbv1xErB9n1pHPQKEPY4Q==spring 2026

    CS6422 - DI - is like a code blog transformed into a class. The "Implementation" part of the name is really the focus here. Lectures typically have this format: "Currently our code uses raw pointers. However, this is not very safe because of .... Therefore, I now decided to replace them with smart pointers, which solve these issues because of .... Let's examine our new code..." You're not learning much about databases, you're just being walked-through how one is implemented in C++. That would still be interesting if it were a deep dive into all the tricks within the language, but Prof. Alraj does not bother. You won't learn how smart pointers actually work, you'll just be given a high level overview.

    To make matters worse, the lectures are dry, slow, and boring to listen to. I ended up skipping all and just reading the slides. This isn't a knock on the professor - he hosts 4 Saturday office hours (for a massive 10% extra credit for attendance) where he gives live lectures that are actually interesting. But in the recorded lectures he's clearly reading off a dry script that almost sounds as though it were AI generated. And frankly, in a master's level program I'm not interested in learning "what is debugging?", "what is multi-threading?", and "what is a hash table?"

    The worst part about the course, though, is just how unprofessional it is. Not only the lecture slides, but the code implementations themselves (which you download for review after every lecture) are riddled with errors. I don't mean syntax errors, I mean logical "this code doesn't make any sense" errors. The TAs try to wave them away but its clear the professor put little effort into it. There are so many classes in this prestigious program that just don't belong, and CS6422 should be towards the top of that list.

    Finally, a note on the logistics - the 2 exams and 3 quizzes are all MC, predominantly theory based. You can bring 1 cheat sheet, and a significant number of exam questions are copied verbatim from the quizzes and practice tests. If you are privacy concious be warned - you have to use HonorLock on all exams and quizzes! Recommend using a LiveUSB. 5 C++ HWs, all in a single file with a handful of hidden test cases, graded on GradeScope. If you go into the course without being comfortable in C++ you will struggle (ex - you will have to implement multi-threading before the lecture "what is multi-threading?)

    Rating: 2 / 5Difficulty: 3 / 5Workload: 6 hours / week

  • JQvsN0lC+k+IYMvXryhPgQ==spring 2026

    Overall, DSI was a solid systems course, but it was more rigorous than I expected based on the reviews here. I'll break down the course content by weighing in the final grade:

    Lectures/Exams (2 exams, 20% each, 40% total) Lectures are quite dense overall, and the difficulty of each lecture varies wildly. Some lectures review familiar programming idioms (e.g. encapsulation, templating, ...) while other lectures throw slides full of C++ code of new data structures (buffer manager, B+ tree, hash aggregation operator, ...). Depending on which lecture video you're watching, it can sometimes take an extremely long time to comprehend the contents. Exams are quite gimmicky. They are 2 hours, HonorLock, multiple-choice, with about 80% noncomputational / 20% computational. Of the noncomputational questions, they loved to spam "which of the following is NOT true" in the question prompt. Often, the concept was nowhere present in the lectures, so you have to improvise based on what you know and how the question is worded. I thought that these exams mostly tested "your ability to take a multiple-choice test" more than "how much you know about database management systems". Reading the textbook is not required to do well on exams.

    Exercise Sheets (3 sheets, 5% each, 15% total) Mini-exams, HonorLock-proctored just like the actual exams. Same question style as the exams (I'm not really sure why these are proctored tbh). One benefit is that sometimes, a question on an Exercise Sheet reappears on an Exam, so that's free points.

    Assignments (5 assignments, 9% each, 45% total) These are the best part of the course, though they can be quite lengthy depending on your experience in C++ (I took about 30 hours/assignment on average). Often times they will use idioms and structures that haven't been introduced in the modules (e.g. threading was used in Assignment 1, which was due before the Threading module was scheduled), so it would be wise to review online docs/LLMs to see how to use everything. These are always structured as a single C++ file with a partial test harness in main(). The 5 assigments can be previewed here: https://buzzdb-docs.readthedocs.io/part1/index.html

    Rating: 3 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • cGGo8T2m8PqYVhqrIFO1ZA==fall 2025

    Lectures were useful maybe 50% of the time. Spent way too much time on c++ and not enough time digging into more internals of databases. I might just be too smooth brained, but I thought the exams were kinda challenging. Wording was strange at times, and I felt they took "practical application of course material, multiple choice, and not much written math" to its limit in difficulty. Some exam questions were on research papers that were provided throughout the semester. I found the topics interesting, but the reading load on them wasn't very balanced. TAs were slow to respond. Office hours were exactly once, 1 hr/week, which was bad, but always with the professor.

    The professor himself was one of the best parts of the class. Even though the lecture content was often not what I wanted to be watching, he's extremely happy to be talking about this material. During office hours, he was genuinely interested in hearing from students, helping where he could, and giving high-level overviews of the research papers.

    Rating: 3 / 5Difficulty: 3 / 5Workload: 8 hours / week

  • zhE+Nal3x1LLOxyCcniiUg==summer 2025

    • This course felt like a beta course. It is not a graduate level course (I doubt if this can even be at undergrad level)! The content could have included other topics like Logging, Recovery, Transaction Management, Distributed and Cloud databases, Examples for the features described from modern databases but apparently another course is being prepared for these. If you are looking for a solid understanding of relational databases, just read the recommended book "Database System Concepts, 7th edition (https://www.db-book.com/) and may be go through Andy Pavlo’s youtube videos instead of taking this course.

    • As others said, too much time is given for C++ concepts in the lectures, thus depriving of chances to cover other database concepts. C++ must be made a pre-requisite instead. There is a programming assignment just to check C++ concepts, that could have been used for solidifying other database concepts instead.

    • TAs were mostly low key on Ed during the summer semester. They took many days to respond to student enquiries. I took a couple of courses before this, and TAs in this course are the least participating ones. Ed forum did not see much activity as the TAs and Professor didn’t respond to student queries within a few days in general (I would expect TAs to field most of the questions within a day or two). There was a time when all of them went completely silent for 4-5 days!

    • Lecture slides contained many mistakes from the first run of the course and were not corrected in this run too. It seems like not enough attention or effort is spent to improve the online version of this course. If you are coming to this course expecting GIOS type of rigor and discipline, you’ll be disappointed!

    • Exams and exercise sheets were not that challenging. Programming assignments don’t have much guidance via comments. However if you spend like 4-5 hrs per week, you can end up getting an A easily (assuming you have C++ knowledge).

    • This course’s curve is the most lenient (if you scored >= 80% you get an A grade, otherwise a B) of all the courses. 90% of the students got A! If I knew this beforehand, I’d have studied even less for the exams and exercises and I would have spent more time in reading the book.

    Rating: 2 / 5Difficulty: 1 / 5Workload: 5 hours / week

  • cvUKRHrSDa+Z2dn5TUe48Q==fall 2025

    Medium-effort, high ROI course. 4 Assignments 3 quizzes 2 exams

    Great class if you are interested in understanding how databases are built from scratch. The assignments focus on implementing a beta version of BuzzDB in C++ and iteratively improving it over the course of the assignments. One of the nicer things is that there are no hidden test-cases. Passing the test-cases locally almost always guarantees a 100% on gradescope. B+ tree (assignment 3) was the most challenging one.

    Quizzes: These are proctored quizzes (via honorlock) that mainly focus on the lectures. Combined make up around 25% of the grade. They aren't too bad , but there are 3-5 questions that can seem from material not included in the lectures but need general database knowledge to answer

    Exams: Same as the quizzes but with the material from the papers, especially the final was mostly from material in the papers. But the professor mentions the important sections from the papers relevant to the exam. My advice would be to focus on those.

    Curve 85% was an A , it looks like the course is getting tougher with time. % of As has decreased compared to previous semesters.

    One of my criticisms is the weightage of assignments relative to quizzes, quizzes seem like beta exams, and sometimes I felt that they weren't really needed . Instead they could add up-to 2 extra assignments dealing with in-depth concepts from databases. This is where the course missed the bar slightly.

    Overall , a great course, put in the effort and you will be fine. The professor and TAs genuinely care and want the students to succeed. My grade A - (89%)

    Rating: 5 / 5Difficulty: 3 / 5Workload: 14 hours / week