Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Semantik Ağ ve Üst Veri Sistemleri İçin Yeni Nesil Veri Tabanı Yönetim Modeli:
NoSQLR. Orçun MadranAtılım Üniversitesi
www.madran.net
● 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
İçerik
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
● Microsoft Ofis Dokümanları
● HTML vb.
Doküman (Kayıt / Record) Yapısı{
AdıSoyadı: "Umut Al",ePosta: "[email protected]"
}
{AdıSoyadı: "Yaşar Tonta",ePosta: "[email protected]"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ürlerR. Orçun MadranAtılım Üniversitesi
www.madran.net