Pernah dengar istilah Database NoSQL?
Database NoSQL adalah jenis database non-relasional yang bertujuan untuk menangani penyimpanan data yang terstruktur dan tidak terstruktur dengan skema yang fleksibel
Makna dari NoSQL adalah Not Only SQL yang artinya jenis database ini tidak hanya mampu menangani jenis data yang relasional saja
Contents
Tipe Database NoSQL
Ada beberapa jenis database NoSQL antara lain:
- Key-value:
- Document
- Graph
- Column-oriented
- Search

#1 Key-value
Key-value database adalah jenis database non-relasional yang menggunakan metode key-value untuk menyimpan data
Setiap atribut unik akan disimpan sebagai kunci (key) dengan nilai (value) terkait. Nilai (value) dapat berupa string, array, struktur data dan lainnya
Beberapa database terkenal yang menggunakan tipe key-value antara lain: Amazon DynamoDB, Apache Cassandra, Redis, Riak, Oracle NoSQL Database
#2 Document
Document database adalah jenis database non-relasional yang menyimpan data sebagai dokumen yang mirip dengan format JSON
Penyimpanan data sangat fleksibel dan mudah karena dalam menentukan atribut data sangat bebas dalam bentuk hirarki
Berikut contoh penulisan document database dengan atribut yang fleksibel
[ { "dibuat" : 01-02-2020, "judul" : "Cara membuat program seminggu", "info" : { "penulis" : "faqih", "dilihat" : 112, "genres" : "programming" } }, { "dibuat" : 21-02-2020, "judul" : "Tutorial membuat web scraping", "info" : { "penulis" : "faqih", "dilihat" : 112, "share" : 10" } } ]
Beberapa contoh document database yang terkenal antara lain MongoDB, Couchbase, Azure Cosmos DB
#3 Graph
Graph database adalah jenis database yang menyimpan data bentuk relationship. Prinsip database menggunakan teori graph yang mempunyai node sebagai entitas dan edge sebagai relasi antar node

Beberapa contoh graph database yang terkenal antara lain Amazon Neptune, Neo4j
#4 Column-oriented
Column-oriented database merupakan database yang menyimpan data dengan ukuran kolom yang besar dan dinamis
Jenis database ini mirip dengan database relasional seperti MariaDB, MySQL dan cocok digunakan untuk mengolah data yang banyak melibatkan query kolom

Beberapa contoh column-oriented database antara lain Apache Hbase, Apache Kudu, Apache Parquet, MonetDB
#5 Search
Search database adalah jenis database non-relasional yang bertujuan untuk melakukan pencarian konten data
Dalam melakukan pencarian kita bisa mendefinisikan kata kunci yang bervariasi yang tidak mampu dilakukan oleh database relational
Selain itu jenis database ini saat cepat dalam melakukan pencarian yang komplek dan pastinya akan mengurangi waktu komputasi

Contoh search database yang terkenal adalah elasticsearch yang biasanya digunakan satu paket dengan longstash dan kibana (ELK)
Perbedaan SQL dan NoSQL Database
Ada beberapa perbedaan antara database tipe SQL dan NoSQL antara lain:
Database Relasional | Database NoSQL | |
Waktu Pengembangan | Sekitar Tahun 1970an | Sekitar Tahun 2000an |
Model Data | Satu jenis (setiap entitas mempunyai relasi dengan lainnya) | Banyak jenis (key-value, document, graph, column-oriented, search) |
Skema | Mempunyai struktur skema yang tetap dan diinisialisasi di awal saat pembuatan database | Mempunyai jenis skema yang fleksibel dengan struktur data yang dinamis |
Skalabilitas | Secara vertikal, artinya satu server harus dibuat semakin kuat untuk menghadapi peningkatan permintaan | Secara horizontal, artinya untuk menambah kapasitas dapat dengan mudah menambahkan lebih banyak server |
Manipulasi Data | Bahasa tertentu menggunakan pernyataan Select, Insert, and Update | Melalui object-oriented APIs |
Contoh Database | MySQL, MariaDB, Postgres, Oracle, SQL Server | MongoDB, Couchbase, Hbase, Neo4j, DynamoDB, |
Kenapa Harus NoSQL?
Jadi database NoSQL muncul karena keterbatasan kemampuan database SQL dalam menyimpan data. Database NoSQL sangat fleksibel dan mempunyai skema yang dinamis
Berikut adalah beberapa poin kenapa harus menggunakan NoSQL
- Mampu menangani jumlah data yang besar dengan tipe data yang bermacam-macam (structured/ unstructured) dengan perkembangan data yang cepat (Cocok untuk database big data)
- Mempunyai skema data yang dinamis tidak kaku seperti database SQL yang sudah ditetapkan skema dan relasinya di awal sehingga mudah digunakan untuk berbagai macam case
- Mampu melakukan skalabilitas yang bagus karena merupakan tipe database yang dapat dikembangkan secara horizontal artinya dapat dilakukan clustering dengan penambahan machine
- Mempunyai performa tinggi karena penyimpanan data sudah dioptimalkan sehingga saat melakukan query hanya memerlukan waktu komputasi yang cepat
Mungkin beberapa poin diatas adalah keuntungan menggunakan database NoSQL tetapi tidak semua kasus membutuhkan jenis database NoSQL
Ada beberapa model aplikasi yang harus menggunakan database SQL seperti transaksi perbankan, sistem informasi, majemen keuangan dan sebagainya sehingga database SQL dan NoSQL berjalan beriringan dan digunakan sesuai kebutuhan
MongoDB NoSQL
MongoDB adalah salah satu jenis database NoSQL dengan tipe document-oriented.
Penyimpanan data di MongoDB seperti format JSON yaitu penyimpanan data dalam bentuk dokumen secara hirarki
MongoDB adalah database NoSQL yang banyak digunakan untuk kebutuhan big data
Pada materi selanjutnya kita akan mencoba menggunakan database NoSQL dengan studi kasus database MongoDB
Beberapa materi MongoDB antara lain
- Memahami Konsep Database NoSQL
- Cara Mudah Install Database MongoDB
- Cara Membuat Database dan Manajemen Collection
- Manajemen Database MongoDB dengan GUI
- Manajemen MongoDB dengan Python
Selanjutnya stay tuned gaes.. MongoDB series akan berlanjut beberapa hari mendatang 😀
sangat menarik artikelnya mas Faqih. sukses terus dan sharing terus ya
Siap mas Agung 😀
Bagus sekali mas penjelasannya, artikelnya sangat bermanfaat. Semoga artikel lain terkait dilanjutkan!