Lorsque vous créez des classes d'entités et des tables, vous sélectionnez un type de données pour chaque champ. Un éventail de types de nombre, de texte, de date, d'objets BLOB (Binary Large Object) ou d'identifiants GUID (globally unique identifiers) vous est présenté. La sélection du bon type de données vous permet de stocker les données convenablement, facilite l'analyse et la gestion des données et répond aussi à vos besoins professionnels.
Les types de données présentés dans cette rubrique incluent les types de données disponibles lors de la création d'une classe d'entités ou d'une table avec ArcGIS. Si vous stockez vos données dans une base de données ou une géodatabase au sein d’un système de gestion de bases de données (SGBD), les types de données ArcGIS et les types de données du SGBD risquent de ne pas correspondre exactement. Ils sont assimilés au type de données se rapprochant le plus du type disponible. Ce processus est appelé "mappage des types de données". Au cours du mappage, il se peut que les valeurs soient stockées dans le SGBD sous un type de données différent, appliquant ainsi des critères différents à l'attribut de données. En conséquence, le type de données affiché dans les propriétés de classe d'entités ou de table d'ArcGIS Desktop peut être différent du type que vous avez défini au départ. Pour en savoir plus sur le processus de mappage de types de données avec votre système de gestion de base de données, reportez-vous à Types de données dans le SGBD.
De plus, d'autres formats de stockage de données, comme des fichiers de formes ou des tables dbf, présentent des limitations différentes concernant le type de données. Assurez-vous d'identifier les limitations concernant le type de données et la taille du format de stockage de destination lorsque vous déplacez les données entre différents types de stockage.
Nombres
Vous pouvez stocker les nombres dans l'un de quatre types de données numériques :
- Entier court
- Entier long
- Réel simple (nombres à virgule flottante à simple précision)
- Réel double (nombres à virgule flottante à double précision)
Dans le choix du type de données, considérez d'abord vos besoins en termes de nombres entiers ou de nombres fractionnels. Si vous avez uniquement besoin de stocker des nombres entiers, tels que 12 ou 12 345 678, spécifiez un type entier court ou long. Si vous devez stocker des fractions avec décimales, comme 0,23 ou 1234,5678, spécifiez un type réel simple ou double.
Ensuite, pour décider entre entier court ou long, réel simple ou double, choisissez le type de données qui occupe le moins d’espace de stockage. Cela permet non seulement de minimiser le volume de stockage requis, mais aussi d’améliorer les performances. Si vous devez stocker uniquement des nombres entiers compris entre -32 768 et 32 767, spécifiez le type de données entier court qui n'occupe que 2 octets, alors que le type de données entier long en nécessite 4. Si vous devez stocker des nombres décimaux compris entre -3.4E38 et 1.2E38, spécifiez le type de données réel simple qui occupe 2 octets, alors que le type de données réel double en nécessite 4. Le tableau suivant liste les types de données, leurs plages de valeurs et besoins de stockage. Les plages indiquées sont pour les géodatabases personnelles et fichiers. Les plages sont légèrement différentes dans les bases de données et les géodatabases d'entreprise, de groupe de travail et de bureau.
Type de données | Plage stockable | Taille (en octets) | Applications |
Entier court | -32 768 à 32 767 | 2 | Valeurs numériques sans fractions appartenant à une plage particulière ; valeurs précodées |
Entier long | -2 147 483 648 à 2 147 483 647 | 4 | Valeurs numériques sans fractions appartenant à une plage particulière |
Réel simple (nombre à virgule flottante à simple précision) | environ -3,4E38 à 1,2E38 | 4 | Valeurs numériques avec des fractions appartenant à une plage particulière |
Réel double (nombre à virgule flottante à double précision) | environ -2,2E308 à 1,8E308 | 8 | Valeurs numériques avec des fractions appartenant à une plage particulière |
Lorsque vous spécifiez des champs numériques pour une table dans une géodatabase fichier ou personnelle, il suffit de spécifier le type de données. Si vous spécifiez des champs numériques pour une base de données ou une géodatabase d'entreprise, de groupe de travail ou de bureau, indiquez également la précision (la longueur maximale du champ) et l'échelle (le nombre maximal de décimales).
En spécifiant la précision et l'échelle, vous pouvez restreindre les plages de valeurs et les formats de nombre qu'un champ peut accepter, ce qui vous donne un meilleur contrôle. Par exemple, si vous spécifiez un réel simple avec une précision de 4 et une échelle de 2, le champ acceptera 12,34. Si vous essayez d'entrer 12,345 dans le champ, un message d'erreur s'affiche car le nombre maximal de chiffres et de décimales est dépassé. En revanche, si vous spécifiez un réel simple avec une précision de 5 et une échelle de 3, le champ vous permet d'entrer 12,345.
Les types de données avec les valeurs de précision et d'échelle possibles sont répertoriés dans le tableau suivant. Utilisez ce tableau pour vous aider à choisir le type de données, la précision et l'échelle :
Type de données | Précision (longueur du champ) | Echelle (nombre de décimales) |
---|---|---|
Entier court* | 1-4 (PostgreSQL) 1–5 (Oracle, SQL Server et Netezza) 5 (Db2, Informix) | 0 |
Entier long | 5-9 (PostgreSQL) 6–9 (Db2, Informix, Netezza et SQL Server) 6–10 (Oracle) | 0 |
Flottant | 1–6 | 1–6 |
Double | 7+ | 0+ |
*Par défaut, dans ArcGIS Desktop, les nombres entiers courts sont créés avec une précision de 5. Toutefois, les colonnes de nombres entiers courts peuvent uniquement stocker des valeurs comprises entre -32,768 et 32,767. Par conséquent, vous ne pouvez pas stocker de valeur supérieure à 32 767 ou inférieure à - 32 768 dans un champ de nombre entier court même si vous avez défini une précision de 5. Il est inutile de spécifier une précision pour les colonnes de nombres entiers courts créées dans ArcGIS Desktop dans les bases de données autres qu'Oracle. Il est inutile de spécifier une précision pour les colonnes de nombres entiers longs créées dans ArcGIS Desktop dans les bases de données SQL Server ou PostgreSQL.
Voici des exemples de plages de nombres et la manière dont vous pouvez les stocker dans une base de données ou une géodatabase d'entreprise, de groupe de travail ou de bureau :
Plage | Type de données | Précision (longueur du champ) | Echelle (nombre de décimales) |
---|---|---|---|
0 à 99 | Entier court | 2 | 0 |
-99 à 99* | Entier court | 3 | 0 |
0 à 32,767* | Entier court | 5 | 0 |
32,768 à 99,999 | Entier long | 5 | 0 |
0,001 à 0,999 | Flottant | 4 | 3 |
1,000.00 à 9,999.99 | Flottant | 6 | 2 |
-123 456,78 à 0* | Double | 9 | 2 |
0 à 1,234.56789 | Double | 9 | 5 |
* Les nombres négatifs nécessitent une précision supplémentaire pour stocker le signe moins.
Les ordinateurs peuvent stocker uniquement un nombre limité de chiffres en fonction de l'espace de stockage alloué. Les champs de type de données réel double dans les bases de données et les géodatabases peuvent stocker de façon précise des nombres qui contiennent jusqu'à 15 chiffres uniquement, parce que c'est le plus long nombre qui peut tenir dans 8 octets d'espace de stockage. Les nombres qui ont plus de chiffres sont arrondis et stockés dans un format semblable au format scientifique, ce qui en fait des nombres approximatifs uniquement. Par exemple, si vous entrez le nombre 12 345 678 901 234 567 890 comportant 20 chiffres, il est arrondi et stocké comme nombre 1,23456789012346E+19 comportant 15 chiffres. La valeur précodée à la fin, E+19, définit le placement de la virgule.
Les réels simples dans les géodatabases personnelles et fichiers peuvent stocker de façon précise des nombres qui contiennent jusqu'à 6 chiffres uniquement. Par exemple, vous ne pouvez pas stocker de façon précise le nombre 123 456,7 dans un champ réel simple car il est composé de plus de 6 chiffres. Vous pouvez entrer le nombre dans un champ réel simple dans une géodatabase fichier ou personnelle, mais il sera arrondi à 123 457, un nombre qui contient les 6 chiffres admis. Si vous devez stocker ce nombre de façon précise, vous pouvez le stocker dans un champ réel double. Les champs réels simples dans des géodatabases d'entreprise, de groupe de travail et de bureau et des bases de données ne vous permettent pas d'entrer plus de chiffres que la précision pour le champ ; aucun arrondi n'a donc lieu.
Texte
Un champ de texte représente une série de symboles alphanumériques. Par exemple : noms de rues, propriétés attributaires ou autres descriptions textuelles. Au lieu de réutiliser des attributs textuels dans une géodatabase, vous définissez une valeur précodée. Une description textuelle est codée à l'aide d'une valeur numérique. Par exemple, vous pourriez coder des types de routes à l'aide de valeurs numériques en attribuant un 1 à une route pavée, un 2 à une route en gravier, etc. Cette méthode a l'avantage d'utiliser moins d'espace dans la géodatabase. Cependant, l'utilisateur doit maîtriser ces valeurs précodées. Si vous définissez vos valeurs précodées dans un domaine de la géodatabase et que vous associez ce domaine au champ d’entiers qui stocke vos codes, la géodatabase présente la description textuelle lorsque la table est affichée dans ArcGIS Desktop.
Pour en savoir plus sur les sous-types et les domaines attributaires.
Les caractères utilisés pour le texte varient selon la langue. Pour permettre une conversion de texte plus facile entre les langues, ArcGIS utilise Unicode pour coder les caractères.
Dates
Le type de données de date peut stocker des dates, des heures ou des dates et des heures. Le format de présentation par défaut est : mm/jj/aaaa hh:mm:ss. Le moment de la journée est également indiqué (AM ou PM). Lorsque vous entrez des champs de date dans la table via ArcGIS, ils sont convertis dans ce format.
BLOB
Un BLOB représentent des données stockées sous forme d’une longue séquence de nombres binaires. ArcGIS stocke les annotations et les dimensions en tant qu'objets BLOB et les éléments tels que des images, des éléments multimédias ou des parties de codes peuvent être stockés dans ce type de champ. Vous devez utiliser une visionneuse ou un chargeur personnalisé, ou une application tierce pour charger des attributs dans un champ BLOB ou afficher le contenu d'un champ BLOB.
Identifiants d'objet
Le champ ObjectID est mis à jour par ArcGIS et garantit un identifiant unique pour chaque ligne de la table. Les fonctions clés ArcGIS, comme le déplacement, l’identification des entités et l’affichage des ensemble de sélection, dépendent de la présence de ce champ et nécessitent l’unicité des valeurs.
Étant donné que la plupart des fonctionnalités ArcGIS Desktop de base requièrent l’unicité de l’ObjectID, veillez à ne pas dupliquer les valeurs d’ObjectID lorsque vous utilisez directement la base de données hors de ArcGIS. Par exemple, lors de la création de vues avec une relation un vers plusieurs, les identifiants d'objet peuvent être dupliqués. Ceci peut provoquer un comportement incohérent dans le fonctionnement d'ArcGIS Desktop.
Lorsque vous ajoutez une table de base de données à ArcMap, un identifiant d’objet est nécessaire. Si ArcGIS ne trouve pas de champ de valeur entière et non nulle à utiliser comme identifiant d’objet, vous êtes invité à choisir un champ. Pour plus d'informations, reportez-vous à la rubrique Choisir un champ d'identifiant unique pour une couche de requête.
Identifiants globaux
Les types de données GlobalID et GUID contiennent des chaînes de registre constituées de 36 caractères placés entre des accolades. Ces chaînes identifient de manière unique une entité ou une ligne de table dans une géodatabase et entre plusieurs géodatabases. C'est ainsi que les entités sont suivies dans la réplication de géodatabase monodirectionnelle et bidirectionnelle. Les développeurs peuvent les utiliser dans des relations ou dans toute application nécessitant des identifiants uniques. Dans une relation, si un champ d'ID global constitue la clé d'origine, un champ GUID doit constituer la clé de destination. Vous pouvez ajouter des ID globaux à un jeu de données dans une géodatabase en cliquant avec le bouton droit dans l'arborescence du Catalogue, puis en cliquant sur Ajouter les ID globaux. La géodatabase gère ces valeurs automatiquement. Vous pouvez aussi créer des champ GUID mais vous devez en gérer les valeurs.
Les bases de données avec un type de données GUID natif, telles que les géodatabases personnelles et Microsoft SQL Server, stockent les valeurs d'ID global et GUID dans 16 octets. Les bases de données sans type de données GUID natif les stockent dans 38 octets.
Quelques remarques sur les identifiants globaux
- Des champs GUID peuvent être ajoutés aux jeux de données de géodatabase à l'aide de l'onglet Champs dans la boîte de dialogue Propriétés d'une entité ou de la commande Ajouter un champ de la fenêtre de la table.
- La commande Ajouter les ID globaux est disponible pour les classes d'entités autonomes, les tables et les classes de relations attribuées dans des géodatabases. Elle ne peut pas être exécutée sur un jeu de données particulier d'un jeu de données d'entités. Elle ne peut être exécutée que sur le jeu de données entier. Elle ne peut pas non plus être exécutée sur les tables d'une base de données.
- Si une colonne d'identificateurs globaux existe déjà, la commande laisse l'ancienne colonne ; elle ne la supprime pas pour ajouter une nouvelle colonne d'ID global.
- Si vous ajoutez une classe d'entités à un jeu de données d'entités dans une géodatabase et que vous souhaitez lui ajouter une colonne d'ID global, vous devez exécuter la commande Ajouter les ID globaux sur le jeu de données d'entités. Cela ajoute une colonne d'ID global à la nouvelle classe d'entités et à toutes les classes d'entités qui n'ont pas encore de colonne d'ID global. Les classes d’entités qui possèdent déjà une colonne d’ID global restent inchangées.
- Les actions copier et coller, extraire les données et importer/exporter un document d'espace de travail XML conservent les valeurs d'identifiant global dans la géodatabase en sortie. Les autres méthodes d'exportation et d'importation de données ne conservent pas ces valeurs.
Champs de type raster
Contrairement à un hyperlien qui relie simplement le champ d'une entité à une image, un champ de type raster peut stocker les données raster dans ou avec la géodatabase. Pour en savoir plus, reportez-vous à Ajout des jeux de données raster en tant qu'attributs dans une classe d'entités.
Géométrie
Dans ArcGIS, le type de données de géométrie indique le type de géométrie (point, ligne, polygone, multi-points ou multipatch) stocké dans la table. Le champ stocké comme type de géométrie est appelé SHAPE lorsqu'il est créé via ArcGIS.
La géométrie est le type de données utilisé par ArcGIS. Par exemple, si vous choisissez Polygon Features (Entités surfaciques) pour une nouvelle classe d’entités, comme illustré ci-dessous, ArcGIS ajoute un champ SHAPE et définit le type de données ArcGIS sur Geometry (Géométrie).
Dans la section Field Properties (Propriétés du champ) de la boîte de dialogue New Feature Class (Nouvelle classe d’entités), Geometry Type (Type de géométrie) est répertorié comme Polygon (Polygone).
Si vous créez une classe d’entités avec un autre type d’entité (ligne, point, multi-points, multipatch, dimension ou annotation), le type de géométrie pour le champ SHAPE est modifié, selon le cas, en ligne, point, multi-points, multipatch ou polygone pour la dimension et l’annotation.
Lorsque vous créez un champ de géométrie dans une classe d'entités au sein d'une base de données ou d'une géodatabase d'entreprise, de groupe de travail ou de bureau, vous devez prendre en compte un autre type de données : le type de données de la base de données. La manière dont la valeur du champ SHAPE est stockée dans la base de données dépend du type de stockage de géométries utilisé par le SGBD. Lorsque vous créez une classe d'entités dans une base de données, vous définissez le type spatial du champ dans la section Propriétés du champ de la boîte de dialogue Nouvelle classe d'entités. Lorsque vous créez une classe d'entités dans une géodatabase, le type de stockage de géométries utilisé est déterminé par le paramètre GEOMETRY_STORAGE dans le mot-clé de configuration que vous spécifiez.