В гл. 30 «Выборки» было рассмотрено создание каталогизированных выборок – пользовательских представлений, основанных на таблицах, хранящихся в составе ГБД. Аналогичным образом, ГИС ObjectLand предоставляет возможность построения выборок ВБД – пользовательских представлений, основанных на таблицах ВБД.
Назначение выборок ВБД такое же, как и выборок из внутренних таблиц ГБД: они позволяют отобрать нужную информацию из таблиц и отобразить ее наиболее удобным образом. Однако формирование набора записей и их полей при отображении выборки выполняется совершенно различным образом. Для выборки, построенной на основе внутренних таблиц ГБД, система ObjectLand собственными средствами выполняет поиск в таблицах и сортировку нужных записей, выбирает отображаемые поля и т.п. Для выборки ВБД формирование набора записей выполняется вне ObjectLand, при помощи программ, управляющих источником данных. При этом в задачи самой системы ObjectLand входит формирование текста SQL-оператора SELECT, содержащего запрос к источнику данных, посылка запроса, получение результирующего набора записей и его отображение.
ObjectLand поддерживает создание выборок ВБД двух типов:
выборки, построенные конструктивным путем;
выборки на основе непосредственного задания оператора SELECT.
Выборки ВБД, построенные конструктивным путем создаются пользователем с помощью тех же средств, что и внутренние выборки ГБД, и обладают аналогичными свойствами. Конструктивное построение выборки позволяет следующее:
Установить критерий поиска записей в таблицах ВБД, на основе которых построена выборка, с помощью задания списка элементарных критериев.
Задать способ соединения таблиц ВБД в выборке.
Определить вычисляемые поля.
Установить таблицы-справочники для полей выборки.
Установить критерий сортировки записей в выборке.
Каждое из перечисленных действий пользователя вызывает изменение текста оператора SELECT и посылку нового запроса с этим оператором к источнику данных. При этом сам оператор SELECT остается «прозрачным», т.е. невидимым для пользователя.
Редактируемость выборок ВБД, построенных конструктивным путем, определяется в ГИС ObjectLand следующими правилами:
Если выборка построена путем соединения таблиц ВБД, выборка доступна только для чтения.
Если для выборки заданы вычисляемые поля, выборка доступна только для чтения.
Если для выборки установлен запрет дублирования записей, выборка доступна только для чтения.
Во всех остальных случаях возможность редактирования выборки соответствует возможности редактирования таблицы ВБД, на основе которой построена выборка.
Выборки, построенные на основе оператора SELECT, создаются пользователем путем непосредственного задания оператора SELECT на языке SQL. Правила формирования SQL-оператора SELECT, а также возможности, предоставляемые оператором, целиком определяются синтаксисом и семантикой диалекта языка SQL, используемого в СУБД, на основе которой построен источник данных.
Для полей выборок, построенных на основе SQL-оператора SELECT, ГИС ObjectLand позволяет устанавливать таблицы-справочники.
Выборки, построенные на основе SQL-оператора SELECT, доступны только для чтения.
Подобно выборкам из внутренних таблиц ГБД, выборки ВБД также могут быть каталогизированы в ГБД – владельце ВБД под уникальными именами. Необходимо помнить, что в ГБД сохраняется только описание выборки, обеспечивающее доступ к записям таблиц ВБД при открытии выборки.
Если ВБД не сохранена, каталогизированные выборки сохраняются в ГБД только в течение сеанса работы с ГБД.