Indexing Structures For Files
Indexing Structures For Files
Slide 14- 11
An Example of a Secondary Index
Properties of Index Types
Multi-Level Indexes
• Because a single-level index is an ordered file, we can create
a primary index to the index itself;
• In this case, the original index file is called the first-level index
and the index to the index is called the second-level index.
• We can repeat the process, creating a third, fourth, ..., top
level until all entries of the top-level fit in one disk block
• A multi-level index can be created for any type of first-level
index (primary, secondary, clustering) as long as the first-
level index consists of more than one disk block
A Two-level Primary Index
Multi-Level Indexes
• Such a multi-level index is a form of search tree
• However, insertion and deletion of new index entries is a
severe problem because every level of the index is an
ordered file.
A Node in a Search Tree with Pointers
to Subtrees below It
• FIGURE 14.8
FIGURE 14.9
A search tree of order p = 3.
Dynamic Multilevel Indexes Using B Trees
and B+ Trees
• An insertion into a node that is not full is quite
efficient
• If a node is full the insertion causes a split into two
nodes
• Splitting may propagate to other tree levels
• A deletion is quite efficient if a node does not
become less than half full
• If a deletion causes a node to become less than half
full, it must be merged with neighboring nodes
Difference between B-tree and B+-tree
• In a B Tree, pointers to data records exist at all
levels of the tree
• In a B+ Tree, all pointers to data records exists at
the leaf-level nodes
• A B+ Tree can have less levels (or higher capacity of
search values) than the corresponding B Tree
Dynamic Multilevel Indexes Using B Trees
and B+ Trees
• Most multi-level indexes use B Tree or B+ Tree data
structures because of the insertion and deletion
problem
• This leaves space in each tree node (disk block) to allow for
new index entries
• These data structures are variations of search trees that
allow efficient insertion and deletion of new search
values.
• In B Tree and B+ Tree data structures, each node
corresponds to a disk block
• Each node is kept between half-full and completely full
B Tree Structures
The Nodes of a B+ tree
• FIGURE 14.11 The nodes of a B+-tree
• (a) Internal node of a B+-tree with q –1 search values.
• (b) Leaf node of a B+-tree with q – 1 search values and q – 1 data pointers.