Indexing
Indexing
Indexing
Index structure:
Indexes can be created using some database columns.
o The first column of the database is the search key that contains a copy of the
primary key or candidate key of the table. The values of the primary key are
stored in sorted order so that the corresponding data can be accessed easily.
o The second column of the database is the data reference. It contains a set of
pointers holding the address of the disk block where the value of the
particular key can be found.
Indexing Methods
Ordered indices
The indices are usually sorted to make searching faster. The indices which are sorted
are known as ordered indices.
Example: Suppose we have an employee table with thousands of record and each of
which is 10 bytes long. If their IDs start with 1, 2, 3....and so on and we have to search
student with ID-543.
o In the case of a database with no index, we have to search the disk block from
starting till it reaches 543. The DBMS will read the record after reading
543*10=5430 bytes.
o In the case of an index, we will search using indexes and the DBMS will read
the record after reading 542*2= 1084 bytes which are very less compared to
the previous case.
Primary Index
o If the index is created on the basis of the primary key of the table, then it is
known as primary indexing. These primary keys are unique to each record and
contain 1:1 relation between the records.
o As primary keys are stored in sorted order, the performance of the searching
operation is quite efficient.
o The primary index can be classified into two types: Dense index and Sparse
index.
Dense index
o The dense index contains an index record for every search key value in the
data file. It makes searching faster.
o In this, the number of records in the index table is same as the number of
records in the main table.
o It needs more space to store index record itself. The index records have the
search key and a pointer to the actual record on the disk.
Sparse index
o In the data file, index record appears only for a few items. Each item points to
a block.
o In this, instead of pointing to each record in the main table, the index points
to the records in the main table in a gap.
Clustering Index
o A clustered index can be defined as an ordered data file. Sometimes the index
is created on non-primary key columns which may not be unique for each
record.
o In this case, to identify the record faster, we will group two or more columns
to get the unique value and create index out of them. This method is called a
clustering index.
o The records which have similar characteristics are grouped, and indexes are
created for these group.
o If you want to find the record of roll 111 in the diagram, then it will search the
highest entry which is smaller than or equal to 111 in the first level index. It
will get 100 at this level.
o Then in the second index level, again it does max (111) <= 111 and gets 110.
Now using the address 110, it goes to the data block and starts searching
each record till it gets 111.
o This is how a search is performed in this method. Inserting, updating or
deleting is also done in the same manner.