ODBC (Open DataBase Connectivity)


ODBC is a standard software API specification for using database management systems. ODBC is designed to be independent of programming language, database system, and operating system.

The left-hand side of the figure on the right shows how before ODBC, even if App1 and App2 were functionally equivalent, two programs were required, one for each DBMS.  

The right-hand side of the figure above shows how ODBC permits the DBMS-specific parts of a program to be separated from the part that fulfills the functional requirement, enabling the completed application to be attached to any DBMS that has a corresponding driver.
The goal of ODBC is to make it possible to access any data from any application, regardless of which database management system (DBMS) is handling the data.
ODBC manages this by inserting a middle layer, called a database driver, between an application and the DBMS. The purpose of this layer is to translate the application’s data queries into commands that the DBMS understands. For this to work, both the application and the DBMS must be ODBC-compliant—that is, the application must be capable of issuing ODBC commands and the DBMS must be capable of responding to them.