Подсистема хранения (англ. database engine, storage engine) — компонент СУБД, управляющий механизмами хранения баз данных, или библиотека, подключаемая к программам и дающая им функции СУБД[1].

В случае СУБД подсистема хранения отвечает за размещение баз данных (как правило, в файлах) и организацию конкурентного доступа к ним. Обычно СУБД позволяют манипулировать данными и структурами БД с помощью языка SQL, при этом интерпретатор языка SQL обычно является компонентом СУБД, а не подсистемы хранения.

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

В некоторых СУБД подсистема хранения неотделима от неё самой, но ряд подсистем могут встраиваться или подключаться к разным СУБД. Существуют СУБД, которые позволяют одновременно использовать несколько подключаемых подсистем хранения, таковы, например, системы семейства MySQL (MariaDB, Percona Server[en]), в которых можно подключить InnoDB, MyISAM, XtraDB, Falcon[en], Aria, TokuDB[en], MyRocks (на основе RocksDB[en]) и некоторые другие. Подключённая подсистема хранения определяет функциональные возможности СУБД в целом, например, XtraDB и InnoDB в сравнении с MyISAM добавляют поддержку транзакций по принципам ACID и внешних ключей, а NDB Cluster[en] — распределение хранимых данных по нескольким узлам.

Некоторые другие известные подключаемые подсистемы хранения: DBM (ключ — значение), SQLite (обычно рассматривается как встраиваемая СУБД, но часто используется только в качестве подсистемы хранения), Microsoft Jet[en] (используется в Microsoft Access, но доступна как отдельно подключаемая подсистема).

Примечания править

  1. database engine Definition from PC Magazine Encyclopedia. Дата обращения: 2 октября 2017. Архивировано 27 ноября 2016 года.

Литература править