aspose.info
BG

DBF - dBase файл с база данни

Обновено

Какво е DBF файл?

Файлът с разширение .dbf е файл на база данни, използван от приложение на система за управление на база данни, наречено dBASE. Първоначално базата данни dBASE беше наречена Project Vulcan; стартиран от Wayne Ratliff през 1978 г. Файловият тип DBF беше въведен с dBASE II през 1983 г. Той подрежда множество записи на данни с полета тип масив. Софтуерът за база данни xBase, който е популярен поради съвместимостта си с широк набор от файлови формати; също поддържа DBF файлове.

DBF файлов формат

Файловият формат DBF принадлежи към системата за управление на база данни dBASE, но може да е съвместим с xBase или друг софтуер за СУБД. Първоначалната версия на dbf файла се състоеше от проста таблица, която можеше да има добавяне, промяна, изтриване или отпечатване на данни с помощта на набор от ASCII знаци. С течение на времето .dbf беше подобрен и бяха добавени допълнителни файлове за увеличаване на функциите и възможностите на системата от бази данни.

В съвременния dBASE DBF файлът се състои от заглавка, записите на данни и маркера EOF (край на файла)

  • Заглавката съдържа информация за файла, като например броя на записите и броя на типовете полета, използвани в записите.
  • Записите съдържат действителните данни.
  • Краят на файла се маркира с един байт със стойност 0x1A.

Заглавка на файл

Оформлението на заглавката на файла в dBase е дадено в следната таблица:

БайтСъдържаниеЗначение
01 байтВалиден dBASE за DOS файл; битове 0–2 показват номера на версията, бит 3 показва наличието на dBASE за DOS мемо файл, битове 4–6 показват наличието на SQL таблица, бит 7 показва наличието на всеки мемо файл (или dBASE m PLUS или dBASE за DOS)
1–33 байтаДата на последна актуализация; форматиран като ГГММДД
4–732-битово числоБрой записи във файла на базата данни
8–916-битово числоБрой байтове в заглавката
10–1116-битово числоБрой байтове в записа
12–132 байтаЗапазено; попълнете с 0
141 байтФлаг, показващ незавършена транзакция[бележка 1]
151 байтФлаг за шифроване[бележка 2]
16–2712 байтаЗапазено за dBASE за DOS в многопотребителска среда
281 байтФлаг за производствен .mdx файл; 1, ако има производствен .mdx файл, 0, ако не
291 байтID на езиковия драйвер
30–312 байтаЗапазено; попълнете с 0
32–n [бележка 3][бележка 4]32 байта всекимасив от дескриптори на полета (вижте по-долу за оформлението на дескрипторите)
n + 11 байт0x0D като терминатор на масива на дескриптор на поле
  • Функцията ISMARKEDO проверява този флаг (BEGIN TRANSACTION го задава на 1, END TRANSACTION и ROLLBACK го нулира на 0).
  • Ако този флаг е зададен на 1, се появява съобщението Базата данни е шифрована.
  • Максималният брой полета е 255.
  • n означава последния байт в масива на дескриптора на полето.

Масив от дескриптори на полета

Оформление на дескриптори на полета в dBASE:

БайтСъдържаниеЗначение
0–1011 байтаИме на полето в ASCII (попълнено с нула)
111 байтТип поле. Позволени стойности: C, D, F, L, M или N (вижте следващата таблица за значения)
12–154 байтаЗапазено
161 байтДължина на полето в двоичен код (максимум 254 (0xFE)).
171 байтДесетичен брой на полето в двоичен
18–192 байтаID на работната зона
201 байтПример
21–3010 байтаЗапазено
311 байтПроизводствен MDX поле флаг; 1, ако полето има индексен маркер в производствения MDX файл, 0, ако не

Записи в база данни

Всеки запис започва с флаг за изтриване (1-байт). Полетата се обвиват в записи без разделители на полета. Всички полеви данни са ASCII. В зависимост от вида на полето, приложението налага допълнителни ограничения. Ето типовете полета в dBase:

Тип полеМнемоникаКакво приема
CХарактерВсеки ASCII текст (подплатен с интервали до дължината на полето)
DДатаЧисла и знак за разделяне на месец, ден и година (съхраняват се вътрешно като 8 цифри във формат ГГГГММДД)
FПлаваща запетая-, ., 0–9 (дясно подравнено, подплатено с бели интервали)
LЛогичноY, y, N, n, T, t, F, f или ? (когато е неинициализирано)
МБележкаВсеки ASCII текст (съхранява се вътрешно като 10 цифри, представляващи номер на .dbt блок, подравнен вдясно, подплатен с бели интервали)
NЧислово-, ., 0–9 (дясно подравнено, подплатено с бели интервали)

Препратки

Вижте също