Проблема форматно независимого доступа к данным и технология ODBC
Процесс
разработки и развития любой СУБД неизбежно приводит к необходимости
решать проблему взаимодействия с данными, созданными и управляемый в
рамках других программных систем, или, как еще говорят, к проблеме
доступа к внешним источникам данных. Это, в свою очередь, определяет
принципиальное требование, которому должны удовлетворять прикладные
СУБД. Программные процедуры обработки информации, создаваемые в рамках
СУБД, должны быть максимально независимыми от формата хранимых данных.
Выполнение этого принципа позволяет:
- о
первых, с наименьшими затратами осуществлять переход от одной СУБД к
другой, потребность в чем, допустим, возникает при масштабировании
ранее созданного программного обеспечения для предприятий и фирм
качественно иного размера
- во вторых, успешно решать задачи интеграции двух и более независимых программных систем
Важнейшим
инструментом форматно независимого доступа к данным из программ стала
технология ODBC (Open Data Base Connectivity), созданная фирмой
Microsoft. Ее принципиальная схема изображена на рис. Как следует из
него, в рамках ODBC:
- программное приложение непосредственно взаимодействует с диспетчером драйверов, посылая ему ODBC-вызовы
- диспетчер
драйверов отвечает за динамическую загрузку нужного ODBC-драйвера,
через который обращается к СУБД (серверу баз данных)
- ODBC-драйвер выполняет все вызовы ODBC-функций, "переводит" их на язык источника данных
- СУБД хранит и выводит данные в ответ на запросы со стороны ODBC-драйвера (или же возвращает код ошибки)

В настоящее время в состав подавляющего большинства систем управления данными входят соответствующие ODBC-драйверы.
Таким
образом, при работе с базой данной через ODBC-драйвер она выступает как
некоторый виртуальный источник данных, которым можно управлять с
помощью SQL подобных команд.

Задание
ODBC-источника данных (DSN - data source name) является действием,
которое осуществляется средствами операционной системы, управляющей
компьютером. В частности, в операционных средах Windows 95/Windows 98
для этого в Панели управления предусмотрен пункт Источники Данных ODBC
(32 разр), из которого вызывается Администратор источников данных ODBC.
С его помощью могут быть заданы:
- пользовательский DSN - источник данных, доступный только текущему пользователю на текущем компьютере
- файловый
DSN - источник данных, которые могут применять совместно различные
пользователи, у которых установлены одинаковые ODBC-драйверы
- системный DSN - источник данных, доступный всем пользователям и службам текущего компьютера
Доступ из MS Access к источникам данных в формате других программных приложений
В
MS Access предусмотрены две принципиальные возможности работы с
внешними данными. Это импорт данных и связь с внешними таблицами
данных. Оба режима доступны из меню главного окна базы данных: Файл
> Внешние данные.
В случае импорта
происходит создание дубликата внешних данных во вновь создаваемой
таблице. Среди преимуществ такого решения могут быть названы:
- доступность всего арсенала средств СУБД Access при манипуляциях импортированными данными
- высокое быстродействие при обращении к ним
- независимость от исходного источника данных
Однако,
приобретая указанные преимущества, мы одновременно получаем и
потенциальные проблемы, связанные с поддержанием актуальности и
соответствия друг другу двух параллельных копий одной и той же
информации. Очень часто подобные проблемы оказываются неразрешимыми.
Eсли
актуальность данных является для нас критичным фактором, то необходимо
использовать другой способ работы с внешними данными - связь. В этом
случае в базе данных добавляется лишь ссылка на внешние источники
данных и работа с ними происходит с помощью специальных драйверов. В
поставку MS Access традиционно входят драйверы для работы с данными,
созданными в форматах Paradox" Excel, dBase, FoxPRO, а также в
текстовом (*.txt) и гипертекстовом (*.htm) форматах. Базы данных
Paradox, Excel, dBase, FoxPRO и некоторых других форматов также
называют базами данных с индексно-последовательной организацией (англ.
- ISAM - Indexed Sequential Access Method). Специфические IS
AM-драйверы, учитывающие конкретные особенности перечисленных форматов
организации данных, как правило, обеспечивают высокую эффективность и
быстродействие при работе с ними. Одновременно в Access существует
возможность работы с обширным множеством универсальных источников
данных, для которых установлены ODBC-драйверы. Для этого при указании
типа файла, с которым устанавливается связь, необходимо выбрать Базы
данных ODBC.

"Платой"
за применение технологии связывания с внешними данными являются
ограничения возможностей по управлению структурой добавляемых таблиц, а
также зависимость от состояния самого внешнего источника, к которому мы
подключаемся.
Технологические решения по организации доступа к данным
Рассмотрим
чуть подробнее архитектуру доступа к данным в Access. Схематично она
представлена на рис. В представленной схеме блок пользовательского
интерфейса олицетворяет видимую часть СУБД, то есть то, с чем
пользователь взаимодействует непосредственно (формы, отчеты и другие
объекты). Под хранилищем данных понимаются файл (файлы), содержащие
таблицы данных (например, в Access это mdb-файлы).
Хранилище
- это некоторый пассивный элемент, в нем данные просто содержатся.
Осуществлять манипуляции с ними - это задача процессора базы данных
(или, как еще говорят, ядра базы данных). Он транслирует команды
приложения в физические операции, непосредственно меняющие файл (файлы)
хранилища данных. Основным достоинством описанной схемы является
независимость приложения от типа базы данных, к которой она обращается:
будут ли это данные во внутреннем формате Access или данные какой-то
другой структуры - в приложении используются одни и те же объекты и
методы доступа к ним.
В
СУБД MS Access используется процессор, получивший название Jet (Join*
Engine Technology). Он реализован в виде набора файлов динамически
компонуемых библиотек (DLL), которые связываются с прикладной
программой Access в период ее выполнения. В состав процессора Jet
входят процессор запросов SQL и процессор обработки результатов,
возвращаемых этими запросами.
Рассмотренная
ранее модель объектного интерфейса доступа к данным ОАО представляет
собой программную надстройку над процессором Jet. Jet также реализует
описанные в 7.3.1 возможности по доступу к внешним данным в формате
ISAM и источникам данных ODBC.
Для работы СУБД
MS Access 97 был использован процессор Jet версии 3.5 для 32-разрядных
приложений. Среди принципиальных преимуществ новой версии могут быть
названы:
- ODBCDirect -
альтернативный режим DAO, который предоставляет возможности прямого
обращения к источникам данных ODBC в обход ядра Jet. Это позволяет в
некоторых случаях оптимизировать процесс работы с данными за счет
использования специфических характеристик удаленных ODBC-источников
- для
баз данных, управляемых процессором Jet, определены новые объекты,
свойства и методы, позволяющие использовать новые возможности частичной
репликаций
Также следует отметить,
что в Jet реализована технология Rushmore - специальная методика
управления запросами, которая позволяет очень эффективно отбирать
Наборы записей при использовании в их критериях определенных типов
выражений.
|