Bases de données génériques

Une base de données générique est une table dans laquelle les noms des champs sont stockés comme valeurs de champ dans une colonne tandis que les valeurs des champs sont stockées dans une deuxième colonne. Les bases de données génériques sont habituellement utilisées pour les attributs de différents objets.

Considérez l'exemple GenericTable ci-dessous. Il s'agit d'une base de données générique contenant deux objets, une balle (ball) et une boîte (box). À l'évidence, certains des attributs, comme la couleur et le poids, sont communs aux deux objets tandis que d'autres, tels que le diamètre, la hauteur, la longueur et la largeur, ne le sont pas.

GenericTable
object attribute value
ball color red
ball diameter 10 cm
ball weight 100 g
box color black
box height 16 cm
box length 20 cm
box weight 500 g
box width 10 cm

D'une part, il serait compliqué de stocker les données de manière à donner à chaque attribut une colonne propre, puisque beaucoup d'attributs ne sont pas pertinents pour l'un ou l'autre des objets.

D'autre part, afficher les longueurs, les couleurs et les poids tous ensemble rendrait les données difficilement lisibles.

Si cette base de données est chargée dans QlikView de façon standard et affiche les données dans une table, voici le résultat obtenu :

Cependant, si la table est chargée comme base de données générique, les colonnes deux et trois sont divisées en tables distinctes, une pour chaque valeur unique de la deuxième colonne :

La syntaxe correspondante est simple :

Exemple :  

Generic SELECT* from GenericTable;

Peu importe que soit utilisée une instruction LOAD ou SELECT pour charger la base de données générique.