Chapter 18
Indexing
Structures for Files
In this chapter we assume that a file already exists with some primary
organization such as the unordered, ordered, or hashed organizations that were
described in Chapter 17. We will describe additional auxiliary access structures called indexes, which are used to speed up the
retrieval of records in response to certain search conditions. The index
structures are additional files on disk that provide secondary access paths, which provide alternative ways to access
the records without affecting the physical place-ment of records in the primary
data file on disk. They enable efficient access to records based on the indexing fields that are used to
construct the index. Basically, any field
of the file can be used to create an index, and multiple indexes on different
fields—as well as indexes on multiple
fields—can be constructed on the same file. A variety of indexes are
possible; each of them uses a particular data structure to speed up the search.
To find a record or records in the data file based on a search condition on an
indexing field, the index is searched, which leads to pointers to one or more
disk blocks in the data file where the required records are located. The most
prevalent types of indexes are based on ordered files (single-level indexes)
and tree data structures (multilevel indexes, B+-trees). Indexes can also be
constructed based on hashing or other search data structures. We also discuss
indexes that are vectors of bits called bitmap
indexes.
We
describe different types of single-level ordered indexes—primary, secondary,
and clustering—in Section 18.1. By viewing a single-level index as an ordered
file, one can develop additional indexes for it, giving rise to the concept of
multilevel indexes. A popular indexing scheme called ISAM (Indexed Sequential Access Method) is based on this idea. We discuss multilevel
tree-structured indexes in Section
18.2. In Section 18.3 we describe B-trees and B+-trees, which are
data structures that are commonly used in DBMSs to implement dynamically
changing mul-tilevel indexes. B+-trees have become a commonly
accepted default structure for generating indexes on demand in most relational
DBMSs. Section 18.4 is devoted to alternative ways to access data based on a
combination of multiple keys. In Section 18.5 we discuss hash indexes and
introduce the concept of logical indexes, which give an additional level of
indirection from physical indexes, allowing for the physical index to be
flexible and extensible in its organization. In Section 18.6 we discuss
multikey indexing and bitmap indexes used for searching on one or more keys.
Section 18.7 summarizes the chapter.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.