Graf ve ilişkisel veritabanı karşılaştırması

Graf veritabanı verileri bir düğüm ağı (varlıklar) ve kenarlar (ilişkiler) olarak depolar ve sorgular. Bu yaklaşım ilişkisel veritabanlarının tablo ve satır biçiminden farklıdır. Graf veritabanları sosyal ağlar, bilgi grafları, öneri sistemleri ve sahtekarlık algılama gibi yüksek oranda bağlı verileri modelleme ve analiz etme konusunda oldukça başarılıdır.

Bu makalede graf veritabanları ve ilişkisel veritabanları karşılaştırılarak verilmiştir. Analizdeki önemli farkları, kullanım örneklerini ve avantajları vurgular. Microsoft Fabric'te grafı mı yoksa özel gereksinimleriniz için ilişkisel veritabanını mı kullanacağınıza karar vermek için bu bilgileri kullanın.

Graf ve ilişkisel veritabanları arasındaki temel farklar

  • Graf veritabanları: Verileri düğümler ve kenarlar olarak düzenleyerek ilişkileri açıkça depolar. Bağlantılar arasında geçiş verimlidir ve genellikle toplam veri kümesi boyutundan bağımsızdır.
  • İlişkisel veritabanları: Tablolardaki verileri satır ve sütunlarla düzenleyin. Sorgu zamanında ilişkileri çıkarsamak için JOIN işlemlerini kullanın. Yüksek oranda bağlı veriler için bu işlemler karmaşık ve yavaş olabilir.

İlişkileri sorgulama: Birleşimler ve çapraz geçişler

İlişkisel veritabanı sorguları: Yabancı anahtarlar farklı tablolardaki verileri bağlar. İlişkisel veritabanları, ilişkili verileri almak için JOIN işlemlerini kullanarak birden çok tabloya ait satırları birleştirir. Basit ilişkiler için JOIN'ler sorunsuz çalışır. Ancak derin veya değişken uzunlukta bağlantılar için pahalı ve karmaşık olabilir.

Graph veritabanı sorguları: Bir düğümden diğerine doğrudan geçiş yapmak için ilişkileri kenarlar olarak depolayın. Grafik sorguları birden çok atlamada ve karmaşık desenlerde verimli bir şekilde gezinebilir. Graph Sorgu Dili (GQL) gibi graf sorgu dilleri, çapraz geçişleri ve desen eşleştirmeyi ifade etmelerini kolaylaştırır.

Example:

GQL:

MATCH (p:Person)-[:friendsWith]->(friend)-[:purchased]->(o:Order)
WHERE p.name = 'Alice';
RETURN o

SQL (eşdeğer):

SELECT o.*
FROM Person AS p
JOIN Friends_With AS fw ON p.id = fw.person_id
JOIN Person AS friend ON fw.friend_id = friend.id
JOIN Purchased AS pur ON friend.id = pur.person_id
JOIN "Order" AS o ON pur.order_id = o.id
WHERE p.name = 'Alice';

Uyarı

GQL, graf veritabanları için ISO standartlaştırılmış bir sorgu dilidir. Graf yapılandırılmış verilerin verimli bir şekilde sorgulanması ve değiştirilmesi için tasarlanmıştır. SQL'i denetleen aynı uluslararası çalışma grubu bunu geliştiriyor.

Grafik ve ilişkisel veritabanları için performans etkileri

Graph veritabanları, özellikle derin bağlantı analizi veya özyinelemeli sorgular için birçok kenar veya bilinmeyen derinlik içeren sorgular için ilişkisel veritabanlarından daha iyi performansa sahip olabilir. İlişkisel veritabanları, onlarca yıllık iyileştirme nedeniyle, küme odaklı işlemlerde ve toplamalarda üstünlük sağlar. Microsoft Fabric'teki grafikte, sorgu altyapısı OneLake'te depolanan büyük ölçekli grafikler arasında çapraz geçiş ve desen eşleştirme için iyileştirilmiştir.

Graf ve ilişkisel veritabanları için ölçeklendirmeyle ilgili dikkat edilmesi gerekenler

  • İlişkisel veritabanları: Genellikle dikey olarak ölçeklendirilir (daha büyük makineler) ve parçalama ve çoğaltma yoluyla yatay olarak ölçeklendirilebilir. Yüksek oranda bağlı şemaları parçalama karmaşıktır ve ağlar arası ek yüke neden olabilir.
  • Graf veritabanları: Dikey ve yatay olarak ölçeklendirin. Dağıtılmış grafik veritabanları, verimli geçişler için ilgili düğümleri bir arada tutmayı hedefleyen grafikleri makineler arasında bölümler.

Grafik veritabanı veya ilişkisel veritabanı ne zaman kullanılır?

Aşağıdakiler için graf veritabanı kullanın:

  • Verileriniz yüksek oranda bağlantılı ve ilişki ağırlıklıdır (sosyal ağlar, bilgi grafikleri ve öneriler).
  • Bilinmeyen veya değişken sayıda atlamadan geçmeniz gerekir.
  • Şema gelişmekte veya yarı yapılandırılmış.
  • İlişkilerin merkezi olduğu etki alanları için sezgisel modelleme istiyorsunuz.

aşağıdaki durumda ilişkisel veritabanı kullanın:

  • Verileriniz çoğunlukla tablosaldır veya iyi tanımlanmış bir yapıya uygundur.
  • Sorgularınız ağır toplamalar veya büyük küme işlemleri içerir.
  • SQL ile uyumlu mevcut araçlarınız veya uzmanlığınız var.

Grafik ve ilişkisel veritabanlarıyla karma yaklaşımlar

Birçok projede her iki veritabanı türü de kullanılır: çekirdek işlem verileri için ilişkisel veritabanı ve özelleştirilmiş analiz veya ağ analizi özellikleri için graf veritabanı. Microsoft Fabric'te grafı aynı çalışma alanındaki diğer veri depolarıyla birleştirerek verileri ayrı sistemler arasında taşımadan hem ilişkisel hem de grafik özellikleri elde edebilirsiniz.