Существует четыре типа видов, которые могут использоваться в многопользовательской базе геоданных:
Виды базы данных
Виды базы данных представляют собой сохраненные запросы, которые отбирают данные из указанных неверсионных, непространственных таблиц. Вы можете определить виды для таблиц базы данных или многопользовательской базы геоданных. При использовании многопользовательской базы геоданных виды базы данных могут быть определены для одной неверсионной таблицы или между двумя неверсионными таблицами. Кроме того, существует возможность создания более сложных видов, которые содержат подзапросы.
Виды, которые используются ArcGIS, могут содержать только один пространственный столбец. Если пространственный столбец есть, то эти виды можно использовать как пространственные. Обратите внимание, что при создании пространственного вида вы должны включить столбец ObjectID из той же таблицы, что и пространственный столбец. Если ObjectID из класса объектов не включен, то уникальная связь между строкой ID или столбцом ObjectID и определяющим столбцом может быть нарушена, что приведет к ошибочным результатам при запросе или отображении данных в ArcGIS.
Виды базы данных нельзя редактировать через клиенты или сервисы ArcGIS.
Ниже приведены некоторые причины, почему следует использовать виды баз данных:
- Виды могут предоставлять поднаборы строк или столбцов предварительно определенным способом. Это снижает объем данных, передаваемый от базы данных клиенту, что может повысить производительность.
- Виды позволяют закодировать распространенные запросы в базе данных и сделать их доступными нескольким пользователям. Это снижает потребность пользователей в создании собственных сложных запросов.
- Виды могут объединять данные из различных бизнес-таблиц или других видов.
- Можно использовать функции агрегирования для сведения данных в видах. Это также снижает объем данных, передаваемый от базы данных клиенту, что может повысить производительность.
- Можно предоставлять пользователям право доступа select к видам точно так же, как и к таблицам. Поэтому можно использовать виды для управления доступом к столбцам или строкам в бизнес-таблицах.
- Вы можете объединить класс объектов и непространственную таблицу при определении пространственного вида, используя таким образом столбцы обоих источников.
- ArcGIS может работать только с таблицами, которые содержат один пространственный столбец. Для работы с пространственными таблицами, которые содержат несколько пространственных столбцов, можно создавать пространственные виды, которые будут содержать только один пространственный столбец из заданной таблицы.
- ArcGIS может работать только с таблицами, которые используют одну пространственную привязку. Если ваша таблица содержит несколько привязок, можно создать вид только с теми записями, которые используют ту же пространственную привязку.
Можно использовать инструмент Создать вид базы данных или контекстное меню базы данных в ArcGIS Desktop для создания вида базы данных, или использовать собственный SQL вашей системы управления базой данных (СУБД).
Для того чтобы пользователь мог создать вид, ему требуются определенные права доступа, например, разрешение на использование функции create view в базах данных Oracle или SQL Server. В некоторых системах управления базами данных пользователь, создающий вид класса объектов или таблицы, владельцем которых он не является, не может предоставить другим пользователям права использовать вид до тех пор, пока владелец этих таблиц не даст ему разрешения предоставлять права доступа другим пользователям.
На что следует обратить внимание при работе с видами базы данных:
- Виды существуют как объекты в базе данных и не зарегистрированы с базой геоданных, даже если вы определите их в таблицах базы геоданных с помощью Создать вид базы данных.
- Изменения, внесенные в схему базовой таблицы или таблиц, не отражаются в виде. Чтобы включить дополнительные столбцы в виде, необходимо повторно определить вид для включения этих столбцов.
- Вы не можете редактировать данные через вид баз данных в ArcGIS Desktop или в сервисе объектов ArcGIS.
- При создании вида таблицы или класса объектов версионной базы геоданных, данные можно будет увидеть только в базовой таблице, но не изменения в дельта-таблицах. Чтобы посмотреть правки через клиентов ArcGIS, необходимо согласовать и отправить правки в версию Default и выполнить сжатие базы геоданных. Если вы хотите просмотреть правки через другие клиенты SQL, либо пользовательские клиенты, используйте версионный вид, который создается автоматически при регистрации таблицы или класса объектов базы геоданных в качестве версионной.
- При добавлении пространственного столбца в определение вида необходимо, чтобы его тип данных был SQL geometry, а класс объектов, из которого получен пространственный столбец, не может быть зарегистрирован как версионный, поэтому необходимо также добавить ObjectID класса объектов, который содержит пространственный столбец в определении вида.
Виды, зарегистрированные с базой геоданных
Если база данных содержит базу геоданных, можно использовать инструмент Создать вид базы данных или SQL для создания вида и его регистрации с базой геоданных с помощью инструмента геообработки Зарегистрировать с базой геоданных.
Вот несколько причин, по которым стоит зарегистрировать вид с базой геоданных:
- При регистрации вида с базой геоданных информация о виде хранится в системных таблицах базы геоданных. Это особенно ценно, когда вы регистрируете пространственный вид с базой геоданных, так как вы определяете тип геометрии, пространственную привязку и экстент при этом, то результат повысит производительность при добавлении пространственного вида на карту.
- Можно заполнить метаданные для видов, которые зарегистрированы с базой геоданных.
- Можно опубликовать зарегистрированный вид в сервис объектов, который поддерживает только запросы.
Можно включить один пространственный столбец в создаваемый вид, если класс объектов использует тип геометрии SQL и если класс объектов не зарегистрирован как версионный. Для создания пространственного вида, включите пространственный столбец и ObjectID класса объектов в определение вида, а затем зарегистрируйте его.
Виды, зарегистрированные с базой геоданных, нельзя отредактировать с помощью клиентов ArcGIS или сервисов.
Версионные виды
Версионные виды включают в себя виды базы данных, сохраненные процедуры, триггеры и функции, необходимые для получения доступа или возможности редактирования определенной версии таблицы или класса объектов в базе геоданных, использующей SQL.
Основания для использования версионных видов включают следующие:
- Версионные виды позволяют вам увидеть изменения, в текущий момент сохраненные в дельта-таблицах таблиц.
- Версионные виды позволяют редактировать версионные таблицы и классы объектов с помощью SQL или сторонних приложений.
Версионные виды автоматически создаются для таблиц и классов объектов, регистрируемых как версионные. Таблицы или классы объектов, зарегистрированные как версионные в базах геоданных в ArcGIS до версии 10.1 автоматически также имеют связанный версионный вид. Если у вас есть такие версионные данные и для них нужно версионный вид, можно создать его, щелкнув правой кнопкой на версионной таблице класса объектов или наборе классов в ArcMap Дереве каталога, перейдя к Управление и затем Включить доступ SQL.
Версионные виды могут работать только с отдельными версионными таблицами или классами объектов, они работают с таблицами целиком. Недопустимо использования выражения where для объединения нескольких таблиц или ввода ограничений на то, какие строки или столбцы будут включены в версионный вид.
Основная цель использования версионных видов заключается в редактировании версионных данных при помощи SQL. Вы не должны изменять основную таблицу или класс объектов при помощи версионного вида и клиентского приложения ArcGIS. Таблица или класс объектов, на которых основан версионный вид, должны соответствовать требованиям ArcGIS для редактирования базы геоданных с помощью SQL.
Архивные виды
Архивный вид – это вид базы данных, определенный для неверсионных баз, с включенным архивированием таблицы или класса объектов. Архивные виды также включают триггеры, которые поддерживают архивные таблицы современными, когда редактирование осуществляется через архивный вид. Архивный вид создается, когда вы включаете архивирование набора данных или SQL-доступ к неверсионным наборам данных с включенным архивированием.
Основания для использования архивных видов включают следующие:
- Архивные виды позволяют вам увидеть данные в исторической таблице таблицы с включенным архивированием.
- Архивные виды позволяют вам использовать SQL для редактирования таблиц и классов объектов с включенным архивированием.
Архивные виды могут работать только с отдельными версионными таблицами или классами объектов, они работают с таблицами целиком. Недопустимо использования выражения where для объединения нескольких таблиц или ввода ограничений на то, какие строки или столбцы будут включены в архивный вид.