1 / 17

T-tree

T-tree. 엄종진 강원대학교 컴퓨터과학과. T-tree 란. T-tree( binary tree with many elements in a node) = B-tree+ AVL-tree B - tree 장점 폭이 넓고 깊이는 얕은 트리 구조 : 데이터를 접근할 때 필요한 트리의 노드 수를 최소화 하는 장점이 있다

Download Presentation

T-tree

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. T-tree 엄종진 강원대학교 컴퓨터과학과

  2. T-tree 란 • T-tree(binary tree with many elements in a node) = B-tree+ AVL-tree • B - tree • 장점 폭이 넓고 깊이는 얕은 트리 구조: 데이터를 접근할 때 필요한 트리의 노드 수를 최소화 하는 장점이 있다 또한, 디스크 사용의 효율성을 위하여, 각 노드의 크기는 보통 디스크 페이지 크기에 대응되도록 구현된다. 즉, B-트리 인덱스는 디스크 I/O 회수를 줄이면서 디스크 공간을 적 게 사용하는것에 초점이 맞추어진 것이다. • 단점 B-트리는 균형(balance)을 맞추기 위하 여 각 노드들간의 데이터 이동의 양과 회수가 많아 지게 된다 • AVL- tree(높이 균형 이진트리) • 장점 삽입삭제 연산시간이 짧음 검색시간 O(logN) • 단점 저장공간의 효율성이 떨어짐

  3. T-tree 란 • T-tree 기존의 B-tree와 AVL-tree로부터 진화 이진 검색과 높이 균형을 가지는 AVL-tree의 성질을 가짐 한 노드안에 여러 개의 데이터를 가지는 B-tree의 성질을 가짐 • T-tree 의 노드 내부 노드 -오른쪽, 왼쪽 서브 트리를 가짐. -내부 노드에 포함될 수 있는 데이터의 개수는 T트리 생성할 때 결정. 반쪽 리프 노드 -방향과 상관없이 한쪽 서브 트리 만을 갖는다. 리프 노드

  4. T-tree 구성 • T-tree 구성 노드 최고작은값 노드 최고 큰값 최고작은값보다 작으면 왼쪽 자식노드 최고큰값보다 크면 오른쪽 자식노드

  5. 포인터 1000 ... 1000 홍길동 740212-1327233 T-tree의 구조 node … data1 data2 data n Data row Memory Data block

  6. T-tree 검색 알고리즘 • 검색 • T-tree의 검색은 이진 트리에서의 검색과 유사 • 이진 트리에서는 한 개의 값만을 비교 • T-tree에서는 그 노드의 가장 작은 값과 가장 큰 값을 비교 • 알고리즘 • 검색은 항상 트리의 루트(root)부터 시작한다. • 만약 검색하려는 값이 그 노드의 가장 작은 값보다 작으면 왼쪽 서브 트리로 이동하여 계속해서 검색을 한다. • 그렇지 않고 만약 검색 값이 그 노드의 가장 큰 값보다 크면 오른쪽 서브 트리로 이동하여 계속 검색한다. • 그렇지 않으면 현재 노드에서 찾는다.

  7. 20 21 22 23 7 8 9 10 38 39 40 41 1 3 5 6 13 14 15 16 30 31 32 33 45 46 47 50 T-tree 검색 알고리즘 1. 14 찾기 20>14 왼쪽 자식노드로 이동 10<14 오른쪽 자식노드로 이동 13<14<16 사이의값 노드에서 검색

  8. T-tree 삽입 알고리즘 • 새로운 값이 삽입되고 나면 균형(balance)인지를 검사 • 만약 삽입 후에 불균형(unbalance)이 되면 적당한 재균형(rebalance) 연산 • 알고리즘 • 삽입할 위치를 찾는다. • 만약 삽입할 노드가 발견되면, 삽입할 수 있는 여분의 방이 있는지를 검사하여 적당한 여분의 방이 있으면 삽입하고 종료한다. • 그렇지 않으면, 가장 작은 아이템을 제거하고 삽입하려는 값을 삽입한 후 그 노드 단말 노드(leaf)에 제거한 값을 삽입한다.

  9. T-tree 삽입 알고리즘 • 만약 트리가 비어 있고 삽입할 값의 경계가 없으면 가장 나중에 삽입한다. 만약 이 삽입된 값이 적당하면 그 값이 새로운 가장 작은 값이 되던지 아니면 가장 큰 값이 될 수도 있다. • 그렇지 않으면 새로운 노드를 생성한다. • 만약 새로운 단말 노드가 첨가되면 단말 노드부터 루트까지의 경로에 대한 균형을 검사한다.

  10. 45 T-tree 삽입 알고리즘 1. 51삽입 20 21 22 23 51>23 오른쪽 자식노드로 이동 7 8 9 10 38 39 40 41 51>41 오른쪽 자식노드로 이동 1 3 5 6 13 14 15 16 30 31 32 33 46 47 50 51 45 46 47 50 45 46 47 50 51 정렬 45를 왼쪽 자식 노드로 분할

  11. T-tree 삭제 알고리즘 • 삭제 알고리즘은 삽입 알고리즘과 유사 • 삭제할 아이템을 찾아서 삭제한 후, 필요하다면 재균형을 실행 • 알고리즘 • 삭제할 값을 가지고 있는 노드를 찾는다. • 만약 삭제 연산이 언더플로우를 야기 시키지 않는다면 단순히 그 값을 삭제하고 종료한다. • 그렇지 않고 만약 중간 노드(internal node)라면, 그 값을 삭제하고 단말 노드 또는 한쪽 단말 노드로부터 작은 값들 중에서 가장 큰 값을 가지고 온다.

  12. T-tree 삭제 알고리즘 • 만약 단말 노드 또는 한쪽 단말 노드가 있으면 아이템을 삭제한다. • 만약 노드가 한쪽 단말 노드이고 한 단말 노드와 병합시킬 수 있다면, 두 개의 노드를 한 개의 노드로 병합하고 다른 한 노드는 버리고 마지막 단계를 처리한다. • 그렇지 않으면 노드를 풀어주고 트리를 재균형하기 위해서 마지막 단계를 처리한다. • 단말 노드로부터 루트로 모든 노드에 대해서 높이가 1 보다 크면 로테이션 연산을 실행한다. 균형 검사는 모든 노드들에 대해서 균형을 검사한다.

  13. 45 46 47 50 T-tree 삭제 알고리즘 39 삭제 20 21 22 23 23<39 오른쪽 자식노드로 이동 왼쪽자식노드에서 가장큰값을 가져와서 노드를 채운다 38<39<41 검색후 삭제 7 8 9 10 38 39 40 41 33 38 40 41 1 3 5 6 13 14 15 16 30 31 32 33 30 31 32

  14. T-tree의 재균형 • T-tree에서의 재균형 연산은 AVL-tree와 유사 • LL , LR 로테이션 • 단말 노드가 첨가 또는 삭제 되면 항상 검사 • 삽입시, 트리의 재균형은 대부분 한번의 로테이션이 요구 • 삭제시, 다른 노드에도 영향을 주기 때문에 균형이 될 때까지 로테이션을 수행

  15. T-tree의 장점/단점 • T-tree의 장점 • B트리가 해당 레코드를 포함하는데이터 페이지를 가르키고 있는데 반해 T-tree의 해당 각각의 엔트리는 해당 레코드의 메모리 주소를 직접 포인팅하고 있기 때문에 T-tree 인덱스는논리적 주소를 물리적 주소로 변환하는 작업없이 원하는 레코드를 빠르게 접근할수 있다. • T-tree는 인덱스 노드에 키값을 포함하지 않고 직접 메모리내의 레코드를 포인팅하고 있기 때문에 메모리 사용량을 줄일수있다. 또한 인덱스 전체가 메모리에 상주하므로 디스크 입출력을 하지 않는다 • 메모리의 효율성과 삽입/삭제 시간의 융통성을 가짐 -삽입시 발생할 수 있는 오버플로우(overflow) 감소 -삭제시 발생할 수 있는 언더플로우(underflow) 감소 • 단점 • 1차원 데이터에만 가능한 색인

  16. T-tree 사용예(MMDBMS) • MMDBMS(메인메모리 DBMS) • 출현 배경 • 고속 데이터 처리에 대한 요구 증가 • 응용시스템의 복잡도 증가 • 고속처리를 요구하는 응용분야 증가 • 메모리 대용량화 및 가격의 현실화 • 주기억장치 기술의 발전 • 메모리 크기 제한 문제 극복 • 64비트 운영체제의 등장 • 정의 • 주기억장치에 모든 데이터를 상주시키는 데이터베이스 시스템

  17. T-tree 사용예(MMDBMS) • 메인메모리 데이터베이스 시스템은 연산에 필요한 모든 데이터가 메인메모리에 올라와 있기 때문에, 인덱스 구조의 핵심은 전체적인 계산 시간을 줄이고 메모리 사용량을 줄이는 데 있다. 이러한 요구에 의해, 메인메모리 데이터베이스에는 B-트리의 장점과 AVL-트리의 장점을 결합한 T-트리가 사용된다. T-트리는 B-트리에 비해 폭이 좁고 깊이는 깊은 구조를 가지는데, 이것은 데이터를 접근할 때 필요한 계산 시간을 최소화 하는 장점이 있다. 이러 한 구조는 균형을 유지하기 위해 필요한 회전(Rotation) 연산 비용을 메인메모리 구조에 최 적화한 것으로, 데이터 검색뿐만 아니라 데이터 변경에 따른 인덱스 구조 변경에 필요한 시간을 최소화하는 장점이 있다.

More Related