Multi-Model-Datenbanken
SITIC SAI Online Sharing, Mittwoch 22. Februar 2023, 15 – 17 Uhr

Als Vorbereitung möchten wir uns mit einer konkreten Modellierungsaufgabe beschäftigen. Wir analysieren das Beispiel der Ausschreibung nun etwas genauer: Wir modellieren ein Ticketsystem. Dieses System soll bei der Organisation und Aufteilung von Aufgaben helfen. Es funktioniert ähnlich wie ein Anschlagbrett mit Notizzetteln, siehe Sidebar (1). Das Brett mag in Bereiche aufgeteilt sein, und Zettel werden je nach Fortschritt und Verantwortlichkeit in entsprechende Bereiche umgehängt.

Basis-Anforderungen

  1. Alle Tickets sind öffentlich einsehbar und werden den Benutzern aufgelistet.
  2. Jedes Ticket hat Attribute wie einen Titel und eine Beschreibung.
  3. Jedes Ticket hat genau einen Autor.
  4. Ein Ticket durchläuft mehrere Stadien wie in Sidebar (2) skizziert.

Modellierung

Das Entity-Relationship-Modell für die zwei grundlegendsten Entitäten könnte aussehen wie in Sidebar (3).

Aufgaben

A. Ausgehend von den Basis-Anforderungen (und ausschliesslich diesen), wie würden Sie die Daten modellieren? Gehen Sie dabei von einer relationalen Datenbank aus.

B. Welches wäre ihre Haupt-Entität wenn sie eine dokumentenorientierte Datenbank verwenden müssten? Wie wäre ein Dokument strukturiert? Wie würde die Beziehung zwischen Benutzern und Tickets repräsentiert?

C. Falls Sie schon mit Graph-Datenbanken gearbeitet haben, welche Kanten würden Sie einführen um die Beziehungen zwischen Tickets und Benutzern (User) abzubilden?

Erweiterungen der Ansicht

Ein Vorteil eines digitalen Anschlagbrettes besteht darin, dass man es automatisch filtern kann.

Aufgaben

D. Welche gefilterten Ansichten, die nur eine Auswahl aller Tickets anzeigen, erachten Sie als nützlich?

E. Welche Datenbanktypen können die gefilterte Auswahl effizient bereitstellen und wie würde eine entsprechende Query für diese Datenbank aussehen?

Gruppierung der Tickets

Die ersten Benutzer des Systems monieren, bei vielen offenen Tickets den Überblick zu verlieren und postulieren eine neue Anforderung: Tickets sollen nach bestimmten Kriterien in Gruppen zusammengefasst werden können (im agilen Kontext oft “Epic” genannt).

Aufgaben

F. Wie würden Sie die Gruppierungsfunktion von Tickets zu einer Epic modellieren? Gibt es ein Datenbankmodell welches Sie für diese Änderung bevorzugen?

G. Welche aggregierten Informationen für eine Gruppe von Tickets (Epic) sollten nach Ihrer Auffassung angezeigt werden?

Auswertung

Die Aufgaben dienen zur Aufwärmung für das Thema und werden in der Keynote und der Diskussion aufgegriffen.

© Microvone | Dreamstime.com

(1) Anschlagbrett

(2) Ticket Stadien
(3) ER-Modell