Neo4j tutorial - podstawy grafowej bazy danych - część 2
W poprzedniej części kursu Neo4j skonfigurowaliśmy środowisko Neo4j do pracy i utworzyliśmy pierwsze obiekty - węzły w bazie danych do których dodaliśmy właściwości. Tę część zaczniemy od utworzenia relacji między nimi.
Pamiętasz, że w relacyjnej bazie danych przechowywalibyśmy klientów jednej tabeli, informacje o zakupionych przez nich produktach (lub po produkty) w drugiej. By uzyskać informacje jakie produkty kupił klient wraz ze szczegółami klienta i szczegółami produktu, użylibyśmy JOIN i wykorzystali klucze w tabelach (np. numer klienta). Im więcej JOIN'ów, im więcej informacji w tabelach - tym więcej czasu potrzebuje relacyjna baza danych na przygotowanie rezultatów zapytania.
W Neo4j wszystkie informacje mamy w jednym worku i tworzymy miedzy nimi relacje. Relacje w każdym momencie możemy utworzyć, zmienić ich właściwości, usunąć je.
Neo4j tutorial - podstawy grafowej bazy danych - część 1
Organizacja relacyjnych baz danych
Ten materiał został napisany byś mógł(mogła) zapoznać się z grafową bazą danych Neo4j i rozpocząć jej wykorzystywanie w swoich projektach. Zapewnie masz co najmniej ogólne pojęcie jak wygląda przechowywanie danych w relacyjnych bazach danych (RDBMS). Typowa firma przechowuje informacje o swoich klientach, produktach którymi handluje, informacje o dokonanej sprzedaży.
A więc relacyjne bazy danych przechowują ustrukturyzowane dane w tabelach z ustalonymi kolumnami określonych typów. Jeśli jest to np. tabela która przechowuje informacje o klientach możemy mieć tam kolumnę np. "numer klienta" z typem danych numer i "nazwisko klienta" jako varchar/text. Każda więc relacyjna baza danych ma swój schemat; abstrakcyjny wzór, który reprezentuje przechowywanie danych w bazie danych. Opisuje zarówno organizację danych, jak i relacje między tabelami w danej bazie danych.
W relacyjnych bazach danych odwołania do wierszy w innych tabelach są realizowane przez odwoływanie się do atrybutów kluczy. Na przykład by połączyć produkty z właściwym klientem odwołujemy się do klucza "numer klienta" w obu tabelach.
W twojej tabeli przechowującej klientów masz z pewnością wiecej kolumn które przechowują informacje o każdym z klientów. Jeśli nie posiadasz któregoś z atrybutów klienta (np. dla części nie znasz ich adresu), ci klienci ciągle mają kolumny "adres" z typem danych, nawet jeśli są puste. Każda z kolumn tabeli musi mieć też zdefiniowany typ danych przed wgraniem tam danych. Zobaczysz poniżej że zupełnie inaczej wygląda to w Neo4j.

Jak zintegrować Neo4j z innymi bazami danych (RDBMS) z użyciem JDBC
W wielu projektach zachodzi potrzeba integracji z różnymi typami baz danych. Neo4j potrafi połączyć się z relacyjnymi bazami danych by pobrać potrzebne dane lub rozszerzyć istniejący modeli danych. Dzięki apoc.load.jdbc możesz uzyskać dostęp do dowolnej bazy danych, która udostępnia sterownik JDBC, i wykonywać zapytania, których wyniki są przekształcane w strumienie wierszy. Te wiersze można następnie wykorzystać do aktualizacji lub tworzenia struktur grafów.
Konfiguracja środowiska
By używać połączenia JDBC niezbędna jest instalacja biblioteki APOC. Zobacz ten artykuł by dowiedzieć się więcej. Procedura JDBC znajduje się w wersji 'full' biblioteki APOC. Pobierz ją i skopiuj do katalogu 'plugins'. Potrzebujesz też konektor JDBC do MySQL który pobierzesz ze strony. Wgraj ten plik do katalogu 'plugins'. Po wgraniu plików, ponownie uruchom Neo4j.

Rozszerzanie możliwości grafowej bazy danych
Zrób więcej, szybciej za pomocą biblioteki APOC Neo4j
Neo4j 3.x wprowadziła pojęcie procedur i funkcji zdefiniowanych przez użytkownika. Są to niestandardowe implementacje pewnych funkcjonalności, których nie da się (łatwo) wyrazić w samym Cypherze. Są zaimplementowane w Javie i mogą być łatwo wdrożone w twojej instancji Neo4j, a następnie wywoływane bezpośrednio z Cypher. Biblioteka APOC składa się z wielu (około 450) procedur i funkcji, które pomagają w wielu różnych zadaniach w obszarach takich jak integracja danych, algorytmy wykresów lub konwersja danych
APOC oznacza "Awesome Procedures On Cypher"
Instalacja biblioteki Neo4j APOC
Zbiór procedur APOC Core jest dostarczany z Neo4j i można go znaleźć w katalogu $NEO4J_HOME/labs. APOC Full można pobrać z GitHub. Niektórych procedur nie znajdziesz w edycji core. Wersja full zawiera to co posiada 'core' plus inne. APOC Core można zainstalować, przenosząc plik jar APOC z katalogu $NEO4J_HOME/labs do katalogu $NEO4J_HOME/plugins.
Następnie zmień ustawienia w pliku konfiguracyjnym $NEO4J_HOME/conf/neo4j.conf:
dbms.security.procedures.unrestricted=apoc.*
dbms.security.procedures.allowlist=apoc.*
Po edycji pliku konfiguracyjnego ponownie uruchom Neo4j.