Introduction to Database Management Systems

CS4604 Spring 2021


CS 4604 is intended to be a first course in database systems for advanced undergraduates in computer science. It offers students an introduction to the design and programming of database systems. In particular, we will cover the ER (entity-relationship) approach to data modeling, the relational model of database management systems (DBMSs) and the use of query languages such as SQL. We will also cover relational algebra and the use of SQL in a programming environment. We will also touch upon query processing and the role of transaction management. We will also devote some time to current topics of research such as NoSQL databases, data mining and warehousing, cloud databases. Topics outside the scope of this course are how to implement a DBMS in detail, active database elements, and object oriented DBMSs.

Class meets Tuesday and Thursday from 3:30 PM to 4:45 PM using Zoom: (Online with Synchronous meetings).

Students are required to complete these two online sessions:

  • Understanding the Code: Due to the Covid-19 pandemic, Understanding the Code sessions will be offered asynchronously only through Canvas: Understanding the Code is a self-enrollment course. The course opens at 8:00am EST January 25 and closes at 11:59pm EST on January 29. There will be a video presentation and an attendance verification assessment at the end.
  • Online Module: Encourage students to complete the Academic Integrity Module. The Academic Integrity Module has been re-done for the 2020 – 2021 academic year. It may be found at this link: It will open at 8am on January 18th, and will remain open all year.

The course homepage (this page) is at
Canvas: CS4604 and should be visible to all users with a Virginia Tech login.

These software and tools would be used during the class:
  • Zoom: We will use Zoom for online classes and meetings.
  • GitHub: We will use GitHub as a code repository for class program, demostration, workshop, etc.
  • AWS: We will use AWS for class program, demostration, workshop, etc.


  • The Relational Model
  • Relational Algebra and SQL
  • E/R Models
  • Storing Data and Indexes
  • Hashing/Sorting and Query Processing
  • Query Optimization
  • FDs and Normalization
  • Transactions and Concurrency Control
  • Logging and Recovery
  • NoSQL, Data Mining, Data-warehousing, Cloud databases


A grade of C or better required in CS3114. (3H,3C)
Please speak with the instructor if you are concerned about your background.


If any student needs special accommodations because of any disabilities, please contact the instructor during the first week of classes. Such students are encouraged to work with The Office of Services for Students with Disabilities to help coordinate accessibity arrangements.

Reading and materials

  • Text book: "Database Management Systems", Ramakrishnan and Gehrke. 3rd Edition. ISBN: 0072465638
  • Additional materials may be provided electronically, including readings, video lectures, and other media.
  • Slides and other materials will be available in this page.

Grading breakdown

  • 5%: Class attendance and participation
  • 25%: Homework
  • 25%: Project
  • 20%: Midterm exam
  • 25%: Final exam

Class schedule

