Download presentation
Presentation is loading. Please wait.
1
CPS216: Advanced Database Systems
Notes 06: Operators for Data Access (contd.) Shivnath Babu
2
Insertion in a B-Tree n = 2 49 15 36 49 Insert: 62
3
Insertion in a B-Tree n = 2 49 15 36 49 62 Insert: 62
4
Insertion in a B-Tree n = 2 49 15 36 49 62 Insert: 50
5
Insertion in a B-Tree n = 2 49 62 15 36 49 50 62 Insert: 50
6
Insertion in a B-Tree n = 2 49 62 15 36 49 50 62 Insert: 75
7
Insertion in a B-Tree n = 2 49 62 15 36 49 50 62 75 Insert: 75
8
Insertion
9
Insertion
10
Insertion
11
Insertion
12
Insertion
13
Insertion
14
Insertion
15
Insertion
16
Insertion
17
Insertion
18
Insertion
19
Insertion: Primitives
Inserting into a leaf node Splitting a leaf node Splitting an internal node Splitting root node
20
Inserting into a Leaf Node
58 54 57 60 62
21
Inserting into a Leaf Node
58 54 57 60 62
22
Inserting into a Leaf Node
58 54 57 58 60 62
23
Splitting a Leaf Node 61 54 66 54 57 58 60 62
24
Splitting a Leaf Node 61 54 66 54 57 58 60 62
25
Splitting a Leaf Node 61 54 66 54 57 58 60 61 62
26
Splitting a Leaf Node 59 61 54 66 54 57 58 60 61 62
27
Splitting a Leaf Node 61 54 59 66 54 57 58 60 61 62
28
Splitting an Internal Node
… 21 99 … 59 40 54 66 74 84 [54, 59) [ 59, 66) [66,74)
29
Splitting an Internal Node
… 21 99 … 59 40 54 66 74 84 [54, 59) [ 59, 66) [66,74)
30
Splitting an Internal Node
66 … 21 99 … [66, 99) [21,66) 40 54 59 74 84 [54, 59) [ 59, 66) [66,74)
31
Splitting the Root 59 40 54 66 74 84 [54, 59) [ 59, 66) [66,74)
32
Splitting the Root 59 40 54 66 74 84 [54, 59) [ 59, 66) [66,74)
33
Splitting the Root 66 40 54 59 74 84 [54, 59) [ 59, 66) [66,74)
34
Deletion
35
Deletion redistribute
36
Deletion
37
Deletion - II
38
Deletion - II merge
39
Deletion - II
40
Deletion - II
41
Deletion - II
42
Deletion - II Not needed merge
43
Deletion - II
44
Deletion: Primitives Delete key from a leaf
Redistribute keys between sibling leaves Merge a leaf into its sibling Redistribute keys between two sibling internal nodes Merge an internal node into its sibling
45
Merge Leaf into Sibling
72 … 67 85 54 58 64 68 72 75
46
Merge Leaf into Sibling
72 … 67 85 54 58 64 68 75
47
Merge Leaf into Sibling
72 … 67 85 54 58 64 68 75
48
Merge Leaf into Sibling
72 … 85 54 58 64 68 75
49
Merge Internal Node into Sibling
… 59 … 41 48 52 63 74 [52, 59) [59,63)
50
Merge Internal Node into Sibling
… 59 … 41 48 52 59 63 [52, 59) [59,63)
51
B-Tree Roadmap B-Tree B-Tree variants Hash-based Indexes Recap
Insertion (recap) Deletion Construction Efficiency B-Tree variants Hash-based Indexes
52
How does insertion-based construction perform?
Question How does insertion-based construction perform?
53
B-Tree Construction Sort 48 57 41 15 75 21 62 34 81 11 97 13
54
B-Tree Construction 11 13 15 21 34 41 48 57 62 75 81 97 11 13 15 21 34 41 48 57 62 75 81 97 Scan
55
B-Tree Construction 21 48 75 11 13 15 21 34 41 48 57 62 75 81 97 Scan
56
Why is sort-based construction better than insertion-based one?
B-Tree Construction Why is sort-based construction better than insertion-based one?
57
Cost of B-Tree Operations
Height of B-Tree: H Assume no duplicates Question: what is the random I/O cost of: Insertion: Deletion: Equality search: Range Search:
58
Height of B-Tree Number of keys: N B-Tree parameter: n log N
Height ≈ log N = n log n In practice: 2-3 levels
59
Question: How do you pick parameter n?
Ignore inserts and deletes Optimize for equality searches Assume no duplicates
60
Roadmap B-Tree B-Tree variants Hash-based Indexes Sparse Index
Duplicate Keys Hash-based Indexes
61
Roadmap B-Tree B-Tree variants Hash-based Indexes Static Hash Table
Extensible Hash Table Linear Hash Table
62
Hash-Based Indexes Adaptations of main memory hash tables
Support equality searches No range searches
63
Indexing Problem (recap)
Index Keys record pointers a 1 2 i n A = val
64
Main Memory Hash Table buckets 32 48 (null) 1 key 2 10 (null) h (key)
48 (null) 1 key 2 10 (null) h (key) 3 27 75 (null) 4 h (key) = key % 8 5 21 (null) 6 7 55 (null)
65
Adapting to disk 1 Hash Bucket = 1 Block
All keys that hash to bucket stored in the block Intuition: keys in a bucket usually accessed together No need for linked lists of keys …
66
Adapting to Disk How do we handle this?
67
Adapting to disk 1 Hash Bucket = 1 Block
All keys that hash to bucket stored in the block Intuition: keys in a bucket usually accessed together No need for linked lists of keys … … but need linked list of blocks (overflow blocks)
68
Adapting to Disk
69
Adapting to disk Bucket Id Disk Address mapping Contiguous blocks
Store mapping in main memory Too large? Dynamic Linear and Extensible hash tables
70
Beware of claims that assume 1 I/O for hash tables and 3 I/Os for B-Tree!!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.