Apa itu Database Berorientasi Kolom
Database berorientasi kolom, seperti namanya, menyimpan data berdasarkan kolom daripada baris. Berbeda dengan database relasional tradisional seperti Oracle, PostgreSQL, dan MySQL yang mengelola data berdasarkan baris, database ini fokus pada pengelolaan data berdasarkan kolom.
Pengelolaan Data dalam Database Berorientasi Kolom
Database berorientasi baris menyimpan dan memanipulasi data dalam baris. Pendekatan penyimpanan data ini memperlakukan setiap baris sebagai sebuah rekaman, mengelola semua data dalam baris tersebut sebagai satu unit.
Misalkan data penjualan berikut dari sebuah toko buku:
Tanggal | Toko | Karyawan | Kategori Buku | Jumlah Terjual | Total Penjualan |
---|---|---|---|---|---|
2023/6/1 | NYC | John | Fiction | 10 | $200 |
2023/6/1 | NYC | Sarah | Non-fiction | 5 | $150 |
2023/6/1 | NYC | Paul | Fiction | 8 | $80 |
2023/6/2 | NYC | John | Fiction | 7 | $140 |
2023/6/2 | NYC | John | Non-fiction | 4 | $80 |
Dalam database berorientasi baris, setiap penjualan diperlakukan sebagai satu baris, dengan semua elemen data terkait (Tanggal
, Toko
, Karyawan
, Kategori
Buku
, Jumlah Terjual
, Total Penjualan
) dikelompokkan bersama.
Di sisi lain, database berorientasi kolom mengelola data berdasarkan kolom. Untuk setiap elemen data, seperti Tanggal atau Total Penjualan, database menyimpan semua instance elemen tersebut dalam satu kolom.
Jika kita mempertimbangkan data penjualan yang sama dari toko buku, pengelolaan data dalam database berorientasi kolom akan terlihat seperti ini:
Tanggal | Toko | Karyawan | Kategori Buku | Jumlah Terjual | Total Penjualan |
---|---|---|---|---|---|
2023/6/1 * 3 | NYC * 5 | John * 3 | Fiction * 3 | 10 * 1 | $200 * 1 |
2023/6/2 * 2 | Sarah * 1 | Non-fiction * 2 | 5 * 1 | $150 * 1 | |
Paul * 1 | 8 * 1 | $80 * 1 | |||
7 * 1 | $140 * 1 | ||||
4 * 1 | $80 * 1 |
Sebagai contoh, jika tugasnya adalah mencari total penjualan untuk toko NYC, sebuah database berorientasi baris harus membaca membaca seluruh data baris demi baris, memeriksa kolom Toko
pada setiap baris, lalu menjumlahkan nilai kolom Total Penjualan
untuk setiap entri toko NYC. Proses ini mungkin melibatkan membaca data yang tidak perlu jika yang kita butuhkan hanyalah data Toko
dan Total Penjualan
.
Sebaliknya, database berorientasi kolom akan membaca kolom Toko
dan kolom Total Penjualan
saja, mengurangi jumlah data yang dibaca dari disk, dan dengan demikian potensial mempercepat operasi tersebut.
Kelemahan Database Berorientasi Kolom
Meskipun database berorientasi kolom menawarkan banyak keunggulan, terutama untuk tugas analisis data, mereka juga memiliki kelemahan. Salah satu kelemahan utamanya adalah kurangnya optimasi dalam mengelola transaksi online.
Database berorientasi kolom menghadapi overhead dan ketidakefisienan yang signifikan saat menangani penambahan data baru, pembaruan, dan penghapusan data, membuatnya kurang cocok untuk pemrosesan transaksi.
Misalkan Anda ingin menambahkan baris data baru ke dalam tabel. Pada database berorientasi baris, ini adalah tugas yang sederhana — Anda hanya perlu menambahkan baris baru ke dalam tabel. Namun, pada database berorientasi kolom, prosesnya lebih kompleks. Data yang terkompresi harus di-dekompresi terlebih dahulu. Kemudian nilai-nilai untuk setiap kolom harus dimuat dan ditambahkan ke tempat yang tepat. Terakhir, kolom harus dikompresi kembali. Proses ini tidak hanya menambahkan beban komputasi dan kompleksitas, tetapi juga dapat menyebabkan ketidakefisienan ketika banyak perubahan kecil pada database perlu dilakukan secara sering, seperti dalam skenario pemrosesan transaksi.