Definition Was ist ODBC?

Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Bei ODBC (Open Database Connectivity) handelt es sich um eine standardisierte, offene Schnittstelle für den Zugriff auf unterschiedliche Datenbankmanagementsysteme. Über ODBC-Treiber können Anwendungen direkt Anweisungen an Datenbanken erteilen oder Abfragen ausführen.

Anbieter zum Thema

(Bild: © aga7ta - stock.adobe.com)

Open Database Connectivity, abgekürzt ODBC, wurde ursprünglich von Microsoft entwickelt. ODBC hat sich mittlerweile als eine Art Standard für den Zugriff von Anwendungen auf unterschiedliche Datenbanken etabliert und ist neben Windows auch für Betriebssysteme wie Unix oder macOS verfügbar. Die ODBC-Schnittstelle verwendet die Datenbanksprache SQL (Structured Query Language) und stellt Anwendungen eine offenes, standardisiertes API (Application Programming Interface) zur Verfügung. Beispielsweise können ODBC-Anweisungen an Datenbanken wie dBase, Access und DB2 oder direkt an Excel-Dateien gesendet werden.

Für den Zugriff auf die verschiedenen Datenbanken benötigt ODBC spezielle Treiber. Dank der Nutzung von SQL können die Anwendungen mit den Datenbanken kommunizieren, ohne die proprietären Protokolle oder Schnittstellen der verschiedenen Datenbankmanagementsysteme zu kennen. Die SQL-Befehle der Anwendungen wandelt ODBC in die Sprache und Formate der Datenbanken um. Der eigentliche Zugriff auf die Daten erfolgt niemals direkt auf die Datenbank oder die Tabelle, sondern immer über die zugehörige ODBC-Komponente. Open Database Connectivity erlaubt sowohl den Zugriff auf lokale als auch auf entfernte Datenbanken über Netzwerkverbindungen.

Für objektorientierte Programmiersprachen wie Java oder C++ sind Klassen vorhanden, die die Kommunikation per ODBC mit den Datenbanken definieren. Programmierer müssen keine datenbankspezifischen Detailkenntnisse besitzen. Die erste Veröffentlichung von ODBC erfolgte bereits im Jahr 1992.

Aufbau und Funktionsweise von ODBC

Möchte eine Anwendung auf eine Datenbank als Datenquelle über ODBC zugreifen, sind vier Komponenten beteiligt. Diese Komponenten sind:

  • Die Anwendung,
  • der ODBC-Treiber-Manager,
  • der ODBC-Treiber und
  • die Datenquelle (Datenbank).

In der Datenquelle sind die für die jeweilige Anwendung relevanten Daten gespeichert. Die Datenquelle kann sowohl eine Datenbank als auch eine Excel-Tabelle oder eine Text-Datei sein. Die Anwendung kommuniziert mit der Datenquelle, indem sie zunächst den Verbindungsaufbau initiiert. Hierfür wendet sie sich zunächst an den Treiber-Manager und benennt über den Data Source Name (DSN) die Datenquelle.

Der Verbindungsaufbau kann weitere spezifische Informationen wie Userkennungen oder Passwörter enthalten. Der Treiber-Manager lokalisiert anhand des DSN den zuständigen Treiber und lädt die benötigten ODBC-Treiber. Anschließend gibt er die Daten an den Treiber weiter. Ist die Verbindung zur Datenquelle hergestellt, kann die Anwendung Anweisungen über SQL-Befehle erteilen. Der ODBC-Treiber selbst ist auf Windows-Systemen eine DLL-Datei. Im Treiber sind die Funktionen für den Aufbau einer Verbindung mit der Datenquelle implementiert. Gleichzeitig übernimmt er die Konvertierung der SQL-Abfragen der Anwendung in das spezifische Format der Datenquelle. Er ist er in der Lage, auch Zeichensätze umzuwandeln. Die Ergebnisse gibt der Treiber zurück an die Anwendung.

Treten Fehler auf, interpretiert der ODBC-Treiber diese und liefert sie in Form von Fehlercodes aus. Dank der ODBC-Verbindung zur Datenquelle kann die Anwendung ihre Daten direkt in der Datenbank verwalten. Die Notwendigkeit, Daten zu kopieren oder eine lokale Kopie zu erstellen, entfällt. Daten lassen sich direkt aus der Datenquelle abrufen und dort speichern oder verändern. ODBC übernimmt die Übertragung sämtlicher SQL-Anfragen und resultierender Ergebnisse. Datenbanken können mit mehreren Anwendungen per ODBC in Verbindung stehen. Die Datenbank selbst ist entweder auf dem gleichen Serversystem beziehungsweise Rechner wie die Anwendung installiert oder liegt auf einem entfernten, über das Netzwerk erreichbaren System.

Vor- und Nachteile der Open Database Connectivity

Die mit Open Database Connectivity standardisierte, offene Schnittstelle bietet eine ganze Reihe von Vorteilen. Entwickler können ihre Anwendungen völlig unabhängig von einzelnen Datenbanken programmieren und müssen sich nicht um deren Protokolle und Datenbanksprachen kümmern. SQL wird für die Anwendung zur universalen Datenbanksprache. Gleichzeitig entsteht eine hohe Flexibilität der Anwendung, da sie sich grundsätzlich mit beliebigen Datenbanken verbinden kann. Es genügen die Installation des benötigten ODBC-Treibers für die jeweilige Datenbank und die Konfiguration der Konnektivität. Bei Bedarf ist die Datenquelle einer Anwendung mit wenig Aufwand zu migrieren. Ein weiterer Vorteil ergibt sich durch die Möglichkeit des Zugriffs mehrerer Anwendungen auf eine einzige Datenquelle. Dadurch lässt sich die Vernetzung der Anwendungen untereinander realisieren, ohne dass sie sich direkt miteinander austauschen müssen.

Diesen Vorteilen stehen einige Nachteile gegenüber. Die Einbindung von Open Database Connectivity mit seinen Komponenten und Treibern führt unter Umständen zu längeren Antwortzeiten bei der Ausführung von Datenbankaktionen. Komplexe Systemlandschaften und verteilt installierte Datenbanksysteme mit langsamen Netzwerkverbindungen können die Performance der Anwendung und der Datenabfragen zusätzlich negativ beeinflussen. Für die Verwendung von ODBC sind im Vorfeld die benötigten Treiber zu installieren. Sind mehrere unterschiedliche Datenquellen beteiligt, ist für jede ein eigener Treiber notwendig.

(ID:44800711)