Lorsque vous vous connectez à une géodatabase d'entreprise depuis un client ArcGIS ou via un service web ArcGIS for Server, vous interagissez avec les jeux de données que vous ou d’autres utilisateurs des bases de données ont ajoutés à la géodatabase. Pour effectuer le suivi de ces données et implémenter un comportement de géodatabase, les géodatabases d'entreprise utilisent des tables système.
Il est déconseillé de modifier les tables système et leur contenu à l'aide de logiciels autres qu'ArcGIS ou SDK. Toutefois, il est possible d'afficher le contenu des tables système à l’aide de SQL.
Tables système principales
Les tables système de géodatabase principales imposent un comportement de géodatabase, stockent des informations sur la géodatabase et assurent le suivi des données utilisateur stockées dans la géodatabase.
Lorsque vous interrogez une base de données IBM Informix contenant une géodatabase d’entreprise, les tables système principales suivantes s’affichent et appartiennent à l’utilisateur sde :
- column_registry
- compress_log : cette table est créée la première fois que vous compressez la géodatabase.
- dbtune
- gdb_itemrelationships
- gdb_itemrelationshiptypes
- gdb_items
- gdb_itemtypes
- gdb_replicalog
- gdb_tables_last_modified
- GEOMETRY_COLUMNS
- layer_locks
- layers
- lineages_modified
- mvtables_modified
- object_locks
- process_information
- raster_columns
- sde_archives
- sde_sde_logfile_pool
- sde_xml_columns
- sde_xml_index_tags
- sde_xml_index
- server_config
- spatial_references
- state_lineages
- state_locks
- states
- table_locks
- table_registry
- tables_modified
- version
- versions
Les tables suivantes sont présentes dans la géodatabase mais ne sont plus utilisées. Elles feront certainement l’objet d’une suppression dans une version ultérieure.
- locators
- metadata
- sde_layer_stats
Tables qui implémentent des fonctionnalités de géodatabase d'entreprise
Les informations de certaines fonctionnalités de géodatabase sont stockées uniquement dans des tables système principales. Par exemple, les informations des fonctionnalités suivantes sont stockées dans des tables système principales et aucune table complémentaire n’est créée dans la base de données lorsque vous définissez ou activez ces fonctionnalités sur des données utilisateur :
- Domaines : ils sont stockés dans la table système gdb_items. Un champ dans la table système de gdb_itemtypes identifie l'objet comme domaine.
- Réplicas de géodatabase : dans la base de données, leur suivi est effectué dans les tables système gdb_items, gdb_itemrelationships, gdb_itemtypes et gdb_replicalog.
- Classes de relations : elles sont stockées dans les tables système gdb_items et gdb_itemrelationships.
En revanche, les fonctionnalités de géodatabase décrites dans les sections suivantes entraînent la création de tables internes supplémentaires lorsqu'elles sont activées ou utilisées.
Archives de géodatabase
L'archivage des géodatabases permet d'effectuer un suivi historique des dates de transaction de vos données. La date de transaction représente le moment d'ajout, de suppression ou de mise à jour d’une entité dans la base de données.
Lorsque vous activez l'archivage des géodatabases, une classe d'archive est créée. Une classe d’archive est une copie de la table métier contenant l'ensemble des champs correspondants, plus trois nouveaux champs : gdb_from_date, gdb_to_date et gdb_archive_oid. Lorsque vous activez l'archivage sur une table ou une classe d'entités appartenant à une version traditionnelle, un enregistrement est également ajouté à la table système sde_archives. Cet enregistrement stocke les ID d'inscription de la table activée pour l'archivage, ainsi que sa table de classe d'archive associée.
Le nom de la table de classe d'archive se compose du nom de table métier d'origine et du suffixe _H. Par exemple, lorsque l’archivage est activé sur une classe d'entités nommée buildings, une classe d'archive nommée buildings_H est créée. Cette table de classe d’archive appartient au même utilisateur que la table métier.
Versions
Lorsque vous inscrivez une classe d’entités ou une table comme appartenant au versionnement, deux tables sont créées pour effectuer le suivi des mises à jour des données : la table des ajouts et la table des suppressions. Ces deux tables forment l’ensemble des tables de deltas.
La table des ajouts (a_<registration_id>) conserve les informations de chaque enregistrement (entité) ajouté ou mis à jour dans une table métier versionnée et est interrogée pour identifier les enregistrements ajoutés ou modifiés pour un état de géodatabase particulier.
La table des suppressions (d_<registration_id>) conserve des informations concernant les enregistrements supprimés ou mis à jour dans une table versionnée. Elle est interrogée pour identifier les enregistrements supprimés ou modifiés dans un état particulier. Lorsqu'un enregistrement est supprimé, il n'est pas supprimé physiquement ; il est signalé comme supprimé et n'est jamais renvoyé dans les interrogations de base de données suivantes.
La valeur registration_id dans le nom de la table des ajouts et de la table des suppressions correspond à la table versionnée dans la table système table_registry.
Ces tables appartiennent au même utilisateur que celui de la table ou de la classe d’entités enregistrée comme versionnée.
En plus des tables de deltas, les tables système principales states, state_lineages, mvtables_modified, et versions effectuent le suivi des tables versionnées et des mises à jour.
Tables de jeux de clés
Utilisées par les clients ArcGIS, les tables de jeux de clés permettent d’optimiser les performances des requêtes. Les tables de jeux de clés permettent de stocker une liste de lignes sélectionnées lorsqu'un client ArcGIS 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. Elles permettent de gérer les jointures à l’aide d'attributs autres que ceux du champ d’ID d’objet.
La géodatabase ne comporte aucune table de jeu de clés tant que vous n’exécutez pas une des opérations suivantes :
- Sélectionnez plus de 99 enregistrements dans une classe d'entités sur une carte dans ArcMap, cette classe d'entités étant impliquée dans une classe de relations.
- Dans ArcMap, ouvrez la table attributaire d’une classe d'entités impliquée dans une classe de relations pour accéder à la table reliée.
- Lancez une session de mise à jour dans ArcMap.
Il est créé une table de jeu de clés en tant que table temporaire globale par connexion et par session. 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.
Les noms des tables de jeux de clés sont au format suivant :
<owner>.keyset_<process_id>, où <owner> est le nom de l’utilisateur à l’origine de la création de cette table de jeu de données et <process_id> est le numéro d’identification de processus de la session à l’origine de la création de cette table de jeu de données.
Tables de fichiers journaux
Utilisées par les clients ArcGIS, les tables de fichiers journaux permettent d’optimiser les performances des requêtes en stockant des listes de lignes sélectionnées. Les tables de fichiers journaux utilisent des jointures basées sur des attributs du champ d’ID d’objet.
Dans Informix, les géodatabases utilisent par défaut des tables de fichiers journaux partagés. Dans une configuration de fichier journal de ce type, deux tables (sde_sde_logfiles et <user_name>_sde_logfile_data) sont créées dans la structure du compte de l'utilisateur qui effectue une opération nécessitant des tables de fichiers journaux. Une fois créées, ces tables restent dans la géodatabase ; néanmoins, toutes les entrées du fichier journal sont supprimées lorsque l'application de connexion supprime ses fichiers journaux.
La liste suivante répertorie les tables de fichiers journaux qui figurent dans la base de données si vous modifiez le type des tables de fichiers journaux utilisé par la géodatabase :
- Tables de fichiers journaux de session : sde_sde_logfiles, <user_name>_sde_logfile_data et <user_name>_sde_session<sde_id>. Ces tables sont créées dans la structure de l'utilisateur dont la session est à l'origine de la création. Une fois créées, les tables sde_sde_logfiles et <user_name>_sde_logfile_data sont conservées dans la base de données. Lorsque des tables de fichiers journaux de session sont utilisées, la table <user_name>_sde_logfile_data n’est jamais renseignée. La table sde_sde_logfiles est tronquée à la fin de la session de l'utilisateur. La table <user_name>_sde_session<sde_id> est tronquée lorsque l'application de connexion n'a plus besoin des enregistrements de fichiers journaux, puis elle est supprimée à l'issue de la session.
- Pools de tables de fichiers journaux : dans cette implémentation de fichier journal, la table système principale sde_sde_logfile_pool est utilisée et les tables sde_sde_logpool_<table_Id> sont créées pour stocker les sélections effectuées en fonction des ID d’objets. L'administrateur de géodatabase définit le nombre de tables sde_sde_logpool_<table_Id> à créer lorsqu’il configure la géodatabase pour utiliser ce type d’implémentation de table de fichiers journaux. Toutes ces tables appartiennent à l'utilisateur sde.