Undergraduate Course: Advanced Database Systems (INFR11199)
|School||School of Informatics
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 11 (Year 4 Undergraduate)
||Availability||Available to all students
|Summary||Database management systems are at the core of computer applications that need to store, manipulate, and query data. This course takes a deep dive into how modern database systems function internally, from studying their high-level design to understanding the underlying data structures and algorithms used for efficient data processing. The course covers a range of data management techniques from both commercial systems and cutting-edge research literature, enabling students to apply these techniques to other fields of computer science.
The covered topics include database architecture, storage manager, data models (row, columnar), indexing (tree-based, hash tables), transaction processing (ACID, concurrency control), crash recovery, parallel architectures (multi-core, distributed), and large-scale data processing systems. These topics will be valuable to students who plan to work in the data science industry but also to students who want to do research in the area of data management. The programming component of this course will allow students to develop first-hand experience working with database systems that goes beyond writing SQL queries.
Lectures will cover roughly the following topics:
- Database systems architectures, row stores and column stores, OLTP vs. OLAP, in-memory database systems
- Storage: secondary-storage devices
- Indexing: tree-based and hash-based techniques, multi-dimensional indexing, learning indices from data
- Query evaluation: theory of query evaluation, sorting and join processing, selection, projection, aggregation
- Query optimisation: cardinality estimation, cost-based query optimisation, dynamic programming, rule-based optimisation
- Transaction management: ACID properties, concurrency control, locking and multi-version protocols, crash recovery
- Distributed database systems: parallel query evaluation, distributed transaction processing
- Big data and NoSQL systems
Entry Requirements (not applicable to Visiting Students)
|| It is RECOMMENDED that students have passed
Introduction to Databases (INFR10080)
|Prohibited Combinations|| Students MUST NOT also be taking
Advanced Database Systems (UG) (INFR11217)
||Other requirements|| MSc students must register for this course, while Undergraduate students must register for INFR11217 instead.
This course is open to all Informatics students including those on joint degrees. For external students where this course is not listed in your DPT, please seek special permission from the course organiser.
The course assumes an understanding of algorithms and data structures (e.g., quick sort, merge sort, binary trees, hash tables, big-O notation). It is recommended that students have basic knowledge of databases (e.g., SQL and relational algebra) although key concepts will be covered in the course.
A good level of programming is assumed and will not be covered during lectures. The coursework will involve implementing different parts of a database system in Java.
Information for Visiting Students
|Pre-requisites||Same as above.
|High Demand Course?
Course Delivery Information
|Academic year 2022/23, Available to all students (SV1)
|Learning and Teaching activities (Further Info)
Lecture Hours 28,
Supervised Practical/Workshop/Studio Hours 6,
Feedback/Feedforward Hours 2,
Revision Session Hours 2,
Programme Level Learning and Teaching Hours 4,
Directed Learning and Independent Learning Hours
|Assessment (Further Info)
|Additional Information (Assessment)
10% course engagement
The coursework will consist of at least one programming assignment.
||Students will receive feedback from demonstrators during practical sessions and from the instructor on at least one piece of formative assessment similar to the final exam.
||Hours & Minutes
|Main Exam Diet S2 (April/May)||Advanced Database Systems (INFR11199)||2:00|
On completion of this course, the student will be able to:
- Describe how database management systems function internally. Interpret and comparatively criticise database systems architectures.
- Implement major components of a database management system and analyse their performance.
- Analyse and compare the fundamental query evaluation and concurrency control algorithms, identify strengths and weaknesses of query evaluation plans, and optimise query evaluation plans.
- Identify trade-offs among database systems techniques and contrast distributed / parallel techniques for OLTP and OLAP workloads.
|Raghu Ramakrishnan and Johannes Gehrke, Database Management Systems (Third Edition) - McGraw-Hill 2003.|
Research papers on the topics of the syllabus.
|Graduate Attributes and Skills
|Keywords||Database system architecture,Query optimization,Indexing,Transactions,Parallel databases
|Course organiser||Dr Milos Nikolic
Tel: (0131 6)51 7112
|Course secretary||Mrs Helen Tweedale
Tel: (0131 6)50 2692