2. Introduction Multiway Trees B Tree Application Structure Algo : Insert / Delete Avoid Taking Printout : Use RTF Outline in case needed 2 Agenda
3. Data Structures AVL Trees Red Black B-tree Hashing / Indexing Techniques Graphs Please Do Not Take Printout : Use RTF Outline in case needed 3
4. Path Has to be enjoyed Walking Walking in Rain !! Certification Effort ~ Satisfaction Please Do Not Take Printout : Use RTF Outline in case needed 4
5. Research Shoulders of Giants Research on an area to reach a level of expertise Mindmap and Research Path Please Do Not Take Printout : Use RTF Outline in case needed 5
6. B Tree Please Do Not Take Printout : Use RTF Outline in case needed 6
7. Methodology One Book to Another One Link to Another Avoid Taking Printout : Use RTF Outline in case needed 7
8. Binary Search Tree What happens if data is loaded in a binary search tree in this order 23, 32, 45, 11, 43 , 41 1,2,3,4,5,6,7,8 What is AVL tree Please Do Not Take Printout : Use RTF Outline in case needed 8
9. Multiway Trees Please Do Not Take Printout : Use RTF Outline in case needed 9 >= K2 >= K1 <K2 < K1
10. m-way trees Reduce the depth of the tree to O(logmn)with m-way trees mchildren, m-1 keys per node m = 10 : 106 keys in 6 levels vs 20 for a binary tree but ........
11. m-way trees But you have to search through the m keys in each node! Reduces your gain from having fewer levels!
13. Anand B B-trees All leaves are on the same level All nodes except for the root and the leaveshave at least m/2 children at most m children Each node is at least half full of keys
15. Disk Please Do Not Take Printout : Use RTF Outline in case needed 15 1 track = 5000 Chars 1 Cylinder = 20 tracks 1 disk unit = 200 cylinders
16. Time Taken Seek Time Latency Time Transmission Time Overcoming Latency Time ?? 72.5 + o.o5n millisec to read n chars
17. 3 level Please Do Not Take Printout : Use RTF Outline in case needed 17
18. Multiway Tree M – ary tree 3 levels : Cylinder , Track , Record : Index Seq (RDBMS) Tables with less change Please Do Not Take Printout : Use RTF Outline in case needed 18
19. BTree If level is 3, m =199 then what is N How many split per insertion ? Please Do Not Take Printout : Use RTF Outline in case needed 19
20. Multiway Trees : Application NDPL , Delhi: Electricity Billing 3 lakh consumers Table indexed as BTREE UCO Bank, Jaipur One DD takes 10 minutes to print Saviour : BTREE Please Do Not Take Printout : Use RTF Outline in case needed 20
21. B-trees - Insertion Insertion B-tree property : block is at least half-full of keys Insertion into block with m keys block overflows split block promote one key split parent if necessary if root is split, tree becomes one level deeper
27. Structure of Btree node firstPtr numEntries Entries[1.. M-1] End Entry key rightPtr End Entry Avoid Taking Printout : Use RTF Outline in case needed 27
28. Split Node : Final 0 4 3 median entry fromNdx 3 node 2 toNdx 2 rightPtr
29. Split Node : Final 4 4 3 median entry fromNdx 3 node 1 toNdx 2 rightPtr
31. Delete Delete Walk Through Reflow Borrow Left Borrow Right Combine Delete Mid Avoid Taking Printout : Use RTF Outline in case needed 31 Agenda
32. Delete : For 78 Please Do Not Take Printout : Use RTF Outline in case needed 32 Btree Delete Delete() Delete() Delete Mid() Reflow() Reflow() If shorter delete root 1 2 2 2 2 2
33. Btree Delete If (root null) print (“Attempt to delete from null tree”) Else shorter = delete (root, target) if Shorter delete root Return root Please Do Not Take Printout : Use RTF Outline in case needed 33 B Target = 78 1 2 2 2 2 2
34. Delete(root , deleteKey) If (root null) data does not exist Else entryNdx= searchNode(root, deleteKey) if found entry to be deleted if leaf node underflow=deleteEntry() else underflow=deleteMid (left) if underflow underflow=reflow() Please Do Not Take Printout : Use RTF Outline in case needed 34 B D Target = 78 1 2 2 2 2 2
35. Delete Else Part Else if deleteKey less than first entry subtree=firstPtr else subtree=rightPtr underflow= delete (subtree,deleteKey) if underflow underflow= reflow() Return underflow Please Do Not Take Printout : Use RTF Outline in case needed 35 B D Target = 78 1 2 2 2 2 2
36. Delete(root , deleteKey) If (root null) data does not exist Else entryNdx= searchNode(root, deleteKey) if found entry to be deleted if leaf node underflow=deleteEntry() else underflow=deleteMid (root,entryIndx,left) if underflow underflow=reflow(root,entryIndx) Please Do Not Take Printout : Use RTF Outline in case needed 36 B D D Target = 78 DM 1 2 2 2 2 2
37. Delete(root , deleteKey) Please Do Not Take Printout : Use RTF Outline in case needed 37 B If (root null) data does not exist Else entryNdx= searchNode(root, deleteKey) if found entry to be deleted if leaf node underflow=deleteEntry() else underflow=deleteMid (root,entryIndx,left) if underflow underflow=reflow(root,entryIndx) D D 74 replaces 78 1 2 2 2 1 2
38. Delete(root , deleteKey) If (root null) data does not exist Else entryNdx= searchNode(root, deleteKey) if found entry to be deleted if leaf node underflow=deleteEntry() else underflow=deleteMid (root,entryIndx,left) if underflow underflow=reflow(root,entryIndx) Please Do Not Take Printout : Use RTF Outline in case needed 38 B D D After Reflow 1 1 2 2 4
39. Delete Else Part Else if deleteKey less than first entry subtree=firstPtr else subtree=rightPtr underflow= delete (subtree,deleteKey) if underflow underflow= reflow(root,entryIndx) Return underflow Please Do Not Take Printout : Use RTF Outline in case needed 39 B D Before Reflow 1 1 2 2 4
40. Delete Else Part Else if deleteKey less than first entry subtree=firstPtr else subtree=rightPtr underflow= delete (subtree,deleteKey) if underflow underflow= reflow(root,entryIndx) Return underflow Please Do Not Take Printout : Use RTF Outline in case needed 40 B D After Reflow 0 4 2 4
41. BTREE Delete If (root null) print (“Attempt to delete from null tree”) Else shorter = delete (root, target) if Shorter delete root Return root Please Do Not Take Printout : Use RTF Outline in case needed 41 B 0 4 2 4
42. BTREE Delete If (root null) print (“Attempt to delete from null tree”) Else shorter = delete (root, target) if Shorter delete root Return root Please Do Not Take Printout : Use RTF Outline in case needed 42 B 4 2 4
43. Templates Please Do Not Take Printout : Use RTF Outline in case needed 43 3 4 2 1
44. Delete Please Do Not Take Printout : Use RTF Outline in case needed 44 1 2 2 2 2 2
45. Delete : For 78 Please Do Not Take Printout : Use RTF Outline in case needed 45 Btree Delete Delete() Delete() Delete Mid() Reflow() Reflow() If shorter delete root 1 2 2 2 2 2
46. Delete : Reflow 1: Try to borrow right. 2: If 1 failed try to borrow from left 3: Cannot Borrow (1,2 failed) Combine Please Do Not Take Printout : Use RTF Outline in case needed 46
47. Delete Reflow Underflow=false If RT->no > min Entries BorrowRight (root,entryNdx,LT,RT) Else If LT->no > min Entries BorrowLeft (root,entryNdx,LT,RT) Else combine (root,entryNdx,LT,RT) if root->no < min entries underflow=True Return underflow Please Do Not Take Printout : Use RTF Outline in case needed 47
48. Borrow Left Please Do Not Take Printout : Use RTF Outline in case needed 48 2 1 3 Node >= 74 < 78 Node >= 78 < 85
49. Combine Please Do Not Take Printout : Use RTF Outline in case needed 49 3 1 2 2 2
50. Combine Please Do Not Take Printout : Use RTF Outline in case needed 50 3 1 3 2 2
51. Combine Please Do Not Take Printout : Use RTF Outline in case needed 51 3 4 2 2
52. Combine Please Do Not Take Printout : Use RTF Outline in case needed 52 2 4 2 2
53. Delete Mid If leaf exchange data and delete leaf entry Else traverse right to locate predecessor deleteMid(right) if underflow reflow Please Do Not Take Printout : Use RTF Outline in case needed 53
54. Delete Mid Please Do Not Take Printout : Use RTF Outline in case needed 54 1 2 2 2 2 2 Case 1: To Delete 78 we replace with 74
55. Delete Mid Please Do Not Take Printout : Use RTF Outline in case needed 55 1 2 2 2 2 2 Case 2: To Delete 78 we replace with 76 Hence recursive call of Delete Mid to locate predecessor 2
56. order Please Do Not Take Printout : Use RTF Outline in case needed 56
57. Get the Order Right Keys are 4 Subtrees Max is 5 = Order is 5 Minimum = 3 (which is subtrees) Min Keys is 2 Please Do Not Take Printout : Use RTF Outline in case needed 57 4 2 4
58. 2-3 Tree Order 3 ….. So how many keys in a node This rule is valid for non root leaf Root can have 0, 2, 3 subtrees Please Do Not Take Printout : Use RTF Outline in case needed 58
59. 2 -3 Tree Please Do Not Take Printout : Use RTF Outline in case needed 59 1 2 2 2 2 2
60. 2-3-4 Tree Order 4 ….. So how many keys in a node This rule is valid for non root leaf Root can have 0, 2, 3 subtrees Please Do Not Take Printout : Use RTF Outline in case needed 60
67. B * Tree Space Usage BTREE nodes can be 50% Empty (1/2) So rule modified to two third (2/3) Also when node overflows instead of being split immed distributed with siblings And even when split happens all siblings are equally distributed (pg 462) Please Do Not Take Printout : Use RTF Outline in case needed 63
68. B+-trees B+ trees All the keys in the nodes are dummies Only the keys in the leaves point to “real” data Linking the leaves Ability to scan the collection in orderwithout passing through the higher nodes