3 Cr. (Hrs.:3 Lec.)
Advanced concepts in traditional relational database systems are explored, along with alternative database systems including document-oriented, graph-oriented, and object-oriented systems. Database architectures such as distributed, in-memory and replicated are covered, with their contributions to scalability, reliability and fault tolerance. Design considerations such as relational algebras, functional dependencies, normal forms, and query execution are also explored. Lastly, integration of databases into software and the benefits of creating a database API is developed.
Prerequisite: BMIS 375 or CSCI 340 (2nd)
E1. The student should be able to program fluently in a high-level programming language. (CSCI 332)
E2. The student should have a firm understanding of a relational database management system (BMIS 375 or CSCI 340)
E3. The student should understand how to work with data and the data lifecycle (BMIS 375)
R1. Understand functional dependencies and transform a database schema into various normal forms and produce the data definition language (DDL) in the target database system.
R2. Understand how to use relational algebras to characterize database schema, simplify the schema, understand how queries against these schemata are execute by the database system.
R3. Explore, design, and implement non-relational database systems, such as document, graph and object-oriented.
R4. Be introduced to different database architectures related to performance and data integrity requirements.
R5. Develop a database application programming interface (API) using DDL statements that provide a layer of abstraction between the application and the database system.
R6. Explore how to profile and measure database system and architecture performance.
R7. Integrate one or more database systems into an application by creating a database API.