- ODBC
-
In computing, ODBC (Open Database Connectivity) is a standard C interface for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An application can use ODBC to query data from a DBMS, regardless of the operating system or DBMS it uses.
ODBC accomplishes DBMS independence by using an ODBC driver as a translation layer between the application and the DBMS. The application uses ODBC functions, and the driver passes the query to the DBMS.
Contents
Overview
ODBC defines a standard C API for accessing a relational DBMS. It was developed by the SQL Access Group in 1992 to standardize the use of a DBMS by an application. ODBC provides a universal middleware layer between the application and DBMS, allowing the application developer to use a single interface. If changes are made to the DBMS specification, only the driver needs updating. An ODBC driver can be thought of as analogous to a printer or other driver, providing a standard set of functions for the application to use, and implementing DBMS-specific functionality.
An application that can use ODBC is referred to as "ODBC-compliant". Any ODBC-compliant application can access any DBMS for which a driver is installed. Drivers exist for all major DBMSs and even for text or CSV files.
History
Microsoft, in partnership with Simba Technologies, created ODBC by adapting the SQL Access Group CLI.[1] The standard was based on Call Level Interface (CLI) specifications from the SQL Access Group, X/Open (after 1996 part of The Open Group), and the ISO/IEC. ODBC 1.0 was released in September 1992.[2] After ODBC 2.0, Microsoft decided to align ODBC 3.0 with the CLI specification making its way through X/Open and ISO. In 1995, SQL/CLI became part of the international SQL standard.[3]
Version history:[4]
- 1.0: released in September 1992[5]
- 2.0: ca 1994
- 2.5
- 3.0: ca 1995
- 3.5: ca 1997
- 3.8: ca 2009, with Windows 7[6]
Drivers
An ODBC driver enables an ODBC-compliant application to use a data source, normally a DBMS. (Some non-DBMS drivers exist, for such data sources as CSV files. Such drivers implement a small DBMS.) ODBC drivers exist for most DBMSs, including Oracle, Microsoft SQL Server, Sybase ASE, and DB2.
Because different technologies have different capabilities, most ODBC drivers do not implement all functionality defined in the ODBC standard. Some drivers offer extra functionality not defined by the standard.
ODBC Driver Manager
The Driver Manager (DM) is the software that loads a particular driver based on the connection information.[7] An application is actually linked to the DM. When the application calls the ODBC function to connect to the DBMS, the DM parses the connection string and loads the appropriate driver.
Windows and Mac OS X include a driver manager. Other operating systems can avail themselves of either of two free implementations, iODBC or unixODBC.
Bridging configurations
A bridge is special kind of driver: a driver that uses another driver-based technology.
JDBC-ODBC bridges
A JDBC-ODBC bridge consists of a JDBC driver which employs an ODBC driver to connect to a target database. This driver translates JDBC method calls into ODBC function calls. Programmers usually use such a bridge when a particular database lacks a JDBC driver. Sun Microsystems included one such bridge in the JVM, but viewed it as a stop-gap measure while few JDBC drivers existed. Sun never intended its bridge for production environments, and generally recommends against its use. As of 2008[update] independent data-access vendors deliver JDBC-ODBC bridges which support current standards for both mechanisms, and which far outperform the JVM built-in.[citation needed]
ODBC-JDBC bridges
An ODBC-JDBC bridge consists of an ODBC driver which uses the services of a JDBC driver to connect to a database. This driver translates ODBC function-calls into JDBC method-calls. Programmers usually use such a bridge when they lack an ODBC driver for a particular database but have access to a JDBC driver.
OLE DB
Microsoft provides an OLE DB-ODBC bridge for simplifying development in COM aware languages (i.e. Visual Basic). This bridge forms part of the MDAC system component bundle, together with other database drivers.
See also
References
- ^ Harindranath, G; Jože Zupančič (2001). New perspectives on information systems development: theory, methods, and practice. Springer. p. 451. ISBN 9780306472510. http://books.google.com/books?id=O8Loa-c0TyoC. Retrieved 2010-07-28. "The first ODBC drivers [...] used the SIMBA query processor, which translated calls into the Microsoft Jet ISAM calls, and dispatched the calls to the appropriate ISAM driver to access the backend [...]"
- ^ "Linux/UNIX ODBC - What is ODBC?". http://www.easysoft.com/developer/interfaces/odbc/linux.html#what_is_odbc.
- ^ ISO/IEC 9075-3 -- Information technology -- Database languages -- SQL -- Part 3: Call-Level Interface (SQL/CLI)
- ^ "ODBC Versions". Linux/UNIX ODBC. Easysoft. http://www.easysoft.com/developer/interfaces/odbc/linux.html#odbc_versions. Retrieved 2009-10-27.
- ^ Antal, Tiberiu Alexandru. "Access to an Oracle database using JDBC" (PDF). Cluj-Napoca: Technical University of Cluj-Napoca. p. 2. http://www.east.utcluj.ro/mb/mep/antal/Articole/orajdbc_2004.pdf. Retrieved 2009-10-27. "ODBC 1.0 was released in September 1992"
- ^ "What's New in ODBC 3.8". Microsoft. http://msdn.microsoft.com/en-us/library/ee388580%28VS.85%29.aspx. Retrieved 2010-01-13. "Windows 7 includes an updated version of ODBC, ODBC 3.8."
- ^ Sybase. "Introduction to ODBC". http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.sdk_12.5.1.aseodbc/html/aseodbc/aseodbc5.htm. Sybase. http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.sdk_12.5.1.aseodbc/html/aseodbc/aseodbc5.htm. Retrieved 8 October 2011.
External links
- Microsoft ODBC Overview
- List of ODBC Drivers at SQLSummit.com
- OS400 and i5OS ODBC Administration
- Presentation slides from www.roth.net
- Early ODBC White Paper
- Microsoft ODBC & Data Access APIs History Article
Microsoft APIs and frameworks Graphics Audio Multimedia Web Data access Networking Communication Administration and
managementComponent model Libraries Device drivers Windows Driver Model · Windows Driver Foundation (KMDF · UMDF) · WDDM · NDIS · UAA · Broadcast Driver Architecture · VxDSecurity .NET Software factories IPC Accessibility Text and multilingual
supportCategories:- Computer programming
- Microsoft application programming interfaces
- Data access technologies
- Application programming interfaces
- Data management
- Databases
- SQL data access
Wikimedia Foundation. 2010.