CREATE INDEX and USING BTREE

This blog contains about 'Create Index and Using BTREE' from Constraint

HALOOO. Yeah, back to my blog! Disini Aku akan menjelaskan pengertian dan contoh dari Constraint yaitu CREATE INDEX and BTREE. Bacanya pelan-pelan yaa, resapii dan pahamii agar bisa membantu pemahaman teman-teman semua. Enjoi!

Come on! let's learn!


A. CREATE INDEX

Index constraint adalah jenis constraint pada database yang digunakan untuk mempercepat pencarian data pada tabel dengan membuat indeks pada satu atau beberapa kolom pada tabel. Indeks memungkinkan basis data untuk mencari data yang sesuai dengan kriteria yang diberikan dengan lebih cepat daripada jika tidak ada indeks.

Berikut ini adalah contoh index constraint pada database MySQL:

1. Index constraint pada satu kolom:

java
CREATE INDEX idx_nama ON tabel_karyawan (nama);

Perintah di atas membuat index constraint pada kolom 'nama' pada tabel 'tabel_karyawan'.

2. Index constraint pada beberapa kolom:

java
CREATE INDEX idx_alamat_telepon ON tabel_pelanggan (alamat, telepon);

Perintah di atas membuat index constraint pada kolom 'alamat' dan 'telepon' pada tabel 'tabel_pelanggan'.

3. Index constraint pada kolom yang memiliki nilai unik:

sql
CREATE UNIQUE INDEX idx_nomor_pelanggan ON tabel_pelanggan (nomor_pelanggan);

Perintah di atas membuat index constraint pada kolom 'nomor_pelanggan' pada tabel 'tabel_pelanggan' dan memastikan bahwa nilai pada kolom tersebut unik.

4. Index constraint pada kolom yang memiliki banyak nilai NULL:

sql
CREATE INDEX idx_tanggal_lahir ON tabel_karyawan (tanggal_lahir) WHERE tanggal_lahir IS NOT NULL;

Perintah di atas membuat index constraint pada kolom 'tanggal_lahir' pada tabel 'tabel_karyawan', namun hanya pada data yang memiliki nilai tidak NULL.

CONTOH CREATE INDEX:

aku akan menampilkan create index dari data yang telah aku buat:


Hasil Create Index:


#NOTED
Setelah index constraint berhasil dibuat pada sebuah database, pencarian data pada tabel akan menjadi lebih cepat dan efisien. Dalam melakukan operasi pencarian, basis data akan menggunakan indeks untuk mengurangi waktu pencarian data pada tabel, terutama untuk tabel yang memiliki jumlah data yang besar.

Namun, pembuatan index constraint pada sebuah tabel juga dapat mempengaruhi kinerja basis data pada operasi-insert, update, atau delete. Ketika data baru dimasukkan atau diubah pada tabel, indeks harus diperbarui juga untuk menjaga konsistensi data dan memastikan bahwa indeks tetap akurat. Oleh karena itu, sebaiknya dilakukan analisis terlebih dahulu sebelum membuat indeks pada tabel dan kolom yang tepat agar indeks tidak mengganggu performa database.


B. USING BTREE

B-Tree (atau Binary Tree) adalah struktur data pohon yang sering digunakan pada database dan sistem file sistematis. B-Tree memungkinkan pengaksesan dan pencarian data yang efisien dalam jumlah data yang sangat besar dan terorganisir secara terstruktur.

B-Tree memiliki karakteristik sebagai berikut:
  • Setiap node dalam B-Tree memiliki beberapa anak (biasanya antara 2 hingga 128), sehingga B-Tree dikenal juga sebagai pohon multi-arah.
  • Setiap node dalam B-Tree menyimpan data terurut sesuai kunci data, yang memungkinkan untuk melakukan pencarian data secara efisien.
  • B-Tree dirancang untuk menghindari fragmentasi disk, sehingga struktur pohonnya selalu dapat disimpan dalam satu blok memori yang berdekatan.
  • Tinggi B-Tree relatif rendah dibandingkan dengan jumlah data yang tersimpan dalam struktur, sehingga waktu akses data yang diinginkan relatif cepat.
  • B-Tree digunakan dalam database untuk menyimpan indeks, yang memungkinkan pengaksesan data dalam jumlah besar dengan cepat. Indeks B-Tree menyediakan cara untuk menemukan lokasi data dalam tabel, sehingga query dapat dieksekusi dengan cepat. Dalam sistem file sistematis, B-Tree digunakan untuk menyimpan informasi tentang file dan direktori, sehingga memungkinkan akses file yang cepat dan efisien.
Berikut adalah beberapa jenis B-Tree yang umum digunakan:

    1. B-Tree Biasa (B-Tree)

B-Tree biasa atau sering disebut B-Tree murni adalah jenis B-Tree yang paling umum digunakan. Struktur B-Tree ini memiliki tinggi yang relatif rendah dan disusun dalam urutan terurut berdasarkan kunci yang disimpan di setiap node.

Contoh : 

Misalkan kita memiliki tabel employees dengan kolom id dan name dan telah diindeks dengan B-Tree pada kolom id. Untuk mencari data employee dengan id tertentu, kita dapat menggunakan query berikut:

sql
SELECT * FROM employees WHERE id = 123;
Hasilnya adalah data employee dengan id 123.

    2. B+ Tree

