SlideShare a Scribd company logo
1 of 21
NoSQL
NoSQL Databases
Cihan Özhan | DeepLab.co | Founder, AI Engineer, Mentor
NoSQL Nedir?
• NoSQL, temelde büyük, yapılandırılmamış veri kümelerini yönetmek için kullanılan bir veritabanıdır.
• NoSQL, SQL benzeri sorgu dillerini de destekleyebileceklerini vurgulamak için "Yalnızca SQL" olarak da
adlandırılır.
• NoSQL veritabanları, büyük verilerde ve gerçek zamanlı web uygulamalarında giderek daha fazla
kullanılmaktadır.
• NoSQL, birden çok sanal sunucuda kullanıma sunulan çok büyük bir veri kümesine erişmesi ve bunları
analiz etmesi gereken kurumsal bir uygulamada hayati bir rol oynar.
• NoSQL veritabanı, İlişkisel Veritabanlarında görülen Performans, Ölçeklenebilirlik, Veri Modelleme ve
Dağıtım sınırlamalarının üstesinden gelmek için tasarlanmıştır.
Motivasyon
• Tasarım Sadeliği
• Yatay Ölçeklendirme (Horizontal Scaling)
• Erişilebilirlik
Veritabanı Tarihi
• 1970'lerin İlişkisel veritabanları icat edildi.
– Pahalı Depolama
– Normalleştirilmiş Veriler
• 1980'lerin RDBMS'si ticarileştirildi.
– Client/Server Model
– SQL’ın standart olması
• 1990’larda birşeyler değişmeye başlar.
– Client/Server 3-Tier Mimari
– İnternet ve Web’in Yükselişi
• 2000’ler Web 2.0
– Sosyal media ve E-Ticaret’in yükselişi!
– Hardware fiyatlarındaki sürekli düşüş.
Yeni Bir Veritabanı Türü İhtiyacı
• Yatay Ölçeklendirme
• Hızlı Geliştirme
• Esnek Veri Modeli
• Düşük Maliyet
– Düşük Sunucu Maliyeti
– Düşük Yönetim Maliyeti
NoSQL Özellikleri
• Yüksek ölçeklenebilirlik
• SQL Sınırlamalarının Önüne Geçmek
• Büyük Veri Hacimleri
• Yüksek Veri Ölçeklendirme
• ACID özelliklerine ihtiyaç duymaz
• Asenkron INSERT ve UPDATE
• Büyük Veri Hacimleri
NoSQL Veritabanı Türleri
NoSQL Veritabanı Türleri
• Key-Value
– It uses a hash table in which there exists a unique key and a pointer to a particular item of data.
– There can be identical keys in different buckets.
• Örn : Redis and Riak
• Column-Oriented
– Veriler, veri satırları yerine veri sütunlarında gruplanmış hücrelerde depolanır.
– Çalışma zamanında oluşturulabilen neredeyse sınırsız sayıda sütun içerebilir.
• Örn : Hbase and Cassandra
• Document-Oriented
– Belge odaklı bilgileri depolamak, almak ve yönetmek için tasarlanmıştır.
– It pair each key with a complex data structure known as a document.
• Örn : CouchDB and MonoDB
• Graph Store
– Sosyal bağlantılar gibi ağ hakkındaki bilgileri depolamak için kullanılır.
– Veriler sosyal ilişkiler, toplu taşıma bağlantıları, yol haritaları vb. Olabilir.
NoSQL Faydaları
• Sorgu dilini destekler.
• Yatay ölçeklenebilirlik sağlar.
• Yüksek ölçeklenebilirlik sağlar.
• Elastik Ölçeklendirme
• JOIN’lerden Kaçınmak
• Verinin Şemalara Uymasına Gerek Yok
• Hızlı ve Kolay Geliştirme
• Ağ Sorunlarıyla Başa Çıkma Kabiliyeti
• Düşük Gecikme ve Yüksek Performans
• NoSQL Sunucularının Bakımı Daha Ucuz ve Kolaydır
• Entegre Cache Kabiliyeti
Ne Zaman NoSQL?
• Büyük miktarda veriyi saklamak ve almak istediğinizde.
• Sakladığınız veriler arasındaki ilişki o kadar da önemli değilse.
• Veriler yapılandırılmaz ve zamanla değişmez.
• Constraint ve JOIN desteği veritabanı düzeyinde gerekli değilse.
• Veriler sürekli olarak büyüyor ve verileri işlemek için veritabanını düzenli olarak ölçeklendirmeniz
gerekiyorsa.
ACID Özellikleri
• Çoğunlukla RDBMS’ler, İ.V. Yönetimi ve veri işleme için standart bir bilgisayar dili olan SQL'i kullanır.
• İlişkisel veritabanları ACID özelliklerini takip eder:
– Atomicity, Consistency, Isolation, Durability
– Atomiklik, Tutarlılık, İzolasyon, Dayanıklılık
• ACID, veritabanı işlemlerinin güvenilir şekilde işlenmesini garanti eden bir dizi özelliktir.
– Atomicity
• Atomiklik özelliği, işlemin atomik olduğunu tanımlar. Atomik bir işlem ya tamamen
tamamlandı ya da hiç başlamadı.
– Consistency
• Bir örnekteki değerlerde yapılan herhangi bir değişikliğin, aynı örnekteki diğer değerlerdeki
değişikliklerle tutarlı olmasını sağlar.
– Isolation
• Eşzamanlı işlemler olduğunda gereklidir. Paylaşılan nesnelere erişen birden fazla kullanıcının
paylaşılması gibi aynı anda gerçekleşen işlemler.
– Durability
• Bir işlem, başarılı bir şekilde tamamlandığında, sistemde yaptığı tüm değişikliklerin kalıcı
olması açısından dayanıklıdır.
RDBMS’in Eksiklikleri
• Yapılandırılmış veriler için kullanışlıdır.
• Veri Patlaması
• JOIN’lerin Ek Yükü
• İlişkileri(Relationships) yönetmek zor.
CAP Theorem
• Brewer’s Teoremi olarak da bilinen CAP Teoremi, dağıtık bir bilgisayar sisteminin aşağıdaki garantilerin
tümünü aynı anda sağlamasının imkansız olduğunu belirtir:
– Consistency : Tüm düğümler aynı verileri aynı anda görür.
– Availability : Her istek, başarılı olup olmadığı hakkında bir yanıt alır.
– Partition-Tolerance : The system continues to operate even if there is a partition between
two nodes.
• Temelde bunlardan 2'sini seçebilirsiniz ama 3'ünü birden yapamazsınız.
CAP Theorem
(CAP Teoreminin Kombinasyonları)
• CA : Tek site kümesi, tüm düğümler her zaman ACID ile CA'ya odaklanır
• AP : Some data may be inaccurate BASE focus on AP.
• CP : Bazı verilere erişilemeyebilir.
BASE Properties
• BASE kısaltması, genellikle NoSQL veritabanları olmak üzere belirli veritabanlarının özelliklerini
tanımlamak için kullanılır.
• Genellikle ACID'e bir alternatiftir.
• BASE sistemi, daha fazla Availability ve Partition toleransına sahip olmak için tutarlılıktan vazgeçer.
• BASE consists of three principles:
– Basic Availability
• NoSQL veritabanı yaklaşımı, birden çok arıza durumunda bile verilerin kullanılabilirliğine
odaklanır.
– Soft-State
• It indicates that the state of the system may change over time, even without input.
• Bunun nedeni nihai tutarlılık modelidir.
– Evantual Consistency
• It indicates that the system will become consistent over time, given that the system doesn't
receive input during that time.
NoSQL vs. RDBMS
NoSQL vs. RDBMS
• Relationship ve JOIN içermez.
• Çok daha düşük bakım maliyeti.
• ACID yerine BASE kullanır.
• Yatay ölçekleme sağlar.(Horizontal Scaling)
• Şema içermez(Schemaless)
NoSQL vs. RDBMS
• Kaynak maliyetli JOIN ve Relationship’ler kullanır.
• Yüksek yönetim maliyeti
• ACID özelliklerini kullanır
• Dikey Ölçekleme(Vertical Scaling)
• Tanımlanmış özniteliklere sahip yapı gerektirir.
Neden NoSQL Kullanmalı?
• Eğer ölçeklenebilirlik bir endişe ise…
• Daha sade veri modeli(JOIN’siz)
• Çok düşük bir bütçeyle uygulama ve ölçeklenmiş olması gerekiyor ise…
• Gerçek Zamanlı Analizler
• Dağıtık Depolama
• Esneklik sağlar
• Hızlı geliştirme sağlar
• Redundancy/Reliability
• Streaming/Volume

