<<На Главную         <В меню Советы по ArcGIS

В некоторых крупных организациях, использующих по специфике своей производственной деятельности большие и очень большие объемы пространственной (ключевое слово в контексте этой статьи) и табличной информации, наступает такой момент, когда  необходимо обеспечить пользователям  быстрый доступ к геоданным (с возможностью редактирования) , хранящимся в одной из реляционных СУБД - Oracle,  MS SQL Server , PostgreSQL и пр. В рамках технологии от ESRI с её линейкой продуктов ArcGIS такая задача решается средствами серверного программного обеспечения ArcSDE (Spatial Data Engine). Несколько упрощенно говоря, ArcSDE можно рассматривать как интерфейс (программный буфер) между реляционными СУБД и ГИС. Естественно, такой интерфейс должен обеспечивать не только чтение, но и изменение пользователями информации, как атрибутивной, так и пространственной. Графически хорошо передает смысл применения  ArcSDE следующая иллюстрация:

 

 

С более полным обзором по идеологии использования ArcSDE можно ознакомиться в этой статье

 

Существует несколько реализаций использования ArcSDE, например как подмножество ArcGIS Server Enterprise. В данной статье, однако, рассмотрим конкретную реализацию ArcSDE в виде ArcSDE for SqlServer для доступа к данным MS SQL Server (существуют и другие реализации ArcSDE под конкретную РСУБД for Oracle, for PostgreSQL и т.д.)

 

 

Прим. Резонно может возникнуть вопрос - А зачем использовать решение ArcSDE, если в ArcGIS имеется функционал для подключения к реляционным базам данных? Ответ очень простой. Во-первых, такое подключение дает возможность работать с информацией только на чтение, а во-вторых, за счет использования специальных механизмов построения индексов запросы к БД выполняются гораздо быстрее.

 

 Итак, представим, что существует некая база данных agrohimSQLVrn2 в формате MS SQL Server, в которой мы будем создавать базу геоданных в ArcGIS :

 

 

Для экономии места и времени, предположим, что ArcSDE for SqlServer у вас уже проинсталлирован в системе ( ничего сложного там нет).

 

Переходим непосредственно к работе в ArcMap - в панели инструментов ArcToolbox ищем утилиту Создать многопользовательскую базу геоданных из набора Управление данными>Администрирование базы геоданных :

 

Прим. Далее будет рассмотрен случай для идентификации пользователя по входу в систему , так называемая Windows Authentication

 

 

Запускаем инструмент Создать многопользовательскую базу геоданных и заполняем необходимые атрибуты приблизительно так, как показано на рисунке выше. Поначалу небольшие 'непонятки' возникают при указании Файла авторизации (см.рис.выше). Но здесь ситуация довольно простая - необходимо выбрать лицензионный файл с расширением .ecp. Его обычно указывают в самом конце установки ArcSDE for SqlServer :

В общем, корректно заполненные поля при создании многопользовательской должны выглядеть сл. образом:

В случае успешного завершения  процесса , в конце должны увидеть такое сообщение :

 

 

Если после отработки утилиты Создать многопользовательскую базу средствами Management Studio просмотреть перечень объектов, то должны заметить, что в нашей учебной базе появилось множество таблиц с префиксом SDE, что-то вроде этого:

 

 

 

Так, двигаемся дальше - создаем подключение к вновь созданной базе. Выполнить такую манипуляцию можно следующим приемом - в панели Catalog хлопаем по правой кнопке по папке Home и в контекстном меню выбираем Новый>Подключение к базе данных :

 

 

Указываем в сл. форме реквизиты соединения:

 

 

В только-что созданном подключении к базе геоданных должны увидеть таблицы базы данных MS SQL Server:

 

Создать распределенную БГД ArcSDE в ArcGIS

 

Теперь о самом интересном. Весь этот огород мы городили ради одного основного пунктика. А именно - возможности редактировать пространственные данные MS SQL Server средствами ArcMap. Сейчас наступило самое время заняться этим моментом.

Попробуем для примера внести изменения в пространственные данные таблички - как всегда, в панели  Редактор'а выбираем Начать редактирование:

 

 

 

Вполне может случиться, что при запуске режима редактирования появиться  аварийное сообщение - Слой или таблица не зарегистрированы как версионные :

 

 

 

Справиться с такой проблемкой можно сл. образом - в Каталоге становимся на редактируемый набор данных и по правой кнопке мыши щелкаем Управлять>Регистрировать как версионный  :

 

 

Можно попробовать для эксперимента изменить геометрию какого-либо полигона, ну скажем так ... :

 

 

... и сохранив все изменения в ArcGIS (естественно), просмотреть редактируемый слой (то бишь табличку) средствами MS SQL Management Studio. Management Studio также отобразило изменения геометрии, произведенные нами в редакторе ArcMap - где-то так :

 

 

Таким образом, с помощью созданной   распределенной базы геоданных пользователи получают возможность редактировать пространственные данные в реляционной базе MS SQL Server'а средствами редактора ArcGIS !

Что характерно. Поскольку мы теперь работаем фактически с объектами реляционной СУБД, то многие сущности, созданные в ее рамках будут теперь доступны и из распределенной БГД. Создав, например, некое представление (view) SelectOstrogosk, которое будет отображать данные по некоторому критерию ... :

 

 

... теперь можно воспользоваться им при формировании карты по выбранному району. Для этого достаточно просто вытянуть мышкой представление из панели Каталога на карту :

 

 

Впрочем, для селекции данных не обязательно переключаться в Server Management Studio. Можно воспользоваться набором утилит Слои и представления таблиц. Как вариант, попробуем сейчас сделать выборку с помощью инструмента Создать слой таблиц.  В нашем учебном случае выберем все контура Острогожского района - у него код района kray в базовой таблице PL  равен 19 . Текст запроса будет полностью аналогичен тому, что пришлось бы набирать, используя язык запросов t-sql :

 

Select * from PL Where kray = 19  

 

 

Результирующая картинка может выглядеть для случая нашего примера сл. образом :

 

 

Да, вот ещё что ... При добавлении объектов в табличку с геоданными средствами ArcGIS была замечена одна проблемка. Вновь залитые   точки не отображались из Management Studio и не определялись соответствующим прикладным программным обеспечением (в ArcGIS все было  корректно).

Решение такой ситуации было найдено  следующее  - выбираем подключение и далее Администрирование>Сжать базу данных:

 

 

После выполнения описанной процедуры объекты попадали в выборку посредством SQL-запроса в MS SQL Management Studio в штатном режиме.

 

Как еще  можно просматривать геоданные MS SQL Server можно посмотреть здесь

©Simashkov.2017

01.02.2017 г.

Назад