Hiërarchieën

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.

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 om een aangrenzende knooppuntentabel om te zetten in een uitgebreide knooppuntentabel.

Example:  

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

Een probleem met de uitgebreide knooppuntentabel is dat de niveauvelden niet eenvoudig te gebruiken zijn voor zoekopdrachten of selecties, omdat vooraf bekend moet zijn op welk niveau moet worden gezocht of geselecteerd. De voorgangertabel is een andere representatie die dit probleem oplost. Deze representatie wordt ook een overbruggingstabel genoemd.

De voorgangertabel bevat één record voor elke relatie tussen voorganger en onderliggend element die wordt gevonden in de gegevens. Deze tabel bevat toetsen en namen voor zowel de onderliggende elementen als de voorgangers. Met andere woorden in elke record wordt beschreven tot welk knooppunt een specifiek knooppunt behoort. Het trefwoord hierarchybelongsto kan worden gebruikt in het load-script om een aangrenzende knooppuntentabel om te zetten in een voorgangertabel.

See also: