b+tree

20
B+tree

Upload: choi-mun-gyu

Post on 23-Jun-2015

938 views

Category:

Education


4 download

DESCRIPTION

b+tree

TRANSCRIPT

Page 1: b+tree

B+tree

Page 2: b+tree

b+tree..?b-treeb*treeb+tree

Page 3: b+tree

b-tree를 왜 사용 할까?- file system / DBMS- index

Page 4: b+tree

Index?

Page 5: b+tree

Index- 파일 탐색을 빨리 하기 위해서

Page 6: b+tree

Index- Index가 커질 경우, 탐색시 시간이 커짐- Index의 접근 횟수를 줄이기 위해서, 트리의 높이를 낮춤- 높이를 낮추기 위해서, 하나의 노드에서 나가는 branch의 갯수를 증가

Page 7: b+tree

B-tree의 삽입1. key값은 항상 leaf노드에서만 삽입2.1 노드가 가득 찼을 때,노드 분열, 중간 key값을 부모, 나머지 나눔

2.2 노드가 안 찼을 때,단순한 키 삽입

2.3 root노드가 찼을 때,

Page 8: b+tree

B-tree의 삭제1.1 leaf node일 때,값을 찾아 단순히 지운다, underflow가 일어

나면 tree를 재배치1.2 internal node일 때,구분자 역할을 할 수 있는 값을 찾아 재배치

Page 9: b+tree

B-tree의 삭제

Page 10: b+tree

B-tree의 삭제

Page 11: b+tree

B-tree의 삭제

Page 12: b+tree

B-tree의 삭제

Page 13: b+tree

B-tree의 삭제

Page 14: b+tree

B-tree의 삭제

Page 15: b+tree

B-tree의 삭제

Page 16: b+tree

B-tree의 단점

Page 17: b+tree

B+tree란?

Page 18: b+tree

B+tree삽입1. key값은 항상 leaf노드에서만 삽입2.1 노드가 가득 찼을 때,노드 분열, 중간 key값을 부모, 나머지 나눔

새 node가 leaf에도 삽입2.2 노드가 안 찼을 때,단순한 키 삽입

2.3 root노드가 찼을 때,

Page 19: b+tree

B+tree삭제1. 삭제할 값을 검색2. 해당 entry를 지운다3. 삭제 후, 노드가 반 이상 차 있으면, 끝3.1 옆의 sibling에서 빌려와서 re-distribution3.2 re-distribution 실패시, merge

Page 20: b+tree

pdfhttp://www.cbcb.umd.edu/confcour/CMSC424/B+-tree.pdf