EQLを使用して作業するには、次に示す概念を理解している必要があります。
- 属性: 属性は、レコード・スキーマを構成する基本的な単位です。属性は、Dgraph内のレコードを表します。レコードでの割当ての観点から言うと、属性は次のいずれかです。
- 単一割当て属性: 1つのレコードが1つの値のみを持つ属性。たとえば、1冊の書籍の価格はただ1つであるため、Price属性は単一割当てとなります。単一割当て属性はアトミック・データ型の属性です(mdex:string、mdex:doubleなど)。
- 複数割当て属性: 1つのレコードで複数の値を持てる属性。たとえば、1冊の本に複数の著者が存在することもあるため、「著者」属性を複数割当てとします。複数割当て属性はセット・データ型の属性です(mdex:string-set、mdex:double-setなど)。これらは、EQLでセットにより表されます(「セットと複数割当てデータ」を参照)。
- レコード: Dgraph内のデータの、最も基本的な単位。レコードに属性値が割り当てられます。割当ては、レコードが属性の値を持つことを示します。一般的に、1つのレコードに複数の属性からの割当てがあります。コレクション内のレコードは、EQL結果内のレコードと同様に、同じ属性に対して複数の割当てを持つことができます。
- コレクション: Dgraphアプリケーション・レコード全体は1つ以上のコレクション(Studioではデータ・セットと呼ばれます)に含まれます。したがって、Dgraphデータは、表ベースではなく、コレクションベースです。文にFROM句を使用することによって、指定した状態を指定します。これは、問合せのレコード・ソースとして機能します。(指定した状態は、データ・セットのコレクション名およびDgraphデータベースを参照します。)または、FROM句で定義済文をレコード・ソースとして指定できます。FROM句はEQL文に必須であることに注意してください。
- 文: 互いに関連する、または独立した分析結果を計算するEQLの単位。EQLでは、文はDEFINEまたはRETURNで始まり、他の文の間にある場合はセミコロンで終わります(最後の文の場合はセミコロンを省略できます)。文には、必須のSELECT句と、省略可能なその他の句も含まれます。
- 結果: 問合せの結果は、文の結果の集合です。文の結果は、レコードの集合です。
- 中間結果: RETURN文からの結果は、中間結果として使用することもできます。この結果に対して、他の文でさらに処理を行います。
- 戻り結果: 問合せまたは文によって返された、一致する値のセット。
- 問合せ: Dgraph Gatewayに(最終的にはDgraphに)送信されるリクエスト。一般的に、1つの問合せは複数の文で構成されます。