Tutorial NoSQL: Jenis-Jenis Basis Data NoSQL & Contohnya
โก Ringkasan Cerdas
NoSQL adalah sistem manajemen basis data non-relasional yang tidak memerlukan skema tetap, menghindari operasi join, dan mudah diskalakan. Sumber daya ini menjelaskan apa itu NoSQL, mengapa ia ada, sejarahnya, fitur-fiturnya, empat jenis basis data, teorema CAP, konsistensi bertahap, serta kelebihan dan kekurangannya.

Apa itu NoSQL?
Basis Data NoSQL NoSQL adalah sistem manajemen data non-relasional yang tidak memerlukan skema tetap. Sistem ini menghindari operasi join dan mudah diskalakan. Tujuan utama penggunaan basis data NoSQL adalah untuk penyimpanan data terdistribusi dengan kebutuhan penyimpanan data yang sangat besar. NoSQL digunakan untuk big data dan aplikasi web real-time. Contohnya, perusahaan seperti Twitter, Facebook, dan lainnya. Google mengumpulkan terabyte data pengguna setiap hari.
Basis data NoSQL NoSQL adalah singkatan dari โNot Only SQLโ atau โNot SQLโ. Meskipun istilah yang lebih tepat adalah โNoRELโ, NoSQL menjadi populer. Carl Strozzi memperkenalkan konsep NoSQL pada tahun 1998.
RDBMS tradisional menggunakan sintaks SQL untuk menyimpan dan mengambil data guna mendapatkan wawasan lebih lanjut. Sebaliknya, sistem basis data NoSQL mencakup berbagai teknologi basis data yang dapat menyimpan data terstruktur, semi-terstruktur, tidak terstruktur, dan polimorfik. Mari kita pahami tentang NoSQL dengan diagram dalam tutorial basis data NoSQL ini:
Mengapa NoSQL?
Konsep basis data NoSQL menjadi populer di kalangan raksasa internet seperti Google, Facebook, Amazon, dll. yang menangani data dalam jumlah besar. Waktu respons sistem menjadi lambat ketika Anda menggunakan RDBMS untuk data dalam jumlah besar.
Untuk mengatasi masalah ini, kami dapat โmeningkatkanโ sistem kami dengan meningkatkan perangkat keras yang ada. Proses ini mahal.
Alternatif untuk masalah ini adalah mendistribusikan beban basis data ke beberapa host setiap kali beban meningkat. Metode ini dikenal sebagai "scaling out".
Basis data NoSQL bersifat non-relasional, sehingga skalabilitasnya lebih baik daripada basis data relasional, karena dirancang dengan mempertimbangkan aplikasi web.
Sejarah Singkat Database NoSQL
- 1998 โ Carlo Strozzi menggunakan istilah NoSQL untuk basis data relasional sumber terbuka dan ringan miliknya.
- 2000 โ Basis data grafik Neo4j diluncurkan.
- 2004 - Google BigTable diluncurkan.
- 2005 - CouchDB diluncurkan.
- 2007 โ Makalah penelitian tentang Amazon Dynamo telah dirilis.
- 2008 โ Facebook membuka kode sumbernya Cassandra proyek.
- 2009 โ Istilah NoSQL diperkenalkan kembali.
Fitur NoSQL
Non-relasional
- Basis data NoSQL tidak pernah mengikuti model relasional.
- Jangan pernah menyediakan tabel dengan data kolom tetap yang datar.
- Bekerja dengan agregat mandiri atau BLOB.
- Tidak memerlukan pemetaan objek-relasional.ping dan normalisasi data.
- Tidak ada fitur kompleks seperti bahasa kueri, perencana kueri, penggabungan integritas referensial, atau ACID.
Bebas skema
- Basis data NoSQL bersifat tanpa skema atau memiliki skema yang longgar.
- Tidak memerlukan definisi skema data apa pun.
- Menawarkan struktur data heterogen dalam domain yang sama.

