Unterschied zwischen ODBC und OLEDB

Unterschied zwischen ODBC und OLEDB
Unterschied zwischen ODBC und OLEDB

Video: Unterschied zwischen ODBC und OLEDB

Video: Unterschied zwischen ODBC und OLEDB
Video: Das Reh ist nicht die Frau vom Hirsch - Das kleine 1x1 der Artenkunde | Planet Schule 2024, Juli
Anonim

ODBC vs. OLEDB

Normalerweise werden Softwareanwendungen in einer bestimmten Programmiersprache (wie Java, C usw.) geschrieben, während Datenbanken Abfragen in einer anderen datenbankspezifischen Sprache (wie SQL) akzeptieren. Wenn also eine Softwareanwendung auf Daten in einer Datenbank zugreifen muss, ist eine Schnittstelle erforderlich, die Sprachen ineinander (Anwendung und Datenbank) übersetzen kann. Andernfalls müssen Anwendungsprogrammierer datenbankspezifische Sprachen lernen und in ihre Anwendungen integrieren. ODBC (Open Database Connectivity) und OLEDB (Object Linking and Embedding, Database) sind zwei Schnittstellen, die dieses spezifische Problem lösen. ODBC ist eine plattform-, sprach- und betriebssystemunabhängige Schnittstelle, die für diesen Zweck verwendet werden kann. OLEDB ist der Nachfolger von ODBC.

Was ist ODBC?

ODBC ist eine Schnittstelle für den Zugriff auf Datenbankverw altungssysteme (DBMS). ODBC wurde 1992 von der SQL Access Group entwickelt, als es noch kein Standardmedium für die Kommunikation zwischen einer Datenbank und einer Anwendung gab. Es ist nicht abhängig von einer bestimmten Programmiersprache oder einem Datenbanksystem oder einem Betriebssystem. Programmierer können die ODBC-Schnittstelle verwenden, um Anwendungen zu schreiben, die Daten aus jeder Datenbank abfragen können, unabhängig von der Umgebung, in der sie ausgeführt wird, oder dem verwendeten DBMS-Typ.

Da der ODBC-Treiber als Übersetzer zwischen der Anwendung und der Datenbank fungiert, ist ODBC in der Lage, die Sprach- und Plattformunabhängigkeit zu erreichen. Dies bedeutet, dass die Anwendung von der Last entlastet wird, die datenbankspezifische Sprache zu kennen. Stattdessen kennt und verwendet er nur die ODBS-Syntax, und der Treiber übersetzt die Abfrage in die Datenbank in eine Sprache, die er versteht. Anschließend werden die Ergebnisse in einem für die Anwendung verständlichen Format zurückgegeben. Die ODBC-Software-API kann sowohl mit relationalen als auch mit nicht relationalen Datenbanksystemen verwendet werden. Ein weiterer großer Vorteil von ODBC als universelle Middleware zwischen einer Anwendung und einer Datenbank besteht darin, dass jedes Mal, wenn sich die Datenbankspezifikation ändert, die Software nicht aktualisiert werden muss. Lediglich ein Update des ODBC-Treibers würde ausreichen.

Was ist OLEDB?

OLEDB ist eine von Microsoft entwickelte Daten-API. Es ermöglicht den Zugriff auf Daten aus einer Vielzahl von Datenquellen. Es wird mit Microsofts COM (Component Object Mode) implementiert. OLEDB gilt als Nachfolger von ODBC und kann im Vergleich zu ODBC mit Datenquellen auf einer viel höheren Ebene umgehen. Im Wesentlichen erweitert OLEDB die ODBC-Merkmale auf nicht-relationale Datenbanken (z. B. Objektdatenbanken und Tabellenkalkulationen). Das bedeutet, dass OLEDB mit Datenbanken verwendet werden kann, die kein SQL verwenden. OLEDB wurde als Teil der Microsoft Data Access Components (MDAC) entwickelt.

Was ist der Unterschied zwischen ODBC und OLEDB?

Wenn der Programmierer mit COM nicht vertraut ist, dann ist ODBC die bessere Option. ODBC eignet sich jedoch nur für relationale Datenbanken, während OLEDB sowohl für relationale als auch für nicht relationale Datenbanken geeignet ist. Wenn die Datenbank OLE (Nicht-OLE-Umgebungen) nicht unterstützt, ist ODBC die beste Wahl. Wenn die Umgebung nicht SQL ist, müssen Sie OLEDB verwenden (da ODBC nur mit SQL funktioniert). Wenn interoperable Datenbankkomponenten erforderlich sind, muss in ähnlicher Weise OLEDB anstelle von ODBC verwendet werden. Für 16-Bit-Daten ist der Zugriff auf ODBC jedoch die einzige Option (OLEDB unterstützt 16-Bit nicht). Schließlich ist OLEDB die beste Wahl, um eine Verbindung zu mehreren Datenbanken gleichzeitig herzustellen (ODBC kann sich jeweils nur mit einer Datenbank verbinden).

Empfohlen: