SlideShare a Scribd company logo
İnternet Programcılığı 2 – vize 2
Gülin Daşdan - Demet Saçlı
13125027 - 13125012
MongoDB Nedir?
◦MongoDB (“humongous”); ölçeklenebilir,
doküman tabanlı, C++ ile geliştirilmiş açık kaynak,
NoSQL veritabanı uygulamasıdır.
◦NoSQL, klasik ilişkisel veritabanı yönetim
sistemlerinden (İVTYS) bir şekilde farklı olan
veritabanı yönetim sistemleri için kullanılan bir
kavramdır.
◦ Şubat 2009’da ilk olarak yayınlanmıştır.
◦ 32 ve 64 bitlik Windows, Mac OS X, Linux, Unix, BSD
sistemlerde çalışmaktadır.
◦ Verilerini JSON tipli doküman yapılarında muhafaza
eder.
◦ JSON (JavaScript Object Notation) : Yapı olarak XML’e çok
benzemesine rağmen JSON, verileri daha küçük boyutlarda
işler. Bu sebeple XML’den daha hızlıdır. XML yapısı gibi JSON
yapısıda tüm platformlarda rahatlıkla çalışabilir. Kullanımı
XML’e göre daha basit ve kullanışlıdır.
◦ BSON (Binary JavaScript Object Notation) : JSON tipli verilerin
Encode edilmiş hallerini barındıran yapıdır. MongoDB, bu
yapıyı uzak çağrı, ağ ve disk sistemlerinde kullanmaktadır.
◦ Yoğun veri barındıran büyük uygulamalar üzerinde yüksek
performans ve düşük maliyeti sağlamak amacıyla tasarlanmıştır.
◦ Sağladığı sorgu desteği sayesinde ilişkisel yapılarda olduğu gibi
belirlenen alanlara ait veriler rahatlıkla sorgulanabilmektedir.
Ayrıca MongoDB belirlenen bu alanlara indeksleme yaparak
performans konusunda ekstra avantaj sağlıyor.
◦ Sharding özelliği sayesinde, verileri sunucular arasında
paylaştırılarak sunucuları veri yükünden kurtarıyor. Bu sayede
performans kaybını engellemiş oluyor.
◦ MapReduce desteği sayesinde büyük ölçekli veriler de bile
performans kaybı yaşamadan işlemler gerçekleştirebilir.
◦ Map : Tüm verileri sırayla parametre şeklinde alır Key-Value şeklinde
dönüş yapar.
◦ Reduce : Map’in döndürdüğü Key-Value değerlerini yakalayarak
üzerinde işlemler gerçekleştirmenize olanak sağlar.
o Ölçeklendirmeyi sağlamak için Master-Slave Replication desteği
sunuyor.
o Master : Yazma işlemlerinin yapıldığı sunucudur.
o Slave : Okuma işleminin yapıldığı ve ölçeklendirmenin sağlandığı
sunucudur. Master sunucu herhangi bir şekilde devreden çıkarsa
Slave sunuculardan birisi Master olarak atanır.
MongoDB, özellikle hız gerektiren ve geleneksel ilişkisel
veritabanlarının (rdbms) hantal ve yavaş kaldığı yapılarda
kullanılmaktadır. Örnek kullanım alanları arasında:
◦ yüksek hacim/içerikli problemler
◦ analiz için veri saklanması
◦ MMORPG (Devasa çok oyunculu çevrim içi rol yapma
oyunu)uygulamaları
◦ caching sistemleri
◦ web içerik yönetim sistemleri
◦ web yorum/etiket saklama ve yönetme
MongoDB kullanılan girişimciler:
◦ MTV Networks
◦ Disney Interactive Media Group
◦ Shutterfly
◦ foursquare
◦ bit.ly
◦ The New York Times
◦ SourceForge
◦ CERN LHC
◦ The Guardian
◦ Barclays
NoSQL
◦ NoSQL, ilişkisel olmayan bir veritabanıdır. SQL dili kullanmadan
Map-Reduce kavramı ile sorgulama yapılır. Map ve Reduce,
aslında fonksiyonel programlamada sıkça kullanılan iki
fonksiyondur. Excel buna güzel bir örnektir.
◦ NoSQL, ilişkisel veri tabanındaki(RDBMS) tüm verileri farklı tablolar
yerine tek bir dokümanda saklayan veri tabanı modelidir. Bu
nedenle doküman tabanlı veri tabanı denmektedir. Daha iyi
anlaşılabilmesi için örnek verecek olursak;
◦ İlişkisel veri tabanlarında kişi, il, ilçe ve mahalle/köy tablolarını düşünün. Buna
göre elimizde birbirlerine foreign key/yabancı anahtar ile bağlı 4 tablo var.
Örnek olarak ta Ahmet arkadaşımız 20 milyonluk İstanbul'da yaşayan azınlık 2
milyon İstanbulludan biri olduğunu ve Üsküdar Altunizade'de yaşadığını
düşünebilirsin. Buna göre NoSQL veri tabanında tüm bilgiler tam da burada
yazdığımız/düşündüğümüz gibi saklanacaktır. Nereden olduğunu öğrenmek
için birleştiren sorgular falan yazmanıza gerek yoktur. RDBMS de bu bilgileri
toplamak için ilgili tüm tabloları birleştirmek gerekiyor. Sql sonucu ise döküman
tabanlı veriye benzeyecektir. Burada hemen akla şu gelmektedir. Döküman
tabanlı veri tabanında doğal olarak milyonlarca insanda birbirinin tekrarı
milyonlarca bilgi olacağı kesindir. Bu da veri tabanı boyutunun büyümesine
neden olacaktır.
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
MongoDB’nin sahip olduğu özellikler
şöyledir:
◦ * Tutulan dokümanın her özelliğine, anahtarına(key) göre indeksleme sağlamaktadır.
◦ * Sık kullanılan okuma işlemi sorgularında yüksek performans göstermektedir.
◦ * Yedeklilik (High Availability) desteği bulunmaktadır.
◦ * Auto-Sharding, aynı verinin birden çok yerde işlenebilmesi, bulunması, yatay
ölçeklendirme özelliği bulunmaktadır.
◦ * Zengin döküman tabanlı sorguları mevcuttur.
◦ * Hızlı bir veri yazma özelliği bulunmaktadır.
◦ * Map/Reduce (eşle/indirge) özelliği sayesinde esnek toplama ve veri işlemeyi sağlar.
◦ * Veriler kendi yapısında saklamada karmaşıklaştırmadan işlerini yapmaktadır. BSON
olarak verileri tutmaktadır.
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
MongoDB hangi dillerde çalışabilir ?
C++, C# / .NET, Erlang, Haskell, Java, JavaScript, Lisp,
Perl, PHP, Python, Ruby, Scala
C# İLE MONGODB VERİTABANI BAĞLANTISI
try{
var conn = new MongoDB.Mongo();
conn.Connect();
MessageBox.Show("Connected");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
İNSERT İŞLEMİ
public 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<Personel>();
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<Personel>();
p.personelAdi = "Duran";
coll.Save(p);
}
SELECT İŞLEMİ
public List<Personel> getPersolonels()
{
var mongo = new MongoDB.Mongo();
mongo.Connect();
var db = mongo.GetDatabase("DemoDB");
var personels = db.GetCollection<Personel>().FindAll().Documents;
return personels.ToList() ;
}

More Related Content

PDF
Nosql ve mongoDB
PDF
Mongo sunum
PPTX
NodeJS ve MongoDB
PPT
NoSQL Sunumu
PDF
AnkaraJUG Haziran 2013 - No SQL / Big Data
PDF
Nosql & MongoDB
PPTX
Azure Sanal Makineler
PPTX
Veri Depolama ve Diskler
Nosql ve mongoDB
Mongo sunum
NodeJS ve MongoDB
NoSQL Sunumu
AnkaraJUG Haziran 2013 - No SQL / Big Data
Nosql & MongoDB
Azure Sanal Makineler
Veri Depolama ve Diskler

What's hot (9)

PPTX
progressokulu.com Database Administration Slide 3
PPTX
No SQL & MongoDB Nedir?
PDF
OpenStack'te Ceph Kullanımı ve Performans Optimizasyonu
ODP
Ceph Türkiye 3.Meetup Ankara: Ceph Tasarımında Dikkat Edilecek Hususlar
PDF
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi
PDF
OpenStack Türkiye 14. Meetup Ankara: Yeni Başlayanlar için OpenStack
PDF
Ceph Türkiye 1.meetup Ankara
PDF
Ceph Türkiye 2.meetup İstanbul
PPTX
Mongodb-Adem
progressokulu.com Database Administration Slide 3
No SQL & MongoDB Nedir?
OpenStack'te Ceph Kullanımı ve Performans Optimizasyonu
Ceph Türkiye 3.Meetup Ankara: Ceph Tasarımında Dikkat Edilecek Hususlar
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi
OpenStack Türkiye 14. Meetup Ankara: Yeni Başlayanlar için OpenStack
Ceph Türkiye 1.meetup Ankara
Ceph Türkiye 2.meetup İstanbul
Mongodb-Adem
Ad

