NoSQL vs SQL (part 3)
How NoSQL Databases Work
Seiring waktu, empat tipe utama database NoSQL muncul: database dokumen, database nilai kunci, penyimpanan kolom lebar, dan database grafik. Mari kita periksa setiap jenisnya.
- Document databases – menyimpan data dalam dokumen yang mirip dengan objek JSON (JavaScript Object Notation). Setiap dokumen berisi pasangan bidang dan nilai. Nilai biasanya dapat berupa berbagai jenis termasuk hal-hal seperti string, angka, boolean, array, atau objek, dan strukturnya biasanya selaras dengan objek yang dikerjakan developer dalam kode. Karena keragaman tipe nilai bidang dan bahasa kueri yang kuat, database dokumen sangat cocok untuk berbagai kasus penggunaan dan dapat digunakan sebagai database tujuan umum. Mereka dapat secara horizontal menskalakan untuk mengakomodasi volume data yang besar. MongoDB secara konsisten diperingkatkan sebagai database NoSQL terpopuler di dunia menurut DB-engine dan merupakan contoh database dokumen. Untuk lebih lanjut tentang database dokumen, kunjungi Apa itu Database Dokumen ?.
- Key-value databases – adalah jenis database yang lebih sederhana di mana setiap item berisi kunci dan nilai. Sebuah nilai biasanya hanya dapat diambil dengan mereferensikan kuncinya, jadi mempelajari cara membuat kueri untuk pasangan kunci-nilai tertentu biasanya sederhana. Database nilai kunci sangat bagus untuk kasus penggunaan saat Anda perlu menyimpan data dalam jumlah besar tetapi Anda tidak perlu melakukan kueri kompleks untuk mengambilnya. Kasus penggunaan umum termasuk menyimpan preferensi atau cache pengguna. Redis dan DynanoDB adalah database nilai kunci yang populer.
- Wide-column stores – menyimpan data dalam tabel, baris, dan kolom dinamis. Penyimpanan kolom lebar memberikan banyak fleksibilitas atas database relasional karena setiap baris tidak diharuskan memiliki kolom yang sama. Banyak yang menganggap penyimpanan kolom lebar sebagai database nilai kunci dua dimensi. Penyimpanan kolom lebar sangat bagus saat Anda perlu menyimpan data dalam jumlah besar dan Anda dapat memprediksi seperti apa pola kueri Anda nantinya. Penyimpanan kolom lebar biasanya digunakan untuk menyimpan data Internet of Things dan data profil pengguna. Cassandra dan HBase adalah dua dari toko kolom lebar paling populer.
- Graph databases – menyimpan data dalam node dan edge. Node biasanya menyimpan informasi tentang orang, tempat, dan benda-benda sementara edge menyimpan informasi tentang hubungan antar node. Database grafik unggul dalam kasus penggunaan di mana Anda perlu melintasi hubungan untuk mencari pola seperti jaringan sosial, deteksi penipuan, dan mesin rekomendasi. Neo4j dan JanusGraph adalah contoh database grafik. Bagaimana Database NoSQL Bekerja
Salah satu cara untuk memahami daya tarik database NoSQL dari perspektif desain adalah dengan melihat bagaimana model data SQL dan database NoSQL terlihat dalam contoh yang terlalu disederhanakan menggunakan data alamat.
Kasus SQL. Untuk database SQL, menyiapkan database untuk alamat dimulai dengan konstruksi logis dari format dan harapan bahwa catatan yang akan disimpan akan tetap relatif tidak berubah. Setelah menganalisis pola kueri yang diharapkan, database SQL mungkin mengoptimalkan penyimpanan dalam dua tabel, satu untuk informasi dasar dan satu lagi yang berkaitan dengan menjadi pelanggan, dengan nama belakang menjadi kunci untuk kedua tabel. Setiap baris di setiap tabel adalah satu pelanggan, dan setiap kolom memiliki atribut tetap berikut:
- Nama belakang :: nama depan :: inisial tengah :: bidang alamat :: alamat email :: nomor telepon
- Nama belakang :: tanggal lahir :: nomor rekening :: tahun pelanggan :: preferensi komunikasi
Kasus NoSQL. Pada bagian Jenis Database NoSQL di atas, ada empat jenis yang dijelaskan, dan masing-masing memiliki model datanya sendiri.
Setiap jenis database NoSQL akan dirancang dengan mempertimbangkan situasi pelanggan tertentu, dan akan ada alasan teknis tentang bagaimana setiap jenis database akan diatur. Jenis yang paling sederhana untuk dideskripsikan adalah database dokumen, di mana akan wajar untuk menggabungkan informasi dasar dan informasi pelanggan dalam satu dokumen JSON. Dalam hal ini, setiap atribut kolom SQL akan menjadi bidang dan detail dari catatan pelanggan akan menjadi nilai data yang terkait dengan setiap bidang.
Misalnya: Last_name: “Jones”, First_name: “Mary”, Middle_initial: “S”, dll