Neo4j (Graph DB) – CYTHER Komut Tablosu (Tam Teknik)

İMRAN

Archive Forum Kurucu
Admin
Katılım
10 Nisan 2025
Mesajlar
1,654
Çözümler
1
Reaksiyon puanı
139
Konum
Türkiye

Neo4j (Graph DB) – CYTHER Komut Tablosu (Tam Teknik)

1) Temel Node & Relationship Komutları

Komut / ScriptAçıklamaKullanım AlanıAvantajlarRisk
CREATE (n:User {name:'Ali'})Node oluştururVeri eklemeHızlı ve esnekYanlış label → karmaşa
MATCH (n:User) RETURN nNode aramaSorguBasit, hızlıÇok veri varsa yavaşlama
CREATE (a:User)-[:FOLLOWS]->(b:User)Relationship oluştururSosyal grafikYönlü ilişkiYanlış ilişki türü veri karışıklığı
MATCH (a)-[r:FOLLOWS]->(b) RETURN rRelationship sorgulamaAnalizEsnekMilyon ilişkide performans düşer
DELETE nNode silmeTemizlikKolayİlişkisi varsa hata verir
DETACH DELETE nNode + ilişkileri silmeBüyük temizlikKomple kaldırırGeri dönüş yok

2) Node & Relationship Güncelleme Komutları

KomutAçıklamaKullanım AlanıAvantajlarRisk
SET n.age = 25Node özelliği güncellerVeri yönetimiDirekt işlemTip uyuşmazlığı olabilir
REMOVE n.ageÖzellik silerTemizlikHızlıVeri bütünlüğü bozulabilir
SET r.since = 2020İlişkiye özellik eklerZaman bazlı grafikTarih saklamaYanlış format
MERGE (n:User {id:1})Yoksa oluştur, varsa getirIdempotent işlemlerÇakışmayı önlerYanlış key → duplicate

3) İleri Seviye Sorgular (Traversal / Pattern Matching)

KomutAmaçKullanım AlanıBeklenen Etki
MATCH (a)-[:FOLLOWS]->(b)-[:FOLLOWS]->(c) RETURN a, c2 seviye ilişki bulSosyal networkDerin grafik analizi
MATCH p = (a:User)-[*1..5]->(b)1–5 adım ilişkileri bulurDerin traversingGraph discovery
MATCH (u:User)-[r]->(x) RETURN type(r)Relationship türlerini listelerŞema analiziVeri yapısı doğrulama
MATCH (u:User) WITH u ORDER BY u.age DESC RETURN u LIMIT 10Yaşa göre sıralamaRaporlamaEn büyük yaşlı kullanıcıları döndürür

4) Index, Constraint, Performans Komutları

KomutAçıklamaKullanım AlanıAvantaj
CREATE INDEX user_id FOR (n:User) ON (n.id)Index oluştururSorgu hızlandırmaPerformans artar
DROP INDEX user_idIndex silerYönetimGereksiz index temizliği
CREATE CONSTRAINT unique_id IF NOT EXISTS FOR (n:User) REQUIRE n.id IS UNIQUEUnique constraintVeri bütünlüğüDuplicate engeller
EXPLAIN MATCH (n:User) RETURN nSorgu planıOptimizasyonQuery cost analizi
PROFILE MATCH ...Gerçek çalıştırma planıDerin optimizasyonHer aşamayı gösterir

5) Graph Manipülasyon – Use Case Scriptleri

SenaryoScriptAçıklama
Yeni kullanıcı oluşturmaCREATE (:User {id:1,name:'Berk'})Node ekleme
İki kullanıcıyı takip ettirmeMATCH (a:User {id:1}), (b:User {id:2}) CREATE (a)-[:FOLLOWS]->(b)Relationship
Kullanıcıya “Yönetici” etiketi eklemeMATCH (u:User {id:1}) SET u:AdminLabel ekleme
Etiket kaldırmaMATCH (u:User) REMOVE u:AdminLabel silme
Kullanıcının tüm ilişkilerini silmeMATCH (u:User {id:1}) DETACH DELETE uKomple silme

6) Path, Route, Algoritma Tabanlı Komutlar

KomutAçıklamaKullanım Alanı
MATCH p = shortestPath((a:User {id:1})-[:FOLLOWS*]-(b:User {id:50})) RETURN pEn kısa yolu bulurSosyal grafik
MATCH (n)-[:FOLLOWS*3]->(m)3 adım uzak ilişkilerDerin keşif
MATCH (u)-[r]->(v) RETURN u, v, COUNT(r)Relationship yoğunluğunu ölçerGraph analytics
CALL db.schema.visualization()Şemayı grafik olarak gösterirYönetim

7) Backup – Restore – Export

KomutAçıklamaKullanımRisk
neo4j-admin dump --database=neo4j --to=backup.dumpFull dumpYedek almaBüyük DB yavaş alır
neo4j-admin load --database=neo4j --from=backup.dumpDump yüklemeRestoreVar olan DB’yi siler
CALL apoc.export.csv.all("export.csv",{})Tüm DB’yi CSV exportAnalizCSV büyük olabilir
CALL apoc.import.csv(...)CSV importData pipelineYanlış format hata verir

🎯 Neo4j – Kısaca Güçleri & Zayıflıkları

ÖzellikAvantajZayıflık
Node-Relationship yapısıSosyal ağ, siber tehdit zinciri, fraud analizi için müthişSQL kadar yaygın değil
Cypher diliBasit ve okunabilirÇok büyük graphlarda optimizasyon zor
Traversal işlemleriÇok derin ilişkileri hızlı işlerYanlış modelleme → yavaşlama
APOC eklentileriÇok güçlü analiz araçlarıEk kurulum gerekiyor
 
Geri
Üst Alt