男女性高爱潮免费网站,免费人成在线观看视频播放,三级三级三级a级全黄,日日摸日日碰夜夜爽无码,国产精品久久久久精品日日,黑人巨大粗物挺进了少妇,国产麻豆一区二区三区精品视频,精品久久久久久亚洲综合网

ISO 專家解讀 | 什么是 GQL 國際標準圖查詢語言

悅數圖數據庫
+ 關注
2024-05-14 11:46
728次閱讀

新的屬性圖數據庫語言標準,ISO/IEC 39075 信息技術 — 數據庫語言 — GQL,近日已經發布。但GQL 是什么,這個數據庫語言標準中包含了什么內容?

GQL 這一新數據庫語言標準由國際標準委員會 ISO/IEC JTC1 SC32 WG3 數據庫語言團隊開發。忽略上面的 ISO/IEC JTC1 標準層次結構的縮寫,SC32 WG3 是一個國際委員會,同時負責開發和強化 SQL 數據庫語言。SC32 WG3 的參與者(個別專家)由世界各國的標準流程指派。

當標準委員會開始討論一個新的屬性圖數據庫語言標準時,SC32 WG3 選擇了 “GQL” 這個名字。可能大家覺得 GQL 是 Graph Query Language(圖查詢語言)的縮寫,但是這個名字主要是為了體現 GQL 與 SQL 數據庫語言是并列的。

SQL 國際標準的首個版本(ISO/IEC 9075 - 數據庫語言 — SQL)發布于 1987 年。從那時起,SQL 標準經過了多次修訂,并融入了多種新技術。2019 年,一個新項目獲批,主要是制定專注屬性圖數據庫的平行標準,即數據庫語言 GQL。這對標準機構和行業的重要程度不言而喻,因為這是 ISO 在近 35 年內首次發布的、新的數據庫查詢語言。

近幾年,屬性圖數據庫在大數據、NoSQL 技術領域變得越發重要。屬性圖數據的一大特點是,在數據中會創建關系,用戶可直接編寫聲明式查詢而無需指定關系。與將數據結構化為表的關系型模型不同,屬性圖模型在數據庫內將數據結構化為圖。這讓基于模式的分析成為可能,并且可用極小的成本添加新類型數據。現實生活中,關于圖的應用從數字孿生(Digital Twin)到反洗錢(Anti-Money Laundering),再到藥物發現(Drug Discovery)、供應鏈分析(Supply Chain),以及為生成式人工智能(GenAI)提供的知識圖譜支持,等等。這種新模型與語言的結合前景,以及在數據庫領域內的顯著且持續增長的用量,很大程度上是 SQL 的新 ISO 兄弟語言 GQL 的基礎。

屬性圖數據庫存儲和檢索點(頂點)和邊(關系)。而 GQL 標準規定的聲明式語言受啟發于現有屬性圖數據庫產品和 SQL 標準。

GQL 標準是一個完整的數據庫語言,支持創建、讀取、更新和修改屬性圖數據。而這里的屬性圖數據可以是 Schema Free 的,也可以通過完整的屬性圖模式(Graph Type)進行約束。

GQL 標準約定了多種多樣的數據類型,來支持字符和字節字符串、定點數、浮點數以及嵌套數據。GQL 查詢中所用的圖模式匹配(GPM,Graph Pattern Matching)語言非常強大,允許用戶編寫相對簡單的查詢來進行復雜的數據分析。

作為一種數據庫語言,GQL 不只是一種圖查詢語言。與 SQL 一樣,它設定了一個從持久化且可擴展的目錄初始化的運行時環境。目錄列出了存儲的數據對象,這些對象通過經過身份驗證的會話,并利用事務性工作單元來進行訪問。它支持插入、更新、刪除和讀取屬性圖,這些屬性圖是由目錄中的條目創建和引用的。這些圖的內容可以是無約束的,也可以由管理員定義的數據模型(圖類型)進行約定。這些圖類型是 GQL 中“GQL-schema”的一部分,即目錄中用于存放元數據和數據定義的專用容器。此外,通過定義數據的所有權歸經過身份驗證的用戶所有,GQL-schema 也支持了一個基本的安全模型。

