Доступно с лицензией Standard или Advanced.
Традиционное создание версий позволяет нескольким редакторам изменять одни и те же данные в многопользовательской базе геоданных или в базе геоданных рабочей группы без использования блокировок или создания копий данных. В традиционном использовании версий это достигается путем хранения изменений во вспомогательных таблицах, называемых дельта-таблицами.
Для редактирования классов объектов, которые участвуют в топологии, наборах сетевых данных или в геометрических сетях, а также для редактирования данных земельных участков, необходимо зарегистрировать данные как версионные. Это необходимо, поскольку при редактировании объекта в сети, топологии или в данных по земельным участкам, не все объекты получают блокировку, поэтому другие пользователи могут редактировать остальные участки сети или топологии таким образом, что они будут конфликтовать с вашим редактированием.
Пользователи всегда подключаются к многопользовательской базе геоданных или базе геоданных рабочей группы, используя определенную версию. Когда вы в первый раз подключаетесь к базе геоданных из ArcGIS, вы подключаетесь к версии Default. Чтобы подключиться к другой версии и сохранить эту информацию вместе с файлом подключения к базе данных (.sde), вам необходимо указать эту версию в свойствах базы геоданных.
Что такое версия?
Версия – это вариант представления базы геоданных, который позволяет разделять редактирование. Когда различные пользователи подключаются к одной версии, они видят все правки, выполненные в этой версии. Клиенты, которые подключились к другим версиям, не увидят ваших изменений, пока вы не выполните согласование и не отправите изменения в общую родительскую версию.
Версия Default
Версия Default является основной (корневой) версией и, следовательно, предком всех других версий.
В отличие от других версий, версия Default существует всегда и не может быть удалена. В большинстве сценариев рабочих процессов, версия Default - это версия, в которой вы выполняете публикацию или которую которую используете в качестве главной системы ведения записей, поскольку она представляет текущее состояние моделируемой системы. Вы производите обслуживание и время от времени обновление версии Default путем закрепления в ней изменений из других версий. Вы также можете непосредственно редактировать версию по умолчанию Default, как и любую другую версию.
Создание других версий базы геоданных
Вы можете создать традиционную версию базы геоданных путем создания дочерних объектов или ветвей из любой существующей традиционной версии. Первая созданная версия является дочерней версией от версии Default. При создании дочерней версии она будет идентична версии Default. С течением времени, когда в версии Default и новой версии будут производиться изменения, они станут различаться.
У базы геоданных может быть несколько традиционных версий. На следующем снимке экрана показано диалоговое окно Менеджер версий в ArcMap. В этом примере показано представление дерева диалогового окна, в котором изображена версия Default и четыре других версии, а также то, как они между собой связаны. Версии Cases и Base являются дочерними по отношению к версии Default, а версии Case1 и Case2 – по отношению к версии Cases.
При создании версии у вас создается ложное впечатление того, что вы создаете копию всей базы геоданных. Независимо от того, сколько у вас традиционных версий, каждая таблица и каждый класс пространственных объектов хранятся в базе геоданных лишь в одном экземпляре. ArcGIS оставляет классы пространственных объектов или таблицы в их исходном формате, а производит запись всех производимых изменений в таблицы, называемые дельта-таблицами.
Версии могут одновременно редактироваться несколькими пользователями.
Как работают традиционные версии и версионное редактирование
Перед тем, как вы сможете выполнять версионное редактирование для данных любой из традиционных версий, наборы данных надо зарегистрировать, чтобы они могли участвовать в традиционном версионном редактировании.
При регистрации набора данных (класса объектов, набора классов объектов или таблицы) для использования в традиционных версионных рабочих процессах создаются две дельта-таблицы: таблица A (от слова Adds – добавления) для записи вставок и обновлений, а также таблица D (от слова Deletes – удаления) для хранения удалений. Каждый раз, когда вы добавляете или удаляете какие-нибудь записи в наборе данных, при этом добавляются соответствующие строки в одну или обе дельта-таблицы. Таким образом, в традиционный версионный набор данных входит исходная таблица (она называется основная или бизнес-таблица) и все изменения, сохраненные в дельта-таблицах. База геоданных отслеживает, к какой версии базы геоданных вы были подключены, когда вносили изменения, попавшие в дельта-таблицы. Когда вы делаете запрос или отображаете набор данных из версии базы геоданных, ArcGIS берет соответствующие записи из исходной таблицы и дельта-таблиц, чтобы отобразить непрерывное представление этих данных для этой версии.
Все правки класса определенных пространственных объектов или таблицы записываются в одни и те же дельта-таблицы, независимо от версии, в которой были произведены изменения. Это означает, что каждая версия обращается только к определенному набору строк из этих трех таблиц. Так как же ArcGIS отслеживает, к каким версиям относятся строки дельта-таблиц?
Каждая строка в таблицах A и D отмечается с помощью целочисленного идентификатора, называемого State ID, который указывает на то, когда строка была добавлена к таблице. Каждый раз, когда вы редактируете версию, создается новое состояние и новая строка добавляется в одну или обе дельта-таблицы. Вы можете представлять себе состояния в виде элемента древовидной структуры, где каждая ветвь описывает развитие версии. Набор состояний, записывающих серию изменений, начиная с базисной (основной) таблицы, и заканчивая текущим состоянием версии, называется родословной (lineage). При отображении или формировании запроса к версии ArcGIS производит запрос к родословной версии для получения значений идентификаторов State ID, а затем извлекает соответствующие записи из таблиц A и D.
По мере того, как база геоданных редактируется, дельта-таблицы увеличиваются в размерах, и возрастает количество состояний. Чем больше таблицы и чем больше состояний, тем больше данных ArcGIS должен будет обрабатывать каждый раз при отображении версии или выполнении к ней запроса. Для поддержания должного уровня производительности базы данных администратору базы геоданных необходимо периодически выполнять команду Сжать для удаления неиспользуемых данных.
Перемещение изменений в базу
Если вы задаете опцию для перемещения изменений в базу при регистрации данных как традиционных версионных, изменения записываются в дельта-таблицы. Однако при изменении версии Default и сохранении изменений, изменения сразу переносятся из дельта-таблиц в основные таблицы – они не остаются в дельта-таблицах. Учитывайте, что это действует только при редактировании версии Default. Изменения в дочерних версиях не сразу переносятся в основную таблицу.
Опция перемещения изменений в основную таблицу полезна, если выполняется следующее:
- Завершение ваших изменений потребует только несколько минут.
- Данные не участвуют в сети или топологии.
- Вы используете приложение сторонней компании для доступа к базе геоданных, использующей традиционную версионность.
Большинство запросов от приложений сторонних компаний, как правило, идут только к основным таблицам, у них нет доступа к дельта-таблицам. Если вы будете использовать поддержку традиционных версий и не выберете опцию перемещения изменений в основную таблицу, то эти приложения не смогут применить изменения, внесенные в других версиях, которые не были согласованы и закреплены в версии Default. Помните, что если вы редактируете версии, отличные от версии Default, изменения записываются в тех же дельта-таблицах. При сохранении изменений в других версиях, они будут оставаться в дельта-таблицах. Однако при слиянии изменений в версию Default с помощью согласования закрепления изменений, они будут перемещены из дельта-таблиц в основные таблицы. При переносе изменений в версии, отличные от версии Default, изменения останутся в дельта-таблицах, как было бы, если бы вы не определили эту опцию.
Разрешения и редактирование версии
Владелец версии базы геоданных (создавший ее человек) или администратор базы геоданных может устанавливать права доступа к версии. Ниже перечислены опции разрешений на доступ.
- Частный доступ – только владелец версии или администратор базы геоданных может просматривать и редактировать наборы данных в версии.
- Защищенный доступ – любой пользователь может просматривать данные в версии, но редактировать их может только владелец или администратор базы геоданных.
- Общий доступ – любой пользователь может просматривать и редактировать предоставленные данные, при условии, что он имеет доступ на редактирование к этим таблицам и классам объектов.
Права доступа к версии устанавливаются во время ее создания, но владелец версии или администратор базы геоданных также может изменить их позднее в диалоговом окне Менеджер версий. Более подробно см. в разделах Создание версий и установка разрешений на доступ и Свойства версий.
После того, как таблица или класс объектов были зарегистрированы в качестве версионных и вы создали версию (если необходимо), и вы, и другие редакторы можете выполнять изменение данных. Для редактирования в ArcMap, подключитесь к версии базы геоданных, которую вы хотите отредактировать и добавьте версионную таблицу или класс объектов на карту.
По умолчанию все сеансы редактирования в ArcMap являются версионными. Соответственно, если у вас на карте есть версионные данные, вы можете начать их редактировать сразу после открытия сеанса редактирования.
Выполненные изменения применяются только к версии, к которой вы были подключены во время редактирования. Завершив редактирование, согласуйте изменения и отправьте их в родительскую версию.
Согласование и закрепление изменений
При согласовании и закреплении изменения собираются в любой версии, являющейся предшествующей для той, с которой вы работаете, например в родительской или в версии Default. Согласование изменений включает в себя процесс сравнения изменений в версии, которую вы редактируете, с версией, в которую вы хотите эти изменения внести.
При изменении данных в версии для данных не используются блокировки. Поэтому редакторы, работающие с одними и теми же данными либо в одной версии, либо в разных, могут создавать конфликты. Конфликт возникает тогда, когда в сравниваемых версиях отличается одна и та же строка. В процессе согласования отображаются все конфликты, и предоставляется возможность выбрать, какое представление строки следует сохранить.
На практике конфликты редактирования возникают редко, поскольку объемы редактирования по сравнению с объемами используемых географических данных незначительны. В корректно спроектированных рабочих процессах, цена согласования конфликтов значительно меньше по сравнению с выгодами, получаемыми от того, что вы не устанавливаете блокировок или не производите открепления объектов во время выполнения операции редактирования.
Как только вы закончите согласование и разрешение конфликтов, вы сможете произвести закрепление изменений. Это позволит вам закрепить произведенные изменения в родительской версии. Если вам больше не будет нужна версия, из которой вы закрепили изменения (дочерняя версия), то вы можете удалить ее. В противном случае, вы сможете редактировать ее в будущем и снова производить согласование и закрепление изменений.
Версии: пример
Для получения представления об использовании традиционных версий, давайте изучим сценарий работы с данными городской водопроводной сети. У водопроводной компании имеется база геоданных пространственных объектов, которые описывают текущее состояние всех водопроводов, клапанов, насосов и других элементов системы водоснабжения. Этой организации требуется добавить к существующей системе водоснабжения новую линию водопровода.
Редактор создает новую версию из версии Default и присваивает ей имя Extension_project. Эта новая версия будет содержать изменения, сделанные для разработки новой линии водопровода. Однако сотрудники сети не уверены, нужно ли использовать 16-дюймовые, или 24-дюймовые трубы для этой новой линии водопровода. Поэтому они создали две новые версии из версии Extension_project: одну для проекта с 16-дюймовыми трубами и одну для проекта с 24-дюймовыми трубами.
Сотрудники решили, что 24-дюймовые трубы прослужат для нужд водоснабжения на этом участке расширения более 12 лет, и что их исходная цена внедрения будет оправдана. Дизайн с 24-дюймовыми трубами был одобрен, проверен на точность и согласован, а затем изменения были закреплены в версии Extension_project.
Создание новой линии водопровода было завершено несколькими месяцами позже. Для обновления опубликованной версии базы данных, версия Extension_project была просмотрена на предмет точности, согласована и закреплена в версии Default.