CS 3200: Database Design

John Rachlin

When Section 2: TF 1:35p-3:15p ET/Boston
Section 3: TF 3:25p-5:05p ET/Boston
Where Online on Zoom (See Canvas for connection details.)
Canvas Canvas course information
GradeScope Submit homework
Piazza The discussion board
E-mail j.rachlin@northeastern.edu
My Office Hours Wed/Thu 2pm-5pm ET/Boston on Zoom and by appointment only.
Click here to reserve 20m for one-on-one help

Teaching Assistants and TA Office Hours

TA office hours will be held Mon-Fri 6pm-8pm on Zoom (except for holidays).
No appointment is necessary.



Aditya Bhanwadiya
      
Nikhileshwar Bommareddy
      
Pushyanth Damarapati
      
Bradford Derby
      
Alexandra Descoteaux



Vinesh Gande
      
Jingyi Gong
      
Ajay Inavolu
      
Sunny Kang
      
Vamshika Lekkala



Ruchi Nitsure
  
Micah Pacis
  
Samved Shah
  
Katrina Shonka
  
Dachuan Zhang

Course Information

Course Description

This course presents how to design a relational database from requirements gathering, to conceptual and logical modeling. We also cover how to query databases using SQL, the ACID properties of a relational database management system, and fundamentals of database programming using triggers, stored procedures, functions, and events. Advanced topics include indexing, transactions, concurrency and recovery. The course will also provide an introduction to non-relational (NoSQL) databases. Students will carry out an individual data integration and analysis project. Upon completion of the course, students will be able to:
  • Design, implement, and query a relational database
  • Write complex SQL queries, SQL functions, SQL triggers and SQL procedures
  • Connect a computer application to a commercial relational database (MySQL) and access and manipulate data from the database within the application
  • Act as database administer to a MySQL server
  • Describe ACID properties and the inner workings of transactions
  • Describe the strengths and the weaknesses of both the SQL and NoSQL DBMS

Class Participation and Class Recordings

This is an online but synchronous course with live lectures. Therefore, I generally no longer record my lectures. Your attendance at each lecture is expected and on some days required. I strongly recommend that you come to every live session with your cameras on and your microphone muted. In the event you need to miss a class, I will be posting lecture notes and coding examples that evening. (Materials should be available by 8pm.)

I may record portions of some lectures, particularly when I am demonstrating the technical capabilities of a database system. The purpose of these recordings is to enable you to go back over critical material that you may have missed in class or where it might have been challenging to follow along.

I very much welcome active background discussion in my classrooms. To ask a question, feel free to virtually raise your hand or post your question on chat. And if you know the answer, go ahead and respond!

Recommended Reading

Title Murach(2019) : Murach's MySQL 3rd Edition.
Buy online Amazon.com
Description Highly recommended. A very popular overview of MySQL including database administration, database design, writing SQL queries, and implementing stored programs.


Title Lemahieu, vanden Broucke (2018): Principles of Database Management
Buy online Amazon.com
Description Recommended. A modern textbook on Database Systems and design. Purchase as a reference, but not critical to succeeding in the class.


Additional recommended readings may be assigned from books that are freely available to you through O'Reilly E-Books.

Homework and Late Policy

There will be about five assignments and a database capstone project due at the end of the semester. The detailed dates are listed on the schedule below. Homework will be submitted on GradeScope. Homework cannot be accepted by email. My late policy is very straight-forward: Homeworks submitted 1-48 hours late receive a 10% penalty. No homeworks will be accepted more than 48 hours late. Please understand that with a class this size, maintaining a strict schedule for homework submissions and grading is paramount.

Academic Integrity (Please Read!)

Database design and formulating SQL queries is a creative process. Individuals must reach their own understanding of problems and discover paths to their solutions. Verbal discussions with fellow students is fine, but I expect each student to do their own work unless I explicitely allow for group assignments. If you share code, files, queries, or if you provide or receive help on a quiz, you are breaking the rules. Do not, under any circumstances, share code, queries, or designs with your fellow students. This is a direct violation of the course collaboration policy. Please be aware that I take the issue of academic integrity very seriously. The consequences of cheating in my class are at my discretion and may include receiving a zero for the assignment or quiz, a full letter grade reduction in your final grade, or failing the course altogether. Please contact me if you have any questions about acceptable conduct. And if you are stuck on an assignment, the TAs and I are here to help, or you can pose your question on Piazza. The university's academic integrity policy discusses actions regarded as violations and consequences for students: http://www.northeastern.edu/osccr/academic-integrity

