Indexación de mapa de bits en DBMS

La indexación de mapas de bits es un tipo especial de indexación de bases de datos que utiliza mapas de bits . Esta técnica se usa para bases de datos enormes, cuando la columna es de baja cardinalidad y estas columnas se usan con mayor frecuencia en la consulta. 

Necesidad de indexación de mapa de bits: 
la necesidad de indexación de mapa de bits quedará clara a través del siguiente ejemplo: 
por ejemplo, digamos que una empresa tiene una tabla de empleados con entradas como EmpNo, EmpName, Job, New_Emp y salario. Supongamos que los empleados se contratan una vez al año, por lo que la tabla se actualizará muy poco y permanecerá estática la mayor parte del tiempo. Pero las columnas se usarán con frecuencia en consultas para recuperar datos como: Número de empleadas en la empresa, etc. En este caso, necesitamos un método de organización de archivos que debería ser lo suficientemente rápido para dar resultados rápidos. Pero cualquiera de los métodos tradicionales de organización de archivos no es tan rápido, por lo que cambiamos a un mejor método de almacenamiento y recuperación de datos conocido como indexación de mapa de bits. 

Cómo se realiza la indexación de mapa de bits: 
en el ejemplo anterior de la tabla de empleados, podemos ver que la columna New_Emp tiene solo dos valores, y No , según el hecho de que el empleado sea nuevo en la empresa o no. Del mismo modo, supongamos que el Trabajo de los Empleados se divide en 4 categorías solamente, es decir, Gerente, Analista, Oficinista y Vendedor. Tales columnas se denominan columnas con baja cardinalidad. Aunque estas columnas tienen menos valores únicos, se pueden consultar con mucha frecuencia. 

Bit: Bit es una unidad básica de información utilizada en informática que puede tener solo uno de dos valores, 0 o 1. Los dos valores de un dígito binario también se pueden interpretar como valores lógicos verdadero/falso o sí/no. 

En la indexación de mapas de bits, estos bits se utilizan para representar los valores únicos en esas columnas de baja cardinalidad. Esta técnica de almacenar las filas de baja cardinalidad en forma de bits se denomina índices de mapa de bits. 
Continuando con el ejemplo del empleado, a continuación se muestra la tabla de empleados: 
 

Si New_Emp son los datos que se indexarán, el contenido del índice de mapa de bits se muestra como cuatro (ya que tenemos cuatro filas en la tabla anterior) columnas bajo el encabezado Índices de mapa de bits. Aquí el índice de mapa de bits «Sí» tiene el valor 1001 porque la fila 1 y la fila cuatro tienen el valor «Sí» en la columna New_Emp. 

En este caso, hay dos mapas de bits, uno para “New_Emp” Sí y otro para “New_Emp” NO. Es fácil ver que cada bit en los índices de mapa de bits muestra si una fila en particular se refiere a una persona que es nueva en la empresa o no. 

El escenario anterior es la forma más simple de indexación de mapa de bits. La mayoría de las columnas tendrán valores más distintos. Por ejemplo, la columna Trabajo aquí tendrá solo 4 valores únicos (como se mencionó anteriormente). Las variaciones en el índice de mapa de bits también pueden indexar efectivamente estos datos. Para la columna Trabajo, la indexación de mapa de bits se muestra a continuación: 
 

Ahora supongamos que si queremos conocer los detalles del empleado que no es nuevo en la empresa y es un vendedor, ejecutaremos la consulta: 
 

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

Para esta consulta, el DBMS buscará el índice de mapa de bits de ambas columnas y realizará una operación AND lógica en esos bits y descubrirá el resultado real: 

Aquí, el resultado 0100 representa que la segunda columna debe recuperarse como resultado. 

Indexación de mapa de bits en SQL: la sintaxis para crear un índice de mapa de bits en sql se proporciona a continuación: 

CREATE BITMAP INDEX Index_Name
         ON Table_Name (Column_Name);

Para el ejemplo anterior de la tabla de empleados, el índice de mapa de bits en la columna New_Emp se creará de la siguiente manera:  

CREATE BITMAP INDEX index_New_Emp
        ON Employee (New_Emp);

ventajas –  

  • Eficiencia en términos de inserción, eliminación y actualización.
  • Recuperación más rápida de registros

Desventajas – 

  • Solo apto para mesas grandes.
  • La indexación de mapas de bits requiere mucho tiempo

Publicación traducida automáticamente

Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *