nosql database
Big Data, Database

Tutorial MongoDB – Memahami Konsep Database NoSQL

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

Tipe Database NoSQL

Ada beberapa jenis database NoSQL antara lain:

  • Key-value:
  • Document
  • Graph
  • Column-oriented
  • Search
database nosql
Ilustrasi jenis database NoSQL
#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

database nosql
Ilustrasi Key-value database

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

database nosql
Contoh relasi pertemanan yang dapat disimpan di graph database

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

database nosql
Ilustrasi column-oriented database

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

database nosql
Contoh query di search database

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 RelasionalDatabase NoSQL
Waktu PengembanganSekitar Tahun 1970anSekitar Tahun 2000an
Model DataSatu jenis (setiap entitas mempunyai relasi dengan lainnya)Banyak jenis (key-value, document, graph, column-oriented, search)
SkemaMempunyai struktur skema yang tetap dan diinisialisasi di awal saat pembuatan databaseMempunyai jenis skema yang fleksibel dengan struktur data yang dinamis
SkalabilitasSecara vertikal, artinya satu server harus dibuat semakin kuat untuk menghadapi peningkatan permintaanSecara horizontal, artinya untuk menambah kapasitas dapat dengan mudah menambahkan lebih banyak server
Manipulasi DataBahasa tertentu menggunakan pernyataan Select, Insert, and UpdateMelalui object-oriented APIs
Contoh DatabaseMySQL, 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

  1. Mampu menangani jumlah data yang besar dengan tipe data yang bermacam-macam (structured/ unstructured) dengan perkembangan data yang cepat (Cocok untuk database big data)
  2. 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
  3. Mampu melakukan skalabilitas yang bagus karena merupakan tipe database yang dapat dikembangkan secara horizontal artinya dapat dilakukan clustering dengan penambahan machine
  4. 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

Selanjutnya stay tuned gaes.. MongoDB series akan berlanjut beberapa hari mendatang 😀

2 Comments

  1. sangat menarik artikelnya mas Faqih. sukses terus dan sharing terus ya

    1. Siap mas Agung 😀

Leave a Reply

Your email address will not be published. Required fields are marked *