Apa itu NoSQL? Berikut ini Pengertian NoSQL Beserta Kelebihannya

Pada pembahasan kali ini kami akan berbagi sedikit pengetahuan mengenai pengertian dan konsep database NoSQL. Pertama kita eksplorasi dari namanya terlebih dahulu apa itu NoSQL, harfiahnya adalah ‘non SQL’ atau ‘non reational SQL’. Namun kadang juga disebut sebagai ‘not only SQL’ yang konotasinya lebih baik daripada SQL. Karena NoSQL diklaim memiliki kemampuan melebihi database RDBMS konvensional yang berbasis tabel (tabular).

Bagi Anda yang pernah menimba ilmu ataupun bekerja di bidang database programming tentu sudah familiar dengan konsep database berbasis RDBMS seperti MS Access, MS SQL Server, MySQL, MariaDB, PostgreSQL, dan SQLite. Konsep RDBMS tersebut adalah database berbasis tabel, setiap datanya tersusun tabel-tabel yang saling berelasi (tabular relation), terutama di bagian kolom Primary Key (PK) dan Foreign Key (FK)-nya.

NoSQL berbeda dengan SQL, ia tidak memerlukan skema serta tidak mempunyai relasi tabel, sehingga lebih fleksibel. Database NoSQL terus meningkat jumlah penggunaannya khususnya pada implementasi big data dan aplikasi real-time web. Kepopuleranya terus naik di awal abad milenial ini, terpicu dengan kebutuhan dari perusahaan-perusahaan berbasis Web 2.0 dan aplikasi handled.

Apa itu NoSQL?

SQL adalah akronim dari Structured Query Language, yaitu sebuah konsep basis data yang tersusun dari skema, tabel, kolom, dan baris. Query atau sintaks pemanggilan data pada database SQL memanfaatkan media relasi tabel. Beberapa kelompok data dari tabel-tabel yang berbeda dapat dipanggil bersamaan secara serentak.

Apabila user ingin menampilkan data-data yang diinginkan saja, maka dapat dilakukan dengan desain bahasa query tertentu. Tabel-tabel dalam database SQL merupakan sekumpulan tabel yang solid dan fixed. Karena itu, sedikit saja perubahan struktur pada satu tabel bisa jadi dapat mengakibatkan kegagalan query yang sudah terprogram di bagian View ataupun Trigger. Kendala yang dihadapi pada database SQL terletak pada kompleksitas maintain (perawatan sistem) serta pengembangan skala datanya. Dengan memahami terlebih dahulu konsep SQL akan dapat membantu Anda dalam memahami apa itu NoSQL.

Pengertian NoSQL (Non SQL) adalah sebuah konsep serta model basis data yang fleksibel. Secara general maupun spesifik NoSQL tidak mengikuti kaidah-kaidah database relasional (RDBMS). NoSQL tidak pula menggunakan bahasa query SQL. NoSQL adalah sebuah model database yang berbeda dibandingkan dengan SQL.

Istilah NoSQL pertama kali dipublikasikan oleh Carlo Strozzi pada 1998 untuk menamakan basis data yang sedang ia kembangkan saat itu, ‘Strozzi NoSQL open-source relational database’. Strozzi mengutarakan bahwa cara kerja NoSQL saat itu ‘sangat berbeda’ dengan relational-database secara keseluruhan, itulah alasan kenapa ia menyebutnya ‘NoREL’ yang merujuk pada istilah ‘No Relational’.

Apa itu NoSQL? Pengertian NoSQL Adalah Pada akhir tahun 2000, pengembangan NoSQL mulai dilanjutkan lagi, dengan tujuan untuk mengatasi keterbatasan SQL khususnya pada aspek skalabilitas dan potensi pendataan multi-struktur-nya.

