SlideShare una empresa de Scribd logo
1 de 17
Sarper Aydoğan - TurkcellTeknolojiStaj 2010
Var olma Sebebi? Sürekli artan veriyi ölçeklendirme ->  Artan karmaşık çoğa – çok (manytomany) ilişkiler Çok öğeli sabit ilişkisel şemalar  yerine önceden belirlenmemiş ve genişletilebilir veriler veri şeması kullanıyor olması  Veri karmaşık “Joinler” kullanılmadan sadece  primarykey’e dayalı olarak tekrar tekrar çağırılıyorsa. No to SQL RDMS Performans Maaş Listesi Web Uygulamaları Not Only SQL Performans Sosyal Networkler Data Karmaşıklığı
Büyük datalar? Consistency JOIN Availability ilişkisel CAP PartitionTolerance Dağınık  ACID Atomicity, Consistency, Isolation, Durability Yatay ve Dikey ölçeklendirmeye izin veren (Yeni modüllerin ve datanın rahatça eklenebilmesi) Ölçeklendirme & Kaynaklar?
KeyValueStores Büyük data bloklarını tutmak ve ölçeklendirmek için kullanılır. A ,[object Object]
Database’in Değerden haberi yok
Memcached’den farklı olarak replication, versioning, locking ve sorting gibi özellikler sunar.B C D
Voldemort OpenSource (Linkedin Katkılarıyla) Veri otomatik, parçalar haline getirilip, parçalar birden çok servera dağıtılıyor. Concurreny problemleri “multi-versionconcurrencycontrol”  (MVCC) ile çözülüyor. Gelişmiş FailureHandling
DocumentDatabase Her veriyi bir doküman olarak saklar. KeyValueStore’la benzerlik gösterir. Farklı olarak Key- ValueStore’dan daha karmaşık yapıda veri saklar (Arrayler, objeler..) Multipleindex’lemeyi destekler RDBMS’den farklı olarak veri tabanı ve tablolar yok CouchDB, MongoDB {“_id” : “1″,“name” : “A”,“groupid” : “1″,} {“_id” : “2″,“name” : “B”,“groupid” : “1″,}
Key –ValueStore, Document DB ve RDBMS özelliklerini taşır Dinamik Query’ler Indexing Temel veri birimi -> Document ,[object Object]
Tanıdık veri Tipleri Kullanır -> Array, Binary, Boolean, DateTime, Null, String, EmbeddedObjectindexler ,[object Object],Dinamik Query’ler MapReduce
CouchDB & MongoDB Database -> Documents Concurrency -> MVCC Data Types -> string,number,boolean,array,object QueryMethod -> Map/reduce Database -> Collections(Tables)  -> Documents Concurreny -> Yerinde Güncelleme Data Types -> string, int, double, boolean, date, bytearray, object, array, others QueryMethod -> Dynamic; object-basedquerylanguage 
WideColumnStores GoogleBigTableClone Satır ve sütunlara dayanan ölçeklendirme Her key birden çok sütunla ilişkilenir Dağınık ve birden çok boyutludur Yarı ilişkisel yapıya sahiptir Ölçeklendirme, satırları ve sütunları parçalayarak meydana gelir Satırlar, primarykey’e bağlı olarak bölünür. Sütunlar, sütun gruplarına bağlı olarak bölünür.
HBase HadoopDatabase – büyük datasetlerine hızlı read/write HDFS (HadoopDistributes File System) üzerinde çalışır Concurrency - Locks BTree- Sıralama Hızlı HadoopMapReduce’lariyla başa çıkabilecek Hbase tabloları* Veri sıralanmış biçimde saklanır Real Time Query’ler için Optimization Twitter, Yahoo!** *MapReduce- Büyük datasetlerin çözülmesi **http://wiki.apache.org/hadoop/Hbase/PoweredBy
MapandReduce
Hbase & Cassandra Java tabanlı Concurrency - Locks BTree- Sıralama Hızlı Hadoop Dosyalamasını Kullanır Java tabanlı Concurrency - MVCC OrderedHashIndex- Btree’den daha yavaş Otomatik failuredetection ve fullrecovery inboxsearch Mevcut Klonlar BigTable ‘ıntransaction oranına ulaşamamıştır. GoogleMaps, Earth, Gmail, YouTube
GraphDatabase Veriyi tablolar yerine grafik yapıları (node, edge, property) üzerinde değerleri saklayan database çeşidi. Key – Value yapısına benzetilebilir. RDBMS –Static ve basit veriGraph – Dinamik ve karmaşık veri
Neo4j’deki tüm operasyonlar transactionlar üzerinden çalışır ve tüm transactionlarACID’i destekler. NodefirstNode = graphDb.createNode(); NodesecondNode = graphDb.createNode(); Relationshiprelationship = firstNode.createRelationshipTo( secondNode, MyRelationshipTypes.KNOWS ); firstNode.setProperty( "message", "Hello, " ); secondNode.setProperty( "message", "world!" ); relationship.setProperty( "message", "brave Neo4j"); brave Neo4j Hello World

Más contenido relacionado

Similar a No SQL

NoSQL Nedir MongoDB ile .NET Kardeşliği
NoSQL Nedir MongoDB ile .NET KardeşliğiNoSQL Nedir MongoDB ile .NET Kardeşliği
NoSQL Nedir MongoDB ile .NET Kardeşliğiİbrahim ATAY
 
veri tabanları . sql vs nosql
veri tabanları . sql vs nosqlveri tabanları . sql vs nosql
veri tabanları . sql vs nosqlOrçun Çolak
 
Loglari nerede saklayalım?
Loglari nerede saklayalım?Loglari nerede saklayalım?
Loglari nerede saklayalım?Ertugrul Akbas
 
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008mtcakmak
 
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
 
Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data AnalyticsMudur Alkan
 
ÖNCEL AKADEMİ: ÖZEL KONULAR
ÖNCEL AKADEMİ: ÖZEL KONULARÖNCEL AKADEMİ: ÖZEL KONULAR
ÖNCEL AKADEMİ: ÖZEL KONULARAli Osman Öncel
 
6.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V26.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V2Ermando
 

Similar a No SQL (9)

NoSQL Nedir MongoDB ile .NET Kardeşliği
NoSQL Nedir MongoDB ile .NET KardeşliğiNoSQL Nedir MongoDB ile .NET Kardeşliği
NoSQL Nedir MongoDB ile .NET Kardeşliği
 
veri tabanları . sql vs nosql
veri tabanları . sql vs nosqlveri tabanları . sql vs nosql
veri tabanları . sql vs nosql
 
Loglari nerede saklayalım?
Loglari nerede saklayalım?Loglari nerede saklayalım?
Loglari nerede saklayalım?
 
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008Kurumsal Yazılım Geliştirme ve Visual Studio 2008
Kurumsal Yazılım Geliştirme ve Visual Studio 2008
 
Excel Power Pivot
Excel Power Pivot Excel Power Pivot
Excel Power Pivot
 
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
 
Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data Analytics
 
ÖNCEL AKADEMİ: ÖZEL KONULAR
ÖNCEL AKADEMİ: ÖZEL KONULARÖNCEL AKADEMİ: ÖZEL KONULAR
ÖNCEL AKADEMİ: ÖZEL KONULAR
 
6.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V26.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V2
 

