Hasso-Plattner-Institut
  
Hasso-Plattner-Institut
Prof. Dr. h.c. Hasso Plattner
  
 

Build your own Database

Materialien

Sprint 1

Das Arbeitspaket für Sprint 1 findet ihr hier. Ihr könnt es euch gerne schon vor dem ersten Termin ansehen um eine bessere Vorstellung davon zu bekommen, was wir im Seminar machen wollen. Ihr braucht es nicht vor dem ersten Termin bearbeiten. Abgabedatum hierfür ist der 2. November.

Sprint 2

Das Arbeitspaket für Sprint 2 findet ihr hier. Abgabedatum ist der 16. November um 23.59 Uhr MEZ.

Sprint 3

Das Arbeitspaket für Sprint 3 findet ihr hier. Abgabedatum ist der 30. November um 23.59 Uhr MEZ.

Gruppenphase

 

Allgemeine Information

  • Semesterwochenstunden : 4
  • ECTS : 6
  • Benotet : Ja
  • Einschreibefrist : 21.10.2016
  • Programm : IT-Systems Engineering MA
  • Lehrform : PS
  • Belegungsart : Wahlpflicht

Module

  • Business Process & Enterprise Technologies
  • Operating Systems & Information Systems Technology
  • Software Architecture & Modeling Technology

Beschreibung

Hier bauen Studenten ihre erste Datenbank von Grund auf. Anhand der am Lehrstuhl erforschten In-Memory-Technologie werden wir schrittweise und mit Hilfe praktischer Übungen die Basiskonzepte moderner Datenbanken erarbeiten. Nachdem eine minimale Datenbank implementiert wurde, werden wir einzelne komplexere Konzepte herausgreifen und detaillierter betrachten.

In der ersten Hälfte der Vorlesungszeit werden grundlegende Komponenten zunächst vorgestellt und daraufhin von jeder Gruppe implementiert. Eine hohe Modularisierung ist angestrebt, sodass Komponenten unter den Gruppen ausgetauscht werden können.

Ausgehend von einer gemeinsamen Code-Basis wird im zweiten Teil die Funktionalität und Performanz der Datenbank verbessert. Hierfür implementieren die Gruppen nach Absprache mit den Betreuern weiterführende Komponenten.

 

Ablauf

1. Sprint: Einfache Tabellenfunktionalitäten, unter anderem spalten-basierte Datenhaltung verschiedener Datentypen

2. Sprint: Darauf aufbauende Datenbankoperatoren wie Select und Insert

3. Sprint: Wörterbuch-Kompression

Gruppenphase: Implementierung ausgesuchter Komponenten wie zum Beispiel:

  • Indizes
  • Multithreading von 2 bis 480 Kernen
  • Joins
  • NUMA-Awareness
  • SIMD/SSE/AVX-Unterstützung für Operatoren

Abschlusspräsentation der Gruppenergebnisse 

 

Voraussetzungen

  • C++-Kenntnisse
  • grundlegende Datenbankkenntnisse (TuK, DBS) wünschenswert, aber nicht erforderlich 

 

Lern- und Lehrformen

  • Einführungsveranstaltungen
  • Gruppenbasiertes Software-Projekt
  • Wöchentliche Treffen 

 

Leistungserfassung

  • Umsetzung der vorgegebenen Datenbankkomponenten
    • Funktionalität
    • Code-Qualität 
    • Performanz
    • Testabdeckung
  • Abschlusspräsentation (20 Minuten pro Gruppe)
  • Aktive Mitarbeit während der wöchentlichen Treffen