MPCS 53020 Foundations of Database Systems (Spring 2024)

Section 1
Instructor(s) Krishnan, Sanjay (skr)
Location Ryerson 255
Meeting Times Wednesday 5:30pm - 8:30pm
Fulfills Core Systems Elective

Syllabus

The course will cover the foundations of Database Management Systems (DBMS). This includes data models, database design, SQL, query processing, NewSQL/NoSQL, and systems for data analytics. The course will include 4 Java programming projects that implement and evaluate core database system components.

 

The 3 hour lectures will be structured as "Extended Tutorials", where the instructor will deep dive a key data management topic in detail.

Sep 28 "Bytes on Disk": Encoding, Pages, Buffer Pool, Row-Oriented/Column Oriented    
Oct 5  "Indexed Retrieval": Sorted Files, B+ Trees, LSM Trees
Oct 12 "SQL Query Processing": Basic SQL and its translation into operators
Oct 19 "Advanced SQL Query Processing": Advanced SQL views, recursion, integrity constraints
Oct 26 "Query Optimization": Cardinality Estimation, Join Optimization, Compilation/Acceleration
Nov 2 "Fault Tolerance": ACID intro, Transactions, Recovery, Fault Tolerance
Nov 9 "Consistency": Consistency levels, 2PC, Serializability, MVCC
Nov 16 "Derived Data": Materialized Views, Incremental Maintenance, Data Provenance
Nov 30 "Security": Access Control, Encryption, Signatures

Course Prerequisites

Core Programming

This course can not be taken if you are taking or have already completed MPCS 53001 Databases. There is significant overlap between the two courses.

Other Prerequisites

This course requires competency in Unix and Linux. Please plan to attend the MPCS Unix Bootcamp (https://masters.cs.uchicago.edu/page/mpcs-unix-bootcamp) or 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 51215-1 -- Topics in Software: Making an Impact
  • MPCS 51400-1 -- Functional Programming
  • MPCS 52060-1 -- Parallel Programming
  • MPCS 53111-1 -- Machine Learning
  • MPCS 54001-1 -- Networks

Eligible Programs

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