SQL database systems support user-defined functions (UDFs), but they
hardly encourage *programming* with these functions. Quite the
contrary: the invocation and evaluation of SQL UDFs as well as the
interpretation of imperative PL/SQL code comes with a significant
runtime tax that renders complex computation close to the data largely
impractical. Indeed, it is established developer lore that “serious
computation” is better performed outside the RDBMS in languages other
than SQL or PL/SQL.
It doesn't have to be this way and we do not have turn RDBMSs on their
head to improve the dire situation. We describe SQL-level, non-invasive
transformations that turn recursive SQL UDFs and complex PL/SQL
procedures with arbitrarily complex control flow into plain SQL
constructs that contemporary RDBMSs can evaluate way more efficiently.
These transformations bank on techniques established by the functional
programming language community--here, we twist them to the RDBMSs' (and
our) advantage. RDBMSs can indeed make for expressive and declaratively
programmable runtime systems. Let us use them as such!
Please email for a
Torsten Grust is a professor of Computer Science at Universität Tübingen, Germany, where he leads the Database Systems research group since 2008. Prior to his move to Tübingen, Torsten has been a professor of Database Systems at TU München and TU Clausthal. Torsten received his Diploma (M.Sc.) in Computer Science in 1994 and his PhD degree in 1999 from Universität Konstanz. In 2000, Torsten was a visiting scientist with the IBM Silicon Valley Laboratories, San Jose, CA, USA.
Torsten performs research into the design, compilation, optimization, and evaluation of a variety of database languages. In this work, he often walks the fine line between database query and programming language technology. His group develops techniques that turn relational database systems into scalable processors also for non-relational query and programming languages. Torsten is at his happiest whenever he finds new evidence that database and programming language research can mutually benefit each other. (Consequently, he is a long-time member of ACM SIGMOD as well as SIGPLAN. ;-)