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.
CS 405 or consent of instructor.
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.
Direct Measures:
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).