Проектирование фактографических БД: иерархическая МД, сетевая модель данных (модель CODASYL).

Проектирование фактографических БД

В фактографических БД содержат краткие сведения об описываемых объектах, представленные в строго определенном формате. Например, в БД библиотеке о каждой книге хранятся библиографические сведения: год издания, автор, название и пр.; в записной книжке школьника могут храниться фамилия, имена, даты рождения, телефоны, адреса друзей и знакомых. Основные признаки - простая структура данных и сложная система взаимосвязей между агрегатами данных.

В исторической последовательности развития данных систем сначала появились АИС, базирующиеся на иерархических, затем на сетевых и, наконец, на реляционных и постреляционных представлениях о структуре предметной области. В настоящее время наиболее распространенным подходом является реляционный (табличные БД), что не исключает, конечно, включения элементов иерархических и сетевых представлений при проектировании АИС.

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

Иерархическая МД (ИМД)

Впервые реализована в СУБД IBM - IMS (Information Management System), разработанной для поддержки банка данных по программе Apollo. При данном подходе предметная область представляется в виде совокупности структур иерархического типа (граф - "дерево").

Основные понятия ИМД:

· поле - минимальная единица данных;

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

Конкретные данные, входящие в сегмент называются экземпляром сегмента.

В ИМД существуют также следующие понятия:

· брат - узел, имеющий того же родителя, что и другой узел;

· ветвь - узел дерева вместе со всеми его отпрысками, отдаленными потомками и родительскими источниками;

· лист - узел, у которого нет отпрысков;

· обход дерева - процесс обследования по очереди каждого узла дерева в иерархической модели данных, и пр.

Принцип построения IMS легок для понимания. Иерархия базы данных напоминает структуру компании или генеалогическое дерево.

Использование отношений предок/потомок. СУБД IMS позволяла легко представлять отношения предок/потомок, например: "А является частью В" или "А владеет В".

В СУБД IMS отношения предок/потомок были реализованы в виде физических указателей от одной записи к другой, вследствие чего перемещение по базе данных происходило быстро. Поскольку структура данных в этой СУБД отличалась простотой, IMS могла размещать записи предков и потомков на диске рядом друг с другом, что позволяло свести к минимуму количество операций записи-чтения.

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

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

Иерархическая МД в настоящее время представляет лишь исторический интерес, хотя ряд ее элементов и поддерживается некоторыми из рассматриваемых далее конкретными СУБД.

Сетевая модель данных (модель CODASYL)

В предложенной CODASYL модификации иерархической модели одна запись могла участвовать в нескольких отношениях предок/потомок. В сетевой модели такие отношения называются множествами. В 70-е гг. независимые производители программного обеспечения реализовали сетевую модель в таких продуктах, как 1DMS компании Cullinet, Total компании Cincom, которые приобрели большую популярность. Сетевые БД обладали рядом преимуществ:

· Гибкостью. Множественные отношения предок/потомок позволяют сетевой БД хранить данные, структура которых сложнее обычной иерархии.

· Стандартизованностью. Появление стандарта CODASYL.

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

· Недостаток - жесткость БД, наборы отношений и структуру записей приходилось задавать заранее. Изменение структуры данных означало перестройку всей БД.

Наши рекомендации