DBF (Data Base File) on tietojen tallennusmuoto, jota käytetään yhtenä tavallisista tavoista tallentaa tietoja tietokannan hallintajärjestelmiin .
Formaatin on kehittänyt Wayne Ratliff ( (eng.) Wayne Ratliff ) DBMS Vulcanille ( eng. Vulcan ), joka on kehitetty OS CP / M :lle ja jota ei käytetä laajalti. Hänestä tuli laajalti tunnetuksi DOS :n dBase II DBMS : n jakelulla , jonka hän loi Aston-Tatessa Vulcaniin perustuen George Taten ( eng. George Tate ) ja Hal Lashleyn ( eng. Hal Lashlee ) osallistuessa.
Uusissa versioissa - dBase III, dBase IV - muotoa muutettiin ja laajennettiin. Myös käsittelyn yksinkertaisuuden ja helppouden vuoksi siitä tuli suosittu erilaisissa DBMS-järjestelmissä, joissa käytettiin niiden muotolaajennuksia. Tällaisia klooneja kutsutaan yleistermillä xBase . Standardin puutteen vuoksi kaikki ohjelmat eivät voi lukea ja kirjoittaa oikein mielivaltaista .DBF-tiedostoa.
Tärkeimmät tiedot tallennetaan tiedostoon, jonka pääte on .DBF [1] .
DBF-tiedosto on jaettu otsikkoon, joka tallentaa tiedot tietokannan rakenteesta ja tietueiden määrästä (uusissa versioissa - ja joistakin muista ominaisuuksista, kuten käytetystä koodisivusta ), ja itse tietoalueesta, joka on peräkkäin järjestetty kiinteäpituisten tietueiden taulukko. Tietueet koostuvat kiinteäpituisista kentistä.
Tiedoston ensimmäinen tavu sisältää muotoversion numeron ja täytebittimaskin.
Tietue alkaa yhden tavun poistolipulla , mahdolliset arvot ovat: välilyönti HEX : 20 ja "*" HEX : 2A (tietue on merkitty poistettavaksi). Merkittyjen tietueiden fyysinen poistaminen suoritetaan " pakkaus "-toiminnon aikana (useimmissa xBase DBMS -järjestelmissä PACK-komennolla). Poistetut tietueet voidaan palauttaa ennen kuin tietokanta on pakattu.
DBF-tiedoston pakkaaminen on toimenpide, jolla fyysisesti poistetaan poistettavaksi merkittyjä tietueita DBF-muotoisesta tietokannasta. Ensimmäinen pakkausvaihtoehto (käytetty dBase II:ssa) on tietueiden lajittelu, kun kaikki poistettavaksi merkityt siirretään tiedoston loppuun [2] . Myöhemmässä kehityksessä se on yleensä toteutettu kopioimalla vain voimassa olevat tietueet (ei merkitty poistettavaksi) lähdetiedostosta uuteen, kopioinnin päätyttyä vanha tiedosto korvataan uudella.
Muita tiedostoja, jotka ilmestyivät muodon kehityksen yhteydessä (kaikkia ei ole luetteloitu) [3] :
Lisäkentät ja hakemistotiedostot eivät ole riippumattomia, eikä niitä voida lukea ilman niitä vastaavaa .DBF-tiedostoa. Tässä suhteessa niiden kuvaus sisältyy yleensä osana .DBF-muodon kuvaukseen.
Wayne Ratliff aloitti Vulcan DBMS:n tiedostomuodon työskentelyn tammikuussa 1978, ja lokakuussa 1979 hän julkaisi Vulcan-ohjelman, joka käytti .DBF-tiedostojen ensimmäistä versiota [4] .
Vuonna 1980 ohjelmasta julkaistiin uusi versio, jossa käytettiin .DBF-versiota 2 kaupallisella nimellä dBase II, ja se myytiin Ashton-Taten kautta , jossa yksi Ratliffin kumppaneista työskenteli [4] .
Formaatin toista versiota käytettiin myös dBase III:ssa, joka ilmestyi vuonna 1984 [5] . Mutta jo dBase III+:ssa (1985) [5] otettiin käyttöön uusi, kolmas versio DBF-muodosta. dBase III ja dBase III+ eivät ole tiedostomuotoja yhteensopivia [2] .
Vuonna 1988 julkaistu dBase IV [5] käytti myös formaatin uutta versiota - neljättä.
DBF-muodon viides versio otettiin käyttöön vuonna 1994, jolloin Borland julkaisi dBase for DOS:n uusimman version, dBase V [6] .
DBF:n seitsemäs versio ilmestyi vuonna 1997, jolloin julkaistiin dBase 7 (vain Windows).
Tietoja Vulcan DBMS:ssä käytetystä version 1 formaatista ei ole säilytetty. Tiedetään vain, että tietueen suurin sallittu kenttien määrä oli 16 [2] .
DBF versio 2Otsikon pituus on 520 tavua, versionumeron arvo (otsikon ensimmäinen tavu) on 2, kenttien enimmäismäärä tietueessa on 32 [7] .
Ei tavu | Merkitys |
---|---|
0 | versionumero |
1-2 | Tietueiden määrä tiedostossa (16-bittinen numero Little endian ) |
3 | Viimeisimmän muokkauksen vuosi tiedostossa |
neljä | Kuukausi viimeisimmän muokkauksen päivämäärästä tiedostossa |
5 | Päivä, jolloin tiedostossa viimeinen muokkauspäivä on tehty |
6-7 | (Jokaisen) tietueen pituus tiedostossa (16-bittinen numero LE ) |
8-520 | Joukko kenttäkuvauksia (32 elementtiä 16 tavua), jotka päättyvät rivinvaihtoon ( HEX : OD ).
Jos tiedostorakenteessa on kaikki 32 merkintää, 520. tavu on HEX : OD . |
… | tietokannan tietueita |
EOF | Tiedoston lopussa on EOF, HEX : 1A |
Kentän kuvauksen rakenne kenttäkuvausjoukossa. Koko: 16 tavua.
Ei tavu | Merkitys |
---|---|
0-10 | Kentän nimi: "alnum"-joukon merkkijono yhdestä 10 merkkiin ja päättävä tyhjä merkki ( HEX : 00 ), yleensä ylimääräinen tila täytetään nollamerkeillä. |
yksitoista | Kentän tyyppi: C, N tai L (merkki, numeerinen, looginen) |
12 | Kentän pituus |
13-14 | Kentän osoite muistissa _ |
viisitoista | Kenttien desimaaliluku _ _ |
Merkintä alkaa yhden tavun poistolipulla . Merkintä on merkitty poistettavaksi, jos sen arvo on "*" ( HEX : 2a , tähtimerkki). Normaaliarvo on " " (välilyönti, HEX : 20 ).
DBF versio 3dBase III+:n jälkeen DBF-tiedostomuoto on muuttunut dramaattisesti [2] [8] :
dBase IV:lle kehitettiin DBF-muodon neljäs versio [9] . Erot aikaisempiin:
dBase V käyttää viidettä versiota DBF [10] -muodosta . Innovaatiot:
dBasen seitsemäs versio käyttää uutta DBF-muotoa, myös numero 7, joka eroaa olennaisesti aiemmista [9] [8] .
Yhteenvetotaulukko versioistaDBF-tiedoston nollatavu sisältää muodon [9] versionumeron ja lisätiedostojen [8] bittiattribuutit .
0x02 | dBase II ja FoxBASE |
0x03 | FoxBASE+ tai dBase III+ ilman "muistio"-kenttiä |
0x30 | Visuaalinen FoxPro |
0x31 | Visual FoxPro automaattisella lisäyksellä |
0x32 | Visual FoxPro Varchar- ja/tai Varbinary-tyyppisillä kentillä |
0x43 | dBASE IV SQL-taulukkotiedosto ilman "memo"-tyyppisiä kenttiä |
0x63 | dBASE IV -järjestelmän SQL-tiedosto ilman "memo"-tyyppisiä kenttiä |
0x83 | FoxBASE+ tai dBase III+ "muistio"-kentillä |
0x8B | dBASE IV SQL-taulukkotiedosto, jossa on "memo"-tyyppiset kentät |
0xCB | dBASE IV -järjestelmän SQL-tiedosto, jossa on "memo"-tyyppiset kentät |
0xF5 | FoxPro vanhempi versio 2.6 "muistio"-tyyppisillä kentillä |
0xE5 | Clipper Six SMT-tiedostolla (sisältää "muistio"-kentän arvot) |
0xFB | Foxbase |