Christopher B. Browne's Home Page

4. "Middleware" - Interfaces to Databases

Many of these systems represent pure "interface packages" that allow one to interface some relational database system. Others are "web interfaces," some of which include a database "engine."

4.1. Database Access APIs and Protocols

There are a variety of methods in use today to access databases. Virtually all DBMSes define some "proprietary" access path, often using a C-based API. It is also common for DBMSes to support more generic access paths such as SQL-CLI or DRDA.

4.1.1. SQL-CLI or ODBC

4.1.2. Java - JDBC

The JDBC Data Access API has grown very popular for use in Java applications, allowing common access to almost any sort of tabular data source.

There are on the order of hundreds of drivers for various SQL RDBMSes as well as other systems such as LDAP, xBASE , and some other non-relational database systems.

4.1.3. TDS - Tabular Data Stream

Sybase introduced TDS as

4.1.4. DRDA - Distributed Relational Database Architecture (DRDA)

IBM has introduced DRDA as a protocol for communications between diverse databases. It might be used as a transport for ODBC requests. Many of the major database systems support DRDA, including DB/2, Oracle, Sybase, Informix.

4.1.5. Other APIs, Libraries, and Protocols

  • Jsql

    Commercial software that connects to relational databases like MySql, Sybase, and Oracle and submits SQL queries and commands to the target databases.

  • Aubit 4GL

    A project to provide a GPL-licensed compiler compatible with code for Informix 4GL.

    Allows embedding C in your application code, uses ODBC to connect to databases, and provides presentation layers using ncurses and GTK.

  • MySQL Wrapper similar to MS "DAO"

  • PySQLite - interface to SQLite .

  • SQLObject

    Translates RDBMS table rows into Python objects; supports major DBMSes like PostgreSQL

  • Why QOF?

    Linas Vespas' "polemic" on the merits of using his QOF - Query Object Framework to do structured queries on data held by C/C++ objects. Part of the point is to defend the use of C over other languages...

4.2. Web-to-RDBMS Tools

4.3. Other Middleware

Contact me at