4. Dünyada Sadece OLTP Databaseler Yok
• Her problemin kendine has başka bir çözümü
de olabilir. (NO – Not Only SQL)
– Karşımıza çıkan işlerin %90’dan fazlası ilişkisel veri
tabanlarıyla rahatlıkla çözülebilir…
– Ama bunlar da var
• Key-Value
• Column Oriented
• Document (MongoDB, CouchDB)
• Graph
• OLAP (No-Sql ler arasında anılmıyo…)
7. NoSQL Problem Çözüm Örnekleri
• Key-Value
• Uygulama State’ini Saklamak (Session)
• Column Oriented
• Google :)
• Data warehouse
• Document
• Blog (Yazı Yorumları),
• Eticaret (Ürün Özellikleri)
• Hızlı insert
• Graph
• Arkadaşımın, arkadaşlarının, arkadaşları…
• OLAP
• Pek değişmeyen verilerde hızlı rapor gösterimi
8. Genel Olarak Nasıl Bir DB Lazım?
• Kolayca kullanmaya başlayabileceğimiz (şemasız)
• İşler büyüdüğünde de bizi kaldırabilecek ama
küçükken de yük olmayacak
• Bize veri kaybettirmeyecek
• Daima up olacak
• No-Sql veri tabanları genel olarak bu düşünce ile
farklı iş sorunlarını çözmek üzere
geliştirilmişlerdir.
9. İdeal MongoDB Başlangıç Setup’ı
• Yazılımcı olarak kurmakla uğraşmayın bir bilen size kursun
(spp42.com/mongodb/danismanlik)
12. Neden MongoDB?
• Popüler
• Kolay
• Şemasız
• Web projeleri için ideal
• High performance (İlişkili bir yapı kurmazsak ve
makul oranda «embeded döküman» kullanırsak)
• High availability (Replicated servers with
automatic master failover)
• Easy scalability (Automatic sharding)
13. İş Büyüdükçe Aradaki Fark Ortaya
Çıkıyor
http://blog.michaelckennedy.net/2010/04/29/mongodb-vs-sql-server-2008-performance-showdown/
14. Güzel bir web tutorial
http://tutorial.mongly.com/tutorial
By Karl Seguin
17. BSON Nedir?
• BSON, MongoDB’nin «dökümanlar» için
kullandığı veri saklama ve network transfer
formatı.
• Binary JSON
• http://bsonspec.org/
• http://www.mongodb.org/display/DOCS/BSON
18. POCO’larla Çalışmak
• İşleri kolaylaştıran kurallar…
– Parametresiz public constructor
– Serialize olmasını istediğiniz her Property için
Public get ve set
19. MongoDB’ye Bağlanmak
• GetDatabase methodu db yoksa sizin için
oluşturuyor.
• http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial#CSharpDriverTut
orial-Connectionstrings
• mongodb://[username:password@]hostname[:port][/[database][?options]]
23. Map Reduce
• Mümkün olduğunca çabuk çok miktarda data üzerinde
paralel olarak işlem yapmak için bir çözüm…
• CouchDB incremental Map Reduce Yapıyor…
26. Transaction
• Transaction desteği yok
– Çözümümümüz transaction gerektiriyorsa başka
bir DB kullanmayı düşünebilirsiniz.
• Kendiniz geliştirmek isterseniz şu linkleri
inceleyebilirsiniz
– http://docs.mongodb.org/manual/tutorial/perfor
m-two-phase-commits/
– https://github.com/rystsov/mongodb-transaction-
example