Hiérarchies

Les hiérarchies déséquilibrées de niveau n sont souvent utilisées pour représenter, entre autres, des dimensions organisationnelles ou géographiques des données. Les hiérarchies de ce type sont souvent stockées dans une table de nœuds adjacents, c'est-à-dire dans une table où chaque enregistrement correspond à un nœud et comporte un champ contenant une référence au nœud parent.

Dans une table de ce type, le nœud est stocké dans un seul enregistrement bien qu'il puisse comprendre plusieurs enfants. La table peut bien sûr comporter des champs supplémentaires décrivant les attributs des nœuds.

Les tables de nœuds adjacents sont idéales en matière de maintenance mais sont difficiles à utiliser au quotidien. Pour les requêtes et les analyses, d'autres représentations sont donc utilisées. La table de nœuds étendus est une représentation classique dans laquelle chaque niveau de la hiérarchie est stocké dans un champ distinct. Les niveaux d'une table de nœuds étendus peuvent facilement être utilisés, par exemple dans une structure arborescente. Le mot-clé hierarchy peut être utilisé dans le script de chargement pour transformer une table de nœuds adjacents en table de nœuds étendus.

Exemple :  

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

Dans une table de nœuds étendue, il est cependant difficile d'utiliser les champs de niveaux pour les recherches ou les sélections, puisque vous devez connaître le niveau à parcourir ou à sélectionner. La table des ancêtres est une représentation différente qui permet de résoudre ce problème. Cette représentation est également appelée table de correspondance.

La table des ancêtres contient un enregistrement pour chaque relation enfant-ancêtre identifiée dans les données. Elle contient des clés et des noms pour les enfants et les ancêtres, c'est-à-dire que chaque enregistrement décrit le nœud auquel un nœud spécifique appartient. Il est possible d'utiliser le mot-clé hierarchybelongsto dans le script de chargement pour transformer une table de nœuds adjacents en table des ancêtres.

Voir aussi :