SQL Server-Beziehungen in ArcSDE?

9

Ich verwende ArcSDE 10 mit SQL Server 2008 R2 Standard Edition. Ich bin neu in SDE und SQL Server, aber ich verstehe, dass SQL Server Beziehungen zwischen Tabellen erstellen und bestimmte Regeln für die referenzielle Integrität beibehalten kann.

ArcGIS verfügt über Beziehungsklassen, die sich ähnlich verhalten. Eine Beziehungsklasse verfügt jedoch nicht über alle Funktionen von SQL-Beziehungen und führt nicht zu einer SQL-Beziehung in der ArcSDE-Datenbank.

Ist es möglich, Beziehungsklassen in ArcGIS für eine ArcSDE-Datenbank zu erstellen und Beziehungen für dieselben Tabellen in SQL Server zu erstellen? Auf diese Weise kann ich diese Beziehungen nutzen, unabhängig davon, ob ich mit den Daten in ArcGIS oder in SQL Server Management Studio arbeite. Werden die beiden Arten von Beziehungen miteinander in Konflikt stehen oder die Leistung auf andere Weise beeinträchtigen?

Brian
quelle
Dies ist nur eine Vermutung (weshalb es keine Antwort ist), aber ich würde wetten, dass das Hinzufügen von Beziehungen zu Konflikten führen kann, wenn Sie nicht sehr vorsichtig sind. Wenn Sie Ihre Tabellen versionieren, möchten Sie sie nicht von der SQL-Seite, sondern nur von der GIS-Seite lesen. Beim Lesen von der SQL-Seite wird nur die älteste Version der Daten angezeigt (und nicht die vorgenommenen Änderungen, aus denen die Versionen bestehen).
Michael Todd
@ MichaelTodd - Danke für deine Antwort. Ich habe von den Problemen beim Zugriff auf versionierte Daten über SQL Server gehört. Ich habe jedoch auch gehört, dass dies mit Ansichten mit mehreren Versionen möglich ist. Ich bin immer noch ein Neuling mit diesem Zeug, also bin ich mir nicht ganz sicher, was das bedeutet, aber ich nehme an, dass es möglich ist. Ich stelle nur fest, dass ArcGIS das schwächste Glied ist, wenn es um die Datenverwaltung in ArcSDE geht.
Brian
1
Ja, eine Ansicht mit mehreren Versionen funktioniert, ist jedoch erheblich langsamer. Wir sind von Sub-1-Sekunden-Abfragen zu 4-Sekunden-Abfragen übergegangen, als wir zu MVVs gewechselt sind (was nicht viel klingt, aber die Verzögerung war sowohl intern als auch für externe Kunden sehr spürbar).
Michael Todd

Antworten:

7

SDE und SQL sind keine wirklichen Freunde. Sie arbeiten nicht sehr gut zusammen. SDE verwendet SQL, nutzt jedoch nicht alle nativen Funktionen. Eine in sde eingerichtete Beziehung spiegelt sich nicht in SQL wider. Durch das Bearbeiten von von SDE verwalteten Feature-Class-Tabellen, das Ändern von Tabellenschemata außerhalb des Katalogs sowie viele andere Aufgaben wird SDE beeinträchtigt. Angesichts dieser Erfolgsbilanz würde ich die Beziehungen SDE überlassen, wenn Sie versuchen, Feature-Class-Informationen in Beziehung zu setzen. Wenn Sie normale Tabellen verwenden, schneiden Sie sde aus und verwenden Sie natives SQL.

Es gibt keine anderen Referenzen als meine eigenen Erfahrungen. Wenn es sich um nicht bezogene Materialien handelt, bestreiten oder löschen Sie diese.

Steve
quelle