0% found this document useful (0 votes)
150 views24 pages

B Trees and B Trees

B-trees are balanced search trees commonly used as indexes in database systems. They allow rapid searching by storing data in an upside-down tree structure. Insertion and deletion operations in B-trees are efficient, taking O(log n) time. When records are added or removed, nodes are split or merged to maintain the balanced structure and minimize disk access.

Uploaded by

Adhiraj Goel
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
150 views24 pages

B Trees and B Trees

B-trees are balanced search trees commonly used as indexes in database systems. They allow rapid searching by storing data in an upside-down tree structure. Insertion and deletion operations in B-trees are efficient, taking O(log n) time. When records are added or removed, nodes are split or merged to maintain the balanced structure and minimize disk access.

Uploaded by

Adhiraj Goel
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 24

Adhiraj Goel

1RV07IS004
Preview
B-Tree Indexing
The History
B-Tree
B-Tree Characteristics
B-Tree Example
B-Tree Index
Standard use index in relational databases in a B-Tree
index.
Allows for rapid tree traversal searching through an
upside-down tree structure
Reading a single record from a very large table using a B-
Tree index, can often result in a few block reads—even
when the index and table are millions of blocks in size.
Any index structure other than a B-Tree index is subject to
overflow.
 Overflow is where any changes made to tables will not have records
added into the original index structure, but rather tacked on the
end.
The History

The slowest part of any transaction is disk access.

Earlier secondary storage used algorithms like binary searching
of indexes. Even these algorithms had many drawbacks.

These drawbacks can be broken down to specific problems,
Insertion and Deletion should be as fast as searching and
searching should be faster than binary searching.

This led to the development of B-tree.

B-tree was developed using multilevel indexing where many
levels of indexing were used to identify and reach a location.

Even though there was substantial increase in performance
even B-trees had itss drawback.
What is a B-Tree?
Definition
A balanced search tree in which every node has between
m/2 and m children, where m>1 is a fixed integer. M is the
order. The root may have as few as 2 children. This is a good
structure if much of the tree is in slow memory (disk),
since the height, and hence the number of accesses, can be
kept small, say one or two, by picking a large m.
M is the height of a tree, the maximum number of children
of nodes in a B-tree.
B-Tree Characteristics
In a B-tree each node may contain a large number of keys
B-tree is designed to branch out in a large number of
directions and to contain a lot of keys in each node so that
the height of the tree is relatively small
Constraints that tree is always balanced
Space wasted by deletion, if any, never becomes excessive
Insert and deletions are simple processes
 Complicated only under special circumstances
-Insertion into a node that is already full or a deletion from a node
makes it less then half full
Characteristics of a B-Tree of Order P
Within each node, K1 < K2 < .. < Kp-1
Each node has at most p tree pointer
Each node, except the root and leaf nodes, has at
least ceil(p/2) tree pointers, The root node has at
least two tree pointers unless it is the only node in
the tree.
All leaf nodes are at the same level. Leaf node have
the same structure as internal nodes except that all
of their tree pointer Pi are null.
Search
• Search(x,k)
– while i ≤ n[x] and k> keyi[x]
• increment i
– if i ≤ n[x] and k = keyi[x]
• then return (x,i)
– if leaf[x]
• then return nil
• else return Search(ci[x],k)
• Run time in each node is O(t)
• Height of tree is O(logt n)
• Total run time is O(t logt n)
B-Tree Insertion
1) B-tree starts with a single root node (which is also a leaf node) at
level 0.
2) Once the root node is full with p – 1 search key values and when
attempt to insert another entry in the tree, the root node splits into
two nodes at level 1.
3) Only the middle value is kept in the root node, and the rest of the
values are split evenly between the other two nodes.
4) 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 middle entry
is moved to the parent node along with two pointers to the new split
nodes.
5) If the parent node is full, it is also split.
6) Splitting can propagate all the way to the root node, creating a new
level if the root is split.
B-Tree Deletion
 If k is in an internal node, swap k with its inorder
successor (in a leaf node) then delete k from the
leaf node.
 Deleting k from a leaf x may cause n[x]<t-1.
– if the left sibling has more than t-1 elements, we can
transfer an element from there to retain the property
n[x]≥t-1. To retain the order of the elements, this is
done by moving the largest element in the left sibling to
the parent and moving the parent to the left most
position in x
– else, if right sibling has more than t-1 element,
transfer from right sibling through the parent.
– else, merge x with left sibling. One pointer
from the parent needs to be removed in this
case. This is done by moving the parent
element into the new merged node. If the parent
now has fewer than t-1 element, recurse on the
parent.
 Height of the tree may be reduced by 1 if
root contains no element after delete.
 Can also do delete in one pass down, similar
to insert (see textbook).
B-tree

of Order 5 Example
All internal nodes have at least ceil(5 / 2) = ceil(2.5) = 3 children (and
hence at least 2 keys), other then the root node.
 The maximum number of children that a node can have is 5 (so that 4
is the maximum number of keys)
 each leaf node must contain at least 2 keys
B-Tree Order 5 Insertion
Originally 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 Y S
Order 5 means that a node can have a maximum of 5
children and 4 keys
All nodes other than the root must have a minimum of 2
keys
The first 4 letters get inserted into the same node
B-Tree Order 5 Insertion Cont.
When we try to insert the H, we find no room in this
node, so we split it into 2 nodes, moving the median item
G up into a new root node.
B-Tree Order 5 Insertion Cont.
Inserting E, K, and Q proceeds without
requiring any splits
B-Tree Order 5 Insertion Cont.
Inserting M requires a split
B-Tree Order 5 Insertion Cont.
The letters F, W, L, and T are then added without
needing any split
B-Tree Order 5 Insertion Cont.
When Z is added, the rightmost leaf must be split. The
median item T is moved up into the parent node
B-Tree Order 5 Insertion Cont.
 The insertion of D causes the leftmost leaf to be split. D happens to
be the median key and so is the one moved up into the parent node.
 The letters P, R, X, and Y are then added without any need of
splitting
B-Tree Order 5 Insertion Cont.
 Finally, when S is added, the node with N, P, Q, and R splits,
sending the median Q up to the parent.
 The parent node is full, so it splits, sending the median M up to
form a new root node.
B-Tree Order 5 Deletion
Initial B-Tree
B-Tree Order 5 Deletion Cont.
Delete H
Since H is in a leaf and the leaf has more than the
minimum number of keys, we just remove it.
B-Tree Order 5 Deletion Cont.
 Delete T.
 Since T is not in a leaf, we find its successor (the next item in ascending
order), which happens to be W.
 Move W up to replace the T. That way, what we really have to do is to delete W
from the leaf .
Summary
• Minimize the number of disk access by
increasing the branching factor.
• Height O(logt n), where t is min degree
• Dynamic set operations search, successor,
predecessor, min, max, insert, delete run
using O(logt n) disk accesses.

You might also like