DBF (Data Base File) er et datalagringsformat, der bruges som en af standardmåderne til lagring af information i databasestyringssystemer .
Formatet blev udviklet af Wayne Ratliff ( (eng.) Wayne Ratliff ) til hans DBMS Vulcan ( eng. Vulcan ), udviklet til OS CP/M og ikke meget brugt. Han blev almindeligt kendt med distributionen af dBase II DBMS til DOS , skabt af ham hos Aston−Tate baseret på Vulcan med deltagelse af George Tate ( eng. George Tate ) og Hal Lashley ( eng. Hal Lashlee ).
I nye versioner - dBase III, dBase IV - blev formatet ændret og udvidet. På grund af enkelheden og lette behandlingen blev den også populær i forskellige DBMS, hvor deres formatudvidelser blev brugt. Sådanne kloner omtales med det generiske udtryk xBase . På grund af manglen på en standard kan ikke alle programmer læse og skrive en vilkårlig .DBF-fil korrekt.
Hovedoplysningerne gemmes i en fil med endelsen .DBF [1] .
DBF-filen er opdelt i en header, som gemmer information om databasens struktur og antallet af poster (i nye versioner - og om nogle andre karakteristika, såsom den anvendte tegntabel ), og selve dataområdet, som er en sekventielt organiseret tabel med poster med fast længde. Records består af felter med fast længde.
Den første byte af filen indeholder formatversionsnummeret og udfyldningsbitmasken.
Posten starter med et sletteflag på én byte , mulige værdier er: space HEX : 20 og "*" HEX : 2A (posten er markeret til sletning). Den fysiske sletning af markerede poster udføres under " pakning "-operationen (i de fleste xBase DBMS ved hjælp af PACK-kommandoen). Slettede poster kan gendannes, før databasen pakkes.
Pakning af en DBF-fil er en procedure til fysisk sletning af poster, der er markeret til sletning fra en database i DBF-format. Den første pakningsmulighed (brugt i dBase II) er sortering af poster, når alle markeret til sletning flyttes til slutningen af filen [2] . I senere udviklinger implementeres det normalt ved kun at kopiere gyldige poster (ikke markeret til sletning) fra kildefilen til den nye, efter at kopieringen er afsluttet, erstattes den gamle fil med den nye.
Yderligere filer, der dukkede op med udviklingen af formatet (ikke alle er angivet) [3] :
Yderligere felter og indeksfiler er ikke uafhængige og kan ikke læses uden deres tilsvarende .DBF-fil. I denne forbindelse er deres beskrivelse normalt inkluderet som en del af beskrivelsen af .DBF-formatet.
Wayne Ratliff begyndte at arbejde på filformatet til Vulcan DBMS i januar 1978, og i oktober 1979 udgav han Vulcan-programmet med den første version af .DBF-filer [4] .
I 1980 blev en ny version af programmet udgivet, ved hjælp af .DBF version 2, under det kommercielle navn dBase II, det blev solgt gennem Ashton-Tate , hvor en af Ratliffs partnere arbejdede [4] .
Den anden version af formatet blev også brugt i dBase III, som udkom i 1984 [5] . Men allerede i dBase III+ (1985) [5] blev en ny, tredje version af DBF-formatet implementeret. dBase III og dBase III+ er filformatinkompatible [2] .
dBase IV, udgivet i 1988 [5] , brugte også en ny version af formatet - den fjerde.
Den femte version af DBF-formatet blev implementeret i 1994, da Borland udgav den seneste version af dBase til DOS, dBase V [6] .
Den syvende version af DBF udkom i 1997 med udgivelsen af dBase 7 (kun Windows).
Oplysninger om version 1-formatet brugt i Vulcan DBMS er ikke blevet bevaret. Det er kun kendt, at det maksimalt tilladte antal felter i en datapost var 16 [2] .
DBF version 2Længden af overskriften er 520 bytes, værdien af versionsnummeret (den første byte af overskriften) er 2, det maksimale antal felter i dataposten er 32 [7] .
Nej. Byte | Betyder |
---|---|
0 | versionsnummer |
1−2 | Antal poster i filen (16-bit nummer Little endian ) |
3 | År for sidste ændringsdato i filen |
fire | Måned for sidste ændringsdato i filen |
5 | Dagen for sidste ændringsdato i filen |
6-7 | Længden af (hver) datapost i filen (16-bit nummer LE ) |
8-520 | Et array af feltbeskrivelser (32 elementer á 16 bytes) afsluttet af et vognretur ( HEX : OD ).
Hvis filstrukturen har alle 32 indgange, er den 520. byte HEX : OD . |
… | databaseposter |
EOF | Filen slutter med EOF, HEX : 1A |
Strukturen af feltbeskrivelsen i rækken af feltbeskrivelser. Størrelse: 16 bytes.
Nej. Byte | Betyder |
---|---|
0-10 | Feltnavn: en streng fra 1 til 10 tegn i "alnum"-sættet og et afsluttende null-tegn ( HEX : 00 ), sædvanligvis er ekstra mellemrum fyldt med null-tegn. |
elleve | Felttype: C, N eller L (tegn, numerisk, boolesk) |
12 | Feltlængde |
13-14 | Feltadresse i hukommelsen _ |
femten | Felt decimaltal _ _ |
Indtastningen begynder med et sletningsflag på én byte . En post markeres til sletning, hvis dens værdi er "*" ( HEX : 2a , stjernetegn). Den normale værdi er " " (mellemrum, HEX : 20 ).
DBF version 3Siden dBase III+ har DBF-filformatet ændret sig dramatisk [2] [8] :
Til dBase IV blev den fjerde version af DBF-formatet [9] udviklet . Forskelle fra tidligere:
dBase V bruger den femte version af DBF [10] formatet . Innovationer:
Den syvende version af dBase bruger det nye DBF-format, også nummer 7, som er fundamentalt anderledes end de tidligere [9] [8] .
Oversigtstabel over versionerDBF-filens nulbyte indeholder versionsnummeret for formatet [9] og bitattributter for yderligere filer [8] .
DBF filtype0x02 | dBase II og FoxBASE |
0x03 | FoxBASE+ eller dBase III+ uden "memo"-felter |
0x30 | Visuel FoxPro |
0x31 | Visual FoxPro med autoincrement |
0x32 | Visual FoxPro med Varchar og/eller Varbinary Type Fields |
0x43 | dBASE IV SQL tabelfil uden felter af typen "memo". |
0x63 | dBASE IV system SQL-fil uden felter af typen "memo". |
0x83 | FoxBASE+ eller dBase III+ med "memo"-felter |
0x8B | dBASE IV SQL tabelfil med felter af typen "memo". |
0xCB | dBASE IV system SQL-fil med felter af typen "memo". |
0xF5 | FoxPro før version 2.6 med felter af typen "memo". |
0xE5 | Clipper Six med SMT-fil (indeholder "memo" feltværdier) |
0xFB | Foxbase |