CS 377: Database Systems

Course 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 also give a brief overview of database systems implementation, including topics such as storage management and transaction processing.

Schedule

#DateTopicMaterialsReferencesAssignments
Introduction and Overview
1 1/10 Course Logistics Lecture 1 Chapter 1
2 1/12 Database Concepts Lecture 2 Chapter 2
Data Modeling and Design
3 1/17 ER Model Lecture 3 Chapter 3
4 1/19 Relational Model Lecture 4 Chapters 5, 9
Query Languages
5 1/24 Relational Algebra Lectures 5-6 Chapter 8
6 1/26 Relational Algebra & Calculus
7 1/31 SQL: Introduction & Schema Definitions Lecture 7

SQL Scripts:
Create Company DB (MySQL)
Insert Company DB (MySQL)
Chapter 6
8 2/2 SQL: Querying Lectures 8-9
Homework 1 & MySQL Notes

SQL Scripts:
Exercises 1 (MySQL)
Exercises 2 (MySQL)
Exercises 3 (MySQL)
Exercises 4 (MySQL)
Chapters 6, 7
9 2/7
10 2/9
11 2/14 SQL: Advanced Queries Lectures 11-12
12 2/16
13 2/21
Database Design & Normal Forms
14 2/23 Database Design Lectures 13-14 Chapters 14, 15
Midterm
15 2/28 Midterm Review Lecture 15
16 3/2 Midterm
Database Design & Normal Forms, Continued
17 3/14 Database Design, Continued Lecture 14-17
Midterm Results
Chapters 14, 15
Database Application Programming
18 3/16 JDBC (Java / SQL Programming) & PHP (Web Programming) Lecture 18
Employee-JDBC.zip
php-examples.zip
Chapter 10, 11
Introduction to Database Internals
19 3/21 Data Storage, IO Models, and External Sort Lecture 19 Chapter 16
20 3/23 Indexing Lectures 20-21
IMDB Index Example
Chapters 16, 17
21 3/28
22 3/30 Query Processing & Optimization Lectures 22-23
Project 2 Grades
Chapters 18, 19
23 4/4
24 4/6 Transaction Management & Concurrency Control Lectures 24-25
Homework 3 Results
Chapters 20, 21
25 4/11
Introduction to Modern Databases
26 4/13 Big Data Systems Lecure 26 Chapters 23, 25
27 4/18 NoSQL Lecture 27
mongo-example.js
Chapter 24
Final
28 4/20 Review Lecture 28

Course Logistics

Piazza

All announcements, assignment clarifications, and slide corrections will be posted on Piazza. Make sure to check the site on a regular basis.

Office Hours

Joyce Ho: M 1:30 PM - 3:30 PM, W 9:30 AM - 12:00 PM @ MSC W414
Camilo Valderrama: F 4:00 PM - 5:30 PM @ MSC N410
Henry Chen: F 3:00 PM - 4:00 PM @ MSC E433

Note: Office hours may change from time to time, in which case an announcement will be made on Piazza.

Textbook

  • Recommended: Fundamentals of Database Systems (6th / 7th edition), by Ramez Elmasri & Shamkant B. Navathe
  • Supplemental: Database System Concepts, by Abraham Silberschatz, Henry Korth, & S. Sudarshan
  • Supplemental: Database Systems: The Complete Book, by Hector Garcia-Molina, Jeffrey D. Ullman, & Jennifer Widom

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 and mean for each assignment and exam will be announced so you have an idea where you stand. A participation element has been added which will consist of your attendance, your effort level in the class, short bi-weekly quizzes, and monthly surveys.

ComponentWeight
Homeworks20%
Projects30%
Midterm20%
Final25%
Participation5%

Assignment & Exam Policies

Assignments:

  • Assignments are due electronically at 11:59 PM. The assignment will specify if it should be submitted on Gradescape OR Canvas.
  • Each student receives six late days that can be used on assignments throughout the semester. These late days extend the deadline for 24 hours, and can be distributed amongst the 8 assignments (4 projects, 4 homeworks), but no more than 3 late days may be used on any assignment.
  • After the six late days are used, the assignment will be penalized 10% off per day up to 3 late days.
  • Late days apply to the entire assignment, so handing in one problem late counts as a late day towards the whole assignment.
  • After 3 late days on any given assignment you will receive no credit for the asignment.

Exams:

  • All exams must be taken promptly at the required time.
  • Requests for rescheduling the midterm exam will only be considered if the request is made at least a week prior to the exam date.
  • The final can not be rescheduled.

The above policies will be waived only in an "emergency" situation with appropriate documentation from OUE.


Honor Code

All class work is governed by the College Honor Code and Departmental Policy. It is acceptable and encouraged to discuss assignments and projects with other students but any code and writeups must be written by yourself. Every programming 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. _Your_Name_Here_ */