SlideShare une entreprise Scribd logo
1  sur  20
SEVDA EREN
 Not Only SQL
 RDBMS’e alternatif olarak ortaya çıkan, aslen internetin gün geçtikçe artan
verisini depolayabilmek ve yüksek trafiğe sahip sistemlerin ihtiyaçlarına cevap
verebilmek amacıyla ortaya çıkmış yatay olarak ölçeklendirilebilen sistemlere
denir.
 RDBMS’ler işlem (transaction) tabanlı çalışan sistemlerdir. Bu işlemlerin stabil
çalışması ve veri bütünlüğü için ACID (Atomicity, Consistency, Isolation,
Durability) kuralları bulunur. NoSQL sistemleri bu kuralların tamamına uymaz.
 Okuma yazma performansı olarak RDBMS’lerden daha performanslı olabilirler.
 Yatay olarak genişletilebilirler
 Binlerce sunucu bir arada küme olarak çalışabilir ve çok büyük veri üzerinde
işlem yapabilirler.
 Esnek yapı
 Çoğu açık kaynak ve ücretsiz, ucuz maliyet
 RDBMS’de yapılan uygulamaların NoSql sistemlerine taşınması zahmetlidir.
 Transaction kavramı bulunmadığından veri kaybı söz konusu olabilir.
 Veri güvenliği konusunda RDBMS kadar gelişmiş değildir.
 Doküman ve profesyonel destek konusundan eksiklikleri olabilir.
 MongoDB, doküman tabanlı, C++ ile geliştirilen bir NoSql veritabanıdır. Veriler
BinaryJson(BSON) türünde dokümanlarda tutulur.
 MongoDB’nin en önemli özelliği, ilişkisel modeli (relational model)
kullanmamasıdır.
 Tablo yoktur, tasarım yoktur, ilişki yoktur.
 Cross-platformdur
 Açık kaynak kodlu
 Dinamik veri yapısı
 Hızlı okuma ve yazma
 Büyük veri ile çalışabilme
 Belgeye dayalı modelde, ilişkisel modelin “satır” (row) kavramı yerine, çok daha
esnek bir yapı olan “belge” (document) kavramı kullanılmaktadır. Gömülü
belgelere (embedded documents) ve dizilere (arrays) müsaade edilmesi ile, çok
karmaşık hiyerarşik yapıları tek bir kayıt (record) içinde saklamak olanaklı hale
gelmiştir.
 Join yok!!
 Transaction yok!!
 Relational database kavramından farklı olarak artık mongoda nesne mantığında
tasarım düşünmemiz gerekiyor ve mongodbde denormalize yapılarla çalışmaya
alışmamız gerekiyor.
{
name:Sevda,
addresses : [
{ street: ‘Esenler’, city: ‘İstanbul’ },
{ street: ‘Kızılay’, city: ‘Ankara }
]
}
 Buna örnek olarak bir ürün ve bu ürüne ait yedek parçalar verebiliriz.Burada
parçalar çok fazla bilgisi olacağı ve parçaların değişkenlikleri yani updatelerinin
de çok olacağını düşünerek relational databaselerdeki gibi üründe parçaların
idlerini tutup programlama anında gerekli dataları çekip birleştirme yapabiliriz.
{
name : ‘product A’,
manufacturer : ‘ABC Company’,
catalog_number: 1234,
parts : [
ObjectID(‘AAAA’),
ObjectID(‘F17C’),
ObjectID(‘D2AA’),
]
}
{
name : ‘product A’,
manufacturer : ‘ABC Company’,
catalog_number: 1234,
parts : [
{ id : ObjectID(‘AAAA’), name : ‘Parça1′},
{ id: ObjectID(‘F17C’), name : ‘Parça2′ },
{ id: ObjectID(‘D2AA’), name : ‘Parça3′ }
]
}
Burada ürünü gösterceğimiz sayfada tek bir nesneyi çekerek ürüne ait yedek parça adlarını da
listeyebiliriz
 Denormalize yapılararı büyük update maliyetleri yoksa tercih
etmeliyiz.Yukarıdaki örnekte olduğu gibi yedek parça isimleri çok fazla
değişmeyeceğini var sayıyoruz.
 Bağlantılı kayıt sayısı azsa ve bunlarda başka yerde kullanmayacaksa iç içe
