Hva er DBF-filformatet?
En .dbf-fil inneholder en strukturert database organisert i tabeller med poster. Formatet oppsto i 1983 sammen med dBASE II og ble de facto-standarden for den bredere xBase-familien av databaseverktøy. .dbf ble designet for å forenkle datautveksling mellom ulike applikasjoner. Det finnes flere dialektversjoner av .dbf-formatet - hver iterasjon legger til nye datatyper og flagg - og på grunn av disse forskjellene kan ikke alle applikasjoner åpne en gitt .dbf-fil uten å vite hvilken dialekt den følger.
Toppteksten (header) i en .dbf-fil er kodet i binærform og beskriver databasens struktur. Den inneholder informasjon som:
- En versjonsflagg-byte (offset 0; f.eks.
0x03= dBASE III/IV uten memo,0x30= Visual FoxPro,0x83= dBASE III med tilhørende memo), - Dato for siste databaseoppdatering (byte 1-3, lagret som ÅÅ MM DD),
- Antall poster - et 32-bit heltall,
- Header-lengde og postfelt-lengde,
- Krypteringsflagg,
- Feltbeskrivelsesmatrise - en tabell over kolonnenavn, typer og faste bredder.
Etter headeren lagres postene i ASCII-tekst eller binært format med en konstant feltlengde. Når en post fjernes av applikasjonen, settes dens første byte til en stjerne (0x2A), noe som markerer den som logisk slettet i stedet for å slette den fysisk. Nye poster legges til i slutten av filen, noe som øker størrelsen; enkelte implementeringer komprimerer senere filen med en PACK-operasjon og overskriver tidligere slettede poster.
Memo-data (lang tekst, binær eller OLE-objekter) lagres ikke inne i selve .dbf-filen - den ligger i en tilhørende fil: .dbt for dBASE III/IV eller .fpt for FoxPro/Visual FoxPro. .dbf-posten lagrer bare en blokknummer-peker til den tilhørende filen. .dbf-filer kan også åpnes ved hjelp av dedikerte DBF-visningsprogrammer; slike verktøy lar brukere inspisere filinnholdet i en menneskelig lesbar form. .dbf-filer bør ikke åpnes med et tekstredigeringsprogram, da den binære headeren og feltdataene vil vises som uforståelige tegn.
Sikkerhet og trygghet
RISIKO: LOWEn .dbf-fil inneholder rene tabelldata og er ikke kjørbar, så det er trygt å åpne den. To praktiske forholdsregler: (1) feil i tegnkoding/kodeside kan forvrenge tekst med aksenter eller ikke-latinske tegn - velg riktig tegnsett ved import; (2) DBF-filer fra regnskaps-, skatte- eller GIS-kilder kan inneholde personlige/sensitive data, så unngå å laste dem opp til visningsverktøy på nett. Korrupte DBF-filer (manglende memo-fil eller avkortet fil) kan kreve et reparasjonsverktøy fremfor et vanlig åpningsprogram.
Formatdetaljer
i et nøtteskallProgrammer som åpner DBF-filer
Tekniske detaljer
dyp spesifikasjon| Formatkategori | Flat enkelttabell binær database; fastlengde postoppsett med en binær header og feltbeskrivelsesmatrise |
| MIME-type | application/dbf (også application/dbase og application/x-dbf i ulike implementeringer) |
| Versjonsidentifikasjon | Første byte (offset 0) er et dialektflagg snarere enn et fast magisk nummer: 0x03 = dBASE III/IV uten 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 per kolonne + 0x0D terminator-byte; feltbeskrivelser starter ved offset 32 |
| Håndtering av sletting | Slettede poster flagges logisk ved å sette postens første byte til 0x2A (ASCII-stjerne); de forblir i filen til de fjernes eksplisitt via en PACK-operasjon |
| Postkoding | Poster med fast lengde; tegnfelt i ASCII, numeriske felt som sonet-desimal ASCII-strenger, dato som 8-byte YYYYMMDD ASCII, binære/rå byte for andre typer |
| Støttede felttyper | Character (C), Numeric (N), Date (D), Logical (L), Memo (M), Float (F); Visual FoxPro legger til Currency (Y), DateTime (T), Integer (I) og General (G) for OLE-objekter |
| Tilhørende memo-fil | .dbt for dBASE III/IV; .fpt for FoxPro og Visual FoxPro - .dbf-posten lagrer kun en 10-sifret blokknummer-peker, ikke selve memo-dataene |
| Tilhørende indeksfiler | .ndx (dBASE enkeltindeks), .mdx (dBASE IV multi-indeks), .cdx (FoxPro/VFP sammensatt indeks) - alle eksterne; ingen indeksdata er innebygd i .dbf-filen |
| Maksimalt antall poster | Opptil 1 073 741 823 poster per tabell (2³⁰ − 1) i dBASE 7; tidligere dialekter har lavere grenser avhengig av headerens feltbredde |
| Maksimalt antall felt per tabell | 255 felt i standard xBase-dialekter (dBASE III til FoxPro/VFP) |
| Lengde på feltnavn | Opptil 10 tegn i dBASE III/IV og FoxPro; opptil 128 tegn i dBASE 7 «Long Field Names»-modus |
| Støtte for kodeside | Kodeside-identifikator lagret ved header-offset 29 (0x1D); vanlige verdier: 0x03 Windows ANSI, 0x57 US OEM (CP437), 0x64 Østeuropeisk OEM (CP852) |
| Krypteringsflagg | Header-byte ved offset 15 (0x0F) signaliserer postkryptering på dBASE-nivå; hvis satt, er postdata XOR-obfuskert - uavhengig av eventuell kryptering på filsystemnivå |
| GIS-bruk | ESRI Shapefile leveres alltid med en tilhørende .dbf for funksjonsattributter sammen med .shp-geometrifilen; verktøy som GDAL/ogr2ogr leser og skriver disse .dbf-filene innebygd |
| Utgitt | 1983 (dBASE II/III); format family known as xBase |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | www.dbase.com |
DBF-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om DBF-filer.