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
Имя файла
Назначение
IDAPI32.DLL
Базовая динамическая библиотека ВОЕ
IDPROV.DLL
Динамическая библиотека, отвечающая
за работу серверной части приложения
BLW32.DLL
Динамическая библиотека, обеспечивающая
поддержку драйверов национальных языков
IDBAT32.DLL
Динамическая библиотека с функциями
межтабличного переноса данных
IDQBE32.DLL
Динамическая библиотека, обеспечивающая
работу запросов по примеру (Query By Example, QBE)
Динамическая библиотека, обеспечивающая
работу драйвера текстовых файлов
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.
Знаете ли Вы, почему "черные дыры" - фикция? Согласно релятивистской мифологии, "чёрная дыра - это область в пространстве-времени, гравитационное притяжение которой настолько велико, что покинуть её не могут даже объекты, движущиеся со скоростью света (в том числе и кванты самого света). Граница этой области называется горизонтом событий, а её характерный размер - гравитационным радиусом. В простейшем случае сферически симметричной чёрной дыры он равен радиусу Шварцшильда". На самом деле миф о черных дырах есть порождение мифа о фотоне - пушечном ядре. Этот миф родился еще в античные времена. Математическое развитие он получил в трудах Исаака Ньютона в виде корпускулярной теории света. Корпускуле света приписывалась масса. Из этого следовало, что при высоких ускорениях свободного падения возможен поворот траектории луча света вспять, по параболе, как это происходит с пушечным ядром в гравитационном поле Земли. Отсюда родились сказки о "радиусе Шварцшильда", "черных дырах Хокинга" и прочих безудержных фантазиях пропагандистов релятивизма. Впрочем, эти сказки несколько древнее. В 1795 году математик Пьер Симон Лаплас писал: "Если бы диаметр светящейся звезды с той же плотностью, что и Земля, в 250 раз превосходил бы диаметр Солнца, то вследствие притяжения звезды ни один из испущенных ею лучей не смог бы дойти до нас; следовательно, не исключено, что самые большие из светящихся тел по этой причине являются невидимыми." [цитата по Брагинский В.Б., Полнарёв А. Г. Удивительная гравитация. - М., Наука, 1985] Однако, как выяснилось в 20-м веке, фотон не обладает массой и не может взаимодействовать с гравитационным полем как весомое вещество. Фотон - это квантованная электромагнитная волна, то есть даже не объект, а процесс. А процессы не могут иметь веса, так как они не являются вещественными объектами. Это всего-лишь движение некоторой среды. (сравните с аналогами: движение воды, движение воздуха, колебания почвы). Подробнее читайте в FAQ по эфирной физике.