Vues dans une géodatabase d'entreprise

Vous pouvez créer des vues de base de données dans des géodatabases d’entreprise. Vous pouvez inscrire les vues de base de données auprès de la géodatabase pour stocker les métadonnées et les informations sur les vues dans des tables système de géodatabase ou conserver les vues comme objets de base de données.

Vues de base de données

Les vues de base de données sont des requêtes stockées qui sélectionnent des données dans les tables spécifiées. Vous pouvez définir des vues sur les tables de base de données ou des tables de géodatabase d’entreprise qui ne sont pas inscrites comme étant versionnées. Lorsqu'elles sont utilisées avec une géodatabase d'entreprise, les vues de base de données peuvent être définies pour une seule table non versionnée ou entre deux tables non versionnées. Vous pouvez également créer des vues plus complexes qui contiennent des sous-requêtes.

Les vues utilisées avec ArcGIS peuvent contenir une seule colonne spatiale. Si elles contiennent une colonne spatiale, ces vues peuvent être appelées des vues spatiales. Lorsque vous créez une vue spatiale, vous devez inclure la colonne Object ID (ID d’objet) issue de la même table que la colonne spatiale. Si vous n’incluez pas l’ID d’objet issu de la classe d’entités, la relation unique entre l’ID d’objet et la colonne de forme est rompue, ce qui génère des résultats inexacts en cas d’interrogation ou d’affichage dans ArcGIS.

Vous ne pouvez pas mettre à jour les données des vues de base de données via les clients ou les services ArcGIS.

Vous pouvez utiliser les vues de base de données pour les raisons suivantes notamment :

  • Les vues peuvent fournir des sous-ensembles de lignes ou de colonnes de manière prédéfinie. Cela réduit le volume de données transférées de la base de données vers le client, améliorant ainsi les performances.
  • Les vues vous permettent de codifier les requêtes fréquentes dans la base de données et de les rendre disponibles à plusieurs utilisateurs. Les utilisateurs sont ainsi moins souvent amenés à créer leurs propres requêtes complexes.
  • Les vues peuvent rassembler des données issues de plusieurs tables ou d’autres vues.
  • Vous pouvez utiliser les fonctions d'agrégation pour résumer les données dans des vues. Cela réduit également le volume de données transférées de la base de données vers le client, améliorant ainsi les performances.
  • Vous pouvez accorder aux utilisateurs des privilèges select sur les vues, comme vous procédez avec des tables. Par conséquent, vous pouvez utiliser des vues pour contrôler l’accès aux lignes ou aux colonnes des tables.
  • Vous pouvez joindre une classe d'entités à une table non spatiale lorsque vous définissez une vue, en combinant ainsi les colonnes des deux.
  • ArcGIS ne fonctionne qu'avec des tables qui contiennent une colonne spatiale. Pour utiliser une table spatiale qui contient plusieurs colonnes spatiales, vous pouvez créer une vue spatiale qui inclut une seule colonne spatiale de la table.
  • ArcGIS ne fonctionne qu'avec des tables qui utilisent une référence spatiale. Si votre table contient plusieurs références spatiales, vous pouvez créer une vue qui inclut uniquement les enregistrements utilisant la même référence spatiale.

Pour créer une vue de base de données, utilisez l’outil de géotraitement Créer une vue de base de données ou le menu contextuel de la base de données. Vous pouvez également utiliser le SQL natif de votre système de gestion de bases de données.

Des autorisations de bases de données spécifiques sont nécessaires pour permettre à un utilisateur de créer une vue. Par exemple, il doit détenir des privilèges create view pour les bases de données Oracle ou Microsoft SQL Server. Avec certains systèmes de gestion de bases de données, si vous créez une vue sur une classe d’entités ou une table dont vous n’êtes pas propriétaire, vous ne pouvez pas accorder des droits sur la vue aux autres utilisateurs, à moins que le propriétaire des tables sous-jacentes ne vous ait accordé l’autorisation d’octroyer des privilèges à d’autres utilisateurs.

Tenez compte des points suivants lorsque vous utilisez des vues de bases de données :

  • Les vues existent en tant qu’objets dans la base de données et ne sont pas inscrites dans la géodatabase, même si vous les définissez sur des tables de géodatabases à l’aide de l’outil Créer une vue de base de données.
  • Les changements apportés à la structure de la table sous-jacente ne sont pas répercutés dans la vue. Pour ajouter des colonnes supplémentaires à une vue, vous devez redéfinir la vue afin d’inclure ces colonnes.
    Attention :

    Si vous décidez de remplacer des vues créées par ArcGIS en les modifiant à l’aide de SQL ou d’autres outils de base de données, vous êtes seul responsable de l’exactitude de la requête, mais aussi de son fonctionnement, de sa pertinence et de son adéquation à une utilisation avec les clients ArcGIS. Par exemple, la création de vues de type un vers plusieurs impliquant des classes d’entités se traduit par la duplication d’identifiants d’objet. Cela entraîne un comportement inattendu dans des applications comme ArcMap et ArcGIS Pro, ainsi que dans les services Web, pour lesquels l’ID objet ne doit contenir que des valeurs uniques.

  • Vous ne pouvez pas mettre à jour des données via une vue de base de données dans ArcGIS Desktop.
  • Les vues ne sont pas prises en charge dans les services d’entités ArcGIS Server.
  • Lorsque vous créez une vue dans une classe d’entités ou une table de géodatabase relevant du versionnement traditionnel, vous ne voyez que les données de la table de base et non les mises à jour effectuées dans les tables delta. Pour afficher les mises à jour effectuées dans une vue via des clients ArcGIS, vous devez réconcilier et publier les mises à jour dans la version par défaut, puis compresser la géodatabase.
  • Si la définition de la vue inclut une colonne spatiale, il doit s’agir d’une colonne de type de données géométriques SQL. En outre, la classe d’entités dont la colonne spatiale est issue ne peut pas être inscrite comme étant versionnée. Vous devez également inclure l’ID d’objet de la classe d’entités qui contient la colonne spatiale dans la définition de la vue.

Vues enregistrées dans la géodatabase

Si votre base de données contient une géodatabase, vous pouvez inscrire des vues de base de données auprès de la géodatabase à l’aide de l’outil de géotraitement Inscrire dans la géodatabase.

Voici certaines raisons pour lesquelles vous devez enregistrer une vue dans la géodatabase :

  • Lorsque vous enregistrez une vue dans la géodatabase, les informations sur la vue sont stockées dans les tables système de la géodatabase. Ces informations, telles que le type de géométrie, la référence spatiale et l’étendue, améliorent les performances lorsque vous ajoutez une vue qui contient un champ spatial à une carte.
  • Vous pouvez définir des métadonnées dans des vues enregistrées dans la géodatabase si vous êtes propriétaire des vues.

Vous pouvez inclure une colonne spatiale unique dans la vue que vous créez si votre classe d'entités utilise un type de géométrie SQL et que la classe d'entités n'est pas enregistrée comme versionnée. Vous devez inclure l’ID d’objet de la classe d’entités dans la définition de la vue pour inscrire la vue auprès de la géodatabase.

Il est impossible de mettre à jour des vues enregistrées dans la géodatabase via des clients ou des services ArcGIS.