Open In App

Bitmap Indexing in DBMS

Bitmap Indexing is a data indexing technique used in database management systems (DBMS) to improve the performance of read-only queries that involve large datasets. It involves creating a bitmap index, which is a data structure that represents the presence or absence of data values in a table or column.

In a bitmap index, each distinct value in a column is assigned a bit vector that represents the presence or absence of that value in each row of the table. The bit vector contains one bit for each row in the table, where a set bit indicates the presence of the corresponding value in the row, and a cleared bit indicates the absence of the value.



Bitmap Index Structure

A bitmap is the combination of two words: bit and map. A bit can be termed as the smallest unit of data in a computer and a map can be termed as a way of organizing things.

Bit: A bit is a basic unit of information used in computing that can have only one of two values either 0 or 1. The two values of a binary digit can also be interpreted as logical values true/false or Yes/No.



Bitmap Indexing is a special type of database indexing that uses bitmaps. This technique is used for huge databases when the column is of low cardinality and these columns are most frequently used in the query. 

Bitmap indexing is a data structure used in database management systems (DBMS) to efficiently represent and query large datasets with many attributes (columns). Bitmap indexes use a compact binary representation to store the occurrence of each value or combination of values in each attribute, allowing for fast, set-based operations.

Features of Bitmap Indexing in DBMS

Applications of Bitmap Indexing in DBMS

What is the Need for Bitmap Indexing?

The need for Bitmap Indexing will be clear through the below-given example:

For example, Let us say that a company holds an employee table with entries like EmpNo, EmpName, Job, New_Emp, and salary. Let us assume that the employees are hired once a year, therefore the table will be updated very less and will remain static most of the time. But the columns will be frequently used in queries to retrieve data like: No. of female employees in the company etc. In this case, we need a file organization method that should be fast enough to give quick results. But any of the traditional file organization methods are not that fast, therefore we switch to a better method of storing and retrieving data known as Bitmap Indexing. 

Bitmap indexing can be used to improve the performance of queries that involve complex logical operations, such as AND, OR, and NOT. The logical operations are performed on the bit vectors, which can be efficiently combined using bitwise operators.

Bitmap indexing is particularly useful for datasets with low cardinality columns, where each value appears in a large number of rows. It is also useful for read-only queries that involve aggregations, such as counting or summing values, as the bit vectors can be quickly scanned to retrieve the required data.

How Bitmap Indexing is Done?

In the above example of table employee, we can see that the column New_Emp has only two values Yes and No based upon the fact that the employee is new to the company or not. Similarly let us assume that the Job of the Employees is divided into 4 categories only i.e Manager, Analyst, Clerk, and Salesman. Such columns are called columns with low cardinality. Even though these columns have fewer unique values, they can be queried very often. 

Bit: A bit is a basic unit of information used in computing that can have only one of two values either 0 or 1. The two values of a binary digit can also be interpreted as logical values true/false or yes/no. 

In Bitmap Indexing these bits are used to represent the unique values in those low cardinality columns. This technique of storing the low cardinality rows in the form of bits is called bitmap indices. 

Continuing the Employee example, Given below is the Employee table.

BItmap_Indexing_1

If New_Emp is the data to be indexed, the content of the bitmap index is shown as four( As we have four rows in the above table) columns under the heading Bitmap Indices. Here Bitmap Index “Yes” has a value of 1001 because rows 1 and row four have the value “Yes” in column New_Emp. 

BItmap_Indexing_2

In this case, there are two such bitmaps, one for “New_Emp” Yes and one for “New_Emp” NO. It is easy to see that each bit in bitmap indices shows whether a particular row refers to a person who is New to the company or not. 

The above scenario is the simplest form of Bitmap Indexing. Most columns will have more distinct values. For example, the column Job here will have only 4 unique values (As mentioned earlier). Variations on the bitmap index can effectively index this data as well. For the Job column the bitmap Indexing is shown below: 

BItmap_Indexing_3

Now Suppose, If we want to find out the details for the Employee who is not new in the company and is a salesperson then we will run the query.

 SELECT * 
FROM Employee
WHERE New_Emp = "No" and Job = "Salesperson";

For this query, the DBMS will search the bitmap index of both columns and perform logical AND operation on those bits and find out the actual result: 

BItmap_Indexing_4

Here the result 0100 represents that the second row has to be retrieved as a result. 

Bitmap Indexing in SQL

The syntax for creating a bitmap index in SQL is given below.

CREATE BITMAP INDEX Index_Name

ON Table_Name (Column_Name);

For the above example of the employee table, the bitmap index on column New_Emp will be created as follows:  

CREATE BITMAP INDEX index_New_Emp
ON Employee (New_Emp);

Advantages of Bitmap Indexing

Disadvantages of Bitmap Indexing

FAQs on Bitmap Indexing

Q.1: What is indexing in Bitmaps?

Answer:

Indexing in the bitmap is a technique used to manage and improve the performance of read-only queries involving large datasets.

Q.2: Why is Bitmap Index used?

Answer:

Bitmap Index is used to reduce the response time for large classes and queries.

Q.3: Give some examples of Bitmap?

Answer:

Some examples of Bitmap are GIF, JPEG, PNG, etc.


Article Tags :