Article

header-4.png

Category: Expertise strategy

Neo4j: Grafowa baza danych rewolucjonizuje zarządzanie informacjami

Kompletny przewodnik po nowym rozwiązaniu.

Konrad Kaliciński, Programista Front-end emagine, 29/06/2023

Wraz z gwałtownym wzrostem ilości danych na znaczeniu zyskują nowoczesne rozwiązania bazodanowe. Jednym z najciekawszych i najbardziej innowacyjnych rozwiązań jest Neo4j - grafowa baza danych, która rewolucjonizuje sposób przechowywania i analizy informacji.

W tym artykule przyjrzymy się bliżej temu fascynującemu narzędziu, poznamy jego zalety, funkcje oraz praktyczne zastosowanie.

me-800px

Konrad Kaliciński:

Software developer realizujący projekty dla klientów emagine. Karierę w IT rozpoczynał w 2007 r. Absolwent Politechniki Wrocławskiej na kierunku inżynieryjnym. Od roku certyfikowany specjalista w obszarze Neo4J.

Czym jest grafowa baza danych?

Zacznijmy od tego, czym jest graf. Za Wikipedią:

Graf – podstawowy obiekt rozważań teorii grafów, struktura matematyczna służąca do przedstawiania i badania relacji między obiektami.

Grafowa baza danych różni się od relacyjnej czy obiektowej bazy danych swoją strukturą. W bazie grafowej informacje są przechowywane jako węzły i relacje między nimi. To pozwala na bardziej elastyczne i intuicyjne modelowanie danych, a także ich przeglądanie. W przeciwieństwie do innych typów baz, bazy grafowe doskonale nadają się do rozwiązywania problemów, w których relacje między danymi mają kluczowe znaczenie, na przykład do: wykrywania i analizy oszustw, systemów rekomendacji produktów, modelowania sieci społecznościowych, analityki i sztucznej inteligencji, usług finansowych, zarządzanie łańcuchami dostaw czy baz wiedzy.

grafowa-baza-danych-middle_1.jpg

Struktura bazy danych neo4j:

Neo4j składa się z kilku podstawowych elementów, które umożliwiają tworzenie grafowych modeli danych. Pierwszym z nich są węzły (nodes), które reprezentują obiekty lub jednostki danych. Każdy węzeł może posiadać właściwości (properties), które zawierają informacje na jego temat.

Kolejnym elementem są relacje (relationships), które łączą węzły ze sobą i opisują zależności między nimi. Relacje mogą również mieć własne właściwości. Etykietowanie węzłów (labels) umożliwia grupowanie węzłów o podobnych cechach, co ułatwia ich późniejsze wyszukiwanie i analizę. Jeden węzeł może mieć kilka etykiet.

Język Cypher i wykonywanie zapytań:

Neo4j wykorzystuje język zapytań o nazwie Cypher, który jest specjalnie zaprojektowany do pracy z danymi przechowywanymi jako graf. Jest językiem deklaratywnym, który pozwala na łatwe definiowanie wzorców i relacji. Jeżyk pozwala nam również na wykonywanie bardziej złożonych zapytań, takich jak wyszukiwanie ścieżek między węzłami, obliczanie wag relacji czy filtrowanie wyników na podstawie warunków logicznych. Dzięki twórcom Neo4j możemy w bardzo łatwy sposób przetestować, jak działa baza danych i Cypher. Mamy do wyboru użyć rozwiązania zainstalowanego na maszynie lokalnej, lub też aplikacji w chmurze tj.:
Aura DB
Mało tego - każda z tych opcji umożliwia nam użycie predefiniowanego zbioru danych testowych (playground). Dla potrzeb tego artykułu korzystam z aplikacji Neo4j Desktop, ale równie dobrze można korzystać z Aura DB lub pobrać obraz dockerowy. Po uruchomieniu widzimy interfejs aplikacji Bloom (narzędzie do graficznej wizualizacji danych) razem z informacją Try Neo4j with live data - należy kliknąć w przycisk Open guide (1) aby otworzyć samouczek, otworzyć drugą stronę (2), gdzie mamy zapytanie, które po kliknięciu (3) zostanie przekopiowane do linii komend. Pozostało nam tylko je uruchomić (4). Poniżej ilustracja jak to zrobić.


 

grafowa-baza-danych-middle_2.jpg

  1. Po uruchomieniu nasze dane są gotowe do przeglądania. Załóżmy, że jesteśmy fanem Keanu Reevesa.

Sprawdźmy, czy taki aktor jest w naszej bazie:

