Arsitektur Driver Lainnya

Beberapa driver ODBC tidak sepenuhnya sesuai dengan arsitektur yang dijelaskan sebelumnya. Ini mungkin karena driver melakukan tugas selain driver ODBC tradisional, atau bukan driver dalam arti normal.

Driver sebagai Komponen Tengah

Driver ODBC dapat berada di antara Driver Manager dan satu atau beberapa driver ODBC lainnya. Ketika driver di tengah mampu bekerja dengan beberapa sumber data, driver bertindak sebagai dispatcher panggilan ODBC (atau panggilan yang diterjemahkan dengan tepat) ke modul lain yang benar-benar mengakses sumber data. Dalam arsitektur ini, pengemudi di tengah mengambil beberapa peran Driver Manager.

Contoh lain dari driver semacam ini adalah program mata-mata untuk ODBC, yang mencegat dan menyalin fungsi ODBC yang dikirim antara Driver Manager dan driver. Lapisan ini dapat digunakan untuk meniru driver atau aplikasi. Untuk Driver Manager, lapisan tampaknya adalah driver; ke driver, lapisan tampaknya menjadi Driver Manager.

Mesin Gabungan Heterogen

Beberapa driver ODBC dibangun di atas mesin kueri untuk melakukan gabungan heterogen. Dalam satu arsitektur mesin gabungan heterogen (lihat ilustrasi berikut), driver muncul ke aplikasi sebagai driver tetapi muncul ke instans lain dari Driver Manager sebagai aplikasi. Driver ini memproses gabungan heterogen dari aplikasi dengan memanggil pernyataan SQL terpisah dalam driver untuk setiap database yang bergabung.

Architecture of a heterogeneous join engine

Arsitektur ini menyediakan antarmuka umum bagi aplikasi untuk mengakses data dari database yang berbeda. Ini dapat menggunakan cara umum untuk mengambil metadata, seperti informasi tentang kolom khusus (pengidentifikasi baris), dan dapat memanggil fungsi katalog umum untuk mengambil informasi kamus data. Dengan memanggil fungsi ODBC SQLStatistics, misalnya, aplikasi dapat mengambil informasi tentang indeks pada tabel yang akan digabungkan, bahkan jika tabel berada di dua database terpisah. Prosesor kueri tidak perlu khawatir tentang bagaimana database menyimpan metadata.

Aplikasi ini juga memiliki akses standar ke jenis data. ODBC mendefinisikan jenis data SQL umum yang dipetakan oleh jenis data khusus DBMS. Aplikasi dapat memanggil SQLGetTypeInfo untuk mengambil informasi tentang jenis data pada database yang berbeda.

Ketika aplikasi menghasilkan pernyataan gabungan heterogen, prosesor kueri dalam arsitektur ini mengurai pernyataan SQL dan kemudian menghasilkan pernyataan SQL terpisah untuk setiap database yang akan digabungkan. Dengan menggunakan metadata tentang setiap driver, prosesor kueri dapat menentukan gabungan yang paling efisien dan cerdas. Misalnya, jika pernyataan menggabungkan dua tabel pada satu database dengan satu tabel di database lain, prosesor kueri dapat menggabungkan dua tabel pada satu database sebelum menggabungkan hasil dengan tabel dari database lain.

ODBC di Server

Driver ODBC dapat diinstal pada server sehingga dapat digunakan oleh aplikasi pada salah satu dari serangkaian komputer klien. Dalam arsitektur ini (lihat ilustrasi berikut), Driver Manager dan satu driver ODBC diinstal pada setiap klien, dan Driver Manager lain dan serangkaian driver ODBC diinstal di server. Ini memungkinkan setiap klien mengakses berbagai driver yang digunakan dan dikelola di server.

Architecture of ODBC drivers on a server

Salah satu keuntungan dari arsitektur ini adalah pemeliharaan dan konfigurasi perangkat lunak yang efisien. Driver hanya perlu diperbarui di satu tempat: di server. Dengan menggunakan sumber data sistem, sumber data dapat ditentukan di server untuk digunakan oleh semua klien. Sumber data tidak perlu ditentukan pada klien. pengumpulan Koneksi ion dapat digunakan untuk menyederhanakan proses di mana klien terhubung ke sumber data.

Driver pada klien biasanya adalah driver yang sangat kecil yang mentransfer panggilan Driver Manager ke server. Jejaknya bisa jauh lebih kecil daripada driver ODBC yang berfungsi penuh di server. Dalam arsitektur ini, sumber daya klien dapat dibebaskan jika server memiliki lebih banyak daya komputasi. Selain itu, efisiensi dan keamanan seluruh sistem dapat ditingkatkan dengan menginstal server cadangan dan melakukan penyeimbangan beban untuk mengoptimalkan penggunaan server.