Chapter 8 B-Trees and O h Tree-structured Other d File Organizations References: 1 1. E Horowitz E. Horowitz, S. S Sahni, Sahni S. S Anderson Anderson-Freed Freed, Fundamentals of Data Structures in C st – 1 Edition, Computer Science Press. 2. M. J. Folk and B. Zoellick, File Structures, Addison-Wesley. TABLE O OF CON CONTENTS N S Introduction B-Tree B*-Tree 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 1) 1. Introduction Secondary storage에 대한 인덱스의 문제점 Binary i searching hi requires i too many seeks. k 1,000,000 개의 record : 평균 20번의 seek Expensive to keep the index in sorted order Note that accessing secondary storage is slow. B-Trees R.Bayer y & E.McCreight g 에 의해 제안 de facto standard organization for index “B” 의 의미 : Balanced, Boeing, Bayer, … 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 2) B-Tree ee Working up from the Bottom 속성 각 노드는 최대 m개의 포인터를 가질 수 있다. 있다 루트와 리프를 제외한 모든 노드들은 적어도 m/2개의 child를 를 가져야 한다. 다 리프가 아닌 루트는 적어도 2개의 child를 가져야 한다. 모든 리프 노드들은 동일한 level에 위치한다. 리프가 아닌 노드가 k개의 child를 가질 경우, 그 노드 는 k – 1개의 key를 가져야 한다. 각 노드에서 key들은 순서대로 정렬되어야 한다. 한다 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 3) Example a p e B-tree t ee HN BD $A C d d d d d K E FG I J d d d d d d d 영남대학교 데이터베이스연구실 Q SW LM OP R d d d d d d d d TUV XYZ d d d d d d d d Algorithm: Chapter 8 (Page 4) 2. Splitting p g and Promoting g ① B C G E F D A 가 입력 되는 경우 * A * B * C * D * E * F * G * FIGURE 8.14 Initial leaf of a B-Tree with a page size of seven. 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 5) ② J가 추가로 입력되는 경우 ( split & promoting ) * A * B * C * D * * * * * E * F * G * J * * * * FIGURE 8.15 Splitting the leaf to accommodate the new J key. E * A * B * C * D * * * * * * * * * * * F * G * J * * * * * FIGURE 8.16 Promotion of the E key into a root node. 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 6) Insertion of C, S and D into the initial page : 0 Insertion of T forces the split And the promotion of S : 2 CDS S 0 1 CD 2 A added without incident : S 0 1 ACD 영남대학교 데이터베이스연구실 T T Algorithm: Chapter 8 (Page 7) 2 Insertion of M forces another Split and the promotion of D : DS 0 3 AC 1 M T 2 P, I, B, and W inserted DS into existing pages : 0 3 1 ABC Insertion of N causes another split, followed by the promotion of N. G, U, and R are added 0 to existing pages : I MP TW 2 DNS 3 ABC 4 G IM 1 PR T UW FIGURE: Growth of a B-Tree, B Tree Part I. I The tree grows to a point at which splitting of the root is imminent. 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 8) 7 Insertion of K causes a split at leaf level, followed by y the ppromotion of K,, This causes a split of the root. N is promoted to become the new 2 DK root E is added to a leaf : root. 0 3 ABC N 6 S 5 EG I 4 M PR N 2 6 DHK 3 ABC 8 EG T UW 7 Insertion of H causes a leaf to split. H is Promoted. O, L, and J are added : 0 1 S 5 I J 4 LM 1 OPR T UW Insertion of Y and Q force two more leaf 7 splits and promotions. Remaining letters N are added : 2 6 DHK 0 3 ABC 8 E FG Q SW 5 I J 4 LM 10 OP 1 R 9 TUV XYZ FIGURE. Growth of a B-Tree, Part II. The root splits to add a new level ; remaining keys are inserted. 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 10) 3. B-Tree ee Searching Sea c g and a d Insertion se t o Page Structure struct BTPAGE { short KEYCOUNT; char KEY[MAXKEYS]; long CHILD[MAXKEYS CHILD[MAXKEYS+1]; 1]; long DATA_REC_ADDR[MAXKEYS]; } PAGE; Searching Recursive function 2 stages g : on entire pages p g & within pages p g 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 11) Part of a B-tree : 2 DHK 0 3 ABC 8 E FG 5 I J LM ( ) (a) data record에 대한 주소는 생략 Contents of PAGE for page 2 and 3 : KEYCOUNT KEY array CHILD array Page 2 3 D H K 0 3 8 Page 3 3 E F G Null ll Null ll Null ll 5 (b) FIGURE. A B FIGURE B-tree off order d ffour. ((a)) A An iinternall node d some leaf l f nodes. d (b) Nodes 2 and 3, as we might envision them in the structure PAGE. Insertion, Splitting, and Promotion 삽입될 leaf l f 노드까지 recursive callll Leaf 노드에서 삽입 & overflow 일 경우, bottom up B-Tree creation 모든 key에 대해 insert( ) 를 호출 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 13) 4. B-Tree Nomenclature Order Minimum i i number b off keys k in i a node d Maximum number of descendants in a node () Leaf The lowest level of keys in a B-tree B tree () One level below the lowest level of keys 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 14) 5. Worst-case Search Depth p Question? 최악의 경우, 경우 key를 k 를 찾기 위하여 몇 번의 I/O /O 필요? Tree-depth 와 관계 Approach For a level k, minimum # of descendants = k-1 2 m/2 D : depth p of a tree,, N : # of keys y in a B-tree index N + 1: # of failure nodes = # of nodes at (D + 1) D-1 N + 1 2 m/2 D log m/2((N + 1) /2) + 1 1,000,000 keys & order = 512 일 경우, depth = 3 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 15) Example p B-tree에서 노드 크기가 1000byte이며, key의 크기는 80 b te 자식 노드의 포인터 및 데이터 레코드에 대한 포인 byte, 터의 크기는 각각 10 byte라고 가정한다. 각 노드가 가질 수 있는 자식 노드 수의 최대값? 루트와 리프 노드를 제외한 노드가 가질 수 있는 자식 노드 수의 최소값? 100개의 key를 저장할 경우 tree의 최대 깊이? 100개의 key를 저장할 경우 tree의 최소 깊이? 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 16) 6. Deletion, Redistribution, and Concatenation 개념 Record d 삭제 경우도, 경우도 B-tree 성질 유지 Insertion의 node split과 유사한 개념 필요 Redistribution Concatenation 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 17) B-tree에서 에서 keyy 삭제 알 알고리즘 리즘 (1) (2) (3) (4) Leaf node의 key가 아니면, swap (그림 8.29 : Case 1) Key 삭제 Underflow가 아니면, return. Underflow일 경우 Sibling의 여유 있을 경우: Redistribution (Case 3) 여유 없을 경우 Concatenation (Case 4) (5) Concatenation의 경우, parent에 대해 (2) ~ (4) 적용 ((6)) Root가 empty p y 이면,, tree depth를 p 1 감소 Redistribution Tree 구조 불변 몇 개의 key를 옮길 것인가? 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 18) Case 1:: No action act o (Delete ( e ete J) 0 M 1 2 DH 3 4 AC QU 5 E F 영남대학교 데이터베이스연구실 6 I J K 7 NOP 8 RS VWX Y Z Algorithm: Chapter 8 (Page 19) Case 2 : Swap with w t immediate ed ate successo successor D l t M. Delete 0 M N 1 2 DH 3 4 AC QU 5 E F 영남대학교 데이터베이스연구실 6 I K 7 M N OP 8 RS VWX Y Z Algorithm: Chapter 8 (Page 20) Case 3 : Redistribution ed st but o (Delete ( e ete R)) 0 M 1 2 DH 3 4 AC Q UW 5 E F 영남대학교 데이터베이스연구실 6 I K 7 OP 8 R SUV VWX Y Z Algorithm: Chapter 8 (Page 21) Case 4:: Concatenation Co cate at o (Delete ( e ete A)) 0 N 1 2 DH 3 Underflow New page 3: 4 AC QW 5 E F 6 I K 7 OP 8 SUV XYZ 3 CDE F 영남대학교 데이터베이스연구실 Algorithm: Chapter 8 (Page 22) Case 5: Underflow U de ow propagates p opagates upward upwa d 0 N Underflow moves up to h here 3 1 2 H QW 5 CDE F 영남대학교 데이터베이스연구실 6 I K 7 OP 8 SUV XYZ Algorithm: Chapter 8 (Page 23) Case 6: Height e g t of o tree t ee decreased dec eased 1 H N QW 3 5 CDE F 영남대학교 데이터베이스연구실 6 I K 7 OP 8 SUV XYZ Algorithm: Chapter 8 (Page 24)
© Copyright 2024 ExpyDoc