В лекции использованы материалы Черновой И.Ю., КГУ и Левина А. В., «Экоцентр МТЭА»


ГИС и данные

Ядром информационной систем, в том числе и геоинформационной, являются хранимые в ней данные.

ГИС является пространственно распределенной базой данных. В ней совмещены графическое изображение пространственных данных и дополнительные характеристики изображаемых объектов.

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

Рис. Три области представления данных.

Существует всего несколько  основных типа моделей данных (и типа структур БД):

1. иерархическая (древовидная);

2. сетевая;

3. реляционная (табличная);

4. объектно-ориентированная.

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

Иерархическая модель данных строится по принципу иерархии типов объектов, то есть один тип объекта является главным, а остальные, находящиеся на низших уровнях иерархии, — подчиненными (рис. ). Между главным и подчиненными объектами устанавливается взаимосвязь «один ко многим». Иными словами, для данного главного типа объекта существует несколько подчиненных типов объекта. В то же время для каждого подчиненного экземпляра главного объекта может быть несколько экземпляров подчиненных типов объектов. Таким образом, взаимосвязи между объектами напоминают взаимосвязи в генеалогическом дереве: для каждого порожденного (подчиненного) типа объекта может быть только один исходный (главный) тип объекта. Узлы и ветви образуют иерархическую древовидную структуру. Узел является совокупностью атрибутов, описывающих объект. Наивысший в иерархии узел называется корневым (это главный тип объекта). Корневой узел находится на первом уровне. Зависимые узлы (подчиненные типы объектов) находятся на втором, третьем и т. д. уровнях.

В сетевой модели данных понятия главного и подчиненных объектов несколько расширены. Любой объект (рис.) может быть и главным и подчиненным (в сетевой модели главный объект обозначается термином “владелец набора”, а подчиненный – термином “член набора”). Один и тот же объект может одновременно выступать и в роли владельца, и в роли члена набора. Это означает, что каждый объект может участвовать в любом числе взаимосвязей.

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

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

Ограниченность определяет условием вхождения данных в заданное множество. Например, «все целые числа», или «все числа от минус 0,5 до плюс 0.5». В общем случае элементов множества может быть бесконечно много, но всегда есть способ понять – число 3,1415 к обоим множествам не относится.

Уникальность позволяет однозначно определить объект в базе данных. Уникальность позволяет не только искать и находить, но находить с гарантией, что эта находка будет единственной. Система поиска, таким образом, «строится» исходя из твердой уверенности, что данный объект – уникальный, правильно идентифицированный, и именно к нему относятся взятые в другом месте характеристики. Именно к этому речному переходу по каталогу, например, относятся данные промеров русла, а не к рекам со сходным названием вообще.

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

Тип данных. Операции над множествами.

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



Рис. Операции над множествами

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

В реляционной модели данных объекты и взаимосвязи между ними представляются с помощью таблиц. Взаимосвязи также рассматриваются в качестве объектов.

Таблицы – это основной элемент реляционной базы данных, который является взаимоотношением кортежей и атрибутов (или объектов и их свойств; или записей и полей).

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

Тип данных, допустимый для каждого атрибута указывается при его создании. Тип должен соблюдаться для всех значений атрибута. Атрибуты в таблице на рис.: №_обр, название минерала, месторождение, район, регион, страна.

Атрибут при реализации модели называют полем данных или просто полем.

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

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

Отношение можно рассматривать как набор однотипных объектов, род, вид, тип, ассоциация и т.п. В программировании это известно как «класс». Отношение и есть множество  кортежей.  Именно множество, где каждый элемент имеет тип «Образец».

Основным понятиям реляционной теории – атрибут, кортеж, отношение на практике соответствуют столбец, строка, таблица.

Таблицу в реляционной модели данных можно рассматривать как класс однотипных объектов.

Таким образом, для объектов одного класса набор свойств будет одинаков, хотя значения этих свойств для каждого объекта, конечно, могут быть разными.


Типы данных, допустимые в реляционной модели данных. Домены.

Основные типы данны, используемые в моделях данных:

Short Integer – короткое целое число;

Long Integer – длинное целое число;

Float – вещественное число (число с плавающей десятичной точкой);

Double – вещественное число (число с плавающей десятичной точкой) двойной точности;

Text – текстовый тип данных;

Logical  - логический (да/нет);

Data - временной. Значение определяется как дата с установленным разделителем в установленном формате;

Blob – большие бинарные объекты (binary large object - BLOB), которые могут хранить данные неограниченного размера. Поля этого типа позволяют хранить безразмерную произвольную двоичную информацию.