API sederhana
- Menawarkan antarmuka yang mudah digunakan untuk penyimpanan dan kueri data.
- API memungkinkan manipulasi data tingkat rendah dan metode pemilihan.
- Protokol berbasis teks sebagian besar digunakan dengan HTTP REST dengan JSON.
- Sebagian besar menggunakan bahasa kueri NoSQL yang tidak berbasis standar.
- Basis data berbasis web yang beroperasi sebagai layanan yang menghadap ke internet.
didistribusikan
- Beberapa basis data NoSQL dapat dijalankan secara terdistribusi.
- Menawarkan kemampuan penskalaan otomatis dan failover.
- Seringkali konsep ACID dikorbankan demi skalabilitas dan throughput.
- Sebagian besar tidak ada replikasi sinkron antar node terdistribusi; replikasi multi-master asinkron, peer-to-peer, replikasi HDFS.
- Hanya memberikan konsistensi pada akhirnya.
- Arsitektur tanpa berbagi (shared-nothing). Hal ini memungkinkan koordinasi yang lebih sedikit dan distribusi yang lebih tinggi.
Jenis Database NoSQL
Database NoSQL Secara umum, basis data dikategorikan menjadi empat jenis: pasangan kunci-nilai, berorientasi kolom, berbasis grafik, dan berorientasi dokumen. Setiap kategori memiliki atribut dan keterbatasan uniknya masing-masing. Tidak ada satu pun basis data yang disebutkan di atas yang lebih baik dalam menyelesaikan semua masalah. Pengguna harus memilih basis data berdasarkan kebutuhan produk mereka.
Jenis Database NoSQL:
- Berbasis Pasangan Nilai Kunci
- Grafik berorientasi kolom
- Berbasis grafik
- Berorientasi pada dokumen
Berbasis Pasangan Nilai Kunci
Data disimpan dalam pasangan kunci/nilai. Desainnya dibuat sedemikian rupa untuk menangani banyak data dan beban berat. Basis data penyimpanan pasangan kunci-nilai menyimpan data sebagai tabel hash di mana setiap kunci unik, dan nilainya dapat berupa JSON, BLOB (Binary Large Objects), string, dan lain sebagainya.
Sebagai contoh, pasangan kunci-nilai dapat berisi kunci seperti โSitus webโ yang terkait dengan nilai seperti โGuru99. "
Ini adalah salah satu contoh basis data NoSQL paling dasar. Basis data NoSQL jenis ini digunakan sebagai koleksi, kamus, array asosiatif, dll. Penyimpanan key-value membantu pengembang untuk menyimpan data tanpa skema. Basis data ini paling cocok untuk toko online.ping isi keranjang.
Redis, Dynamo, dan Riak adalah beberapa contoh basis data NoSQL berbasis key-value store. Semuanya didasarkan pada Amazonkertas Dinamo.
Berbasis kolom
Basis data berorientasi kolom bekerja pada kolom dan didasarkan pada makalah BigTable karya GoogleSetiap kolom diperlakukan secara terpisah. Nilai-nilai dalam basis data kolom tunggal disimpan secara berurutan.
Mereka memberikan kinerja tinggi pada kueri agregasi seperti SUM, COUNT, AVG, MIN, dll., karena data tersedia dengan mudah di dalam kolom. Basis data NoSQL berbasis kolom banyak digunakan untuk mengelola gudang data, intelijen bisnis, CRM, dan katalog kartu perpustakaan.
HBase, Cassandra, dan Hypertable adalah contoh kueri NoSQL dari basis data berbasis kolom.
Berorientasi Dokumen
Database NoSQL berorientasi dokumen menyimpan dan mengambil data sebagai pasangan kunci-nilai, tetapi bagian nilainya disimpan sebagai dokumen. Dokumen tersebut disimpan dalam format JSON atau XML. Nilai tersebut dipahami oleh database dan dapat diakses melalui kueri.
Pada diagram di sebelah kiri, Anda dapat melihat baris dan kolom, dan di sebelah kanan, kita memiliki basis data dokumen yang memiliki struktur serupa dengan JSON. Untuk basis data relasional, Anda harus mengetahui kolom apa saja yang Anda miliki, dan sebagainya. Namun, untuk basis data dokumen, Anda memiliki penyimpanan data seperti objek JSON. Anda tidak perlu mendefinisikannya, yang membuatnya fleksibel.
Tipe dokumen ini sebagian besar digunakan untuk sistem CMS, platform blogging, analitik waktu nyata, dan aplikasi e-commerce. Tipe ini tidak boleh digunakan untuk transaksi kompleks yang memerlukan banyak operasi atau kueri terhadap berbagai struktur agregat.
Amazon DB Sederhana, CouchDB, MongoDBRiak dan Lotus Notes adalah aplikasi berbasis dokumen yang populer. sistem DBMS.
Berbasis Grafik
Basis data tipe graf menyimpan entitas serta relasi antar entitas tersebut. Entitas disimpan sebagai simpul (node) dengan relasi sebagai sisi (edge). Sisi memberikan hubungan antar simpul. Setiap simpul dan sisi memiliki pengidentifikasi unik.
Dibandingkan dengan basis data relasional di mana tabel-tabelnya terhubung secara longgar, basis data graf bersifat multi-relasional. Penelusuran relasi berlangsung cepat, karena relasi tersebut sudah tercatat dalam basis data, dan tidak perlu dihitung lagi. Basis data berbasis graf sebagian besar digunakan untuk jejaring sosial, logistik, dan data spasial.
Neo4J, Grafik Tak Terbatas, OrientDB, dan FlockDB adalah beberapa basis data berbasis grafik yang populer.
Alat Mekanisme Kueri untuk NoSQL
Mekanisme pengambilan data yang paling umum adalah pengambilan nilai berbasis REST berdasarkan kunci/ID-nya dengan menggunakan sumber daya GET.
Basis data penyimpanan dokumen menawarkan kueri yang lebih sulit, karena basis data ini memahami nilai dalam pasangan kunci-nilai. Misalnya, CouchDB Memungkinkan untuk mendefinisikan tampilan dengan MapReduce.
Apa Teorema CAP?
Teorema CAP juga disebut teorema Brewer. Teorema ini menyatakan bahwa mustahil bagi penyimpanan data terdistribusi untuk menawarkan lebih dari dua dari tiga jaminan:
- Konsistensi
- Ketersediaan
- Toleransi Partisi
Konsistensi: Data harus tetap konsisten bahkan setelah operasi dijalankan. Artinya, setelah data ditulis, permintaan baca apa pun di masa mendatang harus berisi data tersebut. Misalnya, setelah memperbarui status pesanan, semua klien akan dapat melihat data yang sama.
Tersedianya: Basis data harus selalu tersedia dan responsif. Seharusnya tidak ada waktu henti.
Toleransi Partisi: Toleransi Partisi berarti sistem harus tetap berfungsi meskipun komunikasi antar server tidak stabil. Misalnya, server dapat dipartisi menjadi beberapa grup yang mungkin tidak berkomunikasi satu sama lain. Di sini, jika bagian dari database tidak tersedia, bagian lain selalu tidak terpengaruh.
Konsistensi Akhirnya
Istilah "konsistensi bertahap" berarti memiliki salinan data pada beberapa mesin untuk mendapatkan ketersediaan dan skalabilitas yang tinggi. Dengan demikian, perubahan yang dilakukan pada item data apa pun di satu mesin harus disebarkan ke replika lainnya.
Replikasi data mungkin tidak instan, karena beberapa salinan akan diperbarui segera sementara yang lain akan diperbarui seiring waktu. Salinan-salinan ini mungkin saling tidak konsisten, tetapi seiring waktu, salinan-salinan tersebut akan menjadi konsisten. Karena itulah disebut konsistensi bertahap (eventual consistency).
MENDASARKAN: Bpada dasarnya Atersedia, Ssering menyatakan, Ekonsistensi ventual
- Pada dasarnya, ketersediaan berarti basis data selalu tersedia sesuai dengan teorema CAP.
- Keadaan lunak berarti bahwa bahkan tanpa input, keadaan sistem dapat berubah.
- Konsistensi bertahap berarti bahwa sistem akan menjadi konsisten seiring waktu.
Kelebihan NoSQL
- Dapat digunakan sebagai sumber data primer atau analitik.
- Kemampuan big data.
- Tidak ada satu titik kegagalan pun.
- Mudah direplikasi.
- Tidak perlu lapisan caching terpisah.
- Ini memberikan kinerja cepat dan skalabilitas horizontal.
- Mampu menangani data terstruktur, semi-terstruktur, dan tidak terstruktur dengan sama efektifnya.
- Pemrograman berorientasi objek yang mudah digunakan dan fleksibel.
- Basis data NoSQL tidak memerlukan server berkinerja tinggi khusus.
- Mendukung bahasa dan platform utama yang digunakan oleh pengembang.
- Lebih mudah diimplementasikan daripada menggunakan RDBMS.
- Ini dapat berfungsi sebagai sumber data utama untuk aplikasi online.
- Menangani big data yang mengelola kecepatan, variasi, volume, dan kompleksitas data.
- Unggul dalam pengoperasian basis data terdistribusi dan multi-pusat data.
- Menghilangkan kebutuhan akan lapisan caching khusus untuk menyimpan data.
- Menawarkan desain skema yang fleksibel yang dapat dengan mudah diubah tanpa waktu henti atau gangguan layanan.
Kekurangan NoSQL
- Tidak ada aturan standardisasi.
- Kemampuan kueri terbatas.
- RDBMS Basis data dan perangkatnya relatif sudah matang.
- Ia tidak menawarkan kemampuan basis data tradisional, seperti konsistensi ketika beberapa transaksi dilakukan secara bersamaan.
- Ketika volume data meningkat, akan sulit untuk mempertahankan nilai unik karena kunci menjadi sulit dibuat.
- Tidak berfungsi dengan baik untuk data relasional.
- Kurva pembelajaran sangat sulit bagi pengembang baru.
- Opsi sumber terbuka tidak begitu populer untuk perusahaan.






