MPCS 53020 Foundations of Database Systems (Autumn 2022)

Section 1
Instructor(s) Krishnan, Sanjay (skr)
Location JCL 298
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 (completed or concurrently enrolled). New MPCS students taking Core Programming concurrently must have received at least a "Pass" on the programming placement to take this class, "Low Pass" scores will not be allowed.

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 56511-1 -- Introduction to Computer Security
  • MPCS 55001-2 -- Algorithms
  • MPCS 52553-1 -- Web Development
  • MPCS 53112-1 -- Advanced Data Analytics

Eligible Programs

Masters Program in Computer Science Masters Program in Computer Science (new students)