Однако вышеперечисленных математических типов будет недостаточно, чтобы построить целостную базу данных и избежать несоответствий. Например, координаты XY  в системе Гаусса-Крюгера должны быть миллионы метров – не меньше и не больше. Высота Z не может быть выше 10 км, редкие виды растительности ограничиваются Красной Книгой и т.п. Это помогает не только отсекать возможные ошибки, но и заранее сузить область определения, задать ей практичные рамки. Такое пользовательское описание данных очень близко к понятию домена. Говоря строже, домен есть потенциально возможное множество значений.

Свойства домена: домен является множеством, хотя в общем случае его значения нельзя просто перечислить. От множества, таким образом, наследуются свойства:

Понятие домена помогает правильно моделировать предметную область

Домен и атрибуты. Атрибуты должны быть увязаны с доменами,или, «определены на некоем домене». На одном домене могут быть заданы несколько атрибутов. Например, домен «Глубины» может определять возможные значения для атрибутов «Глубина скважины», «Глубина обсадки», «Глубина установки фильтра».

Атомарность значений: значения атрибутов должны быть простыми, атомарными, не составными. Если условия домена заданы как «Числовое значение от нуля до 200 метров», то в ячейку реляционной таблицы можно вписать только ОДНО числовое значение.

Естественность доменов. Домены должны нести смысловую нагрузку. Полезнее относиться к домену, как к некоей группе параметров описания предметной области, к некоему смысловому понятию. Например, домен «Координаты», «Азимуты», «Температуры», «Глубины» и тому подобные.

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

Ограничить излишние сравнения между атрибутами – основное назначение доменов. Если в разных массивах данных описаны сходные домены – координаты в одной системе, температуры по Цельсию, глубины от поверхности в метрах, то вполне разумно их значения сравнивать, сопоставлять, анализировать между собой! Таким образом, ограничения оборачиваются свободой.

Первичный ключ, внешний ключ, связи

Некоторые атрибуты обладают важным свойством для построения модели. Если известно значение, которое принимает такой атрибут объекта, мы можем идентифицировать значения, которые принимают другие атрибуты этого же объекта. Например, если мы знаем, что дорога имеет статус федеральной, то можем сразу сказать, что покрытие – асфальт, у нее 4 полосы, она определенной ширины.

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

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


Практический смысл первичного ключа очевиден: объект предметной области однозначно описывается с помощью набора атрибутов таблицы. Первичный ключ фиксирует самое главное в объекте, его уникальную сущность. Остальные поля можно назвать «просто атрибутами».

Внешние ключи и связи

Внешний ключ – служит для связи таблиц. Это значения из одной таблицы, по которым можно однозначно привязаться к другой. Точнее говоря, для отношения внешний ключ - это набор определенных заранее атрибутов. Например, в таблице точек наблюдений может быть атрибут «Административный Район», где для каждой точки проставлен код района, которому она принадлежит. Имеется таблица-справочник административных районов, в которой каждый район описан отдельной строкой. Для каждой точки по коду района можно найти его название и другие характеристики. Можно вообще соединить две таблицы в одну по этим ключам. Говорят, что атрибут Район – внешний ключ, ссылающийся на другую таблицу. Колонка Район во второй таблице должна быть обязательно первичным ключом.

Внешний ключ — это атрибут таблицы, являющийся первичным ключом другой таблицы.

Нормализация

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

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

Для реляционной модели данных разработано несколько нормализованных форм, три из которых являются основными.

Первая нормальная форма (1НФ) говорит, что каждый атрибут отношения должен хранить атомарное значение, каждое отношение (строка в таблице) должно содержать одинаковое количество атрибутов (столбцов).

Вторая нормальная форма (2НФ) говорит, что отношение находится во второй нормальной форме, если оно находится в 1НФ, и при этом все неключевые атрибуты зависят только от первичного ключа.

Отношение находится в третьей нормальной форме (3НФ), если оно находится во второй нормальной форме и каждый неключевой атрибут зависит только от первичного ключа и не зависят друг от друга.


Структуры баз данных для управления  данными

1. Структура БД определяется типом связи между записями в таблицах. Различают три типа

2. 1:1 (один к одному) – одной строке таблицы соответствует не более одной строки в другой таблице,

3. 1 : N (один ко многим) – одной строке таблицы может соответствовать несколько строк в другой таблице,

4. M : N (много ко многим) – одна строка первой таблицы связана с несколькими строками второй таблицы, и одна строка второй таблицы связана с несколькими строками первой.


Вывод

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

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

Для установления реляционных соединений каждая таблица должна иметь хотя бы одно общее поле с другой таблицей, с которой хотим установить соединение.

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

Преимущества реляционной МД:

1. простая структура таблиц;

2. простота изменения и добавления новых привязок, данных и записей;

3. простота использования таблиц, описывающих географические элементы с общими атрибутами;

