

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

Comprueba en qué medida los valores de un conjunto de columnas en el conjunto de datos principal son un subconjunto de los valores de un conjunto de columnas en un conjunto de datos de referencia.

**Sintaxis**

```
ReferentialIntegrity <PRIMARY_COLS> <REFERENCE_DATASET_COLS> <EXPRESSION>
```
+ **PRIMARY\$1COLS**: una lista de nombres de columnas separados por comas en el conjunto de datos principal.

  **Tipos de columnas compatibles**: byte, decimal, doble, flotante, entero, largo, corto
+ **REFERENCE\$1DATASET\$1COLS**: este parámetro contiene dos partes separadas por un punto. La primera parte es el alias del conjunto de datos de referencia. La segunda parte es la lista de nombres de columnas separados por comas en el conjunto de datos de referencia entre corchetes.

  **Tipos de columnas compatibles**: byte, decimal, doble, flotante, entero, largo, corto
+ **EXPRESSION**: una expresión que se ejecuta en función de la respuesta del tipo de regla para producir un valor booleano. Para obtener más información, consulte [Expresiones](dqdl.md#dqdl-syntax-rule-expressions).

**Ejemplo: compruebe la integridad referencial de una columna de código postal**

La siguiente regla de ejemplo comprueba que más del 90 % de los valores en la columna `zipcode` en el conjunto de datos principal estén presentes en la columna `zipcode` en el conjunto de datos de `reference`.

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

**Ejemplo: compruebe la integridad referencial de las columnas de ciudad y estado**

En el siguiente ejemplo, las columnas que contienen información sobre la ciudad y el estado existen en el conjunto de datos principal y en el conjunto de datos de referencia. Los nombres de las columnas son diferentes en ambos conjuntos de datos. La regla comprueba si el conjunto de valores de las columnas en el conjunto de datos principal es exactamente igual al conjunto de valores de las columnas en el conjunto de datos de referencia.

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

 **Muestra de reglas dinámicas** 
+ `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`