sábado, 3 de julio de 2021

MongoDB y Python GUI (tkinter)

MongoDB pertenece a los sistemas de almacenamiento de información NoSQL (Not Only SQL).

Este motor de almacenamiento es uno de los más populares cuando necesitamos administrar grandes cantidades de información con "estructura variable", es decir cuando la información está constituida por unidades que no tiene la misma estructura.

Podemos tener un colección (tabla) con documentos (filas) cuyos campos no tienen la misma estructura.
Supongamos que tenemos una colección de libros en soporte físico y electrónico. En el caso del soporte físico tal vez nos interese saber su formato : libro de bolsillo, tapa dura, etc. Esta propiedad no aplica para un libro electrónico, por lo tanto no es necesario reservar un campo para algo que no se necesita. De ahí que en este caso, la ficha de un libro físico tenga mas campos que la de un libro electrónico.

Además del tipo de información que podemos guardar,  MongoDB incluye optimizaciones como por ejemplo crecimiento horizontal, flexibilidad, búsquedas, capacidad de gestión de grandes volumenes de datos (big data), etc.

Python es una de las herramientas mas utilizadas para la gestión/análisis de datos.
Python dispone de varios módulos para trabajar con MongoDB, entre ellos está pymongo.

Supongamos que tenemos una base de datos llamada data_engineer, y en esta BBDD tenemos la colección jobs de documentos asociados a ofertas de trabajo , un script típico de conexión (asumiendo que el servidor está en el ordenador local y configurado con el puerto 27017)

 

Asumiendo que la colección jobs tiene los campos : source, date, country, sector, company, job_descripcition y job_expertice (campos donde se registra la información de cada oferta de trabajo), un script para agregar un documento en la colección sería:

Si deseamos desarrollar un programa en python con interfase gráfica tenemos a nuestra disposición diferentes módulos para tal fin. El mas veterano y con una gran cantidad de documentacion en internet es tkinter, que adicionalmente viene preinstalado en python

En la imagen siguiente tenemos un ejemplo de una aplicación gráfica sencilla que gestiona la colección jobs mencionada anteriormente:

En la siguiente imagen podemos ver un ejemplo sencillo de como visualizar las bases de datos existentes, sus colecciones y los primeros documentos de cada colección.
 

 
Desde luego, esto no deja de ser un ejemplo muy básico de lo que podemos hacer en python para comunicarnos con un servidor MongoDB. Existen aplicaciones comerciales y OpenSource muy completas para realizar la gestión de MongoDB : MongoDB Compass, NoSQLBooster, DBeaver, RazorSQL, etc.

No hay comentarios:

Publicar un comentario