Jenis NoSQL: dokument, kolom, graf, key-value

From OnnoWiki
Jump to navigation Jump to search

Berikut adalah Modul 12: Basis Data NoSQL dan Big Data, dengan penjelasan lengkap tentang jenis-jenis NoSQL (dokumen, kolom, graf, key-value) beserta pendekatan simulasi atau integrasi dari MySQL di Ubuntu 24.04.

Basis Data NoSQL dan Big Data

Tujuan Pembelajaran

  • Memahami konsep dasar basis data NoSQL dan penerapannya dalam skenario Big Data.
  • Mengenali empat jenis utama NoSQL: document, key-value, column-family, dan graph.
  • Mempelajari pendekatan integrasi atau simulasi NoSQL menggunakan MySQL di Ubuntu 24.04.

1. Apa itu NoSQL?

NoSQL adalah tipe basis data yang tidak menggunakan relasi tradisional (table-join seperti pada RDBMS). Cocok untuk:

  • Data tidak terstruktur atau semi-terstruktur.
  • Skala besar dan butuh kecepatan horizontal scalability.
  • Replikasi otomatis, partisi data, dan resiliensi tinggi.

2. Jenis-jenis NoSQL

=2.1 Dokumen (Document Store)

  • Menyimpan data dalam bentuk dokumen (biasanya format JSON, BSON).
  • Cocok untuk data fleksibel seperti artikel, user profile, produk.
  • Contoh DB: MongoDB, CouchDB.

Simulasi di MySQL:

CREATE TABLE user_profile (
    id INT PRIMARY KEY,
    data JSON
);

INSERT INTO user_profile VALUES (1, '{"nama": "Andi", "alamat": {"kota": "Bandung", "kodepos": 40123}}');
SELECT JSON_EXTRACT(data, '$.alamat.kota') FROM user_profile;

Keterangan: MySQL mendukung tipe data JSON sejak versi 5.7, memungkinkan kita menyimpan dan memproses data seperti document store.

2.2 Key-Value Store

  • Penyimpanan sederhana: keyvalue
  • Cocok untuk session, cache, konfigurasi.
  • Contoh DB: Redis, DynamoDB.

Simulasi di MySQL:

CREATE TABLE config_store (
    config_key VARCHAR(100) PRIMARY KEY,
    config_value TEXT
);

INSERT INTO config_store VALUES ('theme', 'dark'), ('language', 'id');
SELECT config_value FROM config_store WHERE config_key = 'theme';

Keterangan: Walau tidak secepat Redis, MySQL bisa meniru skema key-value untuk kebutuhan dasar konfigurasi atau metadata.


=2.3 Kolom (Column Family)

  • Menyimpan data berbasis kolom, bukan baris.
  • Cocok untuk data besar seperti log, time series, analitik.
  • Contoh DB: Apache Cassandra, HBase.

Simulasi di MySQL:

MySQL tetap berbasis row-store, tapi bisa mimic skema kolom menggunakan pivot-like structure:

CREATE TABLE sensor_data (
    id INT AUTO_INCREMENT PRIMARY KEY,
    waktu DATETIME,
    suhu DOUBLE,
    kelembapan DOUBLE
);

Untuk efisiensi baca berdasarkan kolom tertentu, bisa gunakan INDEX:

CREATE INDEX idx_suhu ON sensor_data(suhu);

Catatan: Untuk true column-oriented storage, gunakan sistem seperti ClickHouse atau Cassandra.

2.4 Graf (Graph Database)

  • Menyimpan node dan edge untuk mewakili relasi kompleks.
  • Cocok untuk sosial media, rekomendasi, analisa jaringan.
  • Contoh DB: Neo4j, ArangoDB.

Simulasi di MySQL:

-- Node: User
CREATE TABLE user (
    id INT PRIMARY KEY,
    nama VARCHAR(50)
);

-- Edge: Hubungan antar user
CREATE TABLE hubungan (
    dari_user INT,
    ke_user INT,
    jenis_hubungan VARCHAR(50),
    FOREIGN KEY (dari_user) REFERENCES user(id),
    FOREIGN KEY (ke_user) REFERENCES user(id)
);
-- Query: Siapa teman Andi?
SELECT u2.nama
FROM user u1
JOIN hubungan h ON u1.id = h.dari_user
JOIN user u2 ON h.ke_user = u2.id
WHERE u1.nama = 'Andi' AND h.jenis_hubungan = 'teman';

Catatan: Pendekatan ini hanya menyimulasikan struktur graph; untuk traversal graf kompleks seperti DFS/BFS, butuh DB asli seperti Neo4j.


Hubungan NoSQL dan Big Data

NoSQL sangat cocok untuk skenario Big Data karena:

  • Bisa di-scale horizontal dengan mudah.
  • Tidak bergantung pada skema tetap (schema-less).
  • Cocok untuk data volume besar dan kecepatan tinggi (velocity).

Contoh skenario Big Data di Indonesia:

  • E-commerce menyimpan jutaan user profile (document).
  • IoT sensor kota (column family).
  • Analisis jejaring sosial (graph).
  • Pengaturan caching skala besar (key-value Redis).

4. Instalasi dan Integrasi di Ubuntu 24.04

Jika ingin eksperimen nyata dengan NoSQL di Ubuntu:

# MongoDB (Document)
sudo apt install -y mongodb

# Redis (Key-Value)
sudo apt install -y redis
# Neo4j (Graph)
wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add -
echo 'deb https://debian.neo4j.com stable 5' | sudo tee /etc/apt/sources.list.d/neo4j.list
sudo apt update
sudo apt install neo4j

Kesimpulan

Jenis NoSQL Karakteristik Contoh DB Simulasi MySQL
Dokumen JSON fleksibel MongoDB Tipe data JSON
Key-Value Sangat cepat, sederhana Redis Key & nilai
Kolom Big data & time-series Cassandra Simulasi tabel
Graf Node-edge relationship Neo4j Tabel relasi

MySQL dapat digunakan untuk simulasi dasar NoSQL jika arsitektur belum bisa beralih ke database khusus.


Pranala Menarik