Overview

PreferenceSQL KEW11 is a declarative extension of standard SQL by strict partial order preferences, behaving like soft constraints under the Best-Matches-Only (BMO) query model. Preferences can be interpreted in a very intuitive manner as personalized wishes in the form of 'I like A more than B'. Preference queries can be formulated in SQL by introducing new language constructs using an intuitively and inductive constructor-based approach.

PreferenceSQL extends the SELECT statement of SQL by an optional PREFERRING clause. A preference query selects all interesting tuples, i.e., tuples that are not dominated by other tuples. The current version of PreferenceSQL supports most of the SQL92 standard as well as all base preferences together with the constructors for Pareto, Prioritization and Rank preferences as listed in Kie02, Kie05. Not supported are e.g. correlated subqueries and embedded SQL. Pareto preference queries form a superset of The Skyline Operator (BKS01). The Skyline operator only allows LOWEST, HIGHEST, and ANTICHAIN base preferences. In contrast, a Pareto preference can be constructed by any preference constructor mentioned in the full documentation.

PreferenceSQL has been developed at the Chair for Databases and Information Systems at the University of Augsburg under the guidance of Prof. Dr. Werner Kießling. It is now maintained and further developed by Prof. Dr. Markus Endres. Former developers are: Prof. Dr. Bernd Hafenrichter, Dr. Stefan Holland, Dr. Stefan Fischer, Dr. Timotheus Preisinger, Dr. Florian Wenzel and many student assistants.

The current University implementation of PreferenceSQL is a Java framework to evaluate user preference terms on relational databases. It works on top of a database. For more details about the middleware framework download psql-jdbc.pdf. EXASOL provides a commercial version of PreferenceSQL called Skyline Engine. For more details we refer to MKEK15.