Hotsos Symposium Speaker – Toon Koppelaars

Toon Koppelaars is a returning Hotsos Symposium presenter.


Toon KoppelaarsToon Koppelaars is a long-time Oracle technology user, having used the Oracle database and tools software since 1987 (Oracle verion 4). During this time, he has been involved in application development (terminal/host in the early days, GUI client/server later on, and J2EE nowadays), as well as database administration.

Toon's special interest areas include: the Oracle Optimizer (SQL tuning), technical application architectures (from a performance and maintainability perspective), and the specification and implementation of data integrity rules (aka business rules). He is a frequent speaker at Hotsos Symposia, ODTUG, UKOUG and the Dutch Oracle User Group.

Together with Lex de Haan, he has co-authored "Applied Mathematics for Database Professionals" (Apress, June 2007).

In 2007, Mr. Koppelaars decided to go independent and founded his own company RuleGen B.V. (

Toon is an Oracle Ace.

Presentation Titles

Session 1: "Triggers Considered Harmful", Considered Harmful

Session 2: Thinking Clearly in SQL


Session 1: "Triggers Considered Harmful", Considered Harmful — When Oracle7 came out in the early nineties, next to stored PL/SQL, support for table triggers was a radical new feature of the DBMS. Developers who started using them immediately discovered the "mutating" and "constraining" table errors; both still today poorly understood restrictions imposed upon the use of row-triggers. And it wasn't until years later that we discovered that triggers are to be "considered harmful". For various reasons:

  • Due to their "automagic" side effects, they cause trouble in analyzing problems
  • Their serious impact on performance of DML statements
  • Their use to implement certain functionality is flawed.

An Oracle database evangelist (and many of his disciples) uses the reasons above to abolish the use of triggers alltogether, with which we disagree. In this presentation, we will give a top-down overview of why developers use table triggers; we'll introduce use cases of triggers and demonstrate them with examples. Per use case, we'll explain the issues that triggers have. The use cases include implementing data integrity constraints (other than the ones which can be dealt with declaratively); a use case that will be explored in more detail, and a use case where we think that the general consensus of "triggers considered harmful", is to be considered harmful.

Session 2: Thinking Clearly in SQL

The relational data model is based on mathematics, more specifically, on a blend of set theory and logic. We'll give an overview of this formal language and demonstrate how crisply one can think and specify correct application behavior using this mathematical language. This is of no surprise since set theory and logic were developed by studying human reasoning. SQL, on the other hand, is the end result of many discussions between members of a standards committee. It lacks concepts that are available to us in set theory and logic, which causes our inability to implement the formally specified expressions into SQL directly. But, mathematics offers us rewrite rules, that is, provably correct transformations, which we can employ to create correct SQL from formal expressions. We'll introduce you to the most common rewrite rules and demonstrate them with ample examples.

Presentation Materials

Presentation materials are available online to attendees only.


The speaker schedule is as follows: