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 SQL Server Integration Services, 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 vložení, aktualizace nebo odstranění v 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.
Další informace o tom, jak se dá shoda použít ve sloučení DML, najdete v tématu 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.