Tutorial NoSQL: Apa itu, Jenis Database NoSQL & Contohnya

Apa itu NoSQL?

NoSQL Basis data adalah Sistem Manajemen Data non-relasional, yang tidak memerlukan skema tetap. Ini menghindari penggabungan, dan mudah untuk diukur. Tujuan utama penggunaan database NoSQL adalah untuk penyimpanan data terdistribusi dengan kebutuhan penyimpanan data yang sangat besar. NoSQL digunakan untuk Big data dan aplikasi web real-time. Misalnya, perusahaan seperti Twitter, Facebook, dan Google mengumpulkan data pengguna berukuran terabyte setiap hari.

Basis data NoSQL singkatan dari “Tidak Hanya SQL” atau “Bukan SQL.” Meskipun istilah yang lebih baik adalah “NoREL”, NoSQL tetap menggunakannya. Carl Strozz memperkenalkan konsep NoSQL pada tahun 1998.

RDBMS tradisional menggunakan sintaks SQL untuk menyimpan dan mengambil data untuk wawasan lebih lanjut. Sebaliknya, sistem database NoSQL mencakup berbagai teknologi database yang dapat menyimpan data terstruktur, semi-terstruktur, tidak terstruktur, dan polimorfik. Mari kita pahami tentang NoSQL dengan diagram pada tutorial database NoSQL ini:

Basis Data NoSQL

Mengapa NoSQL?

Konsep database 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 database pada beberapa host setiap kali beban bertambah. Metode ini dikenal sebagai “penskalaan keluar.”

NoSQL

Basis data NoSQL bersifat non-relasional, sehingga skalanya lebih baik daripada basis data relasional karena dirancang dengan mempertimbangkan aplikasi web.

Sejarah Singkat Database NoSQL

  • 1998 - Carlo Strozzi menggunakan istilah NoSQL untuk database relasional sumber terbuka dan ringannya
  • 2000- Basis data grafik Neo4j diluncurkan
  • 2004- Google BigTable diluncurkan
  • 2005- CouchDB diluncurkan
  • 2007- Makalah penelitian tentang Amazon Dinamo dilepaskan
  • 2008- Sumber terbuka Facebook Cassandra proyek
  • 2009- Istilah NoSQL diperkenalkan kembali

Fitur NoSQL

Non-relasional

  • Basis data NoSQL tidak pernah mengikuti model relasional
  • Jangan pernah menyediakan tabel dengan catatan kolom tetap datar
  • Bekerja dengan agregat mandiri atau BLOB
  • Tidak memerlukan pemetaan relasional objek dan normalisasi data
  • Tidak ada fitur kompleks seperti bahasa kueri, perencana kueri, gabungan integritas referensial, ACID

Bebas skema

  • Basis data NoSQL bebas skema atau memiliki skema yang santai
  • Tidak memerlukan definisi skema data apa pun
  • Menawarkan struktur data heterogen dalam domain yang sama
Fitur NoSQL
NoSQL Bebas Skema

API sederhana

  • Menawarkan antarmuka yang mudah digunakan untuk penyimpanan dan menanyakan data yang disediakan
  • API memungkinkan manipulasi data & metode pemilihan tingkat rendah
  • Protokol berbasis teks banyak digunakan dengan HTTP REST dengan JSON
  • Sebagian besar tidak menggunakan bahasa kueri NoSQL berbasis standar
  • Basis data berkemampuan web berjalan sebagai layanan yang terhubung ke internet

didistribusikan

  • Beberapa database NoSQL dapat dijalankan secara terdistribusi
  • Menawarkan kemampuan penskalaan otomatis dan failover
  • Seringkali konsep ACID dapat dikorbankan demi skalabilitas dan throughput
  • Sebagian besar tidak ada replikasi sinkron antara node terdistribusi Replikasi Multi-Master Asinkron, peer-to-peer, Replikasi HDFS
  • Hanya memberikan konsistensi akhir
  • Tidak Membagikan Apa pun Architekstur. Hal ini memungkinkan koordinasi yang lebih sedikit dan distribusi yang lebih tinggi.
Fitur NoSQL
NoSQL Tidak Membagikan Apa pun.

Jenis Database NoSQL

Database NoSQL terutama dikategorikan menjadi empat jenis: Pasangan kunci-nilai, Berorientasi kolom, Berbasis grafik, dan Berorientasi dokumen. Setiap kategori memiliki atribut dan batasan uniknya. Tidak ada database yang disebutkan di atas yang lebih baik dalam menyelesaikan semua masalah. Pengguna harus memilih database berdasarkan kebutuhan produk mereka.

Jenis Database NoSQL:

  • Berbasis Pasangan Nilai Kunci
  • Grafik berorientasi kolom
  • Berbasis grafik
  • Berorientasi pada dokumen

Jenis Database NoSQL

Berbasis Pasangan Nilai Kunci

Data disimpan dalam pasangan kunci/nilai. Ini dirancang sedemikian rupa untuk menangani banyak data dan beban berat.

Basis data penyimpanan pasangan nilai kunci menyimpan data sebagai tabel hash yang setiap kuncinya unik, dan nilainya dapat berupa JSON, BLOB (Binary Large Objects), string, dll.

Misalnya, pasangan kunci-nilai mungkin berisi kunci seperti “Situs Web” yang dikaitkan dengan nilai seperti “Guru99”.

Berbasis Pasangan Nilai Kunci

Ini adalah salah satu contoh database NoSQL paling dasar. Basis data NoSQL semacam ini digunakan sebagai kumpulan, kamus, array asosiatif, dll. Penyimpanan nilai kunci membantu pengembang untuk menyimpan data tanpa skema. Mereka bekerja paling baik untuk isi keranjang belanja.

Redis, Dynamo, Riak adalah beberapa contoh NoSQL dari DataBases penyimpanan nilai kunci. Semuanya didasarkan pada Amazonkertas Dinamo.

Berbasis kolom

Basis data berorientasi kolom berfungsi pada kolom dan didasarkan pada makalah BigTable oleh Google. Setiap kolom diperlakukan secara terpisah. Nilai database kolom tunggal disimpan secara berdekatan.

Database NoSQL Berbasis Kolom

Database NoSQL berbasis kolom

Mereka memberikan kinerja tinggi pada kueri agregasi seperti SUM, COUNT, AVG, MIN dll. karena data sudah tersedia dalam kolom.

Database NoSQL berbasis kolom banyak digunakan untuk mengelola gudang data, intelijen bisnis, CRM, Katalog kartu perpustakaan,

HBase, Cassandra, HBase, Hypertable adalah contoh kueri NoSQL dari database berbasis kolom.

Berorientasi Dokumen

DB NoSQL Berorientasi Dokumen menyimpan dan mengambil data sebagai pasangan nilai kunci tetapi bagian nilai disimpan sebagai dokumen. Dokumen disimpan dalam format JSON atau XML. Nilainya dipahami oleh DB dan dapat ditanyakan.

Relasional Vs. Dokumen

Relasional Vs. Dokumen

Dalam diagram di sebelah kiri Anda, Anda dapat melihat kami memiliki baris dan kolom, dan di sebelah kanan, kami memiliki database dokumen yang memiliki struktur mirip dengan JSON. Nah untuk database relasional, Anda harus mengetahui kolom apa yang Anda miliki dan seterusnya. Namun, untuk database dokumen, Anda memiliki penyimpanan data seperti objek JSON. Anda tidak perlu menentukan mana yang membuatnya fleksibel.

Jenis dokumen ini sebagian besar digunakan untuk sistem CMS, platform blog, analitik real-time & aplikasi e-commerce. Jenis ini tidak boleh digunakan untuk transaksi kompleks yang memerlukan beberapa operasi atau kueri terhadap berbagai struktur agregat.

Amazon DB Sederhana, CouchDB, MongoDB, Riak, Catatan Teratai, MongoDB, berasal dari Dokumen populer sistem DBMS.

Berbasis Grafik

Basis data tipe grafik menyimpan entitas serta hubungan antar entitas tersebut. Entitas disimpan sebagai node dengan relasi sebagai tepinya. Sebuah tepi memberikan hubungan antar node. Setiap node dan edge memiliki pengidentifikasi unik.

Berbasis Grafik

Dibandingkan dengan database relasional yang tabel-tabelnya terhubung secara longgar, database Graph bersifat multi-relasional. Melintasi hubungan berlangsung cepat karena hubungan tersebut sudah dimasukkan ke dalam DB, dan tidak perlu menghitungnya.

Basis data berbasis grafik banyak digunakan untuk jejaring sosial, logistik, data spasial.

Neo4J, Grafik Tak Terbatas, OrientDB, FlockDB adalah beberapa database berbasis grafik yang populer.

Alat Mekanisme Kueri untuk NoSQL

Mekanisme pengambilan data yang paling umum adalah pengambilan nilai berbasis REST berdasarkan kunci/IDnya dengan sumber daya GET

Basis data penyimpanan dokumen menawarkan kueri yang lebih sulit karena mereka memahami nilai dalam pasangan nilai kunci. Misalnya, CouchDB memungkinkan mendefinisikan tampilan dengan MapReduce