More Related Content

What's hot

Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQLRTigger
 
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...Bruno Dadalt Zambiazi
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
Overview of big data in cloud computing
Overview of big data in cloud computingOverview of big data in cloud computing
Overview of big data in cloud computingViet-Trung TRAN
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...
Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...
Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...Amazon Web Services
 
Cassandra an overview
Cassandra an overviewCassandra an overview
Cassandra an overviewPritamKathar
 
Module 2 - Datalake
Module 2 - DatalakeModule 2 - Datalake
Module 2 - DatalakeLam Le
 
[Retail & CPG Day 2019] 마켓컬리 서비스 AWS 이관 및 최적화 여정 - 임상석, 마켓컬리 개발 리더
[Retail & CPG Day 2019] 마켓컬리 서비스 AWS 이관 및 최적화 여정 - 임상석, 마켓컬리 개발 리더[Retail & CPG Day 2019] 마켓컬리 서비스 AWS 이관 및 최적화 여정 - 임상석, 마켓컬리 개발 리더
[Retail & CPG Day 2019] 마켓컬리 서비스 AWS 이관 및 최적화 여정 - 임상석, 마켓컬리 개발 리더Amazon Web Services Korea
 
Introduction to Cassandra
Introduction to CassandraIntroduction to Cassandra
Introduction to CassandraGokhan Atil
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlYutuki r
 
