SlideShare a Scribd company logo
GraphDb ve Neo4j
Fatih Serhat Turan
Graph Database Nedir ? :
- İlişkisel veritabanlarından farklı olarak veri arasındaki ilişkileri vurgulamak için graph
teorisini kullanan, node (düğüm) ve relationship (ilişkiler) olmak üzere iki temel unsurdan
oluşan bir databasedir. Oracle NoSQL Database, OrientDB, HypherGraphDB, GraphBase,
InfiniteGraph ve AllegroGraph gibi başka popüler graph databaseler de vardır.
- İlişkisel veritabanları daha çok bir defter gibidir. Satır ve sütünlardan oluşur. Verileri
ilişkilendirmek için foreign keyler kullanırız ve bu da bize sorgularımızda join kullanmamıza,
sonuç olarak veri fazlalığına ve kompleksliğine sebebiyet verir. İlişkilerin çok daha önemli
olduğu bu gibi durumlarda graph databaseler daha önemli hale gelir.
RelationalDb vs GraphDb :
İlişkisel veritabanlarında karmaşık ilişkilerin modellenmesi sözkonusu olduğunda veritabanının
karmaşıklığı ve sorguların boyutu da paralel bir şekilde artar bu da hem yüksek maliyet hem de
performans kaybı demektir.
İlişkisel veritabanlarının şema tabanlı olması veri modelindeki
değişiklerin tablo yapısında önemli değişiklikler yapılmasını
gerektirir bu da veritabanı esnekliğini ciddi ölçüde kısıtlar.
İlişkiler tablo ve sütunlar aracılığıyla dolaylı olarak gösterilir, bu
da analizi zorlaştırır bu da verilerin görselleştirlmesini zor ve
aktarılmasını güç hale getirir.
Relational diyagram Graf model
Düğümler ve ilişkiler :
Düğüm :
Graph nesneleri olarak tanımlanabilir
İsim-değer çiftlerinden oluşur
İsimlendirilebilir
İlişki :
İsim-değer çiftlerinden oluşur
Düğümler arası ilişkileri yön ve özellik
belirterek tanımlar
Kullanım Alanları :
Sosyal Ağ Analizi : Kullanıcılar
arasındaki ilişkiler ve etkileşimler.
Tavsiyeler ve İçerik Dağıtımı : Kullanıcı
alışkanlıklarına göre öneriler.
Fraud Detection (SahtekarlıkTespiti):
Şüpheli faaliyetlerin ve ilişkilerin tespiti.
Biyoinformatik : Protein-protein
etkileşimleri ve genetik verilerin analizi.
Bilgi Grafikleri : Bilgi tabanlarının ve
semantik web verilerinin yönetimi.
Kurumsal Veri Yönetimi: Şirket içi
hiyerarşik yapılar ve kurumsal ilişkilerin
modellenmesi.
Neo4j Nedir ? :
- Neo4j Java ve Scala ile yazılmış olan bir graph databasedir. Cypher adında bir sorgulama
dili vardır. Neo4j açık kaynaklı, yüksek performanslı ve ölçeklenebilirdir. NASA, eBay, cisco
gibi kuruluşlar tarafından kullanılmaktadır.
Ölçeklenebilirlik : Neo4j, yatay olarak ölçeklendirilebilir bir mimariye sahiptir. Bu da, ihtiyaç
duydukça daha fazla sunucu ekleyerek graph'inizi büyütmenize olanak tanır.
Güçlü Özellikler : Neo4j, graph matching, graph traversal ve graph algorithms gibi birçok
güçlü özellik sunar. Bu da, graph'inizden en iyi şekilde yararlanmanıza yardımcı olur.
Performans : Neo4j, graph query'leri için optimize edilmiş bir bellek içi mimariye sahiptir. Bu
da, büyük ve karmaşık graph'ler üzerinde bile hızlı ve verimli sorgular çalıştırmayı mümkün
kılar.
- SQL’e aşina olan herkes Cypher’ı kolaylıkla anlayacaktır. Detaylara girmeden önce her ikisinin de declarative query dilleri
olduğunu belirtelim. Cypher özellikle graphlar için tasarlanmıştır. Her ikisininde clauseslar, keywordler, expressionlar,
operatörler ve functionlar içerdiğini söyleyebiliriz. SQL’den farklı olarak Cypher graph pattern’i merkezine almıştır. Cypher ile de
kompleks sorgular yazabiliriz. Cypher karışık okuma ve yazma operasyonları tek bir state üzerinden gerçekleştirir.
Cypher vs SQL :
Aşağıda bir kişinin doğrudan veya dolaylı olarak yönettiği, altındaki çalışanları ve bu çalışanların toplam rapor sayısını bulmak
için yazılmış sql ve cypher sorgularını görüyorsunuz.
Clustering Yapısı:
Neo4j, yüksek kullanılabilirlik, veri bütünlüğü ve performans sağlamak amacıyla kümeleme
(clustering) yeteneklerine sahip olan bir graf veritabanıdır. Neo4j'in kümeleme yapısı, veri
replikasyonu ve dağıtılmış sorgulama yetenekleri sunarak büyük ölçekli uygulamalarda
güvenilirlik ve esneklik sağlar.
Neo4j, dağıtık sistemler için güvenilir ve tutarlı veri replikasyonu sağlamak amacıyla Raft
konsensüs algoritmasını kullanır. Raft algoritması, lider seçimleri ve girişlerin (log entries)
replikasyonu yoluyla küme içindeki düğümlerin senkronize kalmasını sağlar.
Neo4j kümeleri, yapılandırma dosyaları aracılığıyla tanımlanır ve yönetilir. Bu dosyalarda
düğüm rolleri, replikasyon ayarları ve ağ yapılandırmaları belirlenir.
Güvenlik Duvarları ve Ağ Politikaları: Neo4j sunucusunun çalıştığı ağ ortamında güvenlik duvarları ve
ağ politikaları uygulanabilir.
Veritabanı Yedekleme ve Geri Yükleme: Güvenli yedekleme ve geri yükleme mekanizmaları ile veri
kaybı riskine karşı önlem alınabilir.
Kullanıcı Yönetimi: Kullanıcı hesaplarının yönetimi, parolaların zorunlu olarak güçlü olması ve düzenli
olarak değiştirilmesi gibi politikalar uygulanabilir.
Çok Faktörlü Kimlik Doğrulama (MFA): İleri seviye güvenlik gereksinimleri için çok faktörlü kimlik
doğrulama mekanizmaları entegre edilebilir.
Güvenlik :

