NoSql bukan pengganti database SQL tetapi merupakan alternatif yang valid untuk banyak situasi di mana SQL standar bukanlah pendekatan terbaik untuk menyimpan data Anda.
Karena kami diajari bahwa kapan pun Anda perlu menyimpan data di "gudang data" dan meminta data tersebut untuk diekstraksi, SQL adalah solusi terbaik, Anda hanya perlu memutuskan SQL Engine mana yang akan digunakan dan permainan selesai.
Pada tahun 2012 saran ini salah, maksud saya Anda tidak dapat lagi berasumsi bahwa SQL adalah "satu-satunya cara" untuk menyimpan data, tetapi Anda harus tahu bahwa ada alternatif lain dan mereka disebut NO SQL. Di bawah istilah ini, kami memiliki mekanisme penyimpanan berbeda yang tidak didasarkan pada SQL, dan di .NET kami memiliki produk luar biasa yang disebut RavenDB (Anda dapat menemukan pengantar RavenDb yang sangat bagus di blog Mauro).
Perbedaan besar pertama dengan SQL standar adalah tidak adanya skema
Salah satu batasan SQL Server yang paling mengganggu adalah kebutuhan untuk menentukan format yang tepat dari data yang ingin Anda simpan di penyimpanan Anda. Ini diperlukan untuk banyak alasan bagus, tetapi ada situasi di mana Anda benar-benar tidak mempedulikannya, terutama jika perangkat lunak Anda sebagian besar didasarkan pada konsep OOP. Misalkan Anda memiliki objek ini
1: class player
2: {
3: public String Name { get; set; }
4:
5: public DateTime RegistrationDate { get; set; }
6:
7: public Int32 Age { get; set; }
8: }
Untuk sesaat tidak ada kekhawatiran bahwa objek ini dienkapsulasi dengan buruk (ia memiliki metode publik untuk memperoleh dan menginstalnya), tetapi hanya berfokus pada kebutuhan untuk "menyimpan" objek ini di suatu tempat. Jika Anda menggunakan repositori SQL standar, hal pertama yang perlu Anda lakukan adalah membuat tabel, lalu menentukan kolom, menentukan panjang maksimum untuk kolom Nama, dan terakhir memilih ORM untuk menggunakan atau membuat lapisan data khusus, dan akhirnya, Anda dapat menyimpan objek.
Jika Anda bekerja dengan burung gagak, ini adalah satu-satunya kode yang Anda butuhkan
1: var store = new DocumentStore { Url = "http://localhost:8080" };
2: store.Initialize();
3: using (var session = store.OpenSession())
4: {
5: var player = new Player
6: {
7: Age = 30,
8: RegistrationDate = DateTime.Now,
9: Name = "Alkampfer",
10: };
11: session.Store(player);
12: session.SaveChanges();
13: }
Server hanya mengambil objek dan menyimpannya.
Untuk menyimpan objek ke gudang data, hanya dua fungsi yang diperlukan:“Simpan” untuk memberi tahu repositori objek yang ingin Anda simpan, dan “SaveChanges”, yang benar-benar melakukan penyimpanan.
Apa yang Anda dapatkan dengan fragmen kode sederhana ini? Cukup buka browser standar di alamat server dan Anda akan melihat isi database.
Isi Database Setelah Penyisipan Objek Sederhana
Pada Gambar, Anda dapat melihat isi dari database gagak, berisi pemain dan 1 kecil di sebelah objek adalah Id, yang digunakan Raven secara internal untuk mengidentifikasi objek ini secara unik. Objek lain, yang disebut Sys Doc Hilo / Players, menangani pembuatan pengenal untuk objek Players dengan algoritme Hilo.
Ini saja, tidak perlu mendefinisikan skema, tidak perlu memiliki properti Id khusus atau persyaratan lain apa pun untuk membuat objek kompatibel dengan repositori, cukup panggil metode Store untuk objek .NET apa pun, dan objek Anda ada di database, Titik!