3.
B-Tree IndexB-Tree Index• Standard use index in relational databases in a B-TreeStandard use index in relational databases in a B-Treeindex.index.• Allows for rapid tree traversal searching through anAllows for rapid tree traversal searching through anupside-down tree structureupside-down tree structure• Reading a single record from a very large table using aReading a single record from a very large table using aB-Tree index, can often result in a few block reads—B-Tree index, can often result in a few block reads—even when the index and table are millions of blocks ineven when the index and table are millions of blocks insize.size.• Any index structure other than a B-Tree index is subjectAny index structure other than a B-Tree index is subjectto overflow.to overflow.– Overflow is where any changes made to tables will not haveOverflow is where any changes made to tables will not haverecords added into the original index structure, but rather tackedrecords added into the original index structure, but rather tackedon the end.on the end.
4.
What is a B-Tree?What is a B-Tree?• B-tree is a specialized multiway treeB-tree is a specialized multiway treedesigned especially for use on disk.designed especially for use on disk.• B-Tree consists of a root node, branchB-Tree consists of a root node, branchnodes and leaf nodes containing thenodes and leaf nodes containing theindexed field values in the ending (or leaf)indexed field values in the ending (or leaf)nodes of the tree.nodes of the tree.
5.
B-Tree CharacteristicsB-Tree Characteristics• In a B-tree each node may contain a large number ofIn a B-tree each node may contain a large number ofkeyskeys• B-tree is designed to branch out in a large number ofB-tree is designed to branch out in a large number ofdirections and to contain a lot of keys in each node sodirections and to contain a lot of keys in each node sothat the height of the tree is relatively smallthat the height of the tree is relatively small• Constraints that tree is always balancedConstraints that tree is always balanced• Space wasted by deletion, if any, never becomesSpace wasted by deletion, if any, never becomesexcessiveexcessive• Insert and deletions are simple processesInsert and deletions are simple processes– Complicated only under special circumstancesComplicated only under special circumstances-Insertion into a node that is already full or a deletion from a-Insertion into a node that is already full or a deletion from anode makes it less then half fullnode makes it less then half full
6.
Characteristics of a B-Tree of OrderCharacteristics of a B-Tree of OrderPP• Within each node, KWithin each node, K11 < K< K22 < .. < K< .. < Kp-1p-1• Each node has at most p tree pointerEach node has at most p tree pointer• Each node, except the root and leaf nodes, hasEach node, except the root and leaf nodes, hasat least ceil(p/2) tree pointers, The root node hasat least ceil(p/2) tree pointers, The root node hasat least two tree pointers unless it is the onlyat least two tree pointers unless it is the onlynode in the tree.node in the tree.• All leaf nodes are at the same level. Leaf nodeAll leaf nodes are at the same level. Leaf nodehave the same structure as internal nodeshave the same structure as internal nodesexcept that all of their tree pointer Pexcept that all of their tree pointer Pii are null.are null.
7.
B-Tree InsertionB-Tree Insertion1)1) B-tree starts with a single root node (which is also a leaf node) atB-tree starts with a single root node (which is also a leaf node) atlevel 0.level 0.2)2) Once the root node is full with p – 1 search key values and whenOnce the root node is full with p – 1 search key values and whenattempt to insert another entry in the tree, the root node splits intoattempt to insert another entry in the tree, the root node splits intotwo nodes at level 1.two nodes at level 1.3)3) Only the middle value is kept in the root node, and the rest of theOnly the middle value is kept in the root node, and the rest of thevalues are split evenly between the other two nodes.values are split evenly between the other two nodes.4)4) When a nonroot node is full and a new entry is inserted into it,When a nonroot node is full and a new entry is inserted into it,that node is split into two nodes at the same level, and the middlethat node is split into two nodes at the same level, and the middleentry is moved to the parent node along with two pointers to theentry is moved to the parent node along with two pointers to thenew split nodes.new split nodes.5)5) If the parent node is full, it is also split.If the parent node is full, it is also split.6)6) Splitting can propagate all the way to the root node, creating aSplitting can propagate all the way to the root node, creating anew level if the root is split.new level if the root is split.
8.
B-Tree DeletionB-Tree Deletion1)1) If deletion of a value causes a node to be lessIf deletion of a value causes a node to be lessthan half full, it is combined with it neighboringthan half full, it is combined with it neighboringnodes, and this can also propagate all the waynodes, and this can also propagate all the wayto the root.to the root.- Can reduce the number of tree levels.- Can reduce the number of tree levels.*Shown by analysis and simulation that, after numerous random insertions and*Shown by analysis and simulation that, after numerous random insertions anddeletions on a B-tree, the nodes are approximately 69 percent full whendeletions on a B-tree, the nodes are approximately 69 percent full whenthe number of values in the tree stabilizes. If this happens , node splittingthe number of values in the tree stabilizes. If this happens , node splittingand combining will occur only rarely, so insertion and deletion becomeand combining will occur only rarely, so insertion and deletion becomequite efficient.quite efficient.
9.
B-tree of Order 5 ExampleB-tree of Order 5 Example• All internal nodes have at least ceil(5 / 2) = ceil(2.5) = 3 childrenAll internal nodes have at least ceil(5 / 2) = ceil(2.5) = 3 children(and hence at least 2 keys), other then the root node.(and hence at least 2 keys), other then the root node.• The maximum number of children that a node can have is 5 (soThe maximum number of children that a node can have is 5 (sothat 4 is the maximum number of keys)that 4 is the maximum number of keys)• each leaf node must contain at least 2 keyseach leaf node must contain at least 2 keys
10.
B-Tree Order 5 InsertionB-Tree Order 5 Insertion• Originally we have an empty B-tree of order 5Originally we have an empty B-tree of order 5• Want to insert C N G A H E K Q M F W L T Z D P R X YWant to insert C N G A H E K Q M F W L T Z D P R X YSS• Order 5 means that a node can have a maximum of 5Order 5 means that a node can have a maximum of 5children and 4 keyschildren and 4 keys• All nodes other than the root must have a minimum of 2All nodes other than the root must have a minimum of 2keyskeys• The first 4 letters get inserted into the same nodeThe first 4 letters get inserted into the same node
11.
B-Tree Order 5 Insertion Cont.B-Tree Order 5 Insertion Cont.• When we try to insert the H, we find no room in thisWhen we try to insert the H, we find no room in thisnode, so we split it into 2 nodes, moving the mediannode, so we split it into 2 nodes, moving the medianitem G up into a new root node.item G up into a new root node.
12.
B-Tree Order 5 Insertion Cont.B-Tree Order 5 Insertion Cont.• Inserting E, K, and Q proceeds withoutInserting E, K, and Q proceeds withoutrequiring any splitsrequiring any splits
13.
B-Tree Order 5 Insertion Cont.B-Tree Order 5 Insertion Cont.• Inserting M requires a splitInserting M requires a split
14.
B-Tree Order 5 Insertion Cont.B-Tree Order 5 Insertion Cont.• The letters F, W, L, and T are then addedThe letters F, W, L, and T are then addedwithout needing any splitwithout needing any split
15.
B-Tree Order 5 Insertion Cont.B-Tree Order 5 Insertion Cont.• When Z is added, the rightmost leaf must be split. TheWhen Z is added, the rightmost leaf must be split. Themedian item T is moved up into the parent nodemedian item T is moved up into the parent node
16.
B-Tree Order 5 Insertion Cont.B-Tree Order 5 Insertion Cont.• The insertion of D causes the leftmost leaf to be split. D happensThe insertion of D causes the leftmost leaf to be split. D happensto be the median key and so is the one moved up into the parentto be the median key and so is the one moved up into the parentnode.node.• The letters P, R, X, and Y are then added without any need ofThe letters P, R, X, and Y are then added without any need ofsplittingsplitting
17.
B-Tree Order 5 Insertion Cont.B-Tree Order 5 Insertion Cont.• Finally, when S is added, the node with N, P, Q, and R splits,Finally, when S is added, the node with N, P, Q, and R splits,sending the median Q up to the parent.sending the median Q up to the parent.• The parent node is full, so it splits, sending the median M up toThe parent node is full, so it splits, sending the median M up toform a new root node.form a new root node.
18.
B-Tree Order 5 DeletionB-Tree Order 5 Deletion• Initial B-TreeInitial B-Tree
19.
B-Tree Order 5 Deletion Cont.B-Tree Order 5 Deletion Cont.• Delete HDelete H• Since H is in a leaf and the leaf has more than theSince H is in a leaf and the leaf has more than theminimum number of keys, we just remove it.minimum number of keys, we just remove it.
20.
B-Tree Order 5 Deletion Cont.B-Tree Order 5 Deletion Cont.• Delete T.Delete T.• Since T is not in a leaf, we find its successor (the next item in ascendingSince T is not in a leaf, we find its successor (the next item in ascendingorder), which happens to be W.order), which happens to be W.• Move W up to replace the T. That way, what we really have to do is toMove W up to replace the T. That way, what we really have to do is todelete W from the leaf .delete W from the leaf .
21.
B+- Tree CharacteristicsB+- Tree Characteristics• Data records are only stored in the leaves.Data records are only stored in the leaves.• Internal nodes store just keys.Internal nodes store just keys.• Keys are used for directing a search to theKeys are used for directing a search to theproper leaf.proper leaf.• If a target key is less than a key in an internalIf a target key is less than a key in an internalnode, then the pointer just to its left is followed.node, then the pointer just to its left is followed.• If a target key is greater or equal to the key inIf a target key is greater or equal to the key inthe internal node, then the pointer to its right isthe internal node, then the pointer to its right isfollowed.followed.• B+ Tree combines features of ISAM (IndexedB+ Tree combines features of ISAM (IndexedSequential Access Method) and B Trees.Sequential Access Method) and B Trees.
22.
B+- Tree Characteristics Cont.B+- Tree Characteristics Cont.• Implemented on disk, it is likely that theImplemented on disk, it is likely that theleaves contain key, pointer pairs whereleaves contain key, pointer pairs wherethe pointer field points to the record ofthe pointer field points to the record ofdata associated with the key.data associated with the key.– allows the data file to exist separately fromallows the data file to exist separately fromthe B+ tree, which functions as an "index"the B+ tree, which functions as an "index"giving an ordering to the data in the data file.giving an ordering to the data in the data file.
23.
B+- Tree Characteristics Cont.B+- Tree Characteristics Cont.• Very Fast SearchingVery Fast Searching• Insertion and deletion are expensive.Insertion and deletion are expensive.
24.
Formula n-order B+ tree with a height of hFormula n-order B+ tree with a height of h• Maximum number of keys is nMaximum number of keys is nhh• Minimum number of keys is 2(n / 2)Minimum number of keys is 2(n / 2)h − 1h − 1
25.
B+ tree of order 200 ExampleB+ tree of order 200 Example• Leaves can each contain up to 199 keysLeaves can each contain up to 199 keys• Assuming that the root node has at least 100Assuming that the root node has at least 100childrenchildren• A 2 level B+ tree that meets these assumptionsA 2 level B+ tree that meets these assumptionscan store about 9,900 records, since there are atcan store about 9,900 records, since there are atleast 100 leaves, each containing at least 99least 100 leaves, each containing at least 99keys.keys.• A 3 level B+ tree of this type can store about 1A 3 level B+ tree of this type can store about 1million keys. A 4 level B+ tree can store up tomillion keys. A 4 level B+ tree can store up toabout 100 million keys.about 100 million keys.
27.
B+- Tree order 3 InsertionB+- Tree order 3 Insertion• Insert value 5, 8, 1, 7Insert value 5, 8, 1, 7• Inserting value 5Inserting value 5• Since the node is empty, the value must beSince the node is empty, the value must beplaced in the leaf node.placed in the leaf node.
28.
B+- Tree Insertion Cont.B+- Tree Insertion Cont.• Inserting value 8Inserting value 8• Since the node has room, we insert the newSince the node has room, we insert the newvalue.value.
29.
B+- Tree Insertion Cont.B+- Tree Insertion Cont.• Insert value 1Insert value 1• Since the node is full, it must be split into two nodes.Since the node is full, it must be split into two nodes.• Each node is half full.Each node is half full.
30.
B+- Tree Insertion Cont.B+- Tree Insertion Cont.• Inserting value 7.Inserting value 7.
31.
B+- Tree DeletionB+- Tree Deletion• Initial TreeInitial Tree
32.
B+- Tree Deletion Cont.B+- Tree Deletion Cont.• Delete Value 9Delete Value 9• Since the node is not less than half full, theSince the node is not less than half full, thetree is correct.tree is correct.
33.
B+- Tree Deletion Cont.B+- Tree Deletion Cont.• Deleting value 8Deleting value 8• The node is less then half full, the values areThe node is less then half full, the values areredistributed from the node on the left because it is full.redistributed from the node on the left because it is full.• The parent node is adjusted to reflect the change.The parent node is adjusted to reflect the change.
34.
ReferencesReferences• Beginning Database Design By Gavin PowellBeginning Database Design By Gavin Powell• Database System Concepts By Silberschatz,Database System Concepts By Silberschatz,Korth, SudarshanKorth, Sudarshan• Fundamentals of Database Systems By Elmasri,Fundamentals of Database Systems By Elmasri,NavatheNavathe• http://http://dns.mec.ac.in/notes/ds/bpdns.mec.ac.in/notes/ds/bp lus.htmlus.htm• http://cis.stvincent.edu/swd/btree/btree.hthttp://cis.stvincent.edu/swd/btree/btree.htmlml
¿Le ha llamado la atención una diapositiva en particular?
Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.
Be the first to comment