Datenmodell
Jede hat ihre Stärke: Spezialisierte Datenbanken mit klaren Aufgaben
Im letzten Kapitel ging es um Vektoren und semantische Suche. Aber Vektoren allein reichen nicht. Ein vollständiges System braucht verschiedene Datenbanken, jede mit einer eigenen Aufgabe.
Warum nicht eine einzige Datenbank für alles? Weil jede Art von Frage ein anderes Werkzeug braucht. "Welche Emails kamen gestern?" ist eine andere Frage als "Welche Texte bedeuten etwas Ähnliches?" oder "Wer arbeitet bei welcher Organisation?"
Die folgenden Zahlen zeigen den Stand des Testsystems zum 10. April 2026.
MariaDB: die Wahrheit
MariaDB ist die relationale Datenbank und die einzige Source of Truth (Quelle der Wahrheit, im Streitfall maßgeblich) im System. Die zentrale emails-Tabelle trägt seit Migration 0031 ein rag_ingest TINYINT(1) DEFAULT NULL-Feld mit Semantik NULL=Kategorie-Default, 0=ausgeschlossen, 1=erzwungen, das den RAG-Ingest pro Email steuert (siehe email-rag-ki-vektorspeicher). Hier liegen alle Stammdaten: die Tabellen mit Emails, Klassifikationen, Entwürfen, Kontakten, Regeln, Warteschlangen und dem Audit-Log. Wenn eine Email den Status "awaiting_review" hat, dann steht das in MariaDB. Alles andere leitet sich davon ab.
Qdrant: die Bedeutung
Qdrant ist die Vektordatenbank. Sie speichert die Chunk-Vektoren aus dem vorherigen Kapitel und kann blitzschnell die ähnlichsten Textabschnitte zu einer Suchanfrage finden. Die Vektoren liegen mit je 1024 Dimensionen in der Sammlung (en: Collection) "email2rag". Qdrant beantwortet die Frage: "Welche früheren Emails behandeln ein ähnliches Thema?"
ArangoDB: die Beziehungen
ArangoDB ist die Graphdatenbank. Sie speichert Entitäten (Personen, Organisationen, Orte) und ihre Beziehungen zueinander. Aktuell enthält der Graph Entitäten und deren Relationen wie "arbeitet_bei" oder "ist_kunde_von". ArangoDB beantwortet die Frage: "In welchem Zusammenhang stehen diese Personen und Organisationen?"
Zusammenspiel
Wenn das System einen Antwortentwurf generiert, fragt es alle drei Datenbanken:
- MariaDB: Gibt es frühere Emails im selben Thread? Welche Kategorie hat der Absender?
- Qdrant: Welche Textabschnitte aus früheren Emails sind diesem Thema am ähnlichsten?
- ArangoDB: Welche Beziehungen hat der Absender zu anderen Personen oder Organisationen?
Die Ergebnisse werden zusammengeführt und als Kontext an das Sprachmodell gegeben. MariaDB ist dabei unverzichtbar. Qdrant und ArangoDB liefern zusätzlichen Kontext. Fällt eine der beiden Komponenten aus, kann die Pipeline weiterlaufen, allerdings mit reduziertem Kontext und entsprechend geringerer inhaltlicher Fundierung des Antwortentwurfs. Dieses Prinzip heißt Graceful Degradation (anmutiger Abbau): lieber mit weniger Kontext antworten als gar nicht.
- Die Datenbanken teilen sich die Arbeit: MariaDB speichert Fakten, Qdrant findet ähnliche Bedeutung, ArangoDB erkennt Beziehungen zwischen Personen und Organisationen.
- Zusammen liefern sie den Kontext, den das Sprachmodell für gute Antworten braucht.