🎯 Definicja
Baza grafowa to system bazy danych, w którym priorytetem są relacje między danymi. Dane przechowywane są jako Węzły (Nodes, np. “Osoba”) i Krawędzie (Edges, np. “Lubi”, “Pracuje w”).
🔑 Kluczowe punkty
- Relacje First-Class: W SQL relacja to kosztowny JOIN obliczany w momencie zapytania. W grafie relacja jest zapisana fizycznie na dysku jako wskaźnik. Przechodzenie po krawędziach jest błyskawiczne (index-free adjacency).
- Złożoność: Idealne do modelowania sieci społecznych, systemów rekomendacji, wykrywania fraudów (kręgi powiązań).
- Języki: Cypher (Neo4j), Gremlin (Apache TinkerPop), SPARQL (RDF).
📚 Szczegółowe wyjaśnienie
Bazy grafowe rozwiązują problem “Seven degrees of Kevin Bacon”. W SQL zapytanie “Znajdź znajomych znajomych znajomych…” wymaga 3 JOINów (wolne). W grafie to proste przejście ścieżką o długości 3. Są dwa główne typy grafów:
- LPG (Labeled Property Graph): Neo4j. Węzły i krawędzie mają etykiety i właściwości (JSONy). Intuicyjne dla programistów.
- RDF (Resource Description Framework): Standard semantyczny (W3C). Trójki (Podmiot-Orzeczenie-Dopełnienie). Używany w Knowledge Graphs.
💡 Przykład zastosowania
Panama Papers. Dziennikarze śledczy użyli Neo4j, aby połączyć miliony dokumentów. “Osoba A” jest dyrektorem w “Firma B”, która przelała kasę do “Firma C”, której właścicielem jest “Żona osoby A”. W tabelach Excela/SQL wykrycie takiej pętli powiązań byłoby koszmarem. W grafie to prosty wzorzec.
📌 Źródła
👽 Brudnopis
- Algorytmy grafowe: PageRank (ważność węzła), Community Detection (klastry), Shortest Path.
- Knowledge Graphs (Grafy Wiedzy) - łączenie danych z różnych domen w jeden spójny graf (Google Knowledge Graph).