930 x 180 AD PLACEMENT

Kenalan sama NoSQL

750 x 100 AD PLACEMENT

Kalo biasanya kita mengenal bahwa di basis data kita selalu menggunakan database relasional, ternyata ada database lain yang bukan merupakan database relasional. Namanya adalah NoSQL. Apa bedanya? Dalam tulisan ini, saya akan coba untuk membahas lebih jauh mengenai hal ini. Kebetulan kemarin barusan dibahas di kuliah.

Apa itu NoSQL?

NoSQL adalah salah satu jenis database yang tidak menggunakan model relasional tradisional seperti yang ditemukan pada database SQL (Structured Query Language). NoSQL (Not Only SQL) dirancang untuk menangani berbagai jenis data, memberikan fleksibilitas tinggi dalam menyimpan, mengelola, dan memproses data yang tidak terstruktur atau semi-terstruktur.

NoSQL dibuat untuk memberikan alternatif terkait dari karakteristik-karakteristik lain yang banyak tidak tercover pada database relasional.

Oiya saya juga pernah menulis tentang salah satu karakteristik database relasional yaitu ACID. Bisa dibaca di sini.

750 x 100 AD PLACEMENT

Mengapa NoSQL?

Seperti yang udah saya sebutkan di atas, NoSQL banyak memberikan alternatif karakteristik lain yang mungkin tidak terdapat pada database relasional.

Beberapa NoSQL didesain untuk menangani data dengan skala yang besar. Selain itu, NoSQL menganut Schemaless. Maksudnya di sini bukan tanpa schema, tapi memiliki schema yang fleksibel. Kalo kita di database relational kita harus mendefinisikan kolom-kolomnya, di NoSQL, kita bisa memiliki kolom yang berbeda di tiap instance nya.

BASE Characteristics

BASE adalah karakteristik yang menggambarkan pendekatan yang sering digunakan dalam sistem database NoSQL untuk mengelola data. BASE adalah singkatan dari:

  1. Basically Available (Tersedia Secara Dasar)
    Sistem menjamin ketersediaan data, meskipun tidak selalu konsisten pada waktu tertentu. Artinya, aplikasi tetap dapat menerima respons dari database meskipun data yang dikembalikan mungkin tidak sepenuhnya mutakhir.
    • Contoh: Dalam sistem NoSQL seperti Cassandra, jika salah satu node dalam cluster gagal, node lain dapat melayani permintaan tanpa gangguan.
  2. Soft State (Keadaan Sementara)
    Keadaan data dalam sistem dapat berubah dari waktu ke waktu, bahkan tanpa input eksternal, karena adanya replikasi atau sinkronisasi antar node dalam sistem terdistribusi.
    • Contoh: Dalam database NoSQL yang terdistribusi, data yang direplikasi di berbagai lokasi mungkin membutuhkan waktu untuk sinkronisasi, sehingga statusnya tidak selalu tetap.
  3. Eventual Consistency (Konsistensi Akhir)
    Sistem menjamin bahwa meskipun konsistensi data tidak dijamin secara langsung, data pada akhirnya akan menjadi konsisten dalam periode waktu tertentu (misalnya, setelah proses sinkronisasi selesai).
    • Contoh: Dalam aplikasi media sosial, jika seorang pengguna mengunggah status, pengguna lain mungkin tidak langsung melihat status tersebut, tetapi status tersebut akan tersedia setelah beberapa saat.

Ini yang sangat membedakan dengan ACID pada database relasional

750 x 100 AD PLACEMENT

Apa saja Jenisnya?

Secara umum, NoSQL dibagi menjadi KeyValue, Document, Column dan Graph. Masing-masing memiliki karakteristik masing-masing.

Key Value Base Database

Menyimpan data sebagai pasangan kunci (key) dan nilai (value). Sistem ini sangat sederhana, mirip dengan kamus dalam pemrograman.

Contoh: Redis, DynamoDB.

Document Base Database

Menyimpan data dalam bentuk dokumen semi-terstruktur seperti JSON, BSON, atau XML. Setiap dokumen berisi pasangan key-value, yang memungkinkan fleksibilitas dalam menyimpan data dengan struktur yang berbeda.

750 x 100 AD PLACEMENT

Contoh: MongoDB, Couchbase.

Column Base Database

Data disimpan dalam kolom, bukan baris seperti pada SQL. Setiap kolom dapat memiliki struktur sendiri, dan data diatur dalam “keluarga kolom” (column families).

Contoh: Cassandra, HBase.

Graph Database

Dirancang untuk menyimpan data yang memiliki hubungan kompleks. Data disimpan sebagai node (entitas) dan edge (hubungan antar entitas), dengan properti tambahan untuk masing-masing.

Contoh: Neo4j, Amazon Neptune.

Oke mungkin itu dulu ya teman-teman yang bisa saya sampaikan. Mungkin akan ada tulisan lebih lanjut terkait karakteristik masing-masing databasenya. Semoga bermanfaat

750 x 100 AD PLACEMENT

Leave a Reply

Your email address will not be published. Required fields are marked *

930 x 180 AD PLACEMENT