Utilidades de mantenimiento
El motor de base de datos de Zator es fiable y robusto, por lo que es
altamente improbable que la dBase sufra una corrupción importante aún en el supuesto de
un fallo imprevisto de la energía de alimentación del sistema. Sin
embargo, de acuerdo con la Ley de Murphy, todo lo que es remotamente posible
sucederá, de forma que se han dispuesto tres opciones que, junto a la
copia de seguridad (*) pueden
ayudar a mantener en perfecto estado la base de datos, y en determinados casos,
corregir alguna inconsistencia y/o error que pudiera presentarse [1].
* Con mucha frecuencia, los peores enemigos de los datos no son los fallos imprevistos, averías, cortes de energía, etc., sino los propios usuarios. Por ejemplo, cuando borran/borramos "inadvertidamente" datos irrecuperables, realizamos operaciones indebidas, etc. De acuerdo con el segundo postulado de Codd, es imposible hacer un sistema a prueba de tontos, porque son terriblemente ingeniosos, pero más vale que esté prevenido.
§1 Comprobar integridad
Realiza una comprobación de la integridad interna de la base de datos. En ocasiones puede recuperar algunos ítems de la dBase que hayan quedado descolgados por destrucción o corrupción de sus enlaces. También realiza algunas comprobaciones de integridad del sistema de enlaces de Zator, borrando los que quedaran descolgados porque algún proceso de borrado de datos no hubiera concluido satisfactoriamente.
Nota: en caso de que la comprobación encuentre algún error y se muestre un mensaje proponiendo alguna medida correctora, es necesario volver a iniciar el proceso hasta que dejen de aparecer errores. Por ejemplo, si la dBase esté corrompida, en esta comprobación puede aparecer el mensaje "Existen xxx links huérfanos. ¿Desea Borrarlos?". Se refiere a enlaces internos que han quedado descolgados porque alguno de los ítems involucrados en el enlace no existe. En este caso la opción aconsejable es aceptar y volver a iniciar el proceso de comprobación. Es posible que en esta segunda pasada se descubran nuevos errores como consecuencia de la falta de los enlaces que fueron borrados. En estos casos puede aparecer un nuevo mensaje: "Existen yyy ítems huérfanos. ¿Desea pasarlos al espacio raíz?". Se refiere a ítems que han perdido los enlaces que señalan su posición relativa en la estructura general, de forma que quedan descolgados sin que se conozca cual es su lugar. En este caso, se ofrece la opción de pasarlos al espacio raíz, desde el que se pueden borrar, o volverlos a colocar en su lugar manualmente. En estos casos es posible que necesite pulsar el botón de recarga para que los nuevos ítems se hagan visibles en el espacio raíz. Observe que este proceso pueden trasladar a la primera ventana (nivel 0) ítems que no son propiamente átomos de la estructura principal. Por ejemplo, elementos de una bitácora, campos extendidos, campos en blanco (sin contenido) etc. No olvidar que si la estructura de la dBase está dañada, este tipo de medidas de recuperación son excepcionales y solo pretenden salvar lo máximo posible del desastre. En estos casos la mejor terapia es disponer de una copia de seguridad reciente e instalarla en sustitución del archivo corrompido [3].
§2 Reindexar
Realiza una reconstrucción del sistema de índices interno del motor de base de datos SQL.
§3 Regenerar & compactar
Esta utilidad libera los posibles espacios vacíos que pudieran existir en la base de datos de Zator como consecuencia de los elementos borrados [2]. El proceso exige la copia de la dBase actual en un nuevo fichero, por lo que debe tener en cuenta que en un momento dado pueden existir dos copias en el disco; el fichero original y la copia, por lo que debe existir espacio suficiente para ambos.
[1] El sistema actual de base de datos de Zator responde a un diseño de doble capa. La primera, que es en realidad una prueba de concepto de un proyecto más ambicioso, comprende solo dos tipos de elementos, a los que denominamos átomos (ítems) y enlaces (links). Para su funcionamiento, esta capa está montada sobre un motor de base de datos relacional estándar (SQL) mediante dos tablas principales y algunas pequeñas tablas auxiliares. Esta parte del modelo podría ser sustituida en versiones posteriores por un motor de base de datos específico, pero en cualquier caso, la aplicación incluiría las herramientas de conversión automática necesarias. Por el momento, la seguridad y portabilidad de sus datos descansan en esta segunda capa que es la responsable de leer/escribir los datos en el disco. A este respecto puede tener la completa confianza de que sus datos están en muy buenas manos. De hecho, el motor de base de datos SQLite utilizado es un estándar de facto en la industria y es utilizado ampliamente por las más conocidas enpresas de software. Es la solución adoptada por Mozilla Firefox; Symbian Smartphones; Google Android y Gears; Adobe AIR y Lightroom; Apple Mail y Safari, y Skype, por citar solo algunos ejemplos.
[2] Aunque el motor de base de datos (RDBM) de Zator puede reutilizar este espacio cuando se insertan nuevos datos, el espacio ocupado por los elementos borrados no es devuelto automáticamente al Sistema (el fichero zDB1 no reduce espontáneamente su tamaño).
[3] Un problema de los sistemas de archivo en general y de los sistemas de base de datos en particular, es la corrupción de ficheros, cuyos efectos pueden propagarse en el tiempo sin que sean detectados en un primer momento, lo que conduce a que las copias de seguridad puedan estar igualmente "infectadas". Es lo que se conoce como corrupción silenciosa ("bit rot" en la literatura inglesa). En este sentido, la opción recomendada sería correr la opción de comprobación de integridad antes de realizar la copia de seguridad.