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
- 10% — Programming Project #1
- 25% — Programming Project #2
- 40% — Programming Project #3
- 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 — EXTRACT Function
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 19, 2017
- Due Date: Jan 31, 2017 @ 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, 2017
- Due Date: Mar 09, 2017 @ 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 07, 2017
- Due Date: May 15, 2017 @ 11:59pm
Final Exam
There will be a written exam in the last class at the end of the semester. The exam will be long-from questions based on the mandatory readings and topics discussed in class. It will be closed notes.
It's going to be raw, son.
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 09, 2017
- Due Date: May 15, 2017 @ 11:59pm