• ilişkisel veritabanı yapısına alternatif bir veritabanı türü. tablolar, ve katı kurallarla belirlenmiş alanlar yerine her bir kaydın bir node olması ve aralarındaki ilişkilerin tutulması temeline dayanır.

    bir yerlerden duyup da bu veritabanı neden kullanılır diyenler için ufak bir örnek vereyim. mesela bir aile veritabanı yapmak istiyorsunuz. klasik ilişkisel veritabanı yapısında muhtemelen şöyle tablolar tanımlarsınız; kişi, anne, baba, çocuk, amca, hala, dayı, teyze, kuzen vs. kişi altında tutulacak kayıtlara göre de her bir tablo altında kim kimin annesi, kim kimin çocuğu şeklinde bir sürü ilişki yapılır. ya da tablo sayısı daha az tutulur, sorgularla o bunun kardeşiyse, öbürünün dayısıdır gibi çıkarımlamalar yapılarak viewlar oluşturulur. her şekilde karmaşık ve veri tekrarına yol açan bir yöntem olacaktır.

    graph veritabanları bize bu noktada şöyle bir çözüm sunuyor: diyelim ayşe hanım annemiz, ve mehmet bey babamız. berkecan oğlumuz, pelinsu kızımız, ahmet bey de ayşe hanım'ın eli sopalı abisi. işte bunların her biri birer node. üstlerinde isterseniz yaş, cinsiyet, boy, kilo gibi özellikleri tanımlayabilirsiniz. ve her bir birey için farklı özellikler de tanımlayabilirsiniz. mesela ebeveynlere maaş, çocuklara okul bilgisi gibi şeyler eklenebilir. herkes her özelliğe sahip olmak zorunda değildir.

    gelelim ilişkilere. en keyifli kısım burası. nodelar arasında direkt 1 veya 1'den fazla ilişki tanımlayabilirsiniz. yani amcanız aynı zamanında kuzeninizse hiç problem değil.
    bu da şöyle oluyor:
    ayşe - annesidir - berkecan
    ayşe - kardeşidir - ahmet
    ahmet - dayısıdır - berkecan
    pelinsu - kızıdır - mehmet
    berkecan - yeğenidir - ahmet

    sonra siz kimler dayıdır diye merak ettiğinizde, onlarca join yapmadan ilişki türü dayı olanları hüp diye çekip, keyifle yolunuza devam edebiliyorsunuz.

    en yaygın örneği için (bkz: neo4j). kendisi oynaması acayip keyifli bir graph veritabanı. kullanımını sağlayan cypher sorgu dili ise öğrenmesi ve anlaması oldukça kolay bir syntaxa sahip. canınız bir film veritabanı üzerinde oynamak isterse tutorialını deneyebilirsiniz.
  • en iyi uygulama senaryoları dan biri olan sosyal ağ kapsamında, 2004 yılında facebook üzerinde kullanılarak, kişiler arası arkadaşlık ilişkileri ve de sayfaya girince newsfeed sorgusu için kullanılarak relational db'ye kıyasla zaman ve performans kazancı için tercih edilmiştir. bunları dağıtık sistem altyapısı gibi teknik detaylarla birlikte kullanılabilirlik, ui gibi teknik olmayan unsurlarla birlikte düşünüp tasarlayan mark, gerçekten tesadüfen next big thing olunamayacağını gösteriyor. beni şaşırtan ise aynı beynin metaverse gibi projelere yuzmilyonlarca doları harcayabilmesi oluyor.
  • llm ile birlesince ilginc seylere gebe olabilecek veritabani turu.

    https://arxiv.org/pdf/2306.08302.pdf
  • data'dan data üretme kısmında, yani analitik anlamında yararlı veritabanı. mesela sen ve üçüncü bir kişi arasında hiçbir doğrusal bağlantı yok, fakat aranızda aslında baya bi ortak nokta var, siz sadece bunun farkında değilsiniz. bu veritabanları aranızdaki bağlantıyı ortaya çıkarıp, bu bağlantının ne kadar güçlü olduğunu gösterebiliyor. buradan yola çıkarak pek çok optimizasyon ve data üretimi yapılabilir, herhangi bir gruba bağlı insanlar birbirine ne kadar bağlı, kim ne kadar etkili, hangi ürünler birlikte daha çok tüketiliyor, hangi ürünleri hangi tür müşteriler tercih ediyor, tavsiye sistemleri, oylama, puanlama, tüketimle ilgili herhangi bir data, a noktasından b noktasına optimizasyon gibi gibi.

    arka planda relational database gibi çalışır, joinler indexler falan vardır, fakat o joinler için önceden optimize edilmiştir.

    bunların en güzellerinden biri olan kuzudb'nin geliştiricisi avrupa'daki bir akademisyen türk. kuzudb'nin ayrıntılarını öğrenmek isteyen bu videoyu izleyebilir.
  • (bkz: kuzudb ne amk)
hesabın var mı? giriş yap