MongoDB vs. Postgres Benchmarks
MongoDB vs. Postgres Benchmarks MongoDB vs. Postgres Benchmarks
MongoDB vs. Postgres Benchmarks EDB
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) hamaken
 
Introduction to AWS Database Services
Introduction to AWS Database ServicesIntroduction to AWS Database Services
Introduction to AWS Database ServicesAmazon Web Services
 
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSING
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSINGSKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSING
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSINGSkillwise Group
 

What's hot (20)

Sql vs NoSQL
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQL
 
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
Análise de ferramentas para gestão de regras de negócio em sistemas de inform...
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
Technical overview of Azure Cosmos DB
Technical overview of Azure Cosmos DBTechnical overview of Azure Cosmos DB
Technical overview of Azure Cosmos DB
 
Overview of big data in cloud computing
Overview of big data in cloud computingOverview of big data in cloud computing
Overview of big data in cloud computing
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
Introduction to redis
Introduction to redisIntroduction to redis
Introduction to redis
 
Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...
Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...
Easy Analytics on AWS with Amazon Redshift, Amazon QuickSight, and Amazon Mac...
 
Cassandra an overview
Cassandra an overviewCassandra an overview
Cassandra an overview
 
Module 2 - Datalake
Module 2 - DatalakeModule 2 - Datalake
Module 2 - Datalake
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
 
[Retail & CPG Day 2019] 마켓컬리 서비스 AWS 이관 및 최적화 여정 - 임상석, 마켓컬리 개발 리더
[Retail & CPG Day 2019] 마켓컬리 서비스 AWS 이관 및 최적화 여정 - 임상석, 마켓컬리 개발 리더[Retail & CPG Day 2019] 마켓컬리 서비스 AWS 이관 및 최적화 여정 - 임상석, 마켓컬리 개발 리더
[Retail & CPG Day 2019] 마켓컬리 서비스 AWS 이관 및 최적화 여정 - 임상석, 마켓컬리 개발 리더
 
Introduction to Cassandra
Introduction to CassandraIntroduction to Cassandra
Introduction to Cassandra
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
 
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知るMapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
 
