miércoles, 15 de octubre de 2008

Las bases de datos como problema.

Por la casa de una tia, rondaba 'Don pepe' quien era conocido en la colonia por ser bueno en los trabajos de albañileria que realizaba. Cuando alguien de la colonia necesitaba algo, el estaba ahi para construir una pared, poner piso, pintar, etc. Un buen dia, mi tia necesitaba un trabajo de instalacion de tuberia de gas, por lo que le pregunto a Don pepe si el podia instalarlo. Don pepe, supo con toda honestidad que no podia hacerlo, ya que nunca lo habia hecho y no aseguraba la calidad del trabajo. En momento la tia se sintio frustrada, por que tendria que llamar a alguien que no era de confianza, despues, sin embargo, penso que era lo mejor ya que si don pepe le hacia una mala instalacion, esta podia causar algo grave.

Esta entrada, la escribo un tanto con un tinte de pedrada, ya que tengo la fortuna de conocer de bases de datos y que implica usar una, asi como utilizarlas de la manera mas optima posible, o al menos lo que mi intelecto o google me permitan. Pero cuando alguien llega y me dice "Usar bases de datos es mas lento que usar archivos", me pongo a discutir de que en realidad no es el uso de base de datos lo que es lento, si no el como se utilicen. Sin embargo, en esta ocasion tomo la otra perspectiva y describo las bases de datos como problema.

El problema: el desarrollador de BD

Las bases de datos, a pesar de que son una solucion completa para el manejo de datos y de informacion tienen sus problemas, problemas que si no son bien manejados se vuelve un problema mayor que si se hubiera hecho de otra manera (archivos, por ejemplo).

El problema con las bases de datos, es la sobreestimacion que les tenemos; vemos a la base de datos como una solucion informatica, que nos va a solucionar nuestra vida en cuestion de organizacion de informacion - El equivalente a creer que un armario o closet haria mas ordenado nuestro cuarto. Por supuesto que nos hacen la vida mas facil si las sabemos utilizar.

Los principales inconvenientes

- Inconvenientes en la Administracion del sistema de BD. Cuando se crea una base de datos es necesario que exista la administracion del RDBMS, si esta no existe, por lo general la base de datos se satura de tal medida que el rendimiento de la misma (o incluso de la maquina en la que este la bd) puede caer. Para esto hay herramientas de administracion que hacen mas facil (a veces) la administracion de la BD. Los principales problemas que vienen con una mala administracion de la base de datos son:

  • Baja del rendimiento del equipo: Cuando no se administra de manera correcta puede que el rendimiento se caiga por los suelos, tareas como limpieza de datos innecesarios, optimizacion y reparacion de tablas, son necesarias para que todo funcione lo mejor posible.
  • Seguridad: Si no existe la administracion, mucho menos la administracion de la seguridad. Que pasa cuando un usuario puede ver los datos aunque no tenga permiso? esto obvio nos genera problemas.
- Inconvenientes en el Desarrollo de la BD. Este es el mayor inconveniente de la BD. Cuando es creada una base de datos, siempre se piensa que es lo que se necesita a nivel funcional, como solucionar los problemas urgentes, pero no se le dedica un momento a la Ingenieria de la base de datos, lo cual nos puede traer los siguientes problemas:

  • Inconsistencia de datos: Diferencias en tipos de datos y como se almacenan.
  • Duplicidad de datos: Datos duplicados o que pueden ser generados.
  • Dificultades para acceso a información: Cuando se usa en exceso la generalizacion y segregacion de informacion, con lo cual es complejo obtener la informacion.
  • Concurrencia: Que pasa cuando 2 datos son usados al mismo tiempo.
Entonces, Cuando no usar bases de datos?

Se recomienda no usar bases de datos en los siguientes casos:
  • Cuando los datos que se usan son pocos: No tiene caso usar una base de datos, si solo se van a guardar textos cortos. Lo mejor es manejarlo con archivos.
  • Si los datos nunca cambian.
  • Cuando se necesitan datos en tiempo real: Tiempo real significa tiempo real! Es raro cuando se necesita una aplicacion en tiempo real, pero cuando se requiere, pues habra que darle la vuelta. Un sistema ERP, aunque se pudiera pensar que se necesita en tiempo real, no lo es, rapido: Si, tiempo real: No.
  • Cuando no se cuente con el presupuesto: Por lo general se necesita, tanto software como hardware especial para tener buen rendimiento en una base de datos. Hay opciones libres y ligeras, como mysql. Sin embargo, si la base de datos es muy grande, se necesita una buena memoria y un buen procesador. Los servidores de hosting que proveen mysql generalmente son mas caros que uno que solo hostea archivos.
  • Cuando no se cuenta con el conocimiento especifico: Cada BD tiene sus detalles y funciona de diferente manera, aunque sigan estandares como SQL, por lo que es necesaria la capacitacion. Y gerentes, entiendan: No es un capricho, es necesario! Desafortunadamente en las escuelas no hay la capacitacion necesaria para todos los RBDMS existentes, y cada uno tiene sus bemoles.
  • No se cuenta con el costo para administrarla.
Como conclusión, puedo comentar que las bases de datos pueden ser un problema, cuando estas no se saben manejar, que sucede mucho. Cuando para ti, las bases de datos sean un problema busca soluciones; Pocas seran tan optimas y tan faciles como un DB, sin embargo las hay.

Saludos!