CS 486/586: Introduction to DBMS

Spring 2024


Course Goals

  • Learn how to design effective database schemas that accurately model real-world information semantics.
  • Learn how to pose complex database queries in SQL as well as theoretical query languages.
  • Understand what is meant by a transaction.
  • Gain an introductory background in concurrency control and recovery.
  • Learn about indexing and query optimization in database systems.

Upon the successful completion of this course students will be able to:

  • Write complex SQL and relational algebra queries
  • Transform SQL queries to relational algebra and relational algebra queries to SQL
  • Transform SQL queries into equivalent forms, e.g., to make them more efficient
  • Explain how queries are processed and optimized
  • Evaluate the utility of an index for a relational database table
  • Evaluate existing database designs and design new databases effectively
  • Use SQL queries embedded in a software application
  • Describe and use transaction and recovery services


CS 161, 250. Expected preparation: CS 251.


Recommended: Database Systems: The Complete Book, Second Edition. By Garcia-Molina, Ullman and Widom, Pearson, 2009, ISBN 0-13-187325-3.


Group Homework (40% - 486; 30% - 586) + In-class Quiz/Activities: (15%) + Midterm (20%) + Final (25%) + Grad Project: (10%) for 586 students only