Udostępnij za pośrednictwem


Porównanie grafów i relacyjnych baz danych

Uwaga / Notatka

Ta funkcja jest obecnie w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie jest zalecana w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą nie być obsługiwane lub mogą mieć ograniczone możliwości. Aby uzyskać więcej informacji, zobacz Wygólne warunki użytkowania Microsoft Azure Previews.

Grafowa baza danych przechowuje dane i wykonuje zapytania jako sieć węzłów (jednostek) i krawędzi (relacje). Takie podejście różni się od formatu tabel i wierszy relacyjnych baz danych. Grafowe bazy danych wyróżniają się w modelowaniu i analizowaniu wysoce połączonych danych, takich jak sieci społecznościowe, grafy wiedzy, systemy rekomendacji i wykrywanie oszustw.

W tym artykule porównaliśmy grafowe bazy danych i relacyjne bazy danych. Wyróżnia kluczowe różnice, przypadki użycia i zalety analizy. Skorzystaj z tych informacji, aby zdecydować, czy używać grafu w usłudze Microsoft Fabric , czy relacyjnej bazy danych dla określonych potrzeb.

Podstawowe różnice między grafami i relacyjnymi bazami danych

  • Grafowe bazy danych: Organizuj dane jako węzły i krawędzie, przechowując relacje jawnie. Przechodzenie połączeń jest wydajne i często niezależne od całkowitego rozmiaru zestawu danych.
  • Relacyjne bazy danych: Organizowanie danych w tabelach przy użyciu wierszy i kolumn. Operacje JOIN umożliwiają wnioskowanie relacji w czasie wykonywania zapytań. W przypadku wysoce połączonych danych te operacje mogą stać się złożone i powolne.

Wykonywanie zapytań dotyczących relacji: łączenia i przejścia

Zapytania relacyjnej bazy danych: Klucze obce łączą dane w różnych tabelach. Aby pobrać powiązane dane, relacyjne bazy danych używają operacji JOIN do łączenia wierszy z wielu tabel. W przypadku prostych relacji JOINy działają prawidłowo. Jednak w przypadku połączeń o głębokiej lub zmiennej długości mogą one być kosztowne i złożone.

Zapytania bazy danych programu Graph: Przechowuj relacje jako krawędzie, aby można było przechodzić bezpośrednio z jednego węzła do innego. Zapytania grafu mogą wydajnie nawigować po wielu przeskokach i złożonych wzorcach. Języki zapytań grafu, takie jak Graph Query Language (GQL), ułatwiają formułowanie zapytań związanych z przechodzeniem oraz dopasowywaniem wzorców.

Example:

GQL:

MATCH (p:Person)-[:friendsWith]->(friend)-[:purchased]->(o:Order)
WHERE p.name = 'Alice';
RETURN o

SQL (odpowiednik):

SELECT o.*
FROM Person AS p
JOIN Friends_With AS fw ON p.id = fw.person_id
JOIN Person AS friend ON fw.friend_id = friend.id
JOIN Purchased AS pur ON friend.id = pur.person_id
JOIN "Order" AS o ON pur.order_id = o.id
WHERE p.name = 'Alice';

Uwaga / Notatka

GQL to ustandaryzowany język zapytań ISO dla grafowych baz danych. Jest ona przeznaczona do wydajnego wykonywania zapytań i manipulowania danymi ze strukturą grafu. Ta sama międzynarodowa grupa robocza, która nadzoruje program SQL, opracowuje ją.

Implikacje dotyczące wydajności grafów i relacyjnych baz danych

Grafowe bazy danych mogą przewyższać wyniki relacyjnych baz danych dla zapytań obejmujących wiele krawędzi lub nieznanych głębokości, szczególnie w przypadku analiz głębokich linków lub zapytań cyklicznych. Relacyjne bazy danych doskonale sprawdzają się w operacjach i agregacjach zorientowanych na zestaw ze względu na dziesięciolecia optymalizacji. W grafie w usłudze Microsoft Fabric, aparat zapytań jest zoptymalizowany pod kątem przeszukiwania i dopasowywania wzorców na dużą skalę w grafach przechowywanych w usłudze OneLake.

Zagadnienia dotyczące skalowania dla grafów i relacyjnych baz danych

  • Relacyjne bazy danych: Zazwyczaj skalują się w pionie (większe maszyny) i mogą skalować się w poziomie przez fragmentowanie i replikację. Fragmentowanie wysoce połączonych schematów jest złożone i może powodować obciążenie między sieciami.
  • Grafowe bazy danych: Skaluj w pionie i w poziomie. Rozproszone bazy danych grafowych partycjonują grafy między maszynami, aby zachować powiązane węzły i zapewnić wydajne przeszukiwania.

Kiedy należy używać grafowej bazy danych lub relacyjnej bazy danych

Użyj grafowej bazy danych, jeśli:

  • Dane są bardzo połączone i mają duże obciążenie relacjami (sieci społecznościowe, wykresy wiedzy i rekomendacje).
  • Musisz przejść przez nieznaną lub zmienną liczbę przeskoków.
  • Schemat jest w trakcie ewolucji lub częściowo ustrukturyzowany.
  • Potrzebujesz intuicyjnego modelowania dla domen, w których relacje są centralne.

Użyj relacyjnej bazy danych, jeśli:

  • Dane są głównie tabelaryczne lub pasują do dobrze zdefiniowanej struktury.
  • Zapytania obejmują duże agregacje lub operacje na dużych zestawach danych.
  • Masz istniejące narzędzia lub wiedzę zgodną z bazą danych SQL.

Podejścia hybrydowe z grafowymi i relacyjnymi bazami danych

W wielu projektach są używane oba typy baz danych: relacyjna baza danych dla podstawowych danych transakcyjnych i grafowa baza danych do wyspecjalizowanych funkcji analizy lub analizy sieci. W usłudze Microsoft Fabric można połączyć graf z innymi magazynami danych w tym samym obszarze roboczym, zapewniając możliwości relacyjne i grafowe bez przenoszenia danych między oddzielnymi systemami.