GQL 吸收了眾多現有商業圖查詢語言的特性,包括由 Neo4j Inc. 開發的 openCypher、Tigergraph Inc. 的 GSQL、Oracle Inc. 的 PGQL,以及 LDBC 的研究語言 G-Core。此外,它還與 SQL/PGQ 共享一個從 Cypher 派生的圖模式匹配子語言(非正式稱為 GPML4),該語言是 SQL 的只讀擴展,允許將通過專用視圖訪問的表格數據當作屬性圖處理。GPML 通過將模式圖與數據圖進行匹配,返回數據圖的子圖的表格表示形式。

屬性圖的應用場景

屬性圖被私人和公共金融機構廣泛使用,用來識別潛在的犯罪行為,如:洗錢。這種使用場景既出于需要,有時也是法律要求。例如,一系列的資金轉移——從 A 到 B,再從 B 到 C,最后從 C 回到 A——可能暗示洗錢活動的存在。同樣地,在評估投資組合風險、借貸雙方的償債能力、反欺詐、提供客戶 360 度全方位視圖以及其他多種場景中,屬性圖也發揮著重要作用。

屬性圖同樣用于模擬公共事業基礎設施,如:水資源分配、電力分配和電信網絡。在這些場景中,典型的查詢包括:評估在配電網絡特定節點增加新負載或分布式發電設施(例如:風能或太陽能)可能帶來的影響和收益,以及進行網絡設計、維護、故障診斷和安全管理。

屬性圖的其他應用場景還包括(但不限于)社交網絡、物料清單、訪問控制、產品推薦、引用網絡、路由策略、影響力檢測、蛋白質交互網絡、影響評估,以及生成式 AI。

GQL 示例

以下示例主要介紹了如何使用 GQL 部分功能:

  • 查詢和圖模式匹配
  • 添加、修改以及刪除數據
  • 事務處理
  • Schema Free 圖和 Fixed Schema 圖
  • 查詢和圖模式匹配

GQL 查詢采用了一種功能豐富的圖模式匹配(GPM)語言。以下示例演示了如何查找與名為“Avery”的點存在一跳關系的所有點:

MATCH (a {firstname: 'Avery'})-[b]->(c)RETURN a, b, c

這里這里 MATCH 語句定義了變量 a、b 和 c,并能在查詢的后續部分引用,本例中是在

RETURN語句中。而用戶編寫查詢語句時,不用預先了解“Avery”與其他點之間的具體關系。

事實上,GQL 標準并未規定返回數據的顯示方式。下面是一種可能的展示方式,以可視化圖的形式:

 

ISO 專家解讀 | 什么是 GQL 國際標準圖查詢語言

 

圖可視化工具能夠展示出查詢到的數據之間的關系,并在需要時展開顯示更多細節。

而數據的另一種展示方式是文本。

MATCH (a {firstname: 'Avery'})-[b]->(c)RETURN a.firstname, b, c.name+------------------------------------------------------------+| a.firstname | b                              | c.name      |+------------------------------------------------------------+| "Avery"     | [:LivesIn {since: 1980-07-15}] | "Granville" || "Avery"     | [:HasPet]                      | "Unique"    |+------------------------------------------------------------+

GQL GPM 支持更復雜的查詢,例如:量化路徑模式。例如:

/* 簡單的查詢 */MATCH ((a)-[r]->(b)){1,5}RETURN a, r, b

此示例將查找一個點 a 認識(r)另外一個點 b 的路徑,而這個路徑長度最多為 5,即一個五跳查詢。當然,GQL 支持你演變出更復雜的量化路徑模式。

  • 增刪改圖數據

上面示例中的 GQL 數據是使用 INSERT 語句創建的。例如:

/* 插入 1 個點 */INSERT (:Pet {name: 'Unique', pettype: 'Dog'})

在這個示例中,“Pet”是一個標簽,而“name”和“pettype”是標簽的屬性。標簽是可以存在或不存在的標識符。屬性則是名稱和值的組合。無論是點(頂點)還是邊(關系),都可以擁有標簽和屬性。

