Course Syllabus

Professor: Stan Gunn


Office Hours: I am available via Google Hangout, FaceTime, Zoom, or phone conference on request

Course Description

The primary goal of this class is to learn principles and practices of database management and database design. Over the course of the semester we will discuss relational database design, data types, sorting, indexing, and normalization. We will learn and practice the fundamentals of Structured Query Language (SQL) and how it can be used to store and retrieve data from a relational database, database security, and the impact of databases on society. Class modules will build up a theory of database design with instruction, examples, and exercises that focus on the fundamentals of creating and normalizing database structures, as well as developing increasing sophisticated queries against multiple related tables. For the later modules of the class we will learn the fundamentals of database design using MySQL emulators. MySQL is a powerful relational database management system used at companies such as Google and Facebook. We use  MySQL as our primary platform  because it is commonly (and freely) available and provides substantially the same functionality as commercial databases such as Microsoft SQL Server and Oracle. No previous programming or database experience is required.


Individual assignments 

A series of short database exercises designed to complement the examples provided in each module. These exercises must be completed each week by the assigned deadline. They will represent not only a demonstration of the students' grasp of concepts covered in the course, they will also provide a convenient knowledge base from which students can draw when designing their own projects. There will also be some short writing and analysis assignments While assignments will be turned in by individuals I encourage students to collaborate with their team members or other classmates.

Late Assignment Policy: I do accept late assignments, though there will usually be some deduction of points from your grade. If you have circumstances that you believe will cause you to be late in turning in an assignment or are impeding you from completing an assignment I urge you to contact me as soon as possible. I can be flexible on this policy if you let me know in advance. 

Lecture Order

The order and amount of time spent on each topic may vary from semester to semester

  • Discussion of databases and society
  • Databases and database management systems
  • Database structures
  • Data types
  • Primary keys and foreign keys
  • Data security
  • Normalization
  • Building Tables and relationships
  • Introduction to MySQL
  • sorting and indexing
  • Troubleshooting your queries
  • Using SELECT statements
  • JOINs across tables
  • Refining your searches

Readings  for this Course

This class uses online, open educational resources (OER) to reduce your cost. There are no required textbooks. All readings to supplement the in-class lectures and material are linked to or taken from a curated selection of web-based sources.

That said, occasionally I am asked if I can recommend books that address the subjects we cover in class. If you prefer to have a reference text to supplement the in-class materials I recommend these books:

  • Data and Goliath, Bruce Shneier
  • MySQL Pocket Reference, George Reese

Course Summary:

Date Details Due