Viewers also liked (7)

PDF
9.manual no pavimentadas
PDF
Introducción Programática mobile
PPTX
DESCUBRA SUS HABILIDADES OCULTAS PARA SER EXITOSO
PDF
ABMHealthcare_ServiceLinesCollateral_HC ONLY
ODP
Presentation1 blogggggggggggg
PDF
Av de português maio - prova 2- 8º
9.manual no pavimentadas
Introducción Programática mobile
DESCUBRA SUS HABILIDADES OCULTAS PARA SER EXITOSO
ABMHealthcare_ServiceLinesCollateral_HC ONLY
Presentation1 blogggggggggggg
Av de português maio - prova 2- 8º
Ad

Similar to Mongodb Ödev- İnternet programcılığı- IP2-Vize 2 (20)

PPTX
MongoDB Overview
PDF
MongoDB ve C# Driver'ı
PDF
Loglari nerede saklayalım?
PDF
Ankara JUG Big Data Presentation
PPTX
Php veritabani
PPTX
MongoDB - NoSQL Overview
PPT
Kod günleri veritabnı
PPT
Kod günleri veritabnı
PDF
NoSQL Nedir MongoDB ile .NET Kardeşliği
PDF
veri tabanları . sql vs nosql
PDF
Riak ve RiakCS
PDF
Modern Frontend
PPT
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
PDF
Veri işleme üzerine, Hakan Sarıbıyık
PDF
React.js Web Programlama
PPTX
DP:900 Azure Data Fundamentals - Azure'da ilişkisel olmayan veriler-03
PPTX
yazılımmuh10.pptx
PDF
Hadoop @ devveri.com
PPTX
0_Intro_iPhone_iOS13.pptx0_Intro_iPhone_iOS13
PPTX
MongoDB Overview
MongoDB ve C# Driver'ı
Loglari nerede saklayalım?
Ankara JUG Big Data Presentation
Php veritabani
MongoDB - NoSQL Overview
Kod günleri veritabnı
Kod günleri veritabnı
NoSQL Nedir MongoDB ile .NET Kardeşliği
veri tabanları . sql vs nosql
Riak ve RiakCS
Modern Frontend
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Veri işleme üzerine, Hakan Sarıbıyık
React.js Web Programlama
DP:900 Azure Data Fundamentals - Azure'da ilişkisel olmayan veriler-03
yazılımmuh10.pptx
Hadoop @ devveri.com
0_Intro_iPhone_iOS13.pptx0_Intro_iPhone_iOS13

