data structures and algorithms - computer sciencewender/classes/365/coursenotes/b-tree.pdf ·...
TRANSCRIPT
![Page 1: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/1.jpg)
Data Structures and AlgorithmsCS245-2006S-19
B-TreesDavid Galles
Department of Computer Science
University of San Francisco
![Page 2: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/2.jpg)
19-0: Indexing
Operations:Add an elementRemove an elementFind an element, using a keyFind all elements in a range of key values
![Page 3: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/3.jpg)
19-1: Indexing
Sorted ListFind / Find in Range fastAdd / Remove slow
Unsorted List / Hash TableAdd, Find, Remove fast (hash)Find in Range slow
Binary Search TreeAll operations are fast (O(lg n))if the tree is balanced
![Page 4: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/4.jpg)
19-2: Indexing
Generalized Binary Search TreesEach node can store several keys, instead ofjust oneValues in subtrees between values insurrounding keysFor non leaves, # of children = # of keys + 1
2 6
1 3 4 7
![Page 5: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/5.jpg)
19-3: 2-3 Trees
Generalized Binary Search TreeEach node has 1 or 2 keysEach (non-leaf) node has 2-3 children
hence the name, 2-3 TreesAll leaves are at the same depth
![Page 6: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/6.jpg)
19-4: Example 2-3 Tree
6 16
3 8 13 18
7 11 12 14 17 202 5
![Page 7: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/7.jpg)
19-5: Finding in 2-3 Trees
How can we find an element in a 2-3 tree?
![Page 8: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/8.jpg)
19-6: Finding in 2-3 Trees
How can we find an element in a 2-3 tree?If the tree is empty, return falseIf the element is stored at the root, return trueOtherwise, recursively find in the appropriatesubtree
![Page 9: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/9.jpg)
19-7: Inserting into 2-3 Trees
Always insert at the leaves
To insert an element:Find the leaf where the element would live, if itwas in the treeAdd the element to that leaf
![Page 10: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/10.jpg)
19-8: Inserting into 2-3 Trees
Always insert at the leaves
To insert an element:Find the leaf where the element would live, if itwas in the treeAdd the element to that leaf
What if the leaf already has 2 elements?
![Page 11: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/11.jpg)
19-9: Inserting into 2-3 Trees
Always insert at the leaves
To insert an element:Find the leaf where the element would live, if itwas in the treeAdd the element to that leaf
What if the leaf already has 2 elements?Split!
![Page 12: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/12.jpg)
19-10: Splitting Nodes
5 6 7
75
6
![Page 13: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/13.jpg)
19-11: Splitting Nodes
4
1 2 5 6 7Too manyelements
![Page 14: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/14.jpg)
19-12: Splitting Nodes
4
1 2 5 6 7
Promote to parent
Left childof 6
Right childof 6
![Page 15: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/15.jpg)
19-13: Splitting Nodes
4 6
1 2 5 7
![Page 16: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/16.jpg)
19-14: Splitting Root
When we split the root:Create a new rootTree grows in height by 1
![Page 17: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/17.jpg)
19-15: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1
![Page 18: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/18.jpg)
19-16: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1 2
![Page 19: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/19.jpg)
19-17: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1 2 3
Too many keys,need to split
![Page 20: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/20.jpg)
19-18: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1
2
3
![Page 21: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/21.jpg)
19-19: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1
2
3 4
![Page 22: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/22.jpg)
19-20: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1
2
3 4 5
Too many keys,need to split
![Page 23: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/23.jpg)
19-21: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1
2 4
3 5
![Page 24: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/24.jpg)
19-22: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1
2 4
3 5 6
![Page 25: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/25.jpg)
19-23: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1
2 4
3 5 6 7
Too many keysneed to split
![Page 26: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/26.jpg)
19-24: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1
2 4 6
3 5 7
Too many keysneed to split
![Page 27: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/27.jpg)
19-25: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1 3 5 7
4
2 6
![Page 28: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/28.jpg)
19-26: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1 3 5 7 8
4
2 6
![Page 29: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/29.jpg)
19-27: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1 3 5 7 8 9
4
2 6
Too many keysneed to split
![Page 30: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/30.jpg)
19-28: 2-3 Tree Example
Inserting elements 1-9 (in order) into a 2-3 tree
1 3 5
4
2 6 8
7 9
![Page 31: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/31.jpg)
19-29: Deleting from 2-3 Tree
As with BSTs, we will have 2 cases:Deleting a key from a leafDeleting a key from an internal node
![Page 32: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/32.jpg)
19-30: Deleting Leaves
If leaf contains 2 keysCan safely remove a key
![Page 33: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/33.jpg)
19-31: Deleting Leaves
4 8
3 5 7 11
Deleting 7
![Page 34: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/34.jpg)
19-32: Deleting Leaves
4 8
3 5 11
Deleting 7
![Page 35: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/35.jpg)
19-33: Deleting Leaves
If leaf contains 1 keyCannot remove key without making leaf emptyTry to steal extra key from sibling
![Page 36: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/36.jpg)
19-34: Deleting Leaves
4 8
3 5 7 11
Deleting 3 – we can steal the 5
![Page 37: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/37.jpg)
19-35: Deleting Leaves
4 8
5 7 11
Not a 2-3 tree. What can we do?
![Page 38: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/38.jpg)
19-36: Deleting Leaves
4 8
5 7 11
Steal key from sibling through parent
![Page 39: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/39.jpg)
19-37: Deleting Leaves
5 8
7 114
Steal key from sibling through parent
![Page 40: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/40.jpg)
19-38: Deleting Leaves
If leaf contains 1 key, and no sibling contains extrakeys
Cannot remove key without making leaf emptyCannot steal a key from a siblingMerge with sibling
split in reverse
![Page 41: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/41.jpg)
19-39: Merging Nodes
5 8
7 114
Removing the 4
![Page 42: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/42.jpg)
19-40: Merging Nodes
5 8
7 11
Removing the 4
Combine 5, 7 into one node
![Page 43: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/43.jpg)
19-41: Merging Nodes
8
5 7 11
![Page 44: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/44.jpg)
19-42: Merging Nodes
Merge decreases the number of keys in the parentMay cause parent to have too few keys
Parent can steal a key, or merge again
![Page 45: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/45.jpg)
19-43: Merging Nodes
1 3 5
4
2 6 8
7 9
Deleting the 3 – cause a merge
![Page 46: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/46.jpg)
19-44: Merging Nodes
1 2 5
4
6 8
7 9
Deleting the 3 – cause a merge
Not enough keys in parent
![Page 47: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/47.jpg)
19-45: Merging Nodes
1 2 5
4
6 8
7 9
Steal key from sibling
![Page 48: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/48.jpg)
19-46: Merging Nodes
1 2 5
6
8
7 9
4
Steal key from sibling
![Page 49: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/49.jpg)
19-47: Merging Nodes
1 2 5
6
8
7 9
4
When we steal a key from an internal node, stealnearest subtree as well
![Page 50: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/50.jpg)
19-48: Merging Nodes
1 2 5
6
8
7 9
4
When we steal a key from an internal node, stealnearest subtree as well
![Page 51: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/51.jpg)
19-49: Merging Nodes
1 2 5
6
8
7 9
4
Deleting the 7 – cause a merge
![Page 52: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/52.jpg)
19-50: Merging Nodes
1 2 5
6
8 9
4
Parent has too few keys – merge again
![Page 53: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/53.jpg)
19-51: Merging Nodes
1 2 5 8 9
4 6
Root has no keys – delete
![Page 54: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/54.jpg)
19-52: Merging Nodes
1 2 5 8 9
4 6
![Page 55: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/55.jpg)
19-53: Deleting Interior Keys
How can we delete keys from non-leaf nodes?HINT: How did we delete non-leaf nodes instandard BSTs?
![Page 56: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/56.jpg)
19-54: Deleting Interior Keys
How can we delete keys from non-leaf nodes?Replace key with smallest element subtree toright of keyRecursivly delete smallest element fromsubtree to right of key
(can also use largest element in subtree to left ofkey)
![Page 57: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/57.jpg)
19-55: Deleting Interior Keys
1 3 5 6 8 9
4
2 7
Deleting the 4
![Page 58: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/58.jpg)
19-56: Deleting Interior Keys
1 3 5 6 8 9
4
2 7
Deleting the 4
Replace 4 with smallest element in tree to right of 4
![Page 59: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/59.jpg)
19-57: Deleting Interior Keys
1 3 6 8 9
5
2 7
![Page 60: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/60.jpg)
19-58: Deleting Interior Keys
1 3 6 8 9
5
2 7
Deleting the 5
![Page 61: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/61.jpg)
19-59: Deleting Interior Keys
1 3 6 8 9
5
2 7
Deleting the 5
Replace the 5 with the smallest element in tree toright of 5
![Page 62: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/62.jpg)
19-60: Deleting Interior Keys
1 3 8 9
6
2 7
Deleting the 5
Replace the 5 with the smallest element in tree toright of 5
Node with two few keys
![Page 63: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/63.jpg)
19-61: Deleting Interior Keys
1 3 8 9
6
2 7
Node with two few keys
Steal a key from a sibling
![Page 64: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/64.jpg)
19-62: Deleting Interior Keys
1 3 9
6
2 8
7
![Page 65: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/65.jpg)
19-63: Deleting Interior Keys
1 3 9
6 10
2 8
7 13
11
12
Removing the 6
![Page 66: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/66.jpg)
19-64: Deleting Interior Keys
1 3 9
6 10
2 8
7 13
11
12
Removing the 6
Replace the 6 with the smallest element in the treeto the right of the 6
![Page 67: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/67.jpg)
19-65: Deleting Interior Keys
1 3 9
7 10
2 8
13
11
12
Node with too few keysCan’t steal key from siblingMerge with sibling
![Page 68: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/68.jpg)
19-66: Deleting Interior Keys
1 3 8 9
7 10
2
13
11
12
Node with too few keysCan’t steal key from siblingMerge with sibling(arbitrarily pick right sibling to merge with)
![Page 69: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/69.jpg)
19-67: Deleting Interior Keys
1 3 8 9
7
2
13
10 11
12
![Page 70: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/70.jpg)
19-68: Generalizing 2-3 Trees
In 2-3 Trees:Each node has 1 or 2 keysEach interior node has 2 or 3 children
We can generalize 2-3 trees to allow more keys /node
![Page 71: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/71.jpg)
19-69: B-Trees
A B-Tree of maximum degree k:All interior nodes have dk/2e . . . k children
All nodes have dk/2e − 1 . . . k − 1 keys
2-3 Tree is a B-Tree of maximum degree 3
![Page 72: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/72.jpg)
19-70: B-Trees
5 11 16 19
1 3 7 8 9 12 15 17 18 22 23
B-Tree with maximum degree 5Interior nodes have 3 – 5 childrenAll nodes have 2-4 keys
![Page 73: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/73.jpg)
19-71: B-Trees
Inserting into a B-TreeFind the leaf where the element would goIf the leaf is not full, insert the element into theleafOtherwise, split the leaf (which may causefurther splits up the tree), and insert theelement
![Page 74: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/74.jpg)
19-72: B-Trees
5 11 16 19
1 3 7 8 9 12 15 17 18 22 23
Inserting a 6 ..
![Page 75: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/75.jpg)
19-73: B-Trees
5 11 16 19
1 3 6 7 8 9 12 15 17 18 22 23
![Page 76: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/76.jpg)
19-74: B-Trees
5 11 16 19
1 3 6 7 8 9 12 15 17 18 22 23
Inserting a 10 ..
![Page 77: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/77.jpg)
19-75: B-Trees
5 11 16 19
1 3 6 7 8 9 10 12 15 17 18 22 23
Too many keysneed to split
Promote 8 to parent (between 5 and 11)
Make nodes out of (6, 7) and (9, 10)
![Page 78: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/78.jpg)
19-76: B-Trees
5 8 11 16 19
1 3 9 10 12 15 17 18 22 236 7
Too many keysneed to split
Promote 11 to parent (new root)
Make nodes out of (5, 8) and (6, 19)
![Page 79: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/79.jpg)
19-77: B-Trees
16 19
1 3 9 10 12 15 17 18 22 236 7
5 8
11
Note that the root only has 1 key, 2 children
All nodes in B-Trees with maximum degree 5should have at least 2 keys
The root is an exception – it may have as few asone key and two children for any maximum degree
![Page 80: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/80.jpg)
19-78: B-Trees
B-Tree of maximum degree k
Generalized BSTAll leaves are at the same depthAll nodes (other than the root) havedk/2e − 1 . . . k − 1 keysAll interior nodes (other than the root) havedk/2e . . . k children
![Page 81: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/81.jpg)
19-79: B-Trees
B-Tree of maximum degree k
Generalized BSTAll leaves are at the same depthAll nodes (other than the root) havedk/2e − 1 . . . k − 1 keysAll interior nodes (other than the root) havedk/2e . . . k children
Why do we need to make exceptions for the root?
![Page 82: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/82.jpg)
19-80: B-Trees
Why do we need to make exceptions for the root?Consider a B-Tree of maximum degree 5 withonly one element
![Page 83: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/83.jpg)
19-81: B-Trees
Why do we need to make exceptions for the root?Consider a B-Tree of maximum degree 5 withonly one elementConsider a B-Tree of maximum degree 5 with 5elements
![Page 84: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/84.jpg)
19-82: B-Trees
Why do we need to make exceptions for the root?Consider a B-Tree of maximum degree 5 withonly one elementConsider a B-Tree of maximum degree 5 with 5elementsEven when a B-Tree could be created for aspecific number of elements, creating anexception for the root allows our split/mergealgorithm to work correctly.
![Page 85: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/85.jpg)
19-83: B-Trees
Deleting from a B-Tree (Key is in a leaf)Remove key from leafSteal / Split as necessaryMay need to split up tree as far as root
![Page 86: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/86.jpg)
19-84: B-Trees
5 11 16 19
1 3 7 8 9 12 15 17 18 22 23
Deleting the 15
![Page 87: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/87.jpg)
19-85: B-Trees
5 11 16 19
1 3 7 8 9 12 17 18 22 23
Too few keys
![Page 88: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/88.jpg)
19-86: B-Trees
5 11 16 19
1 3 7 8 9 12 17 18 22 23
Steal a key from sibling
![Page 89: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/89.jpg)
19-87: B-Trees
5 9 16 19
1 3 7 8 11 12 17 18 22 23
![Page 90: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/90.jpg)
19-88: B-Trees
5 9 16 19
1 3 7 8 11 12 17 18 22 23
Delete the 11
![Page 91: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/91.jpg)
19-89: B-Trees
5 9 16 19
1 3 7 8 12 17 18 22 23
Too few keys
![Page 92: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/92.jpg)
19-90: B-Trees
5 9 16 19
1 3 7 8 12 17 18 22 23
Combine into 1 node
Merge with a sibling (pick the left sibling arbitrarily)
![Page 93: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/93.jpg)
19-91: B-Trees
5 16 19
1 3 7 8 9 12 17 18 22 23
![Page 94: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/94.jpg)
19-92: B-Trees
Deleting from a B-Tree (Key in internal node)Replace key with largest key in right subtreeRemove largest key from right subtree(May force steal / merge)
![Page 95: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/95.jpg)
19-93: B-Trees
5 16 19
1 3 7 8 9 12 17 18 22 23
Remove the 5
![Page 96: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/96.jpg)
19-94: B-Trees
5 16 19
1 3 7 8 9 12 17 18 22 23
Remove the 5
![Page 97: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/97.jpg)
19-95: B-Trees
7 16 19
1 3 8 9 12 17 18 22 23
![Page 98: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/98.jpg)
19-96: B-Trees
7 16 19
1 3 8 9 12 17 18 22 23
Remove the 19
![Page 99: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/99.jpg)
19-97: B-Trees
7 16 19
1 3 8 9 12 17 18 22 23
Remove the 19
![Page 100: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/100.jpg)
19-98: B-Trees
7 16 22
1 3 8 9 12 17 18 23
Too few keys
![Page 101: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/101.jpg)
19-99: B-Trees
7 16 22
1 3 8 9 12 17 18 23
Merge with left sibling
![Page 102: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/102.jpg)
19-100: B-Trees
7 16
1 3 8 9 12 17 18 22 23
![Page 103: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/103.jpg)
19-101: B-Trees
Almost all databases that are large enough torequire storage on disk use B-Trees
Disk accesses are very slowAccessing a byte from disk is 10,000 – 100,000times as slow as accessing from main memoryRecently, this gap has been getting even bigger
Compared to disk accesses, all other operationsare essentially free
Most efficient algorithm minimizes disk accessesas much as possible
![Page 104: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/104.jpg)
19-102: B-Trees
Disk accesses are slow – want to minimize them
Single disk read will read an entire sector of thedisk
Pick a maximum degree k such that a node of theB-Tree takes up exactly one disk block
Typically on the order of 100 children / node
![Page 105: Data Structures and Algorithms - Computer Sciencewender/Classes/365/CourseNotes/b-tree.pdf · Department of Computer Science University of San Francisco. 19-0: Indexing Operations:](https://reader035.vdocuments.mx/reader035/viewer/2022071009/5fc708870b678d333a0c6d08/html5/thumbnails/105.jpg)
19-103: B-Trees
With a maximum degree around 100, B-Trees arevery shallow
Very few disk reads are required to access anypiece of data
Can improve matters even more by keeping thefirst few levels of the tree in main memory
For large databases, we can’t store the entiretree in main memory – but we can limit thenumber of disk accesses for each operation toonly 1 or 2