doküman yapısında saklayabiliyoruz.Örnek kişiye ait adresler
 Eğer nesneye tek başına sürekli erişim ihtiyacı varsa embedded şekilde
kullanmamaya çalışın
 Bloglar (Post, Comment, Like)
 Üye Bilgileri (Kullanici > Kullanici Detayları)
 Log datası saklamak
 Coğrafi bilgi saklamak
 Zaman içinde yapısı değişecek uygulamalar
 Big data projeleri
 Çoklu sunucu gerektirebilecek dağıtık projeler
 https://www.mongodb.com
 http://www.devveri.com
 https://www.martinfowler.com/
 https://gelecegiyazanlar.turkcell.com.tr
 http://www.academia.edu/8002383/MongoDB
 http://bilgehanyildiz.com/2015/04/13/mongodb-giris/
 https://blog.michaelckennedy.net/2010/04/29/mongodb-vs-sql-server-2008-
performance-showdown/
 https://www.tutorialspoint.com/mongodb/mongodb_data_modeling.htm

Contenu connexe

Similaire à No SQL & MongoDB Nedir?

İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08Cihan Özhan
 
Veri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkVeri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkHakan Sarıbıyık
 
veri tabanları . sql vs nosql
veri tabanları . sql vs nosqlveri tabanları . sql vs nosql
veri tabanları . sql vs nosqlOrçun Çolak
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21Cihan Özhan
 
MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL OverviewCihan Özhan
 
Windows Azure ile Cloud Computing Uygulamaları - 7
Windows Azure ile Cloud Computing Uygulamaları - 7Windows Azure ile Cloud Computing Uygulamaları - 7
Windows Azure ile Cloud Computing Uygulamaları - 7İbrahim ATAY
 
İleri Seviye T-SQL Programlama - Chapter 01
İleri Seviye T-SQL Programlama - Chapter 01İleri Seviye T-SQL Programlama - Chapter 01
İleri Seviye T-SQL Programlama - Chapter 01Cihan Özhan
 
DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02
DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02
DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02Önder Değer
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data PresentationSerkan Özal
 
Kod günleri veritabnı
Kod günleri veritabnıKod günleri veritabnı
Kod günleri veritabnıMustafa Tepe
 
DP:900 Azure Data Fundamentals - Azure'da ilişkisel olmayan veriler-03
DP:900 Azure Data Fundamentals - Azure'da ilişkisel olmayan veriler-03DP:900 Azure Data Fundamentals - Azure'da ilişkisel olmayan veriler-03
DP:900 Azure Data Fundamentals - Azure'da ilişkisel olmayan veriler-03Önder Değer
 
Can the windows azure platform improve your business (isv) türkçe
Can the windows azure platform improve your business (isv) türkçeCan the windows azure platform improve your business (isv) türkçe
Can the windows azure platform improve your business (isv) türkçeEren Caner
 
Windows Azure İş Çıtanızı Yükseltebilir mi
Windows Azure İş Çıtanızı Yükseltebilir miWindows Azure İş Çıtanızı Yükseltebilir mi
Windows Azure İş Çıtanızı Yükseltebilir miEren Caner
 

Similaire à No SQL & MongoDB Nedir? (20)

İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08İleri Seviye T-SQL Programlama - Chapter 08
İleri Seviye T-SQL Programlama - Chapter 08
 
Veri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan SarıbıyıkVeri işleme üzerine, Hakan Sarıbıyık
Veri işleme üzerine, Hakan Sarıbıyık
 
veri tabanları . sql vs nosql
veri tabanları . sql vs nosqlveri tabanları . sql vs nosql
veri tabanları . sql vs nosql
 
Php veritabani
Php veritabaniPhp veritabani
Php veritabani
 
İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21İleri Seviye T-SQL Programlama - Chapter 21
İleri Seviye T-SQL Programlama - Chapter 21
 
MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL Overview
 
Windows Azure ile Cloud Computing Uygulamaları - 7
Windows Azure ile Cloud Computing Uygulamaları - 7Windows Azure ile Cloud Computing Uygulamaları - 7
Windows Azure ile Cloud Computing Uygulamaları - 7
 
