DBMS-basierte Treiber
DBMS-basierte Treiber werden mit Datenquellen wie Oracle oder SQL Server verwendet, die ein eigenständiges Datenbankmodul für den zu verwendenden Treiber bereitstellen. Diese Treiber greifen über das eigenständige Modul auf die physischen Daten zu; Das heißt, sie übermitteln SQL-Anweisungen an das Modul und rufen Ergebnisse aus dem Modul ab.
Da DBMS-basierte Treiber ein vorhandenes Datenbankmodul verwenden, sind sie in der Regel einfacher zu schreiben als dateibasierte Treiber. Obwohl ein DBMS-basierter Treiber einfach implementiert werden kann, indem ODBC-Aufrufe in systemeigene API-Aufrufe übersetzt werden, führt dies zu einem langsameren Treiber. Eine bessere Möglichkeit zum Implementieren eines DBMS-basierten Treibers ist die Verwendung des zugrunde liegenden Datenstromprotokolls, das in der Regel von der systemeigenen API ausgeführt wird. Beispielsweise sollte ein SQL Server-Treiber TDS (das Datenstromprotokoll für SQL Server) anstelle der DB-Bibliothek (die systemeigene API für SQL Server) verwenden. Eine Ausnahme dieser Regel ist, wenn ODBC die systemeigene API ist. Beispielsweise ist Watcom SQL ein eigenständiges Modul, das sich auf demselben Computer wie die Anwendung befindet und direkt als Treiber geladen wird.
DBMS-basierte Treiber fungieren als Client in einer Client-/Serverkonfiguration, in der die Datenquelle als Server fungiert. In den meisten Fällen befinden sich der Client (Treiber) und der Server (Datenquelle) auf verschiedenen Computern, obwohl sich beide auf demselben Computer befinden können, auf dem ein Multitasking-Betriebssystem ausgeführt wird. Eine dritte Möglichkeit ist ein Gateway, das sich zwischen dem Treiber und der Datenquelle befindet. Ein Gateway ist eine Software, die bewirkt, dass ein DBMS wie ein anderer aussieht. Beispielsweise können Anwendungen, die für die Verwendung von SQL Server geschrieben wurden, auch über das Micro Decisionware DB2-Gateway auf DB2-Daten zugreifen; Dieses Produkt bewirkt, dass DB2 wie SQL Server aussieht.
Die folgende Abbildung zeigt drei verschiedene Konfigurationen von DBMS-basierten Treibern. In der ersten Konfiguration befinden sich der Treiber und die Datenquelle auf demselben Computer. Im zweiten befindet sich der Treiber und die Datenquelle auf verschiedenen Computern. Im dritten befindet sich der Treiber und die Datenquelle auf verschiedenen Computern, und ein Gateway befindet sich zwischen ihnen und befindet sich auf einem noch anderen Computer.