Course Detail
Units:
3.0
Course Components:
Lecture
Enrollment Information
Enrollment Requirement:
Prerequisites: CS 3500.
Description
Graduate-level course on the design and implementation of (relational) database system kernels, as well as other large-scale data management techniques. Reviews the relational data model (including relational algebra) and relational query language: SQL. Examines in depth file organization, database storage, indexing and hashing, query evaluation and optimization, transaction processing, concurrency control and recovery, database integrity and security (if schedule allows). In addition to the study of relational database kernels, this course also investigates latest development in other large-scale data management techniques, e.g., streaming algorithms, the MapReduce framework (in particular, the Hadoop system), and other IO efficient techniques (if time permits). Students will participate in a semester-long project and build a mini-database system by implementing several core modules in a relational database system. There might also be projects on other large scale data management techniques, such as sketching, MapReduce-based projects, etc., if time allows. In summary, this course is about the principles of designing and implementing database kernels, as well as other relevant large data management techniques. Please note that this is NOT a course on building database applications and introduction to database systems, i.e., we will not cover in this course how to build a database application (e.g., ER design, schema refinement, functional dependency, and database application development). Such topics will be covered in CS 5530.