¿Estás vigilando la calidad de tus datos?

13 Junio, 2011

Curiosidades, Tecnología

Hace unos años, la gente no utilizaba MySQL, trabajábamos con Oracle y SQL Server, y teníamos un hardware excesivamente limitado, aún recuerdo que mi primera web, corría en un Windows NT 3.5.1 con 32Mb de RAM y tenía que dar servicio a 200 usuarios simultáneos, tenías que optimizar todos los recursos al máximo, mirar con lupa cada una de las SQLs, hacer un diseño de base de datos excepcional.

Cuando MySQL empezó a hacerse popular (por que era gratis y muy ligero), muchas empresas se pasaron a este nuevo entorno, pero empezaron a descuidar algunas normas básicas de programación con bases de datos, como la integridad referencial, que de hecho, con tablas MyISAM no se puede hacer.

Muchos programadores de PHP desarrollaron plataformas OpenSource sin integridad, sin constraints y por su puesto sin transacciones, algo impensable para cualquier programador de Oracle o SQL Server, pero es la verdad, las cosas se hacían así, se asumía que el software nunca fallaba, que siempre iba a funcionar.

Bombas de relojería

Este tipo de aplicaciones son bombas de relojería, y una de ellas es osCommerce, software utilizado por cientos de miles de tiendas online en la actualidad. En cuanto varias personas empiezan a administrar productos al mismo tiempo, la base de datos se corrompe, se duplican registros, se quedan productos huérfanos, etc…

Cada cierto tiempo, hacemos limpieza en la base de datos, pero sabemos que esto “morirá” tarde o temprano, y es algo que me preocupa, por eso, a medio corto plazo tenemos que cambiar de plataforma.

Integridad de los Datos

Para asegurar la integridad de los datos, es necesario cambiar en MySQL a tablas InnoDB y usar transacciones, integridad referencial, claves únicas, etc.. pero esto no siempre es posible, ya que algunas aplicaciones están mal programadas, y no permite este tipo de operaciones.

En el caso, de que nuestro software no lo soporte, tenemos que crear un “Plan de Calidad de Datos”, que explicamos a continuación.

Análisis de Calidad de los Datos

Vamos a explicar como se haría en eCommorce un plan de calidad de datos básico, y aunque depende de la plataforma, en la mayoría suelen ocurrir los mismos errores.

La idea general es detectar fallos que estén impidiendo que vendamos con normalidad nuestros productos, y para ello vamos a comprobar:

  • Integridad de los productos, comprobando con tienen las descripciones en todos los idiomas de nuestra tienda, que tiene indicado el fabricante, y que tiene asignada al menos una categoría.
  • Integridad de las categorías. Vamos a comprobar que no hay categorías huérfanas, es decir, todas las categorías, excepto las principales tiene que tener una categoría padre.
  • Integridad de los pedidos. Todos los pedidos tiene asignado un cliente, y todos los productos están en la tabla productos.

Cuando la evolución de la plataforma corrompe los datos

Una de las cosas que veo más a menudo en plataformas osCommerce, ZenCart, etc.. es que al mejorar la plataforma, los datos antiguos se van “corrompiendo”, por ejemplo, si cambiamos los códigos de provincia, las empresas de transportes, etc… los datos antiguos acabarán siendo incoherentes, de forma que algunas veces no podemos obtener informes correctos sobre nuestro datos.

Cuando se realiza un cambio sobre la plataforma, es necesario, migrar a la nueva estructura los datos antiguos, aunque estos pedidos ya hallan sido entregados/anulados.

Cuidado con las importaciones/Exportaciones

Uno de los mayores problemas en la calidad de datos, viene cuando traspasamos datos de un sistema a otro, por que muchas veces no tenemos certeza de que registro se han pasado y cuales no, supuestamente todo debe funcionar, pero algunas veces no es así.

El caso más común en eCommcerce, es cuando actualizamos el stock y precios desde un ERP a la web, siempre suponemos que todo va a ir bien, pero El Corte Ingles y Zara son dos ejemplos claros, en los que cientos de productos acabaron con un descuento de un 99%. Mientras que El Corte Ingles, asumió su responsabilidad y perdió entre 20.000-30.000€, Zara se negó a enviar a ese precio, dañando durante unas semanas su imágen de marca.

Soluciones

La solución más sencilla, es programar unos informes de calidad de datos que realice consultas sobre la base de datos, y permita encontrar errores en los datos. Por ejemplo, en el caso de precios por debajo de coste, podemos mostrar en un listado todos los productos cuyo precio sea menor que el precio de coste, etc…

Si tenéis plataformas antiguas o muchas exportaciones/importaciones yo tendría en cuenta un plan de calidad de datos.

 

, , , , , , , ,

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR