Verwalten von Datenbankänderungen

Wenn Sie auf Unternehmensebene Datenbanken entwickeln und verwalten, umfasst Ihr Aufgabenbereich möglicherweise auch das Koordinieren von Plänen und Änderungen mit Softwareentwicklungsteams, um einheitliche Datenbankanwendungen zu erstellen. Sie können den für eine solche Koordination erforderlichen Aufwand erheblich reduzieren, indem Sie Tools und Prozesse einsetzen, die denen der Softwareentwickler in Ihrer Organisation möglichst weitgehend entsprechen.

Da viele Teams mit iterativeren Paradigmen für die schnelle Entwicklung beim Schreiben von Code arbeiten (beispielsweise die Agile-Methode), besteht bei Software- und Datenbankentwicklern ein erhöhter Bedarf für Tools wie die Versionskontrolle. Diese Tools können die Risiken reduzieren, die bei der Entwicklung in Teams auftreten. Der Einsatz von ähnlichen Tools und Prozessen stellt einen erheblichen Vorteil für die von Ihnen verwalteten Datenbanken sowie einen Integrationspunkt zwischen diesen Datenbanken und der Software dar, die mit den Datenbanken interagiert.

Unterstützung durch Visual Studio

Visual Studio unterstützt die Koordination mit den Ansprechpartnern in der Softwareentwicklung, da die Teammitglieder so einen ganzheitlichen Überblick erhalten und sich auf das Verhalten der Anwendung konzentrieren können und sich nicht mit Details der Implementierung befassen müssen. Dieser Ansatz weicht von dem Modell ab, bei dem die Produktionsdatenbank (und deren Daten) als Mittelpunkt des Anwendungsuniversums angezeigt werden. Visual Studio bietet einen Projektmappensatz für die gesamte Anwendung – für die Daten und für die Logik. Zum Entwickeln einer Anwendung mit einer guten Leistung, die einfach zu verwalten ist und so schnell wie möglich geliefert werden kann, müssen die Entwicklungsorganisationen auf Unternehmensebene einen solchen umfassenden Überblick über die Anwendung haben.

Visual Studio stellt Features bereit, die für die Aufgaben konzipiert sind, mit denen sich Datenbankentwickler und Datenbankadministratoren heute befassen. Visual Studio unterstützt beispielsweise das Konzept einer isolierten Entwicklungsumgebung für jeden Datenbankexperten. Die Teammitglieder können an Schema-bezogenen Aktivitäten arbeiten, ohne dass dies zu Problemen für andere Teammitglieder oder in der Produktionsumgebung führt. Langfristig werden Features für Datenbankarchitekten hinzugefügt sowie die Features für Datenbankadministratoren erweitert.

Übergeordnete Ziele

Mit den Datenbankfunktionen von Visual Studio wird in erster Linie Folgendes bezweckt:

  • Bereitstellen einer Grundlage, die auf integrierter Änderungsverwaltung für Datenbankanwendungen basiert.

  • Bereitstellen von Tools zur Unterstützung bei der Verwaltung von Datenbankprojekten.

  • Bereitstellen von Tools, mit denen Sie Unterschiede besser erkennen können.

  • Bereitstellen von Tools, mit denen Sie besser Änderungen vornehmen und deren Effekte beurteilen können.

  • Bereitstellen von Tools, mit denen Sie in einer isolierten Umgebung arbeiten und so die Risiken bei Änderungen reduzieren können.

  • Bereitstellen von Tools, mit denen Sie aktualisierte Lösungen testen können.

  • Bereitstellen von Tools zur Vereinfachung der Bereitstellung von Änderungen an einer Datenbank.

  • Bereitstellen von Tools für die leichtere kollaborative Entwicklung komplexer Datenbanken.

Übergeordnete Aufgaben

Zum Unterstützen dieser Ziele können Sie mit Visual Studio die folgenden übergeordneten Aufgaben ausführen:

  • Erstellen und Bereitstellen einer neuen Datenbank mit Versionskontrolle.

  • Stellen eines vorhandenen Datenbankschemas unter Versionskontrolle mithilfe von Datenbankprojekten. Das Datenbankprojektschema wird durch Importieren des Schemas aus einer Datenbank oder vorhandenen Skripts erstellt.

  • Ändern der Offlinedarstellung einer Datenbank und anschließendes Bereitstellen der Änderungen.

  • Vergleichen von Schemas oder Daten zwischen Datenbanken.

  • Entwickeln und Ausführen von Komponententests mit Datenbankobjekten.

  • Generieren von vorhersehbaren, repräsentativen Testdaten ohne Gefährdung von vertraulichen Produktionsdaten.

  • Umbenennen von Datenbanktabellen, -spalten, -ansichten oder anderen Objekten und Weitergeben dieser Änderungen an den Rest des Datenbankprojekts, einschließlich zugeordneten Komponententests, Ansichten, gespeicherter Prozeduren, Trigger usw.

  • Erstellen, Bearbeiten, Überprüfen, Ausführen und Analysieren von Skripts und Abfragen.

