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.
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 o tiempo de transacción. 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.
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 el 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 en los datos hasta el 5 de junio de 2006. En la clase de archivado para este cambio se registra el momento de la transacción del 5 de junio de 2006.
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.
Habilitar el archivado
Al habilitarse el archivado, todas las filas que representan la versión DEFAULT para la clase dada se copian a la clase de archivo con la misma marca de hora. 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. El atributo gdb_to_date para todas las filas se marca con la fecha 12/31/9999. Cada vez que un atributo tiene la fecha gdb_to_date 12/31/9999, esta 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 que
- Las entidades creadas en la versión DEFAULT se representan en la clase de archivado como filas con el valor de atributo 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 el archivo estableciendo el valor de atributo 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 de atributo 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 actualización de 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.
Los desarrolladores de aplicaciones que estén interesados en el evento que captura el momento de la operación de archivado pueden referirse al evento OnarchiveUpdated en la interfaz Iversionevents2 del Kit de desarrolladores de software.
Las consultas de las versiones históricas están en la clase de archivo:
Las consultas de las versiones transaccionales aún están en las tablas base y delta:
Agregar una entidad
Esta entidad en una base de datos catastral muestra el número de parcela 116 y su fila correspondiente en la clase de archivo. 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.
Cuando se inserta una entidad (parcela 117) y las ediciones se publican en la versión DEFAULT, se inserta una fila en la clase de archivo con el atributo gdb_from_date actualizado con la marca de hora 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.
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 configura con la marca de hora 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 en la clase de archivo anterior a la realización de la operación de actualización.
Si se extiende el límite de parcela para la parcela 117, y estas ediciones se publican en la versión DEFAULT, gdb_to_date se actualiza con la marca de hora 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.
Por ejemplo, las consultas que investigan los momentos previos a la actualización (7/14/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:33:43 PM no mostrarán la parcela 117 porque ésta no se había creado. Cualquier consulta de los momentos posteriores a (7/14/2005 3:45:23 AM) no 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 hora 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 en la clase de archivo.
Si ahora se elimina la parcela 117, y estas ediciones se publican en la versión DEFAULT, el atributo gdb_to_date se actualiza con la marca de hora de la operación de archivado.
Nota técnica sobre el archivado
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 ediciones, 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.