Jenis NoSQL: dokument, kolom, graf, key-value
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: key → value
- 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.