Я несколько раз просматривал определение на http://en.wikipedia.org/wiki/Database_engine :
Механизм базы данных (или «механизм хранения») является базовым программным компонентом, который система управления базами данных (СУБД) использует для создания, чтения, обновления и удаления (CRUD) данных из базы данных.
Что я не понимаю, так это то, что осталось сделать, разве CRUD не все, что делают базы данных?
Если механизм базы данных выполняет эти функции, что делает остальная часть базы данных?
Ответы:
CRUD предназначен для определения характеристик, необходимых для базы данных применительно к постоянному хранилищу. Он не предназначен для описания всего, что может быть сделано с помощью механизма базы данных.
Для сравнения, по сути, транспортное средство - это устройство, используемое для транспорта. Хотя это определение верно, оно не включает в себя все детали современного автомобиля.
Механизм базы данных может обрабатывать несколько пользователей, транзакции , MVCC (Multiversion Concurrency Control) , буферы и кэши, ACID (атомарность, согласованность, изоляция, долговечность) , а также различные уровни изоляции . Чтение может извлекать данные из памяти, удаленных баз данных и нескольких таблиц на диске, обрабатывая их с использованием SQL через несколько явных и / или неявных путей кода, чтобы представить их запрашивающему приложению. Создание может распределять хранилище, предоставлять структуры, назначать значения и выполнять собственную обработку перед сохранением данных. И т.п.
источник
В некоторых базах данных может работать много двигателей, в зависимости от того, насколько они лучше подходят для работы. Например, многие из моих приложений используют InnoDB для большинства данных (ограничения ключа и блокировки на уровне строк), MyISAM для данных сеанса (быстрая, меньшая обработка) и ArchiveDB для контрольного журнала (только сжатые и вставляемые / выбираемые, без обновления / удаления).
«Остальная часть» программного обеспечения базы данных обеспечивает общий интерфейс для использования через API или терминалы, позволяет выполнять сложные действия (такие как объединения, подзапросы и т. Д.) И управляет состоянием / состоянием и конфигурацией включенных модулей. Существует много возможностей для подачи и ухода за движком, а программное обеспечение базы данных скрывает всю эту сложность.
источник