- •Оглавление
- •Введение
- •1.1. Определения и задачи геоинформатики
- •1.2.1. Определение и толкование базовых понятий геоинформатики
- •1.3. Общее представление о ГИС
- •1.4. Основные этапы развития ГИС
- •1.5. География и ГИС
- •2.1. Типы и источники пространственных данных
- •2.2. Проектирование географических баз данных
- •2.2.1. Требования к базе данных
- •2.2.2. Этапы проектирования базы данных
- •2.3. Представление пространственных объектов в БД
- •2.3.1. Выбор модели пространственной информации
- •2.3.2. Особенности представления пространственных объектов в БД
- •2.3.3. Позиционная и семантическая составляющие данных
- •2.4. Системы управления базами данных в ГИС
- •2.4.1. Функции СУБД
- •2.4.2. Задачи и функции СУБД в ГИС
- •2.4.3. Базовые понятия реляционных баз данных
- •2.4.4. Язык реляционных баз данных SQL — функции и основные возможности
- •2.4.5. Объектно-ориентированные и реляционные структуры БД
- •2.4.6. СУБД в архитектуре «клиент-сервер»
- •2.5. Организация и форматы данных
- •2.6. Качество данных и контроль ошибок
- •2.6.1. Типы ошибок в данных и их источники
- •2.6.2. Позиционная точность данных
- •3.1. Требования к техническому и программному обеспечению ГИС
- •3.3. Характеристика технических средств ГИС
- •3.4. Технологии ввода графической информации
- •3.5. Преобразования форматов данных
- •3.7. Общая характеристика программных коммерческих ГИС-пакетов
- •4.1.1. Пространственная привязка данных и преобразование проекций
- •4.1.2. Алгоритмы трансформирования геоизображений
- •4.1.3. Определение координат контрольных точек
- •4.1.4. Оценка ошибок трансформирования
- •4.2. Дискретная географическая привязка данных
- •4.3. Операции с данными в векторном формате
- •4.3.1. Представление пространственных объектов и взаимосвязей
- •4.3.2. Алгоритмы определения пересечения линий
- •4.3.3. Способы вычисления длин линий, периметров и площадей полигонов
- •4.3.4. Алгоритм «точка в полигоне»
- •4.3.5. ГИС-технологии пространственного анализа
- •4.3.6. Операции оверлея полигонов
- •4.4. Хранение и преобразование растровых данных
- •4.4.1. Кодирование и сжатие информации
- •4.4.2. Иерархические структуры данных. Дерево квадрантов
- •4.4.3. Операции с растровыми слоями БД
- •4.4.4. Технологии анализа данных, основанные на ячейках растра
- •4.5. ГИС-технологии совмещения и оценки пригодности данных
- •5.1. Методы пространственного анализа
- •5.1.1. Классификация объектов путем группировки значений их признака
- •5.1.2. Методы интеграции признаков для исследования взаимосвязей и классификации объектов
- •5.1.3. Исследование взаимосвязей объектов с использованием операций оверлея слоев
- •5.1.4. Выбор объектов по пространственным критериям. Построение запросов
- •5.1.5. Анализ сетей
- •5.1.6. Тематическое согласование слоев
- •5.2. Методы пространственного моделирования
- •5.2.2. Подготовка исходных данных для создания модели
- •5.2.3. Интерполяция по дискретно расположенным точкам
- •5.2.4. Построение статистических поверхностей
- •5.2.5. Определение местоположения и оптимального размещения объектов
- •5.2.6. Моделирование пространственных распределений
- •5.2.7. Интерполяция по ареалам
- •5.3. Применение пространственных моделей
- •5.4. Обеспечение принятия пространственных решений
- •5.4.1. Методы обеспечения поддержки принятия решений
- •5.4.2. Понятия нечетких географических объектов и нечетких множеств
- •5.4.3. Экспертные подсистемы ГИС
- •6.1. Разработка ГИС-проекта
- •6.2. Общие вопросы проектирования базы данных ГИС
- •6.3. Учет особенностей моделей данных и функциональных средств ГИС
- •Глава 7. Задачи и методы геоинформационного картографирования
- •7.1. Определения, особенности и задачи геоинформационного картографирования
- •7.2. Основные этапы развития методов и средств автоматизации в картографии
- •7.3. Географические основы ГК
- •7.4. Структура системы геоинформационного картографирования
- •7.5.1. Задачи проектирования картографических БД
- •7.5.2. Качество цифровых карт
- •7.6.1. Электронные и компьютерные карты
- •7.6.2. Графические стандарты
- •7.6.3. Спецификация цвета и цветовые палитры
- •7.6.4. Компоновка электронных и компьютерных карт
- •7.7. Методы геоинформационного картографирования
- •7.7.2. Создание тематических карт на основе методов пространственного моделирования в ГИС
- •7.8. Автоматизированная генерализация тематических карт
- •7.8.1. Семантическая и геометрическая генерализация
- •7.8.2. Элементы генерализации линий
- •7.8.3. Использование теории фракталов
- •7.9. Формализация и алгоритмизация процесса картографирования
- •7.9.1. Картометрические функции
- •7.9.2. Определение положения центральной точки полигона и скелетизация
- •7.9.3. Построение системы картографических знаков и размещение надписей
- •7.10. Новые направления и технологии геоинформационного картографирования
- •7.10.1. Оперативное картографирование и картографические анимации
- •7.10.2. Картография и Интернет
- •Глава 8. Цифровая обработка изображений для создания баз данных ГИС и тематических карт
- •8.1. Применение данных дистанционного зондирования в ГИС и тематическом картографировании
- •8.2. Методы цифровой обработки космических снимков
- •8.3. Методы дешифрирования, основанные на преобразовании спектральных яркостей
- •8.3.1. Спектральное пространство и дешифровочные признаки
- •8.3.2. Синтез изображений и анализ главных компонент
- •8.3.3. Производные дешифровочные признаки
- •8.4. Алгоритмы классификации
- •8.4.1. Правила и типы автоматизированной классификации
- •8.4.2. Алгоритмы контролируемой классификации
- •8.4.3. Алгоритмы неконтролируемой классификации
- •8.4.4. Оценка результатов классификации
- •8.5. Алгоритмы выполнения географического анализа по космическим снимкам
- •8.5.1. Изучение динамики явлений (объектов) по картам и снимкам
- •8.5.2. Изучение географических объектов с использованием методов нечеткой и экспертной классификации
- •Литература
- •Учебники и учебные пособия
- •Монографии
- •Справочники и руководства
- •Предметный указатель
2.4. Системы управления базами данных в ГИС |
6 1 |
Реляционные СУБД обладают рядом особенностей, влияющих на организацию внешней памяти. К наиболее важным можно отнести следующие:
•наличие двух уровней системы: уровня непосредственного управления данными во внешней памяти и языкового уровня (например, уровня, реализующего язык SQL); тогда подсистема нижнего уровня должна поддерживать во внешней памяти набор базовых структур, конкретная интерпретация которых входит в число функций подсистемы верхнего уровня;
•информация, связанная с именованием объектов базы данных и их конкретными свойствами (например, структура ключаиндекса), поддерживается подсистемой языкового уровня;
•регулярность структур данных во внешней памяти, поскольку основным объектом реляционной модели данных является плоская таблица;
•для операций языкового уровня над одним или несколькими отношениями во внешней памяти поддерживаются дополнительные «управляющие» структуры — индексы;
•для выполнения требования надежного хранения баз данных поддерживается избыточность хранения данных во внешней памяти.
Внутренняя архитектура различна в разных реляционных СУБД, но все они основаны на общих логических принципах функционирования.
2.4.3. Базовые понятия реляционных баз данных
Логически в реляционной СУБД можно выделить:
•внутреннюю часть — ядро СУБД (часто его называют Data Base Engine);
•компилятор языка БД (обычно SQL);
•подсистему поддержки времени выполнения;
•набор утилит.
В некоторых системах эти части выделяются явно, в других — нет, но логически такое разделение можно провести во всех СУБД.
Ядро СУБД отвечает за управление данными во внешней памяти, буферами оперативной памяти, транзакциями, а также за ведение
62 Глава 2. Представление и организация географической информации
журнала. Компоненты ядра — это соответственно менеджер данных, менеджер буферов, менеджер транзакций и менеджер журнала. Для обеспечения корректной работы СУБД все эти компоненты должны взаимодействовать по тщательно организованным протоколам. Ядро СУБД является основной резидентной частью СУБД, а в архитектуре «клиент-сервер» — основной составляющей серверной части системы.
Главной функцией компилятора языка БД является перевод (компиляция) операторов языка БД в некоторую выполняемую программу, представляемую в некоторых системах в машинных кодах, но более часто во внутреннем машинно-независимом коде.
В отдельные утилиты СУБД обычно выделяют такие процедуры, которые слишком накладно выполнять с использованием языка Б Д например, загрузка и выгрузка БД, сбор статистики, глобальная проверка целостности БД и т. д. Утилиты программируются с использованием интерфейса ядра СУБД.
Реляционные СУБД основаны на математических принципах, называемых реляционной алгеброй или алгеброй отношений, устанавливающих правила проектирования и функционирования таких систем. Реляционная алгебра основывается на теории множеств, вследствие чего каждая таблица функционирует как множество, поэтому, например, в ней не может быть двух одинаковых строк.
Основными понятиями реляционных баз данных являются: тип данных, отношение, кортеж, атрибут, домен, первичный ключ, внешний ключ, нормализация. Такой терминологии придерживаются в большинстве коммерческих реляционных СУБД.
Понятие тип данных полностью адекватно понятию типа данных в языках программирования. Обычно в реляционных БД допускается хранение символьных, числовых данных, битовых строк, специализированных числовых данных (таких как «деньги»), а также специальных данных — дата, время, временной интервал. Развивается подход к расширению возможностей реляционных систем абстрактными типами данных.
Отношение — это таблица, образуемая упорядоченными записями каждого типа, заголовком которой является наименование отношения. Записи образуют строки, или кортежи; каждая запись имеет набор атрибутов, а имена атрибутов именуют столбцы таблицы. Поэтому иногда говорят «столбец таблицы», имея в виду
2.4. Системы управления базами данных в ГИС |
63 |
«атрибут отношения». Число атрибутов в таблице характеризует связь между записями — степень отношения.
Понятие домен имеет некоторые аналогии с подтипами в некоторых языках программирования. В самом общем виде домен определяется заданием некоторого базового типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементу типа данных. Если вычисление этого логического выражения дает результат «истина», то элемент данных является элементом домена. Наиболее правильное интуитивное понимание домена — допустимое множество значений данного типа; оно определяется для каждого атрибута. Данные считаются сравнимыми только в том случае, когда они относятся к одному домену. Если все атрибуты одного отношения определены на разных доменах, целесообразно использовать для именования атрибутов имена соответствующих доменов.
Ключ отношения — это подмножество атрибутов, имеющее следующие свойства:
•уникальность идентификации;
•уникальность значения ключа для каждого кортежа; невозможность удаления ни одного из атрибутов ключа без нарушения его уникальности;
•выполнение функции обеспечения неизбыточности и целостности БД.
Например, уникальным ключом в телефонном справочнике может быть номер телефона; если атрибуты ключа — фамилия, имя, адрес, то при пропуске в записи адреса ключ теряет уникальность.
Для реляционной модели данных требование ее целостности определяется целостностью объектов и целостностью по ссылкам. Объекту реального мира в реляционных БД соответствуют записи (строки) отношений, и требование целостности состоит в сохранении отличий разных записей этого отношения. Поскольку строки уникальны, то один из столбцов может использоваться для определения критерия поиска (формирования запроса). Такой критерий поиска (столбец) называется первичным ключом для поиска значений в других столбцах БД. Поэтому любое отношение должно обладать первичным ключом, иначе невозможно однозначно идентифицировать объекты.
64 Глава 2. Представление и организация географической информации
Сложные объекты реального мира представляются в реляционной БД в виде нескольких записей нескольких отношений. Для связи отношений используется атрибут, который служит внешним ключом. Отношение, в котором определен внешний ключ, ссылается на соответствующее отношение, в котором такой же атрибут является первичным ключом. Иначе, таблицы атрибутов объектов, в которых есть одинаковые столбцы атрибутов (говорят общий столбец), могут быть связаны (соединены) в одну таблицу. Требование целостности по ссылкам состоит в том, что для каждого значения внешнего ключа должна найтись запись с таким же значением первичного ключа в отношении, на которое ведет ссылка, либо значение внешнего ключа должно быть неопределенным.
Выполнение таких требований чрезвычайно важно при модификации отношений или удалении записей. Поддержке целостности при удалении кортежа служат: запрет на удаление кортежа, на который существуют ссылки; автоматическая замена значения внешнего ключа на неопределенное во всех ссылающихся кортежах; автоматическое удаление всех ссылающихся кортежей.
Нормализация отношений — основной прием, используемый при создании реляционной модели данных, связанный с поиском наиболее простой структуры для данного множества данных и имеющий дело с зависимостью между атрибутами. Она используется для уменьшения избыточности данных, возникающей при введении одинаковых полей атрибутов для установления реляционных соединений, и позволяет избежать потери общей информации при удалении или вводе записей. Нормализация — это набор правил, по которым определяется вид таблиц. В процессе нормализации выделяются первичные ключи (или наборы ключей) и зависящие от них атрибуты (рис. 2.1).
Полигон |
Дуги |
Полигон |
Дуги |
1 |
1 |
1 |
1,2,3 |
1 |
2 |
2 |
3,4 |
1 |
3 |
|
|
2 |
4 |
|
|
2 |
3 |
|
|
а б Рис. 2.1. Нормализация: первое отношение (а) не нормализовано,
второе (б) — нормализовано
2.4. Системы управления базами данных в ГИС |
65 |
Существует несколько форм нормализации (более пяти). Первая из них (1NF) связана с требованием, согласно которому
для каждой записи значение атрибута в столбце может быть только одно, чтобы не привести к неоднозначности ответа на запрос по этому атрибуту.
Вторая форма (2NF) требует, чтобы каждый столбец таблицы атрибутов, не являющийся первичным ключом, зависел от него. Это упрощает таблицу и уменьшает избыточность данных, поскольку для поиска заданной записи (объекта) не нужно дублировать другие наборы атрибутов в разных таблицах, а можно использовать их реляционное соединение.
Третья форма (3NF) связана со второй, но не требует зависимости первичного ключа от непервичных, поэтому не нужно использовать другие столбцы для поиска значений в столбце первичного ключа, тем самым уменьшая число столбцов.
В результате нормализации создается логичная непротиворечивая структура, однако возрастает объем хранимой информации, по этой причине некоторые администраторы баз данных ГИС избегают полной формализации.
Поиск объектов осуществляется по одному, а чаще совокупности атрибутов. Для быстрого и оптимального поиска строится так называемый внешний индекс. Для его построения копируются в отдельный файл значения одного атрибута для всех записей вместе с положением этих записей в исходном файле. Затем записи в новом файле упорядочиваются в соответствии со значением атрибута. Тем самым, найдя нужные записи в индексном файле, мы находим записи
висходном, а сам исходный файл становится индексированным. Следует подчеркнуть, что как бы ни были организованы индексы
вконкретной СУБД, их основное назначение состоит в обеспечении эффективного прямого доступа к кортежу отношения по ключу. Обычно индекс определяется для одного отношения, и ключом является значение атрибута (возможно, составного). Организация индексов в больших БД представляет сложную проблему. Все более популярным подходом к организации индексов является использование техники хэширования. Общей идеей методов хэширования является применение к значению ключа некоторой функции свертки (хэш-функции), вырабатывающей значение меньшего размера. Свертка значения ключа затем используется для доступа к записи.