Hierarchie

Niezrównoważone hierarchie n-poziomowe często występują w danych na przykład jako reprezentacje organizacyjnych lub geograficznych wymiarów w danych. Hierarchie tego typu są zazwyczaj zapisywane w postaci tabeli węzłów sąsiadujących, w której każdy rekord odpowiada jednemu węzłowi, a jedno z pól stanowi odniesienie do węzła macierzystego.

W takiej tabeli każdy węzeł jest zapisany tylko w jednym rekordzie, ale mimo to może mieć dowolną liczbę węzłów potomnych. Tabela może oczywiście zawierać dodatkowe pola opisujące atrybuty węzłów.

Tabela węzłów sąsiadujących jest optymalną strukturą z punktu widzenia utrzymania danych, ale korzystanie z niej jest niewygodne. Na potrzeby zapytań i analiz używane są inne reprezentacje. Często stosowaną reprezentacją jest tabela rozwiniętych węzłów, w której każdy poziom hierarchii jest zapisany w odrębnym polu. Poszczególnych poziomów tabeli węzłów sąsiadujących można w prosty sposób używać na przykład w ramach struktury drzewiastej. Aby przekształcić tabelę węzłów sąsiadujących w tabelę węzłów rozwiniętych, należy użyć w skrypcie ładowania słowa kluczowego hierarchy.

Example:  

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

Tabela węzłów rozwiniętych jest jednak niewygodna w przypadku używania pól poziomów w wyszukiwaniach i selekcjach, gdyż konieczna jest wcześniejsza znajomość poziomu, którego będzie dotyczyć wyszukiwanie lub selekcja. Problem ten rozwiązuje jeszcze inna reprezentacja — tabela węzłów macierzystych. Inna nazwa tej reprezentacji to tabela pomostowa.

Tabela węzłów macierzystych zawiera jeden rekord dla każdej występującej w danych relacji potomny-macierzysty. Znajdują się w niej klucze i nazwy elementów potomnych i macierzystych. Oznacza to, że każdy rekord wskazuje węzeł macierzysty danego węzła. Aby przekształcić tabelę węzłów sąsiadujących w tabelę węzłów macierzystych, należy w skrypcie ładowania użyć słowa kluczowego hierarchybelongsto.

See also: