Hvad er DBF-filformatet?
En .dbf-fil indeholder en struktureret database organiseret i tabeller med poster. Formatet opstod i 1983 sammen med dBASE II og blev de facto-standarden for den bredere xBase-familie af databaseværktøjer. .dbf blev designet til at lette dataudveksling mellem forskellige applikationer. Der findes flere dialektversioner af .dbf-formatet - hver iteration tilføjer nye datatyper og flag - og på grund af disse forskelle kan ikke alle applikationer åbne en given .dbf-fil uden at vide, hvilken dialekt den følger.
.dbf-filens header er kodet i binært format og beskriver databasens struktur. Den indeholder informationer som:
- En versions-flag-byte (offset 0; f.eks.
0x03= dBASE III/IV uden memo,0x30= Visual FoxPro,0x83= dBASE III med tilhørende memo), - Dato for seneste databaseopdatering (byte 1-3, gemt som ÅÅ MM DD),
- Antal poster - et 32-bit heltal,
- Header-længde og postfelt-længde,
- Krypteringsflag,
- Feltbeskrivelses-array - en tabel over kolonnenavne, typer og faste bredder.
Efter headeren gemmes posterne i ASCII-tekst eller binært format med en konstant feltlængde. Når en post fjernes af applikationen, sættes dens første byte til en asterisk (0x2A), hvilket markerer den som logisk slettet i stedet for fysisk at slette den. Nye poster tilføjes i slutningen af filen, hvilket øger dens størrelse; nogle implementeringer pakker senere filen med en PACK-operation og overskriver tidligere slettede poster.
Memo-data (lang tekst, binær eller OLE-objekter) gemmes ikke inde i selve .dbf-filen - det ligger i en tilhørende fil: .dbt til dBASE III/IV eller .fpt til FoxPro/Visual FoxPro. .dbf-posten gemmer kun en bloknummer-pointer til den tilhørende fil. .dbf-filer kan også åbnes ved hjælp af dedikerede DBF-visere; sådanne værktøjer giver brugerne mulighed for at inspicere filindholdet i en læsbar form. .dbf-filer bør ikke åbnes med en teksteditor, da den binære header og feltdata vil fremstå som ulæselige tegn.
Sikkerhed og tryghed
RISIKO: LOWEn .dbf er almindelige tabeldata, ikke eksekverbar, så det er sikkert at åbne en. To praktiske forholdsregler: (1) uoverensstemmelser i tegnkodning/codepage kan gøre specialtegn eller ikke-latinsk tekst ulæselig - vælg det rigtige tegnsæt ved import; (2) DBF-filer fra regnskabs-, skatte- eller GIS-kilder kan indeholde personlige/følsomme data, så undgå at uploade dem til online-visere. Beskadigede DBF-filer (manglende memo-fil eller afkortet) kan kræve et reparationsværktøj frem for en normal åbner.
Formatdetaljer
kort fortaltProgrammer der åbner DBF-filer
Tekniske detaljer
dyb specifikation| Formatkategori | Flad enkelttabel binær database; fastlængde postlayout med en binær header og feltbeskrivelses-array |
| MIME-type | application/dbf (også application/dbase og application/x-dbf i forskellige implementeringer) |
| Versionsidentifikation | Første byte (offset 0) er et dialektflag snarere end et fast magic number: 0x03 = dBASE III/IV uden memo, 0x30 = Visual FoxPro, 0x83 = dBASE III med .dbt memo, 0xF5 = FoxPro 2.x med memo |
| Header-struktur | 32-byte base-header + én 32-byte feltbeskrivelse pr. kolonne + 0x0D terminator-byte; feltbeskrivelser starter ved offset 32 |
| Håndtering af sletning | Slettede poster markeres logisk ved at sætte postens første byte til 0x2A (ASCII asterisk); de forbliver i filen, indtil de eksplicit fjernes via en PACK-operation |
| Postkodning | Poster med fast længde; Character-felter i ASCII, Numeric-felter som zoned-decimal ASCII-strenge, Date som 8-byte YYYYMMDD ASCII, binære/rå bytes for andre typer |
| Understøttede felttyper | Character (C), Numeric (N), Date (D), Logical (L), Memo (M), Float (F); Visual FoxPro tilføjer Currency (Y), DateTime (T), Integer (I) og General (G) til OLE-objekter |
| Memo-følgefil | .dbt til dBASE III/IV; .fpt til FoxPro og Visual FoxPro - .dbf-posten gemmer kun en 10-cifret bloknummer-pointer, ikke selve memo-dataene |
| Indeks-følgefiler | .ndx (dBASE enkelt-indeks), .mdx (dBASE IV multi-indeks), .cdx (FoxPro/VFP sammensat indeks) - alle eksterne; ingen indeksdata er indlejret i .dbf-filen |
| Maksimalt antal poster | Op til 1.073.741.823 poster pr. tabel (2³⁰ − 1) i dBASE 7; tidligere dialekter har lavere grænser afhængigt af header-feltbredden |
| Maksimalt antal felter pr. tabel | 255 felter i standard xBase-dialekter (dBASE III til FoxPro/VFP) |
| Feltnavnslængde | Op til 10 tegn i dBASE III/IV og FoxPro; op til 128 tegn i dBASE 7 Long Field Names-tilstand |
| Codepage-understøttelse | Codepage-identifikator gemt ved header offset 29 (0x1D); almindelige værdier: 0x03 Windows ANSI, 0x57 US OEM (CP437), 0x64 Østeuropæisk OEM (CP852) |
| Krypteringsflag | Header-byte ved offset 15 (0x0F) signalerer postkryptering på dBASE-niveau; hvis sat, er postdata XOR-sløret - adskilt fra enhver kryptering på filsystemniveau |
| GIS-anvendelse | ESRI Shapefile leveres altid med en tilhørende .dbf til funktionsattributter sammen med .shp-geometrifilen; værktøjer som GDAL/ogr2ogr læser og skriver disse .dbf-filer indfødt |
| Udgivet | 1983 (dBASE II/III); format family known as xBase |
| Åben standard | Ja · royaltyfri |
| Specifikation | www.dbase.com |
DBF-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om DBF-filer.