Вначале следует отметить тот факт, что различные СУБД представляют собственные API для взаимодействия с базами данных. Прикладные API включают наборы функций, обеспечивающих программиста разнообразными типами доступа к базе данных, такими как: подключение, выполнение операторов, выборка отдельных строк данных из результирующего множества запросов. Недостатком такого подхода является отсутствие универсальности – программа должна быть обработана предкомпилятором и связана с API, поставляемым в составе конкретной целевой СУБД.
Чтобы упорядочить данный подход, фирма Microsoft разработала стандарт, получивший название Open Database Connectivity – (ODBC). Технология ODBC предусматривает использование единого интерфейса для доступа к смешанным базам данных SQL, причем SQL рассматривается как базовое стандартное средство доступа к данным. Данный интерфейс (который встраивается непосредственно в язык С) обеспечивает высокую степень универсальности, в результате чего одно и тоже приложение может получать доступ к данным, хранящимся в базах различных целевых СУБД, без необходимости внесения изменений в его программный текст. Таким образом, разработчики получили инструмент, позволяющий создавать и распространять приложения архитектуры “клиент - сервер”, способные работать с широким спектром различных целевых СУБД. Для связи приложения с любой выбранной пользователем целевой СУБД достаточно лишь иметь соответствующий ODBC – драйвер.
Общая структура ODBC включает в себя следующие элементы:
Приложение.Выполняет обработку данных и вызов функций библиотеки ODBC для отправки SQL – операторов в СУБД и выборки возвращаемой СУБД информации.
Менеджер драйверов.Этот компонент выполняет загрузку драйверов по требованию приложения. Представляет собой библиотеку DLL.
Драйверы баз данных –Эти компоненты обрабатывают вызовы функций ODBC и направляют SQL – запросы в конкретные источники данных, а также возвращают полученные результаты приложению. При необходимости драйверы выполняют модификацию исходного запроса приложения с целью привидения его в соответствие синтаксическим требованиям целевой СУБД. От них не требуется собственной реализации тех возможностей, которые данная СУБД не поддерживает. Единственным исключением из этого правила являются драйверы для СУБД, не имеющих собственных ядер. В этом случае ядро СУБД, обеспечивающее хотя бы минимальную поддержку языка SQL, должно быть реализовано в самом драйвере. В свете вышесказанного для драйверов ODBC можно говорить об их уровнях соответствия SQL. Различают драйверы с минимальным уровнем поддержки SQL, основным и расширенным уровнями поддержки.
Источники данных –Этот компонент содержит те данные, доступ к которым необходим пользователю приложения. Данные сохраняются в базе данных, контролируемой целевой СУБД, операционной системой, а также сетевыми сервисами ОС.