El proceso de archivado

La habilitación del archivado en un dataset versionado crea y completa la clase de archivo con los datos actuales de la versión DEFAULT. La clase de archivo utiliza gdb_from_date y gdb_to_date para mantener el momento en el que se archivó el cambio. La habilitación del archivado en datos no versionados crea los campos gdb_from_date y gdb_to_date directamente en la tabla base de la clase.

Representar la hora

Es importante entender cómo ArcGIS representa la hora cuando se registra el cambio. El historial se puede registrar como hora válida, hora de transacción u Hora universal coordinada (UTC). La hora válida es el momento real en el que se produjo un cambio en el mundo real y suele registrarla el usuario que está aplicando el cambio. La hora de transacción es la hora en la que se registró un evento en la base de datos. El sistema genera automáticamente las horas de transacción. UTC es el estándar principal que se usa para regular los relojes y la hora a través de Internet.

Para el archivado en datos versionados, ArcGIS utiliza la hora de transacción, que se basa en la hora del servidor actual, para registrar los cambios en los datos cuando los cambios se guardan o se envían a la versión DEFAULT. La hora de transacción y la hora en la que se produjo el evento en el mundo real raramente son la misma hora. Transcurrirá tiempo entre el momento en que sucede un evento en el mundo real y el momento en que se registra en la base de datos. Por ejemplo, una parcela se vende el 14 de mayo de 2006; sin embargo, el cambio no se registra hasta el 5 de junio de 2006. La hora de la transacción del 5 de junio de 2006 se registra en la clase de archivo para este cambio.

Cuando se produce la edición, ArcGIS archiva la transacción en la clase de archivado. La diferencia entre el momento del evento del mundo real y el momento de la transacción puede parecer insignificante, pero se hace más aparente cuando se realizan consultas contra la información archivada. Los trabajos acumulados de edición y actualización de datos no son raros en los sistemas de producción, y producen diferencias de tiempo y retrasos entre las horas válidas y de transacción.

La diferencia entre las horas válidos y de transacción también son un problema en situaciones en las que el historial se registra en un entorno multiusuario con muchos usuarios o departamentos diferentes que editan la base de datos. Es posible que la secuencia en la que se realizan y se registran los cambios no siga el mismo orden en el que se produjeron esos cambios en el mundo real.

El archivado en datos no versionados utiliza UTC para representar la hora. Los cambios efectuados en los datos se registran cuando se guardan las modificaciones durante una sesión de edición.

Habilitar archivado en datos no versionados

Tras la habilitación del archivado, los atributos gdb_from_date y gdb_to_date se agregan a la tabla base. El atributo gdb_from_date para todas las filas se marca con la fecha y hora de la operación de habilitación de archivado. En el atributo gdb_to_date de todas las filas se marca el tiempo 12/31/9999. Siempre que un atributo tenga el valor de gdb_to_date 12/31/9999, es la representación actual del objeto. Cuando se guardan las modificaciones, la geodatabase archiva automáticamente los cambios del siguiente modo:

  • Las entidades de nueva creación tienen el valor para el atributo gdb_from_date establecido en la marca de tiempo de la operación de archivado y el atributo gdb_to_date establecido en 12/31/9999.
  • Las entidades actualizadas en una sesión de edición actualizan la fila asociada en la tabla base estableciendo el valor para el atributo gdb_to_date en la marca de tiempo de la operación de archivado, e insertan una nueva fila con el valor para el atributo gdb_from_date establecido en la marca de tiempo de la operación de archivado y el atributo gdb_to_date establecido en 12/31/9999.
  • Las entidades eliminadas en una sesión de edición actualizan la fila asociada en la tabla base estableciendo el valor del atributo gdb_to_date igual a la marca de tiempo de la operación de archivado.

Habilitar archivado en datos versionados

Al habilitarse el archivado, todas las filas que representan la versión DEFAULT para la clase dada se copian a la clase de archivado con la misma marca de tiempo. El atributo gdb_from_date para todas las filas se marca con la fecha y hora de la operación de habilitación de archivado. En el atributo gdb_to_date de todas las filas se marca el tiempo 12/31/9999. Siempre que un atributo tenga el valor de gdb_to_date 12/31/9999, es la representación actual del objeto en la versión DEFAULT. Cuando las ediciones se guardan o publican en la versión DEFAULT, la geodatabase automáticamente archiva los cambios en la clase de archivo. Esto significa lo siguiente:

  • Las entidades creadas en la versión DEFAULT se representan en la clase de archivado como filas con el valor para el atributo gdb_from_date establecido en la marca de tiempo de la operación de archivado y el atributo gdb_to_date establecido en 12/31/9999.
  • Las entidades actualizadas en la versión DEFAULT actualizan la fila asociada en la clase de archivado estableciendo el valor para el atributo gdb_to_date en la marca de tiempo de la operación de archivado, e insertan una nueva fila con el valor para el atributo gdb_from_date establecido en la marca de tiempo de la operación de archivado y el atributo gdb_to_date establecido en 12/31/9999.
  • Las entidades eliminadas en la versión DEFAULT actualizan la fila asociada en la clase de archivado estableciendo el valor del atributo gdb_to_date igual a la marca de tiempo de la operación de archivado.

