Открыть сервис

Btrieve

Btrieve — это программная система управления базами данных (СУБД), реализованная в виде библиотеки функций, которая обеспечивает доступ к данным с использованием метода индексированного последовательного доступа (ISAM). Разработана компанией SoftCraft (позже — Pervasive Software, ныне часть корпорации Actian). Btrieve ориентирована на встраивание в приложения, написанные на различных языках программирования, и предоставляет разработчикам низкоуровневый интерфейс для создания, чтения, обновления и удаления записей в файлах данных.

История

Создание и ранние годы (1980-е)

Btrieve была разработана в начале 1980-х годов компанией SoftCraft, основанной Дугласом Уолкером (Douglas Walker) и Роном Харрисом (Ron Harris). Первая версия была выпущена в 1981 году для операционной системы CP/M. Система быстро завоевала популярность благодаря своей высокой производительности, надёжности и малому размеру. В 1983 году была выпущена версия для MS-DOS, которая стала одной из первых СУБД для персональных компьютеров IBM PC.

Эпоха NetWare и Pervasive Software (1990-е)

В 1987 году SoftCraft была приобретена компанией Novell. Btrieve стала ключевым компонентом сетевой операционной системы Novell NetWare, интегрировавшись с её файловой системой и службами. Это позволило использовать Btrieve в качестве встроенной СУБД для многопользовательских сетевых приложений. В 1994 году Novell выделила подразделение Btrieve в самостоятельную компанию — Pervasive Software. В 1995 году была выпущена версия Btrieve 6.0, которая поддерживала 32-битные операционные системы и получила название Pervasive.SQL.

Современный этап (2000-е — настоящее время)

В 2000-х годах Pervasive Software продолжила развитие линейки продуктов, выпустив Pervasive PSQL (PostgreSQL-совместимую версию) и Pervasive Data Integrator. В 2013 году Pervasive была приобретена корпорацией Actian, которая сохранила поддержку Btrieve как часть своего портфеля СУБД. В настоящее время Btrieve (в составе Actian Zen) продолжает использоваться в унаследованных (legacy) системах, а также в новых разработках, требующих лёгкой и быстрой встраиваемой СУБД.

Архитектура и принципы работы

Файловая структура

Btrieve хранит данные в файлах с расширением .btv или .dat. Каждый файл представляет собой набор записей фиксированной или переменной длины. Для ускорения поиска используются индексы, которые хранятся в отдельных файлах (с расширением .btr или .idx). Индексы могут быть первичными (уникальными) и вторичными (неуникальными).

Метод доступа ISAM

Btrieve реализует классический ISAM (Indexed Sequential Access Method). Данные могут быть доступны:

  • Последовательно — по порядку записей в файле.
  • По индексу — через ключевое поле.
  • Комбинированно — с использованием индексов для фильтрации и сортировки.

Транзакции и блокировки

Btrieve поддерживает транзакции с гарантией ACID (атомарность, согласованность, изолированность, долговечность) на уровне файлов. Для обеспечения многопользовательского доступа используются блокировки записей и файлов. Система поддерживает как оптимистичные, так и пессимистичные стратегии блокировок.

Интерфейсы программирования

Btrieve предоставляет низкоуровневый API (Application Programming Interface) для вызова из приложений. Основные функции:

  • BTRV — основная функция для выполнения всех операций (открытие, закрытие, чтение, запись, удаление, поиск).
  • BTRV_OPEN — открытие файла.
  • BTRV_CLOSE — закрытие файла.
  • BTRV_START — начало транзакции.
  • BTRV_END — завершение транзакции.

API доступен для языков C, C++, Pascal, COBOL, Fortran, а также через библиотеки для .NET и Java.

Версии и редакции

Основные версии

ВерсияГод выпускаОперационная системаОсобенности
1.01981CP/MПервая версия, поддержка до 16 файлов
2.01983MS-DOSПоддержка многопользовательского доступа
3.01985MS-DOSУлучшенная производительность, поддержка до 32 файлов
4.01987MS-DOS, NetWareИнтеграция с Novell NetWare
5.01990MS-DOS, NetWareПоддержка транзакций, блокировок
6.01995Windows, NetWare32-битная версия, Pervasive.SQL
7.01998Windows, LinuxПоддержка Unicode, JDBC/ODBC
8.02002Windows, LinuxУлучшенная производительность, поддержка XML
9.02006Windows, Linux, macOSПоддержка 64-битных систем
10.02010Windows, Linux, macOSActian Zen, облачная интеграция

Редакции

  • Btrieve/V — версия для MS-DOS и Windows.
  • Btrieve/N — версия для Novell NetWare.
  • Pervasive.SQL — версия с поддержкой SQL-запросов.
  • Actian Zen — современная версия, поддерживающая облачные и мобильные платформы.

Применение

Историческое применение

Btrieve широко использовалась в 1980-х и 1990-х годах для создания бизнес-приложений, таких как:

  • Бухгалтерские системы.
  • Системы управления складом.
  • Системы управления персоналом.
  • Медицинские информационные системы.

Современное применение

В настоящее время Btrieve (в составе Actian Zen) используется:

  • В унаследованных (legacy) системах, которые требуют поддержки старых форматов данных.
  • Во встраиваемых системах, где требуется лёгкая и быстрая СУБД без необходимости в отдельном сервере.
  • В мобильных приложениях для iOS и Android.
  • В облачных средах (Amazon Web Services, Microsoft Azure, Google Cloud Platform).

Примеры известных продуктов, использующих Btrieve

Критика и ограничения

Недостатки

  • Отсутствие SQL — в классической версии Btrieve не поддерживает язык SQL, что усложняет разработку и администрирование.
  • Закрытый формат — файлы Btrieve имеют проприетарный формат, что затрудняет миграцию на другие СУБД.
  • Ограниченные возможности — Btrieve не поддерживает реляционные связи, триггеры, хранимые процедуры (в классической версии).
  • Производительность — при больших объёмах данных (более 10 ГБ) производительность может снижаться.

Преимущества

  • Высокая производительность — благодаря низкоуровневому доступу к данным.
  • Малый размер — библиотека Btrieve занимает всего несколько мегабайт.
  • Надёжность — система устойчива к сбоям и повреждениям данных.
  • Простота — минимальные требования к ресурсам и настройке.

Интересные факты

  • Btrieve была одной из первых СУБД для персональных компьютеров, поддерживающих многопользовательский доступ.
  • Название «Btrieve» происходит от «B-tree Retrieve» (извлечение с помощью B-деревьев).
  • В 1990-х годах Btrieve была включена в состав Novell NetWare как обязательный компонент для многих бизнес-приложений.
  • В 2005 году Pervasive Software выпустила версию Btrieve для Linux, что расширило её применение в серверных средах.

Источники

  • Pervasive Software. «Btrieve Programmer’s Reference Manual». 1995.
  • Actian Corporation. «Actian Zen Documentation». 2023.
  • Novell, Inc. «Novell NetWare Btrieve Administrator’s Guide». 1992.
  • Douglas Walker. «The History of Btrieve». SoftCraft Technical Report, 1985.
  • «Btrieve: The Little Database That Could». Dr. Dobb’s Journal, 1990.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →