Hasso-Plattner-Institut25 Jahre HPI
Hasso-Plattner-Institut25 Jahre HPI

Develop your own Database (Sommersemester 2023)

Dozent: Prof. Dr. Felix Naumann (Information Systems) , Prof. Dr. Tilmann Rabl (Data Engineering Systems) , Daniel Lindner (Information Systems) , Marcel Weisgut (Enterprise Platform and Integration Concepts) , Martin Boissier (Enterprise Platform and Integration Concepts) , Stefan Halfpap (Enterprise Platform and Integration Concepts) , Thomas Bodner
Website zum Kurs: https://hpi.de/naumann/teaching/current-courses/ss-23/develop-your-own-database-1.html

Allgemeine Information

  • Semesterwochenstunden: 4
  • ECTS: 6
  • Benotet: Ja
  • Einschreibefrist: 01.04.2023 - 07.05.2023
  • Lehrform: Seminar / Übung
  • Belegungsart: Wahlpflichtmodul
  • Lehrsprache: Deutsch
  • Maximale Teilnehmerzahl: 9

Studiengänge, Modulgruppen & Module

IT-Systems Engineering MA
  • BPET: Business Process & Enterprise Technologies
    • HPI-BPET-K Konzepte und Methoden
  • BPET: Business Process & Enterprise Technologies
    • HPI-BPET-S Spezialisierung
  • BPET: Business Process & Enterprise Technologies
    • HPI-BPET-T Techniken und Werkzeuge
  • OSIS: Operating Systems & Information Systems Technology
    • HPI-OSIS-K Konzepte und Methoden
  • OSIS: Operating Systems & Information Systems Technology
    • HPI-OSIS-S Spezialisierung
  • OSIS: Operating Systems & Information Systems Technology
    • HPI-OSIS-T Techniken und Werkzeuge
Data Engineering MA


IMPORTANT NOTE: Course limit extended to 18 participants!

Please see the course website for full information (schedule, materials, etc).

This project seminar is split into two phases. In the lecture phase, we build a database system from scratch. We develop basic concepts of modern databases step by step, with a focus on in-memory technology and accompanied by practical programming exercises. In the project phase, we concentrate on a single, more complex concept, which we will implement in our research DBMS Hyrise (open source). In both phases, you will work in teams of three students.

In the lecture phase (April 20 to June 8), fundamental database components (storage, compression, operators) are presented and eventually implemented by each group independently. Getting started is eased by given interfaces and test cases. We deepen our understanding of C++, the overall architecture, and database knowledge with code reviews and by discussing different implementation ideas.

We work on a larger code base in the project phase (starting June 8). We implement new components advised by the teaching staff, which will give you feedback during weekly meetings. Here, we focus on different advanced optimization techniques. We can profit from existing test cases (>90% test coverage) and benchmark suites. Since the complexity of our database systems impedes getting a complete overview of the code base within a few weeks, we focus on isolating achievable problems and providing them as project topics. Thus, you can experience to familiarize yourself with a complex system with the help and advice of the teaching staff.

This seminar is a perfect choice if you want to

  • understand how modern main-memory databases work,
  • collect experience in the development of complex and high-performant systems,
  • improve your C++-20 knowledge, and
  • work in a smaller group as part of a large open-source software project.

This seminar also serves as a solid basis for ongoing work and research on database topics, e.g., in a master's project or thesis.


  • Programming tasks
    • Sprint implementations
    • Code review of other group’s sprint implementations
    • Project Implementation
    • Code review of other group’s project implementation
  • Project presentation
  • Active participation in seminar meetings