Information in the Degree Programme Tables may still be subject to change in response to Covid-19

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Informatics : Informatics

Undergraduate Course: Advanced Database Systems (INFR11199)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 11 (Year 4 Undergraduate) AvailabilityAvailable to all students
SCQF Credits20 ECTS Credits10
SummaryThis course replaces Advanced Databases (INFR11011).

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), cloud databases, and ML in databases. 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.
Course description 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.
- Write-optimised data structures: LSM trees, LSM hash tables, B^eps trees.
- Query evaluation: sorting and join processing, selection, projection, aggregation, query compilation.
- Query optimisation: cardinality estimation, cost-based query optimisation, dynamic programming, rule-based optimisation, learning query plans.
- Transaction management: ACID properties, concurrency control, locking and multi-version protocols, crash recovery.
- Distributed database systems: parallel query evaluation, distributed transaction processing.
- Data warehousing and decision support: OLAP, materialised views, incremental view maintenance.
- Stream processing systems, data streaming algorithms.
- Scientific (array) databases, cloud databases, database systems for machine learning.

In practical lab sessions, students will implement various components of a prototypical database system. The labs will require programming in C++ and will have increasing difficulty to allow students to familiarise with the language and environment.
Entry Requirements (not applicable to Visiting Students)
Pre-requisites It is RECOMMENDED that students have passed Database Systems (INFR10070) OR Introduction to Databases (INFR10080)
Prohibited Combinations Students MUST NOT also be taking Advanced Databases (Level 11) (INFR11011)
Other requirements 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 C++.
Information for Visiting Students
Pre-requisitesSame as other requirements
High Demand Course? Yes
Course Delivery Information
Academic year 2020/21, Available to all students (SV1) Quota:  None
Course Start Semester 2
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 200 ( 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 158 )
Assessment (Further Info) Written Exam 50 %, Coursework 50 %, Practical Exam 0 %
Additional Information (Assessment) Weighting: 50% exam, 40% coursework, 10% course engagement.

The coursework will consist of at least one programming assignment.
Feedback 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.
Exam Information
Exam Diet Paper Name Hours & Minutes
Main Exam Diet S2 (April/May)2:00
Learning Outcomes
On completion of this course, the student will be able to:
  1. Describe how database management systems function internally. Interpret and comparatively criticise database systems architectures.
  2. Implement major components of a database management system and analyse their performance.
  3. Analyse and compare the fundamental query evaluation and concurrency control algorithms. Identify strengths and weaknesses of query evaluation plans. Optimise query evaluation plans.
  4. Identify trade-offs among database systems techniques and contrast distributed/parallel techniques for OLTP and OLAP workloads.
Reading List
Raghu Ramakrishnan and Johannes Gehrke, Database Management Systems (Third Edition) - McGraw-Hill 2003.

Research papers on the topics of the syllabus.
Additional Information
Graduate Attributes and Skills Not entered
KeywordsDatabase system architecture,Query optimization,Indexing,Transactions,Parallel databases
Course organiserDr Milos Nikolic
Tel: (0131 6)51 7112
Course secretaryMiss Clara Fraser
Tel: (0131 6)51 4164
Help & Information
Search DPTs and Courses
Degree Programmes
Browse DPTs
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Combined Course Timetable
Important Information