在 GQL 表達中,點被圓括號()包圍,邊則被方括號[]包圍。

同樣的,GQL 的插入語句也能用上復雜的圖模式。下面的語句將插入兩個點,以及它們之間的一條邊。

/* 插入 2 個點及 1 條邊 */INSERT (:Person {firstname: 'Avery'                ,lastname: 'Stare'                ,joined: date("2022-08-23")})     -[:LivesIn {since: date("2022-07-15")}]->      (:City {name: 'Granville'             ,state: 'OH'             ,country: 'USA'})

MATCH語句的結果后面也可以接著INSERT語法:

/* 新建一條連接 Avery 和寵物狗 Unique 的邊 */MATCH (a {firstname: 'Avery'})     ,(d {name: 'Unique'})INSERT (a)-[:HasPet]->(d)

在這個示例中,a 和 d 是別名。MATCH 語句定義了它們,并持續有效直到整條 GQL 語句的結束。MATCH 的結果是兩個點表達式返回的點的笛卡爾積。由于每個點表達式僅返回一個點,因此INSERT操作將只插入一條邊。

修改 GQL 數據的方法包括:識別要更新的點或邊,再設置或刪除它們的屬性。例如:

MATCH (d:Pet) where d.name="Unique"SET d.weight_kg=26
MATCH (e {lastname: 'Stare'})REMOVE e.joined

GQL 數據的刪除是通過識別點,斷開(DETACH )其關系,再刪除點來實現的。例如:

/* 刪除 Avery 和相關的點 */MATCH (a {firstname: 'Avery'})-[b]->(c)DETACH DELETE a, c
  • 事務

GQL 支持可序列化的事務,且支持額外的自定義事務模式。事務可以通過顯式或隱式的START TRANSACTION語句啟動,并通過COMMIT或ROLLBACK語句結束。GQL 還支持自動事務的啟動和提交。

 

  • Schema Free 與 Fixed Schema 圖

GQL 支持 Schema Free 圖,這種圖對輸入數據沒有任何限制;同時也支持 Fixed Schema 圖,這種圖可以通過定義圖類型來創建,圖類型明確定義了可以存在于該圖中的點和關系的類型。

Schema Free 圖接受插入任意數據。這方便快速啟動數據系統,但數據的控制問題則留給了應用開發者,或者是用戶。

 

GQL 標準還支持創建圖類型。圖類型是一種數據模板,通過明確規定在基于特定圖類型創建的 Fixed Schema 圖中能夠包含的點類型和邊類型,從而限制圖庫的內容。一個 Fixed Schema 圖只能包含圖類型中規定的點類型和邊類型。

管理員可以在 GQL 模式下,通過目錄層次結構,基于圖類型創建圖。也可以基于單一圖類型創建多個圖。

以下圖類型定義了 2 種點類型和 2 種邊類型:

/* 示例改編自 Alastair Green 2024-03-26 */CREATE GRAPH TYPE /MyFolder/control/fraud_TYPE // DDL     (customer:Customer => {id::STRING, name::STRING}),     (account:Account => {no::STRING, acct_type::STRING }),     (customer)-[:HOLDS]->(account),     (account)-[:TRANSFER {amount::INTEGER}]->(account)

使用圖類型創建圖時,圖的內容將被限制為圖類型中所描述的點類型和邊類型。

CREATE GRAPH /MyFolder/control/fraud /* 圖名為 “fraud” */  TYPED /MyFolder/control/fraud_TYPE /* 圖類型是 fraud_TYPE */

當數據修改完成時,修改內容必須符合圖類型指定的限制。如果數據不符合圖類型定義,則該語句會導致異常,并且將進行事務回滾。

