Модели данных логического уровня представления данных
На логическом уровне данные представляются в виде некоторых структур, к которым относятся древовидные структуры, графы, таблицы, объекты. К моделям данных логического уровня представления данных относятся иерархическая модель, сетевая, реляционная, постреляционная, объектно-ориентированная. Рассмотрим основные особенности названных моделей.
В случае применения иерархической модели данных предполагается, что предметная область может быть разбита на отдельные части, которые можно именовать и между данными устанавливаются иерархические отношения. Иерархическая модель реализуется в виде дерева, в узлах которого могут находиться сущности, экземпляры сущностей, атрибуты и значения атрибутов. Древовидная структура обязательно имеет корень дерева, узлы-предки и узлы-потомки. Узлы дерева, не уточняемые на более низких уровнях иерархии, называются концевыми узлами дерева. Иерархическая модель данных и семантическая иерархическая модель данных существенно отличаются. В SHM-модели присутствует иерархия понятий, а в иерархической модели логического уровня представления данных в узлах дерева могут быть экземпляры понятий и значения атрибутов. На рисунке 1.6 приведен пример иерархической модели данных.
Рисунок 1.6 – Пример иерархической модели данных
Реализация связей типа «многие ко многим» на иерархических структурах приводит к необходимости дублирования информации. Например, для реализации такой связи между S и A, показанной на рисунке 1.7, надо хранить два варианта связи, иначе при поиске данных может быть выбран только один из вариантов, а не все.
Рисунок 1.7 – Дублирование информации при реализации связей «многие ко многим» на иерархической модели
Достоинством иерархической модели является тот факт, что существуют хорошо развитые алгоритмические средства реализации древовидных структур, а также существенным фактором является наглядность и ясность иерархических структур. К недостаткам иерархической модели следует отнести избыточность при реализации связей типа «многие ко многим» и проблемы при манипулировании данными. Так, удалив узел-предок, удаляются все узлы-потомки, а это не всегда удобно. Кроме этого невозможно хранить порожденный узел без исходного узла, то есть нужен пустой исходный узел. Для ликвидации этих недостатков была предложена сетевая модель данных.
Примерами современных СУБД, реализующих иерархическую модель данных, являются СУБД семейства IMS и System.
Сетевая модель логического уровня представляется в виде графа, возможно имеющего циклы и петли. В узлах графа могут находиться сущности, экземпляры сущностей, атрибуты, значения атрибутов. Ребрами графа являются связи между объектами графа. Модель типа “сущность - связь” лучше всего трансформируется именно на сетевую модель данных. Наиболее развитая сетевая модель данных – это модель, созданная рабочей группой по базам данных (КОДАСИЛ). Эта модель состоит из множества сущностей, которые могут быть владельцами или членами наборов данных.
Примером СУБД, реализующей сетевую модель данных КОДАСИЛ, является СУБД db_VISTA. Эта СУБД предназначена для создания и использования баз данных сложной структуры в рамках различных программных систем, реализованных на языке “С”.
Отличительная черта сетевых моделей – высокая общность, любую модель можно представить в виде сетевой модели, в этом её главное достоинство. К недостатку модели следует отнести сложность реализации такой модели, отсутствие простых и легко реализуемых алгоритмов работы с сетевыми структурами. С целью преодоления названных недостатков была разработана реляционная модель данных самая распространённая в настоящее время.
В реляционной модели данных предметная область разбивается на множества, которые могут быть связаны между собой по элементам, то есть могут быть выделены упорядоченные наборы элементов, объединенные в одно множество. Предполагается, что правила или алгоритмы известны и по ним могут быть выделены эти наборы. Множество получившихся наборов называется отношением между элементами (релейшен). Эта модель в настоящее время строго и точно формализуема. Отношение удобно представлять в виде двумерной таблицы, которая привычна и наглядна для человека. Реляционная база данных представляет собой совокупность взаимосвязанных отношений. Каждое отношение в ЭВМ представляется в виде файла. На рисунке 1.8 приведено соответствие понятий, используемых в реляционных моделях и присутствующих на различных уровнях описания данных.
Наглядное Концептуальный Логический Физический
представление уровень уровень уровень
Таблица = Сущность = Отношение = Файл
Строка Экземпляр сущности Кортеж Запись
Столбец Атрибут Подмножество домена Поле
Рисунок 1.8 – Соответствие понятий реляционной модели на различных уровнях представления данных
Определение отношения, кортежа и домена будут даны в разделе логического проектирования реляционных баз данных.
Таблицы всем хороши, но не учитывают необходимости согласования трех способов манипулирования данными: упорядочение, группировку по значению индексов, доступ по дереву параметров. В таблице данные жестко связаны между собой – упорядочиваются данные по одному параметру и, следовательно, доступ по нему облегчается, а по другому параметру при этом усложняется. Но главное достоинство реляционной модели состоит в наличии строгой, формализованной теории реляционной алгебры и реляционного исчисления, лежащих в основе языков реляционных баз данных.
Примерами СУБД, поддерживающими реляционную модель данных, являются FoxPro, Clipper, Paradox и многие другие.
В отличие от реляционной модели постреляционные базы данных не находятся в первой нормальной форме и реализуются в виде многомерных таблиц. Постреляционные базы данных объединяют в себе высокую производительность и малую ресурсоемкость иерархических баз данных, и независимость и целостность данных, характерные для реляционных. Тем не менее, главный недостаток данных моделей - отсутствие математического аппарата их реализации.
Примером СУБД, реализующей постреляционную модель данных, является СУБД UniVerse.
В последнее время при реализации баз данных стали использоваться и объектно-ориентированные модели данных. Следуя практике многих объектно-ориентированных баз данных (ООБД), предлагается выделить два уровня моделирования объектов: нижний (структурный) и верхний (поведенческий). На структурном уровне поддерживаются сложные объекты, их идентификация и разновидности связи "isa". База данных – это набор элементов данных, связанных отношениями "входит в класс" или "является атрибутом". Таким образом, БД может рассматриваться как ориентированный граф и фактически соответствует семантической иерархической модели концептуального уровня представления данных. Важным аспектом является четкое разделение схемы базы данных и самой базы данных. В качестве первичных концепций схемного уровня ООБД (объектно-ориентированных баз данных) выступают типы и классы. Предполагается, что для точного определения ООБД требуется уровень метасхемы, содержимое которой должно определять виды объектов и связей, допустимых на схемном уровне базы данных. Мета-схема должна играть для ООБД такую же роль, какую играет структурная часть реляционной модели данных для схем реляционных баз данных.
Примерами СУБД, реализующими объектную модель данных можно назвать СУБД O2, ORION, GemStone, Iris. Распространенную СУБД ORACLE иногда называют объектно-реляционной.