When writing a new application, which relies on heavy database usage, the coder has to select his preferred database - should it be a free one, such as MySQL or PostgreSQL or a commercial solution, such as Oracle or MsSQL. However, if at some point he decides to switch to another database solution, he will have to edit the whole code, in order to make the application compatible with the new type of database.
In order to prevent this, ODBC was created.
ODBC, standing for Open DataBase Connectivity, represents a standard database access method working as SQL API software. It was developed back in 1992 with the sole purpose of facilitating the work with database management systems (DBMS). It was created by the Microsoft corporation and is since then included in every copy of Microsoft Windows. In 1995 the ODBC was included in the SQL Standard, which played a great role in making ODBC more popular. Today, there are versions for almost any operating system currently used.
How ODBC works
ODBC was intended to enable developers' access to any data through any application, regardless of the DBMS used for managing that data. ODBC boasts platform independence since it has been purposefully designed in a way that makes it distinct from database systems, programming languages and operating systems.
Facilitating the data access from an application to a database management system through ODBC is done through a specific mechanism. A common ODBC implementation contains one or more applications, a core ODBC 'Driver Manager' library, and one or more database drivers. The Driver Manager's role is to interpret the data queries coming from an application by using the DBMS-specific details contained in database drivers. The latter represent a middle layer inserted between an application and the DBMS in use. This way, the application's data queries are translated into commands that can easily be read by the DBMS.
A basic requirement for an ODBC implementation to be run is that both the application and the DBMS be ODBC-compliant. In other words, the application must be able to issue ODBC commands and the DBMS must be capable of responding to them.
Thanks to its modular nature ODBC gives developers a great freedom in creating the separate components of an ODBC implementation. Thus, a programmer can write applications that use standard features without needing to worry about the type of DBMS used for administering the database that the application tries to access. Likewise, the only thing the database driver programmers need to keep in mind during the development process is how to attach their database driver to the 'Driver Manager' library. The result is that currently there are hundreds of ODBC drivers created for a large variety of data sources.
Thanks to the long period of existence and the fruitful efforts of its team of developers, ODBC now offers access to a much wider range of data sources than any other database access method available today. It has turned into a universal data access standard, working with a great variety of operating systems and providing access to even non-relational data, including text and XML files.
The iODBC standart was developed after ODBC was introduced. iODBC stands for "Independent Open Database Connectivity" It's main goal is to free ODBC from it's original Microsoft dependence, by making it OS-independent. With iODBC you can have a Linux machine connecting to an MsSQL server with no problem. It works the same way as ODBC - acting between the Linux machine and the MsSQL table, converting all commands to common SQL commands and returning the database result.
JDBC is an acronym for "Java Database Connectivity". The JDBC is the API for the Java Programming language, providing methods for database access and manipulation and defining how a client can access a database. There are several JDBC-to-ODBC and ODBC-to-JDBC bridges, used when there is no available driver for the specific database. A JDBC-to-ODBC driver is included in the Java virtual machine, but it's not recommended for general usage; there are several third-party JDBC-to-ODBC bridges, which outperform the built in driver.
UnixODBC was created in 1999, as a result of the lack of several features in the iODBC, which was the main Unix ODBC solution at the time. It quickly became very popular and today is included in most of the Linux distributions. The main advantage it has is a graphical user interface (GUI), which allows the user to do all the things, which at the time were possible only with a modification of the iODBC .ini file. This allowed a lot of users, who were used to the Windows wizard approach for configuring ODBC, to quickly get used to UnixODBC. It was also the first Unix ODBC solution to implement ODBC 3.0, which includes binding, fetching and variable-length bookmarks.