NoSQL: Sejarah, Jenis, Karakteristik, dan Kelebihan vs Kekurangannya

Apa itu NoSQL & Sejarahnya

NoSQL adalah akronim dari Not Only SQL, hadirnya NoSQL pada tahun 1998 dimaksudkan untuk memperbaiki kekurangan SQL, yaitu proses yang mahal dan lama terutama ketika data yang disimpan sudah sangat besar. NoSQL merupakan jenis database yang tidak menggunakan model RDBMS yang berarti non-relational yang juga berarti tidak menggunakan tabel, sistem yang terdistribusi, didesain untuk penyimpanan data berjumlah besar, open source, tanpa skema, skalabilitas secara horizontal dan tidak menggunakan bahasa SQL sebagai bahasa query, pendekataan seperti ini berupaya untuk memanfaatkan teknologi NoSQL dan SQL dengan menyeimbangkan tuntutan kinerja, skalabilitas, fleksibilitas skema dengan integritas dan konsistensi data.

Awal hadirnya NoSQL ini disadari juga oleh beberapa perusahaan besar seperti Google, Amazon dan Facebook ketika data yang mereka miliki sudah tidak bisa ditampung oleh database model RDBMS. NoSQL mempunyai berbagai macam fitur, salah satunya analisis eksploratori dan transformasi data ETL (Exact, Transform, Load), dan non mission-critical OLTP (Online Transaction Processing, contohnya mengelola transaksi jangka panjang atau antar organisasi).

Jenis-jenis NoSQL

Ada berbagai macam jenis database, untuk NoSQL mempunyai 4 jenis database:

1. NoSQL Key-value

Adalah kombinasi antara key dan value yang merupakan database inti dari semua database NoSQL, jenis database ini merupakan jenis database tradisional.

2. NoSQL Document Store

Adalah database yang menggunakan record sebagai dokumen. Record ini menyimpan dokumen yang tidak terstruktur (text) atau semi terstruktur (XML). Setiap dokumen terdiri dari satu set key dan value, hampir sama dengan NoSQL Key-value. Setiap database yang berada di dalam document store menunjuk ke field-nya menggunakan pointer teknik hashing. Database Document Store ini mempunyai skema yang bebas dan tidak tetap.

3. NoSQL Column

Database ini merupakan database yang berorientasi pada kolom, mempunyai dua jenis database yang berorientasi pada kolom yaitu wide column dan column oriented.

4. NoSQL Graph

Merupakan database yang menggunakan teori grafik, dan seperti umumnya grafik, database ini terdiri dari node, edge, dan properties.


Karakteristik NoSQL

Berikut akan dijelaskan karakteristik yang dimiliki oleh NoSQL, atau lebih sering disebut sebagai Aksiomatis NoSQL.

Aksiomatis Database NoSQL:

1. Teori CAP (Consistency, Availability, Partition-Tolerance)

Dalam menjaga keutuhan data, kebanyakan database bergantung kepada sistem transaksinya, sistem transaksi menjamin keutuhan dan konsistensi data di dalam segala kondisi managemen data. Karakteristik sistem transaksi ini disebut ACID (Atomicity, Consistency, Isolation, Durability). Namun, nyatanya karakteristik ACID ini mempunyai beberapa kekurangan yang ditemukan; timbul konflik diberbagai macam aspek availability di dalam sistem, dan tidak semuanya bisa dipecahkan; kekurangan-kekurangan tersebut bisa ditutupi dengan Teori CAP sbb:
  • Consistency: secara umum, bisa didefinisikan sebagai setiap server yang mengembalikan suatu response yang tepat disetiap request yang diminta atau response yang tepat sesuai dengan spesifikasi servis yang diinginkan.
  • Availability: mempunyai arti bahwa setiap request pasti menerima response.
  • Partition-tolerance: dapat diartikan sebagai sistem akan menjaga karakteristiknya meskipun nantinya akan di deploy ke berbagai macam server yang berbeda, transparan, dan apabila ada masalah pada sistem pada saat proses berlangsung, database tetap harus berjalan tanpa ada jeda.
Namun Teori CAP ini rata-rata hanya bisa menjamin 2 dari 3 jaminan Teori CAP. Tidak ada sistem yang bisa menjamin ketiga jaminan Teori CAP. Di dalam kasus sistem yang terdistribusi, Partition Tolerance adalah keharusan, sehingga sering kali yang dikorbankan antara Consistency atau Availability.

2. Transaksi BASE (Basically, Available, Soft State, and Eventual Consistency)

NoSQL mengalami Inconsistency ketika ingin mendapatkan Availability dan Partitioning yang lebih baik, maka dari itu diciptakannya sistem yang bernama BASE.

BASE merupakan kebalikan dari ACID (Atomicity, Consistency, Isolation, Durability) yang dipakai oleh SQL. BASE tidak memiliki pengertian transaksi yang dipakai pada ACID, BASE juga memberikan pengaturan pada model data agar mendapatkan skema partisi yang lebih baik.

3. Tidak membutuhkan skema

Data bisa dimasukkan ke dalam database NoSQL tanpa harus membuat skema database sebelumnya. Struktur data yang dimasukkan bisa dimodifikasi kapan saja, tanpa harus mengalami interupsi di aplikasi.

4. Elastisitas Otomatis

Tanpa adanya persyaratan aplikasi, NoSQL akan secara otomatis mendistribusikan data yang dikirim ke banyak server.

5. Caching yang Terintegrasi

Database NoSQL men-cache datanya ke dalam memori sistem, gunanya untuk menambah jumlah data yang terkirim dan menambah performa yang bagus.

Kelebihan & Kekurangan NoSQL

Berikut beberapa kelebihan dan kekurangan yang dimiliki oleh NoSQL.

Kelebihan
  • Mempunyai skalabilitas yang elastis
  • Data yang banyak bisa ditangani dengan mudah oleh NoSql
  • Nosql lebih murah karena tidak memerlukan tempat penyimpanan yang banyak (skalabilitas horizontal) 
  • Skema dinamis
  • Auto-sharding, database akan secara otomatis terbagi ke dalam beberapa server
  • Replikasi, berfungsi untuk mencegah kegagalan sistem apabila salah satu server mati
  • Caching yang terintegrasi
Kekurangan
  • Kurang reliable karena tidak menggunakan ACID
  • Susah dalam perawatan
  • Masih belum stabil karena NoSQL masih tergolong baru
  • Read time lebih lama
--o0o--

Artikel terkait:

No comments:

Post a Comment