MongoDB ve C# Driver'ı

  • 1,009 views
Uploaded on

Temel seviyede No-Sql ve MongoDB'nin C# driver'ının kullanımının anlatıldığı bir sunumdur.

Temel seviyede No-Sql ve MongoDB'nin C# driver'ının kullanımının anlatıldığı bir sunumdur.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,009
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
9
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. MongoDB And C# Serdar Büyüktemiz@hserdarb / serdarb.com altdotnetturkiyeWeb Application Developer
  • 2. Program• No-Sql• MongoDB• C# Driver• Demo
  • 3. NO-SQL
  • 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…)
  • 5. http://jeeconf.com/archive/jeeconf-2011/materials/graph-db/
  • 6. Veri tabanı Boyut/Karmaşa Grafiği http://jeeconf.com/archive/jeeconf-2011/materials/graph-db/
  • 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)
  • 10. MONGODB
  • 11. RDBMS => MongoDBRDBMS MongoDBTable, View CollectionRow JSON DocumentIndex IndexJoin Embeded DocumentPartition ShardPartition Key Shard Key
  • 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 tutorialhttp://tutorial.mongly.com/tutorialBy Karl Seguin
  • 15. C# DRIVER
  • 16. Official C# Driver
  • 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]]
  • 20. MongoCollection• GetCollection<MyType>
  • 21. Insert
  • 22. Find
  • 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…
  • 24. Map Reduce
  • 25. Demo• https://bitbucket.org/serdarb/mongo-c-driver-poc• https://github.com/serdarb/Mongo-C--Driver-POC
  • 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
  • 27. Indexing
  • 28. İpucu• Mongodb’yi notablescan parameteresiyle çalıştırarak sorgularımızın «full table scan» yapmamasına emin olabiliriz... – Eğer bir sorgu fulltable scan yapıyorsa hata verecektir. Buda geliştirme anında index belirlememizde bize kılavuzluk edecektir
  • 29. Sources• http://www.mongodb.org/display/DOCS/Introduction• http://mongly.com/Multiple-Collections-Versus-Embedded-Documents/• http://openmymind.net/mongodb.pdf• http://www.mongodb.org/display/DOCS/Padding+Factor• https://github.com/mongodb/mongo• http://www.codeproject.com/Articles/273145/Using-MongoDB-with-the-Official-Csharp-Driver• http://stackoverflow.com/questions/4067197/mongodb-and-joins• http://www.mongodb.org/display/DOCS/Schema+Design#SchemaDesign-EmbeddingandLinking• http://docs.mongodb.org/manual/applications/database-references/• http://www.10gen.com/presentations?programming_lang=46• https://speakerdeck.com/mongodb/whats-new-in-the-net-driver• http://learnmongo.com/• http://www.mongovue.com/2010/11/03/yet-another-mongodb-map-reduce-tutorial/• http://spp42.com/mongodbde-dogru-index-kullanimi-nasil-kontrol-edilir-i/