Database Design Syllabus

From Knowledge Kitchen
Jump to navigation Jump to search


In this course, we introduce principles and applications of database design. We begin by studying issues related to data collection and discovery, and techniques for prepping and munging the raw data to shape it into a form that is ready for database storage. Studying the design of relational databases, we learn how to craft databases to model "real-world" data in a way that lends itself to the types of manipulation and analysis that we have in mind. Once we have a clear understanding of these issues in relational database design, we learn to build web apps that allow users to view and manipulate the data through web or mobile interfaces.

One class project will use a MySQL database to manage data along with PHP to present a user-friendly web interface. In addition, we explore using Python and SQLite for smaller portable applications. We broaden our understanding of contemporary databases by delving into the field of NoSQL databases, using MongoDB as our example. Students are encouraged to explore specific database issues and data complexities in their own fields of study and expertise.



Prerequisite courses

You are expected to have already taken the following courses, or their equivalents:

Requisite knowledge

You are welcome to take this course, even if you haven't completed the above courses, so long as you have mastered all the common web page layouts using HTML & CSS, and the computer programming concepts listed below.

Computer programming concepts you must understand before taking this course



Learning MySQL by Tahaghoghi and Williams
Published by O'Reilly
Print ISBN: 978-0-596-00864-2 | ISBN 10: 0-596-00864-3
Ebook ISBN: 978-0-596-10526-6 | ISBN 10: 0-596-10526-6
Python for Everybody: Exploring Data in Python 3 by Dr. Charles Russell Severance (Author), Sue Blumenberg (Editor), Elliott Hauser (Editor), Aimee Andrion (Cover Design) (free download)
ISBN-10: 1530051126 | ISBN-13: 978-1530051120
Open Textbook Library Edition (free)


MongoDB and Python: Patterns and processes for the popular document-oriented database 
By Niall O'Higgins
Publisher: O'Reilly Media
Released: 2011
Print ISBN:978-1-4493-1037-0 ... ISBN 10:1-4493-1037-0
Ebook ISBN:978-1-4493-1036-3 ... ISBN 10:1-4493-1036-2
Beginning Database Design: From Novice to Professional [Paperback]
Clare Churcher
Publisher: Apress; 
ISBN-10: 1430242094
ISBN-13: 978-1430242093


  • due before the due date indicated on the schedule
  • you lose a 10% penalty for every 24 hours an assignment is late, up to a maximum penalty of 30%
  • late homework will not be accepted after a week
  • submit assignments to db-homework [at] knowledge [dot] kitchen
  • include your name and the assignment in the subject of your email
  • if submitting multiple files, send them as a single zip file
  • unless you have good reason to do otherwise, follow best-practices for all basic file names and file extensions


Grades are calculated according to the following formula:

  • 40% assignments
  • 25% midterm
  • 35% final exam

The Tentative Plan

  • Using python to prepare datafiles; explorations of "data in the wild"
  • Scrubbing and massaging data
  • Database theory and relational database design
  • SQL programming; We will use MySQL in class and also discuss Oracle, SQLite, and PostGreSQL
  • Implementation of a database application on the web using MySQL for the data and python to build the user interface
  • An overview of SQLite and Python
  • NoSQL: Using MongoDB and pymongo to build a web-based python interface to your MongoDB data for your users
  • Introduction to data visualization; using python to build charts and graphs.
  • Concepts in database management

Getting help

Help resources available to you are listed in order of “seriousness” of your problem:


Students are expected to consult the Student FAQ prior to asking questions of the tutors, professor, or other students. This allows us to focus our time on questions of greater significance.


Slack is a messaging system that is popular for teams. We have a Slack group for this class:

  • TbD


Our tutors are waiting to help you! All tutoring takes place in WWH Room 412 according to the following schedule:

  • TBD

Talk with the professor

  1. see me before class
  2. raise your hand during class
  3. see me after class
  4. come to my open office hours

Additional tutoring resources

Academic Integrity

Working with others and leveraging all resources available to you is a prerequisite for success. This is different from copying, cheating, plagiarism, and mental laziness. All submitted work must be your own. There are very reliable systems we use to detect plagiarism in computer code. If you submit any work that is not your own, you risk failure or worse.

Please read the Computer Science department policy on academic integrity.


Parts of this syllabus have been plagiarized from syllabi by Professor Deena Engel.