İleri Seviye T-SQL Programlama - Chapter 01
İleri Seviye T-SQL Programlama - Chapter 01İleri Seviye T-SQL Programlama - Chapter 01
İleri Seviye T-SQL Programlama - Chapter 01
 
DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02
DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02
DP:900 Azure Data Fundamentals - Azure'da ilişkisel veriler-02
 
Nosql ve mongoDB
Nosql ve mongoDBNosql ve mongoDB
Nosql ve mongoDB
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data Presentation
 
Kod günleri veritabnı
Kod günleri veritabnıKod günleri veritabnı
Kod günleri veritabnı
 
Kod günleri veritabnı
Kod günleri veritabnıKod günleri veritabnı
Kod günleri veritabnı
 
MongoDB ve C# Driver'ı
MongoDB ve C# Driver'ıMongoDB ve C# Driver'ı
MongoDB ve C# Driver'ı
 
Hayrettin kunuk
Hayrettin kunukHayrettin kunuk
Hayrettin kunuk
 
sunu (Asp-2)
sunu (Asp-2)sunu (Asp-2)
sunu (Asp-2)
 
Nosql & MongoDB
Nosql & MongoDBNosql & MongoDB
Nosql & MongoDB
 
DP:900 Azure Data Fundamentals - Azure'da ilişkisel olmayan veriler-03
DP:900 Azure Data Fundamentals - Azure'da ilişkisel olmayan veriler-03DP:900 Azure Data Fundamentals - Azure'da ilişkisel olmayan veriler-03
DP:900 Azure Data Fundamentals - Azure'da ilişkisel olmayan veriler-03
 
Can the windows azure platform improve your business (isv) türkçe
Can the windows azure platform improve your business (isv) türkçeCan the windows azure platform improve your business (isv) türkçe
Can the windows azure platform improve your business (isv) türkçe
 
Windows Azure İş Çıtanızı Yükseltebilir mi
Windows Azure İş Çıtanızı Yükseltebilir miWindows Azure İş Çıtanızı Yükseltebilir mi
Windows Azure İş Çıtanızı Yükseltebilir mi
 

Plus de Sistek Yazılım

Plus de Sistek Yazılım (11)

Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
 
Javascript Today
Javascript TodayJavascript Today
Javascript Today
 
Amazon web service
Amazon web serviceAmazon web service
Amazon web service
 
Dekleratif Transaction Yönetimi
Dekleratif Transaction YönetimiDekleratif Transaction Yönetimi
Dekleratif Transaction Yönetimi
 
Dashboard Kit
Dashboard KitDashboard Kit
Dashboard Kit
 
So Bot
So BotSo Bot
So Bot
 
Be Agile
Be AgileBe Agile
Be Agile
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Servlet Container Nedir?
Servlet Container Nedir?Servlet Container Nedir?
Servlet Container Nedir?
 
Hybrid Mobile Applications
Hybrid Mobile ApplicationsHybrid Mobile Applications
Hybrid Mobile Applications
 
Spring uygulamaların exception handling yönetimi
Spring uygulamaların exception handling yönetimiSpring uygulamaların exception handling yönetimi
Spring uygulamaların exception handling yönetimi
 

