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.
Prerequisites
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.
Logistics
Class Information
Lecture:
M/W/F 9:25am – 10:15am
283 Galvin
Instructor
Dr. Tim Weninger (tweninge@nd.edu)
Office Hours:
Wed 10:00am in 353 Fitzpatrick Hall
or by appointment
Teaching Assistancts
Justus Hibshman (jhibshma@nd.edu)
Zhihan Zhang (zzhang23@nd.edu) Office Hours: Fridays 4-5pm
Gang Liu (gliu7@nd.edu)
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.
Schedule
Week | Date | Topic | Assignments |
---|---|---|---|
1 | Mon Aug 23 | Introduction ![]() | |
1 | Wed Aug 25 | ER Model Basics ![]() | |
1 | Fri Aug 27 | Special Relationships in ER Diagrams ![]() | |
2 | Mon Aug 30 | Project Overview | HW1 Out |
2 | Wed Sep 01 | Relational Model ![]() | |
2 | Fri Sep 03 | Relational Model Translation ![]() | |
3 | Mon Sep 06 | Functional Dependencies ![]() | |
3 | Wed Sep 08 | The Normal Forms ![]() | HW1 Due [Solutions] , Stage 0 Due |
3 | Fri Sep 10 | Boyce and Codd’s Normal Form ![]() | |
4 | Mon Sep 13 | Web Programming | HW2 Out |
4 | Wed Sep 15 | DB Programming | |
4 | Fri Sep 17 | Relational Algebra ![]() | Stage 1 Due |
5 | Mon Sep 20 | Relational Algebra Expressions ![]() ![]() | |
5 | Wed Sep 22 | Relational Calculus ![]() ![]() | |
5 | Fri Sep 24 | SQL Queries ![]() ![]() | |
6 | Mon Sep 27 | SQL Subqueries ![]() ![]() | HW 2 Due [Solutions] HW 3 Out |
6 | Wed Sep 29 | SQL Aggregation ![]() ![]() | Stage 2 Due |
6 | Fri Oct 01 | SQL Aggregation Operators![]() ![]() | |
7 | Mon Oct 04 | SQL Insertion, Update, and Delete ![]() ![]() | |
7 | Wed Oct 06 | SQL Views, Joins, and Foreign Keys ![]() ![]() | |
7 | Fri Oct 08 | SQL Constraints, Triggers, and ORM ![]() | |
8 | Mon Oct 11 | No regular class – project work day | |
8 | Wed Oct 13 | Exam Review | HW3 Due |
8 | Fri Oct 15 | Panic, Confusion | |
9 | Mon Oct 18 | Fall Break | |
9 | Wed Oct 20 | Fall Break | |
9 | Fri Oct 22 | Fall Break | |
10 | Mon Oct 25 | Spinning Disks ![]() | |
10 | Wed Oct 27 | Indexing Basics ![]() | HW4 Out |
10 | Fri Oct 29 | Indexing B+ Tree ![]() | |
11 | Mon Nov 1 | Indexing in SQL ![]() | Stage 3 Due [Signup] |
11 | Wed Nov 3 | Databases on the Disk | HW4 Due [Solutions] |
11 | Fri Nov 5 | No regular class – project work day | HW5 Out |
12 | Mon Nov 8 | Query Execution / Optimization ![]() | |
12 | Wed Nov 10 | Transaction Management ![]() | |
12 | Fri Nov 12 | Transaction Logging ![]() | |
13 | Mon Nov 15 | HDFS ![]() | HW5 Due [Solutions] |
13 | Wed Nov 17 | MapReduce ![]() | HW6 Out |
13 | Fri Nov 19 | NoSQL and CAP ![]() | |
14 | Mon Nov 22 | Spark ![]() | |
14 | Wed Nov 24 | Thanksgiving Break | |
14 | Fri Nov 26 | Thanksgiving Break | |
15 | Mon Nov 29 | Exam Review | HW6 Due [Solutions] |
15 | Wed Dec 1 | Exam 2 | |
15 | Fri Dec 3 | No Class | |
16 | Mon Dec 6 | Project Presentations | |
16 | Wed Dec 8 | Project Presentations | |
16 | Fri Dec 10 | Reading Day | |
17 | Mon Dec 13 | Finals Week |
Requirements
Coursework
Component | Percentage |
---|---|
Assignments | 25% |
Exam 1 | 25% |
Exam 2 | 25% |
Project | 25% |
Assignments
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.
Grades
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
Polices
Textbooks
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.
Lectures
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
Regrading
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).