CS 377 - Database Systems
Overview
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.)
Textbook(s):
- [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:
/* THIS CODE IS MY OWN WORK, IT WAS WRITTEN WITHOUT CONSULTING CODE WRITTEN BY OTHER STUDENTS OR COPIED FROM ONLINE RESOURCES. _Your_Name_Here_ */
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.
Participation
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/06 | LABOR DAY -- NO CLASSES | ||
09/08 | Relational Algebra | Chapter 8 | |
09/13 | |||
09/15 | Introduction to SQL | Chapter 6 | |
09/20 | SQL | Assignment 2 OUT (due 10/04) | |
09/22 | |||
09/27 | SQL: Advanced Queries | Chapter 7 | |
09/29 | |||
10/04 | Assignment 3 OUT (due 10/15) | ||
10/06 | NoSQL | Chapter 24 | |
10/11 | FALL BREAK - NO CLASSES | ||
10/13 | Midterm Review | ||
10/18 | MIDTERM | ||
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/24 | THANKSGIVING RECESS -- NO CLASS | ||
11/29 | Introduction to Transaction Management | Chapter 20 | |
12/01 | SQL vs NOSQL | ||
12/06 | Review |