NoSQL Nedir? NoSQL Veri Tabanı Örnekleri ve Özellikleri Nelerdir?

SQL’in ne olduğunu ele aldıktan sonra günümüzde popülerliğini artırmış olan ve pek çok alanda kullanılan bir veri tabanı olan NoSQL’i inceleyip şu sorulara cevap bulacağız: NoSQL nedir? NoSQL’deki veri tabanı türleri nelerdir ve ne işe yararlar, NoSQL hizmetleri/ürünleri nelerdir, NoSQL’in ne tür özellikleri vardır ve ne tür alanlarda kullanılabilmektedir? Hazırsanız hemen başlayalım.

NoSQL, SQL’in ortaya çıkmasından sonra geliştiridiğinden ötürü ilk olarak SQL’in ne olduğunu bilmekte fayda olacağını düşünüyorum. Eğer SQL ve ilişkisel veri tabanları hakkında bilgi sahibi değilseniz takip eden linkten yazımı ziyaret edebilir ve ardından buraya dönebilirsiniz.

SQL Nedir? Nasıl Çalışır? Ne İşe Yarar?

1970’li yıllarda Edgar F. Codd tarafından “relational database” kavramının ortaya atılmasından kısa süre sonra SQL programlama (?) dili,  Donald D. Chamberlin ve Raymond F. Boyce tarafından IBM’de geliştirilmiştir. Bugün açılımı Structured Query Language olan SQL’in ne olduğundan, ne işe yaradığından, nasıl bir yazım şekline (syntax) sahip olduğundan bahsederken SQL tarihine, SQL Server ve MySQL kavramlarına da değineceğim.

  • 21.01.2023

NoSQL Nedir?

NoSQL, SQL’in aksine ilişkisel olmayan, verilerin depolanmasını ve yönetilmesini sağlayan bir veri tabanıdır. Non-SQL, non-relational ya da not-only SQL olarak da tarif edilebilen NoSQL’de veriler SQL’deki gibi çizelge şeklinde tutulmazlar. (non-tabular)

NoSQL’de veriler birkaç farklı türde tutulabilir ki bu durum büyük veri havuzlarının oluşmasını (large data lakes) ve fazla kullanıcı trafiğinin (high user loads) sürdürülebilmesini sağlar.

NoSQL Veri Tabanı Türleri Nelerdir?

NoSQL veri tabanlarında veriler şu türlerde tutulabilir:

  1. Key-Value Store
  2. Graph Store
  3. Document Store
  4. Wide-column Store

Key-Value Store

Key-value store, key-value database, veri tabanındaki her değeri benzersiz anahtarlarla eşleyen, ölçeklenebilir, yüksek performanslı bir veri tabanıdır. Key-value store, hash tablosu ya da dictionary veri yapısına benzer mantıkta çalışır. Depolanan verilerin çağrılmasındaysa benzersiz anahtarlar kullanılır. Aşağıdaki fotoğrafta örneğini görebilirsiniz.

Key-value türündeki NoSQL veri tabanlarına Berkeley DB, Dynamo, Redis, InfluxDB örnek verilebilir.

Graph Store

Graph store, graph database, veri yönetiminde düğüm (node) ve çizgilerden (edge) oluşan grafları temel alan bir veri tabanıdır. Graph store, varlıklar arasındaki ilişkilere odaklanır. Bunu bir sosyal medya ağına benzetebiliriz ki genelde sosyal medya uygulamaları için bu veri tabanı türü tercih edilir.

Graph store türündeki veri tabanlarında varlıklar, node olarak isimlendirilen düğümlerde; varlıkların arasındaki ilişkiler, edge olarak isimlendirilen çizgilerle tutulur. Bu veri türleri dolandırıcılık tespiti, öneri uygulamaları gibi kullanım alanlarına sahiptir. [1]

Graph store türündeki NoSQL veri tabanlarına Amazon Neptune, Neo4j, StarDog, TypeDB, RDFox, TerminusDB, IBM Graph, ArrangoDB örnek verilebilir.

Document Store

Document store, document-oriented database, verilerin depolanması ve işlenmesi için JSON, XML ve BSON gibi çeşitli türlerde kayıt tutan dökümanları kullanan bir veri tabanıdır. Document olarak isimlendirilen dökümanlar, bir nesne (object) ve onun ilişkili meta verileri hakkında bilgi toplayan kayıtlardır. [2]

Dökümanlarda veriler; sayı, harf, nesne, diziler gibi farklı türlerdeki değerler ve onlarla eşleştirilmiş alanlarla, alan-değer eşleri (field-value pairs) şeklinde tutulmaktadır. [2] Aşağıdaki kod örneğine bakacak olursak “first_name”, “_id”, “email” ve “likes” birer alan (field), karşılarındakilerse farklı türlerdeki değerlerdir (values).

{
     "_id": 1,
     "first_name": "Joe",
     "email": "joe@example.com",
     "cell": "555-555-5555",
     "likes": [
        "computer",
        "science",
        "self-help"
     ]
  }

Document store türündeki NoSQL veri tabanlarına MongoDB, CouchDB, MarkLogic, Oracle NoSQL Database, CosmosDB, DocumentDB, Elasticsearch örnek verilebilir.

Wide-column Store

