COMP 310: Database Theory and Design, Spring 2021

This syllabus is subject to change based on specific class needs, especially the schedule. Significant deviations will be discussed in class. Individual exceptions to the policies and schedule are granted only in cases of true emergency. Please make arrangements with me if an emergency arises.

Logistics

Content

Description

An introduction to the concepts and techniques of database systems. Includes history and motivation of database systems, data modeling, rational database, SQL, transaction processing, distributed databases.

Learning Objectives

  1. Be able to query existing databases using SQL to gain effective insights.
  2. Design and structure your own databases, understanding trade-offs between redundancy, reliability, and speed.
  3. Understand the basics about how database store and access data, even in the presence of many simultaneous users or disk failures.
  4. Understand and describe the motivation and basics behind new database technologies, including NoSQL and Big Data ecosystems.

Sources

The required textbook is:

The textbook webpage is a great source of additional information, including solutions to practice exercises, scripts to load the sample data, and tips on using specific databases.

We may occasionally have readings from other sources, which will either be emailed to students or posted to the schedule below.

Additionally, there are many resources on the web for learning about databases, and especially about SQL. One good is this MySQL Tutorial.

Software

In class I will often make use of the Socrative app, so you’ll need to install this on your phones. We will also occasionally write SQL queries together in repl.it, so you will need an account there.

In terms of Database Management Systems we will usually stick to SQLite and MySQL.

Policies

Assessment

Assignments and Workload

The weekly workload for this course will vary by student and by week but should be about 13 hours per week on average. The following table provides a rough estimate of the distribution of time over different course components for a 16 week semester, as well as detailing the type, amount, and relative value of all assignments.

Category Amount Final Grade Weight Time/Week (Hours)
Lectures/Class 42 10% (Participation) 2.5
Homework 8–10 20% 3
Presentations 1–3 10% -
Exam Study - - 2
Exams 3 30% -
Projects 2 30% 3.5
Reading/Unstructured Study - - 2
Total   100% 13

Homework assignments may include written exercises and/or programming assignments. When homework is due, the instructor may select 1 or more exercises to be presented. Students will be randomly selected (with replacement) to present their solution.

Each exam will focus primarily, but not necessarily exclusively, on the material covered since the previous exam.

Grading

In-class presentations will be graded on a simple 3-point scale:

If you are unable to attend a class, you must notify the instructor prior to the class. If you do not, and you are randomly selected to present, you will receive a 0. It is possible that you are never randomly selected, in which case you will receive full credit for this portion of the grade.

Your participation grade is based on a variety of activities. During class I will often make use of the Socrative app, so you’ll need to install this on your phones. Participating in Socrative questions and with in-class group activities is required for a decent participation grade; an A includes asking questions either in class or in office hours.

Your final grade is based on a weighted average of particular assignment categories. You can estimate your current grade based on your scores and these weights. You may always visit the instructor outside of class to discuss your current standing. Assignments and final grades use a standard grading scale shown below and will not be curved except in rare cases when deemed necessary by the instructor.

This courses uses a standard grading scale. Assignments and final grades will not be curved except in rare cases when its deemed necessary by the instructor. Percentage grades translate to letter grades as follows:

Score Grade
94–100 A
90–93 A-
88–89 B+
82–87 B
80–81 B-
78–79 C+
72–77 C
70–71 C-
68–69 D+
62–67 D
60–61 D-
0–59 F

You are always welcome to challenge a grade that you feel is unfair or calculated incorrectly. Mistakes made in your favor will never be corrected to lower your grade. Mistakes made not in your favor will be corrected. Basically, after the initial grading your score can only go up as the result of a challenge*.

You are always welcome to challenge a grade that you feel is unfair or calculated incorrectly. Mistakes made in your favor will never be corrected to lower your grade. Mistakes made not in your favor will be corrected. Basically, after the initial grading your score can only go up as the result of a challenge.

Schedule

The following tentative calendar should give you a feel for how work is distributed throughout the semester. Assignments and events are listed in the week they are due or when they occur. This calendar is subject to change based on the circumstances of the course.

Note: All readings should be done before the class period in which they are listed below.

Each day’s slides/notes can be found in this shared folder. You will need to be logged in to your Monmouth College account to see the folder. If I have not uploaded the week’s slides by Friday afternoon you are free to email me a reminder.

Date Topic Assignments and Readings
Mon 01/25 (Week 1) Logistics, Intro Chapter 1
Wed 01/27 The Relational Model Chapter 2
Fri 01/29 Relational Algebra Homework 1
Mon 02/01 (Week 2) Basic SQL: SELECT 3.1-3.3
Wed 02/03 More SQL, Set Operations 3.4-3.5
Fri 02/05 Aggregating, Grouping, and more Homework 2, 3.6-3.8
Mon 02/08 (Week 3) Nested Subqueries 3.8
Wed 02/10 Database Modifications 3.9-3.10
Fri 02/12 Practice Exercises Homework 3
Mon 02/15 (Week 4) Joins 4.1
Wed 02/17 Views, Transactions, Integrity Constraints 4.2-4.6
Fri 02/19 Practice Exercises  
Mon 02/22 (Week 5) Functions, Procedures, Triggers 5.2-5.3
Wed 02/24 Query Practice/Review  
Fri 02/26 Exam 1  
Mon 03/01 (Week 6) Access via Programming Languages 5.1
Wed 03/03 Security 4.7
Fri 03/05 Entity-Relationship Model 6.1-6.5, Project 1
Mon 03/08 (Week 7) Exam 1 Solutions, Advanced Data Modeling 6.6-6.7, 6.10
Wed 03/10 More E-R Design 6.8-6.11, Project Enterprise chosen
(Fri 03/12) (No class – Pseudo-spring break)  
Mon 03/15 (Week 8) (No class)  
Wed 03/17 Decomposition 7.1-7.4
Fri 03/19 Functional Dependency Theory 7.4-7.5, E-R Checkpoint meeting deadline
Mon 03/22 (Week 9) Normal Forms Review 7.1-7.5
Wed 03/24 Multivalued Dependencies 7.6-7.11
Fri 03/26 Complex Data Types Chapter 8, Relational checkpoint
Mon 03/29 (Week 10) Web Apps 9.1-9.5
Wed 03/31 Advanced Web Apps 9.6-9.10
(Fri 04/02 – Easter Break)    
Mon 04/05 (Week 11) Data Analytics 11.1-11.3
Wed 04/07 Project 1 Questions Project 1 due
Fri 04/09 Project 1 Presentations Project 2 start
Mon 04/12 (Week 12) Project 1 Presentations  
Wed 04/14 Project 1 Presentations  
Fri 04/16 Physical Storage Chapter 12, App. checkpoint 1
Mon 04/19 (Week 13) Data Storage Structures Chapter 13
Wed 04/21 B-Tree Indexing 14.1-14.3
Fri 04/23 Query Processing I 15.1-15.5, App. checkpoint 2, Homework 4
Mon 04/26 (Week 14) Query Processing II  
Wed 04/28 Transactions 17.1-17.6
Fri 04/30 Database Architectures 20.1-20.5
Mon 05/03 (Week 15) Big Data Chapter 10
Wed 05/05 Project 2 Presentations  
Fri 05/07 Project 2 Due  
Tue 05/11 3:00 PM Final Exam (take-home)  

Monmouth College Services