Special Topics in Database Systems: Query Optimization Course ID 15799 Description This course is a hands-on exploration of the most challenging problem in computer science: database query optimization. It will cover the classical and state-of-the-art methods and algorithms for converting SQL statements into physical query plans. Additional topics include cost models, feedback mechanisms, and adaptive query optimization. All class projects will be in the context of an open-source query optimizer service using real-world queries. The course is appropriate for graduate students in software systems and advanced undergraduates with nasty programming skills that are pursuing a database-centric lifestyle. Key Topics cost-based query optimization, top-down vs. bottom-up algorithms, cost models, cardinality estimations, adaptive query optimization Required Background Knowledge Databases, Systems Course Relevance CS major, MS, PhD Course Goals This is an upper-level course on the internals of database management systems. This course has a heavy emphasis on programming projects. There are also readings assigned for each class. Upon successful completion of this course, the student should be able to: * Design and implement a database query optimizer. * Understand how queries are processed and identify why queries execute fast or slow. * Understand, compare, and implement the query optimization transformation rules. * Identify trade-offs among query optimization techniques and contrast alternative approaches for transaction processing and analytical workloads. * Interpret and comparatively criticize database system architectures. Learning Resources There is no book prerequisite, material will be based on Computer Security and the Internet, research papers. Assessment Structure Grading will be based on a set of programming assignments and a class project. Extra Time Commitment n/a Course Link https://15799.courses.cs.cmu.edu/