CS 377 - Database Systems


This is an introduction course on database systems. It introduces the fundamental concepts of the design and use of database systems. We will introduce the Entity-relationship model used to design a database. The main focus of the course will be relational database systems where we will study the relational data model and the SQL query language for accessing the data maintained by relational database systems. We will briefly cover database systems implementation, including topics such as indexing, storage management, transaction processing.

Contacting your Instructor

Please direct all technical questions related to the course material (e.g., assignments, lecture clarifications, etc.) to our Piazza Page. Any email regarding technical questions will be a redirected to posting on Piazza. Myself, the TAs, and your fellow students will respond there as soon as we can! For anything else (e.g., private matters, course accommodations, etc.) 


  • [Recommended] Fundamentals of Database Systems (6th / 7th edition), by Ramez Elmasri & Shamkant B. Navathe
  • [Supplemental] Database Systems: The Complete Book, by Hector Garcia-Molina, Jeffrey D. Ullman, & Jennifer Widom
  • [Supplemental] Database System Concepts, by Abraham Silberschatz, Henry Korth, & S. Sudarshan
  • [Supplemental] Online mini-courses (https://online.stanford.edu/courses/soe-ydatabases-databases) by Professor Jennifer Widom at Stanford University

Course Grading

Your grade will be determined by a weighted average of all the graded items. Grades may be curved (up) so that the class mean falls at least in a B range. The class median, mean, and standard deviation for each assignment and exam will be announced so you have an idea where you stand. The participation element consists of monthly surveys on Piazza and class.

Component Weight
5 Assignments 40%
Final Project 15%
Midterm 15%
Final 20%
Participation 10%

Assignment Policy

Assignments are designed to help you apply the concepts we discussed in class and get practical experience with database systems. They will be submitted electronically on Canvas and due at 11:59 PM ET (EDT until November 7th when we move back to EST). If it is submitted even one second after 11:59 PM, it will be considered late, so please submit early!

  • Unless stated otherwise, assignments are expected to be completed individually. Online resources may be consulted for guidance or debugging purposes, but students may not look up how to explicitly perform the task at hand. Students may discuss high-level problems together, but when it comes to writing down the solution, each student must work alone (see Honor Code below).
  • Do not consult with each other's code or online code. Solutions which are not your own should never be copied and pasted (from online or from a peer). This is plagiarism and is grounds for an honor code investigation.

Late Assignment Policy

  • Each student receives six "late day" tokens that can be used on any of the 6 assignments (5 regular assignments + 1 final project) throughout the semester. Each token will extend the assignment due date by 24-hours. For a single assignment, no more than 3 late day tokens may be used.
  • There is no need to inform the instructor or the TAs you will be using the late days. This will be automatically tracked on our part throughout the semester.
  • Use your late days wisely, no more late days remaining means you will receive zero credit for any late assignment.
  • Additional extensions on assignments will be granted with appropriate documentation from the Office of Undergraduate Education (OUE).

Honor Code and Collaboration Policy

All class work is governed by the  College Honor Code  and the  Department Statement of Policy on Computer Assignments. While we encourage you to discuss assignments with other students, any code and writeups must be written by yourself. It is not okay to share code or write code collaboratively (this includes posting and/or sharing your code publicly). Apparent copies from any source, including your colleagues and internet sites, will be referred to the Emory Honor Council. Every assignment must have a README file with the following comment:


An assignment will not be considered turned in without the comment.

Exam (Midterm & Final) Policy

  • The midterm will be on 10/18 from 8:30 AM - 9:45 AM (class time). Rescheduling the midterm is only permitted in extenuating circumstances and/or emergencies with appropriate document from Office of Undergraduate Education (OUE). 
  • The final exam time is determined by the College. In the case that a student has 3 final exams on the same calendar date, arrangements for an alternative test time must be made before [date TBD]. In the event of emergencies or extenuating circumstances, arrangements will be handled on a case by case basis between the instructor, the student, and OUE.


This consists of Piazza bi-weekly surveys, Canvas bi-weekly online quizzes, and Canvas weekly preparations.

  • Canvas quizzes are estimated to take 15 minutes, but will have a time limit of 1 hour from the time you start it.
  • Weekly course preparations will be short exercises due right before class on Monday mornings and meant to refresh the material from the previous week.
  • No make-up will be offered except for extenuating circumstances in which arrangements will be made with proper documentation from OUE.
  • At the end of the semester, the lowest 2 scores (quizzes, preparations, surveys) will be dropped. This drop-out policy is intended to acommodate for any circumstances (illness, family emergencies, religious holidays, sports, etc.)

Bonus Opportunities

There will be 4 mechanisms for bonus opportunities.

  • Piazza participation award: The top 3 students writing the largest number of endorsed answers and/or asking the best questions on Piazza will receive a bonus point (+1%) in their class participation marks.
  • Class evaluation response: If the class reaches an 80% completion rate for the end-of-semester course evaluations, the entire class will get an extra 10 points added to the assignment with the lowest grade. Note that I can only access the completion rate, and not who filled out the evaluations.
  • Early submission bonus: Some assignments will have an early submission bonus that will be clearly indicated on the assignment handout.
  • Late assignment bank: For each unused late day token remaining at the end of the semester, you will receive 5 extra points on assignment with the lowest grade.

Students with Documented Disabilities

If you have a documented disability and have anticipated barriers related to the format or requirements of this course, or presume having a disability (e.g. mental health, attention, learning, vision, hearing, physical or systemic), and are in need of accommodations for this semester, we encourage you to contact the  Department of Accessibility Services (DAS)  to learn more about the registration process and steps for requesting accommodations.

If you are a student that is currently registered with DAS and have not received a copy of your accommodation notification letter within the first week of class, please notify DAS immediately. Students who have accommodations in place are encouraged to contact me during the first week of the semester, to communicate your specific needs for the course as it relates to your approved accommodations. All discussions with DAS and faculty concerning the nature of your disability remain confidential.

Lecture Schedule

The reading material listed below is optional, but it refers to Fundamentals of Database Systems (7th edition) by Ramez Elmasri & Shamkant B. Navathe. The lecture plan may deviate over the course of the semester.

Date Topic Reference Assignment
08/25 Introduction to DB & Class Logistics Chapters 1 & 2
08/30 Relational Data Model Chapter 5
09/01 Relational Algebra Chapter 8 Assignment 1 OUT (due 09/20)
09/08 Relational Algebra Chapter 8
09/15 Introduction to SQL Chapter 6
09/20 SQL Assignment 2 OUT (due 10/04)
09/27 SQL: Advanced Queries Chapter 7
10/04 Assignment 3 OUT (due 10/15)
10/06 NoSQL Chapter 24
10/13 Midterm Review
10/20 NoSQL Chapter 24 Assignment 4 OUT (due 11/05)
10/25 Database Design Chapter 3
10/27 Chapter 9
11/01 Database Normalization Chapter 14
11/03 Assignment 5 OUT (due 11/19)
11/08 HTML & JavaScript
11/10 JavaScript
11/15 Indexing Chapter 16 Final Project OUT (due 12/07)
11/17 Chapter 17
11/22 Introduction to Query Processing  Chapter 18
11/29 Introduction to Transaction Management Chapter 20
12/01 SQL vs NOSQL
12/06 Review