Skip to content

CS 424 Advanced Database Systems

Advanced Database Management Systems course deals with the usage as well as concepts of design and architecture of databases. In covering the concepts, theorems, algorithms and proofs relevant to different aspects (design, architecture and implementation) are covered. The general approach is go through design, architecture (storage and indexes), core features (transactions, concurrency), and specialized database usage (data-mining, data-warehousing, distributed databases). The practical work done in the course goes through usage of some advanced SQL features and the implementation of some algorithms and coding of internals of an actual database system. Students should already know how to write queries and design databases. Students are expected to understanding the backend or underlying DBMS, using DBs, and data driven applications. The course will build further on these to include concepts such as union types and predicates. There are currently many database systems and approaches to databases. There are relational and non-relational, and amongst these there are various categories such as key-value, document, graph, object, relational or hybrid. There will be some exploration of some NoSQL databases (MongoDB, Neo4j, etc.). Additionally, we will also look at how some applications can connect to use databases. Students will also be required to use at least one programming language (e.g. Java, PHP, asp.net, etc.) to connect to and manipulate database systems in creating database driven applications. We hope we provide you a well-rounded and strong foundation in your education.

To be competent with conceptual, logical and non-relational database design To be able to setup and configure relational and non-relational DBMS To be able to create and use database objects such as tables, views, stored procedures, functions, indexes, constraints and triggers To be able to troubleshoot and optimize database using tools to analyze query performance

Concept and Architecture Database Setup and Configuration Conceptual Modelling Relational Algebra Models and design of Databases Enhanced Entity Relationship Models Other models for ER and EER Implementation of Databases SQL Queries for implementation SQL Queries for manipulation and retrieval Logical Query Processing Filtering and Sorting Data Designing and Creating Views, Procedures, Functions, and Triggers Indexing Querying and Managing XML Data Concurrency Recovery Analyzing Query Performance Further Topics Database Security Storage Buffers and Memory Data Mining Data Warehousing Non-Relational Databases (key-value, graph, document, and OO) Entity Framework* Application of Databases * Creation of Applications that use Databases (using a programing language to connect to databases) – Asterisk will be covered if there is time

Database Setup and Configuration Models and design of Databases  Enhanced Entity Relationship Models  other models for ER and EER  Implementation of Databases  SQL Queries for implementation  SQL Queries for manipulation and retrieval  Logical Query Processing Filtering and Sorting Data Designing and Creating Views, Procedures, Functions, and Triggers Indexing Querying and Managing XML Data Analyzing Query Performance Non-Relational Databases (key-value, graph, document, and OO) Application of Databases * Creation of Applications that use Databases (using a programing language to connect to databases)