Pada awal tahun 2009, Johan Oskarsson, salah seorang developer dari Last.fm memperkenalkan kembali istilah NoSQL ketika ia mengorganisasikan sebuah even untuk mendiskusikan “open source distributed, non relational databases” (terdistribusi sebagai sumber terbuka, basis data non relational).

Database NoSQL dikembangkan sebagai harapan untuk menyelesaikan masalah-masalah klasik pada database SQL. Database NoSQL berbeda dengan database SQL yang metode penyimpanan datanya hanya satu tipe saja. Struktur database NoSQL lebih dinamis dan fleksibel dengan empat (4) jenis model penyimpanan data yaitu sebagai berikut beserta contoh dan definisi singkatnya.

  1. Key-value (KV) store: ArangoDB, Apache Ignite, Oracle NoSQL Database, Couchbase, Dynamo, Redis, Riak.
    Penyimpanan KV menggunakan assosiative array, juga dikenal sebagai map atau dictionary sebagai dasar data modelnya. Pada model ini, data disajikan sebagai sebuah koleksi KV yang berpasangan.
  2. Document-based: Apache CouchDB, ArangoDB, BaseX, Clusterpoint, Couchbase, Cosmos DB, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx, RethinkDB.
    Konsep penyimpanan data document-based adalah sebuah gagasan dari konsep sebuah ‘dokumen’. Dimana setiap implementasi basis data dari document-based umumnya diasumsikan bahwa dokumen-dokumen tersebut di-enkapsulasi (encapsulate) dan di-encode ke dalam suatu format standar encoding.
  3. Column-based: Accumulo, Cassandra, Scylla, HBase.
    Bisa disebut juga model wide-column, memungkinkan akses data yang sangat cepat dengan memanfaatkan row key, column name, dan cell timestamp. Fleksibilitas dari skema dari jenis database ini memungkinkan record pada kolom-kolomnya (column) tidak harus konsisten. User dapat menambahkan kolom pada satu row yang spesifik tanpa harus menambahkannya di setiap record.
  4. Graph-based: AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, MarkLogic, Neo4J, OrientDB, Virtuoso.
    Dalam teorinya, struktur graph-based tediri dari vertices dan edges (data dan connnections) yang bisa disebut sebagai data relationship. Graphs berperilaku serupa sebagaimana manusia berpikir, data tersusun dalam relasi yang spesifik di antara unit-unit data yang memiliki ciri-cirinya tersendiri. Database jenis ini berguna untuk memvisualisasikan, menganalisa, serta membantu Anda untuk menemukan keterhubungan di antara data-data yang berbeda-beda.

Pengertian NoSQL Adalah

Untuk lebih detail lagi dapat diklasifikasikan menjadi sepuluh (10) jenis model penyimpanan data yaitu sebagai berikut beserta contohnya (berdasarkan pengamatan Stephen Yen).

  1. Key-Value Cache: Apache Ignite, Coherence, eXtreme Scale, Hazelcast, Infinispan, Memcached, Velocity.
  2. Key-Value Store: ArangoDB, Aerospike.
  3. Key-Value Store (Eventually-Consistent): Oracle NoSQL Database, Dynamo, Riak, Voldemort.
  4. Key-Value Store (Ordered): FoundationDB, InfinityDB, LMDB, MemcacheDB.
  5. Data-Structures Server: Redis.
  6. Tuple Store: Apache River, GigaSpaces.
  7. Object Database: Objectivity/DB, Perst, ZopeDB.
  8. Document Store: ArangoDB, BaseX, Clusterpoint, Couchbase, CouchDB, DocumentDB, IBM Domino, MarkLogic, MongoDB, Qizx, RethinkDB, Elasticsearch.
  9. Wide Column Store: Amazon DynamoDB, Bigtable, Cassandra, Scylla, HBase, Hypertable.
  10. Native Multi-model Database: ArangoDB, Cosmos DB, OrientDB, MarkLogic.

Apa saja kegunaan NoSQL itu? Apa perbedaannya dengan SQL?

