NoSQL telah mendapatkan banyak perhatian di industri kami baru-baru ini. Saya benar-benar tertarik pada apa yang dipikirkan orang tentang kasus penggunaan terbaik untuk penggunaannya dibandingkan penyimpanan basis data relasional. Apa yang seharusnya memicu pengembang untuk berpikir bahwa kumpulan data tertentu lebih cocok untuk solusi NoSQL. Saya sangat tertarik dengan MongoDB dan CouchDB karena mereka tampaknya mendapatkan cakupan terbanyak sehubungan dengan pengembangan PHP dan itulah fokus saya.
144
Jawaban:
Berjanjilah pada diri sendiri bahwa Anda tidak akan pernah mencoba memetakan model data relasional ke database NoSQL seperti MongoDB atau CouchDB ... Ini adalah kesalahan paling umum yang dilakukan pengembang ketika mengevaluasi teknologi yang sedang berkembang.
Pendekatan itu analog dengan mengambil mobil dan mencoba menggunakannya untuk menarik kereta Anda ke jalan seperti kuda.
Ini adalah reaksi alami karena pengalaman semua orang tentu saja, tetapi nilai sebenarnya dalam menggunakan database dokumen adalah dapat menyederhanakan model data Anda dan meminimalkan penderitaan Anda sebagai pengembang. Basis kode Anda akan menyusut, bug Anda akan lebih sedikit dan lebih mudah ditemukan, kinerjanya akan luar biasa, dan skala akan jauh lebih sederhana.
Sebagai pendiri Joomla saya bias :-) tetapi berasal dari ruang CMS, sesuatu seperti MongoDB adalah peluru perak karena peta konten sangat alami untuk sistem dokumen.
Kasus hebat lainnya untuk MongoDB adalah analitik waktu-nyata, karena MongoDB memiliki kinerja dan skala yang sangat kuat terutama mengenai konkurensi. Ada studi kasus di situs web MongoDB.org yang menunjukkan atribut-atribut itu.
Saya setuju dengan gagasan bahwa setiap basis data memiliki tujuan dan penggunaan kasus sendiri; mengambil tujuan masing-masing database untuk evaluasi yang sesuai.
sumber
Beberapa kasus penggunaan yang bagus - untuk MongoDB - disebutkan di situs MongoDB. Contoh yang diberikan adalah analisis waktu nyata, Pencatatan dan Pencarian Teks Lengkap. Artikel-artikel ini semuanya layak dibaca http://www.mongodb.com/use-cases
Ada juga artikel bagus di mana basis data NoSQL paling cocok untuk jenis proyek: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
sumber
Saya menyarankan artikel ini oleh Rick Cattell tentang bermacam-macam penyimpanan data (alias NoSQL), perbedaannya dan beberapa kasus penggunaannya: http://www.cattell.net/datastores/index.html
sumber
Apa yang saya sukai tentang NoSQL tidak ada hubungannya dengan kinerja dan semuanya terkait dengan kegunaan. Penyimpanan dokumen hanya lebih mudah untuk bekerja dengan ketika unit data atom Anda seperti dokumen, karena itu sepele untuk diserialisasi ke dan dari objek. Itu hanya lebih menyenangkan, dan itu merupakan faktor penting untuk proyek pribadi atau samping.
sumber
Saya telah menggunakan DB NoSQL untuk sementara waktu sekarang, dan ini adalah kontribusi saya untuk topik ini:
Sebuah kasus penggunaan yang besar untuk database NoSQL adalah aplikasi untuk statistik dan / atau laporan generasi , expecially ketika data disediakan dari sumber pihak ketiga.
Dalam situasi seperti itu, basis data NoSQL bisa menjadi pilihan bagus
Mari kita pertimbangkan, misalnya, MongoDB :
Setelah Anda memiliki data di JSON, (itu bisa berasal dari API pihak ketiga, atau diekspor dari aplikasi sql) di MongoDB cukup mudah untuk mengimpor dan memperbarui data JSON dalam database; misalnya menggunakan
mongoimport
utilitas baris perintahPada titik ini sangat sederhana untuk membangun kueri dinamis dengan penyaringan dan pengelompokan, yang sangat cocok dengan aplikasi semacam ini.
Misalnya, menggunakan Kerangka Kerja Agregasi :
Saya ingin menunjukkan kemudahan yang kita dapat secara dinamis menambahkan / menghapus filter menggunakan struktur data php dan menghindari penggabungan string yang membosankan untuk membangun kueri kami. Dengan pendekatan ini menambahkan / menghapus filter secara dinamis semudah menambahkan / menghapus elemen dari array
Manfaat besar lainnya datang dari kenyataan bahwa solusi seperti ini kemungkinan akan lebih cepat daripada menggunakan database relasional , di mana kita harus bergabung dengan tabel yang berbeda untuk mendapatkan semua data yang kita butuhkan
Selain itu, use case ini optimal karena menghindari semua batas utama dari database NoSQL:
Kurangnya transaksi: Aplikasi tidak melakukan penulisan tetapi hanya membaca, jadi kita tidak perlu transaksi sama sekali
Kurangnya gabungan di antara tabel: Kami tidak perlu bergabung, karena kami dapat menggunakan redundansi untuk menyimpan data yang didenormalkan dalam koleksi. Karena kita hanya membaca data, kita tidak perlu khawatir tentang sinkronisasi data yang didenormalkan di antara pembaruan.
Dengan cara ini kita bisa fokus pada penyimpanan data dengan redundansi dengan cara yang cocok dengan permintaan kita , yang akan fokus pada koleksi tunggal.
Saya hanya menulis ini karena seandainya saya membaca sesuatu seperti itu beberapa waktu lalu, akan menghemat waktu saya untuk melakukan penelitian
Semoga bermanfaat bagi seseorang
sumber
Saya sangat merekomendasikan ceramah ini oleh Martin Fowler:
https://www.youtube.com/watch?v=qI_g07C_Q5I
ABSTRAK: Martin memberikan pengantar yang cepat untuk database NoSQL: dari mana asalnya, sifat model data yang mereka gunakan, dan cara berbeda yang harus Anda pikirkan tentang konsistensi. Dari sini ia menguraikan jenis keadaan apa yang harus Anda pertimbangkan untuk menggunakannya, mengapa mereka tidak membuat database relasional menjadi usang, dan konsekuensi penting dari kegigihan polyglot.
Ini menarik gambar yang bagus tentang apa NoSQL, kategori yang berbeda dan hal-hal yang semua orang harus mengerti ketika datang dari dunia basis data relasional. Salam.
sumber
Video Edureka di youtube tentang NoSQL adalah beberapa tutorial video terbaik.
https://www.youtube.com/watch?v=gJFG04Sy6NY
https://www.youtube.com/watch?v=KSq6tMMXZ8s
https://www.youtube.com/watch?v=3z1KFA2qcSo
Presentasi yang baik tersedia di slideshare.net
http://www.slideshare.net/quipo/nosql-databases-why-what-and-when?qid=3bb9f7f6-a53d-41b1-8403-cd6f181d0ca7&v=qf1&b=&from_search=1
http://www.slideshare.net/EdurekaIN/no-sql-databases-35591065?qid=f1b9c095-6d70-4d0a-91da-1df664c4f389&v=qf1&b=&from_search=3 (Presentasi ini mendukung tutorial video di youtube)
sumber
Untuk beberapa kasus penggunaan yang Anda butuhkan, terutama untuk kueri analitik, Anda dapat menjalankan kueri SQL pada MongoDB dengan pembungkus ini dari Postgres.
sumber
Karena sekarang ada lebih banyak basis data NoSQL di pasar daripada sebelumnya, saya sarankan untuk melihat Gartner Magic Quadrant jika Anda mencari basis data yang juga bagus untuk aplikasi perusahaan berdasarkan dukungan, perluasan, manajemen, dan biaya.
http://www.gartner.com/technology/reprints.do?id=1-23A415Q&ct=141020&st=sb
Saya ingin menyarankan Couchbase kepada siapa saja yang belum mencobanya, tetapi tidak didasarkan pada versi yang ditunjukkan dalam laporan (2.5.1) karena hampir 2 revisi di belakang di mana CB Server hari ini, mendekati rilis 4.0 di 2H15 .
http://www.couchbase.com/coming-in-couchbase-server-4-0
Bagian lain tentang Couchbase sebagai vendor / produk adalah bahwa itu adalah tipe DB multi guna. Ini dapat bertindak sebagai toko K / V murni, Document Oriented Database dengan penskalaan multi-dimensi, Memcached, cache-samping dengan kegigihan, dan mendukung SQL ANSI 92 yang sesuai dengan sambungan otomatis, replikasi ke cluster DR dengan menekan tombol, dan bahkan memiliki komponen seluler bawaan untuk ekosistem.
Jika tidak ada yang lain, ada baiknya memeriksa tolok ukur terbaru:
http://info.couchbase.com/Benchmark_MongoDB_VS_CouchbaseServer_HPW_BM.html http://info.couchbase.com/NoSQL-Technical-Comparison-Report.html
sumber