Модели баз данных. Рынок программного обеспечения ПК располагает большим числом разнообразных по своим функциональным возможностям коммерческих систем управления базами данных общего назначения, а также средствами их окружения практически для всех массовы

29.07.2019

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

Виды баз данных

Как известно, различают четыре вида посторения БД:

  • Реляционные - табличные СУБД, где информация представлена в виде строк-столбцов. По этому принципу строятся в "Аксесе", к примеру.
  • Объектно-ориентированные - тесно связаны с в котором идет работа с объектами), и это их главный плюс, но, учитывая их небольшую производительность, они пока значительно уступают в распространенности реляционным.
  • Гибридные - СУБД, вмещающие в себе сразу два указанных выше вида.
  • Иерархические - объект внимания данной статьи. характеризирующиеся древообразной структурой.

Наиболее известным примером иерархической базы данных является продукт, созданный компанией IBM ("АйБиЭм"), под названием Information Management System (переводится как "Информационная система управления"), сокращенно IMS. Первая версия IMS вышла еще в прошлом, двадцатом веке, в шестьдесят восьмом году. Она используется для хранения и контроля данных и поныне.

Принцип построения иерархической модели

Иерархическая модель данных строится по следующему принципу:

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

Применение иерархической структуры данных

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

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

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

Основные операции над БД, построенными на иерархической модели

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

  • поиск по базе данных того или иного элемента;
  • переход по базе данных - от дерева к дереву;
  • переход по дереву - от ветви к ветви;
  • соответственно, переход по ветвям - поэлементно;
  • работа с записями: вставка новой и/или удаление текущей, копирование, вырезание и т. д.

Обобщенное описание структуры

Термин "древовидная" для описания структуры упоминается в этой статье уже далеко не единожды. Пора рассказать, откуда он произошел. Все потому что иерархическая база данных - это такая БД, которая использует тип данных "дерево". Рассмотрим подробнее, что он из себя представляет.

Это составной тип: в каждый из элементов (узлов) вкладывается несколько последующих (один или более). А начинается все с одного корневого элемента. Суть в том, что каждый из кусочков типа "дерево", является подтипом, тоже "деревом". Много-много разветвленных, и все также упорядоченных структур.

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

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

Наполнение БД

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

Достоинства

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

Иерархическая модель идеальна для применения ее для упорядоченной информации.

Недостатки

Однако те же особенности рассматриваемых СУБД, которые стали их основными достоинствами, определяют также и их недостатки. К примеру, громоздкость и сложность логических связей - опытному специалисту при работе с ранее неизвестной базой будет трудно разобраться, а простой пользователь и вовсе в ней "заблудится". Эта сложность понимания приводит к тому, что на самом деле не так много СУБД построены на иерархической модели. Примером иерархической базы данных является, кроме уже описанного продукта компании "АйБиЭм", "Ока" и МИРИС (производство России), а также Data Edge и Team-UP (от зарубежных корпораций).

Примеры

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

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

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

Применение в ЭВМ

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

Сетевые базы данных

Существуют:

  • реляционные;
  • иерархические;
  • сетевые базы данных.

Почему мы вновь вспомнили о классификации? Поскольку, в отличие от реляционной, сетевая БД имеет с иерархической схожие черты.

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

Иерархия и реляционность

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

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

Темы: логические модели баз данных, идентификация объектов и записей, поиск записей.

1. Иерархическая и сетевая модели данных.

Ядром любой базы данных является модель данных. Модель данных — совокупность структур данных и операций их обработки. По способу установления связей между данными различают иерархическую, сетевую и реляционную модели.

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

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

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

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

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

Сетевую структуру можно описать с помощью исходных и порожденных элементов. Удобно представлять ее так, чтобы порожденные элементы располагались ниже исходных.

Желательно отличать простые и сложные сетевые структуры.

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

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


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

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

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

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

2. Идентификация объектов и записей

В задачах обработки информации атрибуты именуют (обозначают) и приписывают им значения.

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

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

Отдельный объект всегда уникален, поэтому запись, содержащая данные о нем, также должна иметь уникальный идентификатор, причем никакой другой объект не должен иметь такой же идентификатор. Поскольку идентификатор — суть значение элемента данных, в некоторых случаях для обеспечения уникальности требуется использовать более одного элемента. Например, для однозначной идентификации записей о дисциплинах учебного плана необходимо использовать элементы СЕМЕСТР и НАИМЕНОВАНИЕ ДИСЦИПЛИНЫ, так как возможно преподавание одной дисциплины в разных семестрах.

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

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

