

# ReferentialIntegrity
<a name="dqdl-rule-types-ReferentialIntegrity"></a>

プライマリデータセットに存在する一連の列の値が、どの程度、参照データセットの一連の列における値のサブセットになっているかをチェックします。

**[Syntax]** (構文)

```
ReferentialIntegrity <PRIMARY_COLS> <REFERENCE_DATASET_COLS> <EXPRESSION>
```
+ **PRIMARY\$1COLS** — プライマリデータセット内の列名のカンマ区切りリスト。

  **列でサポートされている型**: Byte (バイト)、Decimal (十進数)、Double (倍精度浮動小数点数)、Float (浮動小数点数)、Integer (整数)、Long (整数)、Short (整数)
+ **REFERENCE\$1DATASET\$1COLS** – このパラメータには、ピリオドで区切られた 2 つの要素が含まれます。前半の部分は、参照データセットのエイリアスです。後半の部分は、中かっこで囲まれた参照データセット内の列名のカンマ区切りリストです。

  **列でサポートされている型**: Byte (バイト)、Decimal (十進数)、Double (倍精度浮動小数点数)、Float (浮動小数点数)、Integer (整数)、Long (整数)、Short (整数)
+ **EXPRESSION** – ルールタイプの応答に対して実行し、論地値を生成するための式。詳細については、「[表現](dqdl.md#dqdl-syntax-rule-expressions)」を参照してください。

**例: 郵便番号列の参照整合性の確認**

次のルール例では、`zipcode` 列の値の 90% 以上が `reference` データセットの `zipcode` 列にあることを確認します。

```
ReferentialIntegrity "zipcode" "reference.zipcode" >= 0.9
```

**例: 都市列と州列の参照整合性の確認**

次の例では、都市と州の情報を含む列が、プライマリデータセットと参照データセットの中にあります。列の名前は、両方のデータセットで異なっています。このルールは、プライマリデータセットの列の値セットが、参照データセットの列の値セットと完全に等しいかをチェックします。

```
ReferentialIntegrity "city,state" "reference.{ref_city,ref_state}" = 1.0
```

 **動的ルールの例** 
+ `ReferentialIntegrity "city,state" "reference.{ref_city,ref_state}" > avg(last(10))`
+ `ReferentialIntegrity "city,state" "reference.{ref_city,ref_state}" between min(last(10)) - 1 and max(last(10)) + 1`