Gestion des transactions des géodatabases
Les transactions représentent des ensembles de tâches permettant de modifier les bases de données. Les bases de données de système d'information géographique (SIG), comme d'autres applications de base de données, doivent prendre en charge les transactions de mise à jour permettant de garantir l'intégrité des données et le comportement de l'application. Dans de nombreux cas, les utilisateurs peuvent utiliser l'infrastructure de système de gestion de base de données (SGBD) basée sur les transactions pour gérer les modifications et les mises à jour des géodatabases.
Ceci étant, les utilisateurs de SIG sont également soumis à certaines conditions spécifiques en matière de transactions. Par exemple :
- Souvent, plusieurs enregistrements sont mis à jour conjointement par une transaction unique.
- De nombreuses transactions doivent s'appliquer à de longues périodes (parfois des jours et des mois, pas seulement des secondes ou des minutes).
En outre, les utilisateurs doivent pouvoir annuler et répéter leurs modifications. Les sessions de mise à jour peuvent s'étaler sur plusieurs heures ou jours. En général, les modifications doivent être effectuées sur un système déconnecté de la base de données partagée centrale.
Etant donné que le processus de workflow peut s'étaler sur des jours ou des mois, la base de données SIG doit être disponible continuellement pour les opérations quotidiennes car chaque utilisateur peut avoir une version personnelle de la base de données SIG partagée. Dans une base de données multi-utilisateurs, les transactions SIG doivent être gérées au niveau de l'infrastructure SGBD basée sur les transactions courtes. La technologie ArcSDE joue un rôle essentiel au cours de ces opérations en gérant les transactions SIG complexes de niveau supérieur dans l'infrastructure simple de transaction SGBD.
Les utilisateurs SIG rencontrent souvent le cas où les workflows basés sur des transactions longues sont essentiels. Dans la plupart des cas, la gestion des mises à jour vers la base de données SIG centrale s'effectue grâce à un SGBD multi-utilisateurs et à ArcSDE à l'aide du versionnement (vous trouverez plus d'informations sur le versionnement plus bas).
Voici des exemples de workflows de gestion de données SIG nécessitant un modèle de transaction basé sur des versions :
- Sessions de modification multiples : une seule mise à jour de base de données SIG peut nécessiter de nombreux changements qui sont répartis sur plusieurs sessions de modification se déroulant sur plusieurs jours ou semaines.
- Edition multi-utilisateurs : Plusieurs intervenants ont souvent besoin de mettre à jour simultanément les mêmes entités spatialement intégrées. Chacun d'eux doit pouvoir travailler sur son propre état de base de données, afficher chaque mise à jour et ignorer les mises à jour des autres utilisateurs. Le cas échéant, chaque utilisateur doit réinjecter ses modifications et les réconcilier avec celles des autres utilisateurs pour identifier et résoudre les éventuels conflits.
- Transactions d'extraction et d'insertion : il est souvent nécessaire d'extraire une partie d'une base de données concernant une zone ou une région particulière vers un ordinateur de bureau et de mettre à jour les informations correspondantes au cours d'une session en mode déconnecté qui peut durer plusieurs jours ou semaines pendant lesquels les informations peuvent, par exemple, être modifiées ou mises à jour sur le terrain. Ces mises à jour doivent être réinjectées dans la base de données principale.
- Historique : Il est parfois préférable de conserver une version historique de chaque entité dans une base de données SIG, même après la mise à jour de cette version. Vous pouvez archiver une copie des entités supprimées et modifiées ou suivre l'historique d'une entité particulière (par exemple, généalogie des parcelles ou propriétés de mise à jour des entités dans une base de données de cartographie nationale).
- Transfert des mises à jour incrémentielles : les bases de données d'entreprise et infrastructures de données spatiales dans lesquelles les données sont partagées par plusieurs organisations sont des travaux collectifs nécessitant le partage des mises à jour par l'intermédiaire d'Internet selon une structure XML (Extensible Markup Language) bien définie pour le partage des mises à jour incrémentielles entre bases de données.
- Réplicas de bases de données géographiques distribuées : Une base de données régionale peut correspondre à une copie partielle d'une région géographique particulière d'une base de données SIG d'entreprise. Régulièrement, les deux bases de données doivent être synchronisées en échangeant leurs mises à jour.
- Réplication à couplage faible au travers des SGBD : Souvent, les données SIG doivent être synchronisées avec plusieurs copies de la base de données (appelées réplicas), où chaque site procède à ses propres mises à jour sur sa base de données locale. Souvent, les bases de données sont connectées seulement de façon intermittente par l'intermédiaire d'Internet. Régulièrement, les mises à jour doivent être transférées de chaque réplica de base de données vers les autres et leurs contenus doivent être synchronisés. Dans bien des cas, les SGBD sont différents (reproduction de jeux de données entre Microsoft SQL Server, Oracle et IBM DB2, par exemple).
Le modèle de transaction de géodatabase : versionnement
Le mécanisme de géodatabase pour la gestion de ces workflows SIG critiques, et bien d'autres, consiste à gérer en parallèle plusieurs états dans la géodatabase et, ce qui est le plus important, à le faire tout en assurant l'intégrité des informations géographiques, des règles et du comportement. Cette aptitude à gérer, travailler avec et afficher plusieurs états s'appuie sur le versionnement. Comme son nom l'indique, le versionnement enregistre explicitement des versions de chaque entité et objet modifié, créé et supprimé en leur associant des états différents. Chaque version enregistre formellement chaque état d'une entité ou d'un objet sous forme de ligne dans une table avec des informations importantes relatives à la transaction. Vous pouvez utiliser autant d'utilisateurs que vous voulez pour traiter et gérer plusieurs versions.
Les versions permettent à toutes les transactions d'être enregistrées sous forme d'une série de modifications apportées à la base de données dans le temps. Cela signifie que plusieurs utilisateurs peuvent gérer différentes vues ou état de la géodatabase. Ce système a pour objet d'offrir un accès multi-utilisateurs ouvert et très performant. Par exemple, le système doit être rapide et prendre en charge de façon efficace l'utilisation de jeux de données contenant des centaines de millions d'enregistrements ouverts par des milliers d'utilisateurs en même temps.
Le modèle de transaction de géodatabase basé sur des versions est relativement simple : les mises à jour sont consignées dans des tables de modifications.
Les versions enregistrent les états des objets d'une géodatabase dans deux tables de mouvements :
- la table des ajouts
- la table des suppressions
Des requêtes simples servent à afficher et à utiliser un état quelconque de la géodatabase (exemple : pour afficher l'état de la base de données à un moment donné ou consulter la version en cours d'un utilisateur particulier avec ses modifications).
ArcSDE joue un rôle essentiel dans les applications de géodatabase versionnées et est utilisé pour gérer les transactions longues dans chaque SGBD (en tirant parti de l'infrastructure basée sur les transactions courtes) et dans différents systèmes.
Dans l'exemple de table de version, une parcelle (lot 45) est mise à jour pour devenir la nouvelle parcelle 47. Avec le versionnement, la parcelle d'origine est enregistrée dans la table des suppressions et la nouvelle parcelle est enregistrée dans la table des ajouts. D'autres métatables consignent des informations sur la version de la transaction telles que l'heure et la séquence de chaque mise à jour, le nom de la version et l'état de chaque mise à jour. Chaque version dispose de ses propres droits de sécurité et d'accès.
Cela permet à la plupart des utilisateurs de travailler avec la version par défaut tandis que d'autres éditeurs effectuent simultanément des mises à jour sur leurs propres versions de base de données dans le temps.
De nombreuses mises à jour peuvent être effectuées sur chaque version et les utilisateurs se connectent et utilisent la version mise à jour lorsqu'ils apportent d'autres modifications aux données. Lorsque les utilisateurs sont prêts à partager les mises à jour avec le reste de l'entreprise, une opération de réconciliation et de publication est exécutée pour appliquer les modifications de la version mise à jour à la version principale (par défaut). Un processus de résolution permet d'identifier et de réconcilier les éventuels conflits survenant au cours de cette opération.
Pour en savoir plus sur le versionnement, reportez-vous à la rubrique Maîtrise du versionnement.