MIT boffins reckon they've cracked one of the tough nuts of usability, creating an easy-to-use SQL interface for non-database administrators.
The tool, SIEUFERD, has been in gestation since at least 2013 (Oracle mentions it here), but considering the problem it addresses has been around since the 1970s, let's not be harsh about delivery delays.
The problem is this: relational databases are really powerful, but unless you're a DBA, they're also a pain in the neck to use.
Eirik Bakke and David Karger took the covers off there Schema-Independent End-User Front-End for Relational Databases at the recent ACM Sigmod 2016 in this paper (PDF).
The idea is to make query-building responsive and incremental – and in an interface that almost everybody who drones away in the beehives of business has had to learn to use, or die trying: the spreadsheet.
SIEUFERD then pushes the query processing down to the database layer.
As MIT says in this article, which impressively fails to name the tool throughout:
“The tool’s main drop-down menu has 17 entries, most of which — such as “hide,” “sort,” “filter,” and “delete” — will look familiar to spreadsheet users. In the conference paper, Bakke and Karger prove that those apparently simple functions are enough to construct any database query possible in SQL-92, which is the core of the version of SQL taught in most database classes.”
Bakke reckons the user tests he conducted at the MIT Computer Science and Artificial Intelligence Laboratory (CSAIL) showed SIEUFERD was rated as easier to use than Microsoft Access. The user study covered things like formulas, manual joins, field selection and the like.
It's probably easier to see than to describe, so here's some of the images from the presentation.
Bakke et al's basic description of SIEUFERD
How the query builder in SIEUFERD looks like in practice
Other aspects of SIEUFERD that Bakke highlights are that it decouples query and result updates (so for example you don't need to re-run a query when something in the database changes); queries are interruptible; queries are automatically limited (the 1000 returns limit familiar to users of many SQL tools); error handling; and undo/redo support.
Bakke has more to say in the video below; personally, this writer would just like to get his hands on the code. ®