CS 505 - Intermediate Topics in Database Systems

Credits: 3

Bulletin Description

The course introduces a variety of modern techniques in database and distributed database systems. The major topics include, but are not limited to: object-oriented database systems; distributed, heterogeneous and web-based databases; knowledge based systems; physical database design; and security. The course covers a variety of methods that allow for a solution of database problems where the traditional relational database techniques are not viable or not sufficient.

Prerequisites

CS 405 or consent of instructor.

Expected Preparation

Understanding of relational databases and relational languages. Fundamental data structures and algorithms. Basic programming skills.

This course introduces what is "under the hood" of a database engine, i.e., data structures, algorithms, and software components inside modern database management systems (DBMS). It also covers some advanced recent topics in the frontier of database research. Topics may include storage and file structures, indexing, query processing and optimization, transactions and concurrency, recovery, database security, parallel databases, cloud computing and MapReduce, data analysis, and data mining. Time permitting, additional topics might be added. A moderate amount of programming is expected in lab assignments, so that students can have hands-on experience with DBMS software systems, which is helpful for future careers as a software developer or as a system researcher.

Student Learning Outcomes

 

  • A successful student, after learning the course, should understand the internals of data management systems widely used in many applications today.
  • The student should master the techniques that are essential for working with existing database systems.
  • The student should have the ability to design and implement a significant piece of software.
  • This course should serve as a starting point to get the student prepared for doing independent research work in database areas.
  • Measures

    Direct Measures:

     

  • To acquire or improve  my ability to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs
  •  

  • To acquire or improve  my ability to apply design and development principles in the construction of software systems of varying complexity
  • To understand the design and various aspects of implementation of database management systems
  • To acquire or improve my knowledge in security in database management systems, transaction management, and parallel and distributed databases
  • Syllabus Information

    Possible Textbooks:

    Database Systems Concepts
    Avi Silberschatz, Henry F. Korth, and S. Sudarshan
    McGraw-Hill

    Database Systems The Complete Book, 1/e
    Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer D. Widom
    © 2002 / 0-13-031995-3 / Prentice Hall

    Database Management Systems
    R. Ramakrishnan and J. Gehrke
    McGraw-Hill 2000

    Additional materials in form of articles and reviews published in periodicals may be supplied by the instructor.

    Additional Comments:

    It is expected that the students will learn the details of the design and some aspects of implementation of database management systems (as opposed to the first course in databases where they learned only the fundamentals of DBMS such as the languages for databases and the design theory).