Cuando crea clases de entidad y tablas, debe seleccionar un tipo de datos para cada campo. Los tipos disponibles incluyen diversos tipos de números, tipos de texto, tipos de fecha, objetos binarios grandes (BLOB) o identificadores únicos a nivel mundial (GUID). La elección del tipo de datos correcto permite almacenar los datos adecuadamente y facilita las necesidades de análisis, de administración de datos y de negocios.
Los tipos de datos que se explican en este tema incluyen los tipos de datos disponibles al crear una clase de entidad o tabla con ArcGIS. Si almacena sus datos en una geodatabase o en una base de datos en un sistema de administración de bases de datos (DBMS), es posible que los tipos de datos de ArcGIS y el DBMS no coincidan directamente. Los tipos coinciden con el tipo de datos más cercano disponible en el DBMS. A este proceso se le llama asignación de tipo de datos. Es posible que en este proceso los valores se almacenen en el DBMS como un tipo diferente y apliquen un criterio distinto al atributo de datos. Como resultado, el tipo de datos que ve en las propiedades de la clase de entidad o la tabla en ArcGIS for Desktop puede diferir de lo que definió inicialmente. Para obtener más información sobre el proceso de asignación de tipo de datos con su sistema de administración de bases de datos, consulte Tipos de datos en el DBMS.
Además, otros formatos de almacenamiento de datos, como los shapefiles o las tablas dbf, tienen diferentes limitaciones de tipo de datos. Asegúrese de conocer el tipo de datos y el tamaño de las limitaciones de su formato de almacenamiento de destino cuando mueva datos entre diferentes tipos de almacenamiento de datos.
Números
Puede almacenar números en uno de los cuatro tipos de datos numéricos:
- Entero corto
- Entero largo
- Flotante (números de punto flotante de precisión simple)
- Doble (números de punto flotante de precisión doble)
Al elegir el tipo de datos, primero considere la necesidad de los números enteros versus los números fraccionarios. Si sólo necesita almacenar números enteros, como 12 ó 12.345.678; especifique si es un entero corto o largo. Si necesita almacenar números fraccionarios que tienen lugares decimales, como 0,23 ó 1234,5678; especifique si es un flotante o un doble.
Segundo, cuando elija entre un entero corto o largo, o entre flotante o doble, elija el tipo de datos que ocupe el menor espacio de almacenamiento posible. Esto no sólo minimizará la cantidad de espacio de almacenamiento necesario sino que también mejorará el rendimiento. Si solo necesita almacenar números enteros entre -32.768 y 32.767, especifique el tipo de datos entero corto, ya que solo requiere 2 bytes, mientras que el tipo de datos entero largo requiere 4. Si solo necesita almacenar números fraccionarios entre -3,4E38 y 1,2E38, especifique el tipo de datos flotante, ya que solo requiere 4 bytes, mientras que el tipo de datos doble requiere hasta 8. En la siguiente tabla aparecen lo tipos de datos, sus rangos y los requisitos de almacenamiento. Los rangos que se encuentran en la lista son para geodatabases de archivos y personales. Los rangos varían ligeramente entre las bases de datos y las geodatabases corporativas, de grupo de trabajo y de escritorio.
Tipo de datos | Rango de almacenamiento | Tamaño (Bytes) | Aplicaciones |
Entero corto | -32.768 a 32.767 | 2 | Valores numéricos sin valores fraccionales dentro de un rango específico; valores codificados |
Entero largo | -2.147.483.648 a 2.147.483.647 | 4 | Valores numéricos sin valores fraccionales dentro de un rango específico |
Flotante (número de punto flotante de precisión simple) | aproximadamente -3,4E38 a 1,2E38 | 4 | Valores numéricos con valores fraccionales dentro de un rango específico |
Doble (número de punto flotante de precisión doble) | aproximadamente -2,2E308 a 1,8E308 | 8 | Valores numéricos con valores fraccionales dentro de un rango específico |
Si está especificando campos numéricos para una tabla en una geodatabase personal o de archivos, debe especificar sólo el tipo de datos. Si está especificando campos numéricos para una base de datos o una geodatabase corporativa, de grupo de trabajo o de escritorio, especifique también la precisión (la longitud máxima del campo) y la escala (el número máximo de posiciones decimales).
La especificación de la precisión y la escala permite restringir el rango de valores y los formatos de números que un campo puede aceptar, lo que brinda mayor control. Por ejemplo, si especifica un número de punto flotante con una precisión de 4 y una escala de 2, el campo aceptará 12,34. Si intenta introducir 12,345 en el campo, se mostrará un mensaje de error ya que esto supera el número máximo de dígitos y posiciones decimales permitidos. Por otro lado, si especifica un número de punto flotante con una precisión de 5 y una escala de 3, el campo le permitirá introducir 12,345.
En la siguiente tabla se encuentra una lista de los tipos de datos, su precisión posible y sus valores de escala. Utilice esta tabla como ayuda para elegir el tipo de datos, la precisión y la escala:
Tipo de datos | Precisión (longitud del campo) | Escala (posiciones decimales) |
---|---|---|
Entero corto* | 1–5 (Oracle, SQL Server, PostgreSQL, Netezza); 5 (DB2, Informix) | 0 |
Entero largo | 6–10 (Oracle y PostgreSQL); 6–9 (DB2, Informix, Netezza y SQL Server) | 0 |
Flotante | 1–6 | 1–6 |
Doble | 7+ | 0+ |
*De manera predeterminada en ArcGIS for Desktop, los enteros cortos se crean con una precisión de 5. Sin embargo, las columnas de enteros cortos solo pueden almacenar valores comprendidos en el rango de -32.768 a 32.767. Por tanto, no se puede almacenar un valor mayor que 32.767 o menor que -32.768 en un campo de entero corto aunque la precisión se defina como 5. No hay motivos para especificar la precisión para las columnas de enteros cortos creadas en ArcGIS for Desktop en ninguna base de datos excepto Oracle. No hay motivos para especificar la precisión para las columnas de enteros largos creadas en ArcGIS for Desktop en bases de datos de SQL Server o PostgreSQL.
A continuación, encontrará ejemplos de rangos de números y de cómo puede almacenarlos en una base de datos o una geodatabase corporativa, de grupo de trabajo o de escritorio:
Rango | Tipo de datos | Precisión (longitud del campo) | Escala (posiciones decimales) |
---|---|---|---|
de 0 a 99 | Entero corto | 2 | 0 |
-99 a 99* | Entero corto | 3 | 0 |
0 a 32.767* | Entero corto | 5 | 0 |
32.768 a 99.999 | Entero largo | 5 | 0 |
0,001 a 0,999 | Flotante | 4 | 3 |
1.000,00 a 9.999,99 | Flotante | 6 | 2 |
-123.456,78 a 0* | Doble | 9 | 2 |
0 a 1,234.56789 | Doble | 9 | 5 |
*Los números negativos requieren precisión adicional para almacenar el signo negativo.
Los equipos sólo pueden almacenar una cantidad de dígitos limitada, según el espacio de almacenamiento asignado. Los campos del tipo de datos doble en bases de datos y geodatabases pueden almacenar con precisión números que contengan hasta un máximo de 15 dígitos, porque este es el número más largo que cabe en un espacio de almacenamiento de 8 bytes. Los números que tengan más dígitos se redondean y se almacenan en un formato similar a la notación científica, lo que los convierte en números aproximados. Por ejemplo, si introduce el número de 20 dígitos 12.345.678.901.234.567.890, se redondea y se almacena como el número de 15 dígitos 1,23456789012346E+19. El valor codificado del final, E+19, define la posición de la coma decimal.
Los flotantes en las geodatabases personales y de archivos pueden almacenar con precisión números que contengan hasta un máximo de 6 dígitos. Por ejemplo, no pudo almacenar el número 123.456,7 con precisión en un campo flotante porque este número contiene más de seis dígitos. Puede introducir el número en un campo flotante en una geodatabase personal o de archivos, pero se redondeará a 123.457, un número que contiene los 6 dígitos permitidos. Si necesita almacenar este número con precisión, lo puede almacenar en un campo doble. Los campos flotantes de las bases de datos y las geodatabases corporativas, de grupo de trabajo y de escritorio no le permiten introducir más dígitos que la precisión para el campo, de manera que no hay redondeo.
Texto
Un campo de texto representa una serie de símbolos alfanuméricos. Esto puede incluir nombres de calles, propiedades de atributos u otras descripciones textuales. Una alternativa para repetir atributos textuales en una geodatabase es establecer un valor codificado. Una descripción textual se codificará con un valor numérico. Por ejemplo, puede codificar tipos de carreteras con valores numéricos asignándole un 1 a las carreteras de pavimento mejoradas, un 2 a las carreteras de ripio, y así sucesivamente. Esto cuenta con la ventaja de que utiliza menos espacio de almacenamiento en la geodatabase; sin embargo, el usuario de los datos debe interpretar los valores codificados. Si define los valores codificados en un dominio de valor codificado en la geodatabase y asocia el dominio con el campo entero que almacena sus códigos, la geodatabase mostrará la descripción textual cuando se vea la tabla en ArcMap o ArcCatalog.
Más información sobre subtipos y dominios de atributo.
Los caracteres utilizados para el texto varían según el idioma. Para permitir que un texto se convierta más fácilmente entre idiomas, ArcGIS utiliza Unicode para codificar los caracteres.
Fechas
En el tipo de datos de fecha se pueden almacenar fechas, horas o fechas y horas. El formato predeterminado en el cual se presenta la información es mm/dd/aaaa hh:mm:ss y una especificación para a.m. o p.m. Cuando introduzca campos de fecha en la tabla a través de ArcGIS, se convierten a este formato.
BLOB
Un BLOB son datos almacenados como una secuencia larga de números binarios. En ArcGIS, las anotaciones y dimensiones se almacenan como BLOB y los elementos, como imágenes, multimedia o bits de código, se pueden almacenar en este tipo de campo. Es necesario que utilice un cargador o un visualizador personalizado, o una aplicación de terceros, para cargar elementos en un campo BLOB o para visualizar el contenido de un campo BLOB.
Identificadores de objeto
ArcGIS mantiene el campo ObjectID y garantiza un Id. único para cada fila de la tabla. Cuando mira una tabla o una tabla de atributos de la capa, generalmente ve que el campo ObjectID figura en la lista debajo de los alias de OID o Id. de objeto para las tablas y de FID para las capas. Las funciones clave, como los conjuntos de selección de desplazamiento y visualización, dependen de la presencia de este campo.
Hay que señalar que la mayor parte de la funcionalidad de ArcGIS for Desktop, como el uso de la herramienta Identificar, requiere que el ObjectID sea único. Por lo tanto, se debe tener cuidado al trabajar directamente con la base de datos fuera de ArcGIS para que los ObjectID no se dupliquen. Por ejemplo, cuando crea vistas con una relación de uno a muchos, es posible que se dupliquen los ObjectID. Esto ocasionará un comportamiento incoherente en la funcionalidad de ArcGIS for Desktop.
Cuando agrega una tabla de base de datos para ArcMap, es necesario un identificador de objeto. Si ArcGIS no puede encontrar un campo de enteros no nulo para utilizar como un identificador de objeto, se le solicitará que elija un campo que se va a utilizar como identificador de objeto. Consulte Seleccionar un campo de identificador único para una capa de consulta si desea obtener más información.
Identificadores globales
Los tipos de datos Id. Global y GUID almacenan cadenas de estilo de registro que constan de 36 caracteres encerrados en llaves. Estas cadenas únicamente identifican una entidad o fila de tabla dentro de una geodatabase y en todas las geodatabases. Así es como se rastrean las entidades en la replicación de geodatabase unidireccional y doble. Los desarrolladores las pueden utilizar en las relaciones o en cualquier aplicación que requiera identificadores únicos a nivel mundial. En una relación, si un campo de Id. global es la clave de origen, la clave de destino debe ser un campo GUID. Puede agregar ID globales a un dataset en una geodatabase haciendo clic derecho en el árbol de Catálogo y haciendo clic en Agregar ID globales. A continuación, la geodatabase mantendrá estos valores automáticamente. También puede crear el campo GUID, pero debe mantener sus valores.
Las bases de datos con un tipo de datos GUID nativo, como las geodatabases personales y de Microsoft SQL Server, almacenan valores de ID global y GUID como 16 bytes. Las bases de datos que no tienen un tipo de datos GUID nativo las almacenan como 38 bytes.
Algunas notas sobre los ID globales
- Los campos GUID se pueden agregar a datasets de geodatabase utilizando la pestaña Campos en el cuadro de diálogo Propiedades de una entidad o el comando Agregar campo en la ventana de tabla.
- El comando Agregar ID globales se encuentra disponible para las clases de entidad independientes, las tablas y las clases de relación con atributos en geodatabases. No se puede ejecutar en datasets individuales en un dataset de entidad; solo se puede ejecutar en todo el dataset de entidad. Tampoco se puede ejecutar en tablas en una base de datos.
- Si ya existe una columna de ID global, el comando deja la columna antigua; no despliega ni agrega una columna de ID global nueva.
- Si agrega una clase de entidad a un dataset de entidad en una geodatabase y quiere agregarle una columna de ID global, deberá ejecutar el comando Agregar ID Global en el dataset de entidad. Esto le agregará una columna de Id. global a la clase de entidad nueva y a cualquier clase de entidad que no tenga una columna de Id. global. Las clases de entidades que ya tienen una columna de Id. global permanecerán sin cambios.
- Copiar y pegar, la extracción de datos y la exportación e importación de espacios de trabajo XML preservan los valores de ID global en la geodatabase de salida. Otros métodos de exportación e importación de datos no preservan estos valores.
Campos de tipo ráster
A diferencia de un hipervínculo que simplemente vincula un campo de entidades a una imagen, un campo de tipo ráster puede almacenar los datos ráster dentro o junto a la geodatabase. Para obtener más información, consulte Agregar datasets ráster como atributos en una clase de entidad.
Geometría
En ArcGIS, el tipo de datos geometría indica el tipo de geometría (punto, línea, polígono, multipunto o multiparche) que la tabla almacena. El campo almacenado como un tipo de geometría se llama SHAPE cuando se crea a través de ArcGIS.
El tipo de datos que utiliza ArcGIS es geometría. Por ejemplo, si elige Entidades poligonales para una clase de entidad nueva, como se muestra a continuación, el campo SHAPE agregado de manera predeterminada tendrá un tipo de datos de ArcGIS de geometría.
En la sección Propiedades del campo del cuadro de diálogo Nueva clase de entidad verá el tipo de geometría enumerado como Polígono.
Si ha creado una clase de entidad con un tipo de entidad distinto (línea, punto, multipunto, multiparche, dimensión o anotación), el tipo de geometría para el campo SHAPE cambiará según corresponda (a línea, punto, multipunto, multiparche o polígono para dimensión y anotación).
Cuando crea un campo de geometría en una clase de entidad de una base de datos o una geodatabase corporativa, de grupo de trabajo o de escritorio, hay otro tipo de datos que se debe tener en cuenta: el tipo de datos de la base de datos. El valor del campo SHAPE se almacena en el DBMS depende del tipo de almacenamiento de geometría utilizado por el DBMS. Cuando crea una clase de entidad en una base de datos, define el tipo espacial del campo en la sección Propiedades del campo del cuadro de diálogo Nueva clase de entidad. Cuando crea una clase de entidad en una geodatabase, el tipo de almacenamiento de geometría utilizado se determina por el parámetro GEOMETRY_STORAGE de la palabra clave de configuración que especifique.