mongodb Ödev- İnternet programcılığı- ip2-vize 2

18
İnternet Programcılığı 2 – vize 2 Gülin Daşdan - Demet Saçlı 13125027 - 13125012

Upload: gulindasdan

Post on 13-Apr-2017

203 views

Category:

Internet


1 download

TRANSCRIPT

MONGODB

nternet Programcl 2 vize 2Glin Dadan - Demet Sal 13125027 - 13125012

MongoDB Nedir?MongoDB(humongous); leklenebilir, dokman tabanl, C++ ile gelitirilmiak kaynak, NoSQL veritaban uygulamasdr.NoSQL, klasik ilikisel veritaban ynetim sistemlerinden (VTYS) bir ekilde farkl olan veritaban ynetim sistemleri iin kullanlan bir kavramdr.

ubat 2009da ilk olarak yaynlanmtr.32 ve 64 bitlik Windows, Mac OS X, Linux, Unix, BSD sistemlerde almaktadr.Verilerini JSON tipli dokman yaplarnda muhafaza eder.JSON (JavaScript Object Notation) : Yap olarak XMLe ok benzemesine ramen JSON, verileri daha kk boyutlarda iler. Bu sebeple XMLden daha hzldr. XML yaps gibi JSON yapsda tm platformlarda rahatlkla alabilir. Kullanm XMLe gre daha basit ve kullanldr.BSON (Binary JavaScript Object Notation) : JSON tipli verilerin Encode edilmi hallerini barndran yapdr. MongoDB, bu yapy uzak ar, a ve disk sistemlerinde kullanmaktadr.

Youn veri barndran byk uygulamalar zerinde yksek performans ve dk maliyeti salamak amacyla tasarlanmtr.

Salad sorgu destei sayesinde ilikisel yaplarda olduu gibi belirlenen alanlara ait veriler rahatlkla sorgulanabilmektedir. Ayrca MongoDB belirlenen bu alanlara indeksleme yaparak performans konusunda ekstra avantaj salyor.

Sharding zellii sayesinde, verileri sunucular arasnda paylatrlarak sunucular veri yknden kurtaryor. Bu sayede performans kaybn engellemi oluyor.

MapReduce destei sayesinde byk lekli veriler de bile performans kayb yaamadan ilemler gerekletirebilir.Map : Tm verileri srayla parametre eklinde alr Key-Value eklinde dn yapar.Reduce : Mapin dndrd Key-Value deerlerini yakalayarak zerinde ilemler gerekletirmenize olanak salar.

leklendirmeyi salamak iin Master-Slave Replication destei sunuyor.Master : Yazma ilemlerinin yapld sunucudur.

Slave : Okuma ileminin yapld ve leklendirmenin saland sunucudur. Master sunucu herhangi bir ekilde devreden karsa Slave sunuculardan birisi Master olarak atanr.

MongoDB, zellikle hz gerektiren ve geleneksel ilikisel veritabanlarnn (rdbms) hantal ve yava kald yaplarda kullanlmaktadr. rnek kullanm alanlar arasnda:

yksek hacim/ierikli problemleranaliz iin veri saklanmasMMORPG (Devasa ok oyunculu evrim ii rol yapma oyunu)uygulamalarcaching sistemleriweb ierik ynetim sistemleriweb yorum/etiket saklama ve ynetme

MongoDB kullanlan giriimciler:

MTV NetworksDisney Interactive Media GroupShutterflyfoursquarebit.lyThe New York TimesSourceForgeCERN LHCThe GuardianBarclays

NoSQLNoSQL, ilikisel olmayan bir veritabandr. SQL dili kullanmadan Map-Reduce kavram ile sorgulama yaplr. Map ve Reduce, aslnda fonksiyonel programlamada ska kullanlan iki fonksiyondur. Excel buna gzel bir rnektir.NoSQL, ilikisel veri tabanndaki(RDBMS) tm verileri farkl tablolar yerine tek bir dokmanda saklayan veri taban modelidir. Bu nedenle dokman tabanl veri taban denmektedir. Daha iyi anlalabilmesi iin rnek verecek olursak;

likisel veri tabanlarnda kii, il, ile ve mahalle/ky tablolarn dnn. Buna gre elimizde birbirlerine foreign key/yabanc anahtar ile bal 4 tablo var. rnek olarak ta Ahmet arkadamz 20 milyonluk stanbul'da yaayan aznlk 2 milyon stanbulludan biri olduunu ve skdar Altunizade'de yaadn dnebilirsin. Buna gre NoSQL veri tabannda tm bilgiler tam da burada yazdmz/dndmz gibi saklanacaktr. Nereden olduunu renmek iin birletiren sorgular falan yazmanza gerek yoktur. RDBMS de bu bilgileri toplamak iin ilgili tm tablolar birletirmek gerekiyor. Sql sonucu ise dkman tabanl veriye benzeyecektir. Burada hemen akla u gelmektedir. Dkman tabanl veri tabannda doal olarak milyonlarca insanda birbirinin tekrar milyonlarca bilgi olaca kesindir. Bu da veri taban boyutunun bymesine neden olacaktr.

MongoDBnin sahip olduu zellikler yledir:

* Tutulan dokmann her zelliine, anahtarna(key) gre indeksleme salamaktadr.* Sk kullanlan okuma ilemi sorgularnda yksek performans gstermektedir.* Yedeklilik (High Availability) destei bulunmaktadr.* Auto-Sharding, ayn verinin birden ok yerde ilenebilmesi, bulunmas, yatay leklendirme zellii bulunmaktadr.* Zengin dkman tabanl sorgular mevcuttur.* Hzl bir veri yazma zellii bulunmaktadr.* Map/Reduce (ele/indirge) zellii sayesinde esnek toplama ve veri ilemeyi salar.* Veriler kendi yapsnda saklamada karmaklatrmadan ilerini yapmaktadr. BSON olarak verileri tutmaktadr.

MongoDB hangi dillerde alabilir ?C++, C# / .NET, Erlang, Haskell, Java, JavaScript, Lisp, Perl, PHP, Python, Ruby, Scala

C# LE MONGODB VERTABANI BALANTISI

try{var conn = new MongoDB.Mongo();conn.Connect();MessageBox.Show("Connected");}catch (Exception ex){MessageBox.Show(ex.Message);}

NSERT LEMpublic void insert(){var p = new Personel();p.personelAdi = "Kemal";p.numarasi = 1234;view sourceprint?try {var mongo = new MongoDB.Mongo();mongo.Connect();var db = mongo.GetDatabase("DemoDB");var coll = db.GetCollection();coll.Save(p); MessageBox.Show("kaydedildi"); }catch (Exception ex) {MessageBox.Show(ex.Message);}

UPDATE LEM

public void update(Personel p){var mongo = new MongoDB.Mongo();mongo.Connect();var db = mongo.GetDatabase("Demo");var coll = db.GetCollection(); p.personelAdi = "Duran"; coll.Save(p);}

SELECT LEM

public List getPersolonels(){var mongo = new MongoDB.Mongo();mongo.Connect();var db = mongo.GetDatabase("DemoDB");var personels = db.GetCollection().FindAll().Documents;return personels.ToList() ;}