aspose.info
UK

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

Оновлено

Що таке файл DBF?

Файл із розширенням .dbf — це файл бази даних, який використовується програмою системи керування базами даних під назвою dBASE. Спочатку база даних dBASE називалася Project Vulcan; започаткований Вейном Ретліффом у 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 для файлу memo DOS, біти 4–6 вказують на наявність таблиці SQL, біт 7 вказує на наявність будь-якого файлу memo (або 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–п [примітка 3][примітка 4]32 байти коженмасив дескрипторів полів (схему дескрипторів див. нижче)
n + 11 байт0x0D як термінатор масиву дескриптора поля
  • Функція ISMARKEDO перевіряє цей прапор (ПОЧАТИ ТРАНЗАКЦІЮ встановлює його на 1, ЗАВЕРШАТИ ТРАНЗАКЦІЮ та ВІДКОТИТИ скидати його на 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 (вирівняно по правому краю, доповнено пробілами)

Посилання

Див. також