Databases are at the heart of modern commercial application development. Their use extends beyond this to many applications and environments where large amounts of data must be stored for efficient update and retrieval. The purpose of this course is to provide an introduction to the design and use of database systems, as well as an appreciation of the key issues in building such systems.
We begin by studying database design, covering the ODL and entity relationship models. We will then cover the relational data model and relational algebra. Next, we consider the usage of database systems through the SQL query and manipulation language. We cover active aspects of database systems, recursion and preliminaries of object-oriented systems. Throughout the course we often consider the insides of a database system and briefly look at issues such as data storage and query optimization. Finally, we consider emerging issues in database systems including the processing of XML data and integration of data from multiple database systems.