La actualización de la tabla de archivo se realiza dentro de una sola transacción de base de datos. Si se encuentran errores durante la transacción, se elimina toda la operación de archivado, y, por lo tanto, no se completa la operación de guardado o publicación. Una vez que se ha rectificado el error, vuelva a realizar la operación de guardado o publicación.

Para cada operación de archivado, el marcador histórico DEFAULT se actualiza con el valor de la operación de archivado. Esto garantiza que al elegir el marcador histórico DEFAULT cuando se trabaja con una versión histórica, la representación actual de la clase de archivo es equivalente a la representación de la clase versionada en la versión transaccional DEFAULT.

El acceso a la clase de archivo en realidad puede utilizar menos recursos de la base de datos que al trabajar con la clase versionada equivalente.

Las consultas de las versiones históricas están en la clase de archivo:

Tabla de archivo
Tabla de archivo

Las consultas de las versiones transaccionales aún están en las tablas base y delta:

Tablas base, tabla de inserciones y tabla de borrados
Tablas base, tabla de inserciones y tabla de borrados

Agregar una entidad

Esta entidad en una estructura de parcela muestra la parcela número 116 y su fila correspondiente. Para los datos versionados, esta fila aparecería en la clase de archivado. Para los datos no versionados, esta fila estaría en la tabla base para parcelas. El atributo gdb_from_date muestra la fecha y la hora de creación, mientras que el atributo gdb_to_date muestra 12/31/9999, porque la entidad no se ha modificado o eliminado desde la habilitación del archivado.

Agregar una entidad

Cuando se inserta una entidad (parcela 117), se inserta una fila con el atributo gdb_from_date actualizado con la marca de tiempo de esta operación de publicación. El atributo gdb_to_date de la fila nueva muestra 12/31/9999 porque esta entidad aun no se ha actualizado o eliminado.

Agregar una entidad 2
Nota:

Algunas operaciones de edición, como la creación de entidades con la herramienta Auto-completar el polígono y la validación de una topología de geodatabase, insertan vértices en entidades existentes para mantener la coincidencia entre las entidades adyacentes. Por ejemplo, si utiliza la herramienta Auto-completar el polígono para crear un nuevo polígono que esté contiguo a un polígono existente, se agregan vértices al polígono existente en las ubicaciones en las que el bosquejo de la nueva entidad atraviesa la entidad existente.

Actualizar una entidad

Cuando se actualiza una entidad, el atributo gdb_to_date se establece en la marca de tiempo de la operación de archivado y se inserta una fila para mostrar la representación actual de la entidad. El atributo gdb_from_date en esta fila nueva se configura con la hora de la operación de archivado, mientras que el atributo gdb_to_date muestra 12/31/9999, dado que aun no se ha modificado o eliminado.

El siguiente diagrama muestra dos parcelas, 116 y 117, con sus atributos gdb_from_date y gdb_to_date correspondientes antes de realizarse la operación de actualización.

Actualizar una entidad

Si el límite de parcela para la parcela 117 se extiende, el atributo gdb_to_date se actualiza con la marca de tiempo de la operación de archivado y se crea una nueva fila. El atributo gdb_from_date en esta nueva fila se configura con la fecha y la hora de la operación de archivado.

La actualización de una entidad actualiza el atributo gdb_to_date

Por ejemplo, las consultas que investigan los momentos previos a la actualización (7/12/2005 5:34:22 PM) muestran la parcela 117 tal como existía antes de la actualización. Las consultas de los momentos previos a 7/9/2005 2:23:43 PM no mostrarán la parcela 117 porque ésta no se había creado. Cualquier consulta de los momentos posteriores a (7/12/2005 5:34:22 AM) mostrará la parcela 117 en su representación actual con el límite extendido.

Eliminar una entidad

Cuando se elimina una entidad, el atributo gdb_to_date se actualiza con la marca de tiempo de la operación de archivado. El siguiente diagrama muestra las parcelas 116 y 117 con sus atributos gdb_from_date y gdb_to_date correspondientes.

Eliminar una entidad

Si se elimina ahora la parcela 117, el atributo gdb_to_date se actualizará con la marca de tiempo de la operación de archivado.

La eliminación de una entidad actualiza el atributo gdb_to_date

Nota técnica sobre el archivado con datos versionados

El siguiente escenario puede crear un hueco de tiempo en la clase de archivado:

Un editor está editando directamente la versión DEFAULT y elimina un objeto en una sesión de edición.

A continuación, el editor guarda las modificaciones, lo que actualiza el atributo gdb_to_date de la clase de archivado con la marca de tiempo de la eliminación de ese objeto.

Si el mismo objeto se actualiza en una versión secundaria y se concilia con la versión DEFAULT, habrá un conflicto.

Si, durante el proceso de resolución de conflictos, el editor decide reemplazar el conflicto con la representación actualizada de la fila, la fila se restaurará en la versión DEFAULT cuando se envíe la versión. La operación de archivado inserta una nueva fila en la clase de archivado y establece el atributo gdb_from_date en la marca de tiempo y gdb_to_date en 12/31/9999.

Por consiguiente, cuando el editor observe el linaje del objeto a través del tiempo, las fechas contendrán un hueco entre gdb_to_date y gdb_from_date cuando el objeto no existía en la versión DEFAULT.