Objectives

  • the design methodology for databases and verifying their structural correctness
    • understand basic data structures and their uses (lists, arrays)
    • understand the concepts of object-oriented programming (classes, inheritance)
  • implementing databases and applications software primarily in the relational model
  • using querying languages, primarily SQL, and other database supporting software
  • applying the theory behind various database models and query languages
  • implementing security and integrity policies relating to databases working in group settings to design and implement database projects
  • modular software design and method linkage
  • understand the design, implementation and testing of medium-sized problem solutions some contexts in which databases are used

 

 

Program:

 

M1: Database Management Systems

WEEK 1 Data Modeling: ER model, Relational Model, Relational Algebra

WEEK 2 SQL and Normalizaton: Structured Query Language, Normalization theory

WEEK 3 Storage Design: disks, files, indexes (B+ tree, R-tree, Hash index)

 WEEK 4 Algorithms for Relational Operators: selection, join, group-by aggregation, sorting)

WEEK 5 Query Optimization:  query plans, algebraic equivalence, plan space, cost estimation, search algorithm

WEEK 6 Concurrency Control: ACID properties, theory on serializability and recoverability, locking protocols, optimistic CC, indexing locking, phantom problems

WEEK 7 Recovery: DBMS logging, no force and steal, ARIES algorithm; model fault tolerance mechanisms