Advanced Databases

Lecture:
Proseminar:
Language:
English
Office hours:
on demand (arranged via email)
Semester:
Wintersemester 2019/2020
Course Evaluations:
PlusOnline:

News

Introduction

Course schedule and exam dates are available in PlusOnline. You may register or cancel the registration up to 48 hours before the exam. If you do not show up for a registered exam, you will be blocked for this exam according to the university regulations.

Lecture

Literature

Silberschatz, Korth, Sudarshan.
Database System Concepts.
McGraw-Hill, 2011 (6th edition)

Multiple copies of the book are available in the textbook collection of the department library.

Slides

The slides for each topic will be made available the day before the topic is treated in the lecture. The chapter numbers refer to the book "Database System Concepts" (see above).

Topic Chapter Slides
1. Transactions:: Transaction Concept, Transaction State, Concurrent Executions, Serializability, Recoverability, Implementation Isolation, Transaction Definition in SQL, Testing for Serializability Ch. 14 [1up] [4up]
2. Concurrency Control:: Lock-Based Protocols, Timestamp-Based Protocols, Validation-Based Protocols, Multiversion Schemes, Insert and Delete Operations, Concurrency in Index Structures [1up] [4up]
3. Recovery System: Failure Classification, Storage Structure, Recovery and Atomicity, Log-Based Recovery, Recovery Algorithm, Recovery with Early Lock Release and Logical Undo, ARIES [1up] [4up]

Reading

Please prepare for the lecture by reading the relevant sections in the textbook. The course is designed to be attended by students that have read the relevant contents in the textbook. During the lecture we will focus on examples, deepening discussions, and student questions.

Exam

The exam will we written. In the case of very few registrations for an exam date, the exam will be held as an oral exam; in this case the students will be notified before the exam.

The exam dates will be announced on PlusOnline.

At the written exam you are allowed to use one A4 sheet with your personal notes (both sides, hand written or printed).

You may register or cancel the registration up to 48 hours before the exam. If you do not show up for a registered exam, you will be blocked for this exam according to the university regulations.

Example exams: 03.06.2016, 19.05.2017, 02.02.2018, 06.02.2019

Proseminar

We will practice the concepts discussed in the lecture regarding transactions, concurrency, and recovery. We will exercise numerous techniques to deal with the problems related to these topics and apply the gained knowledge in a practical setting.

Paper-based exercises

There is a list of exercises to practice the concepts introduced in the lecture. The exercises help to better understand the details. Solve the exercises yourself at home. In the lab we will review the solutions together and answer additional questions.

The list of all exercises is on GitLab. Your contribution is more than welcome. You can contribute by reporting bugs, fixing bugs, and adding new content.

Homeworks

The purpose of the homeworks is to apply the our knowledge in a practical setting. Homeworks are mandatory and make 100% of the lab grade. Homeworks rely on PostgreSQL databse management system. Install it locally on your machine.

Schedule

Meetings Topic Download Exercises
03.10.2019 Vorbesprechung PostgreSQL | Source code of PostgreSQL ---
10.10.2019 Transactions and ACID Homework 1: Fun with transactions 2 - 6
17.10.2019 Isolation levels and phenomena 8 - 11
24.10.2019 Schedules Homework 2: Cancel them all 13 - 21
    blocking.py  
07.11.2019 Locks and 2PL 23 - 26
14.11.2019 Deadlock 28 - 30
21.11.2019 Tree protocol | Multiple-granularity locking Homework 3: Cookie jar 31, 33 - 35
    cookie_jar_stud.py  
28.11.2019 Timestamp-ordering protocol 37 - 40
05.12.2019 Validation protocol 41 - 42
12.12.2019 Multiversion timestamp-ordering protocol 44
09.01.2020 Logging and recovery Homework 4: Validator 46, 47, 49, 51, 53
    validator_tests_generator.py  
    correct_result_textbook.txt  
    correct_result_original.txt  
    Kung and Robinson paper  
16.01.2020 ---
23.01.2020 ---
30.01.2020 ---

Homework submission

Each homework must be submitted through our abgaben system before the deadline (no exceptions).

Submission details are explained with each homework.

Q&A

This year we will try the #adb Slack channel for any course-related questions.

Evaluation

The evaluation is based solely on the submitted homeworks with the following grading scale.

Points Mark
[8.75, 10.00] 1
[7.50, 8.75) 2
[6.25, 7.50) 3
[5.00, 6.25) 4
[0.00, 5.00) 5