aspose.info
PL

DBF - Plik Bazy Danych dBase

Zaktualizowano

Czym jest plik DBF?

Plik z rozszerzeniem .dbf jest plikiem bazy danych używanym przez aplikację systemu zarządzania bazami danych o nazwie dBASE. Początkowo baza danych dBASE nosiła nazwę Project Vulcan; rozpoczęty przez Wayne’a Ratliffa w 1978 roku. Typ pliku DBF został wprowadzony w dBASE II w 1983 roku. Organizuje on wiele rekordów danych z polami typu Array. Oprogramowanie bazy danych xBase, które jest popularne ze względu na kompatybilność z szeroką gamą formatów plików; obsługuje również pliki DBF.

Format pliku DBF

Format pliku DBF należy do systemu zarządzania bazą danych dBASE, ale może być kompatybilny z xBase lub innym oprogramowaniem DBMS. Początkowa wersja pliku dbf składała się z prostej tabeli, w której można było dodawać, modyfikować, usuwać lub drukować dane przy użyciu zestawu znaków ASCII. Z biegiem czasu .dbf był ulepszany i dodawano dodatkowe pliki zwiększające funkcjonalność i możliwości systemu bazodanowego.

We współczesnym dBASE plik DBF składa się z nagłówka, rekordów danych i znacznika EOF (End of File)

  • W nagłówku znajdują się informacje o pliku, takie jak liczba rekordów oraz liczba typów pól użytych w rekordach.
  • Zapisy zawierają rzeczywiste dane.
  • Koniec pliku jest oznaczony pojedynczym bajtem o wartości 0x1A.

Nagłówek pliku

Układ nagłówka pliku w dBase przedstawia poniższa tabela:

BajtSpis treściZnaczenie
01 bajtPrawidłowy dBASE dla pliku DOS; bity 0–2 wskazują numer wersji, bit 3 wskazuje na obecność pliku memo dBASE dla DOS, bity 4–6 wskazują na obecność tabeli SQL, bit 7 wskazuje na obecność dowolnego pliku memo (dBASE m PLUS lub dBASE dla DOS)
1–33 bajtyData ostatniej aktualizacji; sformatowany jako RRMMDD
4–7liczba 32-bitowaLiczba rekordów w zbiorze bazy danych
8–9liczba 16-bitowaLiczba bajtów w nagłówku
10–11liczba 16-bitowaLiczba bajtów w rekordzie
12–132 bajtySkryty; wypełnij 0
141 bajtOznaczenie wskazujące na niezakończoną transakcję[uwaga 1]
151 bajtFlaga szyfrowania [uwaga 2]
16–2712 bajtówZarezerwowane dla dBASE dla DOS w środowisku wielu użytkowników
281 bajtFlaga produkcyjnego pliku .mdx; 1 jeśli istnieje produkcyjny plik .mdx, 0 jeśli nie
291 bajtIdentyfikator sterownika językowego
30–312 bajtySkryty; wypełnij 0
32–n [przypis 3][przypis 4]32 bajty każdytablica deskryptorów pól (patrz poniżej układ deskryptorów)
n + 11 bajt0x0D jako terminator tablicy deskryptorów pól
  • Funkcja ISMARKEDO sprawdza tę flagę (BEGIN TRANSACTION ustawia ją na 1, END TRANSACTION i ROLLBACK resetują ją do 0).
  • Jeśli ta flaga jest ustawiona na 1, pojawia się komunikat Baza danych zaszyfrowana.
  • Maksymalna liczba pól to 255.
  • n oznacza ostatni bajt w tablicy deskryptorów pól.

Tablica deskryptorów pól

Układ deskryptorów pól w dBASE:

BajtSpis treściZnaczenie
0–1011 bajtówNazwa pola w ASCII (wypełniona zerami)
111 bajtTyp pola. Dozwolone wartości: C, D, F, L, M lub N (znaczenia w następnej tabeli)
12–154 bajtyZarezerwowane
161 bajtDługość pola w formacie binarnym (maksymalnie 254 (0xFE)).
171 bajtLiczba dziesiętna pola w systemie binarnym
18–192 bajtyIdentyfikator obszaru roboczego
201 bajtPrzykład
21–3010 bajtówZarezerwowane
311 bajtFlaga pola produkcyjnego MDX; 1 jeśli pole ma znacznik indeksu w produkcyjnym pliku MDX, 0 jeśli nie

Rekordy bazy danych

Każdy rekord zaczyna się od flagi usunięcia (1-bajtowej). Pola są pakowane w rekordy bez separatorów pól. Wszystkie dane pola są w formacie ASCII. W zależności od rodzaju pola aplikacja nakłada dodatkowe ograniczenia. Oto typy pól w dBase:

Typ polaMnemonikCo akceptuje
CznakDowolny tekst ASCII (dopełniony spacjami do długości pola)
DDataCyfry i znak oddzielający miesiąc, dzień i rok (przechowywane wewnętrznie jako 8 cyfr w formacie RRRRMMDD)
F.Zmiennoprzecinkowy-, ., 0–9 (wyrównanie do prawej, wypełnione spacjami)
LlogiczneY, y, N, n, T, t, F, f lub ? (gdy niezainicjowany)
MNotatkaDowolny tekst ASCII (przechowywany wewnętrznie jako 10 cyfr reprezentujących numer bloku .dbt, wyrównany do prawej, uzupełniony spacjami)
NNumeryczne-, ., 0–9 (wyrównanie do prawej, wypełnione spacjami)

Bibliografia

Zobacz też