A data-driven SQL-based web development framework.
The Gefin framework is built on the idea that SQL can be used as the main development component of a web application. It translates SQL output directly into web pages using an API.
This approach addresses the problem that API (programming) languages work with very different data structures (trees) from the relational model for SQL (linked tables): the so-called Object–relational impedance mismatch problem. It achieves this without abandoning, for example, many-to-many relationships with enforced referential integrity, and ACID transactions, as would be the case with applications built on XML or NoSQL architectures.
This framework also allows the integration of tools for data management with those for data analysis: through the framework users can see the data, edit the data, analyse the data, and visualise the analysis.
The table model of SQL output can be interpreted in consistent ways in a web application: for searching, listing and of course linking, for example. For some kinds of applications, where tables are directly required, or where the queries correspond to coordinates on a map, there seems little point in developing a complex application for processing this information for each application/project if select statements can be written to output the information in a way understandable to the framework.
In addition, SQL can generate directly highly complex HTML output using string concatenation (CONCAT in MySQL/MariaDB, || in Oracle, etc.) and aggregated concatenation (GROUP_CONCAT, LISTAGG, STRING_AGG, etc.). Most DBMSs have a range of string transformation functions such as REGEX_REPLACE that can be used directly in SQL to manipulate data directly into something interpretable by a web browser.
But the real advantage for many projects is the easy integration of the data editing system into the front-end interface, meaning that editing and publication can proceed concurrently without any additional workflows.
This framework design allows very rapid development of new and complex applications for both editing and publishing.