Semantik Ağ ve Üst Veri Sistemleri İçin Yeni Nesil Veri Tabanı Yönetim Modeli: NoSQL R. Orçun Madran Atılım Üniversitesi www.madran.net
İçerik NoSQL Ne Değildir? Neden NoSQL? Ne Zaman NoSQL? NoSQL'in Tarihçesi. NOSQL Veri Tabanı Kategorileri Doküman Deposu JSON & BSON Örnek Veri Tabanı: MongoDB Soru & Cevap
NoSQL Ne Değildir? Klasik "İlişkisel Veri Modeli"ni kullanmaz. Veriler, tablolar içindeki satırlarda depolanmaz. Veri işleme SQL adı verilen sorgulama dili ile yapılmaz. Veriye erişim karmaşık birleştirme (Join) işlemleri ile sağlanmaz. İlişkisel veri modeli alternatifi değildir, ACID (Ya Hep Ya Hiç) garantisi vermez.
ACID - Ya Hep Ya Hiç Atomicity: Ya hep ya hiç kuralını sağlar. Consistency: Veri uygunluğunu garanti eder. Isolation: Eş zamanlı işlem kontrolü. Durability: Yapılan değişikliklerin (işlemlerin) gerçekleşeceği garantisini verir.
ACID - Ya Hep Ya Hiç (Özet) İşlemler kuyruktayken sabit diskte depolanır (geneneksel veritabanları) İşlemler kuyruktayken geçici bellekte depolanır (NoSQL veritabanları)
Neden NoSQL? Çok yüksek işlem trafiğine sahip ağ tabanlı uygulamalardaki performans artışı, (Twitter, Facebook vb.) Dağıtık veri mimarisi konusunda esneklik, Yük dengeleme açısından ölçeklenebilirlik, Kayıt bazında veri alanı özelleştirmesi.
Ne Zaman NoSQL? Uygulama performansı işlem tutarlılığından daha önemli olduğunda, Uygulamanın koştuğu sunucuların sürekli artışı (ya da duruma göre) öngörülüyorsa, Çok büyük veri yığınları ile çalışılıyorsa. Üst veri ve doküman yönetimi üzerinde deneysel çalışmalar amaçlanıyorsa ;)
NoSQL'in Tarihçesi NoSQL kavramı ilk kez 1998'de ortaya çıktı, İlişkisel model kullanılmadığı için NoREL, 2009 yılında yeniden ortaya çıktı, 2011 yılında SQL yerine UnQL (Yapılandırılmamış Sorgu Dili) üzerinde çalışılmaya başlandı.
NoSQL Neden Bana Sıcak Geliyor ;) UnQL (Doküman Veritabanları) ile birlikte: Tablolar yerine Koleksiyonlar (Collections), Satırlar yerine Dokümanlar (Documents), Sütunlar yerine de Alanlar (fields), kullanılmaya başlandı.
NoSQL Veri Tabanı Kategorileri Yoğunlaşılan kategoriler: Doküman Deposu (Document Store) Doküman-tabanlı Veri Tabanları XML Veri Tabanları Çizelge (Graph) Anahtar-değer Deposu (Key-valued Store) Tüm kategori listesi: http://en.wikipedia.org/wiki/nosql
Doküman Deposu (Document Store) Doküman Deposu yaklaşımının merkezinde "Doküman"'nın kendisi yer alır. Yarı-yapılandırılmış bir platform olarak tanımlanır. Standart bir "Şema" kullanımı yoktur.
Dokümanın Kodlanması Dokümanın kodlanması (encode) için: XML YAML JSON
İkili Düzende Erişim (Binary Forms) Dokümana fiziksel erişimi için: BSON PDF Microsoft Ofis Dokümanları HTML vb.
Doküman (Kayıt / Record) Yapısı { AdıSoyadı: "Umut Al", eposta: "umutal@hacettepe.edu.tr" } { AdıSoyadı: "Yaşar Tonta", eposta: "tonta@hacettepe.edu.tr" Eğitim: [ {Derece: "Doktora", Kurum: "Berkeley", Yıl:"1992"}, {Derece: "Y. Lisans", Kurum: "Wales", Yıl:"1986"}, {Derece: "Lisans", Kurum: "Hacettepe", Yıl:"1981"}, ] }
Doküman Tabanlı VS İlişkisel VT Boş alanlar doküman içinde yer almıyor. Doküman alanları birbiri ile aynı ya da farklı olabiliyor. Yeni bir alan yapısal bir değişikliği gerektirmiyor. Dokümana yeni bir alan eklenmesi ve / veya çıkarılması çok hızlı bir şekilde gerçekleştirilebiliyor.
Anahtarlar (Keys) Her bir doküman veri tabanındaki eşsiz bir anahtar yardımıyla adreslenir. Bu anahtar genelde metin tabanlı bir yapıya sahiptir. Anahtar Web adresinden ya da sabit disk üzerindeki bir patikadan oluşabilir. Bu şekilde anahtar dokümana erişim için de kullanılır.
Erişim Sorgulama dili ile, Veri tabanının uygulama arayüzü (API) ile
Organizasyon Koleksiyonlar Etiketler Görünmeyen Üst Veri Hiyerarşik Klasörler
Doküman Tabanlı Veri Tabanları Mongo DB - BSON veri depolama (JSON)
MongoDB - http://www.mongodb.org/
BSON - http://bsonspec.org/
MongoDB - http://www.mongodb.org/ - TRY IT OUT
Teşekkürler R. Orçun Madran Atılım Üniversitesi www.madran.net