About
CMPUT 391 is a graded undergraduate course at the University of Alberta whose main objective is to study fundamental concepts and advanced technology underlying modern data management systems expected from expert users and database administrators.
Formal Prerequisites: CMPUT201, CMPUT 204 or 275, and CMPUT 291.
Beyond Prerequisites : CMPUT391 was designed for senior undergraduate students with strong programming and problem solving skills, and who are able to seek answers to technical problems independently using the Web (Google and social coding sites such as stackOverflow). Students are expected : (1) to be fluent in (or able to quickly learn) multiple programming languages, including C; (2) to have excellent knowledge of SQL and relational database theory; and (3) to work at least 3 hours per week on coursework beyond lectures and labs.
Learning Objectives
Understanding 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.
Topics:
- 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 query execution, 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
- XML and XQuery
- Spatial indexes, simple spatial queries and nearest neighbor queries
- NoSQL and Map-Reduce
Recommended Textbook
- Silberschatz, Koth and Sudarshan; Database System Concepts, 6th Edition; McGraw-Hill, 2010
Other Suggested Readings
- Garcia-Molina, Ullman, and Widom; Database Systems -- The Complete Book, 2nd Edition; Pearson Prentice Hall, 2009
- Bailis, Hellerstein, and Stonebraker (eds); Readings in Database Systems, 5th Edition
- Tiwari; Professional NoSQL; Wrox, 2011; available on Safari/ProQuest through the U. Alberta Library
- Kreibich; Using SQLite; O'Reilly Media, Inc., 2010; available on Safari/ProQuest through the U. Alberta Library
- Allen, and Owens; The Definitive Guide to SQLite, Second Edition; Apress, 2010; available on Safari/ProQuest through the U. Alberta Library