USE GRAPH fraudINSERT // DML     (d:Customer {id: 'AB23', name: 'Doe'}),     (r:Customer {id: 'CH45', name: 'Reiss'}),     (a1:Account {no: '25673890', type: 'C'}),     (a2:Account {no: '05663981', type: 'C'}),     (d)-[:HOLDS]->(a1),     (r)-[:HOLDS]->(a2),     (a1)-[:TRANSFER {amount: 5000}]->(a2)USE GRAPH fraudMATCH // DQL     (c1:Customer)-[:HOLDS]->(a1:Account)     -[t:TRANSFER]->     (a2:Account)<-[:HOLDS]-(c2:Customer)RETURN c1.name, a1.no, t.amount, c2.name, a2.no/*'Doe', '25673890', 5000, 'Reiss', '05663981' 1 row returned*/

點和邊與表格相比如何?

在 SQL 數據庫中,數據以記錄的形式存儲在表格中,每個表格都有固定的結構。表格之間的關系可以通過約束來強制實施,但編寫查詢的人(或程序)需要理解表格之間的關系。

在屬性圖數據庫中,抽象級別被提高,允許將一組表格視為一個單元(稱為“數據乘積 Data Product”)。

帶有特定標簽(或多個標簽)的點,在功能上類似于一個表格。然而,MATCH 查詢可以根據點的指定特征來訪問點,而不受標簽的限制。

邊被用來描述節點之間的關系。編寫查詢的人(或程序)可以查詢這些關系,而不需要預先知道這些關系的具體情況。

總結

本文簡要介紹了 GQL 數據庫語言的功能。完整的 GQL 語言還支持額外的功能,這些超出了本文檔的范圍。GQL 數據庫語言的設計考慮了未來的發展,將來準備在目錄中加入更多形式的數據,并已經為返回非表格結果(例如圖)做好了準備。

作為國內圖數據庫領域的先驅,杭州悅數一直致力于推進圖行業前沿技術的進步發展。我們的多位圖數據庫研發專家是ISO/IEC JTC 1/SC 32/WG 3 工作組成員,參與 GQL 標準的制定以及后續版本的更新。后續,我們的專家將更詳細地介紹 GQL 以及它對于圖行業、對于企業用戶的意義和能力,敬請關注。

 

[免責聲明]

原文標題: ISO 專家解讀 | 什么是 GQL 國際標準圖查詢語言

本文由作者原創發布于36氪企服點評;未經許可,禁止轉載。

資深作者悅數圖數據庫
悅數圖數據庫
0
杭州悅數科技有限公司
實力廠商
實力廠商
優質服務
優質服務
及時響應
及時響應
立即詢價
相關話題
數據分析
相關文章
最新文章
查看更多
關注 36氪企服點評 公眾號
打開微信掃一掃
為您推送企服點評最新內容
消息通知
咨詢入駐
商務合作
主站蜘蛛池模板: 韩国久久久久久级做爰片| 真人二十三式性视频(动)| 国产成人综合色在线观看网站| 久久久久久久久无码精品亚洲日韩 | 亚洲国产一区二区a毛片日本| 二人世界完整版在线观看| 辣妹子影院电视剧免费播放| 少女视频在线观看完整版中文| 久久久国产精品午夜一区| 国产熟女乱子视频正在播放| 国产xxxx视频在线观看| 武装少女在线观看高清完整版免费| 丁香花在线| 人人爽久久涩噜噜噜av| 亚洲av综合永久无码精品天堂| 色欲狠狠躁天天躁无码中文字幕| 日本xxxxx片免费观看| www.夜夜操.com| 挺进邻居人妻雪白的身体韩国电影| 国产亚av手机在线观看| 漂亮人妻洗澡被公强 日日躁 | 黄网站色成年片大免费高清| 久久男人av资源站| 吃奶还摸下面动态图gif| 色翁荡息又大又硬又粗又视频图片 | 人人妻人人爽人人做夜欢视频九色| 老熟女高潮喷了一地| 小宝极品内射国产在线| 青青草国产成人99久久| 《熟妇的荡欲》电影| 亚洲av成人精品一区二区三区| 亚洲自偷精品视频自拍| aa片在线观看视频在线播放| 少妇午夜啪爽嗷嗷叫视频| aⅴ久久欧美丝袜综合| 99精产国品一二三产区| 中文字幕mv在线观看| 忘忧草www日本韩国| 欧美老熟妇欲乱高清视频| 亚洲+欧美+视频| 天堂а在线中文在线新版|