Udostępnij za pomocą


Przetwarzanie grafu za pomocą programu SQL Server i usługi Azure SQL Database

Dotyczy: SQL Server 2017 (14.x) i nowsze wersje bazy danychSQL Sql Database azure SQLDatabasew usłudze Microsoft Fabric

Program SQL Server oferuje możliwości grafowej bazy danych do modelowania relacji wiele-do-wielu. Relacje grafów są zintegrowane z Transact-SQL i otrzymują korzyści wynikające z używania programu SQL Server jako podstawowego systemu zarządzania bazami danych.

Co to jest grafowa baza danych?

Grafowa baza danych to kolekcja węzłów (lub wierzchołków) i krawędzi (lub relacji). Węzeł reprezentuje jednostkę (na przykład osobę lub organizację), a krawędź reprezentuje relację między dwoma węzłami, z którymi się łączy (na przykład polubień lub znajomych). Zarówno węzły, jak i krawędzie mogą mieć skojarzone właściwości. Poniżej przedstawiono niektóre funkcje, które sprawiają, że grafowa baza danych jest unikatowa:

  • Krawędzie lub relacje są jednostkami pierwszej klasy w bazie danych programu Graph i mogą mieć skojarzone atrybuty lub właściwości.
  • Pojedyncza krawędź może elastycznie łączyć wiele węzłów w bazie danych programu Graph.
  • Możesz łatwo wyrazić dopasowywanie wzorców i zapytania nawigacji z wieloma przeskoku.
  • Możesz łatwo wyrazić przejściowe zamknięcie i zapytania polimorficzne.

Kiedy używać grafowej bazy danych

Relacyjna baza danych może osiągnąć wszystko, co może zrobić grafowa baza danych. Jednak grafowa baza danych ułatwia wyrażanie niektórych rodzajów zapytań. Ponadto w przypadku określonych optymalizacji niektóre zapytania mogą działać lepiej. Decyzja o wyborze relacyjnej lub grafowej bazy danych jest oparta na następujących czynnikach:

  • Aplikacja ma dane hierarchiczne. Typ danych HierarchyID może służyć do implementowania hierarchii, ale ma pewne ograniczenia. Na przykład nie umożliwia przechowywania wielu elementów nadrzędnych dla węzła.

  • Aplikacja ma złożone relacje wiele-do-wielu; w miarę rozwoju aplikacji dodawane są nowe relacje.

  • Musisz analizować połączone dane i relacje.

Funkcje programu Graph wprowadzone w programie SQL Server 2017

W programie SQL Server 2017 wprowadzono następujące funkcje (14.x).

Tworzenie obiektów grafu

Transact-SQL rozszerzenia umożliwiają użytkownikom tworzenie tabel węzłów lub krawędzi. Zarówno węzły, jak i krawędzie mogą mieć skojarzone właściwości. Ponieważ węzły i krawędzie są przechowywane jako tabele, wszystkie operacje obsługiwane w tabelach relacyjnych są obsługiwane w tabeli węzłów lub krawędzi. Oto przykład:

CREATE TABLE Person
(
    ID INT PRIMARY KEY,
    Name VARCHAR (100),
    Age INT
) AS NODE;
CREATE TABLE friends
(
    StartDate DATE
) AS EDGE;

Na poniższym diagramie przedstawiono sposób przechowywania węzłów i krawędzi jako tabel.

Diagram przedstawiający węzły i krawędzie są przechowywane jako tabele.

Rozszerzenia języka zapytań

Nowa MATCH klauzula jest wprowadzana w celu obsługi dopasowywania wzorców i nawigacji wieloskoku za pośrednictwem grafu. Funkcja MATCH używa składni stylu ASCII-art do dopasowywania wzorców. Aby na przykład znaleźć znajomych "Johna":

-- Find friends of John
SELECT Person2.Name
FROM Person AS Person1, Friends, Person AS Person2
WHERE MATCH(Person1-(Friends)->Person2)
      AND Person1.Name = 'John';

W pełni zintegrowana z aparatem bazy danych programu SQL Server

Rozszerzenia programu Graph są w pełni zintegrowane z aparatem programu SQL Server. Użyj tego samego aparatu magazynu, metadanych, procesora zapytań itp., aby przechowywać dane grafu i wykonywać względem nich zapytania. Wykonywanie zapytań względem grafów i danych relacyjnych w jednym zapytaniu. Łączenie możliwości grafu z innymi technologiami programu SQL Server, takimi jak indeksy magazynu kolumn, wysoka dostępność, usługi języka R, wykres etc. SQL obsługuje również wszystkie funkcje zabezpieczeń i zgodności dostępne w programie SQL Server.

Narzędzia i ekosystem

Skorzystaj z istniejących narzędzi i ekosystemu, które oferuje program SQL Server. Narzędzia, takie jak tworzenie kopii zapasowych i przywracanie, importowanie i eksportowanie, a narzędzie bcp po prostu działa poza polem. Inne narzędzia lub usługi, takie jak SQL Server Integration Services, SQL Server Reporting Services lub Power BI, działają z tabelami grafów, tak jak działają z tabelami relacyjnymi.

Ograniczenia brzegowe

Ograniczenie krawędzi jest definiowane w tabeli krawędzi grafu i jest parą tabel węzłów, z którymi może się połączyć dany typ krawędzi. Ograniczenia brzegowe pomagają deweloperom ograniczyć typ węzłów, z którymi może się łączyć dana krawędź.

Aby dowiedzieć się więcej na temat tworzenia ograniczeń brzegowych i używania ich, zapoznaj się z tematem Ograniczenia usługi Edge.

Scalanie kodu DML

Instrukcja MERGE wykonuje operacje wstawiania, aktualizowania lub usuwania w tabeli docelowej na podstawie wyników sprzężenia z tabelą źródłową. Można na przykład zsynchronizować dwie tabele, wstawiając, aktualizując lub usuwając wiersze w tabeli docelowej na podstawie różnic między tabelą docelową a tabelą źródłową. Używanie MATCH predykatów w MERGE instrukcji jest teraz obsługiwane w usługach Azure SQL Database i SQL Server vNext. Oznacza to, że teraz można scalić bieżące dane grafu (węzły lub tabele krawędzi) z nowymi danymi przy użyciu MATCH predykatów w celu określenia relacji grafów w jednej instrukcji, zamiast oddzielnych INSERTinstrukcji , UPDATEi DELETE .

Aby dowiedzieć się więcej o tym, jak można używać dopasowania w scalaniu języka DML, zobacz MERGE.

Najkrótsza ścieżka

Funkcja SHORTEST_PATH znajduje najkrótszą ścieżkę między dowolnymi dwoma węzłami na grafie lub zaczynając od danego węzła do wszystkich pozostałych węzłów na grafie. SHORTEST PATH Można również użyć do znalezienia przejściowego zamknięcia lub dowolnego przejścia długości na grafie.

Sieć szkieletowa SQL Database

W usłudze Fabric SQL Database program SQL Graph jest dozwolony, ale tabele node i Edge nie są dublowania w usłudze Fabric OneLake.