Was ist ODBC - Open Database Connectivity
Was ist Open Database Connectivity?
Open Database Connectivity (ODBC) ist eine offene Standard-Anwendungsprogrammierschnittstelle (API) für den Zugriff auf eine Datenbank. Im Jahr 1992 entwickelte Microsoft in Zusammenarbeit mit Simba den weltweit ersten ODBC-Treiber, SIMBA.DLL, und der standardbasierte Datenzugriff war geboren. Durch die Verwendung von ODBC-Anweisungen in einem Programm können Sie auf Dateien in einer Reihe von verschiedenen gängigen Datenbanken zugreifen. Zusätzlich zur ODBC-Software wird für jede Datenbank, auf die zugegriffen werden soll, ein eigenes Modul oder ein eigener Treiber benötigt.
ODBC fungiert als Brücke zwischen einer Anwendung und einer Datenbank. Durch die Verwendung von ODBC-Anweisungen kann ein Programm eine Verbindung zu einer Vielzahl von Datenbanken wie SQL Server, MySQL, Oracle und sogar Flat-File-Datenbanken herstellen, so dass Entwickler datenbankunabhängigen Code schreiben können. In der Praxis entkoppelt ODBC die Client-Anwendung von der spezifischen Datenbank, auf die zugegriffen wird, was die Vielseitigkeit fördert und die Integration verschiedener Systeme erleichtert.
ODBC erfordert für jeden Datenbanktyp einen eigenen Treiber. Jeder Treiber ist dafür verantwortlich, ODBC-Anfragen in Befehle zu übersetzen, die die Datenbank versteht. Die verschiedenen Typen von ODBC-Treibern bestimmen, wie diese Verbindungen hergestellt und aufrechterhalten werden.
ODBC-Spezifikation
Die neueste Version der ODBC-Spezifikation ist auf der Microsoft-Websiteverfügbar.
Sie können auch eine PDF-Version der aktuellen ODBC 3.8-Spezifikation herunterladen.
ODBC-Geschichte
Microsoft führte 1992 den ODBC-Standard ein. ODBC war ein Standard, der den Zugang zu SQL-Datenbanken vereinheitlichen sollte. Nach dem Erfolg von ODBC führte Microsoft OLE DB ein, das einen breiteren Datenzugriffsstandard darstellen sollte. OLE DB war ein Datenzugriffsstandard, der über SQL-Datenbanken hinausging und sich auf jede Datenquelle erstreckte, die Daten im Tabellenformat liefern konnte. Microsofts Plan war es, dass OLE DB ODBC als gängigsten Datenzugriffsstandard ablösen würde. In jüngerer Zeit führte Microsoft den Datenzugriffsstandard ADO ein. ADO sollte weiter gehen als OLE DB, da ADO stärker objektorientiert war.
Trotz der erheblichen Versuche von Microsoft, den ODBC-Standard durch vermeintlich "bessere" Alternativen zu ersetzen, ist ODBC nach wie vor der De-facto-Datenzugriffsstandard für SQL-Datenquellen. Tatsächlich ist der ODBC-Standard heute weiter verbreitet als OLE DB und ADO, da ODBC weithin unterstützt wird (auch von Oracle und IBM) und ein plattformübergreifender Datenzugriffsstandard ist. Heute sind die gebräuchlichsten Datenzugriffsstandards für SQL-Datenquellen weiterhin ODBC und JDBC, und es ist sehr wahrscheinlich, dass Standards wie OLE DB und ADO im Laufe der Zeit verschwinden werden.
ODBC-Übersicht
ODBC hat sich zum De-facto-Standard für den standardbasierten Datenzugriff in relationalen und nicht-relationalen Datenbankmanagementsystemen (DBMS) entwickelt. Simba hat in den frühen 90er Jahren eng mit Microsoft zusammengearbeitet, um den ODBC-Standard zu entwickeln. Der ODBC-Standard ermöglicht ein Höchstmaß an Interoperabilität, so dass Anwendungsentwickler eine einzige Anwendung schreiben können, um auf Datenquellen verschiedener Anbieter zuzugreifen. ODBC basiert auf den Call-Level Interface (CLI)-Spezifikationen der Open Group und ISO/IEC für Datenbank-APIs und verwendet die Structured Query Language (SQL) als Datenbankzugriffssprache.
ODBC-Architektur
Die ODBC-Architektur (Open Database Connectivity) ist ein Rahmenwerk, das Anwendungen einen standardisierten Weg zum Zugriff auf verschiedene Datenbankverwaltungssysteme (DBMS) bietet, ohne dass spezielle Datenbanktreiber erforderlich sind. Es dient als Vermittlungsschicht, die sicherstellt, dass Anwendungen mit verschiedenen Datenbanken über einen gemeinsamen Satz von APIs interagieren können, unabhängig von der zugrunde liegenden Struktur oder Sprache der Datenbank. Diese Flexibilität macht ODBC zu einem unverzichtbaren Werkzeug für Entwickler, die verschiedene Datenquellen nahtlos integrieren wollen.
Die Architektur besteht aus drei Hauptkomponenten: der Anwendung, dem ODBC-Treiber-Manager und dem ODBC-Treiber selbst. Die Anwendung initiiert die Kommunikation, indem sie SQL-Anforderungen sendet, die dann an den ODBC-Treiber-Manager weitergeleitet werden. Der Treibermanager fungiert als Dispatcher und bestimmt den richtigen Treiber für die Zieldatenbank. Die Treiber spielen eine Schlüsselrolle in der ODBC-Architektur, da sie die Anfragen zwischen Anwendungen und Datenbanken übersetzen.
Die Architektur der ODBC-basierten Datenkonnektivität sieht folgendermaßen aus:

ODBC-fähige Anwendung
Eine ODBC-fähige Anwendung ist jede Software, die eine Verbindung zu Datenbanken über den ODBC-Standard herstellen kann. Beispiele sind Microsoft Excel, Tableau, Crystal Reports und Microsoft Power BI. Diese Anwendungen verwenden ODBC, um mit Datenbanken zu kommunizieren und Daten abzurufen, zu analysieren und zu manipulieren.
Dabei sendet die Anwendung SQL-Befehle an den ODBC Driver Manager, der diese Befehle dann an den entsprechenden Treiber für die verwendete Datenbank weiterleitet. Sobald die Datenbank die Befehle verarbeitet hat, werden die Ergebnisse über den ODBC-Treiber-Manager an die Anwendung zurückgegeben. Dies ermöglicht einen einfachen Datenzugriff, ohne dass sich die Anwendung mit den Details der einzelnen Datenbanken befassen muss.
ODBC-Treiber-Manager
Der ODBC-Treiber-Manager lädt und entlädt ODBC-Treiber im Auftrag einer Anwendung. Die Windows-Plattform wird mit einem Standard-Treibermanager geliefert, während Nicht-Windows-Plattformen die Möglichkeit haben, einen Open-Source-ODBC-Treibermanager wie unixODBC und iODBC zu verwenden. Der ODBC-Treiber-Manager verarbeitet ODBC-Funktionsaufrufe oder leitet sie an einen ODBC-Treiber weiter und löst ODBC-Versionskonflikte auf.
Datenquelle
Eine Datenquelle ist einfach die Quelle der Daten. Dabei kann es sich um eine Datei, eine bestimmte Datenbank in einem DBMS oder sogar um einen Live-Datenfeed handeln. Die Daten können sich auf demselben Computer wie das Programm oder auf einem anderen Computer irgendwo in einem Netzwerk befinden.