Porovnanie grafov a relačných databáz

Grafová databáza ukladá a dotazuje údaje ako sieť uzlov (entít) a hrán (vzťahov). Tento prístup sa líši od formátu tabuliek a riadkov v relačných databázach. Grafové databázy vynikajú v modelovaní a analýze vysoko prepojených údajov, ako sú sociálne siete, znalostné grafy, odporúčacie systémy a odhaľovanie podvodov.

Tento článok porovnáva grafové databázy a relačné databázy. Zdôrazňuje kľúčové rozdiely, prípady použitia a výhody v analytike. Použite tieto informácie na rozhodnutie, či použiť graf v Microsoft Fabric alebo relačnú databázu pre vaše konkrétne potreby.

Základné rozdiely medzi grafovými a relačnými databázami

  • Grafové databázy: Usporiadajte údaje ako uzly a okraje a explicitne ukladajte vzťahy. Prechádzanie pripojeniami je efektívne a často nezávislé od celkovej veľkosti množiny údajov.
  • Relačné databázy: Usporiadajte údaje do tabuliek s riadkami a stĺpcami. Použite operácie JOIN na odvodenie vzťahov v čase dotazu. Pri vysoko prepojených dátach môžu byť tieto operácie zložité a pomalé.

Dotazovanie vzťahov: Spojenia verzus prechody

Relačné databázové dotazy: Cudzie kľúče prepájajú údaje v rôznych tabuľkách. Na načítanie súvisiacich údajov používajú relačné databázy operácie JOIN na kombinovanie riadkov z viacerých tabuliek. Pre jednoduché vzťahy fungujú JOIN v poriadku. Ale pri hlbokých alebo variabilných spojoch môžu byť drahé a zložité.

Dotazy do grafovej databázy: Ukladajte vzťahy ako hrany, aby ste mohli priamo prechádzať z jedného uzla do druhého. Dotazy grafu môžu efektívne prechádzať viacerými skokmi a zložitými vzormi. Jazyky na dotazovanie grafov, ako je Graph Query Language (GQL), umožňujú jednoduché vyjadrenie prechodov a porovnávania vzorov.

Príklad:

GQL:

MATCH (p:Person)-[:friendsWith]->(friend)-[:purchased]->(o:Order)
WHERE p.name = 'Alice';
RETURN o

SQL (ekvivalent):

SELECT o.*
FROM Person AS p
JOIN Friends_With AS fw ON p.id = fw.person_id
JOIN Person AS friend ON fw.friend_id = friend.id
JOIN Purchased AS pur ON friend.id = pur.person_id
JOIN "Order" AS o ON pur.order_id = o.id
WHERE p.name = 'Alice';

Poznámka

GQL je ISO-štandardizovaný dotazovací jazyk pre grafové databázy. Je navrhnutý na efektívne dotazovanie a manipuláciu s grafmi štruktúrovanými dátami. Vyvíja ho tá istá medzinárodná pracovná skupina, ktorá dohliada na SQL.

Výkonnostné dôsledky pre grafové a relačné databázy

Grafové databázy môžu prekonať relačné databázy pri dotazoch, ktoré zahŕňajú mnoho hrán alebo neznáme hĺbky, najmä pri analýze hlbokých odkazov alebo rekurzívnych dotazoch. Relačné databázy vynikajú v operáciách a agregáciách orientovaných na množiny vďaka desaťročiam optimalizácie. V grafe v Microsoft Fabric je dotazovací engine optimalizovaný na prechádzanie a porovnávanie vzorov medzi veľkorozmernými grafmi uloženými v OneLake.

Úvahy škálovania pre grafové a relačné databázy

  • Relačné databázy: Zvyčajne škálujú vertikálne (väčšie stroje) a môžu sa škálovať horizontálne prostredníctvom shardingu a replikácie. Rozdeľovanie vysoko prepojených schém je zložité a môže spôsobovať režijné náklady naprieč sieťami.
  • Grafové databázy: Mierka vertikálne a horizontálne. Distribuované grafové databázy rozdeľujú grafy medzi počítače s cieľom udržať súvisiace uzly pohromade pre efektívne prechádzanie.

Kedy použiť grafovú databázu alebo relačnú databázu

Použite grafovú databázu, ak:

  • Vaše dáta sú vysoko prepojené a zamerané na vzťahy (sociálne siete, znalostné grafy a odporúčania).
  • Musíte prejsť neznámy alebo premenlivý počet skokov.
  • Schéma sa vyvíja alebo je čiastočne štruktúrovaná.
  • Chcete intuitívne modelovanie pre domény, kde sú vzťahy ústredné.

Použite relačnú databázu, ak:

  • Vaše údaje sú väčšinou tabuľkové alebo zapadajú do dobre definovanej štruktúry.
  • Vaše dotazy zahŕňajú ťažké agregácie alebo operácie s veľkými množinami.
  • Máte existujúce nástroje alebo odborné znalosti zosúladené s SQL.

Hybridné prístupy s grafovými a relačnými databázami

Mnohé projekty používajú oba typy databáz: relačnú databázu pre základné transakčné dáta a grafovú databázu pre špecializované analytické alebo sieťové analytické funkcie. V Microsoft Fabric môžete kombinovať grafy s inými dátovými úložiskami v rovnakom pracovnom priestore, čím získate relačné aj grafové schopnosti bez presúvania dát medzi rôznymi systémami.