Rabu, 04 Mei 2011

Mengenal Indeks

Indeks dapat dibentuk secara manula maupun secara otomatis. secara manual index terbentuk melalui printah Create Index dan secara otomatis, Index terbentuk saat menentukan primary key dan unique terhadap field tententu.

Pengertian Indeks
Indeks dapat dibayangkan sebagai indeks buku, sehingga lelalui indeks buku tersebut dapat dicari letak item tertentu dalam buku dengan mudah. Keberadaan indkes dalam basis data antara lain adalah untuk mempercepat pencarian data berdasarkan kolom tertentu, misalnya diberikan perintah :
select * from pegawai where no_pegawai = '7902';
Jika tidak dijadikan indeks, pencarian data akan dilakukan terhadap seluruh tabel, sama seperti kalu akan mencari sesuatu dalam buku tetapi buku tersebut tidak dilengkapi dengan indeks. namun sekirannya indeks yang berkaitan dengan nip ada, maka sistem akan menemukanya dengan cepat.
Beberapa ha yang sangat terbantu dnegan adanya indeks adalah :
  1. Proses penggabungan sejumlah tabel
  2. Proses dengan ORDER BY
  3. Proses fungsi agregat seperti MIN dan MAX
  4. Proses pencarian data

Menciptakan indeks
Untuk membuat file indeks digunakan perintah CREATE INDEX, dengan bentuk umum parintahnya adalah :
create index nama_index on nama_tabel (nama_field_index);
Keterangan :
nama_index adalah nama indeks yang dibuat
nama_tabel : adala nama tabel yang diindeks
nama_field_index yang berada di dalam tanda kurung menyatakan kolom / field / atribut yang diunakan untuk mengindeks.

Contoh 1 :
Apabila kita ingi mengindecx tabel pegawai berdasarkan field nama dengan nama index-nya adalah nama_idx, maka perintah index-nya adalah :
create index nama_idx on pegawai (nama);
Contoh 2 :
Disini akan ditunjukan beberapa manfaat dari proses index.
  1. membantu mempercepat proses pencarian data
    apabila kita ingin menampilkan data pegawai yang namanya adalah 'James', maka perintah yang dituliskan adalah :
    select*from pegawai where nama='James';
    
    Kemudian bandingkan dengan proses pencarian pada data yang telah diindex :
    create index nm_idx on pegawai (nama);
    select*from pegawai from pegawai where nama = 'James';
    
    Dari kedua proses pencarian di atas, dapat disumpulkan bahwa pencarian pada table yang sudah diindeks akan lebih cepat (perhatian lama waktu pencarian).
  2. Membantu mempercepat proses pengitungan data denga fungsi agregasi.
    Akan dihitung gaji terbesar untuk pegawai yang perkerjannya adalah 'SALESMAN', maka perintah yang dituliskan :
    select max(gaji) from pegawai where pekerjaan = 'SALESMAN';
    
    kemudian bandingkan dengan proses pencarian pada data yang telah diindex :
    create index gaji_idx on pegawai (gaji);
    select max(gaji) from pegawai where pekerjaan='SALESMAN';
    
    Kesimpulannya sama dengan proses pencarian data di atas.

Menciptakan Indeks yang unik
Untuk menciptakan indeks yang unik maka harus ditambahkan kata UNIQUE diantara create dan index. Maksud Indeks yang unik adalah bahwa field yang dijadikan sebagai kunci index haruslah field yang berisi data yang unik.
Contoh1 :
create index pekerjaan_idx on pegawai (pekerjaan);
hasil query ok
Contoh2 :
create unique index pekerjaan_idx on pegawai (pekerjaan);
hasil ERROR
Keterangan :
Pada contoh kedua perintah index dianggap salah (error) yang disebabkan karena data yang tersimpan di field pekerjaan tidak unik.

Menciptakan Indeks Untuk Beberapa Field
Untuk menciptakan indeks dengan beberapa field sebagai kunci indeksnya, maka perlu penyebutan nama-nama field yang dimaksud sebagai berikut :
create unique index no_nama_idx on pegawai (no_pegawai, nama);

0 komentar:

Posting Komentar

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Justin Bieber, Gold Price in India