EdgeDB,一個圖關係數據DBMS

最近 宣布發布 DBMS «EdgeDB 2.0», 它實現了關係圖關係數據模型和 EdgeQL 查詢語言,針對處理複雜的分層數據進行了優化。

EdgeDB 是一個開源數據庫,旨在作為 SQL 和關係範式的精神繼承者。 它的目標是解決一些困難的設計問題,這些問題使現有數據庫的使用變得不必要地繁重。

由後台的 Postgres 查詢引擎提供支持,EdgeDB 以與您相同的方式考慮模式:作為具有通過綁定連接的屬性的對象。 它就像具有面向對像數據模型的關係數據庫或具有嚴格模式的圖形數據庫。 我們稱之為圖的關係數據庫。

關於 EdgeDB

該項目正在開發為 PostgreSQL 的插件。 客戶端庫是為 Python、Go、Rust 和 TypeScript/Javascript 語言準備的。

EdgeDB 不是基於表的數據模型 使用基於對像類型的聲明系統。 使用引用綁定代替外鍵(foreign key)來確定類型之間的關係(一個對象可以用作另一個對象的屬性)。

索引可用於加速查詢處理。 還 支持強屬性類型等功能、屬性值約束、計算屬性和存儲過程。 EdgeDB 對象存儲模式的一些特性,有點讓人想起 ORM,包括混合模式、綁定不同對象的屬性以及支持嵌入式 JSON 的能力。

提供內置工具進行遷移 存儲架構:更改單獨的esdl文件中指定的架構後,只需運行命令“edgedb migration create”,DBMS將分析架構中的差異並交互生成腳本。 遷移到新架構。 架構修改歷史被自動跟踪。

對於查詢,GraphQL 查詢語言和 作為自己的語言 EdgeDB,它是對分層數據的 SQL 的改編。 查詢結果不是列表,而是結構化格式,而不是子查詢和 JOIN,EdgeQL 查詢可以指定為另一個查詢中的表達式。 支持事務和周期。

EdgeDB 2.0 主要新特性

在推出的新版本中, 添加了集成的 Web 界面 用於數據庫管理 允許查看和編輯數據,運行 EdgeQL 查詢 並分析使用的存儲方案。 該界面使用“edgedb ui”命令啟動,之後通過訪問 localhost 即可使用。

表達 實施“GROUP”以允許數據分區和聚合 並使用任意 EdgeQL 表達式對數據進行分組,類似於 SELECT 操作中的分組。

在對象級別控制訪問的能力, 訪問規則在存儲模式級別定義,允許您限制在選擇、插入、刪除和更新操作中使用特定對象集。 例如,您可以添加僅允許作者更新帖子的規則。

還強調了 增加了使用全局變量的能力 在存儲方案中。 為了綁定到用戶,提出了一個新的全局變量。

在其他突出的變化中:

  • Rust 語言的官方客戶端庫已經準備好。
  • EdgeDB 二進制協議已經穩定,它可以在同一個網絡連接中同時處理多個不同的會話,通過 HTTP 轉發,使用全局變量和本地狀態。
  • 添加了對定義值範圍(範圍)的類型的支持。
  • 添加了對套接字激活的支持,它允許不將服務器驅動程序保留在內存中,並且僅在嘗試建立連接時才啟動它(對於節省開發系統上的資源很有用)。

終於 對於那些有興趣了解更多信息的人,他們應該知道代碼是用 Python 和 Rust 編寫的,並且是在 Apache 2.0 許可下發布的。

您可以在以下位置了解更多信息 以下鏈接。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。