ODBC - открытый интерфейс доступа к БД
ODBC (Open Database Connectivity) обеспечивает унифицированный доступ любого приложения к различным источникам данных. Так, если приложение, соответствующее стандарту ODBC и SQL, первоначально разрабатывалось для работы с БД Microsoft Access, а затем таблицы этой базы были перенесены в БД Microsoft SQL Server или Oracle, то приложение сможет и дальше обрабатывать эти данные без внесения дополнительных изменений.
Для взаимодействия с БД приложение-клиент вызывает функции интерфейса ODBC, которые реализованы в специальных модулях, называемых ODBC-драйверами. Как правило, ODBC-драйверы - это DLL-библиотеки, при этом одна DLL-библиотека может поддерживать несколько ODBC-драйверов. Архитектура ODBC представлена четырьмя компонентами (рис. 7.2):
Приложение-клиент - это приложение, выполняющее вызов функций ODBC.
Менеджер драйверов служит для инкапсуляции взаимодействия с различными типами источников данных посредством применения различных ODBC-драйверов. Он загружает и освобождает ODBC-драйверы, которые требуются для приложений-клиентов, а также обрабатывает вызовы ODBC-функций или передает их драйверу.
ODBC-драйвер обрабатывает вызовы SQL-функций, передает SQL-серверу выполняемый SQL-оператор, а приложению-клиенту передает результат выполнения вызванной функции.
Источник данных представляет собой конкретную локальную или удаленную БД.
Рис. 7.2. Архитектура ODBC
Приложение-клиент одновременно может устанавливать соединения с несколькими различными источниками данных, используя разные ODBC-драйверы, а также несколько соединений с одним и тем же источником данных, используя один и тот же ODBC-драйвер.
В настоящее время ODBC стал стандартом де-факто на алгоритм доступа к разнородным БД. Насчитывается более 160 прикладных систем, которые работают с источниками информации через драйверы ODBC.
Объектная модель OLE DB
OLE DB - это метод доступа к различным источникам данных через стандартные СОМ-интерфейсы (Component Object Model), вне зависимости от типа данных и места их расположения. В отличие от OBDC, OLE DB позволяет реализовывать доступ как к SQL-серверам, так и к любым другим произвольным источникам данных. В качестве данных могут выступать БД, простые документы, таблицы Excel и др.
Средства, предоставляющие доступ к источнику данных с использованием технологии OLE DB, называются OLE DB провайдерами. В том случае, если существует только ODBC-драйвер для доступа к конкретному источнику данных, то для применения технологии OLE DB можно использовать OLE DB провайдер, предназначенный для доступа к ODBC-источнику данных.
OLE DB провайдеры, как и все СОМ-компоненты, регистрируются в рестре Windows. Механизм создания результирующих наборов состоит из последовательностей шагов типа:
· создание объекта;
· запрос указателя на интерфейс созданного объекта;
· вызов метода интерфейса.
Спецификация OLE DB описывает набор интерфейсов, реализуемых объектами OLE DB. В базовую модель OLE DB входят следующие объекты:
· объект DataSource (источник данных), используемый для соединения с источником данных и создания одного или нескольких сеансов. Этот объект управляет соединением, использует информацию о полномочиях и аутентификации пользователя;
· объект Session (сеанс) управляет взаимодействием с источником данных - выполняет запросы и создает результирующие наборы. Сеанс также может возвращать метаданные. В сеансе может создаваться одна или несколько команд;
· объект Rowset (результирующий набор) представляет собой данные, извлекаемые в результате выполнения команды или создаваемые в сеансе.
Для каждого объектного типа спецификация OLE DB определяет набор интерфейсов, который должен обязательно быть реализован для данного объекта.
Классы БД
Системы, использующие БД, можно разделить на документальные и фактографические системы. Документальные системы используются для поиска тех или иных текстов или документов. Характерной особенностью фактографических систем является то, что они работают не с текстом, а с фактическими сведениями, которые представлены в виде записей.
Также существующие БД можно разбить на следующие классы:
1. Документографические и документальные БД.
2. БД о продукции.
3. БД экономической и конъюнктурной информации.
4. Фактографические базы социальных данных.
5. БД транспортных систем.
6. Справочные данные для населения и организаций.
7. Ресурсные БД.
8. Фактографические базы научных данных.
9. Фактографические БД в области культуры и искусства.
10. Лингвистические БД.