Pertanyaannya sangat luas, tetapi saya akan mencoba menjawabnya semampu saya.
Saya biasanya tidak suka menjawab pertanyaan seperti ini karena sepertinya Anda melakukan sedikit riset sebelum datang ke SO. Sepertinya Anda juga bingung dengan peran aplikasi dan basis data. Setidaknya saya akan memulai Anda dengan beberapa materi/ide dan membiarkan Anda memutuskan sendiri.
Tidak ada "peluru perak" untuk desain backend, terutama dalam hal database. Database SQL umumnya sangat baik pada sebagian besar fungsionalitas database, dan memang seharusnya begitu; ini adalah teknologi yang sangat matang dan telah teruji oleh waktu karena suatu alasan. Sebagian besar solusi NOSQL dikhususkan untuk tujuan tertentu. Misalnya:jika Anda mencatat banyak informasi, Anda mungkin ingin melihat Cassandra. Jika Anda berurusan dengan banyak data relasional, Anda ingin menggunakan sesuatu seperti Neo4j (atau PostgreSQL/MySQL untuk RMDBS). Jika Anda berurusan dengan banyak data waktu nyata, Anda mungkin ingin melihat Redis.
Bodoh untuk menanyakan NOSQL vs SQL karena beberapa alasan:
NOSQL adalah istilah yang buruk secara umum. Dan itu tidak berarti "Tidak ada SQL". Itu berarti "Tidak Hanya SQL". Sayangnya istilah tersebut telah merangkum kebalikan yang paling kutub dari database.
Hanya Anda yang tahu fungsionalitas penuh aplikasi Anda. Bahkan jika saya tahu dasar-dasar dari apa yang ingin Anda capai, saya masih tidak bisa memberikan jawaban yang pasti. Orang lain juga tidak bisa. Ini sangat subjektif, dan sekali lagi, hanya ANDA yang tahu PERSIS apa yang harus dilakukan aplikasi Anda.
Alasan terbesar:Ini tahun 2014. Mengapa satu database? Sepuluh tahun yang lalu "DatabaseX vs DatabaseY" akan menjadi pertanyaan praktis. Sekarang, Anda dapat mengonfigurasi banyak kerangka kerja aplikasi untuk menggunakan banyak database secara andal dalam hitungan menit. Moral dari cerita:Gunakan setiap database untuk tujuan khusus. Lebih lanjut tentang kegigihan polyglot di sini .
Sejauh Facebook berjalan:pencarian Google lima menit mengungkapkan teknologi backend apa yang mereka gunakan di masa lalu, dan tidak sulit untuk meneliti beberapa solusi backend mereka saat ini. Anda bukan Facebook. Anda tidak perlu bersiap untuk satu miliar pengguna sekarang. Mulailah dengan teknologi sederhana yang telah terbukti. Ini akan memungkinkan Anda secara alami menskalakan aplikasi Anda. Ketika teknologi tersebut mulai menjadi hambatan, maka khawatirlah tentang skalabilitas.
Saya harap ini membantu Anda memulai perjalanan pengkodean Anda, tetapi gunakan Stack Overflow sebagai upaya terakhir jika Anda mengalami masalah dengan kode. Bukan tujuan langsung.