Educational Objectives
This is a graduate-level course on the internals of database management systems. This course has a heavy emphasis on programming projects. There are also readings assigned for each class and a final exam. Upon successful completion of this course, the student should be able to:
- Apply and customize state-of-the-art implementation techniques for single-node database management systems following modern coding practices.
- Identify trade-offs among database systems techniques and contrast alternatives for both on-line transaction processing and on-line analytical workloads.
- Develop and justify design decisions in the context of a high-performance database system.
- Implement and evaluate complex, scalable database systems, with emphasis on providing experimental evidence for design decisions.
- Interpret and comparatively criticize state-of-the-art research talks and papers, with emphasis on constructive improvements.
All programming projects will be completed in the Peloton database management system.
Wait List
Students will be enrolled in the course from wait list in the order that they become "eligible". A student is deemed eligible when the complete the complete the first project with 100% of tests passing and have turned in all reading reviews up to the current date. The instructor will add students will in a rolling basis until the course reaches capacity.
Grading Scheme
The final grade for the course will be based on the following weights:
- 10% — Reading Assignments & Reviews
- 5% — Programming Project #1
- 20% — Programming Project #2
- 40% — Programming Project #3
- 10% — Mid-term Exam
- 15% — Final Exam
- +10% — Extra Credit
Reading Assignments & Reviews
For each class, there is set of assigned readings. Each student is required to turn in a one paragraph synopsis of the mandatory paper (denoted by the symbol on the course schedule). Students are encouraged to peruse the supplemental readings to enhance their knowledge about a particular, but this not required and these papers will not be covered in the final exam. Students are allowed to miss reading review submissions for four classes during the semester. Late submissions will not be accepted without prior approval from the instructor.
Each review must include the following information:
- An overview of the main idea and contributions (Three sentences).
- What system was used in the implementation (One sentence).
- The workloads that they used for their evaluation (One sentence).
Students will submit their synopsis using this Google Form before class begins. Late submissions will not be accepted.
WARNING: These reading reviews must be your own writing. You may not copy from the papers or other sources that you find on the web. Plagiarism will not be tolerated. See CMU's Policy on Academic Integrity for additional information.
Programming Project #1 — SQL String Functions
The first programming assignment is to implement SQL String functions in the DBMS. This is a single-person project that will be completed individually (i.e., no groups). Students will be provided with instructions on what files to modify in the DBMS and test cases to evaluate their implementation. Grading will be based on both correctness and performance.
- Information: Project Specification
- Release Date: Jan 17, 2018
- Due Date: Jan 29, 2018 @ 11:59pm
Programming Project #2 — Concurrent Index
Students will organize into groups of three and implement a thread-safe, concurrent data structure. Once again students will be provided with instructions on what files to modify in the DBMS and test cases to evaluate their implementation. Grading will be based on both correctness and performance.
- Information: Project Specification
- Release Date: Jan 31, 2018
- Due Date: Mar 12, 2018 @ 11:59pm
Programming Project #3 — Group Project
The main component of this course will be the final group project. Students will organize into groups and choose to implement a project that is (1) relevant to the materials discussed in class, (2) requires a significant programming effort from all team members, and (3) unique (i.e., two groups may not choose the same project topic). The projects will vary in both scope and topic, but they must satisfy this criteria. We will discuss this more in depth during class, though students are encouraged to begin to think about projects that interest them early on. If a group is unable to come up with their own project idea, the instructor will provide suggestions on interesting topics.
- Information: Project Specification
- Release Date: Mar 05, 2018
- Due Date: May 15, 2018 @ 11:59pm
Mid-term Exam
There will be a written exam in the last class before Spring Break. The exam will be a combination of written and multiple-choice questions based on the mandatory readings and topics discussed in class. It will be closed notes. It's going to be raw, son.
Final Exam
The final exam will be a take-home assignment that will be given out on the last day of class at the end of the semester. The exam will be long-from questions based on the mandatory readings and topics discussed in during the entire semester. Students will turn in their exam in paper during the final project presentations (to be announced).
Extra Credit
The Carnegie Mellon Database Research Group is writing an on-line encyclopedia of database management systems (both commericial and academic). Each student can earn extra credit if they write an article for one DBMS. The article must be high-quality with proper citations and attributions.
- Information: Project Specification
- Release Date: Mar 05, 2018
- Due Date: May 15, 2018 @ 11:59pm