Wide-column store, extensible record store, ilişkisel veri tabanlarından farklı olarak tabloları, sütunları ve kolonları kullanan bir NoSQL veri tabanıdır. Wide-column store veri tabanlarında her satır veri farklı biçimdeki veya isimdeki sütunlardan oluşabilir.

Wide-column store türündeki NoSQL veri tabanlarına BigTable, Hypertable, Azure Tables, Scylla (database), Accumulo, Cassandra, HBase örnek verilebilir. 

NoSQL Veri Tabanı Ürünleri/Hizmetleri

Günümüzde büyük veri, web ve mobil uygulamalarında çoğunlukla NoSQL kullanılır. Peki popüler olan NoSQL veri tabanı ürünleri ve hizmetleri nelerdir?

  1. MongoDB
  2. Cassandra
  3. Bigtable
  4. Neo4J
  5. DynamoDB
  6. Elasticsearch
  7. OrientDB
  8. HBase
  9. CouchDB

NoSQL’in Kullanım Alanları Nelerdir?

NoSQL genellikle büyük verilere ihtiyaç duyan uygulamalarda, web sayfalarında ve çeşitli araçlarda (tools) tercih edilmektedir. Çünkü NoSQL verileri yüksek performansta ve hızda işlemektedir. NoSQL’in kullanıldığı alanları maddeleyecek olursak:

  1. Büyük veri analizi ve yönetimi gerektiren uygulamalarda,
  2. SQL kullanılarak geliştirilmesi zor olan web ve mobil uygulamalarda,
  3. Performansın, kullanılabilirliğin, esnekliğin gerektiği, daha düşük maliyetlere ihtiyaç duyan oyunlarda,
  4. Nesnelerin İnterneti (Internet of Things):
  5. Gerçek zamanlı uygulamalarda,
  6. Yüksek kullanıcı trafiğini kaldırabilecek, sıfır kesinti sağlaması beklenen uygulamalarda,

NoSQL veri tabanları tercih edilmektedir. NoSQL’in bu alanlarda SQL’e kıyasla fazla kullanılmasının sebebi NoSQL’in temel bazı özelliklerinden kaynaklanmaktadır. Peki NoSQL’in özellikleri nelerdir?

NoSQL Özellikleri Nelerdir?

  1. Esneklik: NoSQL herhangi bir şemaya bağlı değildir. Aynı koleksiyondaki veriler birbirlerinden farklı alanlara (fields) sahip olabilirler. Örneğin “omer_faruk” kullanıcısı e-posta bilgisine sahipken “joe” kullanıcısı bu bilgiye sahip değildir. Bu durum NoSQL’in esneklik özelliğinden kaynaklanmakadır.

    {
       _id: "omer_faruk",
       name: "Ömer Faruk",
       address: {
                  street: "Örnek sokak",
                  city: "Örnek",
                  state: "TR",
                  zip: "00000"
                },
    	"email": "info@ofcskn.com"
    },
    {
       _id: "joe",
       name: "Joe",
       address: {
                  street: "Example Street",
                  city: "Example",
                  state: "EN",
                  zip: "00000"
                }
    }
    
  2. Hızlı performans: Verilerin yapılandırılmamış ya da yarı yapılandırılmış olması nedeniyle NoSQL, veri erişiminde ve güncellenmesinde yüksek ve hızlı performans sağlar.

  3. Ölçeklenebilirlik: NoSQL’de veriler yatay ve dikey genişleyebilir. Böylelikle var olan sunuculardaki trafik artışı yeni bir sunucu eklenerek dengelenebilir.

  4. Ulaşılabilirlik: Ölçeklenebilirlik özelliğinden ötürü NoSQL, trafik artışını sıfır kesinti sunacak şekilde dengeleyebilir.

  5. Düşük maliyetler: SQL’de yatay genişleme (horizontal scaling) mümkün olmadığından dolayı kaynak yetersizliği, RAM, SSD ve CPU gibi bileşenlerin iyileştirilmesine bağlıdır. Bu da ek maliyet demektir. Aksine NoSQL’de ölçeklenebilir olması nedeniyle daha düşük maliyetlerde büyüme sağlanabilmektedir.

  6. Gerçek zamanlı veri: NoSQL veri tabanları, verilerin neredeyse gerçek zamanda güncellenmesini sağlar.

SQL’den sonra bu yazımda NoSQL’in ne olduğunu, nasıl çalıştığını, nerelerde kullanıldığını, NoSQL türlerinin ve ürünlerinin neler olduğunu ele aldım. Yazım hakkındaki görüşlerinizi, sorularınızı yorumlar kısmından paylaşabilirsiniz. Ayrıca SQL ve NoSQL’in farklarından, avantaj ve dezavantajlarından bahsettiğim yazıma ise aşağıdaki linkten ulaşabilirsiniz. Sağlıcakla kalın.

SQL ve NoSQL

SQL ve NoSQL’in ne olduğunu, nasıl çalıştığını ve ne işe yaradığını önceki yazılarımda ayrı olarak ele almıştım. Bugünse SQL ve NoSQL arasındaki farklardan, SQL ve NoSQL’in artı-eksilerinden bahsedeceğim.

  • 29.01.2023

Yorumlar

Lütfen bu alanı doldurun.
Lütfen bu alanı doldurun. Lütfen geçerli bir e-posta adresi giriniz.
Lütfen bu alanı doldurun.

Yorumlar

İlk yorumu paylaşan siz olun.