Der Entwicklungslebenszyklus von Datenbanken

Visual Studio unterstützt einen Prozess, der mit den neuen Tools zusammenarbeitet. Sie können sich diesen Prozess als den Entwicklungslebenszyklus der Datenbank vorstellen, durch den für jeden Datenbankexperten eine isolierte Entwicklungsumgebung bereitgestellt wird, in der er arbeiten und Änderungen testen kann. Nach dem Testen der Änderungen werden diese durch das Versionskontrollsystem für die Teammitglieder freigegeben. Der Entwicklungslebenszyklus für eine Datenbank umfasst die folgenden Phasen:

  • Einrichten der Projektumgebung

  • Ausführen einer isolierten, iterativen Entwicklung

  • Erstellen des Projekts

  • Bereitstellen aus der Projektumgebung

Einrichten der Projektumgebung

In der folgenden Abbildung wird dargestellt, wie das Teammitglied, das als Datenbankadministrator (DBA) fungiert, die Projektumgebung einrichtet:

Datenbankadministrator legt die Datenbankprojektumgebung fest

Der DBA beginnt mit dem Erstellen eines Datenbankprojekts und dem Importieren des Datenbankschemas aus der Produktionsdatenbank. Danach kann er einen Datengenerierungsplan erstellen, um Testdaten für die isolierten Entwicklungsumgebungen zu erstellen. Schließlich checkt er das Datenbankprojekt in der Versionskontrolle ein und stellt es so für das Team zur Verfügung.

Ausführen einer isolierten, iterativen Entwicklung

Im folgenden Diagramm wird dargestellt, wie die Teammitglieder iterative Entwicklungen in einer isolierten Umgebung vornehmen:

Iterative Entwicklung in einer isolierten Umgebung

Jeder Datenbankexperte synchronisiert seine Entwicklungsumgebung mit der Versionskontrolle. Sie können Dateien auschecken, wenn sie geändert werden, und diese Änderungen isoliert entwickeln und testen. An ihrer Kopie des Datenbankprojekts vorgenommene Änderungen werden nur in ihrer isolierten Entwicklungsumgebung bereitgestellt. Wenn ein Teammitglied realistische Testdaten generiert und Komponententests anhand einer privaten Kopie der Datenbank durchgeführt hat, checkt das Teammitglied die Änderungen in der Versionskontrolle ein. Andere Teammitglieder rufen getestete Änderungen aus der Versionskontrolle ab.

Generieren von täglichen Builds des Projekts

In der folgenden Abbildung wird der Buildzyklus für Datenbankprojekte dargestellt:

Buildzyklus für Datenbankprojekte

Der tägliche Build wird durch das Synchronisieren der letzten getesteten Version des Datenbankprojekts im Versionskontrollsystem generiert. Dieser Build kann in einer Testdatenbank bereitgestellt werden, in der Komponententests mit generierten Testdaten durchgeführt werden.

Bereitstellen aus der Projektumgebung

Im folgenden Diagramm wird gezeigt, wie der Datenbankadministrator eine Version des Datenbankprojekts in der Produktion bereitstellen kann:

Build und Bereitstellung für die Produktion durch Datenbankadministrator

Wenn eine Version der Datenbank in der Produktion bereitgestellt werden soll, synchronisiert der Datenbankadministrator bis zu einer Bezeichnung im Versionskontrollsystem. Der DBA ruft entsprechende Dateien für das Datenbankprojekt, verknüpfte Skripts und Tests ab. Danach wird die DBSCHEMA-Datei vom DBA erstellt. Aus der DBSCHEMA-Datei generiert der DBA ein Bereitstellungsskript, nimmt ggf. manuell Änderungen vor, und richtet eine Testbereitstellung auf dem Stagingserver ein. Der DBA durchläuft diesen Prozess, bis das Skript auf dem Produktionsserver bereitgestellt werden kann. Wenn der DBA Änderungen am Schema oder den Skripts vor bzw. nach der Bereitstellung vorgenommen hat, werden diese Änderungen wieder in der Versionskontrolle eingecheckt.

Siehe auch

Konzepte

Übersicht über die Architektur der Datenbankfunktionen von Visual Studio

Beginnen der Datenbankentwicklung im Team