Tabla de contenido
Una vez más aquí. Por no puedo estar en todas partes al mismo tiempo, hacía ya un par de meses que no tenía un rato para publicar nada aquí. Por eso, esta tarde que me toca esperar, aprovecho para dejar aquí algo que hace unas semanas un compañero me comentó y que me pareció que puede ser una buena idea. Pues después de dedicarle unas horas y algún que otro litro de café, voy a dejar aquí publicada una versión preliminar. Se trata del programa que he bautizado como «ManoseandoMisBD«.
Estoy bastante seguro de que este pequeño problema con el que mucha gente se puede encontrar, ya estará cubierto por algunas empresas que te cobrarán una pasta por su software. Pero este pequeño programa busca aportar una rápida y segura solución que intenta combinar potencia y simplicidad para poder trabajar con bases de datos MySQL. Esta aplicación gratuita y de código abierto busca que hasta la gente que no sabe lo que es una base de datos, pueda manejar y consultar datos de una base de datos MySQL. Esto se consigue añadiendo la posibilidad de utilizar el lenguaje natural a la hora de realizar las consultas y trabajar con los datos de la base de datos de turno.
¿Qué es ManoseandoMisBD?
En el panorama actual del desarrollo de software, este programa es nada, pero por el momento empieza tener ciertas características bastante definidas. Estas características son:
- 🚀 Interfaz simple y accesible
- 🤖 Integración con IA (Gemini) para consultas en lenguaje natural
- 📊 Visualización interactiva de datos
- 🔒 Seguridad en el manejo de datos
- 💻 Compatibilidad con Windows y Gnu/Linux. Esta versión preliminar la he probado en Windows 11, Ubuntu y Debian con buenos resultados.
Características principales de ManoseandoMisBD
1. Interfaz simple y accesible
- Diseño responsive: Se adapta a diferentes resoluciones de pantalla
- Navegación por pestañas: Acceso rápido a todas las funcionalidades mediante las pestañas del menú
- Modo oscuro: A mi es que me gusta más que el tema claro …
- Monitorización en tiempo real: Estado del servidor MySQL siempre visible
- Fecha y hora: La fecha y la hora estarán siempre visibles, para no pasarse demasiadas horas delante del equipo
2. Gestión avanzada de bases de datos
- Conexión simplificada: Configuración rápida de conexiones MySQL
- Operaciones CRUD: Gestión completa de bases de datos y tablas
- Importación/Exportación: Respaldo y restauración de bases de datos
- Gestión visual: Manipulación intuitiva de estructuras de datos
3. Editor SQL
- Resaltado de sintaxis: Mayor legibilidad del código
- Autocompletado: Sugerencias inteligentes mientras escribes
- Sistema de consultas favoritas: Guarda y organiza tus consultas frecuentes
- Validación en tiempo real: Detecta errores antes de ejecutar la sentencia
4. Innovación con IA
- Consultas en lenguaje natural: Se utiliza la Google Gemini API. En el programa, es necesaria la API Key gratuita de Gemini. En el programa encontrarás la URL donde obtenerla
- Traducción automática: La IA pasa de preguntas en español a SQL
- Privacidad garantizada: Solo se procesa la estructura de la BD. En ningún momento se envían datos guardados en la base de datos a la IA
- Ejemplos contextuales: Sugerencias basadas en la estructura de la base de datos
5. Visualización de datos
- Diagramas Interactivos: Representa visualmente tus bases de datos
- Zoom y navegación: Explora grandes estructuras de datos
- Exportación de diagramas: Documentación visual en formato PNG
- Personalización: Ajusta la visualización a tus necesidades
Guía de uso
Primeros pasos
- Instalación:
Descarga el proyecto desde el repositorio de GitHub en el que lo he alojado siguiendo estos pasos:
git clone https://github.com/sapoclay/manoseandomisbd.git cd ManoseandoMisBD pip install -r requirements.txt
- Configuración Inicial
- Instala MySQL Server 8.0 o superior en tu equipo
- Inicia la aplicación con
python main.py
- Obtén tu API key de Google Cloud y añádela desde el formulario de la pestaña «Consultas de lenguaje natural»
Funcionalidades principales de ManoseandoMisBD
Gestión de Conexiones

- Abre la pestaña «Conexión».
- Ingresa los datos del servidor MySQL. El puesto 3306 es el que yo utilizo.
- Establece la conexión con un clic.
- Selecciona la base de datos sobre la que vas a trabajar.
- Cuando te conectes al servidor MySQL también podrás crear una nueva base de datos, eliminar alguna de las bases de datos existentes, exportar alguna de las bases de datos existentes o importar alguna base de datos desde un archivo .sql.
Visualización

- Abre la pestaña «Visualización».
- Pulsa el botón «Generar Diagrama» y verás como se genera un gráfico con todas las tablas que formen la base de datos a la que te conectaste en la pestaña «Conexión».
- En el desplegable «Detalles de las tablas» podrás seleccionar la tabla de la base de datos que quieras consultas, y verás la información relacionada con la tabla (NO CON EL CONTENIDO).
Consultas SQL

- Navega a la pestaña «Consultas SQL».
- Escribe o importa tu consulta.
- Valida y ejecuta.
- Guarda las consultas útiles.
- Para utilizar las sugerencias, puedes usar el ratón o utilizar la tecla TAB para seleccionar la sugerencia.
Consultas en Lenguaje Natural

- Accede a «Consultas en Lenguaje Natural».
- Escribe tu pregunta en español.
- La IA generará la consulta SQL.
- Revisa y ejecuta.
- El botón mostrar ejemplos cargará ejemplos básicos de uso en la parte inferior de la pantalla relacionados con la base de datos a la que te conectes en la pestaña Conexión.
- En el cuadro de texto que aparece donde dice API Key, es donde se debe añadir la API Key de Gemini que puedes obtener de forma gratuita en https://ai.google.dev/gemini-api/docs?hl=es-419. Evidentemente esto solo es una versión para desarrolladores, pero para lo básico, funciona perfectamente bien.
Especificaciones técnicas de ManoseandoMisBD
Requisitos del Sistema
- Sistema Operativo: Windows 10/11 o GNU/Linux
- Python: Versión 3.12 o superior
- MySQL: Server 8.0 o superior
- RAM: 4GB mínimo recomendado
- Espacio: 500MB libre en disco
Tecnologías utilizadas
- Frontend: CustomTkinter/Tkinter
- Backend: Python 3.12
- Base de Datos: MySQL
- Visualización: Matplotlib
- IA: Google Gemini API
Seguridad y privacidad
Protección de datos
- Sin almacenamiento de datos sensibles
- Validación de consultas peligrosas
- Confirmación de operaciones críticas
- Compatible con GDPR
- Protección de datos personales
- Auditoría de operaciones
- Control de acceso
Si en algún momento me decido a seguir con este proyecto, todas las actualizaciones llegarán mediante el repositorio en GitHub del proyecto.
Conclusión sobre ManoseandoMisBD
ManoseandoMisBD no es nada más que una «neura» que me pegó hace unas semanas, pero que creo que puliéndolo un poco podría llegar a resultar algo útil para todos aquellos que no tienen mucha idea de qué son las bases de datos pero que necesitan hacer uso de ellas. Además, bien pensado esto podría utilizarse en gran cantidad de situaciones y negocios a los que también les podría resultar útil. Por que aun que alguna gente dice tener miedo a utilizar las IA, estas también te pueden hacer la vida más sencilla, y como siempre he dicho … si puedes hacer las cosas fáciles ¿para qué vas a hacerlas complicadas?