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 base de datos o una geodatabase en un sistema de administración de bases de datos (DBMS), es posible que los tipos de datos de ArcGIS y los tipos de datos del DBMS no coincidan exactamente. Los tipos coinciden con el tipo de datos más cercano disponible. 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 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.
En segundo lugar, 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. De esta manera, no solo 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 (o 12,3 o 12). Si intenta introducir 12,345 en el campo, se muestra un mensaje de error, ya que se 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, 12,34 o 12,3.
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-4 (PostgreSQL) 1–5 (Oracle, SQL Server y Netezza) 5 (Db2, Informix) | 0 |
Entero largo | 5-9 (PostgreSQL) 6–9 (Db2, Informix, Netezza y SQL Server) 6–10 (Oracle) | 0 |
Flotante | 1–6 | 1–6 |
Doble | 7+ | 0+ |
*De manera predeterminada en ArcGIS 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 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 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 de tipo entero que almacena sus códigos, la geodatabase mostrará la descripción textual cuando se vea la tabla en ArcGIS Desktop.
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, el cual garantiza un identificador único para cada fila de la tabla. Algunas funciones clave de ArcGIS, como el desplazamiento panorámico, la identificación de entidades y la visualización de conjuntos de selección, dependen de la presencia de este campo y requieren que los valores sean únicos.
Dado que la mayor parte de la funcionalidad de ArcGIS Desktop requiere que el ObjectID sea único, asegúrese de no duplicar los valores de ObjectID al trabajar directamente con la base de datos fuera de ArcGIS. 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 Desktop.
Cuando agrega una tabla de base de datos a ArcMap, se requiere un identificador de objeto. Si ArcGIS no puede encontrar un campo de tipo entero no nulo para utilizar como identificador de objeto, se le solicitará que elija un campo. 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. La geodatabase mantiene estos valores automáticamente. También puede crear campos GUID, pero debe mantener los valores del campo.
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 identificadores 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 permanecen 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, ArcGIS agrega un campo SHAPE y define el tipo de datos de ArcGIS como 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 crea 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 modo en que el valor del campo SHAPE se almacena en la base de datos 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.