Тонкие базы данных и инструменты для их разработки в Delphi и C++Builder

Часть 2. Обзор компонентов

Константин Грибачев

DBISAM

   Основные характеристики

   Основные возможности ядра СУБД

   Дополнительные возможности

   Состав пакета

   Распространение

   Техническая поддержка

   Поддержка сторонними производителями

EasyTable

   Основные характеристики

   Основные возможности ядра СУБД

   Дополнительные возможности

   Состав пакета

   Варианты поставок и стоимость

   Техническая поддержка

TurboDB

   Основные характеристики

   Основные возможности ядра СУБД

   Дополнительные возможности

   Состав пакета

   Варианты поставок и стоимость

   Техническая поддержка

VolgaDB

Что выбрать

 

В первой части данной статьи были рассмотрены особенности, преимущества и предпосылки появления технологии тонких баз данных (ТнБД). Во второй части приводится информация о конкретных пакетах компонентов для Borland Delphi и C++Builder, предназначенных для разработки приложений ТнБД.

DBISAM

акет DBISAM, разработанный американской компанией Elevate Software (http://www.elevatesoft.com), можно по праву назвать «патриархом» среди пакетов компонентов для создания приложений c тонкими базами данных. Первая бета-версия DBISAM под номером 0.01 вышла в 1998 году, тогда же появилась первая финальная версия пакета (1.00). За пятилетнюю историю продукта было выпущено около 80 его версий. На момент написания этих строк последний релиз DBISAM имеет номер 3.24.

DBISAM считается не только самым старшим среди аналогов, но и самым распространенным и популярным. Достаточно сказать, что в течение последних лет (2001 и 2002 годы) этот пакет стабильно завоевывает первые места в ежегодном конкурсе авторитетного американского издания Delphi Informant Magazine в номинации «Лучшее ядро СУБД для Delphi».

Пакет поддерживает версии Borland Delphi 5-7 и Borland C++Builder 5 и 6.

Основные характеристики

• Компиляция непосредственно в EXE-файл, не требуются дополнительные библиотеки и файлы конфигурации.

• Объем кода, добавляемый к исполняемому файлу, составляет примерно 400-500 Кбайт.

• Поддержка многопользовательского доступа.

• Поддержка более 100 национальных алфавитов, включая кириллицу.

Основные возможности ядра СУБД

• Максимальное количество полей в одной таблице — 1024.

• Максимальное количество полей, входящих в состав индекса, — 16.

• Максимальное количество индексов в таблице — 31 (включая один индекс для первичного ключа).

• Максимальный объем таблицы — 4 Гбайт, в расширенном режиме — до 128 Гбайт (для Windows 2000/XP).

•· Первичные и вторичные индексы с поддержкой чувствительных и не чувствительных к регистру атрибутов, упорядочения по возрастанию и по убыванию.

• Поддержка сжатия индексов.

• Логическая нумерация записей, обеспечивающая глобальный номер записи независимо от установленного диапазона (Range).

• Полная поддержка в индексах выражений SUBSTRING, TRIM, LOWER, UPPER, POS, OCCURS, REPLACE, EXTRACT, CAST, ABS, ROUND, IF, а также операторов IN, LIKE, IS NULL, BETWEEN.

• Поддержка SQL (SELECT, INSERT, UPDATE, DELETE CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, DROP INDEX, SUM MIN, MAX, COUNT, AVG, SUBSTRING, TRIM, LOWER, UPPER, LENGTH, POS, OCCURS, REPLACE, EXTRACT, CAST, ABS, ROUND, IF, IN, LIKE, IS NULL, BETWEEN, параметрические запросы, вложенные запросы, запросы с результатами в памяти, события «query progress» для отображения процесса выполнения запроса по времени).

• Поддержка SQL-скриптов.

• Таблицы в памяти с поддержкой потоков.

• Поддержка ограничений и условий на поле (min, max, обязательное поле, значение по умолчанию, регистр символов).

• Поддержка версий таблиц, определяемая пользователем.

• Автоматическая блокировка записей и пользовательская блокировка таблиц, включая блокировку семафорами.

• Автоматическое обнаружение изменений в записях.

• Встроенные механизмы верификации, восстановления, изменения структуры и оптимизации таблиц.

Дополнительные возможности

Если к перечисленному добавить встроенные средства импорта и экспорта для текстовых файлов, а также поддержку индексации текста с реализацией режима полнотекстового поиска, то становится понятно, почему именно этот продукт является лидером среди аналогичных пакетов. Стоит еще раз подчеркнуть, что вся эта функциональность умещается всего в 500 Кбайт программного кода.

Помимо этого DBISAM поддерживает реализацию таких функций, как пользовательские описания для полей и таблиц (с целью документирования), шифрование таблиц с защитой паролем, автоматический переход в режим «Только для чтения» при работе с CD-ROM. Последняя возможность является весьма полезной для разработки приложений ТнБД, запускаемых непосредственно с CD-ROM, без копирования на жесткий диск.

Для DBISAM разработан ODBC-драйвер, предоставляющий стандартный доступ к таблицам БД.

Существует клиент-серверная версия пакета, обеспечивающая работу в архитектуре «клиент-сервер»; в этом случае в состав поставки входит специальное приложение — DBISAM-сервер.

Состав пакета

В комплект поставки DBISAM входят два набора компонентов — основной и вспомогательный, а также набор утилит. Основной набор включает компоненты, предназначенные для создания приложений с базами данных, а вспомогательный содержит несколько визуальных компонентов для использования в качестве элементов графического интерфейса приложений.

В основной набор входят:

• TDBISAMDatabase — база данных DBISAM.

• TDBISAMSession — сеанс DBISAM.

• TDBISAMTable — таблица dBISAM.

• TDBISAMQuery — SQL-запрос DBISAM.

Нетрудно заметить, что по составу и функциональному назначению компоненты основного набора DBISAM аналогичны традиционному набору компонентов для создания приложений баз данных с использованием BDE. Это облегчает их применение разработчиками, имеющими соответствующий опыт.

Во вспомогательный набор входят визуальные компоненты TDBISAMDBGrid, TDBISAMDriveComboBox, TDBISAMStatusBar и два компонента-диалога — TDBISAMDirectoryListBox и TDBISAMFileListBox. Они несущественно отличаются от стандартных компонентов-аналогов.

В набор утилит DBISAM входят две программы:

• DBSys — основная утилита для администрирования БД, которая обеспечивает создание, изменение, оптимизацию, восстановление и другие операции с базой данных и таблицами, создание и выполнение SQL-запросов. Интересной возможностью утилиты является операция reverse engineering, позволяющая воссоздать из имеющейся таблицы либо SQL-скрипт, либо фрагмент кода для Delphi или C++Builder.

• BDETran — предназначена для преобразования таблиц из других СУБД в формат DBISAM через интерфейсы ODBC и BDE.

Все утилиты поставляются с исходными текстами.

Распространение

Пакет распространяется в электронном виде через Интернет. На сайте фирмы-производителя можно найти также пробные версии продукта. Стоимость пакета сегодня варьируется от 250 (локальная версия) до 700 (клиент-серверная версия) долл. и зависит от наличия исходных текстов.

Все продукты DBISAM распространяются по принципу royalty-free distribution, то есть все программное обеспечение, созданное с использованием пакета DBISAM, может распространяться свободно, без необходимости отчисления части стоимости (royalty) его производителю.

С остальными условиями приобретения продукта можно ознакомиться на сайте фирмы-разработчика.

Техническая поддержка

Техническая поддержка пакета осуществляется на высоком уровне. На сайте производителя функционирует форум пользователей, где можно задать технические вопросы и получить квалифицированную помощь. Объем форума в настоящее время достигает около 10 тыс. статей. Кроме того, разработчик регулярно публикует так называемые технические бюллетени, где освещаются самые разнообразные технические проблемы, причины их возникновения и способы устранения. По отзывам пользователей, разработчики DBISAM относятся к весьма небольшому числу производителей программного обеспечения, которые не только не скрывают недостатки своего продукта, но, напротив, регулярно публикуют информацию об обнаруженных авторами ошибках.

Поддержка сторонними производителями

О популярности DBISAM говорит и довольно широкая его поддержка фирмами — разработчиками программного обеспечения. В настоящее время насчитывается около десятка продуктов сторонних фирм, созданных с учетом возможностей использования DBISAM либо даже специально для DBISAM. Речь идет о таких типах программных инструментов, как построители запросов, генераторы отчетов, различные объектно-ориентированные и CASE-среды, утилиты администрирования баз данных. В качестве примера можно привести программу администрирования DBISAM Manager, созданную отечественными разработчиками (EMS HiTech, http://www.ems-hitech.com) и обеспечивающую полный набор функций для работы с DBISAM (включая визуальный построитель SQL-запросов, извлечение метаданных и т.д.).

Подробнее с составом продуктов сторонних производителей можно ознакомиться на сайте фирмы — разработчика DBISAM.

В начало В начало

 

EasyTable

акет EasyTable был создан американской компанией AidAim Software (http://www.aidaim.com) немногим более двух лет назад.

Несмотря на относительную новизну, этот набор компонентов динамично развивается и каждая последующая версия приобретает новые полезные качества. Последняя версия пакета имеет номер 3.40.

Пакет поддерживает версии Borland Delphi 4-7 и Borland C++Builder 4-6.

Основные характеристики

• Компиляция непосредственно в EXE-файл, не требуются дополнительные библиотеки и файлы конфигурации.

• Объем кода, добавляемый к исполняемому файлу, составляет примерно 500-600 Кбайт.

• Все таблицы БД сохраняются в единственном файле.

• Имеется возможность включения всех таблиц в исполняемый файл приложения.

Основные возможности ядра СУБД

• Максимальное количество полей в одной таблице — 2 млрд.

• Максимальное количество полей, входящих в состав индекса, — 2 млрд.

• Максимальное количество индексов в таблице — 2 млрд.

• Максимальная длина названия поля или индекса — 253 символа.

• Первичные и вторичные индексы с поддержкой чувствительных и не чувствительных к регистру атрибутов, упорядочения по возрастанию и по убыванию.

• Поддержка SQL (SELECT, DISTINCT, ALL, AS, INTO, FROM, NATURAL, INNER, LEFT, RIGHT, FULL, OUTER, GROUP, HAVING, UNION, CORRESPONDING, INERSECT, CREATE, DROP, ALTER, CAST, групповые операции, MIN, MAX, AVG, COUNT).

• Поддержка SQL-скриптов.

• Параметрические запросы.

Советуем обратить внимание на впечатляющие количественные характеристики пакета по числу возможных индексов и полей, хотя с практической точки зрения, скорее всего, имеется некоторая избыточность.

Дополнительные возможности

EasyTable обеспечивает шифрование данных в таблицах с использованием 256-битного ключа. Кроме того, поддерживается быстрое сжатие полей BLOB на лету.

По утверждению разработчиков, механизм поиска данных, интегрированный в пакет, является самым быстрым среди аналогов, а механизмы работы со строками опережают по быстродействию аналогичные стандартные Delphi-процедуры в три раза. Если же учесть такие интересные особенности, как возможность сохранения всех таблиц базы данных в единственном файле или даже в EXE-файле приложения, то можно утверждать, что данный пакет, безусловно, заслуживает внимания.

Состав пакета

В состав EasyTable входят набор компонентов и набор утилит.

Набор компонентов включает:

• TEasyTableDatabase — база данных.

• TEasyTableSession — сеанс.

• TEasyTableTable — таблица.

• TEasyTableQuery — SQL-запрос.

По составу и функциональному назначению компоненты EasyTable аналогичны традиционному набору компонентов для создания приложений баз данных с использованием BDE.

В набор утилит DBISAM входят следующие программы:

• TETManager — основная утилита для администрирования БД, обеспечивающая создание, изменение, оптимизацию, восстановление и другие операции с базой данных и таблицами.

• SQLConsole — предназначена для выполнения SQL-запросов.

• DBTransfer — обеспечивает импорт и экспорт данных между форматами EasyTable и сторонними СУБД посредством BDE-интерфейса.

• Converter — вспомогательная утилита для преобразования таблиц EasyTable старых версий (до 3.00) в новые версии, поддерживающие хранение таблиц в единственном файле.

Все утилиты поставляются с исходными текстами.

Варианты поставок и стоимость

Пакет распространяется в электронном виде через Интернет. С сайта фирмы-производителя можно скачать также пробные версии продукта. Цена пакета сегодня может составлять от 25 (версия без SQL и без исходных текстов) до 1995 долл. (полная версия с исходными текстами).

Подробнее с условиями приобретения продукта можно ознакомиться на сайте фирмы-разработчика.

Техническая поддержка

Техническая поддержка пакета осуществляется разработчиками в форме консультаций по электронной почте, а также по подписке на новости.

В начало В начало

TurboDB

акет TurboDB, созданный немецкой компанией dataWEB (http://www.turbodb.com), представляет интерес не только для разработчиков Windows, поскольку он также может функционировать на платформах Linux и Microsoft .NET.

TurboDB поддерживает версии Borland Delphi 4-7, Borland C++Builder 4-6, Borland Kylix 1-3, Microsoft .NET (все языки).

Основные характеристики

• Компиляция непосредственно в EXE-файл, не требуются DLL-библиотеки и файлы конфигурации; для платформы .NET необходима поставка двух библиотек DLL объемом 1 Мбайт.

• Объем кода, добавляемый к исполняемому файлу, составляет примерно 500-600 Кбайт.

• Многопользовательский доступ.

• Возможность хранения всех таблиц в единственном файле.

• Возможность включения всех таблиц в исполняемый файл.

Основные возможности ядра СУБД

• Максимальное количество записей в таблице — 2 млрд.

• Максимальное количество полей в одной таблице — 1000.

• Максимальное количество индексов в таблице — 16.

• Первичные и вторичные индексы с поддержкой чувствительных и не чувствительных к регистру атрибутов, упорядочения по возрастанию и по убыванию.

• Поддержка SQL (SELECT, GROUP BY, HAVING, UPDATE, DELETE, INSERT, CREATE TABLE, ALTER TABLE, CREATE INDEX, DROP, OUTER JOIN).

• Поддержка SQL-скриптов.

• Параметрические запросы.

• Перечисляемые типы данных в таблицах (данные типа «пол = {мужской, женский}» сохраняются в таблицах в компактном представлении.

• Поддержка UNICODE для строк, MEMO-полей, фильтров и запросов.

Дополнительные возможности

Пакет обеспечивает индексацию и полнотекстовый поиск в базе данных. Интересной и даже уникальной возможностью пакета TurboDB является поддержка специальных типов полей для реализации отношений «один-ко-многим» (так называемые link fields) и «многие-ко-многим» (relational fields), что позволяет не только упростить создание таких связей, но и устранить необходимость создания связующих таблиц для этого типа отношений.

По мнению разработчиков, подобные качества в определенной степени позволяют относить TurboDB к объектно-ориентированным СУБД.

Наличие перечисляемых типов также является достаточно редкой возможностью. В этом случае данные сохраняются в битовом, а не в текстовом представлении, благодаря чему повышается защищенность данных от несанкционированного просмотра. Полная совместимость VCL- и CLX-компонентов обеспечивает возможности создания БД в одной операционной системе и использования ее в другой посредством простой перекомпиляции приложения.

Состав пакета

В состав поставки TurboDB входят набор компонентов и набор утилит.

Набор компонентов включает:

• TTdbDatabase — база данных.

• TTdbTable — таблица.

• TTdbQuery — SQL-запрос.

• TtdbBatchMove — импорт и экспорт данных между форматами TurboDB и сторонними СУБД (через TDataSet), а также форматами CSV и XML.

В набор утилит TurboDB входит универсальная утилита TurboDBViewer, обеспечивающая реализацию всего комплекса функций по работе с базой данных.

Варианты поставок и стоимость

Пакет распространяется в электронном виде через Интернет. На сайте фирмы-производителя можно получить также пробные версии продукта. Стоимость пакета сегодня варьируется от 329 (стандартная версия без SQL на одного пользователя) до 5000 (полная профессиональная версия на 10 пользователей) долл.

Об условиях приобретения продукта можно более подробно узнать на сайте фирмы-разработчика.

Техническая поддержка

Техническая поддержка пакета представляется разработчиками в форме консультаций по электронной почте, а также по подписке на новости.

В начало В начало

VolgaDB

заключение нашего обзора кратко ознакомимся с единственным существующим в настоящее время отечественным пакетом компонентов для создания ТнБД — VolgaDB (http://www.volgadb.com). Пакет представляет собой набор компонентов, реализующий две основные функции: однопользовательский локальный доступ к таблицам собственного формата и клиент-серверный доступ к СУБД других производителей (MS SQL, MS Access, dBASE, ODBC) без использования BDE. Таким образом, он интегрирует качества пакетов-альтернатив BDE 1-го и 2-го типов (см. часть 1 настоящей статьи).

Пакет поддерживает версии Borland Delphi 4-7, Borland C++Builder 4-6.

Подробно останавливаться на всех возможностях данного пакета мы не будем, поскольку информация о нем на русском языке доступна на сайте разработчика. Перечислим только основные возможности VolgaDB в части работы с локальными таблицами (по данным, приведенным на сайте разработчика):

• Защита по паролю с шифрованием.

• Поддержка автоинкрементных полей.

• Проверка нарушения ключа по указанным полям, проверка наличия записей-дубликатов по указанным или по всем полям.

• Загрузка и сохранение файлов в потоке (Stream).

• Поддержка FindFirst, FindNext, FindPrior, FindLast, фильтров, основанных на выражениях.

• Возможность сохранения указателя на внешний объект для каждой записи.

• Сохранение произвольных примечаний внутри Volga-таблиц.

• Операции группировки: суммирование значений поля по всей таблице, получение списка значений поля по условию.

• Экспорт данных в текстовый файл, в DBF-, XML-, XLS-файлы.

• Создание новой таблицы путем группировки (group by) другой таблицы.

• Компонент TVolgaQuery выполняет SQL-запросы по Volga-таблицам, расположенным в одной папке. Синтаксис SQL является подмножеством стандартного ANSI SQL.

• Редактирование, сортировка, range, master-detail, filter для результата запроса, как для таблицы.

• Сached updates, которые можно сохранить в одной исходной таблице.

• Реструктурирование Volga-таблиц во время выполнения.

В состав поставки пакета входят компоненты и утилиты, функциональное назначение которых примерно такое же, что и в вышеописанных пакетах.

По информации разработчика, пакет используется в более чем 30 странах мира. Версия VolgaDB без поддержки SQL распространяется бесплатно, а профессиональная версия с исходными текстами продается по цене 650 руб.

Техническая поддержка пакета осуществляется вполне профессионально, на сайте разработчика функционирует конференция по техническим вопросам.

В начало В начало

Что выбрать

риведенный в данной статье обзор, не претендуя на полноту, охватывает основные существующие в настоящее время пакеты компонентов для создания тонких баз данных. Но даже на основе этого небольшого числа пакетов видно, что, во-первых, все они обладают общими чертами, а во-вторых, практически каждый имеет свои интересные и привлекательные особенности. Выбирать конкретный пакет для работы можно исходя из множества критериев: если это требования по надежности, ODBC-доступу, поддержке сторонними фирмами — можно отдать предпочтение DBISAM; если по быстродействию — EasyTable; по многоплатформенности — TurboDB; по стоимости и наличию русскоязычной поддержки — VolgaDB. Но однозначных рецептов здесь давать нельзя: каждый разработчик имеет возможность бесплатно получить пробные версии описанных пакетов и сделать окончательный выбор после их практического испытания для своих целей.

КомпьютерПресс 8'2003


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует