계층 구조

불균형 n 수준 계층 구조는 데이터에서 지역 또는 조직 차원 등을 나타내는 데 자주 사용됩니다. 일반적으로 이러한 유형의 계층 구조는 인접 노드 테이블, 즉 각 레코드가 한 노드에 해당하고 부모 노드에 대한 참조를 포함하는 필드를 가지는 테이블에 저장됩니다.

이러한 테이블에서 노드는 한 레코드에만 저장되지만 가질 수 있는 자식의 수에는 제한이 없습니다. 물론 테이블은 노드의 특성을 나타내는 추가 필드를 포함할 수 있습니다.

인접 노드 테이블은 유지 관리가 간편하지만 일상적인 작업에 사용하기는 어렵습니다. 쿼리와 분석에는 다른 표시 형식이 사용됩니다. 확장 노드 테이블은 일반적인 표시 형식 중 하나로, 계층 구조의 각 수준이 별도의 필드에 저장됩니다. 확장 노드 테이블의 수준은 트리 구조 등에서 손쉽게 사용할 수 있습니다. hierarchy 키워드를 로드 스크립트에 사용하여 인접 노드 테이블을 확장 노드 테이블로 변환할 수 있습니다.

​예:  

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

확장 노드 테이블의 한 가지 문제는 수준 필드를 검색이나 선택에 사용하기 어렵다는 것인데, 어떤 수준을 검색하거나 선택할지에 대한 사전 지식이 필요하기 때문입니다. 이 문제를 해결하는 데 사용할 수 있는 다른 표시 형식으로는 상위 테이블이 있습니다. 이 표시를 브리지 테이블이라고도 합니다.

상위 테이블에는 데이터에 있는 각 자식-상위 관계에 해당하는 레코드 하나가 포함되어 있습니다. 여기에는 자식과 더불어 상위에 해당하는 키와 이름이 포함되어 있으며, 이는 모든 레코드가 특정 노드가 속한 노드를 설명함을 의미합니다. 로드 스크립트에서 hierarchybelongsto 키워드를 사용하면 인접 노드 테이블을 상위 테이블로 변환할 수 있습니다.

참조 항목: