Category: 

What is Open Database Connectivity?

Article Details
  • Written By: M. McGee
  • Edited By: Lauren Fritsky
  • Last Modified Date: 25 August 2016
  • Copyright Protected:
    2003-2016
    Conjecture Corporation
  • Print this Article
Free Widgets for your Site/Blog
Roughly one-fifth of the world's stock of gold - worth over $200 billion USD - is stored under the streets of London.  more...

September 30 ,  1949 :  The Berlin Air Lift ended.  more...

Open Database Connectivity (ODBC) is an interface between computer applications and databases. This interface provides a buffer layer in between the database and the software used to access it. This means that any software may connect to any database regardless of platform or method as long as both systems use ODBC. Essentially, the two programs speak in their own languages and the Open Database Connectivity routines translate the information.

The original Open Database Connectivity system was developed by Microsoft® in 1992. This system operated very well in some circumstances, but not in others. In 1995, Microsoft® released Version 3 of the system, which coincided with it being adopted as a base standard for structured query language (SQL). As part of the SQL standard, the interface became widely used for all sorts of different database purposes.

Before the adoption of Open Database Connectivity, database-using programs needed coded methods for talking to different styles of databases. Programmers believed these systems would need access to three different types of databases; then, three different commands for each function were programmed into the system. Databases had the same redundancy; each program required the information be sent out in a specific manor. If either of these programs were off in syntax or encountered an unfamiliar system, no communication was possible.

Ad

This all changed with the development and implementation of Open Database Connectivity. This essentially works as a translator. The programmers of the database and applications write up the methods they use in the syntax used by ODBC. When the application requires information, it sends the query, and ODBC translates its syntax to the methods used by the database. The database sends the answer back, and ODBC translates it back into the syntax required by the application.

This process works via an installed set of drivers. Each database has a specific Open Database Connectivity driver associated with it. This driver does the actual translation between the database and the outside world. If changes to the specification make the driver obsolete, then only the driver needs changing; the rest of the database may remain unaltered. This allows updates to the interface without a lot of additional coding work.

Applications essentially have Open Database Connectivity drivers built into them. These drivers are part of the programming for the application. They may be updated as the program receives patches, but they are separate from the standard ODBC system.

The real communication happens between these driver sets. The program’s drivers translate the information before it is actually sent. The database’s drivers receive the request in its own language, get the information and send it out, still in the ODBC syntax. The program’s drivers take the information back in and translate it back to the program’s language. This two-layer system creates an interface that is nearly foolproof, as the actual designers of the systems make their own interfaces.

Ad

You might also Like

Recommended

Discuss this Article

Post your comments

exception 'Exception' with message 'error writing captcha: Duplicate entry '2147483647' for key 'PRIMARY'' in /ssd/www/wisegeek/public_html/_core/classes/public/Captcha.php:44
Stack trace:
#0 /ssd/www/wisegeek/public_html/_core/controls/public/ControlDiscussionPostBox.php(324): Captcha->createCaptcha()
#1 /ssd/www/wisegeek/public_html/framework/classes/Control.php(104): ControlDiscussionPostBox->preRender(false)
#2 /ssd/www/wisegeek/public_html/framework/classes/Control.php(149): Control->render()
#3 /ssd/www/wisegeek/public_html/tpl/default-nocustom-lu/pages/public/article/article.htm(526): Control->__toString()
#4 /ssd/www/wisegeek/public_html/framework/classes/Control.php(300): require('/ssd/www/wisege...')
#5 /ssd/www/wisegeek/public_html/framework/classes/Control.php(309): Control->requireTpl('pages/public/ar...', Object(PageArticleCom), true)
#6 /ssd/www/wisegeek/public_html/framework/classes/Control.php(131): Control->renderTpl('pages/public/ar...', Object(PageArticleCom))
#7 /ssd/www/wisegeek/public_html/framework/classes/FormDataControl.php(87): Control->renderTemplate()
#8 /ssd/www/wisegeek/public_html/framework/classes/Control.php(109): FormDataControl->renderTemplate()
#9 /ssd/www/wisegeek/public_html/framework/classes/ScriptPage.php(50): Control->render(false)
#10 /ssd/www/wisegeek/public_html/framework/classes/Control.php(149): ScriptPage->render()
#11 /ssd/www/wisegeek/public_html/framework/classes/Page.php(97): Control->__toString()
#12 /ssd/www/wisegeek/public_html/_core/classes/public/PublicFrontController.php(443): Page->processRequest()
#13 /ssd/www/wisegeek/public_html/_core/classes/public/PublicFrontController.php(7): PublicFrontController->renderPage()
#14 /ssd/www/wisegeek/public_html/index.php(11): PublicFrontController::run()
#15 {main}