3. Поиск записей

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

Для этого можно использовать следующие способы:

Задать машинный адрес данных и в соответствии с физическим форматом записи прочитать значение. Это случаи, когда программист должен быть «навигатором».

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

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

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

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

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

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

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

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

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

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

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

Связь с отношением «один ко многим » характеризует то, что одному экземпляру информационного объекта «1» соответствует 0,1,2 и более экземпляров объекта «2». Такое отношение существует, например, между таблицами «Поставщики» и «Товары», т.е. каждый поставщик может продавать различные товары, но у каждого товара есть единственный поставщик.

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

Известны три основных типа моделей данных.

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

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

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

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

В структуру основного и зависимого отношений вводится дополнительный атрибут, называемый адресом связи, который обеспечивает соответствие каждого значения зависимого отношения S с единственным значением основного отношения R . Адрес связи хранит начальный адрес или номер следующей обрабатываемой записи. Кольцевая структура адресов связи называется веером . Роль "ручки" веера играет запись основного отношения.

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

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

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

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

Виды моделей данных БД

Модели организации данных. Сетевые, реляционные, иерархические модели.

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

Модель данных - это совокупность структур данных и операций их обработки. Рассмотрим три основных типа моделей данных: иерархическую, сетевую и реляционную.

Виды моделей данных БД

Иерархическую модель БД изображают в виде дерева. Элементы дерева вершины представляют совокупность данных, например логические записи.

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

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

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

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

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

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

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

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

1. Каждый элемент таблицы соответствует одному элементу данных.

2. Все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип и длину.

3. Каждый столбец имеет уникальное имя.

4. Одинаковые строки в таблице отсутствуют;

5. Порядок следования строк и столбцов может быть произвольным.

Типы моделей баз данных

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

Иерархическая модель

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

«Система управления информацией » (Information Management System ) компании IMB - пример иерархической СУБД.

Иерархическая модель организует данные в форме дерева с иерархией родительских и дочерних сегментов. Такая модель подразумевает возможность существования одинаковых (преимущественно дочерних ) элементов. Данные здесь хранятся в серии записей с прикреплёнными к ним полями значений. Модель собирает вместе все экземпляры определённой записи в виде «типов записей » - они эквивалентны таблицам в реляционной модели, а отдельные записи — столбцам таблицы. Для создания связей между типами записей иерархическая модель использует отношения типа «родитель-потомок » вида 1:N . Это достигается путём использования древовидной структуры - она «позаимствована » из математики, как и теория множеств, используемая в реляционной модели.

Иерархические системы баз данных

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

Данные о сотруднике и его детях формируют иерархическую структуру, где информация о сотруднике – это родительский элемент, а информация о детях — дочерний элемент. Если у сотрудника три ребёнка, то с родительским элементом будут связаны три дочерних. В иерархической базе данных отношение «родитель-потомок » - это отношение «один ко многим ». То есть у дочернего элемента не может быть больше одного предка.

Иерархические БД были популярны, начиная с конца 1960-х годов, когда компания IBM представила свою СУБД «Система управления информацией. Иерархическая схема состоит из типов записей и типов «родитель-потомок »:

  • Запись - это набор значений полей.
  • Записи одного типа группируются в типы записей.
  • Отношения «родитель-потомок» - это отношения вида 1:N между двумя типами записей.
  • Схема иерархической базы данных состоит из нескольких иерархических схем.

Сетевая модель

В сетевой модели данных у родительского элемента может быть несколько потомков, а у дочернего элемента - несколько предков. Записи в такой модели связаны списками с указателями. IDMS («Интегрированная система управления данными ») от компании Computer Associates international Inc. - пример сетевой СУБД.

Иерархическая модель структурирует данные в виде древа записей, где есть один родительский элемент и несколько дочерних. Сетевая модель позволяет иметь несколько предков и потомков, формирующих решётчатую структуру.

Сетевая модель позволяет более естественно моделировать отношения между элементами. И хотя эта модель широко применялась на практике, она так и не стала доминантной по двум основным причинам. Во-первых, компания IBM решила не отказываться от иерархической модели в расширениях для своих продуктов, таких как IMS и DL/I . Во-вторых, через некоторое время её сменила реляционная модель, предлагавшая более высокоуровневый, декларативный интерфейс.

