Back to IF3140 Sistem Basis Data

Topic

Questions/Cues

  • Apa itu Bitmap Index dan kapan ia berguna?

  • Bagaimana cara kerja query pada Bitmap Index?

  • Bagaimana cara membuat dan menghapus indeks di SQL?

Konsep Bitmap Index

Bitmap Index adalah jenis indeks khusus yang dirancang untuk atribut dengan jumlah nilai unik yang relatif sedikit (low cardinality), seperti ‘gender’ (Pria, Wanita), ‘negara’, atau ‘status’ (Aktif, Non-aktif). Untuk setiap nilai unik, sebuah bitmap (serangkaian bit 0 dan 1) dibuat. Panjang bitmap ini sama dengan jumlah baris di tabel. Bit ke-i akan bernilai 1 jika baris ke-i memiliki nilai tersebut, dan 0 jika tidak.

Query Menggunakan Operasi Bitwise

Keunggulan utama bitmap index adalah kemampuannya menjawab query yang melibatkan beberapa atribut secara sangat efisien. Ini dilakukan dengan menggunakan operasi bitwise yang sangat cepat pada bitmap-bitmap yang relevan:

  • AND (Intersection): Untuk kondisi ‘dan’.

  • OR (Union): Untuk kondisi ‘atau’.

  • NOT (Complementation): Untuk kondisi ‘bukan’.

Contoh: Untuk mencari “pria dengan level pendapatan L1”, sistem akan mengambil bitmap untuk ‘pria’ dan melakukan operasi AND dengan bitmap untuk ‘L1’. Hasilnya adalah bitmap baru yang menunjukkan baris mana yang memenuhi kedua kondisi tersebut.

Definisi Indeks dalam SQL

Bahasa SQL menyediakan perintah standar untuk mengelola indeks:

  • Membuat Indeks: Menggunakan perintah CREATE INDEX nama_indeks ON nama_tabel(nama_kolom);.

  • Membuat Indeks Unik: Perintah CREATE UNIQUE INDEX digunakan untuk memastikan bahwa nilai pada kolom yang diindeks bersifat unik, yang juga bisa berfungsi sebagai penegak candidate key.

  • Menghapus Indeks: Menggunakan perintah DROP INDEX nama_indeks;.

Summary

Bitmap Index adalah tipe indeks yang efisien untuk atribut berkardinalitas rendah, di mana setiap nilai unik direpresentasikan oleh sebuah bitmap. Query yang melibatkan banyak atribut dapat dijawab dengan sangat cepat melalui operasi bitwise (AND, OR, NOT) pada bitmap-bitmap ini. Secara praktis, indeks dapat dibuat dan dihapus dalam database menggunakan perintah SQL standar seperti CREATE INDEX dan DROP INDEX.