Databases are essential to maintaining the information base in almost all modern business enterprises and to electronic commerce. They are also becoming increasingly important as a fundamental tool in much scientific research. Some knowledge of databases is now essential in any of these areas. The study of databases draws on several areas of computer science: logic, algorithms, programming languages and operating systems.
This module is an introduction to the principles underlying the design and implementation of databases and database management systems. It will cover the languages that have been developed for relational databases, their implementation and optimisation. It will also introduce some recent developments in databases including object-oriented, object-relational systems, semistructured data and the relationship between databases and XML. The bare essentials of transaction processing will also be covered.
Students intending to take this option should note that background reading is essential. Some topics in database systems are far too pedestrian to be treated in detail in lectures, but a grasp of those topics is essential for an understanding of the rest of the material. Also, all students are expected to have had a basic course in logic and discrete mathematics.
The main topics covered are as follows:
It is expected that two coursework exercises will be set. Firstly, there will be a practical exercise involving the use of the SQL relational database management system. The second exercise will involve programming with databases on the web.