Definition: Schemaverwaltung in NoSQL-Datenbanken

Während die (überwiegende) Schemafreiheit bei NoSQL-Datenbanken der agilen Softwareentwicklung entgegenkommt, ist insbesondere die Unterstützung von Daten mit veraltetem Schema ein Problem für komplexe Anwendungen.

Ein möglicher Umgang mit diesem Problem ist die Migration der Altdaten hin zu einem neuen Schema.

Um dieses neue Schema für eine Datenmigration überhaupt zu finden, gibt es die Ansätze des Forward- und des Reverse Engineerings.

  • Beim Forward Engineering wird das Schema durch einen Entwickler definiert.
  • Beim Reverse Engineering wird das Schema auf Basis der vorhandenen Daten hergeleitet.
    • Ein simpler Ansatz ist, einfach nur zu schauen, welche Spalten die einzelnen Dokumente enthalten, und die Obermenge der Spalten als Schema zurückzugeben.
    • Komplexere Ansätze der Schemainferenz und Schema-Versionierung sind Teil aktueller Forschung.

Hier ein Beispiel für Schemainspektion (Reverse Engineering) mit Studio 3T für MongoDB: