Quatre types de vues sont disponibles dans une géodatabase d'entreprise :
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 ObjectID issue de la même table que la colonne spatiale. Si vous n’incluez pas l’ObjectID issu de la classe d’entités, la relation unique entre l’ObjectID et la colonne de forme est rompue, provoquant des résultats inexacts en cas d’interrogation ou d’affichage dans ArcGIS.
Les vues de base de données ne peuvent pas être mises à jour 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 dans ArcGIS Desktop. Vous pouvez aussi utiliser le SQL natif de votre système de gestion de bases de données (SGBD).
Des autorisations de bases de données spécifiques sont nécessaires pour permettre à un utilisateur de créer une vue. Par exemple, pour les bases de données Oracle ou SQL Server, il doit détenir des privilèges create view. 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'accorder 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.
- Vous ne pouvez pas mettre à jour des données via une vue de base de données dans ArcGIS Desktop ou un service d'entités ArcGIS.
- Lorsque vous créez une vue dans une classe d'entités ou une table de géodatabase versionnée, vous ne voyez que les données de la table de base et non les mises à jour effectuées dans les tables de deltas. 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 et compresser la géodatabase. Pour afficher les mises à jour effectuées dans une vue via des clients SQL, tiers ou personnalisés, utilisez la vue versionnée automatiquement créée lors de l'enregistrement d'une table de géodatabase ou d'une classe d'entités comme versionnée.
- 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’ObjectID 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 utiliser l'outil Créer une vue de base de données ou SQL pour créer une vue de base de données et l'enregistrer dans la géodatabase à l'aide de l'outil de géotraitement Inscrire dans une 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. Cela est particulièrement utile lorsque vous enregistrez une vue spatiale dans la géodatabase, car que vous définissez le type de géométrie, la référence spatiale et l'étendue en enregistrant la vue spatiale, et améliorez ainsi les performances lors de l'ajout de la vue spatiale à une carte.
- Vous pouvez définir des métadonnées dans des vues enregistrées dans la géodatabase.
- Vous pouvez publier une vue enregistrée dans un service d'entités en requête seule.
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. Pour créer une vue spatiale, incluez la colonne spatiale et l'identifiant ObjectID de la classe d'entités dans la définition de la vue, puis enregistrez-la.
Il est impossible de mettre à jour des vues enregistrées dans la géodatabase via des clients ou des services ArcGIS.
Vues versionnées
Les vues 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 à ou modifier une version particulière d'une table ou classe d'entités dans une géodatabase à l'aide du langage SQL.
Vous pouvez utiliser les vues versionnées pour les raisons suivantes notamment :
- Les vues versionnées intègrent les mises à jour stockées dans les tables de deltas de la table.
- Les vues versionnées vous permettent de mettre à jour des classes d'entités et des tables versionnées à l'aide d'applications SQL ou tierces.
Les clients ArcGIS créent automatiquement des vues versionnées pour les tables et les classes d’entités lorsque vous les enregistrez à cet effet (dans le cadre d’un versionnement traditionnel). Les vues versionnées sont uniquement prises en charge en mode de versionnement traditionnel.
Les vues versionnées fonctionnent avec toutes les données incluses dans une seule table ou classe d’entités versionnée. Vous ne pouvez pas utiliser la clause WHERE pour joindre plusieurs tables, ni pour limiter les lignes ou les colonnes à inclure dans une vue versionnée.
L'utilisation principale des vues versionnées porte sur la modification des données versionnées à l'aide de SQL. Vous ne pouvez pas modifier la table sous-jacente ou la classe d'entités à travers une vue versionnée à l'aide d'une application cliente ArcGIS. La table ou la classe d'entités sur laquelle repose la vue versionnée doit satisfaire aux exigences ArcGIS pour la mise à jour des données de géodatabase avec SQL.
Vues d'archive
Une vue d’archive est une vue de base de données définie sur une table ou une classe d’entités non versionnée pour laquelle l’archivage a été activé. Les vues d'archive incluent également des déclencheurs qui mettent à jour les tables d'archivage dès que des modifications sont apportées via la vue d'archive. Une vue d'archive est créée lorsque vous activez l'archivage du jeu de données ou lorsque vous activez l'accès SQL sur un jeu de données archivable non versionné.
Vous pouvez utiliser les vues d'archive pour les raisons suivantes notamment :
- Les vues d'archive vous permettent d'accéder aux données stockées dans la table d'historique d'une table activée pour l'archivage.
- Les vues d'archive vous permettent d'utiliser SQL pour mettre à jour les tables et les classes d'entités dont l'archivage est activé.
Les vues d’archive fonctionnent avec toutes les données incluses dans une seule table ou classe d’entités. Vous ne pouvez pas utiliser la clause WHERE pour joindre plusieurs tables, ni pour limiter les lignes ou les colonnes à inclure dans une vue d’archive.