School of Information Systems

NOSQL (Part 1)

Ketika merancang suatu sistem, tentunya tidak luput dari pengimplementasian sistem basis data sebagai media penunjang dalam penyimpanan data yang digunakan dalam keseharian. Penggunaan basis data ini, tentunya akan melibatkan operasional dalam mengidentifikasikan struktur ataupun memodifikasi data, yang dapat dijalankan dengan menggunakan sintaks SQL. Namun baru-baru ini berkembang teknologi yang dinamakan dengan NoSQL, dimana dalam mengidentifikasikan struktur serta pemodelan data tidak lagi menggunakan sintaks DDL (Data Definition Language) atau DML (Data Manipulation Language), namun dengan menggunakan JSON (JavaScript Object Notation). Perubahan ini didasarkan dengan perkembangan data yang cukup besar didukung dengan jumlah pengguna yang cukup tinggi, sehingga tidak lagi efektif jika masih menggunakan model relasional.

Model relasional dan NoSQL merupakan dua model yang sangat bertolak belakang. Pada model relasional, data yang disimpan tersebar ke dalam bentuk table-tabel yang terdiri dari kolom dan baris. Masing-masing table saling berhubungan dengan menggunakan foreign key (FK) yang merupakan atribut/field penghubung yang disimpan perkolom. Ketika ingin mengkonsolidasikan data dari seluruh tabel yang ada, maka seorang developer harus menggabungkan antara table yang satu dengan table yang lain, melalui foreign key yang telah didefinisikan pertama kali, sehingga dapat dipastikan data yang digabungkan merupakan data yang memang tersedia dari kedua table tersebut. Hal ini sering kali menjadi dilema bagi seorang developer, mengingat pertumbuhan data yang besar, dengan tingkat skalabilitas yang cukup tinggi akan sangat sulit bagi seorang developer untuk menyediakan data yang dibutuhkan dalam waktu yang singkat. Oleh karena itu, teknologi NoSQL hadir sebagai solusi.

Dalam NoSQL, data akan disimpan dalam bentuk dokumen-dokumen dan penggabungan data akan dilakukan dengan menggunakan format JSON. Setiap dokumen JSON dapat diibaratkan sebagai objek yang dapat digunakan dalam aplikasi yang dibangun. Dalam JSON, dapat menyimpan data yang tersimpan dalam 20 table pada model relasional database, menjadi satu dokumen. Dalam mekanisme penggabungan secara NoSQL, akan terjadi kemungkinan duplikasi informasi karena data yang tersimpan tidak lagi mengikuti konsep Primary Key dan Foreign Key, namun fakta ini telah disadari banyak perusahaan, karena saat ini bagi perusahaan media penyimpanan bukanlah merupakan masalah yang signifikan, karena orientasi paling penting dalam suatu perusahaan adalah bagaimana dapat menghasilkan data model yang flexible, efisien dalam pendistribusian, serta mudah dioperasionalkan dalam web-based applications. Sehingga akses terhadap data dapat dilakukan secara efisien dan efektif walaupun jumlah datanya sangat besar.

Selain itu perbedaan yang mendasari model relasional dan NoSQL adalah dalam penggunaan skema. Skema merupakan aturan yang mendasari pembentukan database, dimana pada skema akan terdiri dari sekumpulan objek yang dapat digunakan dalam mendukung operasional yang terjadi, seperti halnya table, view, store procedure, trigger, index, dll.  Pada model relasional, skema merupakan hukum wajib yang harus dibentuk ketika merancang sistem basis data agar pengklasifikasian objek yang ada dalam database menjadi jelas, namun dengan NoSQL tidak perlu lagi mengacu pada aturan skema. Data disimpan dalam format yang bebas, tidak perlu lagi dikelompokan dalam bentuk table, view, ataupun objek lainnya. Dengan demikian apabila terdapat perubahan struktur dari data, seperti penambahan kolom, maka dapat dilakukan dengan mudah tanpa harus mengubah struktur awal yang sudah terbentuk sebelumnya. Perubahan pada format data yang diinsert pun dapat berganti kapanpun, tanpa mengganggu jalannya aplikasi. (Tanty Oktavia)