Treiberarchitektur
Die Treiberarchitektur fällt in zwei Kategorien, je nachdem, welche Software die SQL-Anweisungen verarbeitet:
Dateibasierte Treiber Der Treiber greift direkt auf die physischen Daten zu. In diesem Fall fungiert der Treiber als Treiber und auch als Datenquelle, d. h. er verarbeitet ODBC-Aufrufe und SQL-Anweisungen. dBASE-Treiber sind z. B. dateibasierte Treiber, da dBASE nicht über eine eigenständige Datenbank-Engine verfügt, die der Treiber nutzen kann. Es ist zu beachten, dass Entwickler von dateibasierten Treibern ihre eigenen Datenbank-Engines schreiben müssen.
DBMS-basierte Treiber Der Treiber greift über eine separate Datenbank-Engine auf die physischen Daten zu. In diesem Fall verarbeitet der Treiber nur ODBC-Aufrufe; SQL-Anweisungen werden zur Verarbeitung an die Datenbank-Engine weitergegeben. Oracle-Treiber sind z. B. DBMS-basierte Treiber, da Oracle über eine eigenständige Datenbank-Engine verfügt, die vom Treiber genutzt wird. Es ist unerheblich, wo sich die Datenbank-Engine befindet. Sie kann sich auf demselben Computer befinden wie der Treiber oder auf einem anderen Computer im Netzwerk. Der Zugriff darauf kann sogar über ein Gateway erfolgen.
Die Treiberarchitektur ist normalerweise nur für Treiberentwickler von Interesse, d. h. die Treiberarchitektur macht für die Anwendung im Allgemeinen keinen Unterschied. Die Architektur kann sich jedoch darauf auswirken, ob eine Anwendung DBMS-spezifisches SQL verwenden kann. Microsoft Access verfügt zum Beispiel über eine eigenständige Datenbank-Engine. Wenn ein Microsoft Access-Treiber DBMS-basiert ist und über diese Engine auf die Daten zugreift, kann die Anwendung Microsoft Access-SQL-Anweisungen zur Verarbeitung an die Engine übergeben.
Wenn der Treiber jedoch dateibasiert ist und eine geschützte Engine enthält, die direkt auf die .mdb-Datei von Microsoft Access zugreift, führen vermutlich alle Versuche, Microsoft Access-spezifische SQL-Anweisungen an die Engine zu übergeben, zu Syntaxfehlern. Das liegt daran, dass die geschützte Engine wahrscheinlich nur ODBC SQL implementiert.
In diesem Abschnitt werden die folgenden Themen behandelt: