Hierarchien

Unregelmäßige Hierarchien mit n Ebenen gibt es häufig unter anderem 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.

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 Ladeskript verwendet werden.

Example:  

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

Ein Problem bei der Tabelle mit erweiterten Knoten besteht darin, dass die Felder der 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. Die Vorfahrentabelle ist eine andere Darstellung, die dieses Problem löst. Diese Darstellung wird auch Brückentabelle genannt.

Hier werden jedem Knoten sämtliche übergeordnete Knoten zugeordnet. Hier sind die Schlüssel und Namen der untergeordneten Elemente sowie der Vorfahren enthalten, d. h. jeder Datensatz beschreibt, zu welchem Knoten ein spezifischer Knoten gehört. Um eine solche Darstellung zu erreichen, dient der Zusatz hierarchybelongsto im Ladeskript.

See also: