MPCS 53001 Databases (Summer 2025)

Section 1
Instructor(s) Khaled, Ahmed (ahmedkhaled)
Location Online
Meeting Times Tuesday 5:30pm - 8:30pm
Fulfills Core Systems Elective

Syllabus

Course Description:

This course starts by introducing the fundamental concepts associated with the design and the work of database systems, including 1) the main steps to design a database, the essential properties for the work of a database, a discussion on data storage, and the different data models utilized in such steps; 2) the Entity-Relationship (ER) model for an initial design to relational databases and the relational model to describe such design with structures; 3) the normalization forms for an optimized design; 4) the relational algebra to design, build, and optimize queries to the database; and 5) the different categories of data and an overview on the other database designs and paradigms with a comparison between SQL and NoSQL databases.

The course then focuses on three main types of databases: 1) SQL-based, where we learn about relational databases (using MySQL RDBMS), and the Structured Query Language (SQL) to build relational databases and to store, manipulate, and retrieve data; 2) NoSQL-based, where we learn about document-based databases (using MongoDB) and the MongoDB Query Language (MQL); and  3) NoSQL-based, where we learn about graph-based databases (using Neo4j) and the graph query language (Neo4j's Cypher).

The students, in the final project, will design and implement a database for a system/scenario of their choice, then develop a user interface (e.g., web-based) using a programming language (e.g., Java, Python) of their choice that connects and interacts with the created database to execute user interactions through database supported queries.

 

Course Contents:

  • An Introduction:
    • Essential definitions
    • Database properties
    • Data models
  • Entity-relationship (ER) model
  • Relational Model
  • Normalization and schema refinement
  • Relational Algebra:
    • Operators to build queries
    • Query processing and optimization
  • Structured Query Language (SQL):
    • Essential commands, constraints, and operators
    • Join operator, aggregate functions, and nested queries.
    • Interfacing Java/Python programming languages with SQL
  • Categories of data and properties of big data
  • SQL/NoSQL: Other types of databases
  • MongoDB: an example of document-based NoSQL databases
  • Neo4j: an example of graph-based NoSQL databases

 

Coursework:

  • Assignments [homeworks] (65%)
  • Midterm (10%)
  • Group-based final project [multi-parts]  (25%)
  • Class participation [bonus points] (5%)

 

Recommended (optional) Textbooks

  • Database Systems: A Practical Approach to Design, Implementation, and Management Author: Thomas Connelly and Carolyn Begg, 6th Edition, ISBN-13: 9780132943260
  • Database management Systems Author: Raghu Ramakrishnan and Johannes Gehrke. 3rd Edition.

Course Prerequisites

MPCS Students: Core Programming completed (MPCS 51036, or 51040, or 51042, or 51046, or 51100) or Core Programming Waiver.

Non-MPCS Students: Must have completed CMSC 14200, CAPP 30122 or MACS 30122 or MPCS Programming Placement Exam I.

Course request information for non-MPCS students: https://masters.cs.uchicago.edu/student-resources/non-mpcs-student-course-requests/

Other Prerequisites

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.

This course requires competency in Unix and Linux. If you attended the MPCS Unix Bootcamp you covered the required material. If you did not, please 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 56605-1 -- Introduction to Blockchain and Smart Contracts
  • MPCS 50103-1 -- Mathematics for Computer Science: Discrete Mathematics
  • MPCS 51238-1 -- Design, Build, Ship

Eligible Programs

MS in Molecular Engineering MA in Computational Social Science (Year 1) 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