Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОСОБИЕ_ГИСУЛ_2012.doc
Скачиваний:
41
Добавлен:
18.08.2019
Размер:
6.96 Mб
Скачать

3.2.2 Запросы к атрибутивным данным

Поиск информации в таблицах атрибутивных баз данных может осуществляться как вручную (с просмотром всех строк-записей), так и с помощью множественной обработки данных - запросов1. Множественная обработка данных позволяет одновременно вводить, редактировать, выбирать и удалять множество записей из таблиц.

Теоретической основой операций с таблицами в реляционных СУБД являются реляционная алгебра и реляционное исчисление. Оба указанных языка эквивалентны – сформулированные на одном из них запросы могут быть преобразованы в другой2. По сравнению с традиционными языками программирования языки реляционной алгебры и реляционного исчисления относительно просты в изучении и использовании. В реляционной алгебре операндами3 и результатами всех действий являются отношения (таблицы), операциями – набор операций над отношениями (операции объединения, разности, пересечения, выборки и др. ). Основные (базовые) операции реляционной алгебры продемонстрированы на рис.

Рисунок 1. Базовые операции реляционной алгебры (БД)

Примеры основных запросов реляционной алгебры показаны для исходных таблиц-отношений, характеризующих свойства лесосечного фонда (рис. )

Операции реляционной алгебры разделяются на операции с одним отношением (выборка, проекция), операции с двумя отношениями (объединение, разность, пересечение, произведение, деление, соединение). Для ряда операций с двумя отношениями необходимо соблюдение требования совместимости по структуре1 (объединение, разность, пересечение).

а

б

в

г

д

е

таблица 2

Тип леса

вид рубки

ЧС

сплошная

ЧС

проходная

ВР

сплошная

ВР

обновления

БР

выборочная

ЧС

обновления

БР

выборочная

Рисунок 1. Операции реляционной алгебры: а – объединение, б – разность, в – пересечение г – произведение, д – выборка, е – проекция, ж – деление, з - соединение

Объединением двух совместимых отношений R1 и R2 одинаковой размерности (R1 UNION1 R2) является отношение R, содержащее все элементы исходных отношений (с исключением повторений) – рис. а.

Разность (вычитание) совместимых отношений R1 и R2 одинаковой размерности (R1 MINUS R2) есть отношение, тело которого состоит из множества кортежей, принадлежащих R1, но не принадлежащих R2 – рис. б.

Пересечение двух совместимых отношений R1 и R2 одинаковой размерности (R1 INTERSECT R2) порождает отношение R, с телом, включающим в себя кортежи, одновременно принадлежащие обоим исходным отношениям – рис. в.

Произведение отношения R1 степени k1 и отношения R2 степени k2 (R1 TIMES R2), которые не имеют одинаковых имен атрибутов, есть такое отношение R степени (k1+k2), заголовок которого включает заголовки отношений R1 и R2, одинаковой размерности (R1 UNION R2) является отношение R, содержащее все элементы исходных отношений (с исключением повторений) – рис. г.

Выборка (R WHERE f) отношения R по формуле f – новое отношение с заголовком отношения R и кортежами, удовлетворяющими истинности логического выражения, заданного формулой f (рис. д). Для записи формул в выборках используются имена атрибутов, константы, логические операции (И, ИЛИ, НЕ), операции сравнения, скобки.

Проекция отношения A на атрибуты X, Y,…, Z (A[X, Y,…, Z]), где множество {X, Y,…, Z} является подмножеством полного списка атрибутов заголовка отношения A представляет собой отношение с заголовком X, Y,…, Z и телом, содержащим кортежи отношения A (за исключением повторений) – рис.е.

Результат деления отношения R1 с атрибутами A и B на отношение R2 с атрибутом B (R1 DIVIDE BY R2), где A и B – атрибуты, а атрибут B общий, определяемый на одном домене – новое отношение R с заголовком A и телом, состоящим из кортежей r таких, что в отношении R1 имеются кортежи (r, s), причем множество значений s включает множество значений атрибута B отношения R2 – рис .ж.

Соединение отношений R1 и R2 по условию, заданному формулой f, представляет собой отношение R, которое можно получить путем произведения отношений R1 и R2 с последующей выборкой по условию f – рис .з.

Кроме перечисленных операций реляционной алгебры известны другие (…), а также их комбинации, например последовательные операции выборки и проекции.

В языках реляционного исчисления, в отличие от реляционной алгебры, запросы содержат только желаемый результат, а не процедуры, необходимые для его выполнения1. Применяются два основных языка - язык структурированных запросов SQL (Structured query language) и язык запросов по образцу QBE (Query by example), эквивалентных друг другу по возможностям манипулирования данными. Язык SQL реализуется в форме выражений из команд и условий (с использованием элементов программирования), язык QBE связан с ручным или визуальным формированием запросов.

Язык SQL отчасти основан на формальном языке запросов – реляционной алгебре, его отличают простота использования, интуитивность и универсальный характер. Операторы языка SQL подразделяются на две подгруппы – операции с таблицами (создание, удаление, изменение структуры таблиц, создание индексов) и операции с данными (выборка, изменение, вставка, удаление записей…). Важнейшими операторами языка SQL являются операторы выбора (SELECT), сортировки (ORDER BY), группировки (GROUP BY) и соединения таблиц по общему столбцу (JOIN). Они могут быть доступны в СУБД как в форме запросов (SQL), так и в форме различных мастеров или конструкторов (QBE). Основная синтаксическая конструкция запроса на языке SQL1:

SELECT имена столбцов

FROM отношения

WHERE ограничения-на-кортежи

