MPCS 53001 Databases (Winter 2026)

Section 1
Instructor(s) Almhana, Rafi (ralmhana)
Location Crerar 011
Meeting Times Tuesday 5:30pm - 8:30pm
Fulfills Core Systems Elective

Syllabus

Course Overview [WATCH VIDEO]

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 gathering requirements and showing how to model a relational database using an Entity-Relationship Diagram (ERD). Concepts covered include entity sets and relationships, using keys 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 will examine the relational model and functional dependencies along with their application to the methods for improving database design: normal forms and normalization.

After designing and modeling their database, students will learn the universal language of relational databases: SQL (Structured Query Language). We will first introduce relational algebra, the theoretical foundation of SQL and then examine in detail the two main aspects of SQL: data definition language (DDL) and data manipulation language (DML). Concepts covered include subqueries, aggregation, various types of joins, functions, triggers and stored procedures. Students will then learn about web connectivity, as they build a simple front-end for their application in order to interact with their database online. Finally, we will provide an overview of related topics such as data warehousing, big data, NoSQL and NewSQL databases.

Students will gain significant experience with writing and reading SQL queries and understanding the design and function of relational databases throughout the course in the detailed in-class discussions, online homework, midterm and the real-world individual project.

Course Contents

•    Requirements gathering

  • 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
  • Functions/Stored procedures
  • Database connectivity
  • Basic web programming
  • Data warehousing overview
  • Big data/NoSQL overview


Coursework

  • Homework (weekly) (~15%)
  • Multi-part project (weekly)  (~50%)
  • Midterm (~30%)
  • Class participation (~5%)

 

Recommended Textbooks

Database System Concepts Seventh Edition https://www.db-book.com/db7/index.html

Course Prerequisites

Completed or concurrently taking MPCS 51036, 51040, 51042, 51046, 51100, CAPP 30122, MACS 30122, or have a Core Waiver for Programming.

This course can not be taken if you are taking or have already completed MPCS 53020 Foundations of Database Systems. There is significant overlap between the two courses.

Other Prerequisites

This course requires competency in Unix and Linux. New students must attend the MPCS Unix Bootcamp during orientation. Continuing students who previously attended the MPCS Unix Bootcamp have covered the required material. Continuing students who did not attend the MPCS Unix Bootcamp may review the UChicago CS Student Resource Guide here: https://uchicago-cs.github.io/student-resource-guide/.

Overlapping Classes

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

  • MPCS 55001-1 -- Algorithms
  • MPCS 51082-1 -- Introduction to Unix Systems
  • MPCS 52011-1 -- Introduction to Computer Systems
  • MPCS 51230-1 -- User Interface and User Experience Design
  • MPCS 57200-1 -- Generative AI

Eligible Programs

MS in Molecular Engineering MA in Computational Social Science (Year 2) Bx/MS in Computer Science (Option 2: Professionally-oriented - CS Majors) Bx/MS in Computer Science (Option 3: Profesionally-oriented - Non-CS Majors) Masters Program in Computer Science Masters Program in Computer Science (new) Placement: Pass I Masters Program in Computer Science (new) Placement: Pass I + II Masters Program in Computer Science (new) Placement: Pass I + II (w/ Advanced)