Wat is een bitmapindex?
Een bitmapindex is een specifiek soort gegevensstructuur. In de informatica zijn gegevensstructuren methoden voor het ordenen en classificeren van gegevens om deze op de meest efficiënte manier te gebruiken. Het voordeel van het gebruik van deze specifieke gegevensstructuur is dat bepaalde informatie sneller kan worden verwerkt en een kleinere hoeveelheid hardwaregeheugen vereist. In het bijzonder wordt een bitmapindex vaak gebruikt bij het omgaan met data warehousing.
Het concept van "datawarehousing" verwijst naar een methode voor het organiseren van enorme hoeveelheden gegevens. Wanneer de gegevens zijn georganiseerd, is het mogelijk om verschillende trends of patronen te doorzoeken en te selecteren, zodat deze beter kunnen worden begrepen. Dit betekent dat de gegevens in een tabel worden gesorteerd en worden gedefinieerd door getallen die verschillende waarden in de gegevens vertegenwoordigen. Over het algemeen zijn gegevensindexen van dit type efficiënter wanneer de gegevens die worden gedefinieerd niet herhaaldelijk dezelfde waarden bevatten. Een bitmapindex wordt daarentegen het best gebruikt wanneer waarden worden herhaald.
Dit soort herhaling kan worden omschreven als gegevens met een lage kardinaliteit - dat wil zeggen wanneer de weergegeven informatie slechts een zeer klein aantal uitkomsten kan hebben. Daarom zou dezelfde waarde meerdere keren worden herhaald. Een voorbeeld hiervan is wanneer waarden mannelijk en vrouwelijk definiëren. Er zijn slechts twee verschillende manieren om het geslacht te beschrijven, dus elke kolom in de tabel zou een lage cardinaliteit hebben en perfect zijn om weer te geven met een bitmapindex.
Hoewel het weergeven van dit soort gegevens in een index het mogelijk maakt deze sneller te lezen, is er een afweging. De sterk gecondenseerde structuur maakt het gemakkelijk leesbaar, maar tegelijkertijd moeten gegevens meerdere keren door de CPU worden verwerkt om het te decomprimeren in eenvoudiger termen die de computer kan begrijpen. Bovendien kan het wijzigen van een bitmapindex zeer tijdrovend zijn. Omdat alles zeer systematisch en specifiek is, kan één ding dat moet worden veranderd, verandering in de hele structuur veroorzaken.
Een ander voordeel van bitmapindexen is dat ze zeer weinig geheugenopslag nodig hebben. Vaak bevat een database-index meer componenten dan de gegevens zelf en moet er extra ruimte worden opgeslagen. Bij gebruik van de bitmapindex is dit niet het geval. Het condenseert de gegevens in kleinere, gemakkelijker te lezen delen, waardoor ruimte wordt vrijgemaakt die niet hoeft te worden gebruikt.