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

Develop your own Database (Sommersemester 2023)

Lecturer: 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
Course Website:

General Information

  • Weekly Hours: 4
  • Credits: 6
  • Graded: yes
  • Enrolment Deadline: 01.04.2023 - 07.05.2023
  • Teaching Form: Seminar / Exercise
  • Enrolment Type: Compulsory Elective Module
  • Course Language: German
  • Maximum number of participants: 9

Programs, Module Groups & Modules

IT-Systems Engineering MA
Data Engineering MA
  • DASY: Data Systems
    • HPI-DASY-K Konzepte und Methoden
  • DASY: Data Systems
    • HPI-DASY-T Techniken und Werkzeuge
  • DASY: Data Systems
    • HPI-DASY-S Spezialisierung
  • SYSE: Systems Engineering
    • HPI-SYSE-K Konzepte und Methoden
  • SYSE: Systems Engineering
    • HPI-SYSE-T Techniken und Werkzeuge
  • SYSE: Systems Engineering
    • HPI-SYSE-S Spezialisierung

Description

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.

Examination

  • 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

Zurück