Архитектура и функции BDE
В состав 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.
Имя файла | Назначение |
---|---|
IDAPI32.DLL | Базовая динамическая библиотека ВОЕ |
IDPROV.DLL | Динамическая библиотека, отвечающая за работу серверной части приложения |
BLW32.DLL | Динамическая библиотека, обеспечивающая поддержку драйверов национальных языков |
IDBAT32.DLL | Динамическая библиотека с функциями межтабличного переноса данных |
IDQBE32.DLL | Динамическая библиотека, обеспечивающая работу запросов по примеру (Query By Example, QBE) |
IDSQL32.DLL | Динамическая библиотека, обеспечивающая обработку запросов SQL |
IDASCI32.DLL | Динамическая библиотека, обеспечивающая работу драйвера текстовых файлов |
IDPDX32.DLL | Динамическая библиотека, обеспечивающая работу драйвера Paradox |
IDDBAS32.DLL | Динамическая библиотека, обеспечивающая работу драйвера dBASE |
DODBC32.DLL | Динамическая библиотека, обеспечивающая работу драйвера сокета ODBC |
IDR20009.DLL | Динамическая библиотека ресурсов, содержащая сообщения об ошибках |
IDDA032.DLL | Динамическая библиотека, обеспечивающая работу драйверов Microsoft Access 95 и Jet Engine 3.0 |
IDDA3532.DLL | Динамическая библиотека, обеспечивающая работу драйверов Microsoft Access 97 и Jet Engine 3.5 |
IDDR32.DLL | Динамическая библиотека для работы с Репозиторием данных |
Кроме этого имеется шесть дополнительных DLL, обеспечивающих работу BDE с серверами Oracle и Microsoft SQL Server.