Présentation rapide de l'utilisation de SQL avec les géodatabases ArcSDE

Vous pouvez utiliser SQL pour accéder à des jeux de données existants et à leurs propriétés, et pour modifier à la fois des jeux de données versionnés et non versionnés dans les géodatabases ArcSDE.

Vous pouvez également utiliser SQL pour créer des tables qui peuvent être inscrites dans ArcSDE et la géodatabase. Ces tables peuvent contenir des types SQL spatiaux ou raster, ou uniquement des attributs non spatiaux.

Lorsque vous accédez à une géodatabase avec SQL, vous y accédez au niveau du système de gestion de bases de données (SGBD). Cela signifie que les comportements et les fonctionnalités définis par ArcSDE, la géodatabase ou les clients ArcGIS ne sont pas appliqués lorsque vous utilisez SQL.

Du point de vue SQL, vous accédez à des tables dans une base de données. Par conséquent, lorsque vous exécutez des commandes SQL sur des données dans la géodatabase, vous pouvez afficher les données et les informations les concernant, mais vous ne devez pas modifier les données qui participent au comportement de la géodatabase. Reportez-vous à la rubrique Type de données pouvant être modifié avec SQL pour plus d'informations.

En outre, si votre SGBD nécessite qu'un client accède à la base de données, vous devez installer et configurer le client du SGBD avant de pouvoir vous connecter directement à la base de données.

Utilisation de SQL pour accéder aux données d'une géodatabase

Vous pouvez utiliser des instructions SELECT SQL pour renvoyer des données à partir de jeux de données existants dans les géodatabases. Si vous interrogez des jeux de données versionnés dans les géodatabases ArcSDE, vous devez utiliser des vues multi-versionnées.

Les vues multi-versionnées intègrent des vues de base de données, des procédures stockées, des déclencheurs et des fonctions pour accéder à une version donnée des données dans une table de géodatabase à l'aide du langage SQL (Structured Query Language).

Lorsqu'une vue multi-versionnée accède à un jeu de données versionné, tous les enregistrements de la table métier sont sélectionnés et fusionnés avec des enregistrements des tables de deltas pour créer une vue qui inclut toutes les modifications apportées à la table métier dans le contexte de la version spécifiée.

Pour accéder à des données spatiales simples avec SQL et les analyser, utilisez les fonctions SQL spatiales installées avec le type spatial. Chaque type spatial a son propre ensemble de fonctions. Ces fonctions évaluent les relations spatiales, effectuent des opérations spatiales et renvoient et définissent des propriétés spatiales. Reportez-vous aux rubriques Relations spatiales, Opérations spatiales et Propriétés de géométrie pour obtenir une vue d'ensemble de cette fonctionnalité.

Utilisation de SQL pour accéder aux propriétés de jeux de données

Vous pouvez utiliser des instructions SELECT SQL pour obtenir les propriétés de jeux de données existants dans les géodatabases ArcSDE.

Les propriétés des jeux de données sont stockées dans les tables système des géodatabases. Pour obtenir ces informations, vous interrogez des colonnes spécifiques dans les tables système. Dans certains cas, ces colonnes contiennent des documents XML que vous interrogez à l'aide d'expressions Xpath pour obtenir des informations de propriété. Ceci est le cas pour les géodatabases stockées dans les bases de données IBM DB2, PostgreSQL et Microsoft SQL Server. En ce qui concerne les géodatabases dans Oracle, vous pouvez accéder aux vues système pour lire le texte brut dans une colonne CLOB.

Modification des données d'une géodatabase à l'aide de SQL

Vous pouvez utiliser le SQL natif de votre SGBD pour modifier les données attributaires simples et non spatiales dans la géodatabase. Vous pouvez également utiliser les fonctions SQL spatiales installées avec les types spatiaux pour modifier des données spatiales simples avec SQL.

Vous pouvez utiliser SQL pour modifier à la fois des jeux de données versionnés et non versionnés dans les géodatabases ArcSDE. Toutefois, vous ne devez pas modifier les jeux de données qui participent à la fonctionnalité des géodatabases, comme indiqué précédemment dans cette rubrique.

Lorsque vous modifiez des données non versionnées, vous devez insérer des valeurs uniques dans les champs de l'identifiant d'objet, GUID et d'identifiant global avec SQL.

Vous devez utiliser des vues multi-versionnées pour modifier des données versionnées. Cela permet de s'assurer que les insertions sont intégrées aux tables de deltas lors de la mise à jour. De plus, les vues multi-versionnées insèrent automatiquement des valeurs uniques dans les champs de l'identifiant d'objet.

Création de tables avec SQL pour les utiliser avec ArcGIS

Vous pouvez utiliser le SQL natif de votre SGBD pour créer et renseigner des tables. Les tables spatiales et non spatiales que vous créez avec SQL peuvent être utilisées avec ArcMap. Vous pouvez afficher des tables spatiales dans ArcMap en créant des couches de requête. Les attributs qui se trouvent dans les tables spatiales et non spatiales peuvent également être directement consultés dans ArcGIS. L'interrogation des couches et la possibilité d'accéder directement aux tables sont deux fonctionnalités utiles si vous avez des tables qui fonctionnent avec un autre système sur votre site et que vous souhaitez être en mesure d'accéder à ces tables via ArcGIS ou de les associer à des tables de votre géodatabase.

Si vous souhaitez que vos tables utilisent les fonctionnalités de géodatabase, inscrivez la table dans ArcSDE et la géodatabase. Gardez toutefois à l'esprit que, une fois que les tables utilisent les fonctionnalités de géodatabase, vous ne pouvez pas les modifier avec SQL.

Reportez-vous aux rubriques Exemple : inscription d'une table spatiale dans ArcSDE, Exemple : inscription d'une couche dans une géodatabase et Workflow : création de tables avec SQL et inscription avec ArcSDE et la géodatabase pour en savoir plus.

Rubriques associées


3/6/2012