Hiërarchiegegevens laden
Hiërarchieën met n-niveaus die niet in balans zijn, worden onder andere vaak gebruikt om geografische of organisatorische dimensies in gegevens te representeren.
Hiërarchieën van dit type worden meestal opgeslagen in aangrenzende knooppuntentabellen. Dit zijn tabellen waarin elke record correspondeert met een knooppunt, met een veld dat de referentie naar het bovenliggende knooppunt bevat.
NodeID | ParentNodeID | Titel |
---|---|---|
1 | - | General manager |
2 | 1 | Region manager |
3 | 2 | Branch manager |
4 | 3 | Department manager |
In een dergelijke tabel wordt het knooppunt opgeslagen in slechts één record, maar kan het knooppunt wel meerdere onderliggende knooppunten hebben. De tabel kan natuurlijk aanvullende velden bevatten waarin kenmerken van de knooppunten worden beschreven.
Een aangrenzende knooppuntentabel is optimaal voor onderhoud maar is lastig te gebruiken in de dagelijkse werkzaamheden. In plaats daarvan worden in query's en analyses andere representaties gebruikt. De uitgebreide knooppuntentabellen is een veelgebruikte representatie waarbij elk niveau in de hiërarchie wordt opgeslagen in een apart veld. De niveaus in een uitgebreide knooppuntentabel kunnen gemakkelijk worden gebruikt, bijvoorbeeld in de vorm van een boomstructuur. Het trefwoord hierarchy kan worden gebruikt in het load-script voor gegevens om een aangrenzende knooppuntentabel om te zetten in een uitgebreide knooppuntentabel.
Voorbeeld:
NodeID | ParentNodeID | Titel | Title1 | Title2 | Title4 | Title4 |
---|---|---|---|---|---|---|
1 | - | General manager | General manager | - | - | - |
2 | 1 | Region manager | General manager | Region manager | - | - |
3 | 2 | Branch manager | General manager | Region manager | Branch manager | - |
4 | 3 | Department manager | General manager | Region manager | Branch manager | Department manager |
Een probleem met de uitgebreide knooppuntentabel is dat het niet eenvoudig is om de niveauvelden te gebruiken voor zoekopdrachten of selecties, omdat vooraf bekend moet zijn op welk niveau moet worden gezocht of geselecteerd. Een voorgangertabel is een andere representatie die dit probleem oplost. Deze representatie wordt ook een overbruggingstabel genoemd.
Een voorgangertabel bevat één record voor elke relatie tussen voorganger en onderliggend element die wordt gevonden in de gegevens. De tabel bevat sleutels en namen voor zowel de onderliggende elementen als de voorgangerelementen. D.w.z. dat elke record beschrijft tot welk knooppunt een bepaald knooppunt behoort. Het trefwoord hierarchybelongsto kan worden gebruikt in het load-script voor gegevens om een aangrenzende knooppuntentabel om te zetten in een voorgangertabel.