|
Архитектура и функции BDE
BDE представляет собой набор динамических
библиотек, которые "умеют" передавать запросы
на получение или модификацию данных из приложения в
нужную базу данных и возвращать результат обработки.
В процессе работы библиотеки используют вспомогательные
файлы языковой поддержки и информацию о настройках среды.
В составе BDE поставляются стандартные
драйверы, обеспечивающие доступ к СУБД Paradox, dBASE,
FoxPro и текстовым файлам. Локальные драйверы (рис.
16.1) устанавливаются автоматически совместно с ядром
процессора. Один из них можно выбрать в качестве стандартного
драйвера, который имеет дополнительные настройки, влияющие
на функционирование процессора БД.
Рис. 16.1. Структура
процессора баз данных ВОЕ
Доступ к данным серверов SQL обеспечивает
отдельная система драйверов — SQL Links. С их помощью
в Delphi можно без особых проблем разрабатывать приложения
для серверов Oracle 8, Informix, Sybase, DB2 и, естественно,
InterBase. Эти драйверы необходимо устанавливать дополнительно.
Помимо этого, в BDE имеется очень простой
механизм подключения любых драйверов ODBC (к примеру,
Microsoft Access) и создания на их основе сокетов ODBC.
Примечание
С точки зрения пользователя процесс
подключения локального драйвера и драйвера SQL Links
практически не отличается, за исключением деталей
настройки. Настройка драйверов и собственных параметров
BDE осуществляется при помощи специальной утилиты
— BDE Administrator и рассматривается далее в этой
главе.
В состав BDE входят следующие функциональные
подсистемы.
- Администратор системных ресурсов
управляет процессом подключения к данным — при необходимости
устанавливает нужные драйверы, а при завершении работы
автоматически освобождает занятые ресурсы. Поэтому
BDE всегда использует ровно столько ресурсов, сколько
необходимо.
- Система обработки запросов
обеспечивает выполнение запросов SQL или QBE от приложения
к любым базам данных, для которых установлен драйвер,
даже если сама СУБД не поддерживает прямое использование
запросов SQL.
- Система сортировки является
запатентованной технологией и обеспечивает очень быстрый
поиск по запросам SQL и через стандартные драйверы
аля Paradox и dBASE.
- Система пакетной обработки
представляет собой механизм преобразования данных
из одного формата в другой при выполнении операций
над целыми таблицами. Эта система использована в качестве
основы для компонента TBatcMove и утилиты DataPump
(автоматического переноса структур данных между базами
данных), входящей в стандартную поставку BDE.
- Менеджер буфера управляет единой
для всех драйверов буферной областью памяти, которую
одновременно могут использовать несколько драйверов.
Это позволяет существенно экономить системные ресурсы.
- Менеджер памяти взаимодействует
с ОС и обеспечивает эффективное использование выделяемой
памяти. Ускоряет работу драйверов, которые для получения
небольших фрагментов памяти обращаются к нему, а не
к ОС. Дело в том, что менеджер памяти выделяет большие
объемы оперативной памяти и затем распределяет ее
небольшими кусками между драйверами согласно их потребностям.
- Транслятор данных обеспечивает преобразование
форматов данных для различных типов БД.
- Кэш BLOB используется для ускорения
работы с данными в формате BLOB.
- SQL-генератор транслирует запросы
в формате QBE в запросы SQL.
- Система реструктуризации обеспечивает
преобразование наборов данных в таблицы Paradox или
dBASE.
- Система поддержки драйверов
SQL повышает эффективность механизма поиска при выполнении
запросов SQL.
- Таблицы в памяти. Этот механизм
позволяет создавать таблицы непосредственно в оперативной
памяти. Используется для ускорения обработки больших
массивов данных, сортировки, преобразования форматов
данных.
- Связанные курсоры обеспечивают
низкоуровневое выполнение межтабличных соединений.
Позволяют разработчику не задумываться над реализацией
подобных связей при работе на уровне VCL — для этого
достаточно установить значения нескольких свойств.
- Менеджер конфигурации обеспечивает
разработчику доступ к информации о конфигурации драйверов.
Перечисленные функции реализованы в
динамических библиотеках, которые, собственно, и называются
процессором БД (табл. 16.1).
Таблица 16.1. Ядро
процессора баз данных ВОЕ 5
|
|
|
|
|
Базовая динамическая библиотека
ВОЕ
|
|
|
Динамическая библиотека, отвечающая
за работу серверной части приложения
|
|
|
Динамическая библиотека, обеспечивающая
поддержку драйверов национальных языков
|
|
|
Динамическая библиотека с функциями
межтабличного переноса данных
|
|
|
Динамическая библиотека, обеспечивающая
работу запросов по примеру (Query By Example,
QBE)
|
|
|
Динамическая библиотека, обеспечивающая
обработку запросов SQL
|
|
|
Динамическая библиотека, обеспечивающая
работу драйвера текстовых файлов
|
|
|
Динамическая библиотека, обеспечивающая
работу драйвера Paradox
|
|
|
Динамическая библиотека, обеспечивающая
работу драйвера dBASE
|
|
|
Динамическая библиотека, обеспечивающая
работу драйвера сокета ODBC
|
|
|
Динамическая библиотека ресурсов,
содержащая сообщения об ошибках
|
|
|
Динамическая библиотека, обеспечивающая
работу драйверов Microsoft Access 95 и Jet Engine
3.0
|
|
|
Динамическая библиотека, обеспечивающая
работу драйверов Microsoft Access 97 и Jet Engine
3.5
|
|
|
Динамическая библиотека для
работы с Репозиторием данных
|
Кроме этого имеется шесть дополнительных
DLL, обеспечивающих работу BDE с серверами Oracle и
Microsoft SQL Server.
|