NoSQL, Alternatif Database
Salah satu pendekatan dalam merancang database untuk mengakomodasi kebutuhan model data yang bervariasi, seperti key-value, dokumen, kolom and format grafis adalah NoSQL. NoSQL adalah singkatan dari “not only SQL” yang artinya “bukan hanya SQL”. NoSQL merupakan alternatif dari relational database dimana data disimpan dalam sebuah tabel dan data schema yang harus dirancang sebelum database dibuat.
NoSQL hadir untuk menjawab kebutuhan atau permasalahan dalam membuat aplikasi sekarang ini. Developer berkerja membangun aplikasi dengan data yang tipe datanya cukup besar dan sering sekali berubah. Penggunaan Waterfall development cycle juga sudah ditinggalkan, yang sekarang digantikan oleh tim yang kecil menggunakan agile sprints dengan siklus yang cepat dan seringnya menambah code dalam seminggu dua minggu atau mungkin beberapa kali dalam sehari.
Tipe NoSQL Database
Key-value stores merupakan database yang paling sederhana dalam NoSQL. Setiap data dalam database disimpan dalam bentuk nama atribut(key) disertai dengan value atau nilainya. Contoh database dengan key-value stores adalah Aerospike, Berkeley DB, MemchacheDB, Redis dan Riak.
Document databases atau document stores, menyimpan data yang semi terstruktur dan deskripsi dari data dengan bentuk dokumen. Penggunaan database tipe ini meningkat seiring dengan penggunaan JavaScript dan JavaScript Object Notation (JSON), format XML dan format lainnya dapat digunakan dalam database tipe ini. Berikut contoh dari document databases: Couchbase Server, CouchDB, DocumentDB, MarkLogic and MongoDB.
Wide-column stores mengatur tabel data kolom dari pada baris. Hal ini membuat query dalam jumlah data yang besar lebih cepat dari pada database konvensional. Berikut contoh dari wide-column stores: Google BigTable, Cassandra dan HBase.
Graph stores mengatur data sebagai nodes, mirip seperti relational database yang memiliki koneksi satu data dengan data lain. Dengan adanya graph store ini dapat mendukung representasi hubungan data yang lebih beragam. Contoh graph stores AllegroGraph, IBM Graph, Neo4j dan Titan.
Keuntungan menggunakan NoSQL
NoSQL lebih memiliki skalabilitas yang baik dan mendukung kinerja, dan model dari NoSQL database menjawab permasalah yang biasanya terjadi di relational database, seperti:
- Volume besar data terstruktur, semi-terstruktur, dan tidak terstruktur dengan cepat berubah
- Agile sprint, iterasi skema cepat, dan penambahan code yang sering
- Pemrograman berorientasi objek yang mudah digunakan dan fleksibel