2 CURRENT APPROACHES
2.1 Scenario
Sticking to the example of indexing, RDBMS cur-
rently include many indexing methods. In the field
of high dimensional indexing (50+ dimensions) there
is no efficient, non-KIWI solution available. There is
an indexing approach for exactly this problem, devel-
oped at the Chemnitz University of Technology, the
ICIx (G¨orlitz, 2005). This multi-dimensional index
resides outside of the database system and has to be
used explicitly by an application using an API. It de-
livers primary keys of the relevant data to the applica-
tion which in turn includes these information to enrich
its queries to the database.
We now have a look at how current RDBMS can
help to integrate such an index.
2.2 User Defined Functions
A first approach might be to work with user defined
functions (UDF). User defined functions are functions
made available to the user through the SQL language
interface. They are either written in the database
systems internal SQL programming language (e.g.
PL/pgSQL (Pos, 2009), PL/SQL (Rich, 2011) or
SQL/PSM (IBM, 2009)) or using an external lan-
guage that can be interfaced on a binary level with
the RDBMS.
Using UDF to incorporate a call to an external in-
dex, one has to define a function that calls the API
of the external index. We will not cover the details of
how to call an external API function, just assume, that
it is possible. Finally the new UDF has to be used in
the queries, so that it is called.
SELECT *
FROM employees
WHERE id IN ( idx_lookup_smaller(
employees.salary, 2000)
)
Obviously every query, using the index, has to in-
corporate the UDF. Every data modification, has to
be transported manually to the index, e. g. using an-
other UDF. All in all that requires an adaption of the
application and the integration of the new functions
into the RDBMS. We consider the first point being the
more pressing one, as it requires the software vendor
to change the software. Modifications to the database
can be isolated in other namespaces and are thus very
unlikely to interfere with the current operation.
2.3 Extensible Indexing Frameworks
Extensible indexing frameworks give the user a spe-
cialized interface, that enables the user to define func-
tions which are called on certain events. It further
gives a clean integration into the SQL language. The
RDBMS guarantees transaction safety of the actions
triggered in certain events. Those events include the
creation of the index, modification of data and the se-
lection on columns managed by the index. For all but
the selection the extensible indexing frameworks pro-
vide a transparent access to the index. On selection
a special predicate has to be defined and used, taking
the form of a function thats return is compared to a
value. (Belden et al., 2009) The following example
illustrates the use of such an indexing extension:
SELECT *
FROM employees
WHERE idx_lookup_smaller(
employees.salary, 2000)
) = 1
So the selection operation is not transparent to
the application and thus the application has to be
adapted. Though not as deeply integrated as the UDF
approach, not many vendors will be reluctant to inte-
grate a functionality on just a few customer requests.
2.4 Current External Approaches
Our example of the index integration is relatively
complex. For less complex functionalities, ap-
proaches that are integrated into the network commu-
nication exist.
The TDS Protocol Analyzer (TDS, 2013) is a tool
that operates on the TDS (Tabular Data Streams) pro-
tocol used to communicate with the Microsoft SQL
Server. Its use is the interception, recording and anal-
ysis of packets sent by a client to the database. These
packets can be inspected for statistical analysis and
vulnerability inspections. (Guo and Wu, 2009)
GreenSQL is an open source proxy with the goal
to increase the security of MySQL and PostgreSQL.
In a commercial version it also supports Microsoft
SQL Server with TDS. It scans the communication of
clients with the database for suspicious requests that
might be able to exploit security vulnerabilities. It
also is able to work as a firewall. (Gre, 2013)
In a last project, the Security Testing Framework,
syntactically wrong packages for the DRDA (Dis-
tributed Relational Database Architecture) (The Open
Group, 2011) protocol are generated, to test the ro-
bustness of the implementation. (Aboelfotoh et al.,
2009)
ICEIS2014-16thInternationalConferenceonEnterpriseInformationSystems
250