Con la proliferación de bases de datos que usan JSON en los últimos años (ya no sólo las BD NoSQL tipo Mongo, desde Postgresql a MySQL,…) surgió la necesidad de estandarizar la forma de acceder a estas fuentes.
SQL++ tiene como objetivo ofrecer un interfaz SQL estándarizado para estas BD (SQL++ es un lenguaje ya existente aunque poco usado fuera del ámbito académico).
SQL ++ es un lenguaje de consulta de base de datos que permite trabajar con datos estructurados y semiestructurados. El lenguaje se basa en SQL con extensiones para que funcione con la bases de datos JSON.
En los SGBD los datos se representan de forma tabular: las filas de una tabla tienen la misma estructura de registro plano, con nombres de campo y tipos de campo idénticos (según el esquema de la tabla) mientras que las BD semiestructuradas relajan estas restricciones, permitiendo que los registros se aniden, tengan diferentes nombres y tipos de campos y no requieren un esquema.
SQL++ "amplía" SQL, el estándar de lenguaje de consulta utilizado en el mundo relacional, relajando sus restricciones en el modelo de datos. Al hacerlo, SQL ++ conserva los beneficios de SQL, incluida su naturaleza de alto nivel (declarativa), mientras le permite manejar las estructuras más flexibles que se encuentran comúnmente en el mundo semiestructurado.
Veamos algún ejemplo:
Puedo pasar de:
A
SQL++ soporta los conceptos de agrupados y agregaciones: