Иерархические модели данных. Ограничения целостности, страница 2

Иерархический ключ - элемент данных, значения которого уникальны только на том иерархическом пути в реализации БД, где он появляется но не в базе данных в целом. Например, иерархическим ключом может быть код факультета. Это означает, что для каждой исходной записи ИНСТИТУТ каждая порожденная запись ФАКУЛЬТЕТ должна иметь уникальное значение поля код факультета. Тем не менее то же значение кода документа может появляться в записях ФАКУЛЬТЕТ для других головных записей ИНСТИТУТ.

НАВИГАЦИОННЫЕ ОПЕРАЦИИ

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

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

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

ОПЕРАТОР

·  GET UNFQUE  И-3 WHERE квалификация позволяет осуществлять непосредственный доступ к записи. Его основная функция состоит в установке и переустановке указателя позиции на конкретную запись. В общем случае селектируется наиболее левая запись дерева, удовлетворяющая квалификации. Выборка уникальной записи гарантирует только если квалификация накладывает условие по предикату равенства на иерархический путь корневой записи.

·  GET NEXT [И-3[WHERE квалификация]]. Объекты этого оператора, записи расположенные в прямом направлении с права от текущей позиции в БД в соответствии с определенным порядком.

Операции включения в ИМД предполагают предварительную селекцию родителя новой записи. Включение новой записи и ее подключение к родителю должен выполняться в рамках одной процедуры.

В силу свойств "исходный - порожденный" в ИМД удаление записи вызывает удаление всех записей потомков. После удаленной записи текущей становится запись, предшествующая удаляемой.

Обновляемая запись должна быть предварительно селектирована. После обновления запись станет текущей.

СПЕЦИФИКАЦИОННЫЕ ОПЕРАЦИИ

При ограничениях, которые ИМД накладывает на связи между записями естественно производить селекцию множества записей в соответствии с иерархической природой. Рассмотрим, например, селекцию записи ФАКУЛЬТЕТ, согласно некоторой квалификации. Селекция записи в ИМД связана с определением уникального множества записей, определяющих путь к селектируемой записи. В нашем случае селекция записи ФАКУЛЬТЕТ требует выбора уникальной записи ИНСТИТУТ.

Селекция исходных записей в древовидной структуре называется восходящей иерархической нормализацией.

В результате селекции записи в ИБД определяется также возможное множество порожденных записей. Example селекция записи ФАКУЛЬТЕТ приводит к определению множества записей типа КАФЕДРЫ, ГРУППЫ.

Селекция порожденных записей в древовидной структуре носит название нисходящей иерархической нормализации.

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

На этом мы завершаем рассмотрение сильно типизированных моделей данных. За горизонтом остались модели типа:

n "Сущность-связь"

n Бинарные модели

n Семантические сети

ЛИТЕРАТУРА:

Д.Цикритзис, Ф.Лоховски "Модели данных" Москва "Финансы и статистика" 1985