Databases Reference
In-Depth Information
Sometimes, the
Qualify
feature is required to be activated for only part of the
script but then should be turned off after loading certain tables. To do that, we can
simply use the
Unqualify
statement, specifying the field names in the same way
as described previously.
In some cases, we are required to turn on qualification for all fields except one or
two (for example, the
key
fields). To accomplish that, the
Qualify
and
Unqualify
instructions can be used in conjunction, like in the following example:
Qualify *;
Unqualify Key_Field1, Key_Field2;
The above combination of instructions will cause all fields loaded from that point
forward to be qualified with their corresponding table name, except the fields named
Key_Field1
and
Key_Field2
. This is useful when we want to ensure key fields are
not affected by the
Qualify
instruction.
Remember that a
Qualify
instruction can be turned off at any
point in the script with a corresponding
Unqualify
statement.
Avoiding data model conflicts
With the simplicity QlikView provides in building the associative data model, it's
very likely we will sometimes find one of the following two issues:
• The creation of what is called "Synthetic Keys" (described in the next section)
• The creation of circular references in the data model
Both of these issues need to be avoided since they can cause performance
degradation in the QlikView application, along with data inconsistency.
Dealing with synthetic keys
When any two tables share more than one common field, QlikView creates a complex
key, or synthetic key, to try and associate both tables through the combination of
all of the common fields between them. This takes the form of an additional table
containing the shared fields and an additional key field added to all involved tables.