DBF (Data Base File) je formát pro ukládání dat používaný jako jeden ze standardních způsobů ukládání informací v systémech správy databází .
Formát vyvinul Wayne Ratliff ( (ang.) Wayne Ratliff ) pro svůj DBMS Vulcan ( angl. Vulcan ), vyvinutý pro OS CP / M a málo používaný. Do širokého povědomí se dostal díky distribuci dBase II DBMS pro DOS , kterou vytvořil v Aston−Tate na základě Vulcanu za účasti George Tatea ( eng. George Tate ) a Hala Lashleyho ( eng. Hal Lashlee ).
V nových verzích - dBase III, dBase IV - byl formát upraven a rozšířen. Také díky jednoduchosti a snadnému zpracování se stal oblíbeným v různých DBMS, kde se používala jejich formátová rozšíření. Takové klony jsou označovány obecným termínem xBase . Kvůli chybějícímu standardu nemůže každý program správně číst a správně zapisovat libovolný soubor .DBF.
Hlavní informace jsou uloženy v souboru s příponou .DBF [1] .
Soubor DBF je rozdělen na hlavičku, ve které jsou uloženy informace o struktuře databáze a počtu záznamů (v nových verzích - a o některých dalších charakteristikách, jako je použitá kódová stránka ), a na samotnou datovou oblast, která je sekvenční organizovaná tabulka záznamů pevné délky. Záznamy se skládají z polí pevné délky.
První bajt souboru obsahuje číslo verze formátu a bitovou masku výplně.
Záznam začíná příznakem smazání jednoho bajtu , možné hodnoty jsou: mezera HEX : 20 a "*" HEX : 2A (záznam je označen pro smazání). Fyzické mazání označených záznamů se provádí během operace „ packing “ (ve většině xBase DBMS příkazem PACK). Smazané záznamy lze obnovit před zabalením databáze.
Sbalení souboru DBF je postup pro fyzické odstranění záznamů označených k odstranění z databáze formátu DBF. První možností pakování (používá se v dBase II) je třídění záznamů, kdy se všechny označené ke smazání posunou na konec souboru [2] . V pozdějším vývoji se obvykle implementuje tak, že se ze zdrojového souboru do nového zkopírují pouze platné záznamy (neoznačené k odstranění), po dokončení kopírování je starý soubor nahrazen novým.
Další soubory, které se objevily s vývojem formátu (ne všechny jsou uvedeny) [3] :
Další pole a soubory indexu nejsou nezávislé a nelze je číst bez jejich odpovídajícího souboru .DBF. V tomto ohledu je jejich popis obvykle součástí popisu formátu .DBF.
Wayne Ratliff začal pracovat na formátu souboru pro Vulcan DBMS v lednu 1978 a v říjnu 1979 jím byl vydán program Vulcan využívající první verzi souborů .DBF [4] .
V roce 1980 byla vydána nová verze programu s použitím .DBF verze 2, pod obchodním názvem dBase II, byla prodávána přes Ashton-Tate , kde pracoval jeden z Ratliffových partnerů [4] .
Druhá verze formátu byla také použita v dBase III, která se objevila v roce 1984 [5] . Ale již v dBase III+ (1985) [5] , byla implementována nová, třetí verze formátu DBF. dBase III a dBase III+ jsou formáty souborů nekompatibilní [2] .
dBase IV, vydaný v roce 1988 [5] , také používal novou verzi formátu – čtvrtou.
Pátá verze formátu DBF byla implementována v roce 1994, kdy Borland vydal nejnovější verzi dBase pro DOS, dBase V [6] .
Sedmá verze DBF se objevila v roce 1997 s vydáním dBase 7 (pouze Windows).
Informace o formátu verze 1 používaného ve Vulcan DBMS se nedochovaly. Je známo pouze to, že maximální povolený počet polí v datovém záznamu byl 16 [2] .
DBF verze 2Délka hlavičky je 520 bajtů, hodnota čísla verze (první bajt hlavičky) je 2, maximální počet polí v datovém záznamu je 32 [7] .
Ne. Byte | Význam |
---|---|
0 | číslo verze |
1-2 | Počet záznamů v souboru (16bitové číslo Little endian ) |
3 | Rok poslední úpravy v souboru |
čtyři | Měsíc posledního data změny v souboru |
5 | Den poslední změny v souboru |
6-7 | Délka (každého) datového záznamu v souboru (16bitové číslo LE ) |
8-520 | Pole popisů polí (32 prvků po 16 bajtech) ukončených znakem návratu vozíku ( HEX : OD ).
Pokud má struktura souboru všech 32 položek, 520. bajt je HEX : OD . |
… | databázové záznamy |
EOF | Soubor končí EOF, HEX : 1A |
Struktura popisu pole v poli popisů pole. Velikost: 16 bajtů.
Ne. Byte | Význam |
---|---|
0-10 | Název pole: řetězec od jednoho do 10 znaků sady "alnum" a ukončující znak null ( HEX : 00 ), obvykle je mezera navíc vyplněna nulovými znaky. |
jedenáct | Typ pole: C, N nebo L (znakové, číselné, booleovské) |
12 | Délka pole |
13-14 | Adresa pole v paměti |
patnáct | Počet desetinných míst pole _ |
Záznam začíná jednobajtovým příznakem odstranění . Záznam je označen ke smazání, pokud je jeho hodnota "*" ( HEX : 2a , hvězdička). Normální hodnota je " " (mezera, HEX : 20 ).
DBF verze 3Od dBase III+ se formát souboru DBF dramaticky změnil [2] [8] :
Pro dBase IV byla vyvinuta čtvrtá verze formátu DBF [9] . Rozdíly od předchozích:
dBase V používá pátou verzi formátu DBF [10] . Inovace:
Sedmá verze dBase používá nový formát DBF, rovněž číslo 7, který se zásadně liší od předchozích [9] [8] .
Souhrnná tabulka verzíNultý bajt souboru DBF obsahuje číslo verze formátu [9] a bitové atributy dalších souborů [8] .
0x02 | dBase II a FoxBASE |
0x03 | FoxBASE+ nebo dBase III+ bez polí "memo". |
0x30 | Visual FoxPro |
0x31 | Visual FoxPro s automatickým přírůstkem |
0x32 | Visual FoxPro s poli typu Varchar nebo Varbinary |
0x43 | Soubor tabulky SQL dBASE IV bez polí typu "memo". |
0x63 | Systémový SQL soubor dBASE IV bez polí typu "memo". |
0x83 | FoxBASE+ nebo dBase III+ s poli "memo". |
0x8B | Soubor tabulky SQL dBASE IV s poli typu "memo". |
0xCB | Systémový SQL soubor dBASE IV s poli typu "memo". |
0xF5 | FoxPro před verzí 2.6 s poli typu "memo". |
0xE5 | Clipper Six se souborem SMT (obsahuje hodnoty pole „memo“) |
0xFB | Foxbase |