Иерархии

Несбалансированные иерархии уровня n часто используются, кроме всего прочего, для представления географических или организационных измерений в данных. Эти типы иерархий, как правило, хранятся в таблицах смежных узлов, т. е. в таблицах, в которых каждая запись соответствует узлу и имеет поле, содержащее ссылку на родительский узел.

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

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

Example:  

Hierarchy (NodeID, ParentNodeID, Title, 'Manager') LOAD NodeID, ParentNodeID, Title FROM 'hierarchy.txt' (txt, codepage is 1252, embedded labels, delimiter is ',', msq);

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

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

See also: