Uma linguagem visual para diagramar consultas SQL - SILVA, Edson Alves da (2020)
A linguagem Structured Query Language (SQL) é amplamente usada para acessar bancos de dados relacionais e não relacionais. Nos bancos de dados relacionais, SQL é a forma padrão de acesso. Nos bancos de dados não relacionais, SQL está se tornando cada vez mais disponível e se consolidando como uma interface de acesso para consultar dados em ambientes de cluster (e.g., Apache Hive e Spark SQL). Apesar de sua sintaxe declara- tiva, a especificação de consultas SQL não é uma tarefa trivial (mesmo para especialistas), porque algumas consultas exigem construções complexas (i.e., subconsultas, junções, ope- rações de conjunto, expressões condicionais, restrições de agrupamento e recursões). As linguagens visuais de consulta (Visual Query Language - VQL) são uma alternativa que visam reduzir essa complexidade. No entanto, embora várias VQL tenham sido propostas, uma revisão do estado da arte verificou que essas VQL não são amplamente utilizadas na prática, pois não abrangem várias construções complexas e não possuem ferramentas Computer Aided Software Engineering (CASE) disponíveis para seus usuários finais, com- prometendo sua expressividade e disponibilidade. Visando superar essas limitações, o ob- jetivo desta tese é especificar a sintaxe concreta (i.e., notação gráfica) e a sintaxe abstrata (i.e., metamodelo) de uma VQL denominada Diagrammatic Structured Query Language (DSQL), que considere, ao mesmo tempo, todas as construções complexas acima e seja tão compreensível e eficiente quanto SQL sem aumento do esforço. Esta tese inicia-se com uma revisão sistemática da literatura, a qual visa entender porque as VQL não são amplamente utilizadas na prática. Além disso, o paradigma Model-Driven Development (MDD) é usado como arcabouço teórico e tecnológico para a especificação de DSQL. Por fim, para avaliar a expressividade de DSQL é apresentado um experimento para comparar a precisão, o tempo e o esforço para compreender consultas complexas usando DSQL e SQL. Como resultados têm-se: 1) a revisão sistemática sobre o estado da arte de VQL para SQL; 2) a especificação da sintaxe concreta e da sintaxe abstrata de DSQL; e 3) os resultados do experimento, os quais indicam que não há diferença significativa entre as duas linguagens, mas DSQL é mais rápida de compreender do que SQL. A avaliação dá indícios de que DSQL tem potencial para ser tão compreensível e eficiente quanto SQL sem aumento do esforço e que DSQL avança o estado da arte das VQL, pois mitiga as limitações das propostas relacionadas. Portanto, DSQL pode ser uma alternativa para usuários que preferem trabalhar com uma notação visual em vez de sintaxe textual.