martes, 26 de febrero de 2008

Integridad de la bd Velneo

Hace tiempo me ocurrió una cosa curiosa a la vez que catastrófica para una de mis bases de datos Velneo:

Tenía una tabla maestra de Apartados y tenía otra tabla maestra Fichas. En Fichas tenía un puntero a maestro apuntando a Apartados para así poder indicar a qué apartado pertenecía una ficha.

El caso es que por las prisas, el descuido y la desorganización de la edición en grupo de un mapa, la tabla Apartados se quedó sin el histórico de Fichas.

Como estamos tan acostumbrados a la robustez de Velneo manteniendo la integridad de la bd, ni corto ni perezoso un día me dio por cambiar los códigos del maestro de Apartados para reorganización interna, y cuál fue mi sorpresa al ver que había perdido la relación entre Fichas y Apartados.

Me quedé con unas 3.000 fichas sin apartado, y no había vuelta atrás.

Afortunadamente no ocurrió nada ya que tiré de la copia de seguridad de datos diaria y restauré la bd a su estado de por la mañana, perdiendo básicamente la desafortunada modificación de códigos de Apartados.

Al sufrir este susto investigué en el mapa el porqué de la falta de integridad de datos y lo arreglé.

Y es que Velneo es una herramienta que hace lo que debe de hacer; mantener la integridad de datos siempre y cuando en los desarrollos mantengamos unas mínimas reglas de coherencia para establecer esta integridad.

Veamos los pasos necesarios para que en un caso similar no perdamos datos.


En el esquema de tablas vemos cómo en la tabla Fichas tenemos:

- un puntero a maestro apuntando a Apartados


- tenemos además el índice Apartado que es acepta repetidas sobre el puntero a Apartados


- y en la tabla Apartados tenemos declarado el histórico de Fichas sobre el índice Apartado anterior.


Así las cosas Velneo siempre va a mantener la integridad de datos de nuestras bd; si cambiamos el código del maestro de Apartados, cada registro de Fichas apuntará al nuevo código de Apartado gracias a la relación histórica entre ambas tablas a partir del índice Apartado.

Si alguna vez perdéis datos o relaciones entre tablas revisad los punteros a maestro, los índices correspondientes a estos punteros, y lo más importante, la existencia en los maestros del histórico necesario.

Velneo es rápido, robusto, eficaz..., pero no es mágico.

Life is soft!!

P.D.: Esto sólo es necesario cuando trabajamos con tablas maestras con puntero a maestro, si utilizásemos una relación maestro-submaestro Velneo ya hace el trabajo por nosotros creando los índices e históricos necesarios.