MATCH (actor {name: "Keanu Reeves"}) RETURN actor

grafowa-baza-danych-middle_3.jpg

02. Wyświetlimy wszystkie filmy, w których zagrał:

MATCH (actor {name: "Keanu Reeves"})-[ACTED_IN]->(movie:Movie) RETURN actor, movie

grafowa-baza-danych-middle_4

03. A teraz wszystkich aktorów, którzy grali z Keanu w jakimś filmie:

MATCH (tom:Person {name:"Keanu Reeves"})-[:ACTED_IN]->(m)<-[:ACTED_IN]-(coActors) RETURN coActors

grafowa-baza-danych-middle_5

04. Możemy zawęzić rezultaty do filmu Matrix:

MATCH (people:Person)-[relatedTo]-(:Movie {title: "The Matrix"}) RETURN people, Type(relatedTo), relatedTo

grafowa-baza-danych-middle_6

 

05. Na koniec znajdźmy najkrótsze powiązanie między Keanu Reevesem a Tomem Hanksem

MATCH p=shortestPath( (keanu:Person {name:"Keanu Reeves"})-[*..10]-(tom:Person {name:"Tom Hanks"}) )
RETURN p

grafowa-baza-danych-middle_7

Jak widać, język Cypher wydaje się intuicyjny - mimo, że nie znasz jeszcze dokładnej składni, możesz zgadnąć, co powinno zwrócić dane zapytanie. Podobnie jest z wizualizacją danych - jest ona o wiele bardziej intuicyjna i zrozumiała dla nas w postaci grafu niż w postaci tabel.

 


Modelowanie danych w Neo4j :

Kluczowym aspektem tworzenia nowej bazy neo4j jest odpowiednie modelowanie danych. Aby skonstruować skuteczny model, warto zacząć od zidentyfikowania pytań, na które system ma odpowiadać. Jest to zresztą metoda rekomendowana przez Neo4j. Po zidentyfikowaniu pytań należy zaprojektować strukturę grafu tak, aby umożliwić efektywne i precyzyjne wyszukiwanie odpowiedzi na te pytania. Często wymaga to iteracyjnego podejścia, w którym stopniowo udoskonalamy model w oparciu o nasze potrzeby.

SSUCv3H4sIAAAAAAAEAJ1Sy27DIBC8V+o/WJxjCYNtcH8l6gEbEqM6xgKcKo3878XvjaK2Um/szCzMLnN/fYkiVAqnK/QW3ccq1Lppeuet8Nq0AcaHBVdSe2O1aEZwxIaJQc4L3zvlwBUJofYUarr2ikZcbgFIVqASrfOm+uhq4w0kpOqM037CHbyiM63MIDD1n6xyNez/MqYVdkSAxUp4dQ7eH0yucx/nOlqJxZ8PFEIHgLm+nLAVGg7/7pwP79t6zqqtxv3cB+DaqkaJebHHWYo+Pr2yl2mKRXTVUhlQi15qA6a8mko00yLBzZ3VlW7PoM34WllQVyEC5gKA1vjJyTIYkmGlY5nQhFGcEIIZZ5xQitEai/A9WkKvc1JqHSh7Ax77rjFCKrlDIENJRniaE17k20afQjJpCoYzoHlK2KLJgWbN1Maxndsiu3AM79xj9BYBT3bBnsKVpDM3bOnty4v2/rehWY5T/pPZsOz0r4UUmLLlWfD5enwSqVyWFMsyLihVcZpnLOYnmccZSQXlWVaQlIe8Dt8ferRmJAQAAA==

Ciekawoski:

Na koniec kilka ciekawostek na temat zastosowania Neo4j w praktyce w różnego rodzaju projektach:

Jedną z największych i najbardziej znanych baz danych korzystających z Neo4j jest baza danych "Panama Papers". Była to ogromna baza danych, która zawierała informacje o tajnych kontach bankowych i oszustwach podatkowych odkrytych przez International Consortium of Investigative Journalists (ICIJ). Ta baza danych składała się z milionów dokumentów, relacji między nimi, powiązań z osobami i firmami.

Innym znaczącym przykładem jest baza danych wykorzystywana przez Społeczność Finansową Facebooka (Facebook Financial). Facebook wykorzystuje Neo4j do analizy i zarządzania siecią finansową, która obejmuje miliardy użytkowników, powiązań między nimi, transakcji i innych danych finansowych.

