Zusammenfassung
In der agilen Entwicklung von Anwendungen werden neue Software Versionen häufig und regelmäßig veröffentlicht. Relationale Datenbanksysteme mit ihrem rigiden Schema-Management werden dabei oft als unflexibel empfunden. Schemalose NoSQL-Datenbanksysteme bieten zwar die nötige Flexibilität, unterstützen aber kein systematisches Release- und Schema-Evolutionsmanagement.
Dieser Artikel stellt ...
Zusammenfassung
In der agilen Entwicklung von Anwendungen werden neue Software Versionen häufig und regelmäßig veröffentlicht. Relationale Datenbanksysteme mit ihrem rigiden Schema-Management werden dabei oft als unflexibel empfunden. Schemalose NoSQL-Datenbanksysteme bieten zwar die nötige Flexibilität, unterstützen aber kein systematisches Release- und Schema-Evolutionsmanagement.
Dieser Artikel stellt entsprechende Konzepte vor: Schema-Evolutionsschritte werden deklarativ spezifiziert, ihre Umsetzung erfolgt für die Anwendung transparent eager oder lazy. Während eine eager Migration sämtliche Datensätze erfasst, werden lazy persistierte Objekte nur bei Zugriff durch die Anwendung aktualisiert. Wir diskutieren eine effiziente lazy Migration selbst für den Fall, dass eine Migration über mehrere Evolutionsschritte und mehrere persistierte Objekte hinweg erfolgt.