Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2017 (14.x) a novější verze
databáze SQL Azure SQL Database
Azure SQL Managed Instance
v Microsoft Fabric
SQL Server nabízí možnosti grafové databáze pro modelování relací M:N. Relace grafů jsou integrované do Transact-SQL a získávají výhody používání SQL Serveru jako základního systému pro správu databází.
Co je grafová databáze?
Grafová databáze je kolekce uzlů (neboli vrcholů) a hran (nebo relací). Uzel představuje entitu (například osobu nebo organizaci) a hrana představuje vztah mezi dvěma uzly, které spojuje (například lajky nebo přátele). Oba uzly i hrany můžou mít přidružené vlastnosti. Tady jsou některé funkce, které tvoří jedinečnou grafovou databázi:
- Hrany nebo relace jsou entity první třídy v grafové databázi a mohou mít přidružené atributy nebo vlastnosti.
- Jedna hrana může pružně propojit více uzlů v grafové databázi.
- Snadno můžete vyjádřit porovnávání vzorů a navigační dotazy s více segmenty směrování.
- Snadno můžete vyjádřit přechodné uzavření a polymorfní dotazy.
Kdy použít grafovou databázi
Relační databáze může dosáhnout čehokoli, co dokáže grafová databáze. Grafová databáze ale usnadňuje vyjádření určitých typů dotazů. S konkrétními optimalizacemi můžou některé dotazy také fungovat lépe. Vaše rozhodnutí zvolit relační nebo grafovou databázi vychází z následujících faktorů:
Vaše aplikace obsahuje hierarchická data. Datový typ HierarchyID lze použít k implementaci hierarchií, ale má určitá omezení. Například neumožňuje ukládat více nadřazených prvků pro uzel.
Vaše aplikace má složité relace M:N; s vývojem aplikace se přidávají nové relace.
Potřebujete analyzovat propojená data a vztahy.
Funkce graphu představené v SQL Serveru 2017
V SQL Serveru 2017 (14.x) byly představeny následující funkce.
Vytváření objektů grafu
rozšíření Transact-SQL umožňují uživatelům vytvářet uzly nebo hraniční tabulky. Oba uzly i hrany můžou mít přidružené vlastnosti. Vzhledem k tomu, že uzly a hrany se ukládají jako tabulky, podporují se všechny operace podporované v relačních tabulkách na uzlu nebo hraniční tabulce. Tady je příklad:
CREATE TABLE Person
(
ID INT PRIMARY KEY,
Name VARCHAR (100),
Age INT
) AS NODE;
CREATE TABLE friends
(
StartDate DATE
) AS EDGE;
Následující diagram znázorňuje, jak jsou uzly a hrany uložené jako tabulky.
Rozšíření dotazovacího jazyka
Nová MATCH klauzule se zavádí pro podporu porovnávání vzorů a navigace s více segmenty směrování v grafu. Funkce MATCH pro porovnávání vzorů používá syntaxi stylu ASCII-art. Pokud například chcete najít přátele "John":
-- Find friends of John
SELECT Person2.Name
FROM Person AS Person1, Friends, Person AS Person2
WHERE MATCH(Person1-(Friends)->Person2)
AND Person1.Name = 'John';
Plně integrovaný v databázovém stroji SQL Serveru
Rozšíření graphu jsou plně integrovaná v modulu SQL Serveru. K ukládání a dotazování dat grafu použijte stejný modul úložiště, metadata, procesor dotazů atd. Dotazování napříč grafy a relačními daty v jednom dotazu Kombinace možností grafů s dalšími technologiemi SQL Serveru, jako jsou indexy columnstore, ha, služby R, etc. SQL graph také podporuje všechny funkce zabezpečení a dodržování předpisů dostupné pro SQL Server.
Nástroje a ekosystém
Využijte výhod stávajících nástrojů a ekosystému, které SQL Server nabízí. Nástroje, jako je zálohování a obnovení, import a export a bcp , fungují hned. Jiné nástroje nebo služby, jako jsou Služby Integrace SQL Serveru, SQL Server Reporting Services nebo Power BI, pracují s tabulkami grafů přesně tak, jak fungují s relačními tabulkami.
Omezení hran
Hraniční omezení je definováno v hraniční tabulce grafu a je dvojicí tabulek uzlů, které se daný typ okraje může připojit. Omezení edge pomáhají vývojářům omezit typ uzlů, ke kterým se daný hraniční zařízení může připojit.
Další informace o vytváření a používání hraničních omezení najdete v omezeních Edge.
Sloučení DML
Příkaz MERGE provádí operace vkládání, aktualizace nebo mazání na cílové tabulce na základě výsledků spojení se zdrojovou tabulkou. Můžete například synchronizovat dvě tabulky vložením, aktualizací nebo odstraněním řádků v cílové tabulce na základě rozdílů mezi cílovou a zdrojovou tabulkou. Použití MATCH predikátů v MERGE příkazu je nyní podporováno v Azure SQL Database a SQL Serveru vNext. To znamená, že teď můžete sloučit aktuální data grafu (uzly nebo hraniční tabulky) s novými daty pomocí MATCH predikátů k určení relací grafu v jednom příkazu, nikoli v samostatných INSERTUPDATEpříkazech a DELETE příkazech.
Chcete-li se dozvědět více o tom, jak lze match použít ve merge DML, viz MERGE.
Nejkratší cesta
Funkce SHORTEST_PATH najde nejkratší cestu mezi libovolnými dvěma uzly v grafu nebo od daného uzlu po všechny ostatní uzly v grafu.
SHORTEST PATH lze také použít k vyhledání tranzitivního uzavření nebo pro libovolnou délku procházení v grafu.
Databáze SQL infrastruktury
V databázi SQL Fabric je sql Graph povolený, ale tabulky Node a Edge se zrcadlí na Fabric OneLake.