2014-11-30 26 views
5

NOSQL veritabanlarında bu verilerin çoğu kez denormalized olarak okunduğunu okudum. Örneğin bir satranç oyunu kaydını düşünün. Sadece satranç oyununa katılan oyuncu kimliğini değil, aynı zamanda oyuncunun ilk ve soyadını da içerebilir. NOSQL'te birleştirme mümkün olmadığından bunun yapıldığını varsayardım, bu nedenle verileri tekrarlarsanız, tek bir aramada istediğiniz tüm verileri, verilerin manuel uygulama düzeyinde işlenmesi olmadan alabilirsiniz.NOSQL denormalizasyon veri modeli

Anlamadığım bir şey, şu anda bir satranç oyuncunun adını güncellemek istediğinizde, hem oyuncunun hem de oyuncu kaydının katıldığı hem satranç oyunu kayıtlarını güncelleyen bir sorgu yazmanız gerekecek. Bu oyuncunun Bu, veritabanının oyuncuların katıldığı tüm oyunları araştırması ve ardından bu kayıtların her birini güncellemesi gerektiğinden, büyük bir performans yükü gibi görünüyor.

Verilerin çoğunlukla örneğimde olduğu gibi denormalize edildiği doğru mu?

cevap

7

Doğru değil, veriler genellikle NoSQL veritabanlarında normalize edilmemiş olarak saklanır.

Güncelleştirmelerle ilgili sorun, kısmen "nihai tutarlılık" teriminin nereden kaynaklandığıdır.

Örneğinizde, oynatıcının adını güncelleştirdiğinizde (ortak bir etkinlik değil, ancak bu olabilir), diğer tüm kayıtlar arasında adı güncelleştirmek için bir arka plan işi çıkarırsınız. Evet, güncelleme gerçekleşirken daha eski bir değer alabilirsiniz, ancak sonuçta veriler tutarlı olacaktır. Burada ATM yazılımı yazmadığımızdan, performans/tutarlılık değiş tokuşu kabul edilebilir.

Daha fazla bilgi burada bulabilirsiniz: http://www.allbuttonspressed.com/blog/django/2010/09/JOINs-via-denormalization-for-NoSQL-coders-Part-2-Materialized-views

İlgili konular