Стратегии обслуживания данных

Транзакции, выполняемые для географических данных, могут значительно изменяться по продолжительности и сложности. База геоданных поддерживает две стратегии работы с данными - работа с версионными данными и работа с данными без версий.Это позволяет сохранить баланс между потребностями пользователей и приложений в выполнении коротких и длинных транзакций для данных, которые могут быть простыми или сложными.

Каждая стратегия может быть применена на основе схемы feature class-by-feature class или table-by-table, так что вы сможете использовать обе эти схемы в одной и той же базе геоданных.

Вы будете редактировать данные при использовании каждой из этих стратегий схожим образом — вы будете производить редактирования в сессии редактирования и будете работать с множеством одинаковых инструментов. Что будет различаться, так это то, каким образом будет производиться поддержка и обслуживание лежащих в основе источников данных. Существует также несколько отличий, заключающихся в том, какие данные вы сможете редактировать, а также какой тип рабочего потока вы сможете выполнять. В данном разделе рассказывается об этих различиях.

Работа с данными без поддержки версий

Данная стратегия является самой простой, поскольку при ее использовании вы не будете работать с несколькими версиями — она просто использует модель транзакций, лежащую в основе СУБД. Неверсионные редактирования эквивалентны стандартным транзакциям в базе данных.

Для редактирования данных необходимо включить неверсионное редактирование в диалоговом окне Опции редактора (Editor Options), открыть сеанс редактирования, а затем выполнить необходимые операции, например добавление, удаление или перемещение объектов и обновление их атрибутов. Первое редактирование в сеансе начинается с транзакции. При сохранении изменений отдельные операции редактирования будут закреплены в базе данных как одна транзакция. После сохранения следующее ваше редактирование начинается с новой транзакции. При необходимости вы можете сохранять за раз малое или большое количество операций, если только они будут производиться в одной сессии редактирования.Рекомендуется сохранять изменения как можно чаще, чтобы избежать блокировки данных для других пользователей, которые хотят получить доступ или редактировать эти же данные. Как только изменения будут сохранены, они станут доступны для всех других пользователей и приложений, которые имеют доступ к этим данным.

Если вы не хотите передавать свои изменения в базу данных - прекратите редактирование, не сохраняя изменения. Все изменения в этой транзакции, то есть изменения, внесенные после последнего сохранения, или все изменения с момента открытия сеанса редактирования, если они еще не были сохранены, не будут сохранены и не будут закреплены в базе данных.

Работа с данными без поддержки версий

При редактировании будут использоваться любые уникальные индексы, ограничения (constraints) и триггеры (triggers), определенные для данных в рамках СУБД. Будет использоваться такая же схема блокировки, как будто если бы вы выполняли транзакции для данных, хранимых в СУБД, напрямую. Следовательно, для пользователей или приложений существует риск того, что при доступе или изменении одних и тех же данных они будут блокировать друг друга. При использовании неверсионного редактирования в среде многопользовательского редактирования вы должны понимать принцип работы уровней изоляции (isolation levels) и блокировок в вашей СУБД и при необходимости установить соответствующий уровень изоляции (isolation level) в СУБД до того, как вы начнете работать в ArcGIS.

Эта стратегия подходит для простых объектов, которые не требуют управления историей или многочисленными представлениями данных, имеющих версии. Поскольку при использовании данной стратегии не требуется наличие версий, она будет также удобна, если вам нужно, чтобы и ГИС, и не-ГИС приложения могли разделять доступ к общей базе данных.

Возможное применение

Ограничения:

Работа с данными с поддержкой версий

База геоданных расширяет возможности стандартной транзакции СУБД, позволяя нескольким параллельным состояниям базы данных, называемых версиями, существовать в одно и то же время. Каждая версия может представлять состояние текущей работы, например, состояние проекта или набор рабочих нарядов, а также работы, которая может порождать наличие нескольких подключений к базе данных и длиться при необходимости в течение нескольких недель или даже месяцев. Версии позволяют вам управлять произведенными, настоящими и предполагаемыми изменениями данных в одной и той же базе геоданных.

Для управления произведенными изменениями вы сохраняете все изменения данных в отдельные архивные таблицы (archive tables). Вы можете хранить эти изменения сколько вам нужно, позволяя пользователям видеть, как выглядела база данных в некоторый момент времени ранее. Данная функция называется архивированием, и она уже встроена в ArcGIS, то есть вам не нужно ничего разрабатывать. При включении этой функции изменения версии DEFAULT, которая обычно используется как публикуемая версия базы данных, архивируются автоматически.

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

Для управления предполагаемыми изменениями вы можете разработать сценарий или выполнить анализ по алгоритму «а что если» в рамках какой-то версии базы данных. Данный сценарий может управляться в виде отдельной единицы изменений, которая растягивается на несколько сессий редактирования, дней, недель или даже месяцев. Вы свободно можете добавлять предполагаемые объекты, производить географический анализ и создавать карты — все это вы можете делать без оказания влияния на базу данных, к которой другие пользователи в настоящий момент времени имеют доступ. Как только изменения будут завершены и одобрены, вы сможете объединить их с остальной частью базы геоданных.

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

База геоданных может иметь неограниченное количество версий. Версии могут быть структурированы по различным параметрам конфигурации и поддерживать различные типы рабочих потоков. Но для простоты управления базами геоданных рекомендуется поддерживать плоское дерево версий, или чтобы несколько редакторов одновременно редактировали версию DEFAULT (по умолчанию).

У базы геоданных может быть несколько версий

