Архитектура и функции 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.
|