CMPUT 391 - Database Management Systems


This course covers fundamental algorithms and data structures underlying the storage and manipulation of data by a relational database management system and select topics pertaining to non-traditional data models and applications, including document management, spatial data management, graph data management, and NoSQL (not-only SQL) systems.


  • SQL and relational algebra: brief review, equivalence, and compiling SQL into algebraic expressions
  • Recursive SQL and querying graph databases
  • Hardware/OS: virtual memory, storage, redundancy, the Buffer Manager
  • Query processing: in memory query execution, external memory queryexecution, iterators
  • Speeding up tuple retrieval: flat indexes, multilevel indexes, B+trees, hashing, multidimensional indexes
  • Transaction processing: ACID transactions, logging and error recovering, locking, timestamping, validation
  • RDF and SPARQL
  • Spatial indexes, simple spatial queries and nearest neighbour queries
  • NoSQL and Map-Reduce

Course Work

  • Lab exercises
  • Weekly quizzes
  • Assignments
  • Project