Teamentwicklung von großen Datenbanken

Damit Sie mit Visual Studio Änderungen an einem Datenbankschema verwalten können, müssen Sie zunächst ein Datenbankprojekt, ein Serverprojekt oder ein Anwendungsprojekt auf Datenebene erstellen und anschließend Objekte und Einstellungen aus der Datenbank importieren, die Sie verwalten möchten. Wenn Sie Änderungen an einer sehr großen Datenbank verwalten möchten, möchten Sie die Objekte unter Umständen zwischen mehreren Datenbankprojekten aufteilen. Auf diese Art können Sie steuern, welche Teams oder Entwickler Code in den verschiedenen Abschnitten der Datenbank hinzufügen, ändern oder löschen können.

Sie können die Datenbank mithilfe von zwei Ansätzen in kleinere Stücke aufteilen:

  • Zusammengesetzte Projekte – Sie können Abschnitte der Datenbank in mehreren Datenbankprojekten (in der gleichen Lösung oder mittels Verweis auf eine kompilierte DBSCHEMA-Datei) definieren, die durch Datenbankprojektverweise verknüpft sind. Wenn Sie das Projekt bereitstellen, das den Verweis enthält, stellen Sie auch alle Projekte bereit, auf die es verweist. Zwischen den Projekten in einem zusammengesetzten Projekt dürfen keine Zirkelverweise bestehen.

  • Unvollständige Projekte - Sie können einen Teil Ihres Datenbankprojekts in der Form einer FILES-Datei exportieren. Sie erstellen dann ein zweites Datenbankprojekt und beziehen das unvollständige Projekt (die FILES-Datei) ein. Anschließend können Sie Schreibberechtigungen für die ursprünglichen Dateien einrichten, um Änderungen an diesen Dateien zu beschränken. Daher können Entwickler, die am zweiten Projekt arbeiten, zusätzliche Objekte erstellen, die auf die schreibgeschützten Objekte verweisen, aber diese nicht ändern. Beim Erstellen und Bereitstellen des zweiten Projekts wird eine vollständige Kopie der Datenbank erstellt, einschließlich der schreibgeschützten Abschnitte. Zirkelverweise in einem unvollständigen Projekt sind zulässig.

Jeder Ansatz hat Einschränkungen, wie weiter unten in diesem Thema beschrieben.

Angeben eines Datenbank-Projekttyps

Wenn Sie ein Datenbankprojekt erstellen, geben Sie den Projekttyp an, der Ihrer Version von SQL Server entspricht. Wenn die zu verwaltende Datenbank z. B. auf SQL Server 2005 basiert, können Sie SQL Server 2005-Datenbankprojekt oder SQL Server 2005-Assistent angeben. Bei Verwendung des Assistenten können Sie nicht nur das Projekt erstellen, sondern gleichzeitig einige Erstellungs- und Bereitstellungseinstellungen konfigurieren und Datenbankobjekte und -einstellungen importieren.

Importieren von Datenbankobjekten und -einstellungen

Nach der Erstellung des Projekts können Sie die Objekte und Einstellungen aus einer Datenbankinstanz oder aus einem Skript importieren. Wenn Sie eine Datenbank aus einem Skript importieren, werden die zugehörigen Objektdefinitionen validiert. Anweisungen, die nicht analysiert werden können, werden in der Datei "ScriptsIgnoredOnImport.sql" abgelegt. Wenn Sie Objektdefinitionen importieren, die auf nicht mehr vorhandene Objekte verweisen, müssen Sie diese Fehler beheben, bevor Sie das Projekt erstellen und bereitstellen können. Sie können z. B. eine gespeicherte Prozedur importieren, die auf eine Tabelle verweist, die nicht mehr vorhanden ist. Um den Fehler zu beheben, können Sie diese gespeicherte Prozedur entfernen.

Sie müssen unter Umständen viel Zeit mit der Fehlerbehebung verbringen, wenn Sie ein großes Schema importieren. Teammitglieder können jedoch nicht versehentlich zusätzliche Fehler dieses Typs verursachen, wenn sie das Schema in Visual Studio Premium aktualisieren. Beim Ändern und Speichern von Objektdefinitionen werden alle Änderungen überprüft, damit Teammitglieder sie sofort korrigieren können und sie nicht in einer Livedatenbank bereitgestellt werden. Nachdem Sie Warnungen in Objektdefinitionen aufgelöst haben, sollten Sie erwägen, auch den Datenbankcode auf Entwurfsprobleme, Namensprobleme und Leistungsprobleme zu prüfen. Weitere Informationen finden Sie unter Analysieren von Datenbankcode zum Verbessern der Codequalität.

Allgemeine Aufgaben

Allgemeine Aufgaben

Unterstützender Inhalt

Weitere Informationen zu Datenbankprojekten und den Einschränkungen bei unvollständigen Projekten und zusammengesetzten Projekten: Hier erfahren Sie mehr über die grundlegenden Konzepte zum Verwalten von Schemaänderungen mithilfe von Datenbankprojekten.

Praktische Übungen: Sie können eine einführende exemplarische Vorgehensweise nachvollziehen, um sich damit vertraut zu machen, wie ein Datenbankprojekt mithilfe von unvollständigen Projekten oder zusammengesetzten Projekten partitioniert wird.

