Что такое версионные виды?
Версионные виды включают в себя виды базы данных, сохраненные процедуры, триггеры и функции, позволяющие просматривать и редактировать версионные данные в таблице базы геоданных с помощью языка запросов SQL. При запросе версионного вида можно просматривать данные в базовой бизнес-таблице и изменения, которые хранятся в дельта-таблицах. Триггеры, используемые версионными видами, обновляют дельта-таблицы в процессе редактирования версионного вида с помощью SQL.
В отличие от базы данных или пространственных видов версионные виды не используются для изменения схемы таблицы или ограничения доступа к ней. Они используются для упрощения доступа к определенной версии таблицы или класса пространственных объектов. Следовательно вам не нужно указывать выражение Where при создании версионного вида. В итоге версионные виды содержат те же столбцы и строки, что и базовая таблица, которую они представляют.
Версионные виды раньше назывались многоверсионными видами.
Краткое описание функционирования версионных видов
С каждой версионной таблицей и с каждым классом пространственных объектов связаны дельта-таблицы, в которых регистрируются изменения. Когда к версионной таблице или классу пространственных объектов осуществляется доступ с помощью версионного вида, все записи в базовой таблице выбираются и сливаются с записями из дельта-таблиц, в результате чего выполняется построение вида, в котором представлены все изменения в базовой таблице в контексте конкретной версии.
Без версионных видов приложения, не поддерживающие работу с версиями баз геоданных, могут формировать запросы только напрямую к базовой таблице версионного класса пространственных объектов или версионной таблицы и не могут устанавливать подключение к дельта-таблицам. Благодаря использованию версионных видов такие приложения смогут осуществлять доступ к данным в дельта-таблицах.
Версионные виды не взаимодействуют с функциями, реализованными на уровне баз геоданных. Следовательно, их нельзя использовать для редактирования данных, относящихся к работе баз геоданных. Дополнительные сведения см. в разделе Какие типы данных могут редактироваться с помощью SQL?
Если вы выполняете запрос к версионному представлению без установки версии и состояния, то будет выполнена привязка к текущему состоянию версии DEFAULT. Если другие пользователи выполняют редактирование в версии DEFAULT (и таким образом изменяют состояние, к которому привязана версия DEFAULT), ваши последующие запросы будут видеть последнее состояние версии DEFAULT и внесенные изменения.
Если вы указали версию, к которой необходимо отправить запрос с использованием функции или процедуры set_current_version ("задать_текущую_версию" — ее обозначение может отличаться в вашей СУБД), вы будете ссылаться на состояние, на которое ссылалась версия на момент указания версии.
Например, если запустить функцию set_current_version, чтобы задать в качестве значения параметра версии именованную версию decedits, и эта версия будет указывать на состояние 4 в дереве состояний, все последующие SQL-запросы к decedits будут обращаться к данным в состоянии 4, даже если другие пользователи будут редактировать эту версию и ее состояние достигнет 25. Чтобы увидеть состояние 25, запустите функцию set_current_version повторно, чтобы задать для параметра версии значение "текущее состояние".
Создание версионного вида
Начиная с версии ArcGIS 10.1 версионные виды автоматически генерируются для таблиц и классов пространственных объектов, регистрируемых как версионные. Если вы зарегистрировали набор данных объектов как версионный, для каждого класса пространственных объектов в наборе данных объектов создается по одному версионному виду. Создаваемый вид будет иметь то же имя, что и таблица или класс объектов, с добавлением суффикса _vw.
Если данные были зарегистрированы как версионные в ArcGIS 10 или более ранней версии, вы можете создать версионный вид в ArcGIS for Desktop 10.1 или более поздней версии. Для этого щелкните правой кнопкой мыши таблицу, класс пространственных объектов или набор данных, а затем выберите Создать версионный вид (Create Versioned View). Ту же задачу можно выполнить с помощью средства геообработки Создать версионное представление (Create Versioned View).
Вы можете создать только один версионный вид для версионной таблицы или класса пространственных объектов. Если вы решили использовать средство Создать версионное представление (Create Versioned View) для набора данных, который уже имеет версионный вид, существующий вид будет сброшен, а вместо него создан новый.
Версионные представления не поддерживаются в базах данных DB2 на операционной системе z.