No SQL & MongoDB Nedir?

  • 2.  Not Only SQL  RDBMS’e alternatif olarak ortaya çıkan, aslen internetin gün geçtikçe artan verisini depolayabilmek ve yüksek trafiğe sahip sistemlerin ihtiyaçlarına cevap verebilmek amacıyla ortaya çıkmış yatay olarak ölçeklendirilebilen sistemlere denir.  RDBMS’ler işlem (transaction) tabanlı çalışan sistemlerdir. Bu işlemlerin stabil çalışması ve veri bütünlüğü için ACID (Atomicity, Consistency, Isolation, Durability) kuralları bulunur. NoSQL sistemleri bu kuralların tamamına uymaz.
  • 3.
  • 4.  Okuma yazma performansı olarak RDBMS’lerden daha performanslı olabilirler.  Yatay olarak genişletilebilirler  Binlerce sunucu bir arada küme olarak çalışabilir ve çok büyük veri üzerinde işlem yapabilirler.  Esnek yapı  Çoğu açık kaynak ve ücretsiz, ucuz maliyet
  • 5.  RDBMS’de yapılan uygulamaların NoSql sistemlerine taşınması zahmetlidir.  Transaction kavramı bulunmadığından veri kaybı söz konusu olabilir.  Veri güvenliği konusunda RDBMS kadar gelişmiş değildir.  Doküman ve profesyonel destek konusundan eksiklikleri olabilir.
  • 6.
  • 7.  MongoDB, doküman tabanlı, C++ ile geliştirilen bir NoSql veritabanıdır. Veriler BinaryJson(BSON) türünde dokümanlarda tutulur.  MongoDB’nin en önemli özelliği, ilişkisel modeli (relational model) kullanmamasıdır.  Tablo yoktur, tasarım yoktur, ilişki yoktur.  Cross-platformdur  Açık kaynak kodlu  Dinamik veri yapısı  Hızlı okuma ve yazma  Büyük veri ile çalışabilme
  • 8.  Belgeye dayalı modelde, ilişkisel modelin “satır” (row) kavramı yerine, çok daha esnek bir yapı olan “belge” (document) kavramı kullanılmaktadır. Gömülü belgelere (embedded documents) ve dizilere (arrays) müsaade edilmesi ile, çok karmaşık hiyerarşik yapıları tek bir kayıt (record) içinde saklamak olanaklı hale gelmiştir.  Join yok!!  Transaction yok!!
  • 9.
  • 10.  Relational database kavramından farklı olarak artık mongoda nesne mantığında tasarım düşünmemiz gerekiyor ve mongodbde denormalize yapılarla çalışmaya alışmamız gerekiyor. { name:Sevda, addresses : [ { street: ‘Esenler’, city: ‘İstanbul’ }, { street: ‘Kızılay’, city: ‘Ankara } ] }
  • 11.  Buna örnek olarak bir ürün ve bu ürüne ait yedek parçalar verebiliriz.Burada parçalar çok fazla bilgisi olacağı ve parçaların değişkenlikleri yani updatelerinin de çok olacağını düşünerek relational databaselerdeki gibi üründe parçaların idlerini tutup programlama anında gerekli dataları çekip birleştirme yapabiliriz.
  • 12. { name : ‘product A’, manufacturer : ‘ABC Company’, catalog_number: 1234, parts : [ ObjectID(‘AAAA’), ObjectID(‘F17C’), ObjectID(‘D2AA’), ] }
  • 13. { name : ‘product A’, manufacturer : ‘ABC Company’, catalog_number: 1234, parts : [ { id : ObjectID(‘AAAA’), name : ‘Parça1′}, { id: ObjectID(‘F17C’), name : ‘Parça2′ }, { id: ObjectID(‘D2AA’), name : ‘Parça3′ } ] } Burada ürünü gösterceğimiz sayfada tek bir nesneyi çekerek ürüne ait yedek parça adlarını da listeyebiliriz
  • 14.  Denormalize yapılararı büyük update maliyetleri yoksa tercih etmeliyiz.Yukarıdaki örnekte olduğu gibi yedek parça isimleri çok fazla değişmeyeceğini var sayıyoruz.  Bağlantılı kayıt sayısı azsa ve bunlarda başka yerde kullanmayacaksa iç içe doküman yapısında saklayabiliyoruz.Örnek kişiye ait adresler  Eğer nesneye tek başına sürekli erişim ihtiyacı varsa embedded şekilde kullanmamaya çalışın
  • 15.
  • 16.  Bloglar (Post, Comment, Like)  Üye Bilgileri (Kullanici > Kullanici Detayları)  Log datası saklamak  Coğrafi bilgi saklamak  Zaman içinde yapısı değişecek uygulamalar  Big data projeleri  Çoklu sunucu gerektirebilecek dağıtık projeler
  • 17.
  • 18.
  • 19.
  • 20.  https://www.mongodb.com  http://www.devveri.com  https://www.martinfowler.com/  https://gelecegiyazanlar.turkcell.com.tr  http://www.academia.edu/8002383/MongoDB  http://bilgehanyildiz.com/2015/04/13/mongodb-giris/  https://blog.michaelckennedy.net/2010/04/29/mongodb-vs-sql-server-2008- performance-showdown/  https://www.tutorialspoint.com/mongodb/mongodb_data_modeling.htm