jueves, 22 de julio de 2010

Una base de datos en Excel

Un día cualquiera, sin que nada pueda evitarlo, alguien llegará a tu lado y te dirá:
Necesito que me ayudes con una base de datos en Excel.
En ese momento, un pensamiento rápido pasa por tu cabeza. ¿Cómo le cuento yo a este gañán que las bases de datos en Excel no existen?.
Tendrías que explicarle que una base de datos, por el hecho de serlo ha de ajustarse a un modelo, generalmente el relacional que sigue una serie de reglas.
Tendrías que explicarle que una base de datos suele estar montada sobre un SGBDR (sistema gestor de bases de datos relacionales) cosa que Excel no es ni soñando.
Vale que si hablamos de Oracle, SQL Server o MySQL estamos haciendo referencia a unas herramientas lejos del alcance de un usuario común pero, ¿porqué no usar Access para crear, editar y explotar bases de datos?.
Porque Microsoft Excel maleduca a los usuarios. Excel es una aplicación potentísima donde se puede meter prácticamente de todo, desde juegos en flash hasta código VBA. Peor aún, Excel dispone de una serie de herramientas para manejo de bases de datos. Si aceptamos ordenar y filtrar como herramientas.
¿Pero no hemos quedado en que Excel no es ni será una aplicación de gestión de bases de datos?. Pues no, no lo es. Pero también podemos llevar una nevera en el coche y no por eso se convierte en un bar.

El caso es que nuestro osado usuario crea una "base de datos" en Excel. Desprecia, como es habitual, los consejos del informático porque Access no sirve para nada porque está mal diseñado; no se pueden mover, cortar, copiar ni pegar las celdas ni tampoco pintarlas de colores.
Empezamos bien.

Mientras la colección tabulada de información inconsistente que el usuario llama "base" permanece confinada en un único libro Excel posiblemente no pase nada. Con un poco de suerte, eso sí. Pero llegará el día terrible cuando alguien descubra que la información que necesita está contenida en dos o más "bases".

Entonces acudirá al informático y le pedirá que cruce las "bases". ¿Alguien sabe como cruzar dos hojas de Excel?. Yo no, pero sí sé que la respuesta a esa necesidad es una consulta SQL que, para no abandonar el entorno ofimático de Microsoft, se puede hacer desde Access.

Bien, -eso no te llevará mucho tiempo-, te dicen. Bueno, sin presumir de mis habilidades informáticas, creo que podría hacer una consulta simple en cuestión de segundos. Lo malo es todo lo que precede a abrir, diseñar y ejecutar esa consulta.

Empezamos por importar desde Access, el contenido de la hoja Excel. Si todo sale como es habitual, descubriremos cientos o miles de errores de importación. ¿Porqué?. Porque probablemente los datos no sean consistentes y donde quepa esperar números aparecerá texto.

El Excel, como dije antes, maleduca a los usuarios. Supongamos que una de las columnas de la "base" Excel contiene números de teléfono. Algunos serán algo así como "915342393". Otros, serán "915-839-123". Unos cuantos más serán algo así como "91 512 42 24 ext. 23". Y, casi seguro que algunos más aparecerán como "91 593 12 14 no quieren llamadas".
Si los hados nos son adversos, y gracias a la función de corta-pega-loquesea del Excel, podemos encontrarnos números de teléfono como "A-23981243". A saber qué dato habrá caído en la columna del C.I.F.

Así que, el sufrido informático tiene que depurar las tablas de forma casi artesanal y con más pena que gloria, consigue armar algo más o menos parecido a una auténtica base de datos. Ahora hay que normalizarla. Pero eso ya sería otra historia.

No hay comentarios:

Publicar un comentario