sql-vs-nosql

Fungsi database NoSQL sama dengan fungsi database SQL klasik, namun dengan sisi kelebihan dan kekurangannya sendiri. Seperti RDBMS SQL pada umumnya, NoSQL berguna untuk mengolah data-data dan menyimpannya untuk dimanfaatkan kembali atau diakses baik oleh Server maupun Client. Data-data tersebut tersimpan secara konsisten sehingga baik dari Server maupun Client melihat data yang sama.

NoSQL menganut kaidah BASE, yaitu Basically Available, Soft state, dan Eventual consistency. Data di dalamnya dapat berubah meski tidak ada input, ia seperti RDBMS dengan Trigger yang terpasang secara otomatis. Karena itu NoSQL lebih cocok dan sesuai digunakan untuk aplikasi yang memerlukan perubahan yang rapidly (cepat) karena sifatnya yang lebih dinamis dan fleksibel.

Kelebihan database NoSQL dibandingkan database SQL

Pada beberapa kasus NoSQL dinilai dapat bekerja lebih baik daripada SQL yang berbasis relasional, diantaranya sebagai berikut.

  1. Ketika Anda perlu menyimpan data dalam jumlah yang besar dengan skema yang tidak konsisten.
    Skema data pada NoSQL tidak fixed seperti halnya pada SQL, perubahan struktur dan skema yang sewaktu-waktu bisa berubah bisa ditangani dengan mudah tanpa harus merubah konsistensi data di database itu sendiri.
  2. Ketika Anda memerlukan komputasi dan penyimpanan data secara cloud-based.
    Sebagian besar database NoSQL dibuat dan dirancang agar bisa bekerja di data-center yang berbeda dan dijalankan sebagai sistem terdistribusi. Dalam kasus ini Anda sebagai pegguna NoSQL akan diuntungkan, karena Anda dapat memanfaatkan akses ke berbagai infrastruktur komputasi berbasis cloud.
  3. Ketika Anda menjadi web-developer atau app-developer dan Anda memerlukan update yang cepat (rapidly).
    Dengan NoSQL Anda tidak perlu mempersiapkan data sebagaimana apabila Anda menggunakan RDBMS (SQL), Anda bahkan dapat memigrasikan data yang sudah terstruktur dari satu versi aplikasi ke versi update setelahnya, kapan saja desain aplikasinya di-update. Sifat dinamis NoSQL dapat ikut berkembang bersama dengan perubahan aplikasinya.

Kekurangan database NoSQL dibandingkan database SQL

Dalam konsep database RDBMS, terdapat kaidah ACID, yaitu empat (4) kaidah transaksi data. ACID merupakan akronim dari Atomic, Concistent, Isolated, dan Durable.

  1. Atomic artinya setiap record atau row adalah data yang unik, tidak bisa digantikan data yang lain.
  2. Consistent, setiap baris data adalah data yang konsisten, maksudnya data akan tetap konsisten setelah dieksekusi dengan suatu operasi tertentu. Server maupun client akan melihat data yang sama.
  3. Isolated artinya setiap perubahan satu record adalah satu transaksi yang independen, tidak ada hubungannya dengan transaksi record lainnya.
  4. Durable, artinya setelah transaksi selesai, efek dari perubahan record tersebut tersimpan secara solid dan permanen.

Inilah alasan kenapa RDBMS disebut sebagai database yang fixed. NoSQL tidak memenuhi kaidah ACID tersebut, ia bisa Consistent tapi ia tidak bisa Atomic, Isolated, dan Durable. NoSQL tidak sesuai digunakan untuk aplikasi yang memerlukan fixed data seperti rekam biodata karyawan, sensus penduduk, rekam medis, rekam sidik jari, dan masih banyak lagi contoh lainnya. Semoga artikel tentang pengertian NoSQL ini bermanfaat dan mudah dipahami!

Leave a Reply

Send this to a friend