Megosztás a következőn keresztül:


Gráffeldolgozás az SQL Server és az Azure SQL Database használatával

A következőkre vonatkozik: Az SQL Server 2017 (14.x) és újabb verziói az Azure SQL DatabaseAzure SQL Managed InstanceSQL Database-adatbázist a Microsoft Fabricben

Az SQL Server gráfadatbázis-képességeket kínál a több-a-többhöz kapcsolatok modellezéséhez. A gráfkapcsolatok integrálva vannak a Transact-SQL, és élvezhetik az SQL Server alapszintű adatbázis-kezelő rendszerként való használatának előnyeit.

Mi az a gráfadatbázis?

A gráfadatbázis csomópontok (vagy csúcsok) és élek (vagy kapcsolatok) gyűjteménye. A csomópontok egy entitást (például egy személyt vagy egy szervezetet) jelölnek, a peremhálózat pedig a két összekapcsolt csomópont (például kedvelők vagy barátok) közötti kapcsolatot jelöli. A csomópontokhoz és az élekhez is tartozhatnak tulajdonságok. Íme néhány funkció, amely egyedivé teszi a gráfadatbázist:

  • Az élek vagy kapcsolatok a Graph-adatbázisok első osztályú entitásai, és attribútumokkal vagy tulajdonságokkal is rendelkezhetnek.
  • Egyetlen él rugalmasan csatlakoztathat több csomópontot a Graph Database-ben.
  • A mintaegyeztetés és a több ugrásos navigációs lekérdezések egyszerűen kifejezhetők.
  • A tranzitív lezárás és a polimorfikus lekérdezések egyszerűen kifejezhetők.

Mikor érdemes gráfadatbázist használni?

A relációs adatbázisok bármit elérhetnek, amit egy gráfadatbázis képes. A gráfadatbázisok azonban megkönnyítik bizonyos típusú lekérdezések kifejezését. Bizonyos optimalizálásokkal bizonyos lekérdezések is jobban teljesíthetnek. A relációs vagy gráfadatbázis kiválasztása a következő tényezőkön alapul:

  • Az alkalmazás hierarchikus adatokkal rendelkezik. A HierarchyID adattípus használható a hierarchiák implementálásához, de bizonyos korlátozásokkal rendelkezik. Ez például nem teszi lehetővé, hogy több szülőt tároljon egy csomóponthoz.

  • Az alkalmazás összetett több-a-többhöz kapcsolatokkal rendelkezik; az alkalmazás fejlődésével új kapcsolatok jönnek létre.

  • Elemeznie kell az összekapcsolt adatokat és kapcsolatokat.

Az SQL Server 2017-ben bevezetett gráffunkciók

Az SQL Server 2017-ben (14.x) a következő funkciók jelentek meg.

Gráfobjektumok létrehozása

Transact-SQL bővítmények lehetővé teszik a felhasználók számára csomópont- vagy éltáblák létrehozását. A csomópontokhoz és az élekhez is tartozhatnak tulajdonságok. Mivel a csomópontok és élek táblákként vannak tárolva, a relációs táblákon támogatott összes művelet támogatott a csomóponton vagy az éltáblán. Íme egy példa:

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

Az alábbi ábra a csomópontok és élek táblákként való tárolását mutatja be.

A csomópontokat és éleket ábrázoló diagram táblákként van tárolva.

Nyelvi bővítmények lekérdezése

Új MATCH záradék jelenik meg, amely támogatja a mintaegyezést és a több ugrásos navigációt a gráfon keresztül. A MATCH függvény ASCII-art stílusú szintaxist használ a mintaegyezéshez. Például a "John" barátainak megkeresése:

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

Teljesen integrálva az SQL Server adatbázismotorba

A gráfbővítmények teljes mértékben integrálva vannak az SQL Server-motorba. Használja ugyanazt a tárolómotort, metaadatokat, lekérdezésfeldolgozót stb. a gráfadatok tárolásához és lekérdezéséhez. Gráf- és relációs adatok lekérdezése egyetlen lekérdezésben. A gráffunkciók kombinálása más SQL Server-technológiákkal, például oszlopcentrikus indexekkel, HA- és R-szolgáltatásokkal, etc. SQL gráfokkal is támogatja az SQL Serverrel elérhető összes biztonsági és megfelelőségi funkciót.

Eszközök és ökoszisztéma

Használja ki az SQL Server által kínált meglévő eszközöket és ökoszisztémát. Az olyan eszközök, mint a biztonsági mentés és visszaállítás, az importálás és az exportálás, valamint a bcp egyszerűen kijönnek a dobozból. Más eszközök és szolgáltatások, például az SQL Server Integration Services, az SQL Server Reporting Services vagy a Power BI ugyanúgy működnek gráftáblákkal, mint a relációs táblákkal.

Peremhálózati korlátozások

A peremhálózati kényszer egy gráf éltábláján van definiálva, és egy csomóponttáblapár, amelyet egy adott éltípus csatlakoztathat. A peremhálózati korlátozások segítségével a fejlesztők korlátozhatják az adott élhez csatlakoztatható csomópontok típusát.

A peremhálózati kényszerek létrehozásáról és használatáról az Edge-megkötések című témakörben olvashat bővebben.

DML egyesítése

A MERGE utasítás beszúrási, frissítési vagy törlési műveleteket hajt végre egy céltáblán egy forrástáblával való illesztés eredményei alapján. Szinkronizálhat például két táblát úgy, hogy sorokat szúr be, frissít vagy töröl egy céltáblában a céltábla és a forrástábla közötti különbségek alapján. A predikátumok utasításban való MATCH használata MERGE mostantól támogatott az Azure SQL Database-ben és az SQL Server vNextben. Ez azt jelzi, hogy az aktuális gráfadatok (csomópont- vagy éltáblák) új adatokkal egyesíthetők a MATCH predikátumok használatával, hogy a gráfkapcsolatok egyetlen utasításban, külön INSERT, UPDATEés DELETE utasítások helyett megadhatók.

Ha többet szeretne megtudni arról, hogyan használható az egyezés az egyesítési DML-ben, tekintse meg a MERGE című témakört.

Legrövidebb elérési út

A SHORTEST_PATH függvény megkeresi a legrövidebb útvonalat a gráf két csomópontja között, vagy egy adott csomóponttól kezdve a gráf összes többi csomópontja felé. SHORTEST PATH tranzitív lezárás vagy tetszőleges hosszúságú bejárások keresésére is használható a gráfban.

Fabric SQL-adatbázis

A Fabric SQL-adatbázisban az SQL Graph használata engedélyezett, de a Csomópont- és Edge-táblák nem tükröznek a Fabric OneLake-hez.