МОДЕЛИ ОРГАНИЗАЦИИ ИНФОРМАЦИОННОГО СОДЕРЖИМОГО БАЗЫ ДАННЫХ

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

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

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

Иерархическая и сетевая модели данных стали применяться в системах управления базами данных в начале 60–х годов. В начале 70–х годов была предложена реляционная модель данных.

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

Заболели и отстали по какому-то предмету? Не можете справиться сами? Не беда! Теперь есть уникальный сайт, на котором можно подобрать репетитора в любом районе —  Заходите! Ваш репетитор ждет Вас!

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

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

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

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

Основные понятия иерархической структуры:

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

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

    Основные операции манипуляции с БД: поиск элемента в БД; переход от одного дерева к др.; перемещение от записи к записи внутри дерева; вставка некоторой записи; удаление элемента.


    Рисунок 3.1 – Древовидный граф иерархической модели данных

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

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

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


    Атрибут (элемент данных) — наименьшая единица структуры данных. Обычно каждому элементу при описании базы данных присваивается уникальное имя. По этому имени к нему обращаются при обработке. Элемент данных также часто называют полем.

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

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

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

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

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

    Пример:

    Рассмотрим следующую модель данных предприятия (рисунок 3.2): предприятие состоит из отделов, в которых работают сотрудники. В каждом отделе может работать несколько сотрудников, но сотрудник не может работать более чем в одном отделе.

    Поэтому, для информационной системы управления персоналом необходимо создать групповое отношение, состоящее из родительской записи ОТДЕЛ (НАИМЕНОВАНИЕ_ОТДЕЛА, ЧИСЛО_РАБОТНИКОВ) и дочерней записи СОТРУДНИК (ФАМИЛИЯ, ДОЛЖНОСТЬ, ОКЛАД). Это отношение показано на рисунок 3.2а. (Для простоты полагается, что имеются только две дочерние записи).

    Для автоматизации учета контрактов с заказчиками необходимо создание еще одной иерархической структуры : заказчик — контракты с ним — сотрудники, задействованные в работе над контрактом. Это дерево будет включать записи ЗАКАЗЧИК(НАИМЕНОВАНИЕ_ЗАКАЗЧИКА, АДРЕС), КОНТРАКТ(НОМЕР, ДАТА,СУММА), ИСПОЛНИТЕЛЬ (ФАМИЛИЯ, ДОЛЖНОСТЬ, НАИМЕНОВАНИЕ_ОТДЕЛА) (рисунок 3.2b).

    Частично дублируется информация между записями СОТРУДНИК и ИСПОЛНИТЕЛЬ (такие записи называют парными), причем в иерархической модели данных не предусмотрена поддержка соответствия между парными записями.

    Иерархическая модель реализует отношение между исходной и дочерней записью по схеме 1:N, то есть одной родительской записи может соответствовать любое число дочерних. Допустим теперь, что исполнитель может принимать участие более чем в одном контракте (т.е. возникает связь типа M:N). В этом случае в базу данных необходимо ввести еще одно групповое отношение, в котором ИСПОЛНИТЕЛЬ будет являться исходной записью, а КОНТРАКТ — дочерней (рисунок 2c). Таким образом, мы опять вынуждены дублировать информацию.


    Рисунок 3.2 – Модель данных предприятия

    Из этого примера видны недостатки иерархических БД:

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

    ДОБАВИТЬ в базу данных новую запись. Для корневой записи обязательно формирование значения ключа.

    ИЗМЕНИТЬ значение данных предварительно извлеченной записи. Ключевые данные не должны подвергаться изменениям.

    УДАЛИТЬ некоторую запись и все подчиненные ей записи.

    ИЗВЛЕЧЬ:

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

    — извлечь следующую запись (следующая запись извлекается в порядке левостороннего обхода дерева)

    В операции ИЗВЛЕЧЬ допускается задание условий выборки (например, извлечь сотрудников с окладом более 1 тысячи руб.)

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