More Related Content

Similar to GraphDb ve Neo4j Teknolojilerinin Yüzeysel Anlatımı

İ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
Cihan Özhan
 
İŞ 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
 
İ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
Cihan Özhan
 
Rda ve ulusal girişim sunum
Rda ve ulusal  girişim sunumRda ve ulusal  girişim sunum
Rda ve ulusal girişim sunumAysel Gümüş
 
Graph Databases & NEO4J
Graph Databases & NEO4JGraph Databases & NEO4J
Graph Databases & NEO4J
Fatih Erikli
 
Embarcadero ER/Studio XE3 Sunum
Embarcadero ER/Studio XE3 SunumEmbarcadero ER/Studio XE3 Sunum
Embarcadero ER/Studio XE3 SunumBTGrubu
 
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
Hakan Sarıbıyık
 
Kod günleri veritabnı
Kod günleri veritabnıKod günleri veritabnı
Kod günleri veritabnıMustafa Tepe
 
Graph (Çizge) Veritabanları ve Multi-Model Kavramı
Graph (Çizge) Veritabanları ve Multi-Model KavramıGraph (Çizge) Veritabanları ve Multi-Model Kavramı
Graph (Çizge) Veritabanları ve Multi-Model Kavramı
Emre Akış
 
MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL Overview
Cihan Özhan
 
Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data Analytics
Mudur Alkan
 
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
gulindasdan
 
Arama Sistemleri
Arama SistemleriArama Sistemleri
Arama Sistemleri
Murat Ilgaz
 
Nosql ve mongoDB
Nosql ve mongoDBNosql ve mongoDB
Nosql ve mongoDB
Saygın Topatan
 
6.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V26.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V2Ermando
 
İ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
Cihan Özhan
 
Utku Demirhan @Digitalzone Meetups - Dijitalde 5 Veri Görselleştirme Yöntemi
Utku Demirhan @Digitalzone Meetups - Dijitalde 5 Veri Görselleştirme YöntemiUtku Demirhan @Digitalzone Meetups - Dijitalde 5 Veri Görselleştirme Yöntemi
Utku Demirhan @Digitalzone Meetups - Dijitalde 5 Veri Görselleştirme Yöntemi
Zeo
 
Bilginç IT Academy - JPA (Java Persistence API)
Bilginç IT Academy - JPA (Java Persistence API)Bilginç IT Academy - JPA (Java Persistence API)
Bilginç IT Academy - JPA (Java Persistence API)
Mimar Aslan
 

Similar to GraphDb ve Neo4j Teknolojilerinin Yüzeysel Anlatımı (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
 
İŞ 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İ
 
İ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
 
Rda ve ulusal girişim sunum
Rda ve ulusal  girişim sunumRda ve ulusal  girişim sunum
Rda ve ulusal girişim sunum
 
Graph Databases & NEO4J
Graph Databases & NEO4JGraph Databases & NEO4J
Graph Databases & NEO4J
 
Embarcadero ER/Studio XE3 Sunum
Embarcadero ER/Studio XE3 SunumEmbarcadero ER/Studio XE3 Sunum
Embarcadero ER/Studio XE3 Sunum
 
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
 
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ı
 
Graph (Çizge) Veritabanları ve Multi-Model Kavramı
Graph (Çizge) Veritabanları ve Multi-Model KavramıGraph (Çizge) Veritabanları ve Multi-Model Kavramı
Graph (Çizge) Veritabanları ve Multi-Model Kavramı
 
MongoDB - NoSQL Overview
MongoDB - NoSQL OverviewMongoDB - NoSQL Overview
MongoDB - NoSQL Overview
 
Big Data Analytics
Big Data AnalyticsBig Data Analytics
Big Data Analytics
 
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
 
Arama Sistemleri
Arama SistemleriArama Sistemleri
Arama Sistemleri
 
Nosql ve mongoDB
Nosql ve mongoDBNosql ve mongoDB
Nosql ve mongoDB
 
6.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V26.Oracle Day2009 Engin Senel V2
6.Oracle Day2009 Engin Senel V2
 
İ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
 
Veritabanları
VeritabanlarıVeritabanları
Veritabanları
 
Utku Demirhan @Digitalzone Meetups - Dijitalde 5 Veri Görselleştirme Yöntemi
Utku Demirhan @Digitalzone Meetups - Dijitalde 5 Veri Görselleştirme YöntemiUtku Demirhan @Digitalzone Meetups - Dijitalde 5 Veri Görselleştirme Yöntemi
Utku Demirhan @Digitalzone Meetups - Dijitalde 5 Veri Görselleştirme Yöntemi
 
Bilginç IT Academy - JPA (Java Persistence API)
Bilginç IT Academy - JPA (Java Persistence API)Bilginç IT Academy - JPA (Java Persistence API)
Bilginç IT Academy - JPA (Java Persistence API)
 

GraphDb ve Neo4j Teknolojilerinin Yüzeysel Anlatımı

  • 1. GraphDb ve Neo4j Fatih Serhat Turan
  • 2. Graph Database Nedir ? : - İlişkisel veritabanlarından farklı olarak veri arasındaki ilişkileri vurgulamak için graph teorisini kullanan, node (düğüm) ve relationship (ilişkiler) olmak üzere iki temel unsurdan oluşan bir databasedir. Oracle NoSQL Database, OrientDB, HypherGraphDB, GraphBase, InfiniteGraph ve AllegroGraph gibi başka popüler graph databaseler de vardır. - İlişkisel veritabanları daha çok bir defter gibidir. Satır ve sütünlardan oluşur. Verileri ilişkilendirmek için foreign keyler kullanırız ve bu da bize sorgularımızda join kullanmamıza, sonuç olarak veri fazlalığına ve kompleksliğine sebebiyet verir. İlişkilerin çok daha önemli olduğu bu gibi durumlarda graph databaseler daha önemli hale gelir.
  • 3. RelationalDb vs GraphDb : İlişkisel veritabanlarında karmaşık ilişkilerin modellenmesi sözkonusu olduğunda veritabanının karmaşıklığı ve sorguların boyutu da paralel bir şekilde artar bu da hem yüksek maliyet hem de performans kaybı demektir. İlişkisel veritabanlarının şema tabanlı olması veri modelindeki değişiklerin tablo yapısında önemli değişiklikler yapılmasını gerektirir bu da veritabanı esnekliğini ciddi ölçüde kısıtlar. İlişkiler tablo ve sütunlar aracılığıyla dolaylı olarak gösterilir, bu da analizi zorlaştırır bu da verilerin görselleştirlmesini zor ve aktarılmasını güç hale getirir.
  • 5. Düğümler ve ilişkiler : Düğüm : Graph nesneleri olarak tanımlanabilir İsim-değer çiftlerinden oluşur İsimlendirilebilir İlişki : İsim-değer çiftlerinden oluşur Düğümler arası ilişkileri yön ve özellik belirterek tanımlar
  • 6. Kullanım Alanları : Sosyal Ağ Analizi : Kullanıcılar arasındaki ilişkiler ve etkileşimler. Tavsiyeler ve İçerik Dağıtımı : Kullanıcı alışkanlıklarına göre öneriler. Fraud Detection (SahtekarlıkTespiti): Şüpheli faaliyetlerin ve ilişkilerin tespiti. Biyoinformatik : Protein-protein etkileşimleri ve genetik verilerin analizi. Bilgi Grafikleri : Bilgi tabanlarının ve semantik web verilerinin yönetimi. Kurumsal Veri Yönetimi: Şirket içi hiyerarşik yapılar ve kurumsal ilişkilerin modellenmesi.
  • 7. Neo4j Nedir ? : - Neo4j Java ve Scala ile yazılmış olan bir graph databasedir. Cypher adında bir sorgulama dili vardır. Neo4j açık kaynaklı, yüksek performanslı ve ölçeklenebilirdir. NASA, eBay, cisco gibi kuruluşlar tarafından kullanılmaktadır. Ölçeklenebilirlik : Neo4j, yatay olarak ölçeklendirilebilir bir mimariye sahiptir. Bu da, ihtiyaç duydukça daha fazla sunucu ekleyerek graph'inizi büyütmenize olanak tanır. Güçlü Özellikler : Neo4j, graph matching, graph traversal ve graph algorithms gibi birçok güçlü özellik sunar. Bu da, graph'inizden en iyi şekilde yararlanmanıza yardımcı olur. Performans : Neo4j, graph query'leri için optimize edilmiş bir bellek içi mimariye sahiptir. Bu da, büyük ve karmaşık graph'ler üzerinde bile hızlı ve verimli sorgular çalıştırmayı mümkün kılar.
  • 8. - SQL’e aşina olan herkes Cypher’ı kolaylıkla anlayacaktır. Detaylara girmeden önce her ikisinin de declarative query dilleri olduğunu belirtelim. Cypher özellikle graphlar için tasarlanmıştır. Her ikisininde clauseslar, keywordler, expressionlar, operatörler ve functionlar içerdiğini söyleyebiliriz. SQL’den farklı olarak Cypher graph pattern’i merkezine almıştır. Cypher ile de kompleks sorgular yazabiliriz. Cypher karışık okuma ve yazma operasyonları tek bir state üzerinden gerçekleştirir. Cypher vs SQL : Aşağıda bir kişinin doğrudan veya dolaylı olarak yönettiği, altındaki çalışanları ve bu çalışanların toplam rapor sayısını bulmak için yazılmış sql ve cypher sorgularını görüyorsunuz.
  • 9. Clustering Yapısı: Neo4j, yüksek kullanılabilirlik, veri bütünlüğü ve performans sağlamak amacıyla kümeleme (clustering) yeteneklerine sahip olan bir graf veritabanıdır. Neo4j'in kümeleme yapısı, veri replikasyonu ve dağıtılmış sorgulama yetenekleri sunarak büyük ölçekli uygulamalarda güvenilirlik ve esneklik sağlar. Neo4j, dağıtık sistemler için güvenilir ve tutarlı veri replikasyonu sağlamak amacıyla Raft konsensüs algoritmasını kullanır. Raft algoritması, lider seçimleri ve girişlerin (log entries) replikasyonu yoluyla küme içindeki düğümlerin senkronize kalmasını sağlar. Neo4j kümeleri, yapılandırma dosyaları aracılığıyla tanımlanır ve yönetilir. Bu dosyalarda düğüm rolleri, replikasyon ayarları ve ağ yapılandırmaları belirlenir.
  • 10. Güvenlik Duvarları ve Ağ Politikaları: Neo4j sunucusunun çalıştığı ağ ortamında güvenlik duvarları ve ağ politikaları uygulanabilir. Veritabanı Yedekleme ve Geri Yükleme: Güvenli yedekleme ve geri yükleme mekanizmaları ile veri kaybı riskine karşı önlem alınabilir. Kullanıcı Yönetimi: Kullanıcı hesaplarının yönetimi, parolaların zorunlu olarak güçlü olması ve düzenli olarak değiştirilmesi gibi politikalar uygulanabilir. Çok Faktörlü Kimlik Doğrulama (MFA): İleri seviye güvenlik gereksinimleri için çok faktörlü kimlik doğrulama mekanizmaları entegre edilebilir. Güvenlik :