Apa Teorema CAP?

Teorema CAP disebut juga teorema brewer. Dinyatakan bahwa penyimpanan data terdistribusi tidak mungkin menawarkan lebih dari dua dari tiga jaminan

  1. Konsistensi
  2. Ketersediaan
  3. 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 akhirnya” berarti memiliki salinan data di beberapa mesin untuk mendapatkan ketersediaan dan skalabilitas yang tinggi. Oleh karena itu, perubahan yang dilakukan pada item data apa pun di satu mesin harus disebarkan ke replika lainnya.

Replikasi data mungkin tidak terjadi secara instan karena beberapa salinan akan segera diperbarui sementara yang lain akan diperbarui pada waktunya. Salinan-salinan ini mungkin saling menggantikan, tetapi pada waktunya, salinan-salinan ini akan menjadi konsisten. Oleh karena itu, dinamakan konsistensi akhir.

MENDASARKAN: Bpada dasarnya Atersedia, Ssering menyatakan, Ekonsistensi ventual

  • Pada dasarnya, tersedia berarti DB tersedia sepanjang waktu sesuai teorema CAP
  • Keadaan lunak berarti bahkan tanpa masukan; keadaan sistem dapat berubah
  • Konsistensi akhirnya berarti bahwa sistem akan menjadi konsisten seiring berjalannya waktu

Konsistensi Akhirnya

Kelebihan NoSQL

  • Dapat digunakan sebagai Sumber Data Primer atau Analitik
  • Kemampuan Data Besar
  • Tidak Ada Titik Kegagalan Tunggal
  • Replikasi Mudah
  • Tidak Perlu Lapisan Caching Terpisah
  • Ini memberikan kinerja cepat dan skalabilitas horizontal.
  • Dapat menangani data terstruktur, semi terstruktur, dan tidak terstruktur dengan efek yang sama
  • Pemrograman berorientasi objek yang mudah digunakan dan fleksibel
  • Basis data NoSQL tidak memerlukan server khusus berkinerja tinggi
  • Mendukung Bahasa dan Platform Pengembang Utama
  • Mudah diterapkan dibandingkan menggunakan RDBMS
  • Ini dapat berfungsi sebagai sumber data utama untuk aplikasi online.
  • Menangani data besar yang mengelola kecepatan, variasi, volume, dan kompleksitas data
  • Unggul dalam operasi database terdistribusi dan multi-pusat data
  • Menghilangkan kebutuhan akan lapisan caching khusus untuk menyimpan data
  • Menawarkan desain skema fleksibel yang dapat dengan mudah diubah tanpa downtime atau gangguan layanan

Kekurangan NoSQL

  • Tidak ada aturan standardisasi
  • Kemampuan kueri terbatas
  • RDBMS database dan alatnya relatif matang
  • Ia tidak menawarkan kemampuan basis data tradisional, seperti konsistensi ketika beberapa transaksi dilakukan secara bersamaan.
  • Ketika volume data meningkat, sulit untuk mempertahankan nilai unik karena kunci menjadi sulit
  • Tidak berfungsi dengan baik dengan data relasional
  • Kurva pembelajaran sulit bagi pengembang baru
  • Opsi open source jadi tidak begitu populer bagi perusahaan.

Kesimpulan

  • NoSQL adalah DMS non-relasional, yang tidak memerlukan skema tetap, menghindari penggabungan, dan mudah untuk diskalakan
  • Konsep database NoSQL menjadi populer di kalangan raksasa internet seperti Google, Facebook, Amazon, dll. yang menangani data dalam jumlah besar
  • Pada tahun 1998- Carlo Strozzi menggunakan istilah NoSQL untuk database relasional sumber terbuka dan ringannya
  • Basis data NoSQL tidak pernah mengikuti model relasional, karena bebas skema atau memiliki skema yang santai
  • Empat jenis Database NoSQL adalah 1). Berbasis Pasangan Nilai Kunci 2). Grafik berorientasi kolom 3). Berdasarkan grafik 4). Berorientasi pada dokumen
  • NOSQL dapat menangani data terstruktur, semi-terstruktur, dan tidak terstruktur dengan efek yang sama
  • Teorema CAP terdiri dari tiga kata Konsistensi, Ketersediaan, dan Toleransi Partisi
  • BASE adalah singkatan dari Bpada dasarnya Atersedia, Ssering menyatakan, Ekonsistensi ventual
  • Istilah “konsistensi akhirnya” berarti memiliki salinan data di beberapa mesin untuk mendapatkan ketersediaan dan skalabilitas yang tinggi
  • NOSQL menawarkan kemampuan kueri terbatas