Лекции и практики (1). Курс лекций и материалы для практических занятий
Скачать 1.01 Mb.
|
Иерархическая модель данных (ИМД)Иерархическая модель позволяет строить БД с иерархической древовид- ной структурой. Структура ИМД описывается в терминах, аналогичных терми- нам сетевой модели данных (версия CODASYL). Группу в ИМД принято назы- вать сегментом. В основе ИМД лежит понятие дерева. Дерево – это связный неориентированный граф, который не содержит циклов. При работе с деревом выделяют какую-то конкретную вершину, опре- деляют её как корень дерева и рассматривают особо – в эту вершину не заходит ни одно ребро. В этом случае дерево становится ориентированным, ориентация определяется от корня. Дерево как ориентированный граф определяется так: имеется единственная особая вершина, называемая корнем, в которую не за- ходит ни одно ребро; во все остальные вершины заходит только одно ребро, а исходит произволь- ное количество ребер; граф не содержит циклов. Конечные вершины, то есть вершины, из которых не выходит ни одной дуги, называются листьями дерева. Количество вершин на пути от корня к ли- стьям в разных ветвях дерева может быть различным. В иерархической модели данных используется ориентация древовидной структуры от корня к листьям. Графическая диаграмма концептуальной схемы базы данных называется деревомопределения. Пример иерархической базы данных приведён на рис. 2.6. Каждая некорневая вершина в ИМД связана с ро- дительской вершиной (сегментом) иерархическим групповым отношением. Каждая вершина дерева соответствует типу сущности ПрО. Тип сущности ха- рактеризуется произвольным количеством атрибутов, связанных с ней отноше- нием 1:1. Атрибуты, связанные с сущностью отношением 1:n, образуют от- дельную сущность (сегмент) и переносятся на следующий уровень иерархии. Реализация связей типа n:m не поддерживается. Рис. 2.6. Пример фрагмента иерархической базы данных Тип вершины определяется типом сущности и набором её атрибутов. Каждая вершина дерева хранит экземпляры сущностей – записи. Следствием внутренних ограничений иерархической модели является то, что каждому эк- земпляру зависимой группы в БД соответствует уникальное множество экзем- пляров родительских записей – по одному экземпляру (записи) каждого типа вершин вышестоящих уровней. По сравнению с СМД иерархическая имеет ограниченный набор режимов включения и исключения подчинённых записей. Это определяется обязатель- ностью связей: в дереве не может быть «висячих» вершин, не связанных с вер- шиной верхнего уровня (кроме корневой). Поэтому ИМД не поддерживает не- обязательный класс членства и ручной режим включения записей. В ИМД предусмотрены специальные способы навигации. Передвижение по дереву всегда начинается с корневой вершины, от которой можно перейти на конкретный экземпляр записи любой вершины следующего уровня. Эта верши- на становится текущей вершиной, а экземпляр – текущей записью. От этой за- писи можно перейти к другой записи данной вершины, к экземпляру записи ро- дительской вершины или к экземпляру записи подчинённой вершины. Т.о., по- пасть в любую вершину можно, только проделав полный путь по дереву от корня. Связи между записями в ИМД обычно выполнены в виде ссылок (т.е. хранятся адреса связанных записей). Корневая запись дерева должна содержать ключ с уникальным значени- ем. Ключи некорневых записей должны иметь уникальные значения только в экземплярах групповых отношений, т.е. на одном и том же уровне иерархии в разных ветвях дерева могут быть экземпляры записей с одинаковыми ключами. Это объясняется тем, что каждая запись идентифицируется полным сцеплен- ным ключом, который образуется путём конкатенации всех ключей экземпля- ров родительских записей. Например, для студента (рис. 2.6) ключ – это (Шифр_факультета+Номер_курса+Номер_группы+Номер_зачётной_книжки). Основным недостатком ИМД является дублирование данных. Оно вызва- но тем, что каждая сущность (атрибут) может относиться только к одной роди- тельской сущности. Например, если в БД хранятся данные о детях сотрудников, а на предприятии работает и отец, и мать ребёнка, то сведения об этом ребёнке нужно хранить дважды. Аналогичная ситуация возникает, если нужно отразить в БД связь «многие-ко-многим». Дублирование данных может вызвать наруше- ние логической целостности БД при внесении изменений в эти данные. Если данные имеют естественную древовидную структуризацию, то ис- пользование иерархической модели данных не вызывает проблем. Но на прак- тике часто требуется реализовать структуры данных, отличные от иерархиче- ской. Для решения этих задач конкретные СУБД, основанные на ИМД, вклю- чают дополнительные средства, облегчающие представление произвольно ор- ганизованных данных. В качестве примера типичного представителя иерархических СУБД мож- но привести систему IMS (Information Management System, IBM). Сетевая и иерархическая модели данных относятся к базам данных I-го поколения (60-е – начало 70-х гг. XX века). Эти модели не смогли в полной ме- ре реализовать независимость данных от программ. Из-за особенностей их ор- ганизации структура запросов к данным в таких системах определяется наличи- ем связей между записями. Следующее, II-е поколение баз данных основано на реляционной модели. |