ODBC (англ. Open Database Connectivity) — это программный интерфейс (API) доступа к базам данных, разработанный компанией Microsoft в сотрудничестве с Simba Technologies на основе спецификаций Call Level Interface(CLI), который разрабатывался организациями SQL Access Group, X/Open и Microsoft. Впоследствии CLI был стандартизован ISO. Стандарт CLI призван унифицировать программное взаимодействие с СУБД, сделать его независимым от поставщика СУБД и программно-аппаратной платформы.
В начале 1990 г. существовало несколько поставщиков баз данных, каждый из которых имел собственный интерфейс. Если приложению было необходимо общаться с несколькими источниками данных, для взаимодействия с каждой из баз данных было необходимо написать свой код. Для решения возникшей проблемы Microsoft и ряд других компаний создали стандартный интерфейс для получения и отправки источникам данных различных типов, прежде всего к Microsoft SQL server. Этот интерфейс был назван Open Database Connectivity, или открытый механизм взаимодействия с базами данных.
C помощью ODBC прикладные программисты могли разрабатывать приложения для использования одного интерфейса доступа к данным, не беспокоясь о тонкостях взаимодействия с несколькими источниками.
Это достигается благодаря тому, что поставщики различных баз данных создают драйверы, реализующие конкретное наполнение стандартных функций из ODBC API с учётом особенностей их продукта. MFC усовершенствовала ODBC для разработчиков приложений. Истинный интерфейс ODBC является обычным процедурным API. Вместо создания простой оболочки процедурного API разработчики MFC создали набор абстрактных классов, представляющих логические сущности в базе данных.
ODBC и JDBC
Оба продукта являются достаточно популярным выбором на рынке.
Ключевые отличия между ODBC и JDBC
- ODBC- стандартный интерфейс прикладного программирования для взаимодействия и доступа к системам управления базами данных, тогда как JDBC- интерфейс прикладного программирования на языке Java для определения возможностей доступа клиента к БД.
- ODBC может быть реализован и улучшен на любых языках(например, C, C++, Java и т.д.), тогда как JDBC- только на Java.
- ODBC процедурный API, а JDBC- объектно-ориентированный.
- ODBC основан на сервере Microsoft Internet Information Server с его ASP.NET и технологиях .NET framework реализован в системах на базе Windows. JDBC используется на сервере Apache Tomcat и основан на веб-сервере на основе Linux, также работает на серверах приложений JBoss и IBM.
- ODBC выполняется на основе модели архитектуры безопасности Windows NT, JDBC работает на основе модели безопасности Java.
- ODBC зависим от платформы Windows, тогда как JDBC независима от платформы, следовательно, может работать на платформе базы Windows или Linux.
- Архитектура ODBC состоит из четырех компонентов, а JDBC поддерживает как двухуровневые, так и трехуровневые модели обработки БД, в основном из двух уровней: JDBC API и JDBC Driver API.