Evaluation

The final grade for this course will be weighted as follows:

  • Homework: 85%
  • Optional Database Capstone Project (2-4 students per group): Extra Credit TBD
  • Take-home open-book quizzes: 15%

The homework and project will be weighted individually to optimize your grade. (If your homework average is better than your project grade, I'll give more weight to homework, for example.) Final grades will be assigned based on the following scale. In computing your final letter grade, I round your numerical grade to the nearest integer. (A 92.5 or higher is an A.)

LetterRange
A93 - 100
A-90 - 92
B+87 - 89
B83 - 86
B-80 - 82
C+77 - 79
C73 - 76
C-70 - 72
D+67 - 69
D63 - 66
D-60 - 62
F<60

Schedule

Note: This schedule is subject to change and will be adjusted as needed throughout the semester.

Wk Day Topic Due
1 Sep 5 No Class
Sep 8 Intro: Why study databases?
2 Sep 12 Concepts: The database environment
Sep 15 MySQL up and running
3 Sep 19 SQL Basics. Aggregation functions. HW1
Sep 22 More Aggregation: GROUP BY, HAVING + Data Import
4 Sep 26 Views and Subqueries, Lab 06
Sep 29 More Subqueries, SQL Review Quiz #1
(Sep 30/Take-home)
Concept & SQL Basics
5 Oct 3 Data Types: varchar, int, date, etc. HW2
Oct 6 DDL: Creating Tables, Inserting Records
6 Oct 10 Referential Integrity, Intro to Conceptual Modeling
Oct 13 More Conceptual Modeling
7 Oct 17 Logical Modeling
Oct 20 More Logical Modeling - JOIN tables
8 Oct 24 Normalization HW3: Database Design for Social Networks
Oct 27 SQL Join Basics
"Consider the following Venn Diagram..."
9 Oct 31 Advanced Joins
Nov 3 Indexing Quiz #2 Sat Nov 4th
Topic: DB Design
Take-home/open-book
10 Nov 7 Stored Programs I
HW4: Books that will change your life
Nov 10 Stored Programs II Optional Project:
Declare Group, Title, Abstract.
Submit Details to Gradescope
Project Due: December 5th (No Extensions)
11 Nov 14 ACID Transactions, Serialization
Nov 17 Locking and Deadlocks Quiz #3 Sat Nov 18
(Nov 18/Take-home)
SQL
12 Nov 21 Programmings with Databases
Database APIs = ♥
HW5: Adverse-Drug Reactions
Nov 24 No Class
13 Nov 28 NoSQL I
We try to design the Amazon product catalog (and fail)
HW5: Deadline for late submissions.
Dec 1 NoSQL II
Beyond the blue event horizon
14 Dec 5 Rachlin gets the last word. Virtual Cookies.
The story of the 2nd time he almost
got kicked out of Cornell shall be told.
TRACE EVALUTIONS: The Good, the Bad, and the Ugly.
Class will not be recorded.
Optional Projects Due
No Extensions!

Inclusive Class

Northeastern University values the diversity of our students, staff, and faculty; recognizing the important contribution each makes to our unique community.

Respect is demanded at all times throughout this course. In the classroom, not only is participation required, it is expected that everyone is treated with dignity and respect. We realize everyone comes from a different background with different experiences and abilities. Our knowledge will always be used to better everyone in the class.

We strive to create a learning environment that is welcoming to students of all backgrounds. If you feel unwelcome for any reason, please let us know so we can work to make things better. You can let us know by talking to anyone on the teaching staff. If you feel uncomfortable talking to members of the teaching staff, please consider reaching out to your academic advisor.

Northeastern is committed to providing equal access and support to all qualified students through the provision of reasonable accommodations so that each student may fully participate in the learning experience. If you have a disability that requires accommodations, please contact the Disability Resource Center http://www.northeastern.edu/drc/, DRC@northeastern.edu, 617-353-2675. Accommodations cannot be made retroactively and to receive an accommodation, a letter from the DRC or LDP is required.