Hierarchiedaten laden

Unregelmäßige Hierarchien mit n Ebenen gibt es u. a. häufig bei Daten, die eine geografische Ordnung oder die Organisationsstruktur eines Unternehmens repräsentieren. Solche Hierarchien werden zumeist in Form von Tabellen dargestellt, in der benachbarte Knoten einander zugeordnet werden. Jede Zeile der Tabelle repräsentiert einen Knoten und enthält eine Referenz zum direkt übergeordneten Knoten.

Tabelle mit Knoten
NodeID ParentNodeID Titel
1 - Geschäftsführer
2 1 Manager für die Region
3 2 Niederlassungsleiter
4 3 Abteilungsleiter

Jeder Knoten wird in dieser Tabelle durch eine Zeile repräsentiert, auch wenn der Knoten mehrere untergeordnete Knoten hat. Natürlich kann die Tabelle auch weitere Felder enthalten, etwa mit Attributen.

Eine Tabelle mit benachbarten Knoten ist optimal für die Wartung, aber schwierig für die tägliche Arbeit. Stattdessen werden in Abfragen und Analysen andere Repräsentationen verwendet. Im Allgemeinen werden dazu die Ebenen der Hierarchie so aufgeschlüsselt, dass für jede Ebene ein separates Feld entsteht. Diese Struktur lässt sich gut in einem Baum darstellen. Um die Ebenen einer Hierarchie auf diese Weise aufzuschlüsseln, kann der hierarchy-Zusatz im Datenladeskript verwendet werden.

Example:  

Hierarchy (NodeID, ParentNodeID, Title, 'Manager') LOAD NodeID, ParentNodeID, Title FROM 'lib://data/hierarchy.txt' (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
Tabelle mit aufgeschlüsselten Ebenen
NodeID ParentNodeID Titel Title1 Title2 Title4 Title4
1 - Geschäftsführer Geschäftsführer - - -
2 1 Manager für die Region Geschäftsführer Manager für die Region - -
3 2 Niederlassungsleiter Geschäftsführer Manager für die Region Niederlassungsleiter -
4 3 Abteilungsleiter Geschäftsführer Manager für die Region Niederlassungsleiter Abteilungsleiter

Ein Problem der erweiterten Knonten ist jedoch, dass die Felder für die Ebenen sich nicht besonders gut für Suche und Auswahl eignen, da bereits im Vorfeld bekannt sein muss, auf welcher Ebene das betreffende Element zu finden ist. Eine Vorfahrentabelle ist eine andere Darstellung, mit der sich dieses Problem lösen lässt. Dieses Problem wird mit einer dritten Darstellung gelöst, der Vorfahrentabelle, auch Brückentabelle genannt.

Eine Vorfahrentabelle enthält einen Datensatz für jede untergeordnete Vorfahrenbeziehung, die in den Daten vorhanden ist. Sie enthält Schlüssel und Namen für die untergeordneten und auch die übergeordneten Knoten. Das heißt, dass jeder Datensatz beschreibt, zu welchem Knoten ein bestimmter Knoten gehört. Um eine solche Darstellung zu erreichen, dient der Zusatz hierarchybelongsto im Datenladeskript.

See also: