Microsoft Access Database Engine
Microsoft Access Database Engine (также известный как Access Connectivity Engine, ранее — Microsoft Jet Database Engine, или просто Jet) — это реляционная система управления базами данных (СУБД) и набор программных компонентов, входящих в состав пакета Microsoft Office и распространяемых отдельно. Механизм обеспечивает создание, хранение, обработку и выполнение запросов к базам данных, которые хранятся в файлах формата .mdb (Access 2003 и ранее) и .accdb (Access 2007 и новее). Движок является основой для работы приложения Microsoft Access, а также может использоваться сторонними программами для доступа к данным без установки полного офисного пакета.
История
Разработка и ранние версии (Jet Engine)
Первоначально механизм был разработан корпорацией Microsoft в начале 1990-х годов под названием Microsoft Jet Database Engine. Jet (Joint Engine Technology) был создан как встраиваемая СУБД для приложений, работающих под управлением Windows 3.0. Первая версия (Jet 1.0) была выпущена в 1992 году вместе с Microsoft Access 1.0. В последующие годы механизм развивался параллельно с новыми версиями Access, получая улучшения в производительности, поддержке SQL и безопасности.
Ключевые версии Jet:
- Jet 2.0 (Access 2.0, 1994) — добавлена поддержка 32-битных приложений.
- Jet 3.0 (Access 95, 1995) — переход на 32-битную архитектуру, улучшена многопользовательская работа.
- Jet 4.0 (Access 2000, 2000) — поддержка Unicode, улучшенная обработка запросов, новый формат файлов
.mdb. - Jet 4.0 SP8 (2005) — последнее крупное обновление для Jet, выпущенное для Windows 2000, XP и Server 2003.
Переход к Access Database Engine (ACE)
С выходом Microsoft Office 2007 компания Microsoft представила новый формат файлов .accdb и обновлённый движок, получивший название Microsoft Access Database Engine (ACE). ACE не является прямым наследником Jet, а представляет собой его глубоко переработанную версию, включающую поддержку новых типов данных (например, многозначные поля и вложения), улучшенную безопасность и интеграцию с Windows SharePoint Services. Несмотря на смену названия, внутренняя архитектура и API во многом сохранили совместимость с Jet 4.0.
ACE развивался в версиях:
- ACE 12.0 (Office 2007)
- ACE 14.0 (Office 2010)
- ACE 15.0 (Office 2013)
- ACE 16.0 (Office 2016, 2019, 2021, Microsoft 365)
Архитектура и устройство
Компоненты
Движок состоит из нескольких ключевых компонентов:
- Ядро базы данных — отвечает за физическое хранение данных, управление транзакциями, блокировками и индексами.
- Обработчик запросов (Query Processor) — парсит и оптимизирует SQL-запросы, выполняет операции фильтрации, сортировки и соединения таблиц.
- Диспетчер страниц (Page Manager) — управляет чтением и записью страниц данных (обычно размером 4 КБ) на диск.
- Драйверы ODBC и OLE DB — обеспечивают доступ к данным через стандартизированные интерфейсы (ODBC — Open Database Connectivity, OLE DB — Object Linking and Embedding, Database).
- Диспетчер блокировок (Lock Manager) — координирует одновременный доступ нескольких пользователей к одной базе данных, используя блокировки на уровне страниц или записей.
Форматы файлов
Механизм поддерживает два основных формата файлов:
.mdb(Microsoft Database) — устаревший формат, используемый Jet 4.0 и более ранними версиями. Поддерживает до 2 ГБ данных..accdb(Access Database) — современный формат, используемый ACE. Поддерживает до 2 ГБ данных, а также новые функции, такие как многозначные поля и вложения.
Режимы работы
- Однопользовательский режим — файл базы данных открывается напрямую приложением (например, Microsoft Access). Все операции выполняются локально.
- Многопользовательский режим — файл базы данных хранится на сетевом сервере (файловом сервере). Несколько пользователей одновременно открывают файл через сеть. Движок использует блокировки на уровне записей (в
.accdb) или страниц (в.mdb), чтобы избежать конфликтов. - Клиент-серверный режим (через ODBC) — Access или другое приложение может подключаться к внешним серверам баз данных (Microsoft SQL Server, Oracle, MySQL) через драйверы ODBC, используя Access как интерфейс для работы с данными.
Функциональные возможности
Типы данных
ACE поддерживает широкий спектр типов данных, включая:
- Текстовые (до 255 символов), Мемо (до 65 535 символов).
- Числовые (байт, целое, длинное целое, одиночное с плавающей точкой, двойное с плавающей точкой, десятичное).
- Дата/время.
- Денежный.
- Логический (Да/Нет).
- OLE-объект (для хранения изображений, документов и других двоичных данных).
- Гиперссылка.
- Вложение (в
.accdb— для хранения нескольких файлов в одной записи). - Многозначное поле (в
.accdb— позволяет хранить несколько значений в одном поле, например, список выбора). - Вычисляемое поле (в
.accdb— значение вычисляется на основе других полей).
SQL и запросы
Механизм поддерживает подмножество языка SQL (ANSI-89 и частично ANSI-92), включая команды SELECT, INSERT, UPDATE, DELETE, CREATE TABLE, ALTER TABLE, CREATE INDEX. Поддерживаются сложные запросы с соединениями (INNER JOIN, LEFT JOIN, RIGHT JOIN), агрегатные функции (SUM, AVG, COUNT, MIN, MAX), подзапросы и встроенные функции (например, Date(), IIF(), Nz()).
Безопасность
В формате .mdb использовалась система безопасности на основе рабочей группы (файл .mdw), которая требовала ввода имени пользователя и пароля. В формате .accdb эта система была заменена на шифрование на уровне файла с использованием пароля (AES-128). Также в .accdb реализована поддержка проверки подлинности Windows (NTLM) при подключении к SharePoint.
Распространение и установка
В составе Microsoft Office
Microsoft Access Database Engine входит в состав всех редакций Microsoft Office, включающих приложение Access (например, Office Professional и Office Professional Plus). При установке Access движок устанавливается автоматически.
Отдельный распространяемый пакет (Redistributable)
Microsoft предоставляет отдельный установочный пакет Microsoft Access Database Engine Redistributable, который позволяет использовать движок в приложениях, не имеющих лицензии на Microsoft Office. Этот пакет доступен для бесплатного скачивания с официального сайта Microsoft. Он включает в себя драйверы ODBC и OLE DB, а также библиотеки для работы с файлами .mdb и .accdb из программ, написанных на C++, C#, Visual Basic .NET и других языках.
Разрядность
Существуют две версии распространяемого пакета: 32-разрядная (x86) и 64-разрядная (x64). Выбор версии зависит от разрядности приложения, которое будет использовать движок. Важно отметить, что 64-разрядная версия не может быть установлена одновременно с 32-разрядной версией Microsoft Office, и наоборот.
Применение
Microsoft Access
Основная область применения — работа с базами данных в приложении Microsoft Access. Access использует движок для создания форм, отчётов, макросов и модулей VBA, обеспечивая графический интерфейс для управления данными.
Сторонние приложения
ACE используется в качестве встраиваемой СУБД в различных приложениях:
- Веб-приложения — небольшие сайты и интранет-системы, использующие файлы
.mdb/.accdbв качестве хранилища данных (например, на ASP.NET). - Десктопные приложения — программы для учёта, складского управления, CRM, которые не требуют установки полноценного сервера баз данных.
- Инструменты ETL (Extract, Transform, Load) — для импорта и экспорта данных из файлов Access в другие системы.
- Скрипты и макросы — автоматизация обработки данных с помощью VBA, PowerShell или командной строки.
Интеграция с другими продуктами Microsoft
ACE тесно интегрируется с Microsoft SharePoint (через службы Access Services), Microsoft Excel (импорт/экспорт данных), Microsoft Outlook (импорт контактов и календарей) и Microsoft SQL Server (через инструмент «Перенос баз данных Access в SQL Server»).
Критика и ограничения
Производительность
ACE не предназначен для высоконагруженных приложений. При большом количестве одновременных пользователей (более 20–30) производительность резко падает из-за блокировок на уровне файлов и страниц. При работе по сети возможны проблемы с целостностью данных при сбоях.
Ограничения по размеру
Максимальный размер файла базы данных составляет 2 ГБ. При превышении этого лифта база данных становится недоступной для записи. Это существенно ограничивает применение движка для хранения больших объёмов данных (например, изображений или видео).
Отсутствие поддержки некоторых функций SQL
ACE не поддерживает хранимые процедуры, триггеры, представления (в классическом понимании), полнотекстовый поиск и репликацию на уровне сервера. Эти функции доступны только в более мощных СУБД, таких как Microsoft SQL Server.
Безопасность
Шифрование на основе пароля в формате .accdb считается относительно слабым. Существуют утилиты для восстановления паролей к файлам Access. Кроме того, файлы .mdb/.accdb не поддерживают аудит доступа на уровне записей.
Зависимость от Windows
ACE является продуктом, работающим исключительно под управлением операционной системы Windows. Официальной поддержки macOS, Linux или других платформ не существует.
Источники
- Microsoft Docs: Access Database Engine (ACE) Redistributable.
- Microsoft Support: Description of the Microsoft Jet Database Engine 4.0.
- Microsoft Support: Description of the new Access 2007 file format (.accdb).
- Microsoft Learn: Access SQL reference.
- Microsoft Support: Limitations of Access databases.
- Wikipedia: Microsoft Jet Database Engine.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →