ExplainDB: sistema de bases de datos educativo en Python

Fuentes: ExplainDB: an educational database system built in Python

ExplainDB es un sistema de gestión de bases de datos (DBMS) implementado en Python diseñado específicamente para fines educativos y didácticos. Desarrollado por el profesor Dr. Jens Dittrich de la Universidad de Saarland, su objetivo principal no es la velocidad de ejecución, sino la claridad y la comprensibilidad de los conceptos fundamentales de la teoría de bases de datos. El proyecto se compone de una colección de cuadernos Jupyter y una implementación del DBMS que permite a los estudiantes visualizar y manipular estructuras de datos complejas de manera interactiva.

El sistema está estructurado en torno a una jerarquía de almacenamiento que incluye modelos de RAID, índices B⁺-tree, índices de bitmap con compresión WAH, filtros de Bloom y árboles de radix. Además, incorpora mecanismos de control de concurrencia como MVCC y un almacene transaccional con journaling. En el procesamiento de consultas, ExplainDB detalla el uso de operadores de escaneo, filtrado, uniones y optimización de planes mediante programación dinámica para el ordenamiento de uniones. La arquitectura utiliza la herramienta de gestión de dependencias 'uv' para facilitar la instalación del entorno de Python sin requerir configuraciones manuales complejas.

El material didáctico está disponible a través de mybinder.org, lo que permite a los usuarios ejecutar los cuadernos en el navegador sin necesidad de instalar software localmente, aunque las sesiones son temporales. El código fuente está licenciado bajo la licencia AGPL-3.0 y la documentación de la API está disponible en línea. Este recurso sirve como material de apoyo para cursos universitarios de sistemas de bases de datos, ofreciendo una alternativa accesible para el estudio de algoritmos de optimización y estructuras de datos.