Claves sintéticas

Cuando dos o más tablas internas tienen dos o más campos en común, esto indica una relación de claves compuestas. QlikView manipula esto creando claves sintéticas automáticamente. Dichas claves son campos anónimos que representan todas las combinaciones posibles de la clave compuesta.

Si recibe una advertencia sobre las claves sintéticas cuando esté cargando datos, es recomendable revisar la estructura de datos en el visor de tabla. Pregúntese a sí mismo si el modelo de datos es correcto o no. A veces lo es pero, a menudo, la clave sintética se encuentra ahí debido a un error en el script.

La presencia de varias claves sintéticas suelen ser un síntoma de un modelo de datos incorrecto, pero no siempre. Sin embargo, un signo inequívoco de que el modelo de datos es incorrecto es la presencia de claves sintéticas basadas en otras claves sintéticas.

Advertencia: Cuando el número de claves sintéticas aumenta, en función del volumen de datos, la estructura de la tabla y otros factores, QlikView puede o no gestionarlas con acierto, y podría terminar requiriendo demasiado tiempo y/o memoria. En tal caso, será necesario recrear el script eliminando todas las claves sintéticas.

Gestionar claves sintéticas

Si necesita evitar las claves sintéticas, hay una serie de métodos para solucionar esto en el script de carga:

  • Compruebe que solo se usan como claves los campos que vinculan lógicamente dos tablas.

    • Los campos como “Comentario”, “Observación” y “Descripción” pueden estar presentes en varias tablas sin que exista relación alguna entre ellos y, por tanto, no se deben usar como claves.
    • Los campos como “Fecha”, “Compañía” y “Nombre” pueden estar presentes en varias tablas y tener valores idénticos, pero proporcionar distinta información (Fecha del pedido/Fecha de envío, Compañía del cliente/Compañía del proveedor). En este tipo de casos no se deben usar como claves.
  • Asegúrese de que no se usan campos redundantes, es decir, asegúrese de que solo se conectan los campos necesarios. Por ejemplo, si va a usar una fecha como clave, asegúrese de no cargar el “año”, el “mes” o el “día del mes” de la misma fecha de más de una tabla interna.

  • Si fuera necesario, cree sus propias claves no compuestas; esto se suele hacer mediante la concatenación de cadenas dentro de una función de script AutoNumber.