b+tree
DESCRIPTION
b+treeTRANSCRIPT
B+tree
b+tree..?b-treeb*treeb+tree
b-tree를 왜 사용 할까?- file system / DBMS- index
Index?
Index- 파일 탐색을 빨리 하기 위해서
Index- Index가 커질 경우, 탐색시 시간이 커짐- Index의 접근 횟수를 줄이기 위해서, 트리의 높이를 낮춤- 높이를 낮추기 위해서, 하나의 노드에서 나가는 branch의 갯수를 증가
B-tree의 삽입1. key값은 항상 leaf노드에서만 삽입2.1 노드가 가득 찼을 때,노드 분열, 중간 key값을 부모, 나머지 나눔
2.2 노드가 안 찼을 때,단순한 키 삽입
2.3 root노드가 찼을 때,
B-tree의 삭제1.1 leaf node일 때,값을 찾아 단순히 지운다, underflow가 일어
나면 tree를 재배치1.2 internal node일 때,구분자 역할을 할 수 있는 값을 찾아 재배치
B-tree의 삭제
B-tree의 삭제
B-tree의 삭제
B-tree의 삭제
B-tree의 삭제
B-tree의 삭제
B-tree의 삭제
B-tree의 단점
B+tree란?
B+tree삽입1. key값은 항상 leaf노드에서만 삽입2.1 노드가 가득 찼을 때,노드 분열, 중간 key값을 부모, 나머지 나눔
새 node가 leaf에도 삽입2.2 노드가 안 찼을 때,단순한 키 삽입
2.3 root노드가 찼을 때,
B+tree삭제1. 삭제할 값을 검색2. 해당 entry를 지운다3. 삭제 후, 노드가 반 이상 차 있으면, 끝3.1 옆의 sibling에서 빌려와서 re-distribution3.2 re-distribution 실패시, merge
pdfhttp://www.cbcb.umd.edu/confcour/CMSC424/B+-tree.pdf