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, discuss a few advanced data management topics, such as the use of views and subtle issues in concurrency control, and to give an appreciation of the key issues in building such systems.
We begin by covering the relational model and the SQL language. We then study methods for database design, covering the entity relationship model. We spend a lecture on the advanced use of views in data management. Next, we discuss transaction management, covering both recovery from systems failures and concurrency control. We then inspect the architecture of a database system, and discuss efficient storage of data, execution of queries and query optimization.