Vad är filformatet DBF?
En .dbf-fil innehåller en strukturerad databas organiserad i tabeller med poster. Formatet har sitt ursprung 1983 tillsammans med dBASE II och blev de facto-standard för den bredare xBase-familjen av databasverktyg. .dbf utformades för att underlätta datautbyte mellan olika applikationer. Flera dialektversioner av .dbf-formatet existerar - där varje iteration lägger till nya datatyper och flaggor - och på grund av dessa skillnader kan inte alla applikationer öppna en given .dbf-fil utan att veta vilken dialekt den följer.
Sidhuvudet i en .dbf-fil är kodat i binärt format och beskriver databasens struktur. Det innehåller information som:
- En versionsflagga (offset 0; t.ex.
0x03= dBASE III/IV utan memo,0x30= Visual FoxPro,0x83= dBASE III med tillhörande memo), - Datum för senaste databasuppdatering (byte 1-3, lagrat som ÅÅ MM DD),
- Antal poster - ett 32-bitars heltal,
- Längd på sidhuvud och postfält,
- Krypteringsflagga,
- Fältbeskrivningsmatris - en tabell med kolumnnamn, typer och fasta bredder.
Efter sidhuvudet sparas poster i ASCII-text eller binärt format med en konstant fältlängd. När en post tas bort av applikationen sätts dess första byte till en asterisk (0x2A), vilket markerar den som logiskt raderad snarare än att den raderas fysiskt. Nya poster läggs till i slutet av filen, vilket ökar dess storlek; vissa implementeringar komprimerar senare filen med en PACK-operation och skriver över tidigare raderade poster.
Memo-data (lång text, binär eller OLE-objekt) lagras inte inuti själva .dbf-filen - den lever i en tillhörande fil: .dbt för dBASE III/IV eller .fpt för FoxPro/Visual FoxPro. .dbf-posten lagrar endast en blocknummerpekare till den tillhörande filen. .dbf-filer kan också öppnas med dedikerade DBF-visare; sådana verktyg låter användare inspektera filinnehållet i en läsbar form. .dbf-filer bör inte öppnas med en textredigerare, eftersom det binära sidhuvudet och fältdata kommer att visas som förvrängda tecken.
Säkerhet & trygghet
RISK: LOWEn .dbf är vanliga tabelldata, inte körbar, så det är säkert att öppna en. Två praktiska varningar: (1) felaktig teckenkodning/kodsidematchning kan förvränga accentuerad eller icke-latinsk text - välj rätt teckenuppsättning vid import; (2) DBF-filer från bokförings-, skatte- eller GIS-källor kan innehålla personliga/känsliga data, så undvik att ladda upp dem till onlinevisare. Skadade DBF-filer (saknad memo-fil eller trunkerad) kan behöva ett reparations-/återställningsverktyg snarare än en vanlig öppnare.
Formatdetaljer
i ett nötskalProgram som öppnar DBF-filer
Tekniska detaljer
djup specifikation| Formatkategori | Platt binär databas med en tabell; postlayout med fast längd, binärt sidhuvud och fältbeskrivningsmatris |
| MIME-typ | application/dbf (även application/dbase och application/x-dbf i olika implementeringar) |
| Versionsidentifiering | Första byten (offset 0) är en dialektflagga snarare än ett fast magiskt nummer: 0x03 = dBASE III/IV utan memo, 0x30 = Visual FoxPro, 0x83 = dBASE III med .dbt-memo, 0xF5 = FoxPro 2.x med memo |
| Sidhuvudets struktur | 32-byte bassidhuvud + en 32-byte fältbeskrivning per kolumn + 0x0D-terminatorbyte; fältbeskrivningar börjar vid offset 32 |
| Hantering av radering | Raderade poster flaggas logiskt genom att sätta postens första byte till 0x2A (ASCII-asterisk); de finns kvar i filen tills de uttryckligen tas bort via en PACK-operation |
| Postkodning | Poster med fast längd; teckenfält i ASCII, numeriska fält som zonade decimala ASCII-strängar, datum som 8-byte YYYYMMDD ASCII, binära/råa byte för andra typer |
| Fälttyper som stöds | Character (C), Numeric (N), Date (D), Logical (L), Memo (M), Float (F); Visual FoxPro lägger till Currency (Y), DateTime (T), Integer (I) och General (G) för OLE-objekt |
| Tillhörande memo-fil | .dbt för dBASE III/IV; .fpt för FoxPro och Visual FoxPro - .dbf-posten lagrar endast en 10-siffrig blocknummerpekare, inte själva memo-datan |
| Tillhörande indexfiler | .ndx (dBASE enkelindex), .mdx (dBASE IV multiindex), .cdx (FoxPro/VFP sammansatt index) - alla externa; ingen indexdata är inbäddad i .dbf-filen |
| Maximalt antal poster | Upp till 1 073 741 823 poster per tabell (2^30 − 1) i dBASE 7; tidigare dialekter har lägre gränser beroende på sidhuvudets fältbredd |
| Maximalt antal fält per tabell | 255 fält i standard xBase-dialekter (dBASE III till FoxPro/VFP) |
| Längd på fältnamn | Upp till 10 tecken i dBASE III/IV och FoxPro; upp till 128 tecken i dBASE 7-läget för långa fältnamn |
| Stöd för kodsida | Kodsidesidentifierare lagrad vid sidhuvudets offset 29 (0x1D); vanliga värden: 0x03 Windows ANSI, 0x57 US OEM (CP437), 0x64 Östeuropeisk OEM (CP852) |
| Krypteringsflagga | Sidhuvudsbyte vid offset 15 (0x0F) signalerar postkryptering på dBASE-nivå; om den är inställd är postdata XOR-maskerad - skiljer sig från kryptering på filsystemsnivå |
| GIS-användning | ESRI Shapefile levereras alltid med en tillhörande .dbf för objektattribut tillsammans med .shp-geometrifilen; verktyg som GDAL/ogr2ogr läser och skriver dessa .dbf-filer nativt |
| Släppt | 1983 (dBASE II/III); format family known as xBase |
| Öppen standard | Ja · royaltyfri |
| Specifikation | www.dbase.com |
DBF-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om DBF-filer.