1.2 Создание приложений для работы с базами данных
Delphi 7.0 представляет собой уникальную систему разработки, в которой технология высокопроизводительной оптимизирующей компиляции сочетается с визуальными средствами разработки и масштабируемым процессором баз данных. Это позволяет создавать эффективные приложения Windows, работающие с базами данных, в том числе и программы для систем клиент/сервер. Для создания таких приложений в Delphi 7.0 используется объектно-ориентированный подход, базирующийся на применении различных компонентов (визуальных и не визуальных), что обеспечивает неограниченную расширяемость и маcштабируемость. Delphi 7.0 позволяет разработчику быстро создавать и свободно распространять приложения с архитектурой клиент/сервер, работающие существенно быстрее и надежнее предыдущего поколения программных продуктов, которые строились при помощи систем разработки, основанных на интерпретируемом коде [9].
Большим преимуществом приложений, разрабатываемых в среде Delphi 7.0,- стала доступность использования как реляционного, так и навигационного программирования при работе с данными. Такую возможность приложениям Delphi 7.0 предоставляет ядро процессора баз данных Borland Database Engine (BDE). Использование реляционных методов позволяет манипулировать большими выборками информации и легко проводить групповые операции. Навигационные методы дают приложению преимущества быстрого доступа к отдельным полям и записям таблиц баз данных.
Структурная схема организации доступа приложения к различным базам данных отражена на рисунке 1.1. В наиболее общем случае работа с данными в Delphi 7.0 осуществляется через BDE, который обеспечивает непосредственную связь с локальными базами данных и используется при организации доступа к удаленным серверам. В основе BDE лежит технология Integrated Database API (IDAPI), уже известная программистам, которые работают с СУБД фирмы Borland. Через BDE и драйверы Borland SQL Links приложение может связываться с SQL-серверами. В то же время, BDE поддерживает и интерфейс Open DataBase Connectivity (ODBC), что позволяет получить доступ не только к любому удаленному серверу баз данных, для которого имеется драйвер ODBC, но и к любому источнику структурированных данных.
Рис. 1.1. Механизм организации доступа приложения к базам данных
Примечание
ODBC — интерфейс для свободного доступа к данным в гетерогенной среде реляционных и не реляционных баз данных. Основываясь на базовом интерфейсе SQL — Call Level Interface, ODBC обеспечивает открытый до ступ к большинству данных, расположенных на персональном компьютере миникомпьютере и к базам данных больших ЭВМ, позволяя разработчикам иметь одновременный доступ к базам данных. Стандарт ODBC полностью поддерживает технологию клиент/сервер.
В состав стандартной поставки Delphi 7.0 включен локальный сервер Interbase, который позволяет проводить в Delphi 7.0 автономную разработку приложений с поддержкой SQL, готовых к переносу в среду клиент/сервер. Он представляет собой облегченный вариант Interbase Workgroup Server 4.0.
1.3 Ядро Borland Database Engine (BDE)
Как уже отмечалось, использование Delphi 7.0 позволяет разработчику создавать самые разнообразные приложения для работы с базами данных. Среди них могут быть как простейшие программки, открывающие два-три поля, так и мощные приложения, предназначенные для работы в системах клиент/сервер. Такая универсальность достигается за счет использования ядра BDE. В основе BDE лежит технология IDAPI, которая включает IDAPI-инфраструктуру и обработчик запросов [2].
Использование BDE позволяет приложению осуществлять доступ к данным не только локальных (Paradox и dBase), но и удаленных баз данных, расположенных на SQL-серверах (Interbase, Sybase, Oracle, Informix, MS SQL Server), а также в любых форматах, доступных через драйверы ODBC (см. рис. 1.2). BDE поддерживает многопользовательский доступ к гетерогенным базам данных, связанные запросы к нескольким разнотипным базам данных одновременно, прямой перенос данных из одного формата в другой. Программисты могут обращаться к функциям BDE с помощью языков программирования Borland C++, Borland Pascal, Visual C++, а также любых других компиляторов С и C++ для Windows.
Архитектура BDEUDAPI основана на драйверах. Для каждого источника данных существует свой драйвер, который поддерживает не только последнюю версию источника, но и все предыдущие версии. Именно через такие драйверы осуществляется связывание и все обращения к данным. BDE поддерживает два класса драйверов. К первому классу относятся драйверы, обслуживающие SQL-серверы, причем каждый из этих серверов может использовать собственный диалект SQL. Во второй класс входят драйверы для локальных баз данных.
Архитектура BDEMDAPI является объектно-ориентированной, поэтому ее инфраструктура легко расширяется и обобщается. В комплекте BDE содержатся более пятидесяти языковых драйверов, которые используются всеми драйверами доступа к данным и всеми общими обработчиками и сортировщиками запросов. Инфраструктура BDEUDAPI предоставляет обширный набор инструментов, которые могут использоваться всеми драйверами.
Диспетчер памяти предоставляет дополнительные возможности по управлению памятью. В отладочном режиме этот модуль помечает, трассирует и разрешает все попытки использовать память.
Диспетчер буфера основывается на использовании приоритетов и поддерживает режим совместного использования буферов различными драйверами.
Сортировщик автоматически оптимизирует процесс использования доступной памяти и вызывается через соответствующую функцию BDE. Он использует установленный языковый драйвер для работы с различными наборами символов.
Кэш для данных BLOB позволяет производить чтение/запись произвольного места в бинарном объекте, при переполнении содержимое кэша автоматически записывается в разделяемый файл. Одновременно может быть открыто любое количество BLOB.
Генератор SQL транслирует запрос в формате QBE в эквивалентный запрос SQL, если он предназначен SQL-серверу.
Модуль реструктурирования поддерживает сложные изменения структур таблиц, в том числе добавление новых полей, удаление полей, изменение их имен, изменение свойств поля (тип, размер), ссылочной целостности таблицы и т. д. Также этот модуль создает новую таблицу, трансформирует данные и копирует их в нее.
Функции пакетной обработки включают копирование данных из одного формата в другой, переименование таблиц и т. д.
Модуль Xlate оптимизирует процесс преобразования форматов данных.
Модуль таблиц в памяти обеспечивает виртуальную память, ориентированную на таблицы. Он поддерживает курсоры приложений, как и любые другие курсоры IDAPI. Работа модуля тесно связана с работой диспетчера буфера.
Модуль поддержки SQL-драйверов используется при создании любых SQL-драйверов.
Конфигурационный диспетчер участвует в настройке среды BDE при начальной загрузке.
Системный диспетчер управляет всеми ресурсами системного уровня. Он отвечает за загрузку драйверов, отслеживание открытых баз данных, курсоров и контекста каждого приложения.
Общий обработчик запросов поддерживает и SQL и QBE. Он построен с использованием технологии курсоров BDE и поэтому может работать с любым источником данных. Если запрос может быть выполнен напрямую, то он сразу передается серверу. Запрос QBE предварительно транслируется в SQL.
Технология Idapter является составной частью BDE и предназначена для организации доступа к базам данных, используя стандартный программный интерфейс драйверов Borland SQL Links. Idapter транслирует вызовы функций интерфейса IDAPI в вызовы стандартных методов интерфейса ODBC, что позволяет использовать практически любой драйвер стандарта ODBC в режиме драйвера IDAPI. При этом могут использоваться любые функции интерфейса IDAPI. Технология Idapter существенно увеличивает число доступных
через BDE форматов данных. Поставляется совместно с IDAPI, как отдельная динамическая библиотека.
|