Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД ЭКЗАМЕН.docx
Скачиваний:
8
Добавлен:
24.09.2019
Размер:
94.22 Кб
Скачать
  1. Понятие и виды моделей данных. Иерархическая модель.

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

Три категории модели данных: 1. объектные модели данных; 2. модели данных на основе записей; 3. физические модели данных. Применительно к трехуровневой архитектуре баз данных следует отметить, что первые две категории используются для описания данных на внешнем и концептуальном уровнях, а последняя категория — на внутреннем уровне.

Иерархическая модель представляет собой связный неориентированный граф древовидной структуры, объединяющий сегменты. Иерархическая БД состоит из упорядоченного набора деревьев; более точно, из упорядоченного набора нескольких экземпляров одного типа дерева, а не произвольных графов. При этом граф-дерево обладает следующими свойствами: 1. имеется только одна вершина графа — корень, в которую не заходит ни одно ребро; 2. имеются вершины графа n-ого уровня, называемые исходными, куда заходит одно ребро (n-1) уровня; исходит из этого узла ноль, один или несколько порожденных узлов, которые называются потомками; 3. единственный проход к порожденному узлу лежит через его исходный узел; 4. каждый потомок может иметь только одного предка; 5. нет замкнутых петель или циклов; 6. сегмент, у которого нет потомков, называется листовым сегментом. Преобразование концептуальной модели в иерархическую структуру данных во многом схоже с преобразованием ее в сетевую модель, но и имеет некоторые отличия в связи с тем, что иерархическая модель требует организации всех данных в виде дерева. Ситуация значительно усложняется, если потомок в связи имеет не одного, а двух и более предков. Так как подобное положение является невозможным для иерархической модели, то отражаемая структура данных нуждается в преобразованиях, которые сводятся к замене одного дерева, например, двумя (если имеется два предка). В результате такого преобразования в базе данных появляется избыточность, так как единственно возможный выход из этой ситуации — дублирование данных. Но дублирование информации - это нежелательное явление в информационных системах. Из-за его присутствия возникает возможность нарушения непротиворечивости данных, при этом и объем памяти расходуется неэффективно, а, значит, оно должно быть минимизировано. Вносимая полученной структурой избыточность данных может быть ограничена при помощи виртуальных сегментов и указателей следующим образом. Сегмент запоминается полностью только один раз. Когда сегмент должен дублироваться в двух или более деревьях все последующие вхождения сегмента запоминаются как указатели на место хранения данного сегмента. Такие вхождения называются виртуальными сегментами. При их использовании избыточности данных не возникает, а требуется лишь дополнительная память для хранения указателей. Преобразование бинарной связи типа «многие ко многим» осуществляется по следующему правилу. Каждый объект, участвующий в такой связи, с его атрибутами становится логическим сегментом. Пусть это сегменты С1 и С2. В отражаемой структуре данных производят преобразования, которые сводятся к замене одного дерева двумя деревьями. Первое дерево включает оба сегмента, между которыми устанавливается связь типа «один ко многим», где С1 — предок, а С2 — потомок. Второе дерево включает опять оба этих сегмента, между которыми устанавливается связь типа «один ко многим», но только в этом случае С2 — предок, а С1 — потомок.