Relacje z SQL Server w ArcSDE?

9

Korzystam z ArcSDE 10 z SQL Server 2008 R2 Standard Edition. Jestem nowy w SDE i SQL Server, ale rozumiem, że SQL Server ma możliwość tworzenia relacji między tabelami i utrzymywania pewnych reguł integralności referencyjnej.

ArcGIS ma klasy relacji, które działają podobnie, ale klasa relacji nie ma wszystkich cech relacji SQL i nie powoduje relacji SQL w bazie danych ArcSDE.

Czy można tworzyć klasy relacji w ArcGIS dla bazy danych ArcSDE i tworzyć relacje dla tych samych tabel w SQL Server? W ten sposób będę mógł wykorzystać te relacje bez względu na to, czy pracuję z danymi w ArcGIS, czy w SQL Server Management Studio. Czy dwa typy relacji będą ze sobą kolidować, czy w inny sposób wpłyną na wydajność?

Brian
źródło
To tylko przypuszczenie (dlatego nie jest to odpowiedź), ale założę się, że dodanie relacji może spowodować pewne konflikty, chyba że będziesz bardzo ostrożny. Ważna uwaga: jeśli wersjonujesz swoje tabele, nie chcesz czytać ich od strony SQL, tylko od strony GIS. Czytanie od strony SQL pokazuje tylko najstarszą wersję danych (a nie zmiany, które stanowią wersje).
Michael Todd,
@MichaelTodd - Dziękujemy za odpowiedź. Słyszałem o problemach z dostępem do wersjonowanych danych przez SQL Server. Jednak słyszałem również, że jest to możliwe przy użyciu widoków w wielu wersjach. Nadal jestem nowicjuszem w tych sprawach, więc nie jestem do końca pewien, co to znaczy, ale moje wynos jest taki, że jest to możliwe. Po prostu stwierdzam, że jeśli chodzi o zarządzanie danymi w ArcSDE, ArcGIS jest najsłabszym ogniwem.
Brian
1
Tak, widok wielu wersji działa, ale jest znacznie wolniejszy. Przeszliśmy z zapytań poniżej 1 sekundy na zapytania 4-sekundowe, kiedy przeszliśmy na MVV (co nie brzmi zbyt wiele, ale opóźnienie było bardzo zauważalne zarówno wewnętrznie, jak i dla klientów zewnętrznych).
Michael Todd,

Odpowiedzi:

7

SDE i SQL nie są tak naprawdę przyjaciółmi. Nie współpracują bardzo dobrze. SDE używa SQL, ale nie wykorzystuje wszystkich swoich natywnych możliwości. Relacja skonfigurowana w sde nie jest odzwierciedlana w SQL. Edycja tabel klas funkcji zarządzanych przez SDE, modyfikowanie schematów tabel poza katalogiem, a także wykonywanie wielu innych czynności, spowoduje SDE. Biorąc pod uwagę tę historię, pozostawiłbym relacje SDE, jeśli próbujesz powiązać informacje o klasie elementów. Jeśli używasz zwykłych tabel, wytnij sde out i użyj natywnego kodu SQL.

Nie ma na to żadnych odniesień poza moimi własnymi doświadczeniami. Jeśli są to materiały pozyskane z zewnątrz, należy to zakwestionować lub usunąć.

Steve
źródło