CS 4604: Fall 2018
Introduction to Database
Management Systems


CS 4604 is intended to be a first course in database systems for advanced undergraduates in computer science. It offers students an introduction to the design and programming of database systems. In particular, we will cover the ER (entity-relationship) approach to data modeling, the relational model of database management systems (DBMSs) and the use of query languages such as SQL. We will also cover relational algebra and the use of SQL in a programming environment. We will also touch upon query processing and the role of transaction management. We will also devote some time to current topics of research such as XML databases, data mining and MapReduce (Hadoop). Topics outside the scope of this course are how to implement a DBMS in detail, active database elements, and object oriented DBMSs.

Why do we do databases?

Course Information

Textbooks and Resources

See other resources (pointers to datasets, code etc.) here.


Handouts and Practice Problems


Course Project

Schedule (tentative)

For lecture slides and readings, go here.
  1. The Relational Model
  2. Relational Algebra and SQL
  3. E/R Models
  4. Storing Data and Indexes
  5. Hashing/Sorting and Query Processing
  6. Query Optimization
  7. NoSQL and MapReduce
  8. FDs and Normalization
  9. Transactions and Concurrency Control
  10. Logging and Recovery
  11. XML, Data Mining, Data-warehousing


Amazon's AWS in Education grant program for generously providing support for Amazon Web Services.