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.
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.
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 adalah karakteristik yang menggambarkan pendekatan yang sering digunakan dalam sistem database NoSQL untuk mengelola data. BASE adalah singkatan dari:
Ini yang sangat membedakan dengan ACID pada database relasional
Secara umum, NoSQL dibagi menjadi KeyValue, Document, Column dan Graph. Masing-masing memiliki karakteristik masing-masing.
Menyimpan data sebagai pasangan kunci (key) dan nilai (value). Sistem ini sangat sederhana, mirip dengan kamus dalam pemrograman.
Contoh: Redis, DynamoDB.
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.
Contoh: MongoDB, Couchbase.
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.
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