Ladda hierarkiska data

Obalanserade hierarkier på n-nivå används ofta för att visa till exempel geografiska eller organisatoriska dimensioner i data. Denna typ av hierarkier lagras normalt i en tabell av typen ”adjacent nodes” (närliggande noder), d.v.s. en tabell där varje post motsvaras av en nod och har ett fält som innehåller en referens till den överordnade noden.

Nodtabell
NodeID ParentNodeID Titel
1 - VD
2 1 Regional chef
3 2 Filialchef
4 3 Avdelningschef

I en sådan tabell lagras noden i en post men kan ha valfritt antal döttrar. Tabellen kan självklart innehålla ytterligare fält som beskriver nodernas attribut.

En “adjacent nodes”-tabell är utmärkt ur ett underhållsperspektiv men svårhanterad i det dagliga arbetet. I sökningar och analyser används därför andra motsvarigheter. “Expanded nodes”-tabeller är vanliga. Där lagras varje nivå i hierarkin i ett separat fält. Nivåerna i en utvidgad nodtabell kan enkelt användas exempelvis i en trädstruktur. Nyckelordet hierarchy kan användas i laddningsskriptet för att omvandla en ”adjacent nodes”-tabell till en ”expanded nodes”-tabell.

Example:  

Hierarchy (NodeID, ParentNodeID, Title, 'Manager') LOAD NodeID, ParentNodeID, Title FROM 'lib://data/hierarchy.txt' (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
Tabell med expanderade noder
NodeID ParentNodeID Titel Title1 Title2 Title4 Title4
1 - VD VD - - -
2 1 Regional chef VD Regional chef - -
3 2 Filialchef VD Regional chef Filialchef -
4 3 Avdelningschef VD Regional chef Filialchef Avdelningschef

En nackdel med tabeller som innehåller ”expanded nodes” (utvidgade noder) är att man inte enkelt kan använda nivåfälten för sökningar eller urval, eftersom det krävs förkunskaper om vilken nivå man ska söka eller välja i. En överordnad tabell är en annan återgivning som löser problemet. Tabellen på bilden kallas även ”bridge table”.

En överordnad tabell innehåller en post för varje underordnad/överordnad relation som finns i data. Den innehåller nycklar och namn för döttrarna såväl som för förfäderna. Med andra ord beskriver varje post vilken nod en viss nod hör ihop med. Nyckelordet hierarchybelongsto kan användas i laddningsskriptet för att förvandla en “adjacent nodes”-tabell till en förfaderstabell.

See also:

 

Hjälpte den här informationen?

Tack för att du berättar det här. Är det något du vill säga om det här avsnittet?

Varför var informationen inte till hjälp och hur kan vi förbättra den?