DBM — формат баз данных Microsoft¶
DBM (от англ. dBASE file, ранее database management) — формат файлов баз данных, разработанный в 1980-х годах компанией Ashton-Tate для операционной системы CP/M и позже адаптированный под MS-DOS. Файлы с расширением .dbm представляют собой структурированные таблицы данных с фиксированной длиной записей и заголовком, описывающим поля. Формат стал одним из ранних стандартов хранения табличных данных в персональных компьютерах и получил широкое распространение в 1980—1990-х годах.
¶История
Формат DBM возник в контексте развития систем управления базами данных (СУБД) класса dBASE. Первая версия dBASE (dBASE II) была выпущена в 1981 году компанией Ashton-Tate и работала с файлами расширения .dbf. Формат .dbm использовался для сопутствующих файлов индексов и мемо-полей (MEMO), где хранились текстовые данные переменной длины, не помещавшиеся в основную запись.
В 1990-х годах, после приобретения Ashton-Tate компанией Borland, формат развивался в линейке продуктов dBASE for Windows и Clipper. Появились альтернативные реализации: FoxPro (впоследствии приобретённая Microsoft), Harvester, Recital и другие СУБД, совместимые с семейством форматов dBASE.
¶Структура файла
Файл DBM состоит из трёх основных частей:
- Заголовок файла — содержит метаданные: количество записей, дату последнего обновления, длину заголовка и структуру полей.
- Описание полей — фиксированный массив записей по 32 байта, где для каждого поля указываются имя (до 10 символов), тип (C — символьное, N — числовое, D — дата, L — логическое, M — мемо), длина и количество знаков после запятой.
- Данные — последовательность записей фиксированной длины, каждая из которых начинается с байта-флага удаления (
*— запись удалена, пробел — активна).
Формат использует little-endian порядок байтов. Кодировка текстовых данных исторически соответствовала OEM-кодовым страницам (CP866 для русскоязычных версий), что создаёт определённые сложности при работе с современными Unicode-системами.
¶Классификация
В зависимости от версии и производителя выделяют несколько разновидностей формата:
| Разновидность | Особенности |
|---|---|
| dBASE III | Базовый формат, поддержка 255 полей, ограничение 2 ГБ на файл |
| dBASE IV | Расширенные типы данных, SQL-подмножество |
| FoxPro | Собственные расширения, индексные файлы .cdx |
| Clipper | Компилятор, работающий с dBASE-совместимыми файлами |
¶Применение
Изначально DBM-файлы использовались для хранения адресных книг, бухгалтерских записей, номенклатурных справочников и другой структурированной информации. В российской практике 1990-х годов формат dBASE активно применялся в первых автоматизированных системах управления, разработанных для малого бизнеса и муниципальных учреждений.
В XXI веке формат вытеснен более совершенными системами (SQLite, PostgreSQL, MySQL, Microsoft Access), однако совместимость с ним поддерживается многими современными инструментами: LibreOffice Base, Microsoft Excel, DBF Viewer, «1С:Предприятие» (при импорте данных) и специализированными библиотеками (dbfread, DBF для Python, TDbf для Delphi).
¶Программная поддержка
Среди библиотек для работы с форматом в российской разработке известны компоненты для Delphi и Lazarus (TDbf), модули для PHP и Python, а также утилиты конвертации в CSV, SQLite и XML. Открытая спецификация формата позволяет реализовывать чтение и запись без лицензионных ограничений.
¶Примечания
Формат .dbm не следует путать с форматом GDBM (GNU Database Manager) — библиотекой хранения пар «ключ-значение» в Unix-системах, а также с Berkeley DB (BDB), которая используется, в частности, в системах BIND и OpenLDAP.
¶Источники
- Ковелов А. Ф. «dBASE III Plus: справочник пользователя»
- Боровиков В. П. «FoxPro 2.6 для Windows»
- Microsoft Developer Network — описание форматов dBASE
- Clipper Language Reference Manual