Для поддержки этих функциональных возможностей ArcGIS не производит дублирования данных. Вместо этого он оставляет каждый класс пространственных объектов и таблицу в его исходном виде, а записывает любые изменения в таблицы, называемые таблицами изменений (дельта-таблицами). Дельта-таблицы включают в себя таблицу добавлений для вставок и обновлений и таблицу удалений для удалений. Каждый раз, когда вы обновляете или удаляете запись в какой-то версии, в одну или в обе эти таблицы происходит добавление строк. Когда вы производите запрос или отображаете класс пространственных объектов или таблицу в версии, ArcGIS объединяет соответствующие строки из таблиц изменений и исходной таблицы для отображения целостного представления данных.

Дельта-таблицы
Редактирование версионного класса пространственных объектов

Версионные таблицы нуждаются в периодическом обслуживании, которое может быть выполнено администратором баз данных. По мере того, как база геоданных будет редактироваться, таблицы изменений (дельта-таблицы) увеличатся в размерах и будут влиять на производительность в отображении данных и обработки запросов. Для поддержки производительности администратор баз данных может иногда производить сжатие версионной базы данных - операцию, которая удаляет избыточную информацию из дельта-таблиц. Версионные базы данных должны сжиматься каждый раз по окончании периода высокой активности работы в базе данных, например, по завершении рабочей смены или после загрузки новых данных. Процесс сжатия может быть запущен во время того, как другие пользователи подключены к базе данных и используют ее.

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

Первый способ был разработан для поддержки исключительно приложений ArcGIS. Второй способ удобен при наличии необходимости в поддержке данных средствами как приложений ArcGIS, так и приложений третьих лиц.

Поддержка данных исключительно с помощью приложений ArcGIS

При работе в среде, в которой необходимо производить обслуживание данных исключительно с помощью приложений ArcGIS, самым лучшим решением для управления версиями будет сохранение всех изменений в таблицы изменений (дельта-таблицы). Это позволит вам извлечь максимум пользы из функциональных возможностей базы геоданных, включая архивирование, создание реплик и возможность редактирования геометрических сетей и топологий.

Для включения работы данной стратегии для класса пространственных объектов или таблицы вам необходимо зарегистрировать данные как версионные, не включая опцию перемещения изменений в основную таблицу (base table). Каждый раз, когда вы будете сохранять изменения в наборе данных, зарегистрированном таким образом, изменения будут сохраняться в дельта-таблицах (delta tables). При использовании данного подхода прямой доступ к исходным таблицам невозможен — пользователи всегда имеют доступ к версии данных.

На расположенном ниже рисунке изображена конфигурация, при которой данные полностью управляются посредством использования версий. Для изменений данных редакторам необходимо использовать ArcGIS или другое приложение Esri. Не-ГИС приложения могут получить доступ к публикуемой или любой другой версии при условии, что они могут работать с версионными представлениями.

Поддержка данных исключительно с помощью приложений ArcGIS

По причине того, что для поддержки версий необходимо наличие дельта-таблиц и других таблиц, приложения, которые были написаны для обеспечения прямого доступа к данным в СУБД без использования библиотек программного обеспечения ESRI, не будут иметь нужных функциональных возможностей чтения версий. В ArcGIS предусмотрены версионные представления, которые позволяют таким приложениям читать версию с помощью SQL. Версионные представления могут работать как с таблицами, так и с классами объектов. Доступ к атрибутам геометрии классов объектов с помощью версионного представления требует использования типов геометрии SQL, которые полностью поддерживаются ArcGIS.

Данный подход имеет следующие преимущества:

Возможные области применения:

Версии имеют множество преимуществ, но тем не менее имеют и некоторые ограничения:

Обслуживание данных с помощью ArcGIS и других приложений

При работе в разнородной среде вычислительных средств, когда у вас имеется большое число департаментов со своими различными приложениями, которые имеют доступ к одной и той же базе данных, вам может понадобиться обеспечить поддержку работы как приложений ArcGIS, так и приложений третьих сторон. Приведем пример: у вас имеется один департамент, который обслуживает географические данные в базе данных с помощью приложений ArcGIS, и другой департамент, который поддерживает записи пользователей в той же базе данных с помощью пользовательского приложения. Для пользовательского приложения необходимо применение ограничений и триггеров СУБД по мере произведения транзакций, однако эти приложения могут не работать с версионными таблицами. В то же время другому департаменту необходимо редактировать географические данные в его собственной изолированной версии, не разделяя свои редактирования до тех пор, пока они не будут завершены и одобрены.

Учитывая эти требования, ArcGIS позволит вам производить версионное редактирование для класса пространственных объектов или таблицы, сохраняя возможность разделения этих редактирований с другими приложениями. Для включения этой возможности для класса пространственных объектов или таблицы вам необходимо зарегистрировать эти данные как версионные, включив опцию перемещения изменений в основную (базисную) таблицу. Данная опция будет доступна в диалоговом окне регистрации.

При регистрации данных таким способом версии будут работать точно так же, как было описано при предыдущем подходе: изменения сохраняются в дельта-таблицах. Исключением является лишь версия DEFAULT. Каждый раз, когда вы будете сохранять редактирования в версии DEFAULT, либо напрямую редактируя ее, либо производя объединение изменений из другой версии, эти редактирования будут сохраняться в основных (базисных) таблицах. Правки не будут оставаться в дельта-таблицах, как в том случае, когда опция перемещения изменений в базу данных не выбрана.

Это позволит всем приложениям работать над одной и той же базой данных.

Обслуживание данных с помощью ArcGIS и приложений третьих сторон

Возможное применение

Ограничения:

При регистрации набора данных как версионного с включением опции перемещения изменений в базу вы ограничены в способах работы с версиями.

Более подробно см. в разделах Введение в работу с версиями и Подходы к использованию версий.

Связанные темы

12/10/2012