  Structured Query Language (SQL) remains the standard language used in
Relational Database Management Systems (RDBMSs) and has found applications in
healthcare (patient registries), businesses (inventories, trend analysis),
military, education, etc. Although SQL statements are English-like, the process
of writing SQL queries is often problematic for nontechnical end-users in the
industry. Similarly, formulating and comprehending written queries can be
confusing, especially for undergraduate students. One of the pivotal reasons
given for these difficulties lies with the simple syntax of SQL, which is often
misleading and hard to understand. An ideal solution is to present these two
audiences: undergraduate students and nontechnical end-users with learning and
practice tools. These tools are mostly electronic and can be used to aid their
understanding, as well as enable them to write correct SQL queries. This work
proposes a new approach aimed at understanding and writing correct SQL queries
using principles from Formal Language and Automata Theory. We present
algorithms based on: regular expressions for the recognition of simple query
constructs, context-free grammars for the recognition of nested queries, and a
jumping finite automaton for the synthesis of SQL queries from natural language
descriptions. As proof of concept, these algorithms were further implemented
into interactive software tools aimed at improving SQL comprehension.
Evaluation of these tools showed that the majority of participants agreed that
the tools were intuitive and aided their understanding of SQL queries. These
tools should, therefore, find applications in aiding SQL comprehension at
higher learning institutions and assist in the writing of correct queries in
data-centered industries.
