Mengulas Lebih Jauh Tentang Indeks Basis Data – Indeks basis data ini merupakan salah satu dari jenis struktur data yang akan meningkatkan kecepatan yang ada pada operasi pengambilan data pada tabel basis data dengan biaya penulisan dan ruang penyimpanan tambahan untuk mempertahankan sebuah struktur data pada indeks.
Mengulas Lebih Jauh Tentang Indeks Basis Data
indexunlimited – Indeks adalah salinan kolom data yang dipilih, dari tabel, yang dirancang untuk memungkinkan pencarian yang sangat efisien. Indeks biasanya menyertakan “kunci” atau tautan langsung ke baris data asli dari mana ia disalin, untuk memungkinkan baris lengkap diambil secara efisien. Beberapa database memperluas kekuatan pengindeksan dengan membiarkan pengembang membuat indeks pada nilai kolom yang telah diubah oleh fungsi atau ekspresi.
Baca Juga : Langkah Membangun Membangun Indeks Domain
Misalnya, indeks dapat dibuat pada upper(last_name), yang hanya akan menyimpan versi huruf besar last_namebidang dalam indeks. Opsi lain yang terkadang didukung adalah penggunaan indeks parsial , di mana entri indeks dibuat hanya untuk rekaman yang memenuhi beberapa ekspresi kondisional. Aspek lebih lanjut dari fleksibilitas adalah untuk mengizinkan pengindeksan padafungsi yang ditentukan pengguna , serta ekspresi yang dibentuk dari berbagai macam fungsi bawaan.
Penggunaan
Dukungan untuk pencarian cepat
Sebagian besar perangkat lunak basis data menyertakan teknologi pengindeksan yang memungkinkan pencarian waktu sub-linier untuk meningkatkan kinerja, karena pencarian linier tidak efisien untuk basis data besar.
Misalkan database berisi N item data dan satu harus diambil berdasarkan nilai salah satu bidang. Implementasi sederhana mengambil dan memeriksa setiap item sesuai dengan tes. Jika hanya ada satu item yang cocok, ini dapat berhenti ketika menemukan satu item itu, tetapi jika ada beberapa kecocokan, ia harus menguji semuanya. Ini berarti bahwa jumlah operasi dalam kasus rata-rata adalah O (N) atau waktu linier . Karena database mungkin berisi banyak objek, dan karena pencarian adalah operasi umum, seringkali diinginkan untuk meningkatkan kinerja.
Indeks adalah setiap struktur data yang meningkatkan kinerja pencarian. Ada banyak struktur data berbeda yang digunakan untuk tujuan ini. Ada trade-off desain yang kompleks yang melibatkan kinerja pencarian, ukuran indeks, dan kinerja pembaruan indeks. Banyak desain indeks menunjukkan kinerja pencarian logaritmik ( O (log(N))) dan dalam beberapa aplikasi dimungkinkan untuk mencapai kinerja datar ( O (1)).
Memelihara batasan basis data
Indeks digunakan untuk membatasi basis data polisi , seperti UNIK, PENGECUALIAN, KUNCI UTAMA dan KUNCI ASING . Sebuah indeks dapat dideklarasikan sebagai UNIK, yang menciptakan batasan implisit pada tabel yang mendasarinya. Sistem basis data biasanya secara implisit membuat indeks pada sekumpulan kolom yang dideklarasikan KUNCI UTAMA, dan beberapa mampu menggunakan indeks yang sudah ada untuk mengawasi kendala ini. Banyak sistem basis data mengharuskan kumpulan kolom referensi dan referensi dalam batasan FOREIGN KEY diindeks, sehingga meningkatkan kinerja penyisipan, pembaruan, dan penghapusan ke tabel yang berpartisipasi dalam batasan.
Beberapa sistem basis data mendukung batasan PENGECUALIAN yang memastikan bahwa, untuk catatan yang baru dimasukkan atau diperbarui, predikat tertentu tidak berlaku untuk catatan lain. Ini dapat digunakan untuk menerapkan batasan UNIK (dengan predikat kesetaraan) atau batasan yang lebih kompleks, seperti memastikan bahwa tidak ada rentang waktu yang tumpang tindih atau tidak ada objek geometri yang berpotongan yang akan disimpan dalam tabel. Sebuah indeks yang mendukung pencarian cepat untuk catatan yang memenuhi predikat diperlukan untuk mengatasi kendala seperti itu.
Arsitektur indeks dan metode pengindeksan
Tidak berkerumun
Data hadir dalam urutan arbitrer, tetapi urutan logis ditentukan oleh indeks. Baris data dapat tersebar di seluruh tabel terlepas dari nilai kolom atau ekspresi yang diindeks. Pohon indeks non-clustered berisi kunci indeks dalam urutan yang diurutkan, dengan tingkat daun indeks yang berisi penunjuk ke catatan (halaman dan nomor baris di halaman data di mesin yang diatur halaman; offset baris di mesin yang diatur file ).
Berkelompok
Clustering mengubah blok data menjadi urutan tertentu yang berbeda agar sesuai dengan indeks, sehingga data baris disimpan secara berurutan. Oleh karena itu, hanya satu indeks berkerumun yang dapat dibuat pada tabel database yang diberikan. Karena catatan fisik berada dalam urutan pengurutan ini pada disk, item baris berikutnya dalam urutan segera sebelum atau sesudah yang terakhir, sehingga diperlukan lebih sedikit pembacaan blok data. Oleh karena itu, fitur utama dari indeks berkerumun adalah pengurutan baris data fisik sesuai dengan blok indeks yang mengarah ke sana. Beberapa database memisahkan blok data dan indeks ke dalam file terpisah, yang lain menempatkan dua blok data yang sama sekali berbeda dalam file fisik yang sama.
Gugus
Ketika beberapa database dan beberapa tabel digabungkan, hal itu disebut cluster (jangan dikelirukan dengan indeks cluster yang dijelaskan sebelumnya). Catatan untuk tabel yang berbagi nilai kunci cluster harus disimpan bersama dalam blok data yang sama atau berdekatan. Ini dapat meningkatkan gabungan tabel ini pada kunci cluster, karena catatan yang cocok disimpan bersama dan lebih sedikit I/O yang diperlukan untuk menemukannya. Konfigurasi cluster mendefinisikan tata letak data dalam tabel yang merupakan bagian dari cluster. Sebuah cluster dapat dikunci dengan indeks B-Tree atau tabel hash . Blok data tempat record tabel disimpan ditentukan oleh nilai kunci cluster.
Standardisasi
Tidak ada standar yang mendefinisikan cara membuat indeks, karena Standar ISO SQL tidak mencakup aspek fisik. Indeks adalah salah satu bagian fisik dari konsepsi database antara lain seperti penyimpanan (tablespace atau filegroups). Semua vendor RDBMS memberikan sintaks CREATE INDEX dengan beberapa opsi khusus yang bergantung pada kemampuan perangkat lunak mereka.