NoSQL kıs altması 1998'de ortaya çıktı. Birçok kişi NoSQL'in SQL'i dürtmek için yaratılmış aşağılayıcı bir terim olduğunu düşünüyor. Gerçekte, terim Sadece SQL Değil anlamına gelir. Buradaki fikir, her iki teknolojinin bir arada var olabileceği ve her birinin bir yeri olduğudur. Web 2.0 liderlerinin çoğu bir NoSQL teknolojisini benimsediği için NoSQL hareketi son birkaç yıldır haberlerde yer aldı. Facebook, Twitter, Digg, Amazon, LinkedIn ve Google gibi şirketlerin hepsi bir şekilde NoSQL kullanıyor. NoSQL'i parçalara ayıralım, böylece bunu CIO'nuza ve hatta iş arkadaşlarınıza açıklayabilirsiniz.
NoSQL Bir İhtiyaçtan Ortaya Çıktı
Veri Depolama: Dünyanın depolanan dijital verileri eksabayt cinsinden ölçülür. Bir exabayt, bir milyar gigabayt (GB) veriye eşittir. Internet.com'a göre, 2006'da eklenen depolanmış veri miktarı 161 eksabayttı. Sadece 4 yıl sonra 2010'da, depolanan veri miktarı %500'ün üzerinde bir artışla yaklaşık 1.000 ExaByte olacak. Başka bir deyişle, dünyada depolanan çok fazla veri var ve büyümeye devam edecek.
Birbirine Bağlı Veriler: Veriler daha bağlantılı hale gelmeye devam ediyor. Web'in yaratılması, hiper bağlantılarla desteklendi, blogların pingback'leri var ve her büyük sosyal ağ sisteminde, şeyleri birbirine bağlayan etiketler var. Başlıca sistemler birbirine bağlanacak şekilde tasarlanmıştır.
Karmaşık Veri Yapısı: NoSQL hiyerarşik iç içe veri yapılarını kolayca işleyebilir. Aynı şeyi SQL'de gerçekleştirmek için, her tür anahtara sahip birden çok ilişkisel tabloya ihtiyacınız olacaktır. Ayrıca, performans ve veri karmaşıklığı arasında bir ilişki vardır. Sosyal ağ uygulamalarında ve anlamsal web'de gereken çok büyük miktarda veri depoladığımız için performans geleneksel bir RDBMS'de düşebilir.
NoSQL nedir?
Sanırım NoSQL'i tanımlamanın bir yolu, onun ne olmadığını düşünmektir. SQL değil ve ilişkisel değil. Adından da anlaşılacağı gibi, bir RDBMS'nin yerine geçmez, ancak onu tamamlar. NoSQL, çok büyük ölçekli veri ihtiyaçları için dağıtılmış veri depoları için tasarlanmıştır. 500.000, 000 kullanıcısıyla Facebook'u veya her gün Terabit veri biriktiren Twitter'ı düşünün.
NoSQL veritabanında sabit şema ve birleştirme yoktur. Bir RDBMS, daha hızlı donanım alarak ve bellek ekleyerek "ölçeklendirir". NoSQL ise "ölçeklendirme" avantajından yararlanabilir. Ölçeklendirme, yükün birçok emtia sistemine yayılmasını ifade eder. Bu, NoSQL'i büyük veri kümeleri için ucuz bir çözüm yapan bileşenidir.
NoSQL Kategoriler
Mevcut NoSQL dünyası 4 temel kategoriye uyar.
- Key-values Stores temel olarak Amazon'un 2007'de yazılan Dinamo Kağıdına dayanmaktadır. Ana fikir, benzersiz bir anahtarın ve belirli bir veri öğesine bir işaretçinin bulunduğu bir karma tablonun varlığıdır. Bu eşlemelere genellikle performansı en üst düzeye çıkarmak için önbellek mekanizmaları eşlik eder.
- Belge Veritabanları Lotus Notes'tan esinlenmiştir ve anahtar/değer depolarına benzer. Model, temel olarak, diğer anahtar/değer koleksiyonlarının koleksiyonları olan sürümlenmiş belgelerdir. Yarı yapılandırılmış belgeler JSON gibi biçimlerde saklanır.
- Graph Veritabanı'lar düğümlerle, notlar arasındaki ilişkilerle ve düğümlerin özellikleriyle oluşturulur. Satır ve sütun tabloları ve SQL'in katı yapısı yerine, birçok makinede ölçeklenebilen esnek bir grafik modeli kullanılır.
Sütun Ailesi Mağazaları birçok makineye dağıtılan çok büyük miktarda veriyi depolamak ve işlemek için oluşturuldu. Hâlâ anahtarlar var ama birden çok sütuna işaret ediyorlar. BigTable (Google'ın Sütun Ailesi NoSQL modeli) durumunda, satırlar bir satır anahtarıyla tanımlanır ve veriler bu anahtar tarafından sıralanır ve depolanır. Sütunlar, sütun ailesine göre düzenlenmiştir.
Büyük NoSQL Oyuncuları
NoSQL'deki büyük oyuncular, öncelikle onları benimseyen kuruluşlar sayesinde ortaya çıktı. En büyük NoSQL teknolojilerinden bazıları şunlardır:
- Dynamo: Dinamo Amazon.com tarafından oluşturulmuştur ve en önemli Anahtar-Değer NoSQL veritabanıdır. Amazon, e-ticaret işletmeleri için yüksek düzeyde ölçeklenebilir dağıtılmış bir platforma ihtiyaç duyduğundan Dynamo'yu geliştirdi. Amazon S3, depolama mekanizması olarak Dinamo kullanır.
- Cassandra: Cassandra, Facebook tarafından açık kaynaklıydı ve sütun odaklı bir NoSQL veritabanıdır.
- BigTable: BigTable, Google'ın tescilli sütun odaklı veritabanıdır. Google, BigTable kullanımına izin verir, ancak yalnızca Google App Engine için.
- SimpleDB: SimpleDB başka bir Amazon veritabanıdır. Amazon EC2 ve S3 için kullanılır, kullanıma bağlı olarak ücret alan Amazon Web Services'in bir parçasıdır.
- CouchDB: MongoDB ile birlikte CouchDB, açık kaynaklı belge odaklı NoSQL veritabanlarıdır.
- Neo4J: Neo4j açık kaynaklı bir grafik veritabanıdır.
NoSQL Sorgulama
Bir NoSQL veritabanının nasıl sorgulanacağı sorusu çoğu geliştiricinin ilgilendiği şeydir. Sonuçta, büyük bir veritabanında depolanan verileri alıp son kullanıcılara gösteremezseniz, kimseye bir faydası olmaz. veya web hizmetleri. NoSQL veritabanları, SQL gibi üst düzey bir bildirimsel sorgu dili sağlamaz. Bunun yerine, bu veritabanlarını sorgulamak > PREFIX foaf:
SELECT ?url
FROM
WHERE {
?contributor foaf:name "Jon Foobar".
?Katkıda bulunan foaf:weblog ?url.
}
NoSQL'in Geleceği
Büyük veri depolama ihtiyaçları olan kuruluşlar, NoSQL'i ciddiye alıyor. Görünüşe göre, konsept daha küçük organizasyonlarda çok fazla ilgi görmüyor. Information Week tarafından yürütülen bir ankette, iş BT uzmanlarının %44'ü NoSQL'i duymamış. Ayrıca, ankete katılanların yalnızca %1'i NoSQL'in stratejik yönlerinin bir parçası olduğunu bildirdi. Açıkça, NoSQL'in bağlantılı dünyamızda yeri var, ancak birçok kişinin sahip olabileceğini düşündüğü kitlesel çekiciliği elde etmek için gelişmeye devam etmesi gerekecek.