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