Hierarchiedaten laden
Unregelmäßige Hierarchien mit n Ebenen gibt es u. a. häufig bei Daten, die geografische oder organisatorische Dimensionen in Daten 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 ein Feld mit einer Referenz zum direkt übergeordneten 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. Die Ebenen einer Tabelle mit erweiterten Knoten lassen sich gut in einer Baumstruktur darstellen. Das Schlüsselwort hierarchy kann im Datenladeskript zum Umwandeln einer Tabelle mit benachbarten Knoten in eine Tabelle mit erweiterten Knoten verwendet werden.
Beispiel:
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 Tabelle mit erweiterten Knoten ist jedoch, dass die Felder für die Ebenen sich nicht besonders gut für Suchen und Auswahlen 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.