Ugrás a tartalomhoz

graph database

A Wikiszótárból, a nyitott szótárból


Főnév

graph database (tsz. graph databases)

  1. (informatika, mesterséges intelligencia) gráfadatbázis

A graph database, vagy gráf-adatbázis egy speciális típusú adatbázis, amelyben az adatok nem táblákban (mint relációs adatbázisokban), hanem csomópontokból (nodes) és élekből (edges) álló gráfszerkezetben vannak tárolva. Ez az adattípus különösen hatékony komplex kapcsolatok (pl. közösségi hálók, ajánlórendszerek, hálózatelemzés) modellezésére és lekérdezésére.



🧠 Alapfogalmak

Fogalom Jelentés
Node Egy entitás vagy objektum (pl. személy, termék, város)
Edge Két node közötti kapcsolat (irányított vagy irányítatlan)
Property Minden node vagy edge rendelkezhet tulajdonságokkal (pl. név, dátum)
Label A node típusa vagy kategóriája (pl. :User, :Movie)

Például:

(Alice)-[FRIEND_OF]->(Bob)

📊 Előnyei

  • Természetes módon modellezi a kapcsolatrendszereket
  • Nincsenek bonyolult JOIN-ok – kapcsolatok az adatmodell részei
  • Rugalmas sémakezelés – nincs fix tábla- vagy oszlopszerkezet
  • Kiváló teljesítmény mély kapcsolatkeresésnél (pl. “barátok barátainak barátai”)
  • Hatékony ajánlórendszer és hálózatelemzés



🔍 Használati esetek

  • Közösségi hálózatok (Facebook, LinkedIn): emberek, kapcsolatok
  • Ajánlórendszerek (Netflix, Amazon): “a hasonló felhasználók ezeket is nézték”
  • Hamisításdetektálás: pénzügyi tranzakciók elemzése kapcsolati alapon
  • Hálózati topológia: eszközök, csatlakozások, útvonalak
  • Ontológia- és tudásgráfok: szemantikus web, mesterséges intelligencia



🛠️ Népszerű graph database rendszerek

Név Leírás Lekérdezőnyelv
Neo4j Legelterjedtebb gráf-adatbázis Cypher
ArangoDB Multi-model DB (gráf + dokumentum) AQL
JanusGraph Nagy skálázhatóság, Apache TinkerPop Gremlin
Amazon Neptune Felhőalapú gráf-DB (AWS) SPARQL, Gremlin
OrientDB Gráf + dokumentum együtt SQL-szerű lekérdezés



🔎 Lekérdezőnyelvek – példa: Cypher (Neo4j)

MATCH (a:Person)-[:FRIEND_OF]->(b:Person)
WHERE a.name = 'Alice'
RETURN b.name

Ez a lekérdezés visszaadja azoknak az embereknek a nevét, akik Alice barátai.



📈 Gráf vs. relációs adatbázis

Jellemző Relációs DB Gráf DB
Séma Merev (táblák, mezők) Rugalmas (címkék, tulajdonságok)
Kapcsolatok kezelése JOIN műveletekkel Beépített élek
Kapcsolati mélység Lassú komplex JOIN esetén Gyors, mivel élek direkt módon kezelhetők
Példa MySQL, PostgreSQL Neo4j, JanusGraph



⚠️ Korlátok

  • Kevésbé hatékony tömeges aggregálás esetén
  • Adattárolás és replikáció komplexebb lehet
  • Tanulási görbéje meredekebb lehet, főleg új lekérdezőnyelvek miatt (pl. Cypher, Gremlin)



Összefoglalás

A gráf-adatbázis egy kapcsolat-központú adattárolási modell, amely természetes módon reprezentálja a világ hálózati struktúráit – emberek, események, dolgok közti kapcsolatokat. Olyan feladatokban különösen hatékony, ahol kapcsolati mélység, hálózat, összefüggés és kapcsolatfeltérképezés kulcsfontosságú. A modern alkalmazások, mint a tudásgráfok, ajánlórendszerek és csalásdetektálás, egyre inkább támaszkodnak erre az adatbázis-típusra.