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.0 | 1981 | CP/M | Первая версия, поддержка до 16 файлов |
| 2.0 | 1983 | MS-DOS | Поддержка многопользовательского доступа |
| 3.0 | 1985 | MS-DOS | Улучшенная производительность, поддержка до 32 файлов |
| 4.0 | 1987 | MS-DOS, NetWare | Интеграция с Novell NetWare |
| 5.0 | 1990 | MS-DOS, NetWare | Поддержка транзакций, блокировок |
| 6.0 | 1995 | Windows, NetWare | 32-битная версия, Pervasive.SQL |
| 7.0 | 1998 | Windows, Linux | Поддержка Unicode, JDBC/ODBC |
| 8.0 | 2002 | Windows, Linux | Улучшенная производительность, поддержка XML |
| 9.0 | 2006 | Windows, Linux, macOS | Поддержка 64-битных систем |
| 10.0 | 2010 | Windows, Linux, macOS | Actian 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
- Platinum SQL — бухгалтерская система.
- MAS 90 — система управления предприятием.
- Timberline — система управления строительством.
- Sage 100 — бухгалтерская система (ранее MAS 90).
Критика и ограничения
Недостатки
- Отсутствие 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 →