Fall 2017


This course is designed to introduce graduate students to the foundations of database systems, focusing on basics such as the relational algebra and data model, query optimization, query processing, and transactions. This is not a course on database design or SQL programming (though we will discuss these issues briefly). It is designed for students who have taken 6.033 (or equivalent); no prior database experience is assumed though students who have taken an undergraduate course in databases are encouraged to attend.

Classes will consist of lectures and discussions based on readings from the database literature. For 6.830, there will be a semester long project, as well as two exams and 6 (or 8) additional assignments -- 4 (or 6) Java based programming "Labs" and 3 problem sets. For 6.814, exams and assignments are the same as 6.830, but instead of the semester project, there will be 2 additional labs.

Enrollment may be limited.

The course web site is http://db.csail.mit.edu/6.830/index.php.


Lectures are held twice a week, from 2:30-4:00 in 32-155 on Mondays and Wednesdays. Attendance at lectures is mandatory and you are expected to show up prepared to answer questions and participate in discussion.

Topics Covered

Topics related to the engineering and design of database systems, including: data models; database and schema design; schema normalization and integrity constraints; query processing; query optimization and cost estimation; transactions; recovery; concurrency control; isolation and consistency; distributed, parallel, and heterogeneous databases; adaptive databases; trigger systems; key-value stores; object-relational mappings; streaming databases; DB as a Service. Lecture and readings from original research papers. 6.830 includes semester-long project and paper.


Students should have taken 6.033 (Introduction to Systems) or equivalent as well as 6.006 (Introduction to Algorithms) or equivalent. If you do not have experience in these subjects and would like to take the course, please email the instructor. Prior database experience is not required. Java programming experience is assumed.


3-0-9. 6.830 is a Grad-H class. It counts as an engineering concentration (EC) subject in Systems. For Area II Ph.D. students in EECS, it satisfies the Systems TQE requirement.

6.814 is a undergraduate class designed to satisfy the AUS requirement in the EECS curriculum. It counts as an engineering concentration (EC) subject in Systems.


Grades are assigned based on labs, homeworks, 2 quizzes, final project (for 6.830), and class participation. The grading breakdown is as follows:

Grading is handled different for the two versions of the class:



Each student is allowed 5 "late days", each of which may be used to turn in one problem set or lab one day (24 hour period) later than it is due without penalty. After all five late days are used, assignments will be docked one letter grade for each day they are late.

Late days may not be used for the final project/lab 6 or exams. Regardless of late days, problem sets must be handed in before problem set solutions are posted, usually a week after the problem set is due.

Collaboration Policy

For problem sets and labs, you are allowed to discuss your answers with other students, but please write up your own answers and list your collaborators. Copying solutions from other students is never allowed. For the group project you will work in teams and hand in only one written report. Note that we will use software to detect copying of lab and homework assignments.


The course readings will primarily be drawn from the 4th Edition of ``Readings in Database Systems'', edited by Stonebraker and Hellerstein as well as the textbook "Database Management Systems" from Ramakrishnan and Gehrke.

Both texts are available from the MIT Coop. Note that the 3rd Edition of "Readings In Database Systems" is a substantially different text (it does not include the same readings as the 4th edition, or the recently released 5th edition.) Also, note that "Readings in Database Systems" is available online from Books 24x7.com (free registration is required, and you may need to authenticate with the MIT Libraries or log in to library.books24x7.com.libproxy.mit.edu and search -- this URL was updated 8/30/2017).

Supplemental Readings

There will be several other readings that will be posted on the course web site.

6.033 is a prerequisite. You may wish to review the 6.033 class notes, especially during our discussion of transactions and logging.

Last change: 9/5/2017.

Questions or comments regarding 6.830/6.814? Send e-mail to the 6.830/6.814 staff at .