No SQL

  • 1. Sarper Aydoğan - TurkcellTeknolojiStaj 2010
  • 2. Var olma Sebebi? Sürekli artan veriyi ölçeklendirme -> Artan karmaşık çoğa – çok (manytomany) ilişkiler Çok öğeli sabit ilişkisel şemalar yerine önceden belirlenmemiş ve genişletilebilir veriler veri şeması kullanıyor olması Veri karmaşık “Joinler” kullanılmadan sadece primarykey’e dayalı olarak tekrar tekrar çağırılıyorsa. No to SQL RDMS Performans Maaş Listesi Web Uygulamaları Not Only SQL Performans Sosyal Networkler Data Karmaşıklığı
  • 3. Büyük datalar? Consistency JOIN Availability ilişkisel CAP PartitionTolerance Dağınık ACID Atomicity, Consistency, Isolation, Durability Yatay ve Dikey ölçeklendirmeye izin veren (Yeni modüllerin ve datanın rahatça eklenebilmesi) Ölçeklendirme & Kaynaklar?
  • 4.
  • 6. Memcached’den farklı olarak replication, versioning, locking ve sorting gibi özellikler sunar.B C D
  • 7. Voldemort OpenSource (Linkedin Katkılarıyla) Veri otomatik, parçalar haline getirilip, parçalar birden çok servera dağıtılıyor. Concurreny problemleri “multi-versionconcurrencycontrol” (MVCC) ile çözülüyor. Gelişmiş FailureHandling
  • 8. DocumentDatabase Her veriyi bir doküman olarak saklar. KeyValueStore’la benzerlik gösterir. Farklı olarak Key- ValueStore’dan daha karmaşık yapıda veri saklar (Arrayler, objeler..) Multipleindex’lemeyi destekler RDBMS’den farklı olarak veri tabanı ve tablolar yok CouchDB, MongoDB {“_id” : “1″,“name” : “A”,“groupid” : “1″,} {“_id” : “2″,“name” : “B”,“groupid” : “1″,}
  • 9.
  • 10.
  • 11. CouchDB & MongoDB Database -> Documents Concurrency -> MVCC Data Types -> string,number,boolean,array,object QueryMethod -> Map/reduce Database -> Collections(Tables) -> Documents Concurreny -> Yerinde Güncelleme Data Types -> string, int, double, boolean, date, bytearray, object, array, others QueryMethod -> Dynamic; object-basedquerylanguage 
  • 12. WideColumnStores GoogleBigTableClone Satır ve sütunlara dayanan ölçeklendirme Her key birden çok sütunla ilişkilenir Dağınık ve birden çok boyutludur Yarı ilişkisel yapıya sahiptir Ölçeklendirme, satırları ve sütunları parçalayarak meydana gelir Satırlar, primarykey’e bağlı olarak bölünür. Sütunlar, sütun gruplarına bağlı olarak bölünür.
  • 13. HBase HadoopDatabase – büyük datasetlerine hızlı read/write HDFS (HadoopDistributes File System) üzerinde çalışır Concurrency - Locks BTree- Sıralama Hızlı HadoopMapReduce’lariyla başa çıkabilecek Hbase tabloları* Veri sıralanmış biçimde saklanır Real Time Query’ler için Optimization Twitter, Yahoo!** *MapReduce- Büyük datasetlerin çözülmesi **http://wiki.apache.org/hadoop/Hbase/PoweredBy
  • 15. Hbase & Cassandra Java tabanlı Concurrency - Locks BTree- Sıralama Hızlı Hadoop Dosyalamasını Kullanır Java tabanlı Concurrency - MVCC OrderedHashIndex- Btree’den daha yavaş Otomatik failuredetection ve fullrecovery inboxsearch Mevcut Klonlar BigTable ‘ıntransaction oranına ulaşamamıştır. GoogleMaps, Earth, Gmail, YouTube
  • 16. GraphDatabase Veriyi tablolar yerine grafik yapıları (node, edge, property) üzerinde değerleri saklayan database çeşidi. Key – Value yapısına benzetilebilir. RDBMS –Static ve basit veriGraph – Dinamik ve karmaşık veri
  • 17. Neo4j’deki tüm operasyonlar transactionlar üzerinden çalışır ve tüm transactionlarACID’i destekler. NodefirstNode = graphDb.createNode(); NodesecondNode = graphDb.createNode(); Relationshiprelationship = firstNode.createRelationshipTo( secondNode, MyRelationshipTypes.KNOWS ); firstNode.setProperty( "message", "Hello, " ); secondNode.setProperty( "message", "world!" ); relationship.setProperty( "message", "brave Neo4j"); brave Neo4j Hello World
  • 18.
  • 19. NoSQL Avantajları OLTP Projelerinde hızlı read/write’a olanak vermesi Kolay ölçeklendirebilme ve dağıtım yapabilme İlişiseldb’lere göre bazı projelerde kolay implementation sağlaması
  • 20. NoSQL Dezavantajları Data Integrity -> Uygulama Katmanına Dayalı İlişkisel DB’ler kadar mature sistemler değiller Standard bir dilin olmaması