Mongodb Ödev- İnternet programcılığı- IP2-Vize 2

  • 1. İnternet Programcılığı 2 – vize 2 Gülin Daşdan - Demet Saçlı 13125027 - 13125012
  • 2. MongoDB Nedir? ◦MongoDB (“humongous”); ölçeklenebilir, doküman tabanlı, C++ ile geliştirilmiş açık kaynak, NoSQL veritabanı uygulamasıdır. ◦NoSQL, klasik ilişkisel veritabanı yönetim sistemlerinden (İVTYS) bir şekilde farklı olan veritabanı yönetim sistemleri için kullanılan bir kavramdır.
  • 3. ◦ Şubat 2009’da ilk olarak yayınlanmıştır. ◦ 32 ve 64 bitlik Windows, Mac OS X, Linux, Unix, BSD sistemlerde çalışmaktadır. ◦ Verilerini JSON tipli doküman yapılarında muhafaza eder. ◦ JSON (JavaScript Object Notation) : Yapı olarak XML’e çok benzemesine rağmen JSON, verileri daha küçük boyutlarda işler. Bu sebeple XML’den daha hızlıdır. XML yapısı gibi JSON yapısıda tüm platformlarda rahatlıkla çalışabilir. Kullanımı XML’e göre daha basit ve kullanışlıdır. ◦ BSON (Binary JavaScript Object Notation) : JSON tipli verilerin Encode edilmiş hallerini barındıran yapıdır. MongoDB, bu yapıyı uzak çağrı, ağ ve disk sistemlerinde kullanmaktadır.
  • 4. ◦ Yoğun veri barındıran büyük uygulamalar üzerinde yüksek performans ve düşük maliyeti sağlamak amacıyla tasarlanmıştır. ◦ Sağladığı sorgu desteği sayesinde ilişkisel yapılarda olduğu gibi belirlenen alanlara ait veriler rahatlıkla sorgulanabilmektedir. Ayrıca MongoDB belirlenen bu alanlara indeksleme yaparak performans konusunda ekstra avantaj sağlıyor. ◦ Sharding özelliği sayesinde, verileri sunucular arasında paylaştırılarak sunucuları veri yükünden kurtarıyor. Bu sayede performans kaybını engellemiş oluyor.
  • 5. ◦ MapReduce desteği sayesinde büyük ölçekli veriler de bile performans kaybı yaşamadan işlemler gerçekleştirebilir. ◦ Map : Tüm verileri sırayla parametre şeklinde alır Key-Value şeklinde dönüş yapar. ◦ Reduce : Map’in döndürdüğü Key-Value değerlerini yakalayarak üzerinde işlemler gerçekleştirmenize olanak sağlar. o Ölçeklendirmeyi sağlamak için Master-Slave Replication desteği sunuyor. o Master : Yazma işlemlerinin yapıldığı sunucudur. o Slave : Okuma işleminin yapıldığı ve ölçeklendirmenin sağlandığı sunucudur. Master sunucu herhangi bir şekilde devreden çıkarsa Slave sunuculardan birisi Master olarak atanır.
  • 6. MongoDB, özellikle hız gerektiren ve geleneksel ilişkisel veritabanlarının (rdbms) hantal ve yavaş kaldığı yapılarda kullanılmaktadır. Örnek kullanım alanları arasında: ◦ yüksek hacim/içerikli problemler ◦ analiz için veri saklanması ◦ MMORPG (Devasa çok oyunculu çevrim içi rol yapma oyunu)uygulamaları ◦ caching sistemleri ◦ web içerik yönetim sistemleri ◦ web yorum/etiket saklama ve yönetme
  • 7. MongoDB kullanılan girişimciler: ◦ MTV Networks ◦ Disney Interactive Media Group ◦ Shutterfly ◦ foursquare ◦ bit.ly ◦ The New York Times ◦ SourceForge ◦ CERN LHC ◦ The Guardian ◦ Barclays
  • 8. NoSQL ◦ NoSQL, ilişkisel olmayan bir veritabanıdır. SQL dili kullanmadan Map-Reduce kavramı ile sorgulama yapılır. Map ve Reduce, aslında fonksiyonel programlamada sıkça kullanılan iki fonksiyondur. Excel buna güzel bir örnektir. ◦ NoSQL, ilişkisel veri tabanındaki(RDBMS) tüm verileri farklı tablolar yerine tek bir dokümanda saklayan veri tabanı modelidir. Bu nedenle doküman tabanlı veri tabanı denmektedir. Daha iyi anlaşılabilmesi için örnek verecek olursak;
  • 9. ◦ İlişkisel veri tabanlarında kişi, il, ilçe ve mahalle/köy tablolarını düşünün. Buna göre elimizde birbirlerine foreign key/yabancı anahtar ile bağlı 4 tablo var. Örnek olarak ta Ahmet arkadaşımız 20 milyonluk İstanbul'da yaşayan azınlık 2 milyon İstanbulludan biri olduğunu ve Üsküdar Altunizade'de yaşadığını düşünebilirsin. Buna göre NoSQL veri tabanında tüm bilgiler tam da burada yazdığımız/düşündüğümüz gibi saklanacaktır. Nereden olduğunu öğrenmek için birleştiren sorgular falan yazmanıza gerek yoktur. RDBMS de bu bilgileri toplamak için ilgili tüm tabloları birleştirmek gerekiyor. Sql sonucu ise döküman tabanlı veriye benzeyecektir. Burada hemen akla şu gelmektedir. Döküman tabanlı veri tabanında doğal olarak milyonlarca insanda birbirinin tekrarı milyonlarca bilgi olacağı kesindir. Bu da veri tabanı boyutunun büyümesine neden olacaktır.
  • 11. MongoDB’nin sahip olduğu özellikler şöyledir: ◦ * Tutulan dokümanın her özelliğine, anahtarına(key) göre indeksleme sağlamaktadır. ◦ * Sık kullanılan okuma işlemi sorgularında yüksek performans göstermektedir. ◦ * Yedeklilik (High Availability) desteği bulunmaktadır. ◦ * Auto-Sharding, aynı verinin birden çok yerde işlenebilmesi, bulunması, yatay ölçeklendirme özelliği bulunmaktadır. ◦ * Zengin döküman tabanlı sorguları mevcuttur. ◦ * Hızlı bir veri yazma özelliği bulunmaktadır. ◦ * Map/Reduce (eşle/indirge) özelliği sayesinde esnek toplama ve veri işlemeyi sağlar. ◦ * Veriler kendi yapısında saklamada karmaşıklaştırmadan işlerini yapmaktadır. BSON olarak verileri tutmaktadır.
  • 14. MongoDB hangi dillerde çalışabilir ? C++, C# / .NET, Erlang, Haskell, Java, JavaScript, Lisp, Perl, PHP, Python, Ruby, Scala
  • 15. C# İLE MONGODB VERİTABANI BAĞLANTISI try{ var conn = new MongoDB.Mongo(); conn.Connect(); MessageBox.Show("Connected"); } catch (Exception ex) { MessageBox.Show(ex.Message); }
  • 16. İNSERT İŞLEMİ public 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<Personel>(); coll.Save(p); MessageBox.Show("kaydedildi"); } catch (Exception ex) { MessageBox.Show(ex.Message); }
  • 17. UPDATE İŞLEMİ public void update(Personel p){ var mongo = new MongoDB.Mongo(); mongo.Connect(); var db = mongo.GetDatabase("Demo"); var coll = db.GetCollection<Personel>(); p.personelAdi = "Duran"; coll.Save(p); }
  • 18. SELECT İŞLEMİ public List<Personel> getPersolonels() { var mongo = new MongoDB.Mongo(); mongo.Connect(); var db = mongo.GetDatabase("DemoDB"); var personels = db.GetCollection<Personel>().FindAll().Documents; return personels.ToList() ; }