Sampai pertengahan 2000-an, memilih database nyaris selalu berarti memilih produk relasional seperti Oracle, MySQL, atau PostgreSQL. Kemudian layanan web berskala masif — media sosial, e-commerce raksasa, jaringan sensor — membawa pola data yang tidak selalu nyaman di model relasional: volume sangat besar, bentuk data yang berubah cepat, dan kebutuhan menambah kapasitas dengan cara menambah server. Dari tekanan itulah keluarga database alternatif bernama NoSQL tumbuh.

Chapter ini memetakan lanskap NoSQL secara ringkas agar kita tahu persis di mana MongoDB berdiri dan apa yang membedakannya dari anggota keluarga lainnya. Kita akan membahas asal istilahnya, alasan kemunculannya, empat keluarga utamanya, dan posisi MongoDB di dalamnya.

Asal Usul Istilah NoSQL #

Istilah NoSQL dipopulerkan pada 2009 melalui pertemuan developer di San Francisco yang membahas database terdistribusi non-relasional yang saat itu sedang naik daun, seperti Cassandra dan CouchDB. Singkatan ini lazim dibaca “Not Only SQL”: bukan penolakan terhadap SQL atau model relasional, melainkan pengakuan bahwa model relasional bukan satu-satunya alat untuk semua masalah data.

Karena akarnya adalah kebutuhan praktis, bukan satu teknologi tunggal, istilah NoSQL merujuk pada kelompok produk yang sangat beragam. Dua database NoSQL bisa lebih berbeda satu sama lain dibandingkan sebuah database NoSQL dengan database relasional. Itulah sebabnya memahami kategori di dalamnya jauh lebih berguna daripada sekadar menghafal labelnya.

Kenapa NoSQL Muncul #

Empat tekanan utama mendorong lahirnya database NoSQL:

  • Skala horizontal. Database relasional tradisional bertumbuh ke atas (server yang semakin besar); NoSQL dirancang untuk bertumbuh ke samping (banyak server biasa yang bekerja sama), yang umumnya lebih murah dan lebih mudah.
  • Skema dinamis. Iterasi produk modern cepat; bentuk data berubah mengikuti fitur baru. Struktur yang kaku di level penyimpanan bisa memperlambat tim.
  • Variasi bentuk data. Dokumen, log event, cache, pesan, dan graf relasi memiliki pola akses berbeda; satu model penyimpanan tidak selalu optimal untuk semuanya.
  • Kompromi konsistensi. Beberapa produk NoSQL memilih ketersediaan tinggi dan latensi rendah dengan melonggarkan konsistensi antar node — pilihan yang dirumuskan dalam trade-off teorema CAP.

Empat Keluarga Database NoSQL #

KeluargaCara memandang dataContoh produkKekuatan khas
Documentdocument terstruktur mirip JSONMongoDB, Couchbaseskema fleksibel dengan query yang kaya
Key-valuepasangan kunci dan nilaiRedis, DynamoDBlatensi sangat rendah; cocok untuk cache dan session
Wide-columnbaris dengan kolom yang bervariasi, tersebar di banyak nodeCassandra, HBasevolume tulisan sangat besar
Graphnode dan edge antar entitasNeo4jpenelusuran relasi berlapis, misalnya rekomendasi

Beberapa catatan penting soal tabel di atas:

  • Batas antar kategori tidak kaku. Banyak produk modern memadukan fitur lintas kategori — Redis, misalnya, menambah struktur data di balik nilainya; sejumlah produk document menambah kemampuan pencarian teks.
  • Key-value store paling sederhana: aplikasi mengambil nilai hanya dengan kunci persisnya. Logika mengolah data sepenuhnya berada di aplikasi.
  • Graph database unggul saat relasi antar data itu sendiri yang menjadi pertanyaan utama, misalnya “teman dari teman yang menyukai produk ini”.

Posisi MongoDB dalam Keluarga NoSQL #

MongoDB adalah database document — keluarga paling dekat dengan cara aplikasi modern memandang data. Empat ciri berikut menegaskan posisinya:

  • Document BSON sebagai unit data. Aplikasi JavaScript dan Python sudah bekerja dengan object dan dictionary; bentuk document memetakan langsung ke struktur tersebut tanpa lapisan translasi tabel-baris-kolom.
  • Query ekspresif, bukan sekadar akses per kunci. Kita dapat memfilter field bersarang, memakai rentang nilai, mengurutkan, dan menjalankan aggregation — kebiasaan yang dekat dengan pengguna SQL.
  • Konsistensi kuat secara bawaan. Bacaan diarahkan ke node primary sehingga hasilnya selalu paling segar; MongoDB juga menyediakan transaksi multi-document ACID untuk kasus yang membutuhkannya.
  • Skala horizontal native. Replica set dan sharding tersedia di dalam produk inti, bukan tambahan pihak ketiga.

Perbandingan singkatnya begini: key-value store menempatkan logika pengolahan data di aplikasi, sedangkan MongoDB mengangkat sebagian logika tersebut ke database lewat query language dan index. Inilah alasan MongoDB sering dipilih sebagai database utama aplikasi web, sementara key-value store umumnya berperan sebagai pendamping untuk cache dan session.

Rangkuman #

  • NoSQL adalah payung istilah untuk database non-relasional yang muncul dari kebutuhan skala horizontal, skema dinamis, variasi bentuk data, dan kompromi konsistensi.
  • Empat keluarga utamanya: document, key-value, wide-column, dan graph — masing-masing dengan kekuatan khas.
  • MongoDB berada di keluarga document, dengan query language ekspresif, konsistensi kuat secara bawaan, dan skala horizontal native.
  • Polyglot persistence — memakai beberapa database sesuai beban — adalah pola normal di sistem modern; MongoDB umumnya mengambil peran data utama aplikasi.