Tables de jeux de clés d'une géodatabase dans PostgreSQL
Une table de jeu de clés permet de stocker une liste de lignes sélectionnées lorsqu'un client ArcGIS for Desktop exécute sur la géodatabase une requête de relations qui relie des tables à l'aide d'attributs de type entier, nombre, date ou chaîne.
Comme décrit dans la rubrique Options de configuration des tables de fichiers journaux ArcSDE pour PostgreSQL, les tables de fichiers journaux stockent les ID d'objet objectid des entités sélectionnées. Les tables de jeux de clés permettent de gérer les jointures à l'aide d'attributs autres que l'identifiant objectid.
Une table de jeu de clés est créée par connexion et par session lorsque plus de 99 lignes figurent dans l'ensemble de sélection source de la requête de base de données.
Tables de jeux de clés dans ArcGIS for Desktop
Vous ne pouvez pas afficher les tables de jeux de clés dans ArcGIS for Desktop. Cependant, une table de jeu de clés est créée et renseignée lorsque vous sélectionnez plus de 99 entrées d'une classe d'entités impliquée dans une classe de relations dans ArcMap, puis ouvrez la table attributaire et utilisez la liste Tables reliées, accessible via le menu Options, pour accéder à la table reliée. Une table de jeu de clés est également créée lors de l'ouverture d'une session de mise à jour.
Tables de jeu de clés dans une base de données PostgreSQL
La géodatabase ne comporte aucune table de jeu de clés jusqu'au moment où :
- une sélection éligible est effectuée par l'intermédiaire d'ArcGIS for Desktop, ou
- vous lancez une session de mise à jour.
Lorsque l'un ou l'autre de ces deux évènements a lieu, la table de jeu de clés est créée comme table temporaire globale. Dans le premier cas, la table de jeu de clés est créée et renseignée. Dans le deuxième exemple, la table de jeu de clés est créée mais non renseignée jusqu'à l'établissement d'un ensemble de sélection éligible.
Le nom de la table de jeu de clés comprend le numéro d'identification de processus de la session à l'origine de sa création. Le format est le suivant :
keyset_<process_id>
La table de jeu de clés stocke un identifiant de jeu de clés pour chaque ensemble de sélection, ainsi que les valeurs du champ sur lequel la relation entre les classes d'entités est basée.
S'agissant d'une table temporaire, la table de jeu de clés est supprimée lors de la déconnexion de l'utilisateur de la base de données. Toutefois, comme vous pouvez le remarquer, les structures temporaires créées par PostgreSQL pour le stockage de cette table sont conservées. Elles portent des noms tels que pg_temp_3.
Vous trouverez ci-dessous une table de jeu de clés pour une sélection réalisée sur les tables reliées LATERALS et CONTRACTORS. Dans ce cas, le champ LONG_VAL est renseigné et contient les valeurs du champ CONTRACTOR_ID sur lequel se base la classe de relations entre LATERALS et CONTRACTORS.
keyset_<id_processus>
Voici la définition d'une table de jeu de clés dans PostgreSQL :
Nom du champ |
Type de champ |
Description |
Nul ? |
---|---|---|---|
keyset_id |
integer |
Identifiant pour la sélection de jeu de clés |
NOT NULL |
long_val |
integer |
Valeur du champ sur lequel la classe de relations est basée, s'il s'agit d'un champ numérique |
|
str_val |
varchar(256) |
Valeur du champ sur lequel la classe de relations est basée, s'il s'agit d'un champ chaîne |
|
dbl_val |
double |
Valeur du champ sur lequel la classe de relations est basée, s'il s'agit d'un champ double précision |
|
date_val |
timestamp without time zone |
Valeur du champ sur lequel la classe de relations est basée, s'il s'agit d'un champ date |
Tables de jeux de clés dans un document d'espace de travail XML
Les tables de jeux de clés ne sont pas stockées dans un document XML, s'agissant de tables temporaires.