ArcGIS applique certaines règles au moment de la connexion à une source de données. Les règles suivantes s'appliquent lorsqu'ArcGIS se connecte aux données d'une base de données et les lit :
Noms des objets
Les systèmes de gestion de bases de données ont différentes définitions des caractères acceptables pour les noms d'objet. La plupart des noms doivent commencer par une lettre et ne peuvent pas contenir d’espaces, de barres obliques inverses ni de mots-clés réservés au système de gestion de base de données. Certaines bases de données autorisent les caractères spéciaux, tels que les barres obliques (/), les traits de soulignement (_), les symboles dièses ($), les tirets (-), les points (.) ou les majuscules et minuscules. La base de données vous permet parfois d’utiliser des caractères spéciaux ou des mots-clés réservés, ou encore de forcer l’utilisation de noms en majuscules, en minuscules ou combinant majuscules et minuscules, si vous entourez le nom de l’objet de délimiteurs, tels que des guillemets doubles.
Toutefois, ArcGIS ne délimite pas les noms d'objet. Ne créez pas de noms de tables, de classes d’entités, d’index, de bases de données, d’utilisateurs*, de rôles ou d’autres objets nécessitant des délimiteurs si vous allez les utiliser avec ArcGIS. L'objet sera créé dans la base de données, mais vous ne pouvez pas y accéder depuis ArcGIS.
*Les noms d’utilisateur Microsoft SQL Server contenant des caractères spéciaux sont délimités de façon à prendre pleinement en charge les groupes Active Directory et les identifiants authentifiés Windows. Toutefois, ArcGIS ne prend pas en charge les noms d’utilisateur contenant des guillemets simples ou des apostrophes.
Longueur du nom
ArcGIS peut lire et (dans certains cas) créer des objets de base de données, tels que des tables, vues et utilisateurs. La longueur maximale du nom qu’ArcGIS autorise pour ces objets est indiquée dans la table suivante, ainsi que les exceptions éventuelles.
Type d'objet | Nombre maximal de caractères créés par ArcGIS | Nombre maximal de caractères lus par ArcGIS | Exceptions |
---|---|---|---|
Nom de base de données | N/D 250 lors de la création dans SQLite | 31 250 lors de la lecture dans SQLite | ArcGIS peut lire la longueur maximale du nom de base de données autorisée par Oracle. Les valeurs de noms de base de données ne s’appliquent pas pour SAP HANA. Le nom de base de données pour SQLite se compose du chemin d’accès au fichier, du nom de fichier et de l’extension de fichier. Si la base de données SQLite est configurée de façon à utiliser le type spatial ST_Geometry ou SpatiaLite, l’extension de fichier est (.sqlite). Si la base de données SQLite est configurée en tant que OGC GeoPackage, l’extension de fichier est (.gpkg). |
Nom de table, de classe d’entités ou de vue | 128 158 lors de la création dans SQLite | 128 158 lors de la lecture dans SQLite | |
Nom d'index | 16 dans toutes les bases de données sauf SQL Server et SQLite pour lesquels vous pouvez créer des noms d’index allant jusqu’à 128 caractères. | Jusqu’à la limite de la base de données pour les index créés en dehors d’ArcGIS. | Les noms d’Index ne s’appliquent pas dans SAP HANA. |
Nom de champ (colonne) | 31 lors de la création dans SQL Server, PostgreSQL, SAP HANA,Teradata et SQLite. 30 lors de la création dans Db2, Informix et Oracle. | 31 lors de la lecture dans PostgreSQL et SQLite. 30 lors de la lecture dans Db2, Informix et Oracle 12.1 ou versions antérieures. Jusqu’à la limite de la base de données pour les autres bases de données prises en charge. | |
Nom d’utilisateur | ArcGIS ne créé des utilisateurs que dans les bases de données suivantes : Les longueurs de noms d’utilisateur maximales créées sont indiquées.
| Selon la manière dont vous êtes connecté, la boîte de dialogue Connexion à la base de données n’autorise que 31 caractères. L’outil de géotraitement Créer une connexion à une base de données autorise le nombre de caractères dans la limite fixée pour la base de données. | Les valeurs de noms d’utilisateur ne s’appliquent pas à SQLite. |
Mot de passe | ArcGIS ne créé des mots de passe pour les utilisateurs que dans les bases de données suivantes : Les longueurs de mots de passe d’utilisateur maximales créées sont indiquées.
| 256 pour toutes les bases de données prises en charge sauf Teradata pour laquelle seuls 31 caractères sont autorisés. | Les valeurs de mots de passe ne s’appliquent pas à SQLite. |
Validation de la géométrie
Lorsque vous créez des données dans une base de données à l'aide d'un client ArcGIS, ArcGIS valide la géométrie en fonction de règles spécifiques. Si la géométrie que vous construisez dans un client ArcGIS n'est pas valide, ArcGIS ne vous autorise pas à l'insérer dans la base de données.
Les fonctions constructeur ST_Geometry Esri et IBM et l’API ArcGIS utilisent la bibliothèque de formes Esri pour valider les données géométriques lorsque l’entité est créée. Par conséquent, même si vous créez une forme ST_Geometry Esri ou IBM avec SQL, les règles de validation sont appliquées et les géométries non valides ne sont pas validées dans la base de données.
D’autres types spatiaux, tels que SDO_Geometry, la géométrie ou la géographie PostGIS et la géométrie ou la géographie Microsoft SQL Server, possèdent leurs propres fonctions constructeur et utilisent leurs propres règles de vérification de géométrie. Ces règles peuvent être différentes de celles appliquées par ArcGIS. Les clients ArcGIS vérifient la géométrie au moment de la lecture des données et n'affichent pas les géométries qui enfreignent les règles de validation de la géométrie ArcGIS. Si vous vous connectez à une base de données qui contient des données créées en dehors d'ArcGIS, vous devez connaître les règles appliquées par ArcGIS.
Règles de validation pour les points
- La surface et la longueur des points sont 0.0.
- L'enveloppe d'un seul point est égale aux valeurs x,y du point.
- L'enveloppe d'un point multi-parties est l'emprise minimale.
Règles de validation pour les lignes simples ou les chaînes de lignes
- Chaque partie doit avoir au moins deux points distincts.
- Chaque partie ne peut pas se croiser. Les points de début et les extrémités peuvent être identiques, mais l'anneau résultant n'est pas traité comme un polygone.
- Les parties peuvent se toucher aux extrémités.
- La longueur est la somme de toutes les parties.
Règles de validation pour les lignes ou les chaînes non structurées
- Les lignes peuvent se croiser.
- Chaque partie doit avoir au moins deux points distincts.
- La longueur est la somme de toutes les parties.
Règles de validation et opérations pour les polygones
- Les arcs pendants ne sont pas valides.
- Les segments de ligne qui composent le polygone doivent être fermés (les coordonnées z aux points de début et aux extrémités doivent également être identiques) et ne pas se couper.
- Pour les polygones avec des trous, les trous doivent se trouver entièrement dans la limite externe. Les trous qui se trouvent à l'extérieur de la limite externe ne sont pas valides.
- Un trou qui touche une limite externe à un seul point commun est converti en une inversion du polygone.
- Plusieurs trous qui se touchent à des points communs sont fusionnés en un seul trou.
- Les polygones multi-parties ne peuvent pas se chevaucher. Toutefois, deux parties peuvent se toucher à un point.
- Les polygones multi-parties ne peuvent pas partager de limite commune.
- Si deux anneaux ont une limite commune, ils sont fusionnés en un seul anneau.
- Le périmètre de géométrie total, y compris les limites de tous les trous dans les polygones en anneau, est calculé et stocké comme longueur de la géométrie.
- La surface est calculée.
- L'enveloppe est calculée.
- Les points d'un polygone sont stockés dans le sens anti-horaire bien que les clients ArcGIS puissent renvoyer des points dans un sens ou dans l'autre. Si vous générez un polygone qui contient des coordonnées dans le sens horaire, ArcGIS modifie la rotation pour s'assurer que les coordonnées suivent un sens anti-horaire.
Dans cet exemple, le point de départ est a et la description correcte des coordonnées est a, b, c, d, a.
- Un polygone peut avoir des inversions. Il s'agit d'espaces vides à l'intérieur du polygone qui touchent la limite externe.
- Les polygones inversés ont un anneau intérieur qui touche la limite externe. Il ne s'agit pas polygones en anneau.
- Lorsqu'un polygone comporte un trou en anneau, la limite externe est lue en premier. Les points des trous sont stockés dans le sens opposé de la limite externe.
Dans l'illustration suivante, la description de la limite externe est a, b, c, d, a et la description du trou est e, f, g, h, e. Pour l'ensemble du polygone, l'entité est stockée sous la forme a,b,c,d,a,e,f,g,h,e.
- Si deux trous se touchent à un point, ils sont traités comme un seul trou, et non deux.
Dans cet exemple, les deux surfaces intérieures sont un trou unique parce qu'elles partagent un point commun, g.
- La fusion des polygones et des polygones avec trous peut devenir assez complexe, comme le montre l'illustration prochaine. La limite externe est un lac avec un îlot. Un petit lac se trouve sur l'îlot.
Il est possible de représenter ces polygones comme une, deux ou trois entités. Vous pouvez stocker chaque polygone en tant qu'entité distincte. Le lac le plus vaste est un polygone en anneau. La limite du grand lac est la limite externe tandis que l'îlot est la limite du trou en anneau seul. L'îlot est également un polygone en anneau. La limite de l'îlot est la limite externe tandis que le petit lac est le trou. Le petit lac est un polygone unique.
Si les lacs sont les entités importantes, une entité avec un trou représente le grand lac, alors qu'une deuxième forme représente le petit lac. Vous pouvez également utiliser un polygone multi-parties pour représenter l'entité. La première partie de polygone est le grand lac avec un trou en anneau qui représente l'îlot. La deuxième partie est le petit lac.
- Les géométries NIL sont valides et jouent le rôle d'espaces réservés. Elles vous permettent de disposer d'une ligne d'attributs sans géométrie correspondante. Pour obtenir une géométrie NIL, vous pouvez par exemple demander l'intersection de deux polygones qui ne se coupent pas.
Comme les surfaces A et B ne se touchent pas, le résultat d'une requête d'intersection produit une géométrie vide.
- Les entités possèdent des dimensions. Une entité avec uniquement les coordonnées x,y est considérée comme bidimensionnelle. Une entité qui a des coordonnées z ou des mesures est tridimensionnelle. Une entité peut également comporter une mesure NIL.
Métadonnées spatiales
Les géodatabases stockent des métadonnées sur les données spatiales qu'elles contiennent. Les clients ArcGIS peuvent lire des informations concernant le type d'entité de la classe d'entités (par exemple, des points, lignes ou polygones), la dimensionnalité (coordonnées x, y, z et m), la référence spatiale, l'identifiant unique et l'étendue de la classe d'entités à partir des tables système de la géodatabase. Ces tables ne sont pas disponibles lorsqu'ArcGIS se connecte à une classe d'entités dans une base de données. C'est pour cela qu'ArcGIS doit obtenir ces informations auprès d'autres sources.
Lorsque vous faites glisser une classe d’entités (table spatiale) vers ArcMap, une couche de requête est créée. Pour définir la couche de requête, ArcMap effectue les actions suivantes :
- Il interroge la base de données pour obtenir des informations concernant la table spatiale, telles que la dimensionnalité, la référence spatiale et le type de géométrie.
- Si ces informations ne sont pas définies pour la table dans son ensemble, ArcMap lit la première ligne de la table et utilise les informations provenant de cette entité.
- Si la référence spatiale, le type de géométrie ou la dimensionnalité ne peuvent pas être déterminés en examinant la première ligne. Par exemple, si la table ne contient aucune donnée ou si la ligne utilise une référence spatiale personnalisée, vous êtes invité à fournir ces informations à utiliser pour la définition de couche.
- ArcMap interroge la base de données pour trouver une colonne non nulle pouvant être utilisée comme colonne d’identifiant unique (ObjectID) pour les lignes dans la table spécifiée. Si aucune ligne correspondante n’est trouvée, vous êtes invité à définir un ObjectID pour la table.
- Enfin, ArcMap calcule l’étendue de la couche lorsque vous l’ajoutez à la carte.
Etant donné que les éléments affichés dans la carte sont basés sur une requête, vous pouvez ouvrir la définition de couche de requête et la modifier. Par exemple, si votre classe d'entités contient des points et des polygones, vous pouvez ouvrir la définition de couche de requête et sélectionner le type de géométrie à afficher. De la même façon, si votre classe d’entités contient plusieurs colonnes spatiales, vous pouvez ouvrir la définition de couche de requête et modifier la requête de manière à inclure une autre colonne spatiale à la place. Sachez néanmoins que la requête ne peut pas être modifiée de façon à afficher des types de données. non pris en charge.