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 des tables non versionnées 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. 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 l'identifiant ObjectID de la classe d'entités n'est pas inclus, la relation unique entre ObjectID et la colonne de forme risque d'être enfreinte, provoquant des résultats inexacts en cas d'interrogation ou d'affichage dans ArcGIS.
Il est impossible de mettre à jour des vues de bases de données via des clients ou des 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 de plusieurs tables métier 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 métier.
- 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 Créer une vue de base de données ou le menu contextuel de la base de données dans ArcGIS Desktop, ou utilisez le SQL natif de votre système de gestion de bases de données (SGBD).
Des autorisations spécifiques sont nécessaires pour permettre à un utilisateur de créer une vue ; il doit, par exemple, détenir des privilèges create view sur les bases de données Oracle ou 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'accorder des privilèges à d'autres utilisateurs.
Tenez compte des points suivants lorsque vous utilisez des vues de bases de données :
- Les vues représentent des objets dans la base de données et elles ne sont pas enregistrées 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 vous ajoutez une colonne spatiale à votre définition de vue, la colonne spatiale doit présenter un type de géométrie SQL, la classe d'entités d'origine de la colonne spatiale ne peut pas être enregistrée comme versionnée, et vous devez inclure l'identifiant ObjectID de la classe d'entités contenant 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 vues versionnées sont créées automatiquement pour les tables et les classes d'entités lorsque vous les enregistrez comme versionnées. Les tables ou classes d'entités enregistrées comme versionnées dans des géodatabases avant la version 10.1 d'ArcGIS étaient automatiquement associées à une vue versionnée. Si vous disposez de données versionnées de ce type et que vous souhaitez obtenir la vue versionnée correspondante, vous pouvez en créer une en cliquant avec le bouton droit sur la table versionnée, la classe d'entités ou le jeu de données d'entité dans l'arborescence du Catalogue d'ArcMap, en pointant sur Organiser, puis en cliquant sur Activer l'accès à SQL.
Les vues versionnées fonctionnent seulement avec une table versionnée ou une classe d'entités individuelle, mais aussi avec la table entière. Vous ne pouvez pas utiliser la clause where pour joindre plusieurs tables ou limiter les lignes ou colonnes incluses 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 qui a été activée pour l'archivage. 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 seulement avec une table ou une classe d'entités individuelle, mais aussi avec la table entière. Vous ne pouvez pas utiliser la clause where pour joindre plusieurs tables ou limiter les lignes ou colonnes incluses dans une vue d'archive.