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

Формат файла MDB

MDB — это формат файла базы данных, создаваемый и используемый системой управления базами данных (СУБД) Microsoft Access, входящей в пакет Microsoft Office. Файлы с расширением .mdb (от англ. Microsoft Database) представляют собой контейнеры, в которых хранятся таблицы, запросы, формы, отчёты, макросы и модули программного кода на языке VBA (Visual Basic for Applications). Формат является проприетарным и был основным для Access в версиях с 1992 по 2003 год, после чего был заменён более современным форматом .accdb.

История

Разработка и ранние версии

Формат MDB был впервые представлен в 1992 году вместе с первой версией Microsoft Access 1.0 для Windows. Он пришёл на смену более ранним решениям для работы с базами данных на платформе Windows, таким как FoxPro и Paradox. Основной целью разработки было создание удобного инструмента для конечных пользователей, не требующего глубоких знаний SQL, который позволял бы создавать и управлять реляционными базами данных через графический интерфейс.

В первых версиях (Access 1.0, 1.1, 2.0) использовался формат MDB версии 1.0, который имел ограничение на размер файла в 1 ГБ. С выходом Access 95 (версия 7.0) был представлен формат MDB версии 3.0, который увеличил лимит размера до 2 ГБ и внёс улучшения в механизм блокировок записей.

Версия Jet 4.0 (Access 2000–2003)

Наиболее распространённой и стабильной версией формата стала MDB, основанная на механизме баз данных Microsoft Jet 4.0 (совместно используемый компонент доступа к данным — MDAC). Она использовалась в Microsoft Access 2000, 2002 (XP) и 2003. Ключевые нововведения этой версии:

  • Поддержка Юникода (Unicode) для хранения текстовых данных, что позволило корректно работать с символами различных языков, включая кириллицу.
  • Улучшенная поддержка языка SQL-92, включая подзапросы и функции для работы с датами и строками.
  • Возможность создания файлов баз данных с защитой на уровне пользователей (User-Level Security) с использованием рабочей группы (system.mdw).

Замена на ACCDB

В 2007 году с выходом Microsoft Office 2007 компания Microsoft представила новый формат файла .accdb, основанный на новом движке Access Database Engine (ACE). Формат MDB был объявлен устаревшим, хотя поддержка его чтения и записи сохраняется во всех последующих версиях Access (вплоть до актуальной на 2025 год). Переход на ACCDB был вызван необходимостью поддержки многозначных полей, сложных типов данных (например, вложения), а также улучшения безопасности и интеграции с SharePoint.

Технические характеристики

Структура файла

Файл MDB представляет собой сложный бинарный файл, организованный в виде набора страниц (pages) фиксированного размера. Размер страницы по умолчанию составляет 4 КБ (4096 байт). Файл состоит из следующих основных компонентов:

  • Заголовок (Header): содержит метаданные о версии формата, уникальный идентификатор базы данных (GUID), информацию о кодировке и параметры сжатия.
  • Таблицы страниц (Page Table): индекс, который отслеживает, какие страницы заняты, а какие свободны.
  • Страницы данных (Data Pages): содержат непосредственно записи таблиц. Каждая запись хранится в виде бинарного блока переменной длины.
  • Страницы индексов (Index Pages): содержат структуры B-деревьев для ускорения поиска и сортировки данных.
  • Страницы определения (Definition Pages): хранят метаданные объектов базы данных (таблиц, запросов, форм, отчётов, модулей VBA).

Ограничения

Формат MDB (версия Jet 4.0) имеет ряд технических ограничений:

  • Максимальный размер файла: 2 ГБ. При превышении этого лимита база данных становится недоступной для записи и требует сжатия или конвертации.
  • Максимальное количество объектов: 32 768 объектов (таблиц, запросов, форм и т.д.) на одну базу данных.
  • Максимальное количество полей в таблице: 255.
  • Максимальное количество индексов в таблице: 32.
  • Максимальное количество одновременных пользователей: 255 (при файловом режиме доступа, практический лимит обычно ниже из-за проблем с блокировками).
  • Максимальная длина текстового поля (тип Text): 255 символов. Для хранения более длинных строк используется тип Memo (до 65 535 символов, а в некоторых версиях — до 2 ГБ).

Типы данных

В MDB поддерживаются следующие основные типы данных:

  • Text: строки переменной длины до 255 символов.
  • Memo: длинный текст (до 65 535 символов).
  • Number: числовые данные (Byte, Integer, Long Integer, Single, Double, Decimal).
  • Date/Time: дата и время (8-байтовое число с плавающей точкой двойной точности).
  • Currency: денежные значения (8 байт, точность до 4 знаков после запятой).
  • AutoNumber: автоматически увеличивающееся целое число (аналог IDENTITY в SQL Server).
  • Yes/No: логическое значение (Boolean).
  • OLE Object: объекты, созданные другими приложениями (например, изображения, документы Word). Этот тип данных считается устаревшим.
  • Hyperlink: гиперссылка (до 2048 символов).
  • Replication ID: глобальный уникальный идентификатор (GUID, 16 байт).

Применение

Локальные и малые базы данных

Основное применение формата MDB — создание локальных однопользовательских или малых многопользовательских баз данных (до 10–20 пользователей). Благодаря встроенному графическому интерфейсу Access, MDB-файлы широко использовались в малом бизнесе, отделах крупных компаний и образовательных учреждениях для:

  • Ведения каталогов товаров, клиентских баз и контактов.
  • Управления небольшими проектами и задачами.
  • Создания простых систем учёта (склад, бухгалтерия на малом предприятии).
  • Хранения и анализа данных из внешних источников (Excel, текстовые файлы).

Веб-приложения и интеграция

В прошлом MDB-файлы часто использовались в качестве бэкенда для веб-приложений на классическом ASP (Active Server Pages). Однако из-за проблем с производительностью и безопасностью при одновременном доступе через Интернет, эта практика была признана устаревшей. Формат также поддерживает импорт и экспорт данных в другие форматы (Excel, CSV, dBASE, ODBC-источники).

Критика и недостатки

Проблемы безопасности

Формат MDB имеет серьёзные недостатки в области безопасности. Встроенная система защиты на уровне пользователей (User-Level Security) использует слабые алгоритмы шифрования и легко взламывается. Пароль базы данных хранится в виде хэша в заголовке файла и может быть снят с помощью специальных утилит. Кроме того, макросы и модули VBA, хранящиеся в MDB, могут содержать вредоносный код, что делает файлы потенциально опасными при открытии из ненадёжных источников.

Производительность и масштабируемость

Файловый режим доступа (File-Server) является основным ограничением MDB. При одновременной работе нескольких пользователей возникают конфликты блокировок, что приводит к замедлению работы и ошибкам. При размере файла более 1–1,5 ГБ производительность резко падает, а риск повреждения файла возрастает. Формат не подходит для высоконагруженных систем и корпоративных приложений, требующих транзакционной целостности на уровне сервера.

Совместимость с современными системами

Хотя Microsoft Access 2019 и 2021 (а также версии из Microsoft 365) могут открывать и редактировать файлы MDB, Microsoft официально рекомендует конвертировать их в формат ACCDB. Начиная с Windows 10, драйверы для работы с MDB (Microsoft Jet OLE DB Provider) не устанавливаются по умолчанию и требуют отдельной загрузки. В macOS и Linux нативная поддержка MDB отсутствует, хотя существуют сторонние библиотеки (например, MDB Tools, Jackcess), позволяющие читать данные из этих файлов.

Инструменты для работы с MDB

Проприетарные

  • Microsoft Access: основной инструмент для создания, редактирования и управления MDB-файлами.
  • Microsoft Visual Studio: старые версии (до 2010) включали средства для работы с базами данных Access.
  • Microsoft Excel: может импортировать данные из MDB через встроенный мастер запросов.

Сторонние и с открытым исходным кодом

  • MDB Tools: набор утилит для Linux и Unix, позволяющий читать и экспортировать данные из MDB-файлов (в форматы CSV, SQL, MySQL).
  • Jackcess: Java-библиотека для чтения и записи MDB-файлов, используемая в проектах, требующих кроссплатформенного доступа.
  • LibreOffice Base: может открывать и редактировать MDB-файлы, хотя полная совместимость не гарантируется.
  • mdbtools: консольная утилита для извлечения схемы и данных из MDB.

Источники

  1. Microsoft Corporation. "Introduction to Access 2000 database files (.mdb)". MSDN Library.
  2. Microsoft Corporation. "Access 2003 file format and structure". Microsoft Support.
  3. Microsoft Corporation. "Limitations of Access databases". Microsoft Learn.
  4. Litwin, P. et al. "Access 2000: The Complete Reference". Osborne/McGraw-Hill, 2000.
  5. Документация проекта MDB Tools (mdbtools.sourceforge.net).
  6. Документация библиотеки Jackcess (jackcess.sourceforge.net).
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru