Database Systems Concepts

As the first introductory course for databases, this course studies the fundamentals of using and implementing relational database management systems. First, from the user perspective (i.e., how to use a database system), the course will discuss conceptual data modeling, the relational and other data models, database schema design, relational algebra and calculus, and the SQL query language. Further, from the system perspective (i.e., how to design and implement a database system), the course will study data representation, indexing, query optimization and processing, and transaction processing. Finally, we will look at large scale “big-data” processing systems.


Background: Data Structures CSE30331 taken previously or concurrently

Programming: For projects, you will do some significant application programming, with both SQL and some host languages of your choice (e.g., C, C++, Java, PHP). We will not cover programming-specific issues in this course.


Class Information

M/W/F 9:25am – 10:15am

283 Galvin


Dr. Tim Weninger (

Office Hours:
Wed 10:00am in 353 Fitzpatrick Hall
or by appointment

Teaching Assistancts

Justus Hibshman (

Zhihan Zhang ( Office Hours: Fridays 4-5pm

Gang Liu (
Office Hours: Wednesdays 5-6pm

TA Office Hours will be held Online on Campuswire and in 150 Fitzpatrick Hall

Class Forum

Questions about the course material, homework, project, or any other course-related questions should be asked on Campuswire. Private questions can be directed to the instructor and/or TAs, but we may ask you to ask it on the forum.

Course Project

There will be a semester-long course project, which involves significant database application programming. The project will be structured with several milestones due during the semester, leading to a demo and write-up near the end of the semester.


1Mon Aug 23Introduction
1Wed Aug 25ER Model Basics
1Fri Aug 27Special Relationships in ER Diagrams
2Mon Aug 30Project OverviewHW1 Out
2Wed Sep 01Relational Model
2Fri Sep 03Relational Model Translation
3Mon Sep 06Functional Dependencies
3Wed Sep 08The Normal Forms HW1 Due [Solutions] , Stage 0 Due
3Fri Sep 10Boyce and Codd’s Normal Form
4Mon Sep 13Web ProgrammingHW2 Out
4Wed Sep 15DB Programming
4Fri Sep 17Relational Algebra Stage 1 Due
5Mon Sep 20Relational Algebra Expressions Database icon PNG, ICO or ICNS | Free vector icons
5Wed Sep 22Relational Calculus Database icon PNG, ICO or ICNS | Free vector icons
5Fri Sep 24SQL Queries Database icon PNG, ICO or ICNS | Free vector icons
6Mon Sep 27SQL Subqueries Database icon PNG, ICO or ICNS | Free vector iconsHW 2 Due [Solutions] HW 3 Out
6Wed Sep 29SQL Aggregation Database icon PNG, ICO or ICNS | Free vector icons Stage 2 Due
6Fri Oct 01SQL Aggregation OperatorsDatabase icon PNG, ICO or ICNS | Free vector icons
7Mon Oct 04SQL Insertion, Update, and Delete Database icon PNG, ICO or ICNS | Free vector icons
7Wed Oct 06SQL Views, Joins, and Foreign Keys Database icon PNG, ICO or ICNS | Free vector icons
7Fri Oct 08SQL Constraints, Triggers, and ORM
8Mon Oct 11No regular class – project work day
8Wed Oct 13Exam ReviewHW3 Due
8Fri Oct 15Panic, Confusion
9Mon Oct 18Fall Break
9Wed Oct 20Fall Break
9Fri Oct 22Fall Break
10Mon Oct 25Spinning Disks
10Wed Oct 27Indexing Basics HW4 Out
10Fri Oct 29Indexing B+ Tree
11Mon Nov 1Indexing in SQL Stage 3 Due [Signup]
11Wed Nov 3Databases on the DiskHW4 Due [Solutions]
11Fri Nov 5No regular class – project work day HW5 Out
12Mon Nov 8Query Execution / Optimization
12Wed Nov 10Transaction Management
12Fri Nov 12Transaction Logging
13Mon Nov 15HDFS HW5 Due [Solutions]
13Wed Nov 17MapReduce HW6 Out
13Fri Nov 19NoSQL and CAP
14Mon Nov 22Spark
14Wed Nov 24Thanksgiving Break
14Fri Nov 26Thanksgiving Break
15Mon Nov 29Exam ReviewHW6 Due [Solutions]
15Wed Dec 1Exam 2
15Fri Dec 3No Class
16Mon Dec 6Project Presentations
16Wed Dec 8Project Presentations
16Fri Dec 10Reading Day
17 Mon Dec 13Finals Week



Assignments 25%
Exam 125%
Exam 225%


Assignments will typically be due at the end of a particular class period (unless otherwise specified). All assignments shall be uploaded to Gradescope with questions annotated in the system. Unannotated submissions will not receive a grade.


This table indicates minimum guaranteed grades. Under certain limited circumstances (e.g., an unreasonably hard exam), we may select more generous ranges or scale the scores to adjust.

Total Grade
90-100 A-, A
80-89 B-, B, B+
70-79 C-, C, C+
60-69 D



Textbooks are not required. However, much of the class material and even some of the homeworks will draw from these and other resources.

Database Systems: The Complete Book, 2nd ed., by Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer D. Widom.

Data-Intensive Text Processing with MapReduce, by Jimmy Lin and Chris Dyer. 2010.


Students should attend all classes. Effective lectures rely on students’ participation to raise questions and contribute in discussions. We will strive to maintain interactive class discussions if possible.

Lecture capture is enabled for this class. This system allows us to record and distribute lectures and other audio and video recordings to you in a secure environment. Because we will be recording in the classroom, your questions or comments may be recorded


All requests to change grading of any course work must be submitted to Gradescope within one week of when the grades are made available. Requests must be specific and explain why you feel your work deserves additional credit. Do not ask for a regrade until you have studied and understood our sample solution.

Late Work

All scheduled due dates/times are US Eastern Time. Homework is typically due at the beginning of class on the due date, but check each the assignment for specifics.

Due date/time will be strictly enforced. Missing or late and/or unannotated work gets zero credit. If you are unable to complete an assignment due to illness or family emergency, we will understand but please see the instructor as soon as possible to make special arrangements. All such exceptional cases must be fully documented.

Academic Integrity

Notre Dame Students are expected to abide by Academic Code of Honor Pledge:

As a member of the Notre Dame community, I acknowledge that it is my responsibility to learn and abide by principles of intellectual honesty and academic integrity, and therefore I will not participate in or tolerate academic dishonesty.

All course work that you submit must be efforts of your own (if it is an individual assignment) or of your approved team (if it is a group assignment). Discussion of homework problems is encouraged, but writing solutions together or looking at other students’ solutions is not allowed. Much of the material in this class can be found online. You may look to online sources for guidance, but you must always cite your source(s).