4. возможность привязки таблиц атрибутов к таблицам, описывающим топологию;

5. прямой доступ к данным, обеспечивающий их быструю и эффективную обработку и тд.


Недостатки реляционной МД:

1. Строгость структур оборачивается негибкостью. Довольно строгая однотипность объектов в таблице, тогда как в реальности все они разные.

2. Зависимость структур от данных. Многие известные модели можно уместить в рамках реляционных структур, например, иерархические, как было показано выше. Однако возможности работы реляционными способами сильно зависят от состава данных. Например, моделирование структур способом одной таблицы при бесконечной вложенности уровней подчинения довольно удобно, например, для речной системы. Там же, где количество соподчинений небольшое, например, геологические таксоны, классификация флоры-фауны, проще подойдти консервативным способом – разные уровни располагать в разных таблицах.

В реляционной модели возможны следующие процедуры над таблицами:

1. Соединение таблиц (Join).

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

Соединение используется, прежде всего, с таблицами, отношение между которыми 1:1 (один-к-одному) или N:1 (многие-к-одному).  Каждая запись в таблице назначения (уникальная или нет) соответствует одной уникальной записи из таблицы источника.

2. Связывание таблиц (Relate).

Связывание используется в первую очередь для таблиц, которые находятся между собой в отношении 1:N  или  N:N.  Когда таблицы связаны, выбор записей в таблице  назначения влечет за собой автоматический выбор записей  в связываемой таблице.

Связывание определяет отношение между записями двух таблиц, однако, в отличие от соединения, не происходит присоединения полей к таблице назначения. Исходные таблицы остаются независимыми.

Вы можете наблюдать результат связывания в момент, когда производите выбор в таблице назначения: «связанные»  записи в таблице источника также становятся выбранным.

3. Запросы к таблицам.

Запрос осуществляется в форме логического выражения:

Select attribute = value (выбрать атрибут = значение).

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

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

Объектно-ориентированная модель данных.

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

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

Реализация объектно-ориентированного подхода характеризуется следующими ключевыми свойствами объектов:

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

Инкапсуляция означает, что  данные и процессы объединяются и скрываются за интерфейсом. Все данные, доступ к которым нужен, инкапсулируются в один пакет функцией — так называемый объект (object) — таким образом, чтобы другой объект не имел доступа к этим данным.

Используя аналогию, предложенную Стивом Куком (Steve Cook) [Грехем], можно рассматривать эти объекты как яйца. Желток — это структура данных, белки состоят из функций, которые имеют доступ к этим данным, а скорлупа представляет описание общедоступных операций. Оболочка интерфейса скрывает реализацию и самих функций, и структур данных.


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

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

Наследование  означает, что класс объектов может включать в себя поведение другого класса объектов, а также иметь свое собственное дополнительное поведение. Это означает, что можно создавать собственные классы объектов, наследующие поведение стандартных классов. Например, класс объектов, «геологический полигон» может быть создан из стандартного класса «Полигон», наследуя все свойства полигонов, включая его атрибуты (периметр, площадь), поведение (способность изменять свою форму, масштабироваться, поворачиваться и др.), отношения с другими объектами (например, соседство или пересечение с объектами других классов).


Компоненты объектно-ориентированной модели данных.

Кратко рассмотрим компоненты объектно-ориентированной модели данных.

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

Объекты характеризуются свойствами, определяющими их состояние, и методами, определяющими их поведение. Объекты взаимодействуют друг с другом путем передачи сообщений, активизирующих их линии поведения.

Линии поведения - это методы, или операции, которые объект может реализовать. Например, улица может "знать", как рассчитать увеличение времени, необходимое для проезда по ней при приближении часов пик, или код налогообложения может рассчитать процент налога на землю, если изменился статус земельного участка или его владелец. Эти линии поведения также могут использоваться для направления сообщений другим объектам, сообщения о состоянии объекта с помощью отчета о характеризующих его текущих значениях, сохранения новых значений или выполнения расчетов.

Объекты связываются друг с другом с помощью сообщений. Сообщения - это действие одного объекта, запускающее определенное поведение другого объекта.

Класс - это способ группирования объектов, имеющих одинаковые наборы атрибутов и линии поведения, в шаблон. Объекты определенного класса называются экземплярами этого класса. Например, земельный участок, на котором вы живете, - всего лишь один из многих участков, существующих в городе, и каждый из них уникален. Но эти участки также имеют некоторые общие полезные характеристики, такие как тип зданий или код зонирования, и эти общие характеристики выражаются как классы.

