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

Slides:



Advertisements
Similar presentations
알고리즘 기본 개념 정렬 알고리즘 탐색 알고리즘 알고리즘 복잡도.
Advertisements

이진 나무 구조 강윤섭 2008년 5월 23일.
Flash SSD 강원대학교 `01 최경집.
컴퓨터와 인터넷.
2.6 탐색(Search) 1. 순차검색 (Sequential Search, Linear Search)
UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현
제14장 동적 메모리.
연결리스트(linked list).
Windows Server 장. 사고를 대비한 데이터 백업.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
Error Detection and Correction
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
제 11 장 다원 탐색 트리.
7장 인덱스된 순차 화일.
트리 2-3 트리 2-3 트리의 노드 AVL은 균형 트리 (Balanced Tree)를 지향
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
자료구조: CHAP 7 트리(1) 순천향대학교 컴퓨터공학과 하 상 호.
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
CHAP 7: 트 리 (1) 한 성 대 학 교 정보통신공학과 봉 정 식.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
자바 5.0 프로그래밍.
프로그래밍 개요
디지털회로설계 (15주차) 17. 시프트 레지스터와 카운터 18. 멀티바이브레이터 * RAM & ROM.
인터넷응용프로그래밍 JavaScript(Intro).
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
Tree & Heap SANGJI University Kwangman Ko
메모리 관리 & 동적 할당.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
뇌를 자극하는 Windows Server 2012 R2
11장 균형 탐색 트리.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
27강 JAVA Collections - II - Map계열 컬렉션 클래스 살펴보기 - Set계열 컬렉션 클래스 살펴보기
USN(Ubiquitous Sensor Network)
논리회로 설계 및 실험 5주차.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
04. DBMS 개요 명지대학교 ICT 융합대학 김정호.
20 장 네트워킹과 인터네트워킹 장치 20.1 리피터(Repeaters) 20.2 브리지(Bridges)
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
CHAP 12: 탐색 순천향대학교 컴퓨터학부 하 상 호.
CHAP 12: 탐색 순천향대학교 컴퓨터학부 하 상 호.
13장. 균형 탐색 트리 and the pain you must suffer to learn them
Canary value 스택 가드(Stack Guard).
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
CHAP 12 : 탐색 C로 쉽게 풀어쓴 자료구조 Slide 1 (of 27).
알고리즘 알고리즘이란 무엇인가?.
데이터 동적 할당 Collection class.
1과목 데이터베이스 강사 이 민 욱.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
AT MEGA 128 기초와 응용 I 기본적인 구조.
5장. 선택 알고리즘.
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
발표자 : 이지연 Programming Systems Lab.
System Security Operating System.
ER-관계 사상에 의한 관계데이터베이스 설계 충북대학교 구조시스템공학과 시스템공학연구실
트리 (Logical) Data Structures Linear list Tree Graph Linear structures
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
제 4 장 Record.
우선순위 큐 & Heap Ref. C로 쉽게 풀어쓴 자료구조, 생능출판사, 2005.
 6장. SQL 쿼리.
CODE INJECTION 시스템B 김한슬.
7 생성자 함수.
타이머를 시작하려면 슬라이드 쇼 메뉴에서 쇼 보기를 클릭하십시오.
Ⅰ. 데이터베이스 정의 Ⅱ. MS SQL 서버 Ⅲ. 데이터베이스 인터페이스
Presentation transcript:

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

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) 저장공간의 효율성이 떨어짐

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

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

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

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

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

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

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

T-tree 삽입 알고리즘 1. 51삽입 45 46 47 50 51 정렬 45를 왼쪽 자식 노드로 분할 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 45 46 47 50 46 47 50 51 45 46 47 50 51 정렬 45를 왼쪽 자식 노드로 분할 45

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

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

T-tree 삭제 알고리즘 39 삭제 23<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 45 46 47 50

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

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

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

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