Gráffeldolgozás az SQL Server és az Azure SQL Database használatával
A következőkre vonatkozik: SQL Server 2017 (14.x) és újabb verziók
Azure SQL Database
Azure SQL Managed Instance
SQL Database a Microsoft Fabric
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. Adott optimalizálás esetén 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 (14.x)
Az SQL Server 2017-ben az alábbi 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 INTEGER 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.
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 Person1, Friends, Person 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, a BCP egyszerűen kijön a dobozból. Más eszközök és szolgáltatások, például az SSIS, az SSRS 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 gráf peremhálózati táblája élkorlátot határoz meg, és egy csomóponttábla(ok) párja, 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.
Az élkorlátok létrehozásáról és használatáról további információt Peremhálózati korlátozásokcímű témakörben olvashat.
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 MATCH predikátumok MERGE utasításban való használata 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) egyesíthetők az új adatokkal a HOL.VAN predikátumok használatával, hogy egyetlen utasításban adja meg a gráfkapcsolatokat a különálló INSERT/UPDATE/DELETE utasítások helyett.
Ha többet szeretne megtudni arról, hogyan használható az egyezés az egyesítési DML-ben, tekintse meg MERGE Utasítás.
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 engedélyezett, de a Node- és Edge-táblák nem fognak tükrözni a Fabric OneLake-be.
Kapcsolódó tartalom
- Olvassa el az SQL Graph Database – Architektúra
- Az SQL Graph használatának első lépéseit SQL Graph Database – Minta