Interested Article - DBF
- 2020-05-28
- 1
DBF (Data Base File) — формат хранения данных , используемый в качестве одного из стандартных способов хранения информации в системах управления базами данных .
Формат был разработан Уэйном Рэтлиффом ( (англ.) ) для своей СУБД Вулкан ( англ. Vulcan ), разработанной для ОС CP/M и не получившей распространение. Широко стал известен с распространением СУБД dBase II для DOS , созданной им в компании Aston−Tate на основе Вулкана с участием Джорджа Тейта ( англ. George Tate ) и Хэла Лашли ( англ. Hal Lashlee ).
В новых версиях — dBase III, dBase IV — формат модифицировался и расширялся. Также, благодаря простоте и удобству обработки, стал популярен в разных СУБД, где использовались свои расширения формата. Такие клоны называют общим термином xBase . Из-за отсутствия стандарта не всякая программа может правильно прочитать и корректно записать произвольный файл .DBF.
Общие сведения
Основная информация хранится в файле с суффиксом .DBF .
DBF-файл делится на заголовок, в котором хранится информация о структуре базы и количестве записей (в новых версиях — и о некоторых других характеристиках, например используемой кодовой странице ), и собственно область данных, представляющую собой последовательно организованную таблицу из записей фиксированной длины. Записи состоят из полей фиксированной длины.
Первый байт файла содержит номер версии формата и битовую маску дополнений.
Запись начинается с признака удаления размером один байт , возможные значения: пробел HEX : и «*» HEX : (запись помечена на удаление). Физическое удаление помеченных записей производится при выполнении операции « упаковка » (в большинстве СУБД xBase — командой PACK). Удалённые записи могут быть восстановлены до проведения упаковки базы.
Упаковка DBF-файла — процедура физического удаления помеченных на удаление записей из базы данных формата DBF. Первый вариант упаковки (использованный в dBase II) — сортировка записей, когда все помеченные на удаление сдвигаются в конец файла . В более поздних разработках обычно реализуется копированием из исходного файла в новый только валидных записей (не помеченных на удаление), по завершении копирования прежний файл замещается новым.
Дополнительные файлы, появившиеся с развитием формата (перечислены не все) :
- .DBT — содержимое полей типа «memo» (данные переменной длины, обычно текст) dBase III, IV, и Clipper ;
- .FPT — содержимое полей типа «memo» FoxBase, «memo» и «object» FoxPro ;
- .IDX — индексный файл, используется в dBase ;
- .NTX — индексный файл, используется в Clipper ;
- .CDX — индексный файл FoxPro и 1C ;
- .MDX — мультииндексный файл.
Файлы дополнительных полей и индексов не являются самостоятельными и не могут быть прочитаны без соответствующего им .DBF-файла. В связи с этим их описание обычно включают в качестве составной части описания формата .DBF.
История
Уэйн Рэтлифф начал работать над форматом файлов для СУБД Вулкан в январе 1978 года, и в октябре 1979 года программа Вулкан, использующая первую версию файлов .DBF, была им выпущена в продажу .
В 1980 была выпущена новая версия программы, использовавшая .DBF второй версии, под коммерческим названием dBase II её стали продавать через компанию , где работал один из партнёров Рэтлиффа .
Вторая версия формата использовалась также и в dBase III, появившейся в 1984 году . Но уже в dBase III+ (1985 год) была реализована новая, третья версия формата DBF. dBase III и dBase III+ несовместимы по формату файлов .
dBase IV, выпущенная в 1988 году , использовала тоже новую версию формата — четвёртую.
Пятая версия формата DBF была реализована в 1994 году, когда Borland выпустила последнюю версию dBase для DOS — dBase V .
Седьмая версия DBF появилась в 1997 году с выходом dBase 7 (только для Windows).
Описание формата
Сведения о формате версии 1, использованном в СУБД Vulcan, не сохранились. Известно только, что максимально допустимое число полей в записи данных было 16 .
DBF версии 2
Длина заголовка 520 байт, значение номера версии (первый байт заголовка) — 2, максимальное количество полей в записи данных — 32 .
№ Байта | Значение |
---|---|
0 | Version number |
1−2 | Число записей в файле (16−битное число Little endian ) |
3 | Год даты последней модификации в файле |
4 | Месяц даты последней модификации в файле |
5 | День даты последней модификации в файле |
6−7 | Длина (каждой) записи данных в файле (16−битное число LE ) |
8−520 |
Массив описаний полей (32 элемента по 16 байт), завершающийся символом возврата каретки (
HEX
:
).
Если в структуре файла есть все 32 записи, 520-й байт — HEX : . |
… | записи БД |
EOF | Файл завершается символом EOF, HEX : |
Структура описания поля в массиве описаний полей. Размер: 16 байт.
№ Байта | Значение |
---|---|
0−10 | Имя поля: строка от одного до 10 символов множества «alnum» и завершающий нуль-символ ( HEX : ), обычно лишнее место заполняется нуль-символами. |
11 | Тип поля: C, N или L (символьное, числовое, логическое) |
12 | Длина поля |
13−14 | Адрес поля в памяти ( англ. Field adress in memory ) |
15 | Десятичный счётчик полей ( англ. Field decimal count ) |
Запись начинается с признака удаления длиной в один байт . Запись помечена на удаление, если его значение равно «*» ( HEX : , символ звёздочки). Нормальное значение — " " (пробел, HEX : ).
DBF версии 3
С версии dBase III+ формат файла DBF кардинально изменился :
- главное изменение — заголовок переменной длины;
- начальный байт содержит битовую маску: три младших бита — номер версии, бит 7 — наличие файла .DBT с полями типа memo;
- байт № 28 содержит признак наличия индексного файла и его тип;
- тип данных D (Data) — дата в формате ГГГГММДД;
- прочие изменения.
DBF версии 4
Для dBase IV была разработана четвёртая версия формата DBF . Отличия от предыдущих:
- бит 4 в байте версии совместно с седьмым битом означает новый формат файла с полями типа memo, биты с 4 по 6 — признаки таблиц SQL;
- тип поля F (float) длиной 20 байт — десятичное число с плавающей точкой;
- многоиндексные файлы *.MDX.
DBF версии 5
В dBase V использована пятая версия формата DBF . Нововведения:
- тип поля B (Binary) подобный memo, но для произвольных данных;
- тип поля G (General) для объектов OLE и подобных.
DBF версии 7
Седьмая версия dBase использует новый формат DBF тоже под номером 7, который кардинально отличается от предыдущих .
Сводная таблица версий
Нулевой байт файла DBF содержит номер версии формата и битовые признаки дополнительных файлов .
0x02 | dBase II и FoxBASE |
0x03 | FoxBASE+ или Dbase III+ без полей типа «memo» |
0x30 | Visual FoxPro |
0x31 | Visual FoxPro с автоинкрементом |
0x32 | Visual FoxPro с полями типов Varchar и/или Varbinary |
0x43 | dBASE IV файл таблиц SQL без полей типа «memo» |
0x63 | dBASE IV системный файл SQL без полей типа «memo» |
0x83 | FoxBASE+ или Dbase III+ с полями типа «memo» |
0x8B | dBASE IV файл таблиц SQL с полями типа «memo» |
0xCB | dBASE IV системный файл SQL с полями типа «memo» |
0xF5 | FoxPro до версии 2.6 с полями типа «memo» |
0xE5 | Clipper Six с файлом SMT (содержит значения полей типа «memo») |
0xFB | FoxBASE |
См. также
Примечания
- .
- ↑ .
- , .
- ↑ .
- ↑ .
- .
- , .
- ↑ .
- ↑ , .
- .
Ссылки
- David B. Powell. : dBase II author Wayne Ratliff recounts the program's history, describes the current success, and explores possible applications in the area of Artificial Intelligence : [ англ. ] : журн. // PC Magazine. — 1984. — Т. 3, № 2 (7 February). — С. 131−135.
- . История компьютера . Дата обращения: 20 сентября 2018.
- Encyclopedia of Microcomputers : [ англ. ] . — N. Y. : Marcel Dekker, Inc., 1990. — Т. 4 : Computer-Related Applications: Computational Linguistics to dBase / Exsecutive editors Allen Kent, James G. Williams. — С. 398. — ISBN 9780824727031 . — ISBN 0-8247-2703-7 (т. 4).
- Erik Bachmann. (англ.) . Clickety Click Software (27 февраля 2010). Дата обращения: 20 сентября 2018. — Описание формата файлов Xbase (dBase)
- (англ.) . dBase.com . dBase LLC. Дата обращения: 26 сентября 2018.
- (англ.) . Library of Congress (8 октября 2012). Дата обращения: 26 сентября 2018.
- dBASE for Windows Language Reference manual. (англ.) . Scientific Computing. 23 марта 2015 года.
- (англ.) . DBF Viewer 2000 . HiBase Group (19 апреля 2018). Дата обращения: 26 сентября 2018.
- (англ.) . dBase Classic . dBase, LLC. Дата обращения: 26 сентября 2018.
- Edward M. Esber, Jr. (англ.) . Дата обращения: 26 сентября 2018.
- 2020-05-28
- 1