Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИС лекции 2.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.37 Mб
Скачать

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

Иерархическая модель организует данные в виде древовидной структуры и является реализацией логических связей: родо-видовых отношений или отношений «целое-часть».

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

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

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

1. Одно дерево может иметь только один корень.

2. Узел содержит один или несколько атрибутов, описывающих объект в данном узле.

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

4. Доступ к порожденным узлам возможен только через исходный узел, поэтому существует только один путь доступа к каждому узлу.

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

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

К основным недостаткам такого вида модели можно отнести следующие:

  • сложность отображения связей «многие ко многим»;

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

  • доступ к любому узлу возможен только через корневой узел.

4.6. Сетевая модель данных

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

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

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

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

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

Свойства, присущие набору:

  • в каждом экземпляре набора имеется только один экземпляр владельца;

  • экземпляр набора может содержать нуль, один или несколько записей- элементов;

  • набор считается пустым, если ни один экземпляр записи- элемента не связан с соответствующим экземпляром записи-владельца;

  • экземпляр набора существует после запоминания записи-владельца;

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

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

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

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