# Datenbankschnittstelle

Eine Datenbankschnittstelle ist eine Programmierschnittstelle, die den Zugriff auf und den Datenaustausch mit einer Datenbank regelt, d. h. die Kommunikation zwischen einer Softwareapplikation und der Datenbank ermöglicht. Durch eine definierte Datenbankschnittstelle können Datensätze ausgelesen oder verändert werden, ohne die Verwaltungs- und Speicherungsstruktur der Datenbank zu kennen.
Traditionell verfügt jede Datenbank, wie z. B. MySQL, Oracle oder SQLite über ihre eigene, maßgeschneiderte Programmierschnittstelle. Es obliegt dabei dem Applikationsentwickler Datenbankschnittstellen für jene Anwendungen zu erstellen, mit denen seine Applikation kommunizieren können soll. Dieser Mehraufwand kann vermieden werden, indem man statt der herstellerspezifischen Schnittstellen eine der gebräuchlichen, verallgemeinerten Datenbankschnittstellen benutzt.

## Sprachspezifische Schnittstellen

In einem ersten Schritt wird die Syntax der Schnittstellensprache vom datenbankspezifischen Teil der Schnittstelle in die Syntax der Zieldatenbank übersetzt. Anschließend führt diese die Anfrage entsprechend den Besonderheiten der konkreten Datenbank aus. Meist handelt es sich dabei um einen Dialekt der weit verbreiteten SQL Abfragesprache. Für den Programmierer ist dieser Vorgang transparent: Er muss seine Anfrage nicht ändern, wenn die Datenbank durch eine andere ersetzt wird, weil nur der Treiber (auch Provider genannt) ausgetauscht werden muss. Diese Flexibilität erkauft sich der Entwickler allerdings durch einen erhöhten Verwaltungsaufwand in der Datenbankschnittstelle, da die Elemente und Konstrukte der Abfragesprache erst in das jeweilige Format der Zieldatenbank übersetzt werden müssen.
Beispiele für sprachspezifische Datenbankschnittstellen sind:
* IDAPI (Integrated Database Application Programming Interface) ist eine von Borland, IBM, Novell und WordPerfect Corporation herausgegebene Treiberfamilie, das Konkurrenzprodukt zu ODBC.
* ODBC (Open Database Connectivity) ist eine von Microsoft entwickelte Treiberfamilie, die inzwischen unabhängig von Betriebssystemen und Programmiersprachen und deshalb sehr verbreitet ist. ODBC basiert auf dem SQL Call Level Interface (CLI) der SQL Access Group.

## Sprachunabhängige Schnittstellen

Es gibt eine Reihe von Datenbankschnittstellen, die nicht an eine bestimmte Abfragesprache gebunden sind:
* ADO.NET ist eine von Microsoft entwickelte objektorientierte Zugriffschicht für die .NET Klassenbibliothek.
* JDBC (Java Database Connectivity) ist eine von Sun Microsystems entwickelte Treiberfamilie, die hauptsächlich mit der Programmiersprache Java eingesetzt wird.
* OpenDBX ist eine in der Programmiersprache C geschriebene und auf Geschwindigkeit und Flexibilität optimierte Datenbankschnittstelle.

## Häufig verwendete Datenbankschnittstellen

Im Folgenden sind einige Programmiersprachen mit den üblicherweise genutzten Datenbankschnittstellen aufgeführt.
* C++/Windows: ODBC (Open Database Connectivity)
* Object Pascal/Delphi: BDE (Borland Database Engine)
* Perl: Perl DBI (Perl Database Interface)
* Visual Basic Classic: Microsoft ADO (ActiveX Data Objects)
* Java: JDBC (Java Database Connectivity)