The aim of the course is to ensure that students have the basic knowledge of databases (modelling, SQL etc.) which they can use in industry and to prepare them for studying more advanced database topics. A further aim is to briefly familiarise students with new big data technology.
- understand the benefits of relational systems
- to be able to model information in a relational system
- optimize a relation schema and demonstrate correctness of optimizations
- design relation queries and understand SQL
- set up a database, implement a schema as well as the queries
- understand recent developments in database management systems (hardware & parallelization)
To introduce database systems with particular reference to the relational model, including design, query languages and update transactions. To introduce entity-relationship modelling and translation to the relational model.
Introduction to databases; data modelling, database management, data dictionary, query formulation and evaluation.
Relational databases: design, functional dependencies, keys and normal forms.
Relational database languages: relational algebra. Views integrity and security.
Transaction management and recovery: transaction atomicity, database log, deferred and immediate database modifications, checkpoints. Concurrency: including serialisability, locking, two phase locking protocol, deadlock. Entity-relationship models.
The course will be supported by laboratory sessions using the relational database system and the language SQL.
Optional weekly exercises and tutorials.
Additional problem & answer sheets.
3rd ed., Boston : McGraw-Hill