Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
146
Добавлен:
11.04.2015
Размер:
380.93 Кб
Скачать

21.3. Интерфейс доступа к данным odbc (Open DataBase Connectivity)

Поначалу использование языка SQLнатолкнулось на ряд существенных проблем, обусловленных наличием большого количества «диалектов» этого языка для конкретных СУБД. Приходилось для каждой целевой СУБД разрабатывать отдельные библиотеки функцийAPI, создавать отдельные версии приложений или применять отдельные функциональные модули доступа к данным. Все это вынуждало затрачивать немалые дополнительные ресурсы на разработку и сопровождение ПО, чтобы обеспечить его совместимость с широким спектром различных целевых СУБД.

Чтобы разрешить сложившуюся ситуацию, компания Microsoft разработала интерфейс, который получил название Open Database Connectivity (ODBC). Технология ODBC предусматривает использование единого интерфейса для доступа к разнородным БД, причем язык SQL рассматривается как стандартное средство доступа к данным. Этот интерфейс, реализованный непосредственно на языке С, обеспечивает высокую степень функциональной совместимости, что позволяет одному и тому же приложению получать доступ к базам, которые поддерживаются с помощью разных СУБД, без необходимости изменения его программного текста. Таким образом, разработчики получили инструмент, позволяющий создавать и распространять приложения архитектуры "клиент/сервер", способные работать с широким спектром различных целевых СУБД. Для связи приложения с любой СУБД, выбранной пользователем, достаточно лишь иметь соответствующий драйвер БД.

В настоящее время технология ODBC фактически признана как общепромышленный стандарт. Основной причиной популярности этой технологии является ее гибкость, предоставляющая разработчикам следующие преимущества:

  • приложения больше не связаны с прикладным интерфейсом API конкретной СУБД;

  • операторы SQL могут явно включаться в исходный текст приложения или динамически создаваться непосредственно во время выполнения программы;

  • в приложении не требуется учитывать особенности используемых протоколов передачи данных;

  • данные могут передаваться и приниматься в формате, который наиболее подходит для данного приложения;

  • в настоящее время драйверы ODBC существуют для многих СУБД, которые нашли наиболее широкое практическое применение.

Важно отметить, что по образцу спецификации ODBC создан пакет JDBC, который предоставляет доступ к широкому классу реляционных СУБД из приложений, написанных на языке Java. Сегодня этот переносимый, высокопроизводительный и динамичный язык, не зависящий от архитектуры вычислительных систем, становится фактически стандартным языком программирования для сложных приложений Web.

Архитектура ODBC состоит из четырех компонентов.

Приложение — выполняет обработку данных и вызов функций библиотеки ODBC для отправки операторов SQL в СУБД и выборки информации из СУБД.

Диспетчер драйверов — выполняет загрузку и выгрузку драйверов по требованию приложения. Этот программный компонент, который представляет собой динамически связываемую библиотеку (Dynamic-Link Library — DLL), может сам обрабатывать вызовы функций ODBC или передавать их драйверу.

Драйверы и агенты баз данных — обрабатывают вызовы функций ODBC, направляют запросы SQL конкретным источникам данных и возвращают полученные результаты приложению. В случае необходимости драйверы модифицируют исходный запрос приложения, чтобы он соответствовал синтаксическим требованиям конкретной СУБД.

Рис. 21.3. Архитектура ODBC: а) с использованием нескольких драйверов; б) с использованием одного драйвера

В варианте архитектуры ODBC с использованием нескольких драйверов (рис. 21.3, а) все упомянутые выше задачи должны решаться самим драйвером ODBC, поскольку агент базы данных не существует. В случае использования единственного драйвера ODBC (рис. 21.3, б) для каждого из типов СУБД потребуется применение агентов базы данных, размещаемых в серверной части приложения. При обработке запросов на доступ к БД эти агенты тесно взаимодействуют с драйвером ODBC, расположенным в клиентской части приложения. В среде Windows драйвер ODBC реализован в виде библиотеки DLL. Агенты баз данных реализуются как фоновые процессы (демоны), которые функционируют на сервере с установленной СУБД.

Соседние файлы в папке Лекции и прочее