Ev Kişisel Finans NoSQL'in ortak özellikleri - mankenler

NoSQL'in ortak özellikleri - mankenler

İçindekiler:

Video: Common design patterns with Azure Cosmos DB | Azure Friday 2024

Video: Common design patterns with Azure Cosmos DB | Azure Friday 2024
Anonim

NoSQL kitapları ve blogları, NoSQL veritabanı nedir konusunda farklı görüşler sunmaktadır. Aşağıdaki listede gösterilen NoSQL'in dört temel özelliği çoğu NoSQL veritabanı için geçerlidir. Liste, NoSQL'i geleneksel ilişkisel DBMS ile karşılaştırır:

  • Şema tanımlayıcı: Bir veritabanı şeması, ilişkisel bir veritabanındaki olası tüm veri ve veri yapılarının açıklamasıdır. Bir NoSQL veritabanı ile, şema, ön şema tasarımını yapmadan bilgileri saklama özgürlüğünü sağlamak için gerekli değildir.

  • İlişkisel Olmayan: Bir veritabanındaki ilişkiler, veri tabloları arasında bağlantı kurar. Örneğin, işlem ayrıntılarının bir listesi, teslimat ayrıntılarının ayrı bir listesine bağlanabilir. NoSQL veritabanı ile bu bilgi toplama olarak depolanır - teslimat adresi de dahil olmak üzere işlemle ilgili her şeyin bulunduğu tek bir kayıt.

  • Emtia donanımı: Bazı veritabanları, özel depolama ve işleme donanımı ile en iyi (veya yalnızca) çalışacak şekilde tasarlanmıştır. NoSQL veritabanı ile ucuz hazır sunucular kullanılabilir. Bu ucuz sunuculardan daha fazlasını ekleme, NoSQL veritabanlarının daha fazla veri işlemek üzere ölçeklenmesini sağlar.

  • Yüksek oranda dağıtılabilir: Dağıtılmış veritabanlar birden fazla aygıta ilişkin bir dizi bilgiyi saklayabilir ve işleyebilir. NoSQL veritabanı ile tek bir büyük veritabanını tutmak için bir sunucu kümesi kullanılabilir.

Schema agnostic

NoSQL veritabanları şema dışıdır. NoSQL veritabanlarına veri depolamadan önce çok fazla ön tasarım çalışması yapmak zorunda değilsiniz. Kodlamaya başlayabilir ve veritabanının dahili olarak nasıl depolandığını ve çalıştığını bilmeden verileri saklar ve geri alabilirsiniz. (İleri işlevsellik ihtiyacınız olduğunda ve daha sonra dizinleri manuel olarak ekleyebilir veya veri depolama yapılarını değiştirebilirsiniz.) Schema agnosticism, NoSQL ve ilişkisel veritabanları arasındaki en önemli fark olabilir.

Şema dışı bir veritabanının en büyük yararı, geliştirme süresinin kısaltılmış olmasıdır. Birden fazla geliştirme sürümü geçtikçe ve veritabanındaki dahili veri yapılarını değiştirmeniz gerekirse, bu yarar artar.

Örneğin, geleneksel bir RDBMS'de şema yeniden tasarlama sürecinden geçersiniz. Şema, hangi verilerin bekleneceğini veritabanına bildirir. Depolanan verileri veya yapıları değiştirin ve veritabanını değiştirilen bir şema kullanarak yeniden başlatmanız gerekir. Bir değişiklik yapacak olsaydınız, mevcut verileri nasıl yeniden tasarlayacağınıza karar vermek için çok zaman harcamanız gerekirdi. NoSQL veritabanlarında, basitçe farklı bir veri yapısı saklarsınız. Veritabanına önceden haber vermek zorunda değilsiniz.

Sorgularınızı buna göre değiştirmeniz gerekebilir, belki zaman zaman belirli dizin 'ı (örneğin, veri türüne özel sorguların altında ve daha büyük verilere izin vermek için bir tamsayı aralığı dizini) ekleyebilirsiniz, ancak tüm işlem RDBMS'den daha az acı verici.

RDBMS, esnekliği ve SQL kullanması nedeniyle bir sorgu değiştirerek hız kazandı. NoSQL veritabanları, şema ve sorguyu değiştirmek için bu esnekliği sağlar; bu da zamanla giderek benimsenen temel nedenlerden biridir.

Sorguda bile, şema değişikliklerini bilmeyle ilgili endişelenmenize gerek olmayabilir - hesap numarası 'in bulunduğu alanın bir hesap numarası üzerinden bir dizin göz önüne alınmalıdır. bir NoSQL veritabanı. Yapıyı değiştirebilir ve hesap numarasının nerede saklandığını yeniden yerleştirebilir ve öğe belgedeki başka bir yerde aynı ada sahipse sorgu mekanizmanızdaki değişiklikler olmadan sorgunuz için hâlâ kullanılabilir.

Tüm NoSQL veritabanlarının tam olarak şema tanımlayıcısı olmadığını unutmayın. HBase gibi bazıları, sütun tanımlarını değiştirmek için veritabanını durdurmanızı gerektirir. Tanımlanmış tüm alanlar (bu durumda sütunlar) her bir kayıt için önceden bilinmesi gerektiği için sadece NoSQL veritabanları olarak kabul edilirler - sadece sütun aileleri.

RDBMS kayıttaki alanların boş değerleri olarak tanımlanmasına izin verir. Bir RDBMS ile ilgili problem, kayıt gelecekteki herhangi bir zamanda bu sütunda bir değere sahipse, depolama değeri boş değerler için ayrılmışsa, saklanan veri boyutu ve performansı olumsuz etkilenir. Cassandra'da, sorunu çözen o sütunun verilerini sunmazsınız.

İlişkisel Olmayan

İlişkisel veritabanı yönetim sistemleri, uygulama verilerini 20 yılı aşkın bir sürede saklamanın baskın yolu olmuştur. Onların temelini oluşturan teoriyi ispatlamak için çok sayıda matematik çalışması yapılmıştır.

Bu temel, tabloların birbirleriyle nasıl ilişkili olduğunu açıklamaktadır. Tek bir Sipariş satırı, birçok Teslimat Adresi satırıyla ilgili olabilir, ancak her Teslimat Adresi satırı aynı zamanda birden fazla Sipariş satırıyla ilgilidir. Bu çok - - - çok ilişkisi 'dır.

NoSQL veritabanları kayıtları arasındaki bu ilişki kavramına sahip değildir. Bunun yerine verileri normalleştirirler. Bu, bir NoSQL veritabanında Gönderi Adresi gömülü olan bir Sipariş yapısı olması anlamına gelir. Bu, teslim adresinin kullandığı her sipariş satırında çoğaltıldığı anlamına gelir. Bu yaklaşım, birden fazla veri yapısı (tablolar) arasında karmaşık sorgu zaman birleştirmeleri gerektirmese de avantaja sahiptir.

NoSQL veritabanları, bireysel kayıtların veritabanındaki diğer kayıtlarla nasıl ilişkili olduğu hakkında bilgi saklamaz; bu da bir sınırlama gibi gelebilir. Bununla birlikte, NoSQL veritabanları depolayabileceğiniz veri yapıları açısından daha esnektir.

Çevrimiçi perakendecinin siparişini düşünün. Sipariş, teslimat adresi ve ödeme bilgileri gibi, sipariş edilen kişi hakkında ürün kodları, miktarlar, madde fiyatları ve öğe açıklamalarını içerebilir.

Bir ilişkisel veritabanında çeşitli tablolarda on satır eklemeniz yerine, tüm bu sipariş bilgileri için tek bir yapı (örneğin, bir JSON veya XML belgesi olarak) depolayabilirsiniz.

İlişkisel veritabanı teorisinde hedef, verilerinizi normalleştirmektir (yani alanları ve tabloları yinelenen verileri kaldırmak için organize etmektir). NoSQL - veritabanlarında - özellikle Belge veya Agrega veritabanları - bazen verileri kasıtlı olarak denormalize ederek bazı verileri birkaç kez saklamış olursunuz. Örneğin, "Müşteri Teslimatı Adresi" ni, bir müşterinin bir kerede sakladığı birçok sipariş arasında defalarca saklamanız ve bir defada saklamanız ve birden fazla siparişte başvurmanız için saklayabilirsiniz. Bunu yapmak fazladan bir saklama alanı ve uygulamanızda yönetim konusunda biraz öngörü gerektirir. Peki neden yapıyorsun?

Verileri birden çok kez saklamanın iki avantajı vardır:

Kolay depolama ve alma:

  • Tek bir kayıt kaydedin ve kaydedin. Sorgu hızı:

  • İlişkisel veritabanlarında, sorgu sırasında tablolara bilgi eklemek ve kısıtlamalar eklemek. Bu, veritabanı motorunun birçok tabloyu değerlendirmesini gerektirebilir. Farklı tablolarda daha fazla sorgu kısıtlaması varsa, sorgu hızınızı ne kadar azaltırsanız o kadar çok olur. (Bu nedenle, bir RDBMS'in önceden hesaplanmış görünümleri vardır.) NoSQL veritabanında, sorgunuzu değerlendirmek için gereken tüm bilgiler tek bir belgededir. Bu nedenle, eşleşen belgelerin listesini hızlı bir şekilde belirleyebilirsiniz. İlişkisel görünümler ve NoSQL denormalizasyonları, kayıtlar arasında veri yayılmasına ilişkin farklı yaklaşımlardır. NoSQL'de, aynı verinin farklı görünümlerini temsil eden çoklu denormalizasyonları korumanız gerekebilir. Bu yaklaşım depolama maliyetini artırır, ancak size daha iyi bir sorgu süresi sağlar.

Depolamanın sürekli düşen maliyeti ve gelişme ve sorgulamanın hızının artışı göz önüne alındığında, denormalize edilmiş veriler (diğer bir deyişle

somutlaştırılmış görünümler ), NoSQL çözümlerini azaltmak için katil bir neden değildir. Aynı probleme kendi avantajları ve dezavantajlarıyla yaklaşmanın sadece farklı bir yolu. NoSQL çok dağıtılabilir ve emtia donanımını kullanır

Birçok NoSQL veritabanında kilit bir tasarım kararı, bütün veritabanını tek bir sunucuda toplamak yerine, tek bir veritabanında verileri depolamak için birden çok bilgisayar kullanmaktır.

Verileri birden fazla makineye kaydetmek ve sorgulanmasını sağlamak zordur. Sorguyu tüm sunuculara göndermeniz ve bir cevap beklemeniz gerekir. Umarım makinaları, dağıtılan soruları işlemek için birbirleriyle konuşacak kadar hızlı olacak şekilde kurarsınız!

Bu yaklaşımın en büyük avantajı çok büyük veri kümeleri olmasıdır, çünkü bazı depolama gereksinimleri için mevcut en büyük tek sunucunun bile ihtiyacınız olan tüm verileri depolayamaması veya işleyememesi. Twitter ve Facebook'daki tüm mesajları düşünün. Çoğunlukla insanların kahvaltı ve şirin kedi videoları için yaptıklarıyla ilgili olsa bile, tüm verileri etkili bir şekilde yönetmek için dağınık bir mekanizmaya ihtiyacınız var.

Veritabanınızı dağıtmanın bir avantajı, emtia sunucuları olarak adlandırılan daha ucuz sunucuları kullanabilmenizdir.Daha küçük veri setleri için bile, tek, yüksek güçlü bir sunucu yerine üç emtia sunucusu satın almak daha ucuz olabilir. Diğer bir önemli avantaj yüksek kullanılabilirlik eklemenin daha kolay olması; Verilerinizi dağıtarak zaten yarı yolda ilerliyorsunuz. Verilerinizi kümedeki diğer sunucular arasında bir veya iki kez çoğaltılıyorsanız, sunuculardan biri çökerse, yanarsa ve öldürülse bile verilerinize yine de erişilebilir olacaktır.

Veritabanının desteklenen ücretli sürümünü geliştiren şirketten satın almadıkça tüm açık kaynaklı veritabanları yüksek kullanılabilirliği desteklemez.

Grafik veritabanlarından çok dağıtım yapılabilir kurallara bir istisna söz konusudur. Bazı grafik sorgularını zamanında etkili bir şekilde cevaplandırmak için, verilerin tek bir sunucuda depolanması gerekir. Bu konuyu henüz kimse çözmedi.

Üçlü depoya mı yoksa bir grafik mağazasına mı ihtiyacınız var dikkatle düşünün. Üçlü mağazalar genellikle dağıtılabilirken, grafik mağazaları ise dağıtılabilir değildir. İhtiyacınız olan şey, desteklemeniz gereken sorgulara bağlı.

NoSQL'in ortak özellikleri - mankenler

Editörün Seçimi

Dijital Fotoğrafınızda Odak Noktası Yaratın - mankenler

Dijital Fotoğrafınızda Odak Noktası Yaratın - mankenler

Fotoğraf bir sanat biçimidir. İyi fotoğrafçılar, insanların bakmak isteyeceği çekici bir fotoğraf oluşturmak için kompozisyon kurallarını kullanırlar. Resminizi nasıl görselleştireceğinizi, çerçevede olanı düzenleyebileceğinizi ve ardından ilginç bir fotoğraf oluşturmak için kompozisyon kurallarını nasıl kullanacağınız. Doğal çerçeveleri kullanma Doğal çerçeveleri çizmek için kullanabilirsiniz ...

Dijital Fotoğraf Makinenizi Kullanarak Panoramik Resimler Oluşturma - mankenler

Dijital Fotoğraf Makinenizi Kullanarak Panoramik Resimler Oluşturma - mankenler

Dijital fotoğraf makineniz size yol göstermez panoramik bir fotoğraf çekmek için. Ancak, kesintisiz bir panoramik çekim oluşturmak için çakışan birkaç resim çekebilir ve onları birbirine dikebilirsiniz. Fotoğraf panoramasını oluşturmak için işinize bakalım:

Ham Dosyaları dönüştürme - mankenler

Ham Dosyaları dönüştürme - mankenler

Birçok dijital fotoğraf makinesi, görüntüleri Camera Raw dosya biçiminde veya sadece Ham olarak yakalayabilir. Bu format, JPEG formatında çekim yaparken oluşan olağan post-processing'leri uygulamadan herhangi bir görüntü sensöründen elde edilen ham görüntü verilerini depolar. Ham formatta çekim, bir takım avantajlar sunar. Fakat olumsuz ...

Editörün Seçimi

Ile iBS Dostu Tarçın Krepleri Ghee - dummies'le Domuz Dostu Tarçın Krep

Ile iBS Dostu Tarçın Krepleri Ghee - dummies'le Domuz Dostu Tarçın Krep

Sabahınıza enerji artışı sağlayan krep düşünün endişesizsiniz. Bu tarif, bir sabah herkesin sevebileceği bir Karbonhidrat Diyeti (SCD) versiyonudur.

IBS Sufferers için sardalya Yayılmış Tarif - mankenler

IBS Sufferers için sardalya Yayılmış Tarif - mankenler

Bu aperitif, pumpernickel ekmeği konusunda harika, fakat ayrıca buğdaydan kaçınırsanız, filizlenmiş ekmeği denemek istersiniz. Sardalya, iyi bir kalsiyum ve D vitamini kaynağı olduğu kadar, iltihap düzeylerini azaltmaya yardımcı olduğu bilinen omega-3 yağ asitleri. Kredi: © Digiphoto, 2006 Caroline Nation bunu geliştirdi ...

Editörün Seçimi

ASVAB: Kelime Bilgisi Alt Test Uygulaması - mankenler

ASVAB: Kelime Bilgisi Alt Test Uygulaması - mankenler

ASVAB'da göreceğiniz alt testlerden bir tanesi Kelime Bilgi testi. Test gününde soruların ve biçimin neye benzeyeceği hakkında bir fikir edinmek için aşağıdaki soruları inceleyin. Örnek sorular Kelime Bilgi Zamanı: 35 soru için 11 dakika Talimatlar: Kelime Bilgisi alt testi üçüncü alt testtir ...

ASVAB Paragraf Anlama Alt Sınavında Sözlük Sorularını Nasıl Yanıt Vereceksiniz - mankenler

ASVAB Paragraf Anlama Alt Sınavında Sözlük Sorularını Nasıl Yanıt Vereceksiniz - mankenler

Kelime Bilgisi ASVAB üzerinde alt test, bu tür soru, bir kelimeyi pasaj bağlamında kullanılan şekilde tanımlamanızı gerektirir. Sorunun doğru tanımı, sözcüğün en yaygın anlamı olabilir veya daha az bilinen bir anlam olabilir ...

Sorunlarını Nasıl Yanıtlayalım ASVAB - aumlalar

Sorunlarını Nasıl Yanıtlayalım ASVAB - aumlalar

Sayı problemleri ASVAB üzerinde bulacağınız sayı problemleri oldukça basittir. Sorular, sayıları temel ekleme, çıkarma, çarpma veya bölme ile değiştirmenizi ister. Çoğu kişi bu tür kelime problemlerini oldukça kolay buluyor. Birkaç tane denemek ister misiniz, sadece ayağınızı ıslatmak için mi? Elbette. Jesse ...