EdgeDB、グラフ リレーショナル データ DBMS

最近 DBMS«EdgeDB2.0»のリリースが発表されました、 これは、複雑な階層データを処理するために最適化された、リレーショナルグラフリレーショナルデータモデルとEdgeQLクエリ言語を実装します。

EdgeDBは、SQLとリレーショナルパラダイムの精神的な後継者として設計されたオープンソースデータベースです。 その目標は、既存のデータベースの使用に不必要な負担をかけるいくつかの難しい設計上の問題を解決することです。

内部のPostgresクエリエンジンを搭載したEdgeDBは、スキーマを、バインディングによって接続されたプロパティを持つオブジェクトと同じように考えます。 これは、オブジェクト指向データモデルを備えたリレーショナルデータベースや、厳密なスキーマを備えたグラフデータベースのようなものです。 これをグラフのリレーショナルデータベースと呼びます。

EdgeDBについて

このプロジェクトは、PostgreSQLのプラグインとして開発されています。 クライアントライブラリは、Python、Go、Rust、TypeScript/Javascript言語用に用意されています。

テーブルベースのデータモデルの代わりに、EdgeDB オブジェクトタイプに基づく宣言型システムを使用します。 タイプ間の関係を決定するために外部キー(外部キー)の代わりに参照バインディングが使用されます(オブジェクトは別のオブジェクトのプロパティとして使用できます)。

インデックスを使用すると、クエリ処理を高速化できます。 また 強力なプロパティの入力などの機能がサポートされています、プロパティ値の制約、計算されたプロパティ、およびストアドプロシージャ。 ややORMを彷彿とさせるEdgeDBオブジェクトストレージスキーマの機能の一部には、スキーマを混在させる機能、さまざまなオブジェクトのプロパティをバインドする機能、埋め込みJSONのサポートが含まれます。

移行するための組み込みツールが提供されています ストレージスキーマ:別のesdlファイルで指定されたスキーマを変更した後、コマンド「edgedbmigration create」を実行するだけで、DBMSはスキーマの違いを分析し、インタラクティブにスクリプトを生成します。 新しいスキーマに移行します。 スキーマの変更履歴は自動的に追跡されます。

クエリの場合、GraphQLクエリ言語と 独自の言語としてEdgeDB。これはSQLを階層データに適合させたものです。 リストの代わりに、クエリ結果は構造化された形式になり、サブクエリとJOINの代わりに、EdgeQLクエリを別のクエリ内の式として指定できます。 トランザクションとサイクルがサポートされています。

EdgeDB2.0の主な新機能

提示された新しいバージョンでは、 統合されたWebインターフェイスが追加されました データベース管理用 データの表示と編集、EdgeQLクエリの実行を可能にします 使用されているストレージスキームを分析します。 インターフェイスは「edgedbui」コマンドで開始され、その後localhostにアクセスして使用できるようになります。

「GROUP」は、データの分割と集約を可能にするために実装されました SELECT操作でのグループ化と同様に、任意のEdgeQL式を使用してデータをグループ化します。

オブジェクトレベルでアクセスを制御する機能、 アクセスルールはストレージスキーマレベルで定義され、選択、挿入、削除、および更新操作でのオブジェクトの特定のセットの使用を制限できます。 たとえば、作成者のみが投稿を更新できるようにするルールを追加できます。

また、 グローバル変数を使用する機能が追加されました ストレージスキームで。 ユーザーにバインドするために、新しいグローバル変数が提案されました。

目立つ他の変更のうち:

  • Rust言語の公式クライアントライブラリが用意されています。
  • EdgeDBバイナリプロトコルが安定化され、グローバル変数とローカル状態を使用して、同じネットワーク接続内で複数の異なるセッションを同時に処理し、HTTP経由で転送できるようになりました。
  • 値の範囲(範囲)を定義する型のサポートが追加されました。
  • ソケットアクティベーションのサポートが追加されました。これにより、サーバードライバーをメモリに保持せず、接続を確立しようとしたときにのみ起動できます(開発システムのリソースを節約するのに役立ちます)。

最後に それについてもっと知りたい人のために、コードがPythonとRustで記述されており、Apache2.0ライセンスの下でリリースされていることを知っておく必要があります。

あなたはそれについてもっと知ることができます 次のリンク。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。