::: 강좌/소스/문서 :::

강좌/소스/문서 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  신훈재(2003-04-11 18:00:40, Hit : 8327, Vote : 1974
 [Oracle] 트리구조 테이블 형태 및 조회방법

우선 트리의 구조부터 정의 합니다.

1) 트리구조의 이해

     LEVEL 1       LEVEL 2        LEVEL 3

   최상위 노드 -----                        
                        |- 노드 1
                        |_ 노드 2-----
                        |              |
                        |              |- 노드 2-1
                        |              |_ 노드 2-2
                        |_ 노드 3

  @ 트리는 위의 그림에서와 같이 "최상위 노드"와 "하위노드"들로 이루어져 있습니다.
  @ 상위노드 : 상위노드란 노드의 부모노드를 말합니다.
      예) 노드 2-1의 상위노드 => 노드2
           노드 2의 하위노드 => {노드2-1, 노드2-2}
  @ 하위노드 : 하위노드란 노드를 상위노드로 하는 노드들의 집합을 말합니다.
  @ LEVEL 1 = { 최상위 노드 }
      LEVEL 2 = { 노드 1, 노드 2, 노드 3}
      LEVEL 3 = { 노드 2-1, 노드 2-2}

2) 노드의 특징 : 노드는 반드시 하나의 상위노드를 가지고 있거나 null인 노드를 가지고 있습니다.


테이블 구성
---------------
    TREETB
---------------
    TREE_ID        ; 노드 ID
    TREE_LEVEL ; 노드 LEVEL
    PARENT_ID    ; 노드 상위 ID(NULL인 경우 최상위 노드)
   TREE_NAME   ; 노드명
---------------

3) Query : 아래 쿼리는 특정 노드를 최상위노드로 지목한 후 트리를 구성할 수 있습니다.

SELECT
TREE_LEVEL, TREE_ID, PARENT_ID, TREE_NAME
FROM TREETB
WHERE start with TREE_ID = 25   // NODE ID 가 25인 NODE를 최상위 노드로 지정한 경우
connect by prior TREE_ID = PARENT_NO

==> 노드ID 25를 기준으로 하위 모든 노드를 LEVEL별로 조회합니다.





2   [DB/LDAP] [MySQL] MySQL 설치후 DB,Table,User 만들고 PHP로 접속하기  김영대 2003/04/15 6045 1684
  [DB/LDAP] [Oracle] 트리구조 테이블 형태 및 조회방법  신훈재 2003/04/11 8327 1974

1
 

Copyright 1999-2017 Zeroboard / skin by zero