關係圖 DBMS EdgeDB 的第一個穩定版本

EdgeDB DBMS 的第一個穩定版本現已推出,它是 PostgreSQL 的附加元件,實現了關聯圖資料模型和 EdgeQL 查詢語言,並針對複雜的分層資料進行了最佳化。 該程式碼是用 Python 和 Rust 編寫的,並根據 Apache 2.0 許可證分發。 客戶端程式庫適用於 Python、Go、Rust 和 TypeScript/Javascript。 提供 DBMS 管理和互動式查詢執行 (REPL) 的命令列工具。

EdgeDB 使用基於物件類型的聲明性系統,而不是基於表格的資料模型。 透過引用連結取代外鍵來定義類型之間的關係(一個物件可以用作另一個物件的屬性)。 type Person { 必需的屬性名稱 -> str; } type Movie { 必要的屬性 title -> str; 多連結參與者 -> 人; }

索引可用於加速查詢處理。 也支援強屬性類型、屬性值限制、運算屬性和預存程序等功能。 EdgeDB 物件儲存方案的功能有點讓人想起 ORM,包括混合模式、連結不同物件的屬性以及整合 JSON 支援的能力。

提供了內建模式遷移的內建工具 - 在更改單獨的 esdl 檔案中指定的模式後,只需執行「edgedb migration create」命令,DBMS 將分析模式中的差異並互動式產生用於遷移到新架構。 自動追蹤架構更改的歷史記錄。

為了產生查詢,支援 GraphQL 查詢語言和專有的 EdgeDB 語言(這是針對分層資料的 SQL 的改編版)。 查詢結果不是列表,而是以結構化​​方式格式化,並且您可以將一個 EdgeQL 查詢指定為另一個查詢中的表達式,而不是使用子查詢和 JOIN。 支援交易和週期。 select Movie { title, actor: { name } } filter .title = "The Matrix" insert Movie { title := "The Matrix Resurrections", Actor := ( select Person filter .name in { 'Keanu Reeves', 'Carrie- Anne Moss', 'Laurence Fishburne' } ) } for number in {0, 1, 2, 3} union ( select { number, number + 0.5 } );

來源: opennet.ru

添加評論