B+ Tree mirip dengan B-Tree, namun memiliki perbedaan dalam struktur. Pada B+ Tree, seluruh data terletak pada daun node, sedangkan setiap node lain hanya berisi pointer ke node lain atau daun. B+ Tree biasanya digunakan untuk membuat indeks dalam database.

Contoh:

Misalkan kita memiliki tabel students dengan kolom id, name, dan grade dan telah diindeks dengan B+ Tree pada kolom grade. Untuk mencari semua data student yang memiliki nilai di atas 90, kita dapat menggunakan query berikut:

sql
SELECT * FROM students WHERE grade > 90;
Hasilnya adalah semua data student yang memiliki nilai di atas 90.

    3. B* Tree

B* Tree juga mirip dengan B-Tree, namun memiliki perbedaan pada cara penanganan node yang sedikit penuh. Pada B* Tree, ketika suatu node penuh, data di dalam node tersebut akan dipindahkan ke node sebelahnya yang kosong. Dengan demikian, tingkat pengisian B* Tree lebih tinggi dibandingkan B-Tree, yang dapat mempercepat operasi pencarian.

Contoh:

Misalkan kita memiliki tabel books dengan kolom id, title, dan author dan telah diindeks dengan B* Tree pada kolom author. Untuk mencari semua buku yang ditulis oleh John Doe, kita dapat menggunakan query berikut:

sql
SELECT * FROM books WHERE author = 'John Doe';
Hasilnya adalah semua buku yang ditulis oleh John Doe.

    4. Trie (Prefix Tree)

Trie, juga dikenal sebagai Prefix Tree, adalah jenis B-Tree yang digunakan untuk mengorganisir data dalam bentuk string. Setiap node dalam Trie merepresentasikan satu karakter dari string yang disimpan. Trie sering digunakan dalam aplikasi pengolahan teks, seperti mesin pencari.

Contoh:

Misalkan kita memiliki tabel words dengan kolom id dan word dan telah diindeks dengan Trie pada kolom word. Untuk mencari semua kata-kata yang dimulai dengan prefix "cat", kita dapat menggunakan query berikut:

sql
SELECT * FROM words WHERE word LIKE 'cat%';
Hasilnya adalah semua kata-kata yang dimulai dengan prefix "cat".
   
    5. B-Link Tree

B-Link Tree adalah jenis B-Tree yang mempertahankan semua elemen di daun node. Setiap node dalam B-Link Tree hanya berisi pointer ke node lainnya, dan daun node ditautkan ke node lain secara langsung. B-Link Tree umumnya digunakan untuk struktur indeks dalam database yang memungkinkan untuk melakukan operasi join dengan cepat.

Contoh:

Misalkan kita memiliki tabel orders dengan kolom id dan customer_id dan telah diindeks dengan B-Link Tree pada kolom customer_id. Untuk mencari semua pesanan yang dibuat oleh pelanggan dengan customer_id tertentu, kita dapat menggunakan query berikut:

sql
SELECT * FROM orders WHERE customer_id = 123;
Hasilnya adalah semua pesanan yang dibuat oleh pelanggan dengan customer_id 123.

6. Dancing B-Tree
Dancing Tree adalah jenis B-Tree yang dirancang untuk mengoptimalkan pencarian dan penyisipan data dalam struktur pohon. Dancing Tree menggunakan algoritma "dancing" untuk melakukan pengaturan node yang efisien saat operasi pencarian dan penyisipan dilakukan. Dancing Tree biasanya digunakan dalam database yang memerlukan waktu akses cepat dan efisiensi penyimpanan data.

CONTOH PENGGUNAAN BTREE

Berikut adalah contoh query DB-Tree beserta hasil data yang disimulasikan:


1. Contoh query DB-Tree untuk mencari data dengan ID tertentu:

sql
SELECT * FROM employee WHERE id = 1001;

Hasilnya dapat seperti ini:
idnameagesalary
1001John Smith355000

2. Contoh query DB-Tree untuk mencari data dengan rentang nilai tertentu:
 
sql
SELECT * FROM products WHERE price BETWEEN 10 AND 100;

Hasilnya dapat seperti ini:
idnameprice
101Product A20
102Product B30
105Product E80

3. Contoh query DB-Tree untuk mencari data yang cocok dengan suatu pola:

sql
SELECT * FROM employee WHERE name LIKE 'J%';

Hasilnya dapat seperti ini:
idnameagesalary
1001John Smith355000
1003James Brown293500

4. Contoh query DB-Tree untuk mencari data yang mengandung suatu nilai tertentu:

sql
SELECT * FROM orders WHERE customer_id = 1001;

Hasilnya dapat seperti ini:
idcustomer_iddatetotal
10110012022-03-01200
10310012022-03-05500

Okeiii... Segitu saja pembahasanku kali ini about this materi. Semoga Pembahasan kali ini bisa bermanfaat untuk mentemen semua.
Oh yeah, ngomong-ngomong don't forget for ILMUUU. "harus dibagi-bagi ya, agar ilmunya bisa bermanfaat untuk orang lain juga. xixi.." -kangfebby

#SALAMBELAJAR!
see you again on my next blog. Thank u!

Komentar

Postingan populer dari blog ini

GIT

String

COMMAND-COMMAND LINUX