Stellen eines vorhandenen Datenbankschemas unter Versionskontrolle: Sie können ein Projekt erstellen, Projekteinstellungen konfigurieren und ein Schema mit dem Datenbankprojekt-Assistenten importieren. Sie können auch ein leeres Projekt erstellen, wenn Sie das Schema später importieren möchten oder wenn Sie keine Berechtigung besitzen, auf die Datenbank zuzugreifen, von der Sie das Schema importieren möchten. Nachdem Sie das Schema importiert haben, können Sie das Projekt der Versionskontrolle hinzufügen.

Partitionieren Sie ein Datenbankprojekt, um Objektdefinitionen freizugeben: Sie können Objektdefinitionen aus einem Datenbankprojekt exportieren und sie in einem anderen Projekt wiederverwenden. Sogar Teammitglieder, die auf das Projekt zugreifen können, in das Sie die unvollständige Projektdefinition importieren, können die importierten Objekte nicht ändern. Daher können Sie Änderungen an Teilmengen des Datenbankcodes steuern.

Fügen Sie Verweise hinzu, um ein zusammengesetztes Projekt zu erstellen: Sie erstellen ein zusammengesetztes Projekt, indem Sie Verweise auf ein Datenbankprojekt hinzufügen, aber keine Werte für die Server- und Datenbankvariablen angeben. Wenn Sie ein Projekt bereitstellen, stellen Sie auch alle Projekte bereit, auf die es verweist.

Vorteile und Einschränkungen von unvollständigen Projekten

Die folgende Abbildung zeigt ein typisches Szenario, das unvollständige Projekte einschließt:

Verwenden von unvollständigen Projekten in einer Datenbankedition

Teilprojekte in der Database Edition

In diesem Beispiel enthält ein Projekt zwei Sätze von Objekten. Sie möchten, dass ein anderer Entwickler oder ein anderes Team dem Projekt gespeicherte Prozeduren hinzufügt, aber Sie möchten verhindern, dass sie versehentliche Änderungen an den anderen Objekten vornehmen. Um dieses Ziel durch die Verwendung unvollständiger Projekte zu erreichen, müssen Sie die folgenden Schritte ausführen:

  1. Sie exportieren die Gruppen von Objekten, entweder nach Schema oder Objekttyp, in A.files und B.files.

  2. Sie erstellen ein zweites Datenbankprojekt, in dem der andere Entwickler oder das andere Team gespeicherte Prozeduren (manchmal als "sprocs" bezeichnet) erstellt.

  3. Sie importieren die exportierten unvollständigen Projekte, A.files und B.files, in das zweite Datenbankprojekt.

  4. Sie beschränken die Berechtigungen für die Quellcodeverwaltung der Objekte in den importierten unvollständigen Projekten, um nur schreibgeschützten Zugriff zuzulassen.

An diesem Punkt können die anderen Entwickler oder das andere Team Objekte hinzufügen, erstellen und bereitstellen, um die Änderungen zu testen.

Unter Umständen haben Sie nicht die Möglichkeit, das unvollständige Projekt (die FILES-Datei) in ein anderes Datenbankprojekt zu importieren, wenn die Datenbank Objekte enthält, die über lange Namen verfügen, oder wenn der Pfad, in dem Sie das Datenbankprojekt erstellt haben, zu lang ist. Sie können diese Probleme vermeiden, wenn Sie die folgenden Vorschläge beachten:

  • Erstellen Sie die Datenbankprojekte in einem Ordner, der einen kürzeren Pfadnamen hat. "D:\MyProjects" ist z. B. eine bessere Wahl als "C:\Dokumente und Einstellungen\Benutzername\Eigene Dateien\Visual Studio 2008\Projekte".

  • Vermeiden Sie sehr lange Namen für Datenbankobjekte. Fremdschlüssel sind der häufigste Objekttyp mit langen Namen. Wenn der Name des Fremdschlüssels "FK_ReferencingTable_ReferencedTable_ReferencedColumn1_ReferencedColumn2" lautet, können Fehler auftreten, wenn Sie versuchen, ein unvollständiges Projekt zu importieren, das die Definition dieses Schlüssels enthält.

Vorteile und Einschränkungen von zusammengesetzten Projekten

Die folgende Abbildung zeigt ein typisches Szenario, das zusammengesetzte Projekte umfasst:

Verwenden von zusammengesetzten Projekten in einer Datenbankedition

Zusammengesetzte Projekte in der Database Edition

In diesem Beispiel können Sie ein Datenbankprojekt erstellen, das die Definitionen der Schemas enthält. Sie erstellen dann ein zweites Datenbankprojekt, das die Definitionen der Tabellen und der Ansichten enthält, und ein drittes Datenbankprojekt, das die Definitionen der gespeicherten Prozeduren enthält. Das dritte Projekt (Datenbankprojekt C) verweist auf die anderen zwei Datenbankprojekte. Wenn Sie das dritte Projekt erstellen und bereitstellen, stellen Sie auch automatisch die anderen Projekte bereit.

Wenn Sie zusammengesetzte Projekte verwenden, müssen Sie in der Lage sein, jedes Projekt unabhängig zu erstellen und bereitzustellen. Es dürfen keine Ringabhängigkeiten zwischen den Projekten in einem zusammengesetzten Projekt vorliegen. Sie können zusammengesetzte Projekte zum Partitionieren der Datenbank nach Objekttyp verwenden. Sie können z. B. Schemas in ein Projekt, Tabellen und Ansichten in ein anderes Projekt und gespeicherte Prozeduren in ein drittes Projekt platzieren.

Ähnliche Szenarien