Btrieve — система управления базами данных для организации , а с версии Pervasive.SQL — и реляционных баз данных, разрабатываемая компанией . Основана на методе организации данных ISAM. Существовало несколько версий этого продукта для DOS, Linux, Novell NetWare, старых версий Microsoft Windows (Windows 98, Windows NT, Windows 2000, Windows XP, Windows Server 2003).

Первоначально это был менеджер записей, выпущенный компанией SoftCraft приблизительно в то же время, что и первые IBM PC. После завоевания популярности и доли рынка он был выкуплен компанией Novell для интеграции в её операционную систему Netware, с одновременным развитием версии для MS-DOS. Этот продукт не смог завоевать сколь-либо значительный рынок и после некоторой реорганизации внутри Novell был выделен для разработки в рамках отдельной, вновь созданной, компании — Btrieve Technologies, Inc. (BTI).

Начиная с версии 6.15 Btrieve был разделён на отдельные модули, а само название закрепилось за одним из двух средств доступа к данным, подключённых к стандартному программному интерфейсу, получившему название Micro-Kernel Database Engine (MKDE). Второй вариант подсистемы доступа — Scalable SQL — средство работы с реляционными базами данных, использующее язык SQL. После выпуска нескольких версий компания была переименована в Pervasive Software, и сейчас она поставляет этот продукт под названием Pervasive PSQL.

Архитектура

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

Поздние версии Btrieve поддерживают два вида транзакций: системные и пользовательские, первые являются пакетами нетранзакционных операций или пользовательских транзакций, которые, в свою очередь, являются транзакциями над реальными данными в базах. Механизм системных транзакций был создан для возможности исполнения нескольких транзакций в одном пакете и большей простоты восстановления данных.

Файлы формата Btrieve состоят из страниц, которые и являются порциями данных, передаваемыми между оперативной памятью и долговременным хранилищем в процессе операций ввода-вывода, выполняемых ядром СУБД. В версиях до 6.0 использовались только страницы данных, индексов и специальная запись FCR (), содержащая важную информацию о файле базы данных (размер страницы, число использованных страниц и т. п.). Такой файл содержал поисковый индекс, привязанный к физическим страницам. Начиная с версии 6.0 было введено понятие логической страницы, а уже эти страницы отображались на физические страницы, имеющие фиксированное положение в файле, на накопителе. Отображение осуществляется посредством таблиц распределения страниц PAT (). Для предотвращения нарушений логической целостности в файлах БД Btrieve использует два подхода к обновлению зависей: pre-image paging в версиях до 6.0 и shadow paging в последующих. Переход от pre-image paging к shadow paging потребовал существенной перестройки, которая привела к кардинальному изменению формата файлов и утрате совместимости между 6-й версией и предыдущими.

При доступе к файлам ядро СУБД может использовать две стратегии, сокращённо именуемые SEFS и MEFS, от . SEFS подразумевает, что с файлами будет работать только один экземпляр ядра СУБД, в то время как MEFS позволяет нескольким независимым экземплярам работать с одними и теми же файлами одновременно (причём каждое такое ядро будет обслуживать собственных пользователей).

История

Btrieve на протяжении своего развития находилась в собственности и разработке у трёх различных компаний: SoftCraft, Novell and Btrieve Technologies, Inc. (позже переименована в Pervasive Software). Все они имели верных и преданных разработчиков и, судя по фирменной литературе, остались полностью приверженными этому продукту. В своё время Pervasive основало «Btrieve-сообщество», чтобы организовать существующих разработчиковhttp://www.btrievesociety.com (ныне ликвидировано, прим. переводчика, 2010 г.).

Под MS-DOS, вплоть до версии 5, Btrieve была TSR-программой, функционировавшей как интерфейс прикладного программирования (API) к ядру СУБД, обеспечивающий прикладные программы набором функциональных вызовов для реализации многопользовательской БД с возможностью блокировки на уровне записей. Сетевая версия функционировала аналогичным образом.

В ранний период, MS-DOS версии СУБД, вплоть до версии 5, продавались по относительно высокой цене — приблизительно $1000, однако исполняемая TSR-программа, обеспечивающая работу с БД, могла распространяться с готовыми приложениями без лицензионных отчислений.

SoftCraft-период Продукт был выпущен в феврале 1982 компанией SoftCraft, находящейся в Остине (Техас), под руководством Дуга и Нэнси Вудвард (). Дуг стал вице-президентом и руководил разработкой, а Нэнси — президентом компании. Они выпустили несколько версий в течение последующих нескольких лет: в феврале 1983 выпущена Btrieve 2.x, а когда MS-DOS 2.x получила поддержку дескрипторов для файлов и каталогов, — была выпущена версия Btrieve 3.0. После стандартизации внутренних интерфейсов в MS-DOS 3.1, произошедшего в марте 1985, через месяц была выпущена Btrieve 3.1 C/S, с поддержкой сети и архитектуры клиент/сервер. В феврале 1986 была выпущена Btrieve 4.0, и после её обновления, в версии 4.1 появилась поддержка для расширенных типов ключей и дополнительных индексов.

Хотя Btrieve была весьма популярна, она оставалась всего лишь ядром СУБД и API к нему, в то время как «приложение-убийца» среди СУБД для PC, dBase II и его последователи, было настоящей СУБД, которая могла использоваться и как отдельное приложение общего назначения, и как язык программирования. Btrieve также была существенно дороже, чем dBase, хотя не требовала лицензии для каждого отдельного пользователя готового приложения. Таким образом сообщество разработчиков Btrieve достигло 5000 пользователей, и она широко распространилась в финансовой сфере. После этого компании потребовалось некоторое время на создание пользовательского интерфейса к своему продукту, тем не менее в 1984 они выпустили программу Xtrieve, имеющую интерфейс на основе меню и использующую словарь данных в виде файлов с расширением .DDF, вводящий правила свойственные реляционным БД.

Покупка компанией Novell

В 1987 Novell начала диверсификацию и скупку разнообразных компаний для включения их продуктов в свою ОС NetWare. Одной из этих компаний стала SoftCraft. Нэнси Вудвард стала вице-президентом и генеральным менеджером вице-президент по работе в Остине, а Дуг Вудвард — вице-президентом Advanced Database Technologies. В начале следующего года была выпущена Btrieve 5.0, способная работать как «родное» приложение для NetWare (или VAP, от ). По словам Джима Кайла (): «она имела автоинкрементный тип данных для ключей, сетевой сервис BROUTER, отдельные типы файлов для данных и для ключей, и возможность компрессии данных». Версия 5.1, выпущенная в 1990, получила улучшенные возможности по управлению файловыми транзакциями, журналированию и последующему «накатыванию» совершаемых действий, все это совместно с некоторым улучшением API. Некоторые версии были выпущены для DOS, OS/2 и Microsoft Windows. Версия 6.0 была выпущена в 1992, однако Novell не приложила усилий к её широкому продвижению, и вследствие внесённых в неё улучшений, таких как переход с pre-imaging на shadow-paging, — оказалась несовместима с предыдущими версиями Btrieve. Рынок принял эту версию прохладно, увеличения доли рынка не произошло, и массового перехода с предыдущих версий — тоже (вследствие вышесказанного).

На момент приобретения Novell-ом, SoftCraft занималась продуктом под рабочим названием XQL, являвшимся интерпретатором языка SQL, предназначенным для улучшения совместимости с промышленным стандартом SQL, которому Xtrieve удовлетворял лишь частично. Этот продукт стал основой для NetWare SQL, первая версия которого была выпущена в 1989, и стала «скелетным» воплощением SQL-интерпретатора, реализующим основу IBM-варианта языка SQL.

Btrieve Technologies, Inc.

К 1994 г. Novell почти отказалось от попыток сделать NetWare полноценной операционной системой, альтернативной существовавшим в то время, и начала распродажу компаний, приобретённых лишь несколько лет назад. Также, они смогли выполнить лишь минимальное рыночное продвижение Btrieve, в основном из-за длительного времени затраченного на выпуск шестой версии (24 месяца). Между Вудвардами и Novell было заключено соглашение, и после двух лет Novell объявила (26 января 1994 г.), что она собирается передать право на владение Btrieve компании Btrieve Technologies, Incorporated (также известной как BTI). 29 апреля 1994 г. передача была завершена, Нэнси Вудвард стала председателем BTI (), а Дуг Вудвард — техническим директором. Должность исполнительного директора была отдана Рону Харрису (), бывшему сотруднику Texas Instruments, одному из основателей и сотрудников Citrix Systems, Inc., в которой он сначала был директором по стратегическому планированию, позже — вице-президентом по маркетингу, и в конце концов вице-президентом по товарным группам ().

Btrieve была полностью переписана, и 1 июля 1994 г была выпущена Btrieve 6.15 для DOS, Windows и OS/2. Novell SQL был переименован в Scalable SQL для соответствия изменениям в юридических отношениях между компаниями. В 1995 г. Btrieve 6.15 была выпущена для Windows NT Server и Windows NT/95, таким образом став кроссплатформенным СУБД продуктом. Концепция микроядерного механизма построения СУБД (MKDE) появилась именно в этой версии.

Pervasive Software

В 1996 г. компания была переименована в Pervasive Software, а её продукт в Pervasive.SQL. В 1997 г. компания стала публичной (то есть выпустила свои акции в свободное обращение). Все это было сделано для большего проникновения на рынок реляционных СУБД и позиционирования себя как поставщика SQL-решений, хотя они продолжали разрабатывать и продавать Btrieve. Компания завершила своё IPO в сентябре. Версия 6.30 продолжала использовать архитектуру MKDE. В 1997 Pervasive выпустила реляционный продукт ScalableSQL 4.0, а также Btrieve 7.0.

В 2000 г Novell подверглась критике после того как перестала поставлять Pervasive.SQL вместе с NetWare (начиная с версии NetWare 5.1). Вместо этого поставлялась пробная версия которая прекращала функционировать через 90 дней. Последняя версия, Pervasive PSQL Summit v10, была выпущена в октябре 2007 года. Согласно официальному сайту Pervasive ещё разрабатывается

Версии

Серия Btrieve

Btrieve для DOS Существовала одна клиентская () конфигурация Btrieve для DOS, созданная в SoftCraft. Их фирменное определение понятия «клиентский» звучало так: «Ядро Btrieve, исполняющееся на отдельной рабочей станции». То есть ядро менеджера записей взаимодействовало с файлами данных напрямую, через вызовы операционной системы, и изменяло записи единообразно, вне зависимости от того, находились ли файлы локально или на сетевом ресурсе. Такое «клиентское» ядро позволяло одновременно работать с БД пяти конкурирующим пользователям. Все манипуляции с записями проводились локально, на той рабочей станции, на которой работало ядро СУБД. Btrieve для DOS могла использовать обе стратегии совместного доступа к файлам (SEFS и MEFS).

Btrieve для Netware