encyklopedia.space

Neo4j

Neo4j to otwarto‑źródłowa grafowa baza danych typu NoSQL, opracowana przez firmę Neo4j, Inc. System jest zbudowany w języku Java i wykorzystuje własny język zapytań Cypher, który umożliwia opisanie wzorców grafowych w sposób zbliżony do języka SQL. Neo4j jest najpopularniejszą bazą grafową na świecie i jest stosowany w wielu dziedzinach, m.in. w analizie sieci społecznych, zarządzaniu wiedzą, rekomendacjach, cyberbezpieczeństwie oraz w systemach big data.

Historia

Projekt Neo4j rozpoczął się w 2007 roku w firmie Neo Technology (obecnie Neo4j, Inc.) z inicjatywy Johana Svenssona i Emila Sundberga. Pierwsza publiczna wersja 2007 była dostępna jako oprogramowanie otwarto‑źródłowe na licencji GPL. W 2010 roku wydano wersję 1.5, w której wprowadzono język zapytań Cypher. Od 2013 roku Neo4j zaczęło przyjmować model komercyjny, oferując wersje Enterprise oraz wsparcie techniczne.

Architektura

Neo4j opiera się na modelu property graph, w którym zarówno wierzchołki, jak i krawędzie mogą posiadać atrybuty (tzw. właściwości). System przechowuje graf w trybie ACID, co zapewnia spójność danych nawet w środowiskach o dużym natężeniu zapisów. Dane są indeksowane przy pomocy struktury B‑Tree oraz własnego silnika Labeled Store, który umożliwia szybkie przeglądanie sąsiedztwa w dużych grafach.

Wersja Enterprise oferuje funkcje skalowania horyzontalnego, w tym klastrowanie, replikację i wysoką dostępność. System może być uruchamiany jako samodzielna aplikacja, usługa Docker, a także w chmurze (np. AWS, Azure).

Język zapytań Cypher

Cypher to deklaratywny język zapytań zaprojektowany specjalnie dla grafów. Składnia przypomina SQL, lecz operuje na wzorcach wierzchołków i relacji. Przykładowe zapytanie znajdowania przyjaciół znajomego:

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

Cypher jest wspierany nie tylko w Neo4j, ale także w innych systemach grafowych, takich jak Apache Spark GraphX (poprzez warstwę kompatybilności).

Wersje i licencjonowanie

  • Community Edition – darmowa, otwarto‑źródłowa wersja na licencji GPL, zawierająca podstawowe funkcje przetwarzania grafów.
  • Enterprise Edition – wersja komercyjna z dodatkowymi funkcjami: zapasowe kopiowanie, szyfrowanie, kontrola dostępu i narzędzia do monitorowania.
  • Neo4j Aura – zarządzana usługa w chmurze (SaaS), dostępna w modelu pay‑as‑you‑go.

Zastosowania

Neo4j znajduje zastosowanie w licznych dziedzinach:

  • Sieci społecznościowe – modelowanie znajomości, rekomendacji treści i analizy wpływu.
  • Systemy rekomendacyjne – analiza ścieżek zakupowych i podobieństw produktów.
  • Cyberbezpieczeństwo – wykrywanie ataków i analizy zachowań w sieciach komputerowych.
  • Biologia i medycyna – modelowanie interakcji między białkami, genami i chorobami.
  • Finanse – analiza transakcji, wykrywanie oszustw i monitorowanie łańcuchów własności.

Porównanie z innymi bazami grafowymi

W porównaniu z innymi systemami, takimi jak Amazon Neptune, Apache TinkerPop (Gremlin) czy OrientDB, Neo4j wyróżnia się:

  1. Doświadczeniem w przetwarzaniu bardzo dużych grafów (setki milionów wierzchołków).
  2. Rozbudowanym ekosystemem narzędzi (Neo4j Desktop, Bloom, Graph Data Science Library).
  3. Silnym wsparciem komercyjnym i rozbudowaną dokumentacją.

Ekosystem i narzędzia

W skład ekosystemu Neo4j wchodzą:

  • Neo4j Desktop – graficzny interfejs do zarządzania bazami i projektami.
  • Neo4j Bloom – narzędzie do wizualizacji i eksploracji grafów przeznaczone dla użytkowników nietechnicznych.
  • Graph Data Science Library – biblioteka algorytmów grafowych (np. centralność, wykrywanie wspólnot).
  • Roadmap – plan rozwoju funkcji, w tym wsparcie dla C i Pythona poprzez sterowniki Bolt.

Wspólnota i edukacja

Neo4j posiada aktywną społeczność, organizuje coroczną konferencję GraphConnect oraz udostępnia materiały edukacyjne: Neo4j Academy, samouczki, oraz certyfikaty Neo4j Certified Professional. Wiele uczelni wykorzystuje Neo4j w kursach dotyczących data science i sztucznej inteligencji.

Patenty i licencje

Od 2015 roku Neo4j, Inc. posiada szereg patentów dotyczących optymalizacji przechowywania grafów i zapytań Cypher. Licencja GPL obejmuje jedynie edycję Community, natomiast Enterprise oraz Aura są objęte własnymi licencjami komercyjnymi.

Bibliografia

  • „Neo4j Graph Database”, wyd. O'Reilly Media, 2021.
  • „Cypher Query Language Reference”, Neo4j Documentation, 2023.
  • „Graph Data Science Primer”, Neo4j Academy, 2022.

Zobacz także

Baza danych | Graf | NoSQL | Cypher (język) | Java (programowanie)