B+ Tree and Hashing
B+ Tree and Hashing
• B+ Tree Properties
• B+ Tree Searching
• B+ Tree Insertion
• B+ Tree Deletion
• Static Hashing
• Extendable Hashing
• Questions in pass papers
B+ Tree Properties
B+ Tree Properties
– Balanced Tree
• Same height for paths from root to leaf
• Given a search-key K, nearly same access time
for different K values
– B+ Tree is constructed by parameter n
• Each Node (except root) has n/2 to n pointers
• Each Node (except root) has n/2 -1 to n-1
search-key values
Case for n=3 General case for n
K1 K2 K1 K2 Kn-1
P1 P2 P3 P1 P2 Pn-1 Pn
B+ Tree Properties Tutorial 8.1
• Search keys are sorted in order
– K1 < K2 < … <Kn-1
•Non-leaf Node
–Each key-search values in subtree Si K1 K2
pointed by Pi < Ki, >=Ki-1 P1 P2 P3
Key values in S1 < K1
S1 S2 S3
K1 <= Key values in S2 < K2
•Leaf Node P3
K1 K2 …
–Pi points record or bucket with P 1 P 2
…
B+ Tree Insertion Tutorial 8.3
• Overflow
– When number of search-key values exceed n-1
7 9 13 15 Insert 8
–Leaf Node
•Split into two nodes:
–1st node contains (n-1)/2 values
–2nd node contains remaining values
–Copy the smallest search-key value of the 2nd node
to parent node
9
7 8 9 13 15
B+ Tree Insertion Tutorial 8.3
• Overflow
– When number of search-key values exceed n-1
7 9 13 15 Insert 8
–Non-Leaf Node
•Split into two nodes:
–1st node contains n/2 -1 values
–Move the smallest of the remaining values, together
with pointer, to the parent
–2nd node contains the remaining values
9
7 8 13 15
B+ Tree Insertion Tutorial 8.3
• Example 1: Construct a B+ tree for (1,
4, 7, 10, 17, 21, 31, 25, 19, 20, 28, 42)
with n=4.
7
1 4 7
1 4 7 10
7 17
1 4 7 10 17 21
B+ Tree Insertion
1 4 7 10 17 21 25 31
17
7 20 25
1 4 7 10 17 19 20 21 25 31
B+ Tree Insertion Tutorial 8.3
• 1, 4, 7, 10, 17, 21, 31, 25, 19, 20, 28, 42
17
7 20 25 31
1 4 17 19 31 42
7 10 20 21 25 28
B+ Tree Insertion Tutorial 8.3
• Example 2: n=3, insert 4 into the
9 10
following B+Tree
7 8 Subtree Subtree
C D
2 5 Leaf Leaf
A B
7 10
4 8 C D
2 4 5 A B
B+ Tree Deletion Tutorial 8.4
• Underflow 9 10 Delete 10
– When number of search-key values < n/2 -1
–Leaf Node
•Redistribute to sibling 13 18
9 10 13 14 9 13 14
B+ Tree Deletion Tutorial 8.4
9 10 Delete 10
–Non-Leaf Node
13 18
•Redistribute to sibling
•Through parent 9 10 14 15 16
node
•Delete the right node, and pointers
in parent
13 18 22 18 22
9 10 14 16 9 13 14 16
B+ Tree Deletion Tutorial 8.4
• Example 3: n=3, delete 3
5 20
3 8 Subtree
A
1 3
20
5 8 Subtree
A
1
B+ Tree Deletion Tutorial 8.4
• Example 4: Delete 28, 31, 21, 25, 19
20
7 17 25 31 50
1 4 7 10 17 19 20 21 25 28 31 42
20
7 17 25 50
1 4 7 10 17 19 20 21 25 31 42
B+ Tree Deletion Tutorial 8.4
• Example 4: Delete 28, 31, 21, 25, 19
7 17 20 50
1 4 7 10 17 19 20 25 42
7 17 50
1 4 7 10 17 20 42
Static Hashing Tutorial 8.5
• A hash function h maps a search-key value K to an
address of a bucket
• Commonly used hash function hash value mod nB
where nB is the no. of buckets
• E.g. h(Brighton) = (2+18+9+7+8+20+15+14) mod
10 = 93 mod 10 = 3 No. of buckets = 10
bucket1
Data bucket
i2
bucket2
i3
bucket3
2 3 3
00 000
2 001
01
10 010 2
11 011
100
1 101
110 1
111
Extendable Hashing Tutorial 8.6
• Splitting (Case 2 ij< i)
– More than one entry in bucket address table point to data
bucket j
– split data bucket j to j, z; ij = iz = ij +1; Adjust the pointers
previously point to j to j and z; rehash all items previously
in j;
2
3 2
3
000
001 000 2
010 001
2 010
011
100 011
100 2
101
110 101
1
111 110
111
2
Extendable Hashing Tutorial 8.6
• Example 5: Suppose the hash function is h(x) = x
mod 8 and each bucket can hold at most two
records. Show the extendable hash structure after
inserting 1, 4, 5, 7, 8, 2, 20. 1 4 5 7 8 2 20
001 100 101 111 000 010 100
0 0
1 1
4
2 1
8
00
2
1 1 01
4
0 1 10 5
1 11 2
1
7
4
5
Extendable Hashing Tutorial 8.6
inserting 1, 4, 5, 7, 8, 2, 20
1 4 5 7 8 2 20
001 100 101 111 000 010 100
2
3 1
2 8
000
2 1
001 2
8
00
010 2
2
01
011
2
10 3
100
11 4
2 101 20
4 110 3
5
111 5
2
7 2
7
96-97 Final Q9. Tutorial 8.7
1
1
2
8
00
01 2
10 4
5
11
2
7
001
010
011
3
100
4
101
20
110
3
111
5