This course is on the design and implementation of database management systems. The course emphasizes the understanding of the fundamentals of relational systems including data models, database architectures, and database manipulations. Topics include data models (relational, document, key/value), storage models (n-ary, decomposition), query languages (SQL, stored procedures), storage architectures, indexing (order preserving trees, hash tables), transaction processing (ACID, concurrency control), recovery (logging, checkpoints), query processing (joins,sorting, aggregation, optimization), and parallel architectures (multi-core, distributed). Case studies on open-source database systems will be used to illustrate these techniques and trade-offs. The course also provides an understanding of new developments and trends such as Internet database environment and data warehousing. The course uses a problem-based approach to learning?

Course Syllabus