Открыть сервис

Jet Database Engine

Jet Database Engine — это реляционная система управления базами данных (СУБД), разработанная корпорацией Microsoft в 1992 году. Она представляет собой программный компонент, обеспечивающий создание, хранение, чтение и модификацию данных в формате файлов баз данных (обычно с расширением .mdb, .accdb). Jet Engine является встроенным движком, который не требует отдельного серверного процесса и работает как часть приложения, что делает его характерным представителем файл-серверных СУБД.

История

Создание и ранние версии

Разработка Jet Database Engine началась в конце 1980-х годов как часть проекта Microsoft Access. Первая версия движка (Jet 1.0) была выпущена в 1992 году вместе с Microsoft Access 1.0. Название «Jet» происходит от названия внутреннего проекта компании — «Joint Engine Technology». Изначально движок был ориентирован на работу с небольшими и средними базами данных, используемыми в настольных приложениях.

Версия 2.0 и Access 2.0

В 1993 году вышла версия Jet 2.0, поставлявшаяся с Microsoft Access 2.0. Она включала улучшенную поддержку триггеров, хранимых процедур и репликации. Эта версия стала первой, которая получила широкое распространение за пределами Microsoft Access — её начали использовать другие приложения, такие как Microsoft Visual Basic.

Версия 3.0 и 3.5

В 1994 году была выпущена версия Jet 3.0, которая поддерживала 32-битные операционные системы (Windows NT и Windows 95). Она отличалась улучшенной производительностью и поддержкой транзакций. Версия Jet 3.5 (1995 год) стала стандартом для Microsoft Access 95 и Visual Basic 4.0. В ней была реализована поддержка длинных имён полей (до 64 символов) и улучшена работа с индексами.

Версия 4.0

В 1998 году вышла версия Jet 4.0, которая поставлялась с Microsoft Access 2000. Она включала поддержку Unicode, что позволило работать с данными на разных языках, а также улучшенную поддержку SQL-92. Jet 4.0 оставался основной версией до выхода Microsoft Office 2007 и поддерживался вплоть до Windows 10. В 2007 году Microsoft объявила о прекращении разработки Jet Engine в пользу новой технологии — Microsoft Access Database Engine (ACE).

Прекращение поддержки

В 2013 году Microsoft объявила, что Jet Database Engine больше не будет развиваться, и рекомендовала переходить на Microsoft Access Database Engine (ACE) или SQL Server. Однако Jet 4.0 по-прежнему доступен в составе операционных систем Windows (до Windows 10 включительно) для обратной совместимости.

Архитектура

Компоненты

Jet Database Engine состоит из нескольких ключевых компонентов:

Файловая структура

Данные хранятся в файлах формата .mdb (для версий до 2007 года) и .accdb (для Microsoft Access 2007 и новее). Файл базы данных состоит из страниц фиксированного размера (обычно 2 КБ для Jet 3.x и 4 КБ для Jet 4.0). Каждая страница содержит либо данные таблиц, либо индексы, либо системную информацию (например, каталог объектов).

Поддержка SQL

Jet Engine поддерживает подмножество стандарта SQL-92. Основные возможности включают:

  • Создание, изменение и удаление таблиц (CREATE TABLE, ALTER TABLE, DROP TABLE).
  • Запросы SELECT с JOIN, GROUP BY, ORDER BY.
  • Вставка, обновление и удаление записей (INSERT, UPDATE, DELETE).
  • Поддержка подзапросов и агрегатных функций (SUM, COUNT, AVG, MIN, MAX).

Однако Jet Engine не поддерживает полноценные хранимые процедуры, триггеры и представления (в версиях до 4.0). В версии 4.0 появилась поддержка хранимых процедур на VBA, но они выполняются на стороне клиента, а не внутри движка.

Классификация

По типу использования

  • Однопользовательский режим — база данных используется одним приложением на одном компьютере.
  • Многопользовательский режим — несколько пользователей одновременно работают с одной базой данных через локальную сеть. В этом режиме Jet Engine использует блокировки для предотвращения конфликтов.

По версиям

  • Jet 1.0–1.1 (1992) — первые версии, 16-битные, для Windows 3.x.
  • Jet 2.0–2.5 (1993–1994) — 16-битные, улучшенная поддержка репликации.
  • Jet 3.0–3.5 (1994–1995) — 32-битные, поддержка транзакций.
  • Jet 4.0 (1998) — 32-битная, поддержка Unicode и SQL-92.

Применение

Microsoft Access

Основное применение Jet Engine — это работа с базами данных Microsoft Access. Он является встроенным движком для всех версий Access до 2007 года. В Access 2007 и новее используется ACE (Access Database Engine), который является преемником Jet.

Visual Basic и VBA

Jet Engine активно использовался в приложениях, написанных на Visual Basic (до версии 6.0) и VBA (Visual Basic for Applications). Разработчики могли создавать базы данных, выполнять запросы и управлять данными через объектную модель DAO (Data Access Objects).

Другие приложения

Jet Engine также использовался в некоторых сторонних приложениях, например, в Microsoft Project (для хранения проектных данных) и Microsoft MapPoint (для картографических данных). Однако с выходом новых версий этих продуктов они перешли на другие технологии хранения.

Преимущества и недостатки

Преимущества

  • Простота развертывания — не требуется установка отдельного сервера, база данных хранится в одном файле.
  • Низкая стоимость — движок входит в состав Microsoft Office и Windows, что делает его доступным для небольших организаций.
  • Интеграция с Microsoft Office — данные можно легко экспортировать в Excel, Word и другие приложения.
  • Поддержка многопользовательского доступа — до 255 одновременных пользователей (при правильной настройке сети).

Недостатки

  • Ограниченная производительность — при большом объёме данных (более 2 ГБ) или большом количестве одновременных пользователей производительность резко падает.
  • Отсутствие поддержки серверных функций — нет полноценных триггеров, хранимых процедур и представлений.
  • Уязвимость к повреждениям — файлы .mdb могут быть повреждены при сбое питания или неправильном завершении работы приложения.
  • Отсутствие поддержки транзакций на уровне сервера — все транзакции выполняются на стороне клиента, что может приводить к конфликтам при одновременном доступе.

Интересные факты

  • Jet Database Engine использовался в Windows 95 для хранения системных настроек (реестр Windows хранился в формате .mdb до выхода Windows 98).
  • Максимальный размер файла базы данных для Jet 4.0 составляет 2 ГБ (для версий до 4.0 — 1 ГБ).
  • Jet Engine поддерживает репликацию данных между несколькими копиями базы данных, что позволяет синхронизировать данные на разных компьютерах.
  • В 2007 году Microsoft выпустила бесплатный пакет драйверов для работы с файлами .mdb и .accdb из приложений, написанных на .NET (Microsoft Access Database Engine Redistributable).

Критика

Jet Database Engine критиковался за низкую производительность при работе с большими объёмами данных и за отсутствие поддержки стандартных серверных функций. Многие разработчики отмечали, что движок не подходит для корпоративных приложений, где требуется высокая надёжность и масштабируемость. Кроме того, файлы .mdb часто повреждались при неправильном завершении работы, что приводило к потере данных.

Источники

  • Microsoft Developer Network (MSDN) — документация по Jet Database Engine.
  • «Microsoft Jet Database Engine Programmer's Guide» — Microsoft Press, 1996.
  • «Inside Microsoft Access» — John L. Viescas, 1999.
  • «Access 2000: The Complete Reference» — Virginia Andersen, 1999.
  • Статья «Jet Database Engine» в английской Википедии (версия от 2023 года).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →