Motivación del proyecto
Synolon nació como una búsqueda personal: encontrar una forma más clara y autónoma de representar los datos. No como una base de datos tradicional, sino como un lenguaje propio, donde la estructura y la semántica se entienden entre sí. Es un proyecto pensado para quienes ven en la programación no solo una herramienta, sino una forma de razonar, ordenar y expresar ideas.
Ontología conjuntista
En Synolon, cada tabla se concibe como un conjunto T compuesto por posiciones P = {p₁, ..., pₙ}.
Cada campo es un subconjunto Fᵢ ⊂ P × Dᵢ que asocia a cada posición un valor dentro de su dominio.
El estado total del conjunto puede representarse como una función:
T(p) = (f₁(p), f₂(p), ..., fₖ(p))
Cada posición mantiene su identidad a través del tiempo, incluso si el valor asociado cambia o se anula.
Desde esta base algebraica, las operaciones de inserción, selección, unión o agregación son transformaciones sobre conjuntos sincronizados, no sobre filas.
Características técnicas
yield.Comparativa conceptual
- MySQL: estructura relacional y dependiente de servidor.
- SQLite: almacenamiento local monolítico.
- Redis: enfoque clave-valor en memoria.
- Synolon: modelo posicional y semántico basado en conjuntos.
- Coordenada posicional como núcleo: cada registro mantiene su posición en todos los campos, garantizando sincronización absoluta.
- Almacenamiento por campo: cada columna se guarda en su propio archivo, optimizando búsquedas y agregaciones posicionales.
- Ontología algebraica: las tablas y campos se tratan como conjuntos y subconjuntos, permitiendo un enfoque formal de operaciones y joins.
- Joins y agregaciones nativos: encadenamiento de joins, funciones SUM, COUNT, AVG, MAX, MIN y GROUP BY directamente sobre la estructura posicional.
Esta filosofía convierte a Synolon en un motor de datos único, con posibilidades analíticas y estructurales que no se encuentran en ningún motor comercial actual. No es solo rendimiento: es un modelo conceptual que redefine la forma de tratar los datos en aplicaciones avanzadas.
Arquitectura y módulos
Synolon está diseñado con un enfoque modular, separando la lógica de almacenamiento, consulta y análisis para mantener claridad, escalabilidad y facilidad de mantenimiento. Cada componente tiene responsabilidades definidas y se integra de manera coherente con la ontología del conjunto.
- SynolonEngine.php → Núcleo de almacenamiento columnar y posicional. Gestiona la creación de tablas, inserción de registros, índices automáticos, borrado lógico y persistencia de datos. Es la base sobre la cual se construyen todas las operaciones de consulta y agregación.
-
SynolonQuery.php → Capa de consultas relacionales.
Proporciona un API tipo ORM simplificado:
select,where,join,orderBy,limityoffset. Soporta joins encadenados, filtros complejos y ejecución por streaming de resultados conyield. -
SynolonQueryOLAP.php → Capa de análisis y agregaciones.
Permite operaciones tipo OLAP como
GROUP BY,HAVINGy funciones de agregaciónSUM, COUNT, AVG, MIN, MAX. Se integra directamente con SynolonEngine para trabajar sobre estructuras posicionales sin necesidad de reconstruir filas completas en memoria. - demo.php / testdata.php → Pruebas y ejemplos de referencia. Contienen datasets de prueba, consultas de ejemplo y scripts para validar la consistencia del motor, demostrando tanto la lógica relacional como el análisis OLAP.
- Filosofía modular: Cada módulo puede extenderse, reemplazarse o combinarse con otros sistemas sin comprometer la coherencia posicional de los datos.
- Compatibilidad y escalabilidad: Synolon está optimizado para manejar millones de registros con un consumo controlado de memoria, gracias a su diseño posicional y streaming de datos.
Esta arquitectura permite a Synolon funcionar tanto como motor de base de datos experimental como plataforma de análisis de datos, manteniendo la integridad conceptual de la ontología del conjunto y ofreciendo un modelo único de interacción con los datos.
CLI de Synolon
Synolon incluye una interfaz de línea de comandos desarrollada en PHP para facilitar la creación de tablas, carga de datos, ejecución de consultas y generación de informes analíticos. Esto permite integrar Synolon en flujos de trabajo automáticos, scripts de prueba o pipelines de datos sin necesidad de interactuar con la capa web.
Uso básico
# Crear una tabla
syn create-table usuarios id,nombre,email
# Insertar registros
syn insert usuarios id=1 nombre=Juan email=juan@ejemplo.com
syn insert usuarios id=2 nombre=María email=maria@ejemplo.com
# Ejecutar consultas simples
syn query "SELECT id,nombre FROM usuarios WHERE estado=1 ORDER BY nombre"
# Exportar resultados a JSON o CSV
syn export usuarios resultados.json
Características del CLI
Al usar syn como comando principal, Synolon se convierte en una herramienta práctica, profesional y lista para integrarse en entornos de desarrollo y producción.
Ejemplo de uso
$engine = new SynolonEngine();
$engine->createTable('usuarios', ['id','nombre','email']);
$engine->insert('usuarios', ['id'=>1,'nombre'=>'Juan','email'=>'juan@ejemplo.com']);
$query = new SynolonQuery($engine, 'usuarios');
$result = $query->groupBy(['nombre'])
->aggregate(['usuarios_total'=>['COUNT','id']])
->get();
foreach ($result as $r) print_r($r);
Pruebas y validación
Synolon se está probando con conjuntos de hasta 100.000 registros por tabla, midiendo tiempo de acceso, generación de índices y consumo de memoria. Las pruebas iniciales muestran un rendimiento estable en entornos locales con PHP 8.2 y 8.3, y compatibilidad total en servidores Apache y CLI.
Hoja de ruta
- Soporte para subconsultas y expresiones anidadas.
- CLI para ejecución directa de comandos Synolon.
- Modo híbrido memoria/disco con serialización binaria.
- Adaptadores para estructuras multidimensionales.
- Extensión C opcional para compilación embebida.
Uso experimental
Synolon α se distribuye bajo licencia MIT, en fase de investigación y sin garantías de estabilidad. Se recomienda para entornos de desarrollo, exploración y docencia en estructuras de datos.
Contacto
Si querés acceder al prototipo, colaborar en las pruebas o proponer casos de uso, podés solicitar acceso directo.
Solicitar acceso a Synolon αDesarrollado por Juan Pendino – 2025.
Proyecto independiente de investigación aplicada sobre estructuras de datos, semántica de sistemas y representación posicional de la información.