Ważnym projektem wykorzystującym Neo4j jest również "Drug Interactions Database" (Baza danych interakcji leków). Jest to duża baza danych, która zawiera informacje o interakcjach między różnymi lekami, substancjami chemicznymi i składnikami odżywczymi. Dzięki Neo4j, ta baza danych umożliwia analizę i wykrywanie potencjalnych interakcji leków, co jest niezwykle istotne dla służby zdrowia i farmaceutycznej. Innym przykładem z tej branży jest firma Bayer, która wykorzystuje Neo4j do analizy swoich baz danych w dziedzinie chemoinformatyki.

Neo4j znajduje też zastosowanie w analizie tras lotniczych i zarządzaniu powiązanymi danymi. Przykładem jest firma Flightradar24, która wykorzystuje Neo4j do modelowania i analizy setek tysięcy lotów dziennie, monitorowania tras, opóźnień i powiązań między lotniskami.

Podsumowanie:

W dobie rosnącej popularności sztucznej inteligencji, sieci społecznościowych i ogromnych zbiorów danych, w których liczba powiązań stale wzrasta, nie sposób nie zauważyć rosnącego znaczenia grafowych baz danych, które oferują innowacyjny sposób organizacji i analizy informacji, umożliwiają odkrywanie głębszych zależności i wzorców.
Grafowe bazy danych stanowią obiecującą technologię, która ma potencjał zrewolucjonizować sposób, w jaki organizujemy, analizujemy i wykorzystujemy dane. Ich zdolność do modelowania złożonych powiązań między danymi oraz wydajność w przetwarzaniu ogromnych zbiorów informacji czyni je nieocenionym narzędziem w dzisiejszym świecie zależnym od danych. Dlatego warto śledzić rozwój tej technologii i zrozumieć, jak może wpływać na nasze życie - nie tylko zawodowe.

 

 


Przeczytaj także:
Kluczowe kompetencje pracownika Help Desk

Chcesz wiedzieć więcej?

Pomożemy Ci odnieść sukces w roli niezależnego konsultanta IT.

Blog

Więcej wpisów na blogu

left-arrow
right-arrow

Grafowa baza danych rewolucjonizuje zarządzanie informacjami
Expert stories
Webinar

Grafowa baza danych rewolucjonizuje zarządzanie informacjami – odpal zapis webinaru

Już jest! Zapis webinaru pt. Grafowa baza danych rewolucjonizuje zarządzanie informacjami… czyli o Neo4j z perspektywy front-endowca.

Expert stories

Crunch w IT – czy wiesz, jak mu zapobiec?

Temat crunchu pojawia się zwykle w kontekście branży, która tworzy gry komputerowe. Problem jednak nie dotyczy tylko tego sektora rynku. Crunch zdarza się wszędzie. Są jednak sposoby, aby mu zapobiec.

Expert stories

Idealna współpraca testera z programistą – czy to w ogóle możliwe?

W idealnym zespole programistycznym feedback od klienta przekłada się na świetne wymagania. Są one następnie zamieniane na dokładnie opisane zadania, w których jest wszystko ,co niezbędne do wykonania i testowania aplikacji. W rzeczywistości jednak taka sytuacja nigdy nie występuje. Jak to zmienić?

Wszystko o pracy testera oprogramowania - odpal zapis webinaru
Expert stories
Webinar

Wszystko o pracy testera oprogramowania – odpal zapis webinaru

„5 najważniejszych lekcji, które wyniosłem w ciągu 5 lat testowania oprogramowania” … czyli o ewolucji tego obszaru IT, umiejętnościach testera oraz efektywności w zawodzie opowiada konsultant emagine – Piotr Tuński.

Expert stories

Różne podejścia do generowania kodu front-end – czy znasz je wszystkie?

Jak pisałem w poprzednim artykule, kod front-endowy jest w pewnej mierze powtarzalny. Szczególnie dużo powtarzalności jest na granicy back-endu i front-endu. Ponieważ obiekty z bazy są przesyłane z back-endu, frontend odbiera je i typuje (jeśli używamy np. TS) w celu dalszego przetwarzania. Co dzieje się dalej?

Expert stories

AI zbuduje aplikację webową? To możliwe!

Od jakiegoś czasu dysponujemy narzędziem, które jest w stanie przezwyciężyć początkowe trudności w zbudowaniu prototypu aplikacji webowej. Jest nim oczywiście Sztuczna Inteligencja, która – w odpowiednich rękach – może pomóc rozwiązać wiele problemów deweloperów.

Expert stories

Nx dla Angular jako niezawodne narzędzie upraszczające pracę przy projektach IT

Nx to narzędzie, które upraszcza budowanie projektów typu monorepo. W tym artykulę skupię się na jego głównych zastosowaniach w aplikacjach używających Angulara. Narzędzie pozwala także na współpracę z wieloma innymi technologiami, jak React czy Node.

Expert stories

7 grzechów głównych w zapewnianiu jakości: błędy, których powinien unikać każdy tester!

Zagłębimy się w mroczne zakamarki branży testowania oprogramowania. Odkryjemy siedem grzechów głównych, które mogą zaszkodzić dążeniu do doskonałej jakości produktu. Poznaj, jakie pułapki czyhają na testerów i jak unikać tych błędów, prowadząc swój zespół ku ścieżce doskonałości w testowaniu.

Expert stories

Zarządzanie finansami w chmurze, czyli wszystko o FinOps

W miarę jak organizacje coraz bardziej polegają na chmurze obliczeniowej, pojawia się potrzeba skutecznego zarządzania kosztami i optymalizacji wydatków związanych z usługami chmurowymi. FinOps to obszar działalności, który w znacznym stopniu zmienia sposób tego zarządzania. Chcesz wiedzieć więcej?

Dyrektywa NIS2 dot. cyberbezpieczeństwa
Expert stories
Webinar

Już jest – zapis webinaru “Dyrektywa NIS2 dot. cyberbezpieczeństwa”

W obliczu coraz bardziej skomplikowanych zagrożeń związanych z cyberprzestrzenią, bezwzględnym priorytetem dla organizacji na całym świecie staje się zabezpieczenie danych oraz infrastruktury online. Nasz ekspert Grzegorz Powichrowski wesprze Was w ocenie przygotowania firm do spełnienia wymogów Dyrektywy NIS2 w dziedzinie cyberbezpieczeństwa.

Expert stories

Dla specjalistów IT: W jaki sposób odciążyć umysł w pracy

Od kilku lat interesuję się wydajnością pracy i w tym artykule chciałbym przedstawić najważniejsze metody, które wg mnie pozwolą pracować łatwiej i wydajniej w środowisku IT.

Expert stories

Microsoft Dev Box – nowoczesna maszyna robocza

Microsoft Dev Box to zwirtualizowane rozwiązanie, które umożliwia inżynierom IT szybkie uruchamianie samoobsługowych stacji roboczych wstępnie skonfigurowanych do ich zadań, przy jednoczesnym zachowaniu scentralizowanego zarządzania w celu maksymalizacji bezpieczeństwa i zgodności ze standardami w organizacji. Czy już je znasz?

Expert stories

Wymagania niefunkcjonalne w procesie tworzenia aplikacji

Podczas rozwijania aplikacji webowej zwykle odkrywamy szereg specyficznych funkcjonalności, wedle których ma ona działać. Niektóre z nich mogą wydawać się oczywiste dla części członków zespołu IT pracującego nad rozwiązaniem, jednak inni wolą mieć je spisane w szczegółowej formie, aby móc je wszystkie zaimplementować lub testować.

Expert stories

Najlepsze praktyki w zakresie bezpieczeństwa łańcucha dostaw oprogramowania

Łańcuch dostaw oprogramowania to „proces dostarczania produktu do klienta” w domenie IT, odnosi się do procesu projektowania, budowania, dostarczania i utrzymania. Jego bezpieczeństwo jest nie tylko ważnym, ale wręcz kluczowym aspektem współczesnego świata IT.

AI: Nowa fala przyszłości"
Expert stories
Webinar

Obejrzyj zapis webinaru “AI: Nowa fala przyszłości”

Szansa cywilizacyjna, czy też zagrożenie? Algorytmy sztucznej inteligencji od wielu lat stanowią jeden z centralnych punktów dyskusji o przyszłości technologii. Rozwiązania oparte na AI, niezależnie od poziomu organizacji na którym zostaną wykorzystane, pomogą stworzyć nowatorskie modele biznesowe. Sprawdźcie zatem, czy Wasza organizacja jest do tego dobrze przygotowana. Czego się spodziewać? Jak wykorzystać AI, aby tworzyć przewagę konkurencyjną na rynku?

Expert stories

Snapshot testing w aplikacjach front-endowych – czy wiesz już wszystko?

Jednym z największych wyzwań podczas tworzenia aplikacji front-endowych jest unikanie wprowadzania niechcianych zmian. Testowanie logiki biznesowej jest możliwe za pomocą testów jednostkowych, jednak nie sprawdzają one zwykle całej struktury HTML. Rozwiązaniem problemu regresji w plikach HTML może być snapshot testing.

Expert stories

Przyszłość sztucznej inteligencji – jakie wyzwania i możliwości stoją przed światem IT?

