What is ODBC, and why is it important?

Open Database Connectivity, ODBC for short, is an Application Programming Interface (API) for developing and deploying Database Management System (DBMS) independent applications and services i.e., applications and services that a loosely-coupled (rather than tightly-coupled) to a DBMS backend.

ODBC Applications, Middleware (Administrator & Driver Manager), and Drivers

Although originally created by Microsoft for the Windows Platform, this API is now available across macOS, Linux, and many other Unix variants — courtesy of open source projects such as iODBC and unixODBC.

Conceptual Framework

ODBC has a development and runtime component to is conceptual workings.

Development

Development components comprises the following:

  • Libraries
  • Header Files

ODBC development occurs on two fronts across two distinct developer profiles:

  • Application Developer — who uses the components above to bind an application to ODBC
  • ODBC Driver Developer — who uses the components above to bind a specific backend DBMS to ODBC.

Runtime

At runtime, as part of user experience, ODBC provides a middleware layer for loosely-binding an application to a chosen backend DBMS via the following components:

  • ODBC Administrator
  • ODBC Driver Manager
  • ODBC Driver

ODBC Administrator

This is the component responsible for managing Data Source Names (DSNs) in relation to target Drivers associated with a specific DBMS backend.

It is also responsible for adding and removing Drivers while also providing a conduit to a call tracer and logger for troubleshooting interactions between Applications and Drivers.

ODBC Driver Manager

Based on a Printer Manager UI/UX pattern, an ODBC Driver Manager provides an interface at runtime for associating an Application with a target Driver and backend DBMS combination via a DSN — no different to selecting a Printer Name for a Printing job from a Spreadsheet, Word-processing tool, or Desktop DBMS tool.

This UI/UX functionality is provided visually on Windows and macOS (via iODBC), Qt or GTK UI-framework implementations on Linux (via iODBC), or HTML (via OpenLink ODBC Drivers).

ODBC Driver

An ODBC Driver is a piece of runtime software that implements ODBC calls by via lower-level APIs (a/k/a call level interfaces) associated with a specific DBMS.

It’s important to note that an Application can be bound directly to an ODBC Driver from an application, but at the expense of the loose-coupling facilitated by Driver Manager — with regards to mixing and matching different combinations of application and target DBMS backends at runtime.

Related

--

--