Learning Objective:Provides a comprehensive introduction to the design and development of modern database management systems (DBMS).
A number of fundamental DBMS concepts will be covered in the course. You will learn the theory behind database systems, the issues that affect their functionality and performance, and importantly, what it takes to build the engine of a database.
Topics Covered:DBMS Concepts and Architecture; Relational Databases, Relational Algebra and Calculus; Query Languages (SQL, QBE); Storage and Indexing; Query Evaluation and Optimization; Database Design, the E-R Model, Normalization, and Tuning; Database Security and Integrity; Transaction Management; Concurrency Control, and Recovery Techniques; Parallel and Distributed Databases.
Prerequisites:Knowledge of the Java programming language is essential.
Applied / Theory:50 / 50
Homework:Programming and Homework Assignments 50% Final Project 20% Extra-credit points will be given in class.
Projects:The programming assignments are an integral part of the course that involve a significant amount of Java programming. The main theme of the assignments is to build a distributed, in-memory key-value store that is broken into several incremental pieces such as the storage, transaction, and recovery layers. The final project is an open-ended creative exercise that can be defined to enhance any aspects of the key-value store that is developed as part of the assignments. Both the programming assignments and the final projects are completed in teams of up to four students.
Exams:One midterm, one final
Textbooks:Official textbook information is now listed in the Schedule of Classes. NOTE: Textbook information is subject to be changed at any time at the discretion of the faculty member. If you have questions or concerns please contact the academic department.
Tentative: Required Textbook : ISBN: 9780072465631 Database Management Systems, (NOTE: Third Edition), by Raghu Ramakrishnan and J. Gehrke. McGraw Hill, 2003, ISBN 0-07-246563-8.