Course Overview
The class takes place: Monday + Wednesday, 3:15 pm - 4:30 pm, SB 104
Databases management systems are a crucial part of most large-scale industry and open-source systems. This course provides comprehensive coverage of issues associated with database system development and an in-depth examination of structures and techniques used in contemporary database management systems (DBMSs). Students will learn about the inner workings of these exciting systems: Which algorithms are used? What are typical architectures used to build a system as complex as a DBMS? What are implementation strategies? These questions and more will be answered during the course.
The course is highly applied, emphasizing practical skills and habits through a series of programming assignments during which students will develop their own tiny DBMS like engine. We will cover the most important aspects/components of a DBMS: storage and buffer management, indexing, query optimization, query execution, and concurrency control and recovery.
Instructor
Boris Glavic
- Email: bglavic@iit.edu
- Phone: 312 567 5205
- Office: Stuart Building, room 206b
- Office Hours: Wednesdays, 1:00 pm - 2:00 pm
- Webpage: http://www.cs.iit.edu/~dbgroup/members/bglavic.html
TAs
Su Feng
- Email: sfeng14@hawk.iit.edu
- Video call: https://iit-edu.zoom.us/j/86500811149?pwd=QldaQ0tOODlmOTU3ZHF3R1lsMUpGUT09
- Office: SB 012
- Office Hours: Mondays + Wednesdays, 2:00 pm - 3:00 pm
Manan Kapadia
- Email: mkapadia3@hawk.iit.edu
- Video call: https://us04web.zoom.us/j/3233579611?pwd=bDVyQk9oTExBNWRYRndPcjVRTGs1UT09
- Office: SB 019
- Office Hours: Wednesdays, 5:00 pm - 7:00 pm
Shubham Tiwari
- Email: stiwari10@hawk.iit.edu
- Video call: https://iit-edu.zoom.us/j/6113709469
- Office: SB 019
- Office Hours: Tuesdays + Thursdays, 4:00 pm - 5:00 pm
Aniruddh Suresh Pillai
- Email: apillai8@hawk.iit.edu
- Video call: https://us04web.zoom.us/j/73487717491?pwd=bD6c9a3AdJuA6Hyl1o1DmWgNX6iQtq.1
- Office: SB019
- Office Hours: Thursdays, 2.00 pm - 3.00 pm
Syllabus
Prerequisites
- Courses: CS425
- Programming experience in C, C++ or other low level languages
- Unix OS and file system knowledge is helpful
- Data structures (.e.g., CS401)
Grading Policies
Weighting of Deliverables
- programming assignments: (10% + 10% + 15% + 15%)
- midterm exam: 20%
- final exam: 20%
- quizzes: (5% + 5%)
Grading Scheme
Your final course grade is determined based on your total score which is calculated as the weighted sum of the points for each of the deliverables. The weights are as shown above. For each deliverable you will receive between 0
and 100
points. For some deliverables, I am giving additional bonus points. These are not considered for the grade cutoffs. For instance, the first programming assignment is weighted 10%. For sake of the example assume that you get 110 points in this assignment (full points + bonus points), then this assignment would contribute \(0.1 * 110 = 11\) points to your final score.
- A: > 80
- B: > 60
- C: > 50
- E: < 50
Reading Material
The following text books will be helpful for following the course and studying the presented material. All four textbooks have their merits, but any one should be sufficient as reading material.
- Elmasri and Navathe, Fundamentals of Database Systems, 6th Edition, Addison-Wesley, 2003
- Ramakrishnan and Gehrke, Database Management Systems, 3nd Edition, McGraw-Hill, 2002
- Silberschatz, Korth, and Sudarshan, Database System Concepts,
, McGraw Hill, 2010 - Garcia-Molina, Ullman, and Widom, Database Systems: The Complete Book, 2nd Edition, Prentice Hall,
The slides for the course will be made available here. For the brave, I will link research papers related to the topics covered in the course: references