Btrieve

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-сообщество», чтобы организовать существующих разработчиков.

Под 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 
Btrieve для Netware, по существу, была той же Btrieve для DOS с некоторыми дополнительными возможностями, доступными в то время только на Netware. На файловом сервере запускался процесс BSERVER, и файловый серевер начинал управлять операциями ввода-вывода данных БД, одновременно продолжая предоставлять сетевую файловую систему. Первоначально серверный процесс был реализован как Netware Value Added Process (VAP) под именем BSERVER.VAP, но вскоре был переделан в NetWare Loadable Module (NLM). В основном BSERVER был ядром СУБД, отвечающим за обеспечение доступа к записям, но кроме этого он ещё принимал [и исполнял] запросы на передачу данных другим серверам. Эти запросы поступали через отдельный процесс
называвшийся BROUTER.

Для передачи запросов ввода-вывода данных из/в БД, на клиентских рабочих станциях использовались т. н. реквесторы (), доступные для DOS, OS/2, Microsoft Windows и UnixWare. Программа BREQUEST.EXE
принимала запросы через Btrieve API и перенаправляла их сервису BSERVER, а после этого обрабатывала ответ BSERVER и перенаправляла его обратно, соответствующему приложению.

Процесс BROUTER позволял перенаправлять поступающие запросы на другой сервер, содержащий копию БД. Он загружался
на сервере Netware и занимался коммуникациями между серверными процессами, запущенными на файловом сервере, руководствуясь при этом
двумя FST-таблицами (). В соответствии с документаций Pervasive, эти таблицы содержат
список имён и адреса серверов, и таблицу маршрутизации серверов SRT ().
Помимо этого, BROUTER мог перенаправлять коммуникационные запросы на соответствующий сервер по SPX, через BSPXCOM, и занимался координацией блокировок и прочих механизмов, контролирующих доступ к данным в БД.

Btrieve для Netware использовала те же стратеги SEFS и MEFS для совместного доступа к файлам, что и под DOS,
но поскольку могла функционировать в сети, то могла поддерживать как эксклюзивные, так и конкурирующие транзакции.

Btrieve для Windows 
Btrieve для Windows появилась до того, как компания переписала основной код СУБД с использованием MKDE. В ней использовались SEFS и MEFS механизмы совместного использования файлов, механизм shadow-paging, эксклюзивные и конкурирующие блокировки. Файлы версий 6.x и 6.1 обрабатывались различным образом: в файлах версии 6.x возможно было оперировать фрагментами записей, вместо блокировки всей записи целиком; допускались записи более 64KB; были реализованы variable-tail allocation table (VAT), Alternate Collating Sequence (ACS) и новые типы данных; разрешались долевые операции (операции деления?) () (в которых записи могли быть найдены и обработаны по своему физическому местонахождению в файле); разрешались дублирующиеся поисковые ключи. В версии 6.x появилась возможность добавлять и удалять любые индексы «на лету» (до версии 6.0 включительно удалять можно было только дополнительные индексы). Файлы версии 6.1 поддерживали конкурентные и системные транзакции; возможность перенумерации ключей; нечувствительные к регистру ACS-таблицы и усовершенствованные операции блокировок.

Btrieve для Windows могла работать как клиент БД использующей SEFS или MEFS режимы, или могла напрямую работать с сервером Btrieve.

Клиентский Btrieve 

Для клиентской Btrieve все файлы БД находились либо на локальном компьютере, либо на сетевом диске, подключённом в этому компьютеру (посредством DOS команды NET USE).

Приложение выполняло вызовы функций библиотеки WBTRCALL.DLL, являвшейся интерфейсом к загрузчику/реквестору.
Модуль загрузчика/реквестора проверял конфигурационный файл BTI.INI на предмет корректной настройки для загрузки
клиентского ядра Btrieve, и в свою очередь загружал локальный интерфейс к ядру Btrieve, библиотеку WBTRLOCL.DLL.
При необходимости этот локальный интерфейс загружал в оперативную память ядро Btrieve (WBTR32.EXE) и
начинал передавать ему запросы к БД. Для доступа к файлам БД, ядро СУБД пользовалось вызовами разнообразных системных библиотек
Win32

Доступ из клиентского Btrieve к серверному 
Клиентская версия Btrieve для Windows могла обращаться к серверной через специальный реквестор для DOS. Этот реквестор требовал
использования DPMI (DOS Protected Mode Interface), который обеспечивал программы доступом к расширенной памяти, доступной только через защищённый режим процессоров x86.

Также как и в случае клиентского интерфейса, Btrieve приложение выполняло вызов к библиотеке WBTRCALL.DLL, которая
проверяла BTI.INI, чтобы определить где находится БД, на локальной системе или на удаленном сервере. Если было необходимо работать с удаленным сервером, она использовала Windows версию DPMI для доступа к реквестору BREQUEST.EXE, запущенному под DOS, который уже и устанавливал сетевое соединение с сервером, обрабатывающим запросы к БД и возвращающим ревестору сообщение по завершении их обработки.

Btrieve для Windows NT/Windows 95 
Btrieve для Windows NT и Windows 95 была выпущена в 1995 году, вместе с Btrieve для Netware и для Windows NT Server.
Номер версии достиг 6.15 и началось использование микроядерной акрхитектуры (MKDE). Механизмы совместного использования файлов остались те же (SEFS и MEFS); использовалось shadow-paging, поддерживались эксклюзивные и конкурирующие блокировки.
Эта версия Btrieve разрешала использование null для ключей, что позволяло вносить записи в БД даже если ключевая информация отсутствует. Такие ключи не участвовали в индексировании, что сокращало бесполезный поиск по индексу в БД.
В этой же версии была введена концепция системных транзакций и пользовательских транзакций. . MKDE разрешало разрывы между автоинкрементными ключами. Variable-tail allocation tables появились в версии 6.15, таким образом они были включены в сборку Btrieve для Windows NT/95.

Существовало две конфигурации Btrieve для Windows NT/95: standalone workstation и client/server.

Standalone Workstation 

При использовании standalone workstation конфигурации Btrieve, вся обработка записей производилась на локальной рабочей станции,
полагаясь на локальные механизмы Windows, пользуясь которыми MKDE (W32MKDE.EXE) получало доступа к файлам БД и
накладывало файловые блокировки, для синхронизации параллельных операций.

В такой конфигурации приложение выполняло вызовы к Btrieve API или интерфейсу микроядра (WBTRV32.DLL), а этот интерфейс
передавал запросы самому MKDE (W32MKDE.EXE), которое уже напрямую работало с файлами БД средствами файловой системы (локальной или сетевой).

Однако такой подход имеет неприятные побочные следствия. Если Btrieve использует сетевой механизм Windows, а ядро СУБД открывает
файлы напрямую с сетевого ресурса, и возникает сбой локальной сети, в процессе обновления полей связывающих файлы Btrieve (или просто отключается сетевой кабель), может наступить рассинхронизация, нарушатся связи между данными (потеряются или будут установлены неправильно), и файлы БД будут испорчены. (Хотя вероятность этого и уменьшается технологией pre-image paging.)

Client/Server 

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

Под Windows 95, интерфейс MKDE (Windows DLL WBTRV32.DLL) в действительности определяет способ доступа к БД через конфигурационный файл.
Если он обнаруживает, что на компьютере установлены оба варианта ядра СУБД (клиент/сервер и standalone workstation), то производится проверка, какой из них предписано использовать. При работе под Windows NT, если одновременно запущены серверный процесс NTMKDE.EXE и процесс от standalone workstation (W32MKDE.EXE), указание на использование того или другого должно быть сделано в реестре. В обоих случаях, если интерфейсу MKDE указано использовать режим standalone workstation, он будет использовать W32MKDE.EXE для прямого доступа к файлам.
Если же указано использовать режим сервера, то MKDE-интерфейс на клиенте будет использовать отдельный коммуникационный модуль (W32BTICM.DLL Windows 95 , NTBTICM.DLL на Windows NT) который будет взаимодействовать с сервером. Сам сервер имеет свой собственный коммуникационный модуль (опять W32BTICM.DLL или NTBTICM.DLL), находящийся на отображённом сетевом диске.
Далее, серверная DLL взаимодействует с серверным MKDE (NTMKDE.EXE), которое обновляет записи и возвращает клиенту подтверждение об успешном завершении, через тот же коммуникационный модуль.

Переимущества такого подхода в том, что при сбое локальной сети, MKDE на сервере способно обнаружить это и более аккуратно выполнить восстановление, чем в конфигурации standalone workstation.

Конфигурирование 
Btrieve включает утилиту для настройки параметров MKDE. Следующие параметры могут быть настроены:

 File settings: в этой категории находятся настройки относящиеся к файлам, дескрипторам файлов, блокировкам записей, индексам и журналированию. Здесь можно установить максимальное количество открытых файлов доступных системе и число блокировок записей доступных одному клиенту; установить балансировку индексов и задать опцию создания файлов в форматах предшествовавших 6.x; здесь же устанавливается будет ли микроядро вести журнал действий над выбранными файлами. В этом разделе выбирается механизм совместного использования файлов (MEFS или SEFS). Пункт «system transaction» содержит ограничение, устанавливающее количество системных транзакций выполняемых в процессе операции записи в совместно-используемые файлы.
 Memory organisation: — эта категория содержит настройки размеров буферов, резервируемых микроядром для различных нужд.
 Client/System transactions: — здесь находятся настройки параметров транзакций, включая количество поддерживаемых транзакций, где и как они будут записаны в журнал [транзакций? аудита?].
 System resources/directories: — здесь содержатся настройки количества обслуживаемых клиентов и поддерживаемых потоков, а также места размещения различных системных файлов.
 Trace operations: — содержит настройки трассировки для различных операций выполняемых Btrieve. (Трассировка — продвинутая функциональность, полезная в основном для отладочных целей.)

Серия Pervasive.SQL

Pervasive.SQL 7 
Pervasive SQL 7 был выпущен в марте 1998 и включал в себя Scalable SQL 4 и Btrieve 7.0. Btrieve 7.0 запускалась на тех же платформах,
что и Btrieve 6.x: Windows 95, Windows NT 3.51 & 4, Netware и DOS. Тем не менее компания изменила компонентную архитектуру
именуемую SmartComponents для решения вопросов совместимости при переходе на новую версию. Она использовала схему идентификации компонентов с одновременным указанием идентификатора внутри файла и кодированием в его имени, совместно с динамическим связыванием «склеивающих модулей» (DLL загружаемых в память только при необходимости в них). Динамическое связывание компонентов выполнялось с применением нового подхода, «Abstract OS Services DLL», в соответствии с которым выбиралась самая последняя версия необходимого компонента, посредством информации закодированной в его имени файла. Далее, этот «склеивающий модуль» загружался в память и начинал использоваться.
Старый формат файла журнала событий, существовавший в Btrieve 6.x, был заменён новым централизованным журналом
PVSW.LOG, имеющим усовершенствованный и унифицированный формат. Также были улучшены сами сообщения об ошибках и
механизм их порождения.

MKDE сохранилось в Pervasive.SQL 7. Тем не менее, его внутренняя архитектура изменилась, вследствие появления новой архитектуры
динамического связывания компонентов. Приложение использующее Btrieve вызывало специального сервис-менеджера, который искал в
различных, указанных в конфигурации, каталогах файлы с именами определённого формата.
Вот определение шаблона для имён этих файлов в формате BNF:

 <filename> ::= <platform-code> "BIF" <major-functional-level> <minor-functional-level>
 <platform-code> ::= "W1" | "W2" | "W3" | "W9" | "WT" | "NW" | "O3"
 <major-functional-level> ::= <number>
 <minor-functional-level> ::= <number> <number>
 <number> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

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

Pervasive.SQL 2000/2000i 
Pervasive.SQL 2000 и 2000i используют по существу ту же архитектуру, что и Pervasive.SQL 7, но 2000i и включает дополнительный сервер i*Net (видимо — веб-сервер). Используется та же компонентная модель, позволяющая использовать оба механизм доступа к данным, и Btrieve и Scalable SQL; продолжается использоваться архитектура MKDE. Эта версия включает поддержу Red Hat Linux, Caldera OpenLinux, SUSE и Solaris. Также была улучшена интеграция с Terminal Services, хотя возможно запускать только один экземпляр ядра СУБД на любой платформе. То есть невозможно запустить отдельные копии СУБД в двух или более терминальных сеансах.

Pervasive.SQL V8 
Представленный в декабре 2002 г. Pervasive.SQL V8 имеет улучшенные характеристики производительности для приложений использующих любой
из механизмов доступа (Btrieve или SQL), что достигнуто использованием нескольких новых технологий:

 Кеширование данных на стороне клиента существенно повышает производительность чтения, благодаря динамической поддержке на локальном компьютере клиента фрагментов БД.
 Механизм Turbo Write Acceleration (TWA) группирует операции записи в пакеты, что минимизирует обращение к диску.
 Механизм журналирования транзакций обеспечивает несколько меньшую устойчивость к сбоям, по сравнению с гарантированной записью на диск, однако улучшает общую производительность.

Пакет обновлений V8 Security Feature Pack (выпущенний как промежуточное обновление до версии 8.5) внёс важные изменения
в модель безопасности, направленные на ограничение доступа к файлам данных. До версии 8.5 доступ к данным Btrieve контролировался
механизмами безопасности ОС, что означало буквально: «Пользователь осуществляющий чтение/запись данных, должен иметь доступ
на чтение/запись к соответствующим файлам с данными». В новой версии реализована новая модель безопасности, позволяющая
администратору контролировать доступ к данным Btrieve используя собственный механизм разграничения доступа СУБД. После активации
нового механизма, пользователь более не нуждается в доступе к файлам данных. В дополнение, конфигурации с архитектурой клиент/сервер
более не нуждались в использовании общих сетевых ресурсов или их отображении в виде виртуальных дисков.
Теперь приложения могли ссылаться за защищённые данные Btrieve посредством URI-строк соединения.

Серия Pervasive PSQL

Pervasive PSQL v9 
Pervasive PSQL v9 включает новый Java GUI, на основе Eclipse, доступный как для Microsoft Windows,
так и для Linux. Также, v9 содержит множество обновлений SQL, как по части производительности, так и по части синтаксиса,
способствующих повышению скорости и улучшению функциональности всех средств доступа, использующих SQL — ADO.Net, JDBC, ODBC и OLE DB.
И в заключение, PSQL v9 увеличивает максимальный размер файла БД с 64GB, в 8.x и более ранних версиях. до 128GB в 9.0 и 256GB в 9.5.

Совместно с выпуском PSQL v9, была вновь релизована утилита DDF Builder, а кроме того добавлена поддержка полнотекстового поиска, обеспечиваемая дополнением Full Text Search (FTS) (позже, однако, исключённым из продуктовой линейки). DDF Builder предоставляет
возможность пользователям Btrieve задать метаданные для существующих файлов формата Btrieve, чтобы сделать их доступными для SQL утилит.

Все версии MKDE сохраняют обратную совместимость с предыдущими версиями Btrieve на уровне чтения данных. В том числе поддерживаются
версии выпущенные до появления MKDE, и формат файла не изменяется до тех пор, пока это специально не запрошено. Однако, файлы от версий 5.x и более ранних должны быть перестроены заново, в формат версии 6.x или более поздней, для обеспечения возможности
их изменения ядром СУБД версии 9.0 или более поздней. Перестройка выполняется из графического интерфейса или консольной командой Rebuild.

Pervasive PSQL v10

Pervasive PSQL v11

Pervasive PSQL v12

Pervasive PSQL Vx

Pervasive PSQL и сопутствующие продукты 
В настоящее время Pervasive поставляет набор дополнительных продуктов, расширяющих базовые возможности СУБД PSQL.

 Pervasive AuditMaster предоставляет средство аудита всех взаимодействий с БД в реальном времени, как через Btrieve, так и посредством SQL. Журнал действий над данными можно просмотреть, чтобы отследить изменения чувствительных данных. Также он может порождать события-предупреждения, информирующие соответствующих сотрудников или запускающие связанные с этим событием процессы.
 Pervasive Backup Agent — обеспечивает непрерывное функционирование PSQL, позволяя ПО резервного копирования выполнять копирование работающей БД.
 Pervasive DataExchange — осуществляет синхронизацию и репликацию данных между двумя и более инсталляциями PSQL, обеспечивая постоянную доступность критических данных.

Примечания

Ссылки 
 Pervasive Software Inc. — производитель Btrieve и PSQL
 Btrieve Society — сообщество Btrieve (по состоянию на январь 2010 — отсутствует)
 comp.databases.btrieve — Группа новостей посвящённая Btrieve
 Pervasive Software online manuals — документация по программному обеспечению Pervasive Software, доступная online
 Novell. Components of NetWare Btrieve. По состоянию на 12 декабря 2004 г.
 Pervasive (2004). Btrieve past, present and future: Remember when Btrieve rocked the database world?. Страница об истории компании.
 Pervasive (March 2001). Pervasive.SQL 2000i: Getting Started (Server Edition). Руководство по продукту.

СУБД
Программное обеспечение Novell
История программного обеспечения
Программное обеспечение для MS-DOS
Кроссплатформенное программное обеспечение