ODBC - Open Database Connectivity

Wer Daten aus einem alten Fachsystem braucht, steht selten vor einem fehlenden Zugang, sondern vor einer fremden Abfragesprache. ODBC ist die Antwort, die seit über dreißig Jahren dafür gilt.
Ein Datenbankentwickler freut sich über den leichten Zugang zur Datenbank mithilfe von ODBC.
© opolja

Was ist ODBC?

ODBC steht für Open Database Connectivity und ist eine standardisierte Programmierschnittstelle für den Zugriff auf Datenbanken. Eine Anwendung stellt ihre Anfragen in SQL, ohne die Eigenheiten des angesprochenen Datenbanksystems zu kennen. Die Übersetzung übernimmt ein Treiber, der zwischen Anwendung und Datenquelle sitzt. Microsoft veröffentlichte den Standard 1992.

Grundlage war die Call-Level-Interface-Spezifikation der SQL Access Group, eines Herstellerkonsortiums zur Vereinheitlichung von Datenbankzugriffen. Der Zugriff läuft dadurch nie direkt auf die Datenbank, sondern immer über die vorgeschaltete Komponente. Damit gehört die Schnittstelle in dieselbe Kategorie wie andere Middleware, also Software, die zwischen getrennten Systemen vermittelt.

Aufbau und Funktionsweise

Vier Bestandteile greifen ineinander, nämlich Anwendung, Treiber-Manager, Treiber und Datenquelle. Die Anwendung baut die Verbindung über den Treiber-Manager auf, der Data Source Name benennt die Datenquelle samt Zugangsdaten, und der Treiber setzt die SQL-Befehle in die Sprache des Zielsystems um. Fehler meldet er als standardisierte Codes zurück.

Als Datenquelle taugt nicht nur eine Datenbank. Auch Tabellenkalkulationen und Textdateien lassen sich einbinden, lokal wie über ein Netzwerk. In größeren Landschaften übernimmt diese Vermittlung heute meist eine eigene Datenbank-Middleware, die zusätzlich Verbindungen bündelt und Zugriffe protokolliert. Wichtig ist in jedem Fall die Übereinstimmung der Bit-Tiefe, eine 64-Bit-Anwendung braucht eine 64-Bit-Datenquelle.

Einsatz und Grenzen

Der praktische Wert der Open Database Connectivity zeigt sich beim Altbestand. Die Schnittstelle macht Daten aus einem abgelösten System erreichbar, ohne dessen ursprüngliche Abfragesprache zu beherrschen. Das verkürzt die Einarbeitung und vereinfacht eine spätere Migration, weshalb sie in der Datenbankentwicklung vor allem beim Ablösen von Altsystemen auftaucht.

Ebenso verbreitet ist der Zugriff mehrerer Anwendungen auf dieselbe Datenquelle, ohne dass sie untereinander eine eigene Verbindung brauchen. Auswertungen in einer Tabellenkalkulation greifen so auf denselben Bestand zu wie die Fachanwendung, und Berichte entstehen, ohne die Fachanwendung selbst zu erweitern.

Wo die Schnittstelle an Grenzen stößt

Jede Datenquelle braucht ihren eigenen ODBC-Treiber, und der muss auf jedem Rechner installiert und gepflegt sein. Bei mehreren Systemen wächst dieser Aufwand schnell, gerade ohne eigene IT-Abteilung.

Dazu kommt die Leistung. Die Übersetzungsschicht kostet Zeit, die bei großen Datenmengen oder vielen gleichzeitigen Zugriffen ins Gewicht fällt. Neuere Anwendungen greifen deshalb häufiger zu nativen Treibern der jeweiligen Datenbank oder zu einer Schnittstelle über HTTP, die ohne lokale Installation auskommt.

Aktuelle Themen