153 - Mi historia con las bases de datos. De Excel a PostgreSQL
¿Como llegué al mundo de las bases de datos? En este podcast te cuento mi viaje partiendo de excel hasta llegar a PostgreSQL, MariaDB y otras bases de datos
Hoy toca una de esas historias de abuelo cebolleta. Aunque que conste en acta que ni soy abuelo ni soy cebolleta. Simplemente te quiero contar una/mi historia de amor con las bases de datos. Mas bien, contarte como empecé con Excel, y actualmente me encuentro trabajando con SQLite, MariaDB, PostgreSQL, o DB2. Es posible que a ti te suene esto de las bases de datos como algo que tu no necesitas… Nada mas lejos de la realidad. Por supuesto, que eso mismo también pensaba yo. No por nada, sino porque pensaba que con una hoja de cálculo se puede hacer todo, y se puede… pero no siempre un martillo es la mejor herramienta. Sin lugar a dudas, con un martillo, puedes clavar un tornillo, pero con toda seguridad, un destornillador te hará mucho mejor papel
Mi historia con las bases de datos
Así, en este episodio te quiero contar mi historia con las bases de datos, Y ¿porque te quiero contarte esta historia?, por dos razones,
- en ocasiones utilizamos herramientas que no son las mas apropiadas para lo que pretendemos hacer
- en otras ocasiones, nuestro proyecto, comenzó con unas pequeñas necesidades y actualmente esas necesidades, son de todo menos pequeñas. ¿A que me refiero?
Un ejemplo, a ver si consigo explicarme lo que he querido decir con esto último. Ponte que tu objetivo es ir de casa a la tienda de la esquina más próxima, que se encuentra a 20 minutos de casa, a comprar productos básicos, leche, huevos y dos cosas mas.
Para esto decides comprar un patinete eléctrico, que es mas que suficiente, y de hecho, las primeras semanas, te das cuenta que has dado en el clavo. Antes tardabas una hora en hacer la compra y ahora se ha convertido en escasa media hora. Menudo adelanto. La cuestión es que al ver el buen resultado, decides, no solo hacer pequeñas compras, sino ir a mas a mas, y en lugar de ir a la tienda de la esquina, vas al hipermercado, y en lugar de comprar productos básicos… cargas, pero cargas de verdad… En lugar de tardar media hora, ahora tardas hora y media. El hipermercado está a media hora en monopatín, luego la compra ya no son cuatro cosas, porque has cargado, y tienes que ir despacio, ….
Total, que lo que era una ventaja inicial ya no lo es tanto. Y es que lo que era ideal para tu proyecto inicial, ya no lo es tanto para lo que se ha convertido. Ahora necesitas una motocicleta.
Y aquí comienza la historia
Pues esto mismo o parecido me sucedió a mi, hace ya casi 20 años. Y es que, como toda historia, esta tiene un comienzo Por aquel entonces, estábamos utilizando una hoja de cálculo para llevar un seguimiento de las horas/hombre. En ese momento, se me encendió la bombillita… además de llevar el seguimiento, podíamos registrar y contabilizar las horas en cada unidad. Pero no solo, esto sino que además podíamos sacar rendimientos para realizar determinados trabajos. Claro, para esto, una hoja de cálculo se quedaba corta. Así que di el siguiente paso.
Una base de datos Access. Te tengo que confesar, que por aquel entonces, era todo lo que conocía, y me parecía algo maravilloso… cuanto tiempo desde entonces, y cuan equivocado estaba…. La cuestión, es que, como con la historia del patinete, aquí, también surgieron nuevas necesidades. Por un lado, la cantidad de horas/hombre a contemplar. Lo habíamos multiplicado por 20. Por otro lado, el número de personas que controlaban. Habíamos pasado de uno a tres. Con lo que necesitábamos tres puntos de acceso. Pero no solo, esto, cuando antes solo teníamos un administrativo, ahora nos encontramos que teníamos dos. Pero además, los resultados los tenían que ver, varios responsables.
Por supuesto, todo esto, de forma simultánea, o al menos, varios, podían acceder a la vez a la información, no solo para verla, sino también para editarla. El proyecto había crecido… necesitaba una base de datos de verdad. Una base de datos que cumpliera con todas esas especificaciones. Y aquí empezó mi búsqueda, desde el mas absoluto desconocimiento. Solo tenía mis requisitos debajo del brazo.
Barajé distintas opciones, SQLite, Firebird, H2, PostgreSQL, MySQL (por aquel entonces). Que cumpliera con mis requisistos tenía o PostgreSQL o MySQL, y finalmente me decanté por PostgreSQL… entonces me pareció muy interesante por la interfaz gráfico de cliente, posteriormente me encantó su potencial, y actualmente me tiene enamorado. Me encontraba ante un servidor de bases de datos, que me permitiría dar soporte a todas mis necesidades… y a muchas mas posteriores.
La interfaz de cliente
Podíamos editar de forma simultánea, a la vez que consultábamos, y todo sin ningún problema. Para crear las interfaces de cliente, me decidí por Java y la biblioteca gráfica Swing. Doté a la aplicación de permisos de usuario, para que no todos pudiéramos hacer de todo. Probablemente hoy, habría optado por otra solución, quizá Laravel, pero entonces resultó fantástico…Inicialmente, no todos estaban conformes con utilizar aquella aplicación.
Como es normal, todo cambio tiene sus fricciones, sin embargo, las fricciones se resuelven con lubricante. El lubricante fue dotar a la aplicación de usuario, a la que utilizábamos todos y cada uno de nosotros, de facilidades que nos ayudaran a todos en nuestro trabajo. Así, lo primero fue la herramienta de clonar. Y con solo esta herramienta ya resolví el problema de la fricción, en aquellos que tenían que introducir las horas/hombre. Probablemente el mejor acierto.
Un downgrade
Posteriormente, y dado el resultado tan beneficioso para todos, quisimos aplicarlo en proyectos de menor entidad. En ese caso, no era necesario recurrir a un servidor de bases de datos como PostgreSQL. Es mas resultaba un incordio, y no siempre era posible recurrir a un servidor en el que instalar PostgreSQL. En este caso opté por H2 como base de datos. Y es que dado que el interfaz estaba implementado en Java, ¿porque no continuar de esta forma? H2 es una base de datos SQL, que permite funcionar en modo servidor, embebida y en memoria ¿Que mas se puede pedir?
Te tengo que decir, que con H2 estuve muy a gusto, y con soporte. Si como lo oyes, y es que en alguna ocasión, que tuve algún que otro problema, me puse en contacto con el desarrollador, y me resolvió todas mis dudas y problemas… referentes al proyecto, por supuesto.
Fuera de estos pasos iniciales
Como sabes, y si no lo sabes, te lo cuento… no soy muy amigo de Java. Mas que nada por la cantidad de recursos que consume frente a otras soluciones. Así, en el momento en que Python entró en mi vida, dejé de utilizar H2 como base de datos para utilizar SQLite para proyectos pequeños, y para proyectos de cierta envergadura, dependiendo de las opciones, PostgreSQL o MariaDB de forma indistinta
SQL
¿Cual es la ventaja de cualquiera de estas bases de datos? Que trabajan con un lenguaje común. Un lenguaje sencillo y que te da un gran potencial SQL.
Si no conoces lo que es el SQL, indicarte que es el lenguaje que se utiliza para administrar y gestionar bases de datos relacionales. Que básicamente son todas las bases de datos que te he comentado hasta el momento, y que tienes a tu disposición.
Desde luego, si quieres dedicarte a esto de la programación, a implementar páginas web, o si quieres hacerlo simplemente por diversión, te recomiendo que aprendas SQL. Es tremendamente sencillo. Al menos para las consultas mas simples, claro. Luego, se pueden hacer consultas tan enrevesadas como no te puedes hacer una idea.
SQL te va a permitir hacer tus propias bases de datos con independencia (relativamente) del motor que vayas a utilizar, MariaDB, SQLite, PostgreSQL… bueno, o al menos relativamente, porque después, todas y cada una de ellas, tienen sus propias peculiaridades.
Conclusión
Y esta es mi historia con las bases de datos, como he partí de Excel, hasta llegar a PostgreSQL y MariaDB. Para mi ha resultado un viaje apasionante, y esta ha sido la razón para compartirlo contigo.
¿Tu utilizas bases de datos?¿Utilizas una hoja de cálculo como base de datos?¿Comoces SQL?¿Te interesaría un curso de SQL?
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.
Imagen de portada de Campaign Creators en Unsplash
Interesante, es posible usar como front end Excel y como BD a SQLLite?