CS 331 Database Systems • 5 Cr.


The course covers the fundamental concepts of database systems. It teaches students the internals of database systems including data model, database design, relational model, relational algebra, SQL, indexing, concurrency control, query processing, transaction management and recovery. This course also aims to teach the new directions involving NoSQL persistence models. Prerequisites: CS 211 and admission to BC CS program, or instructor's permission.


After completing this class, students should be able to:

  • Explain the components of a database system 
  •  Develop an entity-relationship (ER) model based on user requirements 
  •  Use the Structured Query Language (SQL) for database definition and manipulation 
  •  Generate an index file for a collection of resources 
  •  Convert an entity-relationship diagram to a set of normalized relations 
  •  Explain the ACID properties of a transaction 
  •  Describe techniques that are used for recovery 
  •  Design and implement a relational database system 
  •  Distinguish the differences and similarities between NoSQL databases and relational databases