Keynote PL/SQL: Reconciling APEX and the Thick Database Paradigm
I've given my "Why Use PL/SQL?" talk* at more than a dozen conferences over the eighteen months or so. And I've followed this by joining forces with Toon Koppelaars to present our "A Real-World Comparison of the NoPlsql and Thick Database Paradigms" double session at, so far, four conferences.
These talks assume conventional application architectures where all code to do with interfacing to human or robotic users is implemented outside of the database. We define NoPlsql to mean the paradigm where the database is no more than a bag of tables and where database calls are limited to insert, update, delete, and select using only naive single-row statements. And we define ThickDB to mean the paradigm where the database is encased in a hard shell defined by a terse PL/SQL API that exactly models the business functions that the application needs, so that database calls are limited to the call statement, implying that the basic data manipulation statements are issued only from database PL/SQL units. The SQL statements issued by the PL/SQL can be as sophisticated as you care to write. In short, NoPlsql means that the business logic is implemented outside of the database and ThickDB means that it is implemented inside the database.
APEX applications don't fit our taxonomy because everything is inside the database. In one sense, it is out-of-the-box ThickDB. But in another sense it is NoPlsql deluxe because, at least for beginner use, the APEX developer uses a framework that insulates her from writing any SQL.
I will attempt, in this keynote, to address this paradox by discussing how to be as faithful as possible to the ThickDB paradigm while still taking maximum advantage of the APEX paradigm for defining the UI declaratively.
See the Oracle Database PL/SQL and EBR blog for more information.