Популярность сетевой модели совпала с популярностью иерархической модели. Некоторые данные намного естественнее моделировать с несколькими предками для одного дочернего элемента. Сетевая модель как раз и позволяла моделировать отношения «многие ко многим». Её стандарты были формально определены в 1971 году на конференции по языкам систем обработки данных (CODASYL ).

Основной элемент сетевой модели данных - набор, который состоит из типа «запись-владелец », имени набора и типа «запись-член ». Запись подчинённого уровня («запись-член ») может выполнять свою роль в нескольких наборах. Соответственно, поддерживается концепция нескольких родительских элементов.

Запись старшего уровня («запись-владелец ») также может быть «членом » или «владельцем » в других наборах. Модель данных - это простая сеть, связи, типы пересечения записей (в IDMS они называются junction records , то есть «перекрёстные записи ). А также наборы, которые могут их объединять. Таким образом, полная сеть представлена несколькими парными наборами.

В каждом из них один тип записи является «владельцем » (от него отходит «стрелка» связи ), и один или более типов записи являются «членами » (на них указывает «стрелка» ). Обычно в наборе существует отношение 1:М , но разрешено и отношение 1:1 . Сетевая модель данных CODASYL основана на математической теории множеств.

Известные сетевые базы данных:

  • TurboIMAGE;
  • IDMS;
  • Встроенная RDM;
  • Серверная RDM.

Реляционная модель

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

В отличие от двух других типов СУБД, в реляционных моделях данных нет необходимости просматривать все указатели, что облегчает выполнение запросов на выборку информации по сравнению с сетевыми и иерархическими СУБД. Это одна из основных причин, почему реляционная модель оказалась более удобна. Распространённые реляционные СУБД: Oracle , Sybase , DB2 , Ingres , Informix и MS-SQL Server .

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

РСУБД - реляционная система управления базами данных, основанная на реляционной модели Э. Ф. Кодда. Она позволяет определять структурные аспекты данных, обработки отношений и их целостности. В такой базе информационное наполнение и отношения внутри него представлены в виде таблиц - наборов записей с общими полями.

Реляционные таблицы обладают следующими свойствами:

  • Все значения атомарны.
  • Каждый ряд уникален.
  • Порядок столбцов не важен.
  • Порядок рядов не важен.
  • У каждого столбца есть своё уникальное имя.

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

Часто у полей будет одно и то же имя в обеих таблицах. Например, таблица «Заказы » может содержать пары «ID-покупателя » и «код-товара ». А в таблице «Товар » могут быть пары «код-товара » и «цена ». Поэтому чтобы рассчитать чек для определённого покупателя, необходимо суммировать цену всех купленных им товаров, использовав JOIN в полях «код-товара » этих двух таблиц. Такие действия можно расширить до объединения нескольких полей в нескольких таблицах.

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

Сравнение трёх моделей

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

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

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

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

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

«Один к одному»

В этом виде отношений один объект связан с другим. Например, Менеджер -> Отдел .

У каждого менеджера может быть только один отдел, и наоборот.

«Один ко многим»

В моделях данных отношение одного объекта с несколькими. Например, Сотрудник -> Отдел .

Каждый сотрудник может быть только в одном отделе, но в самом отделе может быть больше одного сотрудника.

«Многие ко многим»

В заданный момент времени объект может быть связан с любым другим. Например, Сотрудник -> Проект .

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

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

Каждая таблица представляет объект.

Каждая таблица состоит из рядов и столбцов.

Отношения между объектами представлены столбцами.

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

Значения столбцов выбираются из области или набора всех возможных значений.

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

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

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

  1. Простота использования.
  2. Гибкость.
  3. Независимость данных.
  4. Безопасность.
  5. Простота практического применения.
  6. Слияние данных.
  7. Целостность данных.

Недостатки:

  1. Избыточность данных.
  2. Низкая производительность.

Другие модели баз данных (ООСУБД)

В последнее время на рынке СУБД появились продукты, представленные объектными и объектно-ориентированной моделью данных, такие как Gem Stone и Versant ОСУБД. Также производятся исследования в области многомерных и логических моделей данных.

Особенности объектно-ориентированных систем управления базами данных (ООСУБД):

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

А также поддержку классов объектов и наследование свойств и методов классов подклассами и их объектами.

Похожие статьи