Системы управления базами данных,
применяемые в ГИС
Важной составной частью ГИС являются базы данных (БД), в которых содержится тематическая информация.
С появлением баз данных проблемы, связанные с зависимостью данных от программ и дублированием информации были сняты. БД можно определить как совокупность взаимосвязанных хранящихся вместе данных при наличии такой минимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений; данные запоминаются так, чтобы они были независимы от программ, использующих эти данные; для добавления новых или модификации существующих данных, а также для поиска данных в БД применяется общий управляемый способ. Данные структурируются таким образом, чтобы была обеспечена возможность дальнейшего наращивания приложений.
Системы управления базами данных
Системы управления базами данных предназначены для манипулирования текстовыми, графическими и числовыми данными с помощью ресурсов ЭВМ. Они выполняют функции формирования наборов данных (файлов), поиска, сортировки и корректировки данных перечисленных типов.
Программное обеспечение СУБД должно отвечать достаточно сложным требованиям, предъявляемым к нему выполняющимися прикладными программами. Основные принципы построения СУБД основаны на том, что для работы с текстовыми, числовыми и графическими данными достаточно реализовать ограниченное число часто используемых функций и определить последовательность их выполнения.
Обычно различают три типа моделей данных, используемых в СУБД: иерархические, сетевые и реляционные (табличные). Однако появляются СУБД, которые используют гибридные модели данных.
Иерархические
модели получили широкое распространение в начале
60-х годов. Входящие в состав такой модели записи образуют древовидную структуру
- каждая из них связана с одной записью, находящейся на более высоком уровне
иерархии. Доступ к любой из записей осуществляется путем прохода по строго
определенной цепочке узлов дерева с последующим просмотром соответствующих этим
узлам записей.
Для достаточно простых задач иерархическая система эффективна, но она практически непригодна для использования в сложных системах с оперативной обработкой запросов и распределенной архитектурой. Иерархическая организация трудно модифицируема и поэтому не может обеспечить быстродействие, необходимое для работы в условиях одновременного модифицирования файлов несколькими прикладными системами.
Сетевые модели были призваны устранить некоторые из недостатков иерархических моделей. Первые из них были разработаны в конце 60-х годов. Затем сетевая модель была принята в качестве основной модели данных Ассоциацией по языкам систем обработки данных и стала стандартом СУБД в середине 70-х. В сетевой модели каждый из узлов может иметь не один, а несколько узлов - родителей. Записи, входящие в состав сетевой структуры, содержат в себе указатели, определяющие местоположение других записей, связанных с ними.
Такая модель позволила ускорить доступ к данным, но одна важная задача осталась нерешенной - изменение структуры базы данных по-прежнему требовало значительных усилий и времени. Операции модификации и удаления данных требовали перестановки указателей, а манипулирование данными осталось ориентированным на записи и описывалось языком процедурного типа.
Для поиска отдельной записи в иерархической или сетевой структуре программист должен вначале определить путь доступа, а затем просмотреть все записи, лежащие на этом пути. На каждом шагу приходится определять индивидуальные управляющие команды и условия, с помощью которых обрабатываются исключительные ситуации.
Реляционные СУБД
СУБД реляционного типа освобождает пользователя от всех ограничений, связанных с организацией хранения информации и спецификой аппаратуры. Изменение физической структуры данных не влияет на работоспособность прикладных программ, работающих с нею.
Современные реляционные СУДБ предоставляют пользователю мощные средства работы с данными и автоматически выполняют такие системные функции, как восстановление после сбоя и одновременный доступ нескольких пользователей к разделяемым данным. Такой подход избавляет пользователя от необходимости знать форматы хранения данных, методы доступа и методы управления памятью.
Преимущество реляционных моделей данных заключается в следующем:
· простая структура данных;
· пользователь может не знать, каким образом его данные структурированы в базе;
· возможно использование простых непроцедурных языков запросов.
Но организовать работу с реляционной моделью очень сложно, поскольку не существует способов организации быстрого доступа пользователя к данным. Поэтому в современных СУБД допускается задание вспомогательных описаний путем доступа, т.е. организация индексации.
В реляционных БД имеется механизм блокировки, предотвращающий переход системы в противоречивое состояние в результате одновременного доступа двух и более запросов к одному элементу данных.
Способ описания и представления данных пользователю, принятый в реляционных системах, радикально отличается от принятых в иерархических и сетевых моделях. Манипулирование данными осуществляется при помощи операций, порождающих таблицы. Каждая строка в таблице соответствует записи в файле, которую столбцы таблицы разбивают на поля.
Компоненты
СУБД
С состав большинства СУБД входят три основных компонента: командный
язык, интерпретирующая система или компилятор для обработки команд и интерфейс
пользователя.
Командный язык служит для выполнения требуемых операций над данными. Он позволяет манипулировать данными, создавать прикладные программы и т.д. Возможности СУБД в значительной степени определяются структурой и возможностями ее командного языка.
Такой язык обладает следующими свойствами и характеристиками:
средствами описания хранимых данных и операций над ними;
средствами работы с текстовыми, графическими и числовыми данными в различном представлении;
средствами защиты БД;
возможностью определения нестандартных форматов и структур;
вычислительными функциями;
средствами форматирования экрана терминала и генераторами отсчетов.
Для превращения текстовой команды в код, понятный машине, используются специальные преобразующие программы двух типов - интерпретаторы и компиляторы. Интерпретирующая система по очереди преобразует команды в исполнимый код перед их непосредственным выполнением. Во втором случае сначала вся программа преобразуется (компилируется) в серию машинных команд и только после этого выполняется.
При первом способе исходная программа занимает мало места в памяти, но файл выполняется крайне медленно. Компилирующий способ гораздо быстрее, но программа занимает много места в памяти.
СУБД с компиляторами ориентированы на программистов, создающих сложные прикладные системы, а СУБД с интерпретаторами предназначены для пользователей, обладающих начальными знаниями программирования.
На рабочих станциях используют СУБД типа ORACLE, Informix, Ingress и другие, которые позволяют управлять большим объемом информации, имеют развитые средства защиты информации от разрушения и несанкционированного доступа, хорошо приспособлены для работы в сети и т.д.
Вне зависимости от того, какая конкретно СУБД используется в ГИС, в системе должны быть средства, позволяющие перевести данные в один из стандартных форматов БД или считать тематическую информацию из популярных баз.
Становление систем управления базами данных совпало по времени со значительными успехами в развитии технологий распределенных вычислений и параллельной обработки. В результате возникли системы управления распределенными базами данных и системы управления параллельными базами данных. Именно эти системы становятся доминирующими инструментами для создания приложений интенсивной обработки данных.
Благодаря интеграции рабочих станций в распределенную среду становится возможным более эффективное распределение функций в ней, когда прикладные программы выполняются на рабочих станциях, называемых серверами приложений, а базы данных обслуживаются выделенными компьютерами, называемыми серверами баз данных. Это послужило источником развития таких распределенных архитектур, где в роли узлов выступают не просто компьютеры общего назначения, а специализированные серверы.
Параллельный компьютер или мультипроцессор сам по себе является распределенной системой, составленной из узлов (процессоров, компонентов памяти), соединенных быстрой сетью внутри общего корпуса. Технологии распределенных баз данных могут быть естественным образом пересмотрены и распространены на системы параллельных баз данных, т. е. баз данных на параллельных компьютерах. Благодаря применяемому в системах этого типа параллелизму управления данными пользователи получают серверы баз данных высокой производительности и высокой доступности за существенно меньшую цену, чем эквивалентные системы на основе мэйнфреймов.
Распределенные базы данных невозможно рассматривать вне контекста более общей и более значимой темы распределенных информационных систем. Процессы децентрализации и информационной интеграции, происходящие во всем мире, неизбежно должны рано или поздно затронуть нашу страну. Россия, в силу своего географического положения и размеров "обречена" на преимущественное использование распределенных систем. Это направление может успешно развиваться лишь при выполнении двух главных условий - адекватном развитии глобальной сетевой инфраструктуры и применении реальных технологий создания распределенных информационных систем.
Действительно, страна прошла начальный этап локальной компьютеризации. Многие задачи "автоматизации в малом" или "автоматизации в среднем" уже решаются адекватными средствами на достаточно высоком технологическом уровне. Но вот задачи совершенно иного качества - задачи создания корпоративных информационных систем - нуждаются в осмыслении и анализе. Сложность нынешнего этапа во многом предопределена традиционализмом и инерционностью мышления, выражающейся в попытке переноса средств и решений локальной автоматизации в мир распределенных систем. Этот мир живет по своим законам, которые требуют иных технологий.
В большинстве же случаев преобладает стремление использовать знакомые, понятные, испробованные и поэтому родные средства для решения новых задач, принципиально отличающихся от того, чем приходилось заниматься раньше. Ставится задача - построить информационную систему "клиент-сервер" на базе локальной сети с централизованной базой данных. Выбирается одна из популярных многопользовательских СУБД и какие-либо средства для быстрой разработки приложений. Создается система, представляющая собой комбинацию базы данных и обращающихся к ней приложений, в которых и реализована вся прикладная логика. Пока все это работает в ограниченном масштабе, все идет великолепно.
Распределенные базы данных
Под распределенной (Distributed DataBase - DDB) обычно подразумевают базу данных, включающую фрагменты из нескольких баз данных, которые располагаются на различных узлах сети компьютеров, и, возможно управляются различными СУБД. Распределенная база данных выглядит с точки зрения пользователей и прикладных программ как обычная локальная база данных. В этом смысле слово "распределенная" отражает способ организации базы данных, но не внешнюю ее характеристику. ("распределенность" базы данных невидима извне).
Определение Дэйта. (C.J. Date)
12 свойств или качеств идеальной DDB:
· Локальная автономия (local autonomy)
·
Независимость узлов (no
reliance on central site)
·
Непрерывные
операции (continuous
operation)
·
Прозрачность
расположения (location
independence)
·
Прозрачная
фрагментация
(fragmentation independence)
·
Прозрачное
тиражирование
(replication independence)
· Обработка распределенных запросов (distributed query processing)
·
Обработка распределенных транзакций (distributed transaction processing)
· Независимость от оборудования (hardware independence)
· Независимость от операционных систем (operationg system independence)
·
Прозрачность
сети (network
independence)
· Независимость от баз данных (database independence)
Локальная автономия.
Это качество означает, что управление данными на каждом из узлов распределенной системы выполняется локально. База данных, расположенная на одном из узлов, является неотъемлемым компонентом распределенной системы. Будучи фрагментом общего пространства данных, она, в то же время функционирует как полноценная локальная база данных; управление ею выполняется локально и независимо от других узлов системы.
Независимость от центрального узла.
В идеальной системе все узлы равноправны и независимы, а расположенные на них базы являются равноправными поставщиками данных в общее пространство данных. База данных на каждом из узлов самодостаточна - она включает полный собственный словарь данных и полностью защищена от несанкционированного доступа.
Непрерывные операции.
Это качество можно трактовать как возможность непрерывного доступа к данным в рамках DDB вне зависимости от их расположения и вне зависимости от операций, выполняемых на локальных узлах. Это качество можно выразить лозунгом "данные доступны всегда, а операции над ними выполняются непрерывно".
Прозрачность расположения.
Это свойство означает полную прозрачность расположения данных. Пользователь, обращающийся к DDB, ничего не должен знать о реальном, физическом размещении данных в узлах информационной системы. Все операции над данными выполняются без учета их местонахождения. Транспортировка запросов к базам данных осуществляется встроенными системными средствами.
Прозрачная фрагментация.
Это свойство трактуется как возможность распределенного (то есть на различных узлах) размещения данных, логически представляющих собой единое целое. Существует фрагментация двух типов: горизонтальная и вертикальная. Первая означает хранение строк одной таблицы на различных узлах (фактически, хранение строк одной логической таблицы в нескольких идентичных физических таблицах на различных узлах). Вторая означает распределение столбцов логической таблицы по нескольким узлам.
Прозрачность тиражирования.
Тиражирование данных - это асинхронный (в общем случае) процесс переноса изменений объектов исходной базы данных в базы, расположенные на других узлах распределенной системы. В данном контексте прозрачность тиражирования означает возможность переноса изменений между базами данных средствами, невидимыми пользователю распределенной системы. Данное свойство означает, что тиражирование возможно и достигается внутрисистемными средствами.
Обработка распределенных запросов.
Это
свойство DDB трактуется как возможность выполнения операций выборки над распределенной
базой данных, сформулированных в рамках обычного запроса на языке SQL. То есть
операцию выборки из DDB можно сформулировать с помощью тех же языковых средств,
что и операцию над локальной базой данных
Обработка распределенных транзакций.
Это качество DDB можно трактовать как возможность выполнения операций обновления распределенной базы данных (INSERT, UPDATE, DELETE), не разрушающее целостность и согласованность данных. Эта цель достигается применением двухфазового или двухфазного протокола фиксации транзакций (two-phase commit protocol), ставшего фактическим стандартом обработки распределенных транзакций.
Его применение гарантирует согласованное изменение данных на нескольких узлах в рамках распределенной (или, как ее еще называют, глобальной) транзакции.
Независимость от оборудования.
Это свойство означает, что в качестве узлов распределенной системы могут выступать компьютеры любых моделей и производителей - от мэйнфреймов до "персоналок".
Независимость от операционных систем.
Это качество вытекает из предыдущего и означает многообразие операционных систем, управляющих узлами распределенной системы.
Прозрачность сети.
Доступ к любым базам данных может осуществляться по сети. Спектр поддерживаемых конкретной СУБД сетевых протоколов не должен быть ограничением системы с распределенными базами данных. Данное качество формулируется максимально широко - в распределенной системе возможны любые сетевые протоколы.
Независимость от баз данных.
Это качество
означает, что в распределенной системе могут мирно сосуществовать СУБД
различных производителей, и возможны операции поиска и обновления в базах
данных различных моделей и форматов.
Исходя из определения Дэйта, можно рассматривать DDB
как слабосвязанную сетевую структуру, узлы которой представляют собой локальные
базы данных. Локальные базы данных автономны, независимы и самоопределены;
доступ к ним обеспечиваются СУБД, в общем случае от различных поставщиков.
Связи между узлами - это потоки тиражируемых данных. Топология DDB варьируется
в широком диапазоне - возможны варианты иерархии, структур типа
"звезда" и т.д. В целом топология DDB определяется географией
информационной системы и направленностью потоков тиражирования данных.
Целостность данных.
В DDB поддержка
целостности и согласованности данных, ввиду свойств 1-2, представляет собой
сложную проблему. Ее решение - синхронное и согласованное изменение данных в
нескольких локальных базах данных, составляющих DDB - достигается применением
протокола двухфазной фиксации транзакций. Если DDB однородна - то есть на всех
узлах данные хранятся в формате одной базы и на всех узлах функционирует одна и
та же СУБД, то используется механизм двухфазной фиксации транзакций данной
СУБД. В случае же неоднородности DDB для обеспечения согласованных изменений в
нескольких базах данных используют менеджеры распределенных транзакций. Это,
однако, возможно, если участники обработки распределенной транзакции - СУБД,
функционирующие на узлах системы, поддерживают XA-интерфейс, определенный в
спецификации DTP консорциума X/Open. В настоящее
время XA-интерфейс имеют CA-OpenIngres, Informix, Microsoft SQL Server, Oracle, Sybase.
Если в DDB предусмотрено тиражирование данных, то это сразу предъявляет
дополнительные жесткие требования к дисциплине поддержки целостности данных на
узлах, куда направлены потоки тиражируемых данных. Проблема в том, что
изменения в данных инициируются как локально - на данном узле - так и извне,
посредством тиражирования. Неизбежно возникают конфликты по изменениям, которые
необходимо отслеживать и разрешать.
За последние несколько лет распределенные СУБД стали реальностью. Они предоставляют функциональность централизованных СУБД, но в такой среде, где данные распределены между компьютерами, связанными сетью, или между узлами многопроцессорной системы. Распределенные СУБД допускают естественный рост и расширение баз данных путем простого добавления в сеть дополнительных машин. Подобные системы обладают более привлекательными характеристиками цена/производительность, благодаря современным прогрессивным сетевым технологиям.
Две важные проблемы- это системы мультибаз данных (multidatabase system) и распределенные объектно-ориентированные базы данных. Многие информационные системы развиваются независимо, опираясь на собственные реализации СУБД. Позже, когда появляется необходимость интегрировать эти автономные и часто разнородные системы, возникают серьезные трудности. Системы, которые предоставляют доступ к подобным, независимо разработанным разнородным базам данных, называются мультибазами данных.
Проникновение баз данных в такие области (проектирование, мультимедийные системы, геоинформационные системы, системы обработки графических образов), для которых реляционные СУБД изначально не предназначались, послужило стимулом для поиска новых моделей и архитектур баз данных. Среди наиболее серьезных кандидатов, претендующих на удовлетворение потребностей новых классов приложений, - объектно-ориентированные СУБД. Внедрение принципов распределенной обработки в эти СУБД стало источником целого ряда проблем, относящихся к области так называемого распределенного управления объектами.
Литература:
1. Н.
В. Коновалова, Е. Г. Капралов «Введение в ГИС» Москва 1997г.
2. Г.
Ладыженский «Распределённые информационные системы и
базы данных»
3. М. Тамер Оззу, П. Валдуриз «Распределенные
и параллельные системы баз данных»
4. Абросимов В.В., Литвиненко М.В., Хитрова Т.М. «Методические указания по «СУБД Access»». Москва 1998 г.
5. Питер Джон Вейскас «Эффективная работа с Microsoft Access 97», Санкт-Петербург, 1999 г.