MongoDB vs. Postgres Benchmarks
MongoDB vs. Postgres Benchmarks MongoDB vs. Postgres Benchmarks
MongoDB vs. Postgres Benchmarks
 
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
 
Introduction to AWS Database Services
Introduction to AWS Database ServicesIntroduction to AWS Database Services
Introduction to AWS Database Services
 
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSING
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSINGSKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSING
SKILLWISE-SSIS DESIGN PATTERN FOR DATA WAREHOUSING
 

Similar to MongoDB - NoSQL Overview

veri tabanları . sql vs nosql
veri tabanları . sql vs nosqlveri tabanları . sql vs nosql
veri tabanları . sql vs nosqlOrçun Çolak
 
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2gulindasdan
 
Kod günleri veritabnı
Kod günleri veritabnıKod günleri veritabnı
Kod günleri veritabnıMustafa Tepe
 
Loglari nerede saklayalım?
Loglari nerede saklayalım?Loglari nerede saklayalım?
Loglari nerede saklayalım?Ertugrul Akbas
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19Cihan Özhan
 
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
 
6.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V26.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V2Ermando
 
Exchange Server 2010 Database Availability Group(DAG)
Exchange Server 2010 Database Availability Group(DAG)Exchange Server 2010 Database Availability Group(DAG)
Exchange Server 2010 Database Availability Group(DAG)Serhad MAKBULOĞLU, MBA
 
Dağıtık Veritabanı Sistemleri
Dağıtık Veritabanı SistemleriDağıtık Veritabanı Sistemleri
Dağıtık Veritabanı Sistemleriİsmail ŞEN
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data PresentationSerkan Özal
 
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİİŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİAbdullah Cihan
 
Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data AnalyticsMudur Alkan
 

Similar to MongoDB - NoSQL Overview (20)

veri tabanları . sql vs nosql
veri tabanları . sql vs nosqlveri tabanları . sql vs nosql
veri tabanları . sql vs nosql
 
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
Mongodb Ödev- İnternet programcılığı- IP2-Vize 2
 
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ı
 
Loglari nerede saklayalım?
Loglari nerede saklayalım?Loglari nerede saklayalım?
Loglari nerede saklayalım?
 
İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19İleri Seviye T-SQL Programlama - Chapter 19
İleri Seviye T-SQL Programlama - Chapter 19
 
No SQL & MongoDB Nedir?
No SQL & MongoDB Nedir?No SQL & MongoDB Nedir?
No SQL & MongoDB Nedir?
 
Linkle mimari
Linkle mimariLinkle mimari
Linkle mimari
 
NoSQL Sunumu
NoSQL SunumuNoSQL Sunumu
NoSQL Sunumu
 
Nosql ve mongoDB
Nosql ve mongoDBNosql ve mongoDB
Nosql ve mongoDB
 
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
 
6.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V26.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V2
 
Nosql & MongoDB
Nosql & MongoDBNosql & MongoDB
Nosql & MongoDB
 
Exchange Server 2010 Database Availability Group(DAG)
Exchange Server 2010 Database Availability Group(DAG)Exchange Server 2010 Database Availability Group(DAG)
Exchange Server 2010 Database Availability Group(DAG)
 
Dağıtık Veritabanı Sistemleri
Dağıtık Veritabanı SistemleriDağıtık Veritabanı Sistemleri
Dağıtık Veritabanı Sistemleri
 
Cem kubilay
Cem kubilayCem kubilay
Cem kubilay
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data Presentation
 
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİİŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
İŞ ZEKASININ TEMELLERİ: VERİTABANLARI VE ENFORMASYON YÖNETİMİ
 
Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data Analytics
 
Php veritabani
Php veritabaniPhp veritabani
Php veritabani
 

More from Cihan Özhan

AI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation RealitiesAI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation RealitiesCihan Özhan
 
Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Cihan Özhan
 
Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)Cihan Özhan
 
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve YapılarGo Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve YapılarCihan Özhan
 
Golang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriGolang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriCihan Özhan
 
Golang Book - Genel Bakış
Golang Book - Genel BakışGolang Book - Genel Bakış
Golang Book - Genel BakışCihan Özhan
 
Golang Book - Giriş
Golang Book - GirişGolang Book - Giriş
Golang Book - GirişCihan Özhan
 
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesMLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesCihan Özhan
 
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...Cihan Özhan
 
Endüstriyel Yapay Zeka ve Otonom Sistemler
Endüstriyel Yapay Zeka ve Otonom SistemlerEndüstriyel Yapay Zeka ve Otonom Sistemler
Endüstriyel Yapay Zeka ve Otonom SistemlerCihan Özhan
 
AI Security : Machine Learning, Deep Learning and Computer Vision Security
AI Security : Machine Learning, Deep Learning and Computer Vision SecurityAI Security : Machine Learning, Deep Learning and Computer Vision Security
AI Security : Machine Learning, Deep Learning and Computer Vision SecurityCihan Özhan
 
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...Cihan Özhan
 
Python Programlama Dili
Python Programlama DiliPython Programlama Dili
Python Programlama DiliCihan Özhan
 
İ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
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15Cihan Özhan
 
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14Cihan Özhan
 

More from Cihan Özhan (20)

AI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation RealitiesAI and Machine Learning - Today’s Implementation Realities
AI and Machine Learning - Today’s Implementation Realities
 
Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)
 
Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)Blockchain : Decentralized Application Development (Turkish)
Blockchain : Decentralized Application Development (Turkish)
 
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve YapılarGo Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
Go Book - Fonksiyonlar, Metotlar, Arayüzler ve Yapılar
 
Golang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili TemelleriGolang Book - Go Programlama Dili Temelleri
Golang Book - Go Programlama Dili Temelleri
 
Golang Book - Genel Bakış
Golang Book - Genel BakışGolang Book - Genel Bakış
Golang Book - Genel Bakış
 
Golang Book - Giriş
Golang Book - GirişGolang Book - Giriş
Golang Book - Giriş
 
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as MicroservicesMLaaS - Presenting & Scaling Machine Learning Models as Microservices
MLaaS - Presenting & Scaling Machine Learning Models as Microservices
 
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
 
Endüstriyel Yapay Zeka ve Otonom Sistemler
Endüstriyel Yapay Zeka ve Otonom SistemlerEndüstriyel Yapay Zeka ve Otonom Sistemler
Endüstriyel Yapay Zeka ve Otonom Sistemler
 
AI Security : Machine Learning, Deep Learning and Computer Vision Security
AI Security : Machine Learning, Deep Learning and Computer Vision SecurityAI Security : Machine Learning, Deep Learning and Computer Vision Security
AI Security : Machine Learning, Deep Learning and Computer Vision Security
 
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
Yapay Zeka Güvenliği : Machine Learning & Deep Learning & Computer Vision Sec...
 
Python Programlama Dili
Python Programlama DiliPython Programlama Dili
Python Programlama Dili
 
İ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
 
İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20İleri Seviye T-SQL Programlama - Chapter 20
İleri Seviye T-SQL Programlama - Chapter 20
 
İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18İleri Seviye T-SQL Programlama - Chapter 18
İleri Seviye T-SQL Programlama - Chapter 18
 
İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17İleri Seviye T-SQL Programlama - Chapter 17
İleri Seviye T-SQL Programlama - Chapter 17
 
İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16İleri Seviye T-SQL Programlama - Chapter 16
İleri Seviye T-SQL Programlama - Chapter 16
 
İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15İleri Seviye T-SQL Programlama - Chapter 15
İleri Seviye T-SQL Programlama - Chapter 15
 
İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14İleri Seviye T-SQL Programlama - Chapter 14
İleri Seviye T-SQL Programlama - Chapter 14
 

MongoDB - NoSQL Overview

  • 1.
  • 2. NoSQL NoSQL Databases Cihan Özhan | DeepLab.co | Founder, AI Engineer, Mentor
  • 3. NoSQL Nedir? • NoSQL, temelde büyük, yapılandırılmamış veri kümelerini yönetmek için kullanılan bir veritabanıdır. • NoSQL, SQL benzeri sorgu dillerini de destekleyebileceklerini vurgulamak için "Yalnızca SQL" olarak da adlandırılır. • NoSQL veritabanları, büyük verilerde ve gerçek zamanlı web uygulamalarında giderek daha fazla kullanılmaktadır. • NoSQL, birden çok sanal sunucuda kullanıma sunulan çok büyük bir veri kümesine erişmesi ve bunları analiz etmesi gereken kurumsal bir uygulamada hayati bir rol oynar. • NoSQL veritabanı, İlişkisel Veritabanlarında görülen Performans, Ölçeklenebilirlik, Veri Modelleme ve Dağıtım sınırlamalarının üstesinden gelmek için tasarlanmıştır.
  • 4. Motivasyon • Tasarım Sadeliği • Yatay Ölçeklendirme (Horizontal Scaling) • Erişilebilirlik
  • 5. Veritabanı Tarihi • 1970'lerin İlişkisel veritabanları icat edildi. – Pahalı Depolama – Normalleştirilmiş Veriler • 1980'lerin RDBMS'si ticarileştirildi. – Client/Server Model – SQL’ın standart olması • 1990’larda birşeyler değişmeye başlar. – Client/Server 3-Tier Mimari – İnternet ve Web’in Yükselişi • 2000’ler Web 2.0 – Sosyal media ve E-Ticaret’in yükselişi! – Hardware fiyatlarındaki sürekli düşüş.
  • 6. Yeni Bir Veritabanı Türü İhtiyacı • Yatay Ölçeklendirme • Hızlı Geliştirme • Esnek Veri Modeli • Düşük Maliyet – Düşük Sunucu Maliyeti – Düşük Yönetim Maliyeti
  • 7. NoSQL Özellikleri • Yüksek ölçeklenebilirlik • SQL Sınırlamalarının Önüne Geçmek • Büyük Veri Hacimleri • Yüksek Veri Ölçeklendirme • ACID özelliklerine ihtiyaç duymaz • Asenkron INSERT ve UPDATE • Büyük Veri Hacimleri
  • 9.
  • 10. NoSQL Veritabanı Türleri • Key-Value – It uses a hash table in which there exists a unique key and a pointer to a particular item of data. – There can be identical keys in different buckets. • Örn : Redis and Riak • Column-Oriented – Veriler, veri satırları yerine veri sütunlarında gruplanmış hücrelerde depolanır. – Çalışma zamanında oluşturulabilen neredeyse sınırsız sayıda sütun içerebilir. • Örn : Hbase and Cassandra • Document-Oriented – Belge odaklı bilgileri depolamak, almak ve yönetmek için tasarlanmıştır. – It pair each key with a complex data structure known as a document. • Örn : CouchDB and MonoDB • Graph Store – Sosyal bağlantılar gibi ağ hakkındaki bilgileri depolamak için kullanılır. – Veriler sosyal ilişkiler, toplu taşıma bağlantıları, yol haritaları vb. Olabilir.
  • 11. NoSQL Faydaları • Sorgu dilini destekler. • Yatay ölçeklenebilirlik sağlar. • Yüksek ölçeklenebilirlik sağlar. • Elastik Ölçeklendirme • JOIN’lerden Kaçınmak • Verinin Şemalara Uymasına Gerek Yok • Hızlı ve Kolay Geliştirme • Ağ Sorunlarıyla Başa Çıkma Kabiliyeti • Düşük Gecikme ve Yüksek Performans • NoSQL Sunucularının Bakımı Daha Ucuz ve Kolaydır • Entegre Cache Kabiliyeti
  • 12. Ne Zaman NoSQL? • Büyük miktarda veriyi saklamak ve almak istediğinizde. • Sakladığınız veriler arasındaki ilişki o kadar da önemli değilse. • Veriler yapılandırılmaz ve zamanla değişmez. • Constraint ve JOIN desteği veritabanı düzeyinde gerekli değilse. • Veriler sürekli olarak büyüyor ve verileri işlemek için veritabanını düzenli olarak ölçeklendirmeniz gerekiyorsa.
  • 13. ACID Özellikleri • Çoğunlukla RDBMS’ler, İ.V. Yönetimi ve veri işleme için standart bir bilgisayar dili olan SQL'i kullanır. • İlişkisel veritabanları ACID özelliklerini takip eder: – Atomicity, Consistency, Isolation, Durability – Atomiklik, Tutarlılık, İzolasyon, Dayanıklılık • ACID, veritabanı işlemlerinin güvenilir şekilde işlenmesini garanti eden bir dizi özelliktir. – Atomicity • Atomiklik özelliği, işlemin atomik olduğunu tanımlar. Atomik bir işlem ya tamamen tamamlandı ya da hiç başlamadı. – Consistency • Bir örnekteki değerlerde yapılan herhangi bir değişikliğin, aynı örnekteki diğer değerlerdeki değişikliklerle tutarlı olmasını sağlar. – Isolation • Eşzamanlı işlemler olduğunda gereklidir. Paylaşılan nesnelere erişen birden fazla kullanıcının paylaşılması gibi aynı anda gerçekleşen işlemler. – Durability • Bir işlem, başarılı bir şekilde tamamlandığında, sistemde yaptığı tüm değişikliklerin kalıcı olması açısından dayanıklıdır.
  • 14. RDBMS’in Eksiklikleri • Yapılandırılmış veriler için kullanışlıdır. • Veri Patlaması • JOIN’lerin Ek Yükü • İlişkileri(Relationships) yönetmek zor.
  • 15. CAP Theorem • Brewer’s Teoremi olarak da bilinen CAP Teoremi, dağıtık bir bilgisayar sisteminin aşağıdaki garantilerin tümünü aynı anda sağlamasının imkansız olduğunu belirtir: – Consistency : Tüm düğümler aynı verileri aynı anda görür. – Availability : Her istek, başarılı olup olmadığı hakkında bir yanıt alır. – Partition-Tolerance : The system continues to operate even if there is a partition between two nodes. • Temelde bunlardan 2'sini seçebilirsiniz ama 3'ünü birden yapamazsınız.
  • 16. CAP Theorem (CAP Teoreminin Kombinasyonları) • CA : Tek site kümesi, tüm düğümler her zaman ACID ile CA'ya odaklanır • AP : Some data may be inaccurate BASE focus on AP. • CP : Bazı verilere erişilemeyebilir.
  • 17. BASE Properties • BASE kısaltması, genellikle NoSQL veritabanları olmak üzere belirli veritabanlarının özelliklerini tanımlamak için kullanılır. • Genellikle ACID'e bir alternatiftir. • BASE sistemi, daha fazla Availability ve Partition toleransına sahip olmak için tutarlılıktan vazgeçer. • BASE consists of three principles: – Basic Availability • NoSQL veritabanı yaklaşımı, birden çok arıza durumunda bile verilerin kullanılabilirliğine odaklanır. – Soft-State • It indicates that the state of the system may change over time, even without input. • Bunun nedeni nihai tutarlılık modelidir. – Evantual Consistency • It indicates that the system will become consistent over time, given that the system doesn't receive input during that time.
  • 19. NoSQL vs. RDBMS • Relationship ve JOIN içermez. • Çok daha düşük bakım maliyeti. • ACID yerine BASE kullanır. • Yatay ölçekleme sağlar.(Horizontal Scaling) • Şema içermez(Schemaless)
  • 20. NoSQL vs. RDBMS • Kaynak maliyetli JOIN ve Relationship’ler kullanır. • Yüksek yönetim maliyeti • ACID özelliklerini kullanır • Dikey Ölçekleme(Vertical Scaling) • Tanımlanmış özniteliklere sahip yapı gerektirir.
  • 21. Neden NoSQL Kullanmalı? • Eğer ölçeklenebilirlik bir endişe ise… • Daha sade veri modeli(JOIN’siz) • Çok düşük bir bütçeyle uygulama ve ölçeklenmiş olması gerekiyor ise… • Gerçek Zamanlı Analizler • Dağıtık Depolama • Esneklik sağlar • Hızlı geliştirme sağlar • Redundancy/Reliability • Streaming/Volume