ODBC против OLEDB
Как правило, программные приложения пишутся на определенном языке программирования (например, Java, C и т. д.), в то время как базы данных принимают запросы на другом языке, специфичном для базы данных (например, SQL). Поэтому, когда программному приложению требуется доступ к данным в базе данных, требуется интерфейс, который может переводить языки друг в друга (приложения и базы данных). В противном случае программистам приложений необходимо изучить и включить в свои приложения языки, специфичные для баз данных. ODBC (Open Database Connectivity) и OLEDB (Object Linking and Embedding, Database) - два интерфейса, которые решают эту конкретную проблему. ODBC - это независимый от платформы, языка и операционной системы интерфейс, который можно использовать для этой цели. OLEDB является преемником ODBC.
Что такое ODBC?
ODBC - это интерфейс для доступа к системам управления базами данных (СУБД). ODBC был разработан SQL Access Group в 1992 году, когда еще не существовало стандартной среды для связи между базой данных и приложением. Это не зависит от конкретного языка программирования, системы баз данных или операционной системы. Программисты могут использовать интерфейс ODBC для написания приложений, которые могут запрашивать данные из любой базы данных, независимо от среды, в которой они работают, или типа используемой СУБД.
Поскольку драйвер ODBC действует как транслятор между приложением и базой данных, ODBC может добиться независимости от языка и платформы. Это означает, что приложение освобождается от необходимости знать язык, специфичный для базы данных. Вместо этого он будет знать и использовать только синтаксис ODBS, а драйвер будет переводить запрос в базу данных на понятном ему языке. Затем результаты возвращаются в формате, понятном приложению. Программный API ODBC можно использовать как с реляционными, так и с нереляционными системами баз данных. Еще одним важным преимуществом ODBC в качестве универсального промежуточного программного обеспечения между приложением и базой данных является то, что каждый раз, когда изменяется спецификация базы данных, программное обеспечение не нужно обновлять. Достаточно будет только обновления драйвера ODBC.
Что такое OLEDB?
OLEDB - это API данных, разработанный Microsoft. Это позволяет получить доступ к данным из большого количества источников данных. Он реализован с использованием Microsoft COM (режим Component Object Mode). OLEDB считается преемником ODBC и может обрабатывать источники данных на гораздо более высоком уровне по сравнению с ODBC. По сути, OLEDB расширяет возможности ODBC до нереляционных баз данных (например, объектных баз данных и электронных таблиц). Это означает, что OLEDB можно использовать с базами данных, не использующими SQL. OLEDB была разработана как часть Microsoft Data Access Components (MDAC).
В чем разница между ODBC и OLEDB?
Если программист не знаком с COM, то лучше использовать ODBC. Но ODBC подходит только для реляционных баз данных, а OLEDB подходит как для реляционных, так и для нереляционных баз данных. Если база данных не поддерживает OLE (среды, отличные от OLE), лучшим выбором будет ODBC. Если среда не SQL, то вам придется использовать OLEDB (поскольку ODBC работает только с SQL). Точно так же, если требуются взаимодействующие компоненты базы данных, вместо ODBC необходимо использовать OLEDB. Однако для 16-битных данных доступ к ODBC является единственным вариантом (OLEDB не поддерживает 16-битные). Наконец, OLEDB - лучший выбор для одновременного подключения к нескольким базам данных (ODBC может одновременно подключаться только к одной базе данных).