Przyszłość sztucznej inteligencji (SI) niesie ze sobą zarówno wyzwania, jak i ogromne możliwości rewolucji technologicznej. Zewsząd słyszymy, że SI przejmie we wszystkim kontrolę i my jako ludzie będziemy już mniej potrzebni lub wręcz zbędni – czy aby na pewno?

Expert stories

Efektywne sposoby na pracę z back-endem

Aby tworzyć rozwiązania front-endowe, zwykle pobieramy dane z aplikacji back-endowej. W tym artykule chciałbym przedstawić, w jaki sposób możemy udoskonalić i przyspieszyć tę pracę. Podstawowe czynniki, które wziąłem pod uwagę podczas analizy, to elastyczność pracy oraz to, czy programista używający API, może edytować dane zwracane przez back-end.

Expert stories

Neo4j: Grafowa baza danych rewolucjonizuje zarządzanie informacjami

Wraz z gwałtownym wzrostem ilości danych na znaczeniu zyskują nowoczesne rozwiązania bazodanowe. Jednym z najciekawszych i najbardziej innowacyjnych rozwiązań jest neo4j – grafowa baza danych, która rewolucjonizuje sposób przechowywania i analizy informacji. W tym artykule przyjrzymy się bliżej temu fascynującemu narzędziu, poznamy jego zalety, funkcje oraz praktyczne zastosowanie.

Expert stories

Jak AI wspiera pracę Front-end developerów – praktyczny poradnik

Z perspektywy front-endowca w ostatnim roku zauważyłem jak bardzo zastosowanie nowoczesnych narzędzi pomaga w szybszym tworzeniu aplikacji i sprawia, że pozbawione są one błędów. W artykule opisuję zastosowanie ChatGPT, Github Copilot oraz Github Copilot Chat, określając je skrótowo mianem AI.

Expert stories

Wypalenie zawodowe specjalistów IT – jak je przewidzieć i jak mu zapobiec?

Na pewno każdy z nas chociaż raz czuł, że w jego pracy coś idzie inaczej, niż by chciał. Dochodzi to tego zmęczenie, stres, spadek motywacji i nagle cały zawodowy świat się wali – zaczynamy myśleć, czy to, co robimy ma sens, czemu dotychczasowe działania nie przynoszą pożądanych efektów. Innymi słowy, wpadamy w rozmyślania nad tym, jak jest ciężko. Najczęściej to tylko zmęczenie, brak odpoczynku, stres, natomiast kiedy warto zadbać o siebie bardziej i przekonać się, czy to nie jest wypalenie zawodowe?

Expert stories

Jak skutecznie zbudować i utrzymać relację z kandydatem podczas procesu rekrutacyjnego w IT

Branża IT od dawna  jest  jedną z najbardziej dynamicznie rozwijających się dziedzin rynku, niezależnie od szerokości geograficznej. Tym bardziej, znalezienie odpowiedniego kandydata do realizacji projektów IT, który spełniałby wszystkie wymagania zarówno pod względem wiedzy i umiejętności technicznych, jak i kompetencji miękkich nigdy nie było czymś prostym.

Expert stories

Poznaj kompetencje miękkie przyszłości w obszarze sprzedaży

Inwestycja w kompetencje miękkie może szczególnie opłacić się w zawodach przyszłości. W przeciwieństwie do twardych, kapitałem nie jest wykształcenie czy fachowa wiedza. Soft skills pozwolą tym, którzy je wdrożą i oswoją, z lekkością adaptować się do zmian jakie czekają rynek pracy.

Paweł Pancerz
Expert stories

Rozwój Chmury – co czeka nas w najbliższej przyszłości?

W ciągu ostatnich lat rozwój technologii chmurowych zmienił się bardzo dynamicznie. Wymogi rynkowe oraz coraz większa świadomość w zakresie potencjału technologii chmurowych sprawiają, że obawy przed tą technologią IT są coraz mniejsze.

Marcin Kosiński
Expert stories

Efektywna praca zdalna w innej strefie czasowej

Zdalna praca w innej strefie czasowej  jest możliwa, gdy w zespole panuje odpowiednia dyscyplina.

ichał Mrozowski, Starszy Analityk Biznesowy, Scrum Master
Expert stories

10 cech dobrego Scrum Mastera

Czy każdy nadaje się na Scrum Mastera? Jeśli zespół poszukuje Scrum Mastera, który wniesie wartość dodaną i będzie dla niego wsparciem – a nie tylko prowadzącym ceremonie – powinien szukać osoby posiadającej konkretne cechy.