MPCS 53001 Databases (Spring 2016)

Section 1
Instructor(s) Freeman, Zachary (zfreeman)
Location Young 302
Meeting Times Tuesday 5:30pm - 8:30pm
Fulfills Core Systems Elective


Course Description

In this course students will learn database design and development and will build a simple but complete web application powered by a relational database. We start by showing how to model relational databases using the prevailing technique for conceptual modeling: Entity-Relationship Diagrams (ERD).  Concepts covered include entity sets and relationships, entity key as a unique identifier for each object in an entity set, one-one, many-one, and many-many relationships as well as translational rules from conceptual modeling (ERD) to relational table definitions.  We also examine the relational model and functional dependencies and their application to the methods for improving database design: normal forms and normalization.


After design and modeling, students will learn the universal language of relational databases: SQL (Structured Query Language).  We start by introducing relational algebra, the theoretical foundation of SQL. Then we examine in detail the two aspects of SQL: data definition language (DDL) and the data manipulation language (DML).  Concepts covered include subqueries (correlated and uncorrelated), aggregation, various types of joins including outer joins and syntax alternatives, functions and stored procedures.  Students will gain significant experience with writing and reading SQL queries throughout the course in the detailed discussions in class, online homework, and the real-world individual project.

Finally, we will provide an overview of related topics such as data warehousing and emerging topics such as big data and NoSQL databases.

Course Contents

  • Entity-Relationship model and design

  • Database design

  • Relational model

  • Functional dependencies

  • Normal forms and normalization

  • Relational algebra

  • SQL: Schema definition, Simple queries

  • Subqueries, Aggregation, Modifications

  • Joins, Views, Indexing, Constraints  

  • Transactions, ACID properties

  • Authorization

  • Triggers

  • Stored procedures

  • Database connectivity

  • Basic web programming

  • Data warehousing overview

  • Big data

  • NoSQL


  • Homework (weekly) (~15%)

  • Multi-part project (weekly)  (~50%)

  • Midterm (~30%)

  • Class participation (~5%)

Recommended Textbooks

A First Course in Database Systems (3rd ed.), by J. Ullman and J. Widom.

Course Prerequisites

Core Programming (completed or concurrently enrolled)

Other Prerequisites

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 51031-1 -- Android App Development
  • MPCS 54001-1 -- Networks