|Instructor(s)||Krishnan, Sanjay (skr)|
|Meeting Times||Wednesday 5:30pm - 8:30pm|
|Fulfills||Core Systems Elective|
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
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.
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/
This class is scheduled at a time that conflicts with these other classes: