Datenbankänderungsmanagement ist ein Prozess, bei dem festgestellt wird, welche Änderungen an einer Datenbank vorgenommen werden müssen, bei dem diese Änderungen angegeben, die Auswirkungen dieser Änderungen bewertet und sie anschließend implementiert werden.
Änderungen an Datenbankschemata können aufgrund einer Reihe von Gründen erforderlich werden, einschließlich neuer Geschäftsanforderungen, Unternehmenszusammenschlüssen, Änderungen in der Gesetzgebung und Anwendungsänderungen. Schemaänderungen können Änderungen an logischen Datenbankobjekten (z. B. Tabellen, Spalten, Primärschlüsseln und Integritätsbedingungen) und an physischen Datenbankobjekten (z. B. Datenbanken, Tabellenbereichen, Pufferpools und Indizes) umfassen. Das Ändern von Datenbankobjekten ist unabhängig von ihrem Typ häufig keine einfache Operation.
Änderungen haben häufig Auswirkungen auf abhängige Objekte und mitunter sogar auf zugrunde liegende Daten. Der Prozess der Analyse und der Verwaltung dieser Abhängigkeiten ist in der Regel zeitaufwendig und fehlerträchtig.
Stellen Sie sich eine typische Datenbankumgebung vor, wie sie in der folgenden Abbildung dargestellt wird, in der neue Anwendungen und Datenbankentwurfsänderungen zunächst auf einem dedizierten Entwicklungssystem eingeführt werden, anschließend auf einem Testsystem geprüft und schließlich in das Produktionssystem der Organisation implementiert werden.
Abbildung 1. Typische Datenbankumgebung
Obwohl Entwicklungs-, Test- und Produktionssysteme in der Regel eine sehr ähnliche Gesamtarchitektur aufweisen, unterscheiden sich die Geschäftsregeln der einzelnen Systeme meist. Die Produktionsdatenbank wird nach strengen Geschäftsregeln betrieben und muss an 7 Tagen in der Woche 24 Stunden lang ausgeführt werden. Die Testdatenbank wird ebenfalls nach strengen Geschäftsregeln betrieben, um sicherzustellen, dass das, was getestet wird, später in der Produktion ordnungsgemäß ausgeführt wird.
Die Testdatenbank dagegen, erfordert nicht dasselbe Maß an Verfügbarkeit wie das Produktionssystem. Im Gegensatz zum Produktions- und zum Testsystem bestehen für die Entwicklungsdatenbank, bedingt dadurch, dass Entwickler laufend Änderungen vornehmen müssen, häufig weniger Geschäftsregeln. Die Verwaltung dieser unterschiedlichen Datenbanksysteme erfordert es häufig, dass der Datenbankadministrator folgende Vorgänge ausführen muss:
- Das Entwicklungssystem oder das Testsystem synchronisieren, sodass sie eine Zeitpunktkopie des Produktionssystems darstellen
- Änderungen von einem System auf ein anderes weiterleiten (oder migrieren)
- Änderungen widerrufen, die an einer Datenbankumgebung vorgenommen wurden
- Ein Langzeitbasismodell als Referenz für zukünftige Zwecke erstellen
- Änderungen protokollieren, um ihre Auswirkungen überblicken zu können
- Den Lebenszyklus von strukturellen Änderungen an Datenbanken verwalten
- Zwei Gruppen von Objekten miteinander vergleichen, um festzustellen, wie sie sich voneinander unterscheiden
- Die Auswirkungen einer vorgeschlagenen Änderung auf eine Datenbank analysieren
- Die Implementierung von Änderungen für die Zieldatenbank verwalten
- Daten laden und entladen, wenn Objekte aufgrund von Änderungen gelöscht und neu erstellt werden müssen
- Daten verschieben
- Pakete erneut binden, die infolge von Änderungen funktionsunfähig geworden sind
- Abhängige Objekte aktualisieren oder erneut definieren
Das Änderungsmanagement ist oftmals ein schwieriger und zeitaufwendiger Prozess für einen Datenbankadministrator, weil er die folgenden Herausforderungen stellt:
- Das Nichterkennen einer Schemaänderung gefährdet die Systemintegrität.
- Das Finden aller zugehörigen Schemaänderungselemente ist schwierig.
- Das Analysieren der Auswirkung einer Schemaänderung ist zeitaufwendig.
- Die Datenmigration muss vor der eigentlichen Migration gründlich und umfassend geplant werden.
- Für das Anwenden von Änderungen auf eine Datenbank ist Fachwissen über die Datenbankstruktur erforderlich.
- Das Erlernen der SQL-Syntax kann schwierig sein.
Die Änderungsmanagementsoftware kann den Änderungsmanagementprozess vereinfachen, weil sie die Zuverlässigkeit erhöht und die Möglichkeit von Benutzerfehlern verringert.