graph database
Főnév
graph database (tsz. graph databases)
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.
- graph database - Szótár.net (en-hu)
- graph database - Sztaki (en-hu)
- graph database - Merriam–Webster
- graph database - Cambridge
- graph database - WordNet
- graph database - Яндекс (en-ru)
- graph database - Google (en-hu)
- graph database - Wikidata
- graph database - Wikipédia (angol)