Basis data relasional (sering dikenal dengan NoSQL) telah lama digunakan di banyak aplikasi. Seiring dengan pertumbuhan data dan beragam bisnis yang ada, tidak semua solusi aplikasi perangkat lunak dapat diatasi oleh basis data relasional. Tulisan ini merupakan sedikit catatan mengenai beberapa kategori basis data non relasional dan kegunaannya.
Telah diketahui bersama bahwa perangkat lunak terdiri dari program, data, dan dokumen. Struktur data yang digunakan dalam perangkat lunak akan menyesuaikan dengan kebutuhan aplikasi. Basis data relasional, memiliki struktur tabular sehingga segala macam penyimpanan akan ‘dipaksakan’ ke dalam struktur tersebut.
Beberapa struktur data tidak cocok ketika menggunakan struktur tabular. Sebagai contoh, untuk kasus pencarian rute pada transportasi massal, penggunaan basis data relasional kurang cocok karena harus melibatkan traversing atau perambatan antar titik lokasi. Jika tidak pandai-pandai mengoptimasi query, dengan data yang besar, penggunaan basis data relasional akan menjadi masalah. Untuk itu diperlukan alternatif dari basis data relasional.
Beberapa buku telah membahas basis data non relasional. Setidaknya terdapat 4 kelompok basis data non relasional yaitu :
1. Basis Data Graph
Basis Data Graph menyimpan data dalam node-node yang saling terhubung menggunakan edge. Setiap node dapat memiliki properti / data yang berbeda-beda. Pada produk graph database tertentu memiliki cara akses ke basis data graph menggunakan query (produk Neo4J menggunakan Cypher).
2. Basis Data Key-Value
Pada jenis ini, data disimpan dalam pasangan kunci-nilai (<key>,<value>). Pasangan kunci-nilai sering digunakan untuk associative array. Kunci (key) merupakan suatu yang unik dari data yang akan disimpan. Beberapa produk basis dasta key-value seperti Redis memanfaatkannya sebagai “cache”. Contoh produk dari basis data model ini adalah Voldemort.
3. Basis Data Document
Data disimpan dalam ‘dokumen’. ‘Dokumen’ bisa berarti segala macam dokumen dengan format tertentu (PDF, XML, JSON, dsb.). Basis data ini mampu menangani data yang tidak terstruktur (schema-less). Basis data dokumen bisa memanfaatkan pasangan key-value untuk keperluan pengakses dan penyimpana ataupun memanfaatkan arsitektur REST (Representational State Transfer) untuk keperluan tersebut. Contoh dari basis data model ini adalah MongoDB dan CouchDB.
4. Basis Data Column oriented
Basis data relasional yang menyimpan data dalam baris-baris. Basis data model Column-Oriented menyimpan data sebagai bagian dari kolom. Kasus sederhana : satu “datafile” per kolom. Semua data dalam setiap kolom datafile memiliki tipe yang sama. Contoh dari basis data jenis ini adalah HBase dan Cassandra.
Masing-masing basis data tersebut memiliki karakteristik sendiri, sehingga perlu beberapa pertimbangan kecocokan sebelum menggunakannya pada satu kasus tertentu.
Semoga bermanfaat !