Database Systems II


Lecturer:Prof. Dr. Guido Moerkotte
Interval:Spring semester
Credit Points:6 ECTS (4 SWS)
Time and place:Weekly on Mondays, 12:00-13:30, B6 A1.01
First lecture:18.02.2019

Prerequisites: Knowledge in Database Systems, Algorithms and Programming



  • Andrew S. Tanenbaum, Todd Austin: Structured Computer Organization 6e, Chaps. 2.1 (Processors), 2.2 (Primary Memory), 4.4 (Design of the Microarchitecture Level), 4.5 (Improving Performance), 8.1 (On-Chip Parallelism), 8.3.3 (UMA Symmetric Multiprocessor Architecture), 8.3.4 (NUMA Multiprocessors)
  • David Patterson and John Hennessy: Computer Architecture: A Quantitative Approach
  • Charles E. Leiserson, Clifford Stein, Ronald Rivest, and Thomas H. Cormen: Introduction to Algorithms 3e, Chap. 11 (Hash Tables)
  • Héctor García-Molina, Jeffrey Ullman, and Jennifer Widom: Database Systems: The Complete Book 2e, Chap. 15 (Query Execution)

Exercise Sessions

Lecturer:Daniel Flachs
Time and place:Weekly on Wednesdays, 13:45-15:15, B6, A1.01
First time:20.02.2019

The weekly exercise sheets are published here. They are not mandatory, but solving them is highly recommended. The solutions are discussed during the exercise sessions.


  • 12/04/2019: Exercise sheet 8 was uploaded. Happy Easter holidays!
  • 10/04/2019: The solutions to exercise sheet 7 and the slides from exercise 7 were uploaded.
  • 05/04/2019: Exercise sheet 7 was uploaded.
  • 03/04/2019: The solutions to exercise sheet 6 and the slides from exercise 6 were uploaded.
  • 02/04/2019: Exercise sheet 6 had been incorrectly labelled as sheet 5. The mistake was corrected and a new version of the PDF was uploaded.
  • 29/03/2019: The solutions to exercise sheet 5 and the slides from exercise 5 as well as exercise sheet 6 were uploaded.
  • 22/03/2019: Exercise sheet 5 was uploaded.
  • 21/03/2019: The solutions to exercise sheet 4 and the slides from exercise 4 were uploaded. Exercise sheet 4 was extended by task 4 (open addressing), which was discussed during class (as part of Task 2) but was originally not on the exercise sheet.
  • 15/03/2019: Exercise sheet 4 was uploaded.
  • 13/03/2019: The solutions to exercise sheet 3 and the slides from exercise 3 were uploaded.
  • 11/03/2019: The solutions to exercise sheet 2 and the slides from exercise 2 were uploaded.
  • 08/03/2019: Exercise sheet 3 was uploaded.
  • 04/03/2018: Correction of a typo in exercise sheet 2: In exercise 2a, the command to check for SSE/AVX must be "g++ -Q --help=target", i.e. two dashes before "help".
  • 01/03/2019: Exercise sheet 2 was uploaded.
  • 27/02/2019: The solutions to exercise sheet 1 (code + pdf) and the slides from exercise 1 were uploaded.
  • 22/02/2019: Exercise sheet 1 was uploaded.
  • 21/02/2019: The code examples from exercise 0 were uploaded. The ZIP file contains more examples than discussed in class. The slides from exercise 0 were updated to version v2 (fixed typos).


Source code is usually uploaded as ZIP files. Refer to the README text files to find out which example implements what.

0C++ IntroCode: CPP_IntroBasics.zipslides00.pdf (v2)
1C++ Intro, Algorithmssheet01.pdf
Code for task 4 (binaryTree) (zip)
Code Solutions (zip)
2Cache & Prefetching, SIMDsheet02.pdf (v2)
Code for tasks 1 and 2 (zip)
Code Solutions (zip)
3Efficiency of C++, Hashingsheet03.pdf
Code for tasks 1 and 3 (zip)
4Branch Misprediction,
Cache Alignment/Row Store
Code for tasks 1 and 2 (zip)
Code Solutions (zip)
5Bit Manipulations,
Row Store vs. Column Store
Code for tasks 1 and 2 (zip)
Code Solutions (zip)
6Physical Algebra Implementation,
Storage Layout: BitSliceH
Code for task 1 (zip)
Code Solutions (zip)
(same file as task)
7Lambda Expressions,
Physical Algebra Implementation II
Code for task 2 (zip)
Code solution (zip)
Operator Trees and Virtual Machines
Code for tasks 1 and 2 (zip)

Please report any mistakes in the materials to Daniel Flachs.