Организация запросов

Запрос – задание на поиск данных в базе данных, удовлетворяющих некоторым условиям. Запрос формулируется посредством языка общения пользователя с СУБД – языка запросов, запрос по шаблону или иным способом.

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

Наиболее распространенными языками запросов для реляционных СУБД в настоящее время являются язык SQL (Structure Query Language) и QBE (Query by Example).

SQL – язык структурированных запросов; язык доступа к базам данных, одно из наиболее распространенных средств разработки реляционных БД и обслуживания систем типа «клиент-сервер». В США принят в качестве национального стандарта.

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

Условия отбора, сформулированные в запросе, позволяют отбирать (фильтровать) записи в результирующую таблицу.

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

С помощью запроса можно выполнить следующие виды обработки данных:

- выбрать объекты (записи), удовлетворяющие условиям отбора;

- включить в результирующую таблицу запроса новые поля;

- выполнить вычисления в каждой из отобранных записей;

- произвести обновление полей в отобранных записях;

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

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

Значительная часть работы пользователя с ГИС связана с поиском или выбором необходимой информации. Для этой цели используются запросы.

Все варианты запросов можно разделить на несколько групп:

- запрос на выборку;

- запрос на создание новой таблицы;

- запрос на обновление, добавление, удаление.

В некоторых ГИС для построения запросов используется вариант составления запросов по образцу.

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

Литералы – конкретные значения, воспринимаемые системой так, как они записаны. В качестве литералов обычно используются текстовые строки, даты и числа. Текстовые строки обычно заключаются в некоторые ограничители, например кавычки.

Константы – неизменяемые значения, которые определены в системе, например, True, False, Null и др.

Идентификатор – ссылка на значение поля.

Перечень операторов сравнения и логических операторов обычно включает: =, <, >, <>, <=, >=, And, Or, Not, Like, In, Between.

В некоторых случаях в качестве операндов могут выступать сложные выражения, построенные с использованием арифметических (+,-,*,/), тригонометрических, статистических, финансовых, морфометрических и иных функций.

Особенностью запросов в некоторых ГИС является возможное задание наряду с условиями на атрибутивные характеристики также и пространственных условий. Эти условия записываются с помощью пространственных операторов. Перечень пространственных операторов в разных ГИС (и даже в одной ГИС при использовании разных СУБД) различен. Обычно он включает следующий набор операторов:

- Касаются – возвращает объекты, которые касаются определенных объектов произвольным способом – встык, перекрываются, содержат и/или содержатся в определенных объектах;

- На расстоянии – возвращает объекты, какая-либо часть которых будет находиться в пределах указанного расстояния относительно определенных объектов. Например, если начальная или конечная точка линейного объекта попадает в пределы заданного расстояния относительно определенных объектов, линейный объект будет выбран;

- Содержат – возвращает объекты, которые содержат определенные объекты. Возвращаемые объекты могут касаться, но не перекрывать границы определенных объектов. Точки не могут содержать другие элементы;

- Содержатся в – возвращает объекты, которые полностью находятся в пределах определенных объектов. Возвращаемые объекты могут касаться, но не перекрывать границы определенных объектов;

- Полностью содержат – возвращает объекты, которые содержат определенные объекты. Возвращаемые объекты не могут касаться или перекрывать границы определенных объектов. Точки не могут содержать другие элементы;

- Полностью содержатся в – возвращает объекты, которые полностью находятся в пределах определенных объектов. Возвращаемые объекты не могут касаться или перекрывать границы определенных объектов;

- Перекрывают – возвращает объекты, которые перекрывают определенные объекты;

- Граничат с – возвращает объекты, которые граничат с определенными объектами, касаясь, но не перекрывая их;

- Пространственно равны – возвращает объекты того же типа имеющие ту же форму и занимающие то же положение, что и определенные.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: