Graph DB Nedir?
Graph DB (Graph Database), veri yapısını graf teorisine dayalı olarak temsil eden ve saklayan bir veritabanı modelidir. Geleneksel veritabanı modellerinde (örneğin, ilişkisel veritabanlarında) veriler tablo ve satırlarla temsil edilirken, graph veritabanlarında veriler düğümler (nodes), kenarlar (edges) ve özellikler (properties) kullanılarak temsil edilir. Bu yapı, veriler arasındaki karmaşık ilişkileri ve bağlantıları çok daha verimli ve doğal bir şekilde modellemeye ve sorgulamaya olanak tanır.
Graph DB’nin Temel Bileşenleri
- Düğümler (Nodes): Düğümler, veritabanında saklanan varlıkları temsil eder. Her düğüm, bir nesne ya da öğeyi ifade eder ve özellikler (attributes) içerir. Örneğin, bir sosyal medya uygulamasında kişi (kullanıcı) düğümleri olabilir.
- Kenarlar (Edges): Düğümler arasındaki ilişkileri temsil eden bağlantılardır. Kenarlar, iki düğüm arasındaki yönlü ya da yönsüz bir ilişkiyi gösterir. Her kenar, belirli bir ilişkiyi ifade eder. Örneğin, bir kullanıcı bir diğer kullanıcıyı takip edebilir; bu, iki düğüm arasındaki bir “takip” ilişkisi olarak modellenir.
- Özellikler (Properties): Düğümler ve kenarlar özellikler içerir. Bu özellikler, düğüm ya da kenarın daha fazla tanımlanmasını sağlar. Örneğin, bir kişi düğümünün adı, yaşı ve şehri gibi özellikleri olabilir. Aynı şekilde, “takip” ilişkisi için de bir tarih özelliği saklanabilir.
- Etiketler (Labels): Düğümleri veya kenarları kategorize etmek için kullanılan etiketlerdir. Örneğin, bir düğüm “Kullanıcı” olarak etiketlenebilir, başka bir düğüm ise “Ürün” olarak etiketlenebilir.
Graph Veritabanı Sorgulama Dilleri
Graph veritabanları, geleneksel SQL tabanlı sorgulama dillerinden farklı olarak, ilişkileri daha doğal ve verimli şekilde sorgulamak için özel diller kullanır. Bu sorgulama dilleri, düğümler ve kenarlar arasındaki ilişkileri anlamak ve bu ilişkileri verimli bir şekilde keşfetmek için tasarlanmıştır.
- Cypher: Neo4j veritabanında kullanılan sorgulama dilidir. İlişkiler, düğümler ve kenarlar arasında sorgulamalar yapmak için optimize edilmiştir.
- Gremlin: Apache TinkerPop çerçevesi ile çalışan bir graph sorgulama dilidir. JanusGraph ve diğer bazı graph veritabanlarında kullanılır.
- SPARQL: RDF tabanlı graph veritabanları için kullanılan bir sorgulama dilidir. Özellikle anlamsal web (semantic web) projelerinde yaygın olarak kullanılır.