NoSQL nedir?

Kavram, İngilizce "Not Only SQL" kelimelerini kısaltmasından oluşmaktadır.

NoSQL; İlişkisel veritabanı yönetim sistemlerine alternatif olarak ortaya çıkan veritabanı depolama için bir mekanizma sağlayan ve klasik ilişkisel veritabanı yönetim sistemlerinden farklı olan veritabanı yönetim sistemleri için kullanılan bir kavramdır.

Veri yapısı RDBMS farklıdır. Bu nedenle bazı işlemler RDBMS'den daha hızlıdır. Bu veri depolarının sabit tabela düzenlerine ihtiyaçları olmayabilir, alışılagelmiş join işlemleri kullanılmaz, tipik olarak yatay ölçeklemeye gidilir. Akademisyenlerce ve makalelerde tipik olarak böyle veri depolarına yapılanmış bellek (structured storage) denir.

NoSQL veritabanları büyük veri depolanan ve gerçek zamanlı web uygulamalarında kullanılmaktadır.

NoSQL sistemlerinde, aynı zamanda SQL gibi sorgulama dillerini kullanılabilmeye izin verebilirmektedir.

Sql (Structured Query Language) nedir?

Sql, İngilizce Structured Query Language'nin kısaltılmışıdır. Yapılandırılmış Sorgu Dili anlamına gelmektedir. Ayrıca Bir veritabanından bilgi çekmeye, sorgulamaya yarayan bir program dilidir. Belirli komutlar yoluyla veritabanına veri gönderilmesi, verinin işlenmesi, düzenlenmesi, silinmesi gibi işlemler yapılır. Sql IBM tarafından 1975 yılında yaratılmıştır. SQL temelde, nesne-ilişkili (object-relational) veritabanı yönetim sistemlerini desteklemek için tasarlanmıştır. Fakat bu amacın ötesinde, ANSI ve ıso standartları tarafından belirlenmiş, birçok özelliğe sahiptir.

Sınıflandırma

NoSQL veritabanları, farklı kategorilerde sınıflandırmak için çeşitli yaklaşımlar olmuştur. NoSQL temel sınıflandırma veri modeline dayanmaktadır. NoSQL uygulamalarını yapılışlarına göre sınıflamak mümkündür. Birkaç örnekle birlikte kategoriler;

1. Sütun: Accumulo, Cassandra, HBase

2. Döküman: Clusterpoint, Couchbase, MarkLogic, MongoDB

3. Anahtar Değer: Dynamo, FoundationDB, MemcacheDB, Redis, Riak, FairCom c-treeACE

4. Grafik: AllegGro, Neo4J, OrientDB, Virtuoso

Daha ayrıntılı bir sınıflandırma Stephen Yen tarafından şu şekilde yapılmıştır.

1. Key-Value Cache: Coherence, eXtreme Scale, GigaSpaces, GemFire, Hazelcast, Infinispan, JBoss Cache, Memcached, Repcached, Terracotta, Velocity

2. Key-Value Store: Flare, Keyspace, RAMCloud, SchemaFree

3. Key-Value Store (Eventually-Consistent): DovetailDB, Dynamo, Dynomite, MotionDb, Voldemort, SubRecord

4. Key-Value Store (Ordered): Actord, FoundationDB, Lightcloud, Luxio, MemcacheDB, NMDB, Scalaris, TokyoTyrant

5. Data-Structures server: Redis

6. Tuple Store: Apache River, Coord, GigaSpaces

7. Object Database:  DB4O, Perst, Shoal, ZopeDB

8. Document Store: Clusterpoint, CouchDB, MarkLogic, MongoDB, Riak, XML-databases

9. Wide Columnar Store:  BigTable, Cassandra, HBase, Hypertable, KAI, KDI, OpenNeptune, Qbase

Geçmişi

NoSQL kavramı 1998'de çıkarılan SQL arayüzü olmayan hafif bir açık kaynak ilişkisel veritabanı.
Tasarımcısı Carlo Strozzi, NoSQL hareketi "ilişkisel modelden tamamen ayrılırken ona bundan dolayı daha uygun olarak ilişkisel olmayan anlamında "NoREL" veya benzeri bir ad vermek gerektiğini ileri sürer."

Rackspace'ın bir çalışanı olan Eric Evans, NoSQL kavramını Last.fm'den Johan Oskarsson açık kaynak dağıtık veritabanlarının görüşüleceği bir toplantı planlamak istediğinde 2009 başında tekrar kullanmaya başlandı. Bu adla artan sayıda ortaya çıkan ve ilişkisel olmayan ve çoğu zaman ACID garantisini vermeyi amaçlamayan dağıtık veri depolarına damgasını vurmak istemişti. ACID, IBM DB2, MySQL, Microsoft SQL Server, PostgreSQL, Oracle İVTYS, Informix gibi klasik ilişkisel veritabanı sistemlerinde sağlanan temel özelliklerdendir.)

2009'da Atlanta'daki "no:sql(east)" konferansının NoSQL tartışması üzerinde derin etkileri oldu. Kendisini "ilişkisel olmayan veri depolarıyla ilgili bir konferansı" olarak görmekte olan ve sloganı eğlenceyi seç, ilişkisel=yanlış; olan gerçek Dünya'dan faydalan olan bu konferansın NoSQL tartışmasına etkisi olmuştur. Böylece "NoSQL" in en genel yorumu, anlamı anti-İVTYS olmayıp anahtar-değer depoları, belge veritabanları ve Graph veritabanlarının kullanımının altını çizmesine rağmen "ilişkisel olmayan" dır.

Avantajları

1. NoSQL sistemleri yüksek erişilebilirlik sunarlar.

2. Okuma ve yazma performansları olarak RDBMS’lerden daha performanslıdır.

3. Yatay olarak genişletilebilirler.

4. Binlerce sunucu birarada küme olarak  çalışabilir ve çok büyük veri üzerinde işlem yapabilirler.

5. Esnek yapılarından dolayı programlama ve bakım anlamında kolaylık sağlarlar.

6. Çoğu açık kaynaklı ve bulut bilişime uygun olduğu için maliyet anlamında avantajlıdır.

7. Kullanımı kolay ve esnek nesne yönelimli programlama.

Dezavantajları

1. Veri güvenliği konusunda da RDBMS’ler kadar gelişmiş özelliklere henüz sahip değiller.

2. RDBMS sistemlerini kullanan uygulamaların NoSQL sistemlere taşınması zordur.

3. RDBMS sistemlerinin NoSQL sistemlere taşınması sırasında veri kaybı sözkonusu olabilir.

4. İlişkisel veritabanı yönetim sistemlerindeki  işlem hareketleri (transaction) kavramı, NoSQL veritabanı sistemlerinde bulunmadığı için veri kaybı söz konusu olabilmektedir.

5. İlişkisel veritabanı yönetim sistemlerindeki sorgu tabanlı veri erişimi yerine NoSQL sistemlerdeki anahtar tabanlı veri erişimi sağlamak gerekmektedir.

NoSQL ne zaman kullanılır?

Örneğin; Hepsiburada.com gibi yüzlerce kategorinin ve ürünün olduğu, ürünleri sıkça değiştiği yapılarda NoSQL kullanılır. Çünkü bu tür sitelerde sürekli değişen veriler sayesinde veri yönetimini zorlaşmaktadır.  Bu tür durumlarda her bir ürün bir xml dosyası olarak saklanabilir.

Hataya müsade etmeyen ekonomi sektöründe NoSQL tercih edilmez.

VTYS'lerinin karşılaştırılması

1. Hiyerarşik: Yavaştır, Hata kontrolü vardır, Dağıtık çalışabilme olanağı yoktur, Mainframe üzerinde esneklik vardır, Ağaç yapısı, Big data desteği yoktur, Ücretlidir,  Şema kullanımı vardır, Gelişmiş sorgulama özelliği yoktur, Gelişmiş raporlama yoktur.

2. İlişkisel: Göreceli hızlıdır, ACIDü, Dağıtık çalışabilme olanağı yoktur, Esnektir, Tablo yapısı, Big data desteği yoktur, Genel olarak ücretlidir, Şema kullanımı vardır, Gelişmiş sorgulama özelliği vardır, Gelişmiş raporlama vardır.

3. NoSQL: İlişkisel veri tabanından daha hızlıdır, CAP, Dağıtık çalışabilme olanağı vardır, Rdbms'den daha esnektir,  Anahtar değer, Big data desteği vardır, Genel olarak Ücretsizdir, Şema kullanımı yoktur, Gelişmiş sorgulama özelliği yoktur, Gelişmiş raporlama yoktur.

Dış bağlantılar

NoSQL Wikipedia

NoSQL

Yorumlar

Bu sayfa ait yorum bulunamadı. İlk yorum yapan siz olun.

Yorum ekle

Vazgeç