This schedule is subject to continuous change throughout the semester.
Week Dates Tue Thur Notes
1 01/18-01/22 Introduction and Course Logistics (pdf)
Architecture & Classification (pdf) (recording)
Project 1
Project logistics
2 01/25-01/29 The Relational Model and Relational Algebra (pdf) (recording) Entity/Relationship Models I (pdf) (recording)
Homework 1 / Google G-Suite
3 02/01-02/05 Entity/Relationship Models II (pdf) (recording)
Lab 0
SQL I (pdf) (recording)
Lab 1 / Homework 2
Project 1 due 02/04
Spring Break Day 02/05
4 02/08-02/12 SQL II (pdf) (recording)
Lab 2 / Project 2
SQL III (pdf) (recording)
Lab 3
Homework 1 due 02/09
Lab 1 due 02/11
5 02/15-02/19 Storing Data and Indexes (pdf) (recording)
Lab 4 / Homework 3
No Class (University closed)
Lab 2 due 02/15
Homework 2 due 02/22
6 02/22-02/26 Hashing and Sorting (pdf) (recording)
Lab 5 / Handout: Midterm
Spring Break Day 02/25 - No Class Lab 3 due 02/22
7 03/01-03/05 Query Processing (pdf) (recording) Midterm Review (pdf)
PHP Intro (pdf)
Homework 3 due 03/01
8 03/08-03/12 Project Interim presentation (recording)
Midterm 3:30pm – 5:30pm Project 2 due 03/08
9 03/15-03/19 Query Optimization (pdf) (recording)
Project 3
Security & SQL injection (pdf) (recording)
Homework 4 / Lab 6
Spring Break Day 03/17
10 03/22-03/26 Functional Dependencies (recording) (pdf) BCNF, 3NF and Normalization (recording) (pdf) Homework 5
11 03/29-04/02 NoSQL databases (pdf) (recording) Transactions Part 1: Intro. to ACID (pdf) (recording)
12 04/05-04/09 Spring Break Day 04/06 - No Class Transactions Part 2: 2PL/2PLC and Deadlocks (pdf) (recording)
13 04/12-04/16 Logging and Recovery Part 1 (pdf) (recording) Logging and Recovery Part 2 (pdf) (recording)
Homework 6 / Handout: Final
14 04/19-04/23 Cloud databases / Data Mining and Warehousing (pdf) (recording) Final review (pdf) (recording)
15 04/26-04/30 Project Final presentation I (recording) Project Final presentation II (recording) Project 3 Due 04/30
Spring Break Day 04/26
16 05/03-05/07 No Class No Class - Reading Day 05/08 Final Exam - 7:45 – 9:45am


  • Each homework assignment will be submitted electronically. Submission instructions will be posted with each assignment on Canvas.
  • Labs are also part of homework assignment (The average score of all the labs is counted as one homework assignment.). Submission instructions will be posted with each assignment on Canvas.


  • Project assignment will include written and programing portions.
  • Both written and programming assignments will be submitted electronically. Submission instructions will be posted with each assignment on Canvas.


Important! You can not use communication tools like email, chat, or social media during the exams. You can only communicate with TAs and instructor during exams

  • The midterm exam will be a take-home (online) 03/11 3:30 - 5:30pm. Exam time 2 hours.
  • The final exam will be a take-home exam (online) 05/08 7:45 – 9:45am. Exam time 2 hours.
* The instructor reserves the right to adjust for unexpected performance on the exams, exceptional contributions to student activities, or other anomalies. The instructor reserves the right to be more lenient in the assignment of letter grades.

Regrading requests

Requests for regrading due to grading errors must be submitted in writing to a TA within one week of the release of grades.

Late homework policy

Homework submitted late without permission will be penalized according to the following formula:

(Penalized score) = (Your raw score) * (1 - 0.1 * (# of days past deadline))

This formula will apply for up to three days, after which the homework will not be accepted and you will receive a grade of zero. Avoid invoking these penalties by starting early and seeking extra help.

Grading scale

Based on the grading breakdown above, each student's final grade for the course will be determined by the final percentage of points earned. The grade ranges are as follows:

 A   93.3%–100%   A-   90.0%–93.3%   B+   86.6%–90.0%   B   83.3%–86.6% 
 B-   80.0%–83.3%   C+   76.6%–80.0%   C   73.3%–76.6%   C-   70.0%–73.3% 
 D+   66.6%–70.0%   D   63.3%–66.6%   D-   60.0%–63.3%   F   00.0%–60.0% 

Academic integrity

The Undergraduate Honor Code pledge that each member of the university community agrees to abide by states: "As a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do."

Students enrolled in this course are responsible for abiding by the Honor Code. A student who has doubts about how the Honor Code applies to any assignment is responsible for obtaining specific guidance from the course instructor before submitting the assignment for evaluation. Ignorance of the rules does not exclude any member of the University community from the requirements and expectations of the Honor Code. For additional information about the Honor Code, please visit:

This course will have a zero-tolerance philosophy regarding plagiarism or other forms of cheating. Your homework assignments must be your own work, and any external source of code, ideas, or language must be cited to give credit to the original source. I will not hesitate to report incidents of academic dishonesty to the Office of the Undergraduate Honor System.

Principles of Community

Because the course will include in-class discussions, we will adhere to Virginia Tech's Principles of Community. The first two principles are most relevant:

  • We affirm the inherent dignity and value of every person and strive to maintain a climate for work and learning based on mutual respect and understanding.
  • We affirm the right of each person to express thoughts and opinions freely. We encourage open expression within a climate of civility, sensitivity, and mutual respect.

The remaining principles are also important and we will take them seriously as a class.