В описание оператора SELECT требуется включать список полей и операнд FROM. Остальные операнды не обязательны. В операнде FROM перечисляются имена таблиц, из которых отбираются записи. Примеры записи запроса на выбор выделов с возрастом преобладающей породы (поле ТАКСАЦИЯ.ВОЗРАСТ ) более 100 лет из таблицы ТАКСАЦИЯ приведены на рис. Результатом выполнения оператора SELECT является набор кортежей (строк исходной таблицы). Операции выборки могут выполняться безусловно (выбор всех записей), или в соответствии с поставленными условиями. Условия отбора (внутри WHERE) представляют собой комбинацию атрибутов, значений атрибутов, логических операторов, операторов сравнения. Запросы на языках реляционного исчисления позволяют извлекать необходимую информацию из атрибутивных таблиц как в среде ГИС (WinGIS, MapInfo, ArcView), так и в среде СУБД (FoxPro for Windows, MS Access).

Эквивалентность языков реляционной алгебры и реляционного исчисления (SQL-запросы для примеров реляционной алгебры).

А.

Б.

SELECT ТАКСАЦИЯ.*

FROM ТАКСАЦИЯ

WHERE (ТАКСАЦИЯ.ВОЗРАСТ)>100

В.

Г.

Рис. Примеры записи запроса к атрибутивной таблице: а – режим конструктора (QBE-запрос) в MS Access, б – режим SQL-запроса в MS Access, в - диалоговое окно SQL-запрос в ГИС MapInfo, диалоговое окно конструктора запросов в ГИС ArcView 3.2

Синтаксис SQL-диалектов в разных программах и версиях может отличаться, но основные принципы построения запросов однородны. Результатами выполнения запросов к атрибутивным данным в СУБД и ГИС являются новые отношения (таблицы). С помощью запросов также могут рассчитываться новые значения. Для расчетов новых значений могут использоваться как существующие в исходных таблицах данные, так и новые, получаемые при вводе и обработке данных. Для вычисления новых значений в столбцах атрибутивных таблиц могут использоваться специальные инструменты (Конструктор запросов в ГИС ArcView 3.2, Построитель выражений в СУБД MS Access 2003).

В таблице приводятся основные составляющие условий SQL-запросов для отдельных программ СУБД и ГИС.

Таблица 3. Составляющие SQL-запросов отдельных приложений СУБД и ГИС

Составляющие SQL-запросов

СУБД MS Access 2003

ГИС MapInfo 7.8

ГИС WinGIS 2003

ГИС ArcView 3.2

Диалоговые окна для выборок

Фильтр (в т.ч. фильтр по выделенному значению, введенному значению, расширенный фильтр)

Диалоги “Выбрать”, меню ”Запрос”

Фильтр

Калькулятор Поля, Конструктор запросов

Диалоговые окна для запросов

Мастер запросов (режимы конструктор, SQL-режим)

SQL-запрос

Query builder (Conditions, SQL)

Конструктор запросов

Компоненты условий в запросах

Символы замены символьных данных

“?”(“*”)

“_”(“%”)

“_”(“%”)

“?”(“*”)

Арифметические операторы

+

+

+

+

Логические операторы

Операторы сравнения

+

+

+

+

Обращение к нескольким таблицам

Возможно

возможно

нет

нет

Вычисления в запросах

+

+

нет

+

Функции

Массивы, преобразование, база данных, Дата/время, по подмножеству, Обработка ошибок, финансовые, общие, проверка, математические, сообщения, управления, статистические, текстовые

Математические функции

Функции даты и времени

Строковые функции

Географические функции

Объектные функции

Группировка данных

+

+

+

Нет

Сортировка данных

+

+

+

+

Типы атрибутивных данных в СУБД и ГИС в целом одинаковы, но могут и отличаться, что важно учитывать при операциях импорта-экспорта (табл. ).

Table 2. Типы данных в атрибутивных таблицах ГИС и СУБД

Тип данных

СУБД MS Access 2000

ГИС MapInfo 6.0

ГИС WinGIS 2003

ГИС ArcView 3.2

Текстовый (символьный)

+1

+

+

+

Числовой2

+

+

+

+

Дата/время

+

+

+

+

Денежный

+

-

+

-

Счетчик

+

-

-

-

Логический

+

+

+

+

Поле объекта OLE

+

-

-

-

Гиперссылка

+

-

-

-

Мастер подстановок

+

-

-

-

Создание атрибутивных баз данных может выполняться непосредственно в самих внутренних базах данных ГИС, путем ввода, либо экспортом из форматов электронных таблиц или СУБД (форматы *.xls, *.dbf, *.mdb, *.wk1-wk3, *.txt, *.tab и пр.).

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

В состав атрибутивных баз данных лесного фонда, создаваемых при лесоустройстве, включаются следующие элементы:

- таксационные характеристики выделов, кварталов, получаемые в результате проведения полевых и камеральных работ,

- дополнительные сведения, значимые для конкретного объекта (геоботанические описания, характеристики почв, перечет деревьев, характеристики повреждений и т.д.),

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

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

Контрольные вопросы к главе 3.1:

  1. Функции ГИС, востребованные в лесном хозяйстве и лесоустройстве РФ.

  2. Атрибутивные данные лесоустройства

  3. Реляционные СУБД – преимущества и недостатки, основные понятия, элементы реляционных баз данных.

  4. Типы связей в СУБД.

  5. Базовые операции реляционной алгебры.

  6. Языки реляционного исчисления. Основные особенности языков запросов QBE, SQL.

  7. Синтаксис оператора SELECT при использовании SQL-запросов.

  8. Составляющие SQL-запросов в СУБД и ГИС

  9. Типы данных в атрибутивных таблицах ГИС и СУБД.

  10. Состав атрибутивных баз данных лесного фонда.