Классы могут быть вложенными до любого уровня, и наследование автоматически выстроится через все уровни. Например, лес, водные объекты, луг,  и др. объекты могут быть объединены в один класс «общественные парки». И наследовать такой атрибут, как «тип землепользования» (зона отдыха) или «вид собственности»  (например, государственная, муниципальная).

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


Отношения: кратность ассоциаций.

Ассоциации описывают отношения между классами. Ассоциация имеет определенную кратность с каждой  из сторон. На этой схеме Владелец может иметь одну или несколько скважин,  скважина может принадлежать одному или нескольким владельцам.

 Множественность (кратность) определяет количество объектов, которые могут быть ассоциированы с другим объектом. Кратности обозначаются следующим образом:

Множественность ассоциаций.

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

Отношения между классами.

Существуют различные типы отношений:

Наследование определяет специализированные классы, которые используют свойства и методы надкласса, а также имеют собственные дополнительные свойства и методы. Схеме показывает, что классы «первичная линия» и «вторичная линия» являются потомками класса «линия».

Реализация определяет, что объект одного класса имеет метод, с помощью которого он может создать объект другого класса. Объект «опора» имеет метод для создания  объекта «трансформатор».

Объединение (агрегирование) - это ассиметричная ассоциация, в которой объект из одного класса считается "целым", а объекты из другого класса считаются "частями". Классы объектов могут быть собраны в объединенный класс. Например, объединенный класс "Владение" (объекты недвижимости) может быть создан путем объединения классов " Земельный участок" и "Жилье". В данном случае классы " Земельный участок" и "Жилье" ассоциированы с классом «Владение», но они могут также существовать и после удаления объекта «Владение».

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


Преимущества  и недостатки объектно-ориентированной модели данных.

Объектно-ориентированная модель данных имеет ряд преимуществ:

3. Хорошо подходит для моделирования сложных отношений между данными. В этом ее главное преимущество, недоступное другим структурам данных.

4. Требует меньше кодирования в ГИС-программах, что означает     меньше ошибок и более низкую стоимость поддержки.

5. Хорошо интегрируется с методами имитационного моделирования.

6. Обеспечивает высокий уровень целостности данных: инкапсуляция сохраняет внутреннее устройство объектов, создание новых данных контролируется  правилам поведения и допусками.

У объектно-ориентированной модели данных есть также и некоторые недостатки:

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

2. Затруднен импорт данных и обмен данными с другими типами баз данных.

3. Большие и комплексные модели выполняются медленнее.

4. Анализ объектно-ориентированных баз данных требуют использования объектно-ориентированных языков программирования.

5. Этот подход не годится для описания непрерывно распределенных в пространстве признаков, таких как рельеф местности или данные о загрязнении почвы тяжелыми металлами.


Объектно-реляционная модель данных

Компромисс между объектной моделью данных и реляционной моделью данных был найден в развитии «смешанной» модели: объектно-реляционной.

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

Объектно-реляционные модели предоставляют следующие возможности работы с объектами:

Определение новых базовых классов;

Определение новых составных классов на базе существующих;

Введение новых функций, работающих как с заданными классами, так и с новыми;

Наследование на уровне классов;

Наследование на уровне таблиц;

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

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

Преимущества объектно-реляционной модели данных

Объектно-реляционная модель данных имеет ряд преимуществ:

1. Быстрое выполнение.

2. Единое хранилище географических данных; позволяет использовать наследуемые и негисовские базы данных.

3. Более тщательный ввод и редактирование данных.

4. Высокая целостность данных (новые данные должны следовать правилам поведения).

5. Пользователи могут работать с более интуитивными объектными данными.

6. Одновременное редактирование данных (поддержка версий).

7. Меньше необходимости в программировании приложений для моделирования сложных отношений.

Недостатки объектно-реляционной модели данных

Разумеется, у объектно-реляционной модели данных есть и ряд недостатков:

1. Компромисс между объектно-ориентированной и реляционной моделями данных.

2. Нет инкапсуляции данных.

3. Ограниченная поддержка отношений между объектами.

4. Больше трудностей при моделировании сложных отношений, чем при использовании объектно-ориентированной модели данных.


С 1980-х гг. большинство баз данных ГИС строились на основе реляционной модели данных. Но, учитывая трудности, связанные с поддержкой этой моделью сложных линий поведения объектов реального Мира, некоторые поставщики программного обеспечения ГИС использовали объектно-ориентированную и объектно-реляционную модели для поддержки этих более сложных моделей данных. Технология AгcGIS, разработанная ESRI, - это широко известный пример реляционной модели, расширенной до возможности включения (по желанию) объектно-ориентированного поведения в модель данных, которая называется моделью базы геоданных. У базы геоданных есть несколько элементов, которые используют преимущества концепции объектно-реляционной модели, включая области атрибутов, правила связности сети и правила отношений.