Recraftory

NoSQL

Memahami database NoSQL dan penggunaannya dalam pengembangan modern

Apa itu NoSQL

  • Not Only SQL: database yang tidak menggunakan skema tabel tradisional
  • Dirancang untuk fleksibilitas, scale horizontal, dan data yang tidak terstruktur
  • Cocok untuk aplikasi modern dengan data yang bervariasi

MongoDB: Document Store

Dokumen

  • Data disimpan sebagai dokumen BSON mirip JSON
  • Setiap dokumen bisa memiliki struktur berbeda dalam koleksi yang sama
  • Dokumen diidentifikasi dengan _id unik otomatis

Koleksi

  • Setara dengan tabel di database relasional
  • Tidak memerlukan skema tetap, setiap dokumen bisa berbeda

Query Dasar

  • db.users.find() mengambil semua dokumen
  • db.users.find({ nama: "Andi" }) mencari berdasarkan kondisi
  • db.users.insertOne({ nama: "Budi", email: "budi@email.com" }) menambah dokumen
  • db.users.updateOne({ _id: 1 }, { $set: { nama: "Caca" } }) memperbarui dokumen
  • db.users.deleteOne({ _id: 1 }) menghapus dokumen

Keunggulan MongoDB

  • Fleksibel, tidak perlu migrasi skema untuk struktur baru
  • Mendukung data hierarkis dan nested
  • Mudah scale horizontal dengan sharding
  • Query JSON yang natural untuk developer JavaScript

Redis: Key-Value Store

Konsep Dasar

  • Menyimpan data sebagai pasangan kunci dan nilai
  • Nilai bisa berupa string, list, set, hash, atau sorted set
  • Data disimpan di memory sehingga sangat cepat

Perintah Dasar

  • SET nama "Andi" menyimpan nilai string
  • GET nama mengambil nilai berdasarkan kunci
  • LPUSH daftar "item" menambah item ke list
  • HSET user:1 nama "Andi" menyimpan hash
  • EXPIRE kunci 3600 mengatur waktu kadaluarsa dalam detik

Penggunaan Umum Redis

  • Cache untuk mengurangi beban database utama
  • Session storage untuk login user
  • Rate limiting untuk membatasi request API
  • Real-time leaderboards dan counters

Cassandra: Column-Family Store

Konsep Dasar

  • Data disimpan dalam column family yang mirip tabel tapi lebih fleksibel
  • Dioptimalkan untuk write-heavy workloads
  • Mendesain query terlebih dahulu sebelum membuat skema

Keunggulan

  • Sangat scalable untuk data besar dan write intensif
  • Replikasi data antar node otomatis
  • Toleransi terhadap kegagalan node

Neo4j: Graph Database

Konsep Dasar

  • Data disimpan sebagai node dan relationship
  • Node merepresentasikan entitas, relationship merepresentasikan hubungan
  • Query menggunakan Cypher, bahasa yang mirip ASCII art

Kapan Menggunakan

  • Social network dan rekomendasi teman
  • Fraud detection dan network analysis
  • Routing dan pathfinding

Memilih NoSQL yang Tepat

  • Data hierarkis dan JSON: MongoDB
  • Cache dan session: Redis
  • Data besar dengan write intensif: Cassandra
  • Relasi kompleks antar entitas: Neo4j

Perbandingan dengan SQL

AspekSQLNoSQL
SkemaTetapFleksibel
SkalabilitasVerticalHorizontal
TransaksiKuat ACIDEventual consistency
QuerySQL standarSpesifik per database
RelasiJoin antar tabelEmbedded atau referensi
Contoh Use CaseERP, bankingIoT, social media, CMS