aspose.info
FR

DBF - Fichier de base de données dBase

Mis à jour le

Qu’est-ce qu’un fichier DBF ?

Le fichier avec l’extension .dbf est un fichier de base de données utilisé par une application de système de gestion de base de données appelée dBASE. Initialement, la base de données dBASE s’appelait Project Vulcan ; lancé par Wayne Ratliff en 1978. Le type de fichier DBF a été introduit avec dBASE II en 1983. Il organise plusieurs enregistrements de données avec des champs de type Array. Le logiciel de base de données xBase qui est populaire en raison de sa compatibilité avec une large gamme de formats de fichiers ; prend également en charge les fichiers DBF.

Format de fichier DBF

Le format de fichier DBF appartient au système de gestion de base de données dBASE mais il peut être compatible avec xBase ou d’autres logiciels SGBD. La version initiale du fichier dbf consistait en un simple tableau dans lequel des données pouvaient être ajoutées, modifiées, supprimées ou imprimées à l’aide du jeu de caractères ASCII. Au fil du temps, .dbf a été amélioré et des fichiers supplémentaires ont été ajoutés pour augmenter les fonctionnalités et les capacités du système de base de données.

Dans dBASE moderne, un fichier DBF se compose d’un en-tête, des enregistrements de données et du marqueur EOF (End of File)

  • L’en-tête contient des informations sur le fichier, telles que le nombre d’enregistrements et le nombre de types de champs utilisés dans les enregistrements.
  • Les enregistrements contiennent les données réelles.
  • La fin du fichier est marquée par un seul octet, de valeur 0x1A.

En-tête de fichier

La disposition de l’en-tête de fichier dans dBase est donnée dans le tableau suivant :

OctetSommaireSignification
01 octetFichier dBASE valide pour DOS ; les bits 0 à 2 indiquent le numéro de version, le bit 3 indique la présence d’un fichier mémo dBASE pour DOS, les bits 4 à 6 indiquent la présence d’une table SQL, le bit 7 indique la présence de tout fichier mémo (soit dBASE m PLUS, soit dBASE pour DOS)
1–33 octetsDate de la dernière mise à jour ; formaté comme AAMMJJ
4–7nombre 32 bitsNombre d’enregistrements dans le fichier de base de données
8–9nombre 16 bitsNombre d’octets dans l’en-tête
10–11nombre 16 bitsNombre d’octets dans l’enregistrement
12–132 octetsRéservé; remplir avec 0
141 octetDrapeau signalant une transaction incomplète[note 1]
151 octetIndicateur de chiffrement[note 2]
16–2712 octetsRéservé à dBASE pour DOS dans un environnement multi-utilisateurs
281 octetIndicateur de fichier .mdx de production ; 1 s’il existe un fichier .mdx de production, 0 sinon
291 octetID du pilote de langue
30–312 octetsRéservé; remplir avec 0
32–n [note 3][note 4]32 octets chacuntableau de descripteurs de champ (voir ci-dessous pour la disposition des descripteurs)
n + 11 octet0x0D comme terminateur de tableau de descripteur de champ
  • La fonction ISMARKEDO vérifie ce drapeau (BEGIN TRANSACTION le met à 1, END TRANSACTION et ROLLBACK le remettent à 0).
  • Si ce drapeau est à 1, le message Base chiffrée apparaît.
  • Le nombre maximum de champs est de 255.
  • n signifie le dernier octet du tableau de descripteurs de champ.

Tableau de descripteurs de champ

Disposition des descripteurs de champs dans dBASE :

OctetSommaireSignification
0–1011 octetsNom du champ en ASCII (zéro rempli)
111 octetType de champ. Valeurs autorisées : C, D, F, L, M ou N (voir le tableau suivant pour les significations)
12–154 octetsRéservé
161 octetLongueur de champ en binaire (maximum 254 (0xFE)).
171 octetNombre décimal de champ en binaire
18–192 octetsID de la zone de travail
201 octetExemple
21–3010 octetsRéservé
311 octetIndicateur de champ MDX de production ; 1 si le champ a une balise d’index dans le fichier MDX de production, 0 sinon

Enregistrements de la base de données

Chaque enregistrement commence par un indicateur de suppression (1 octet). Les champs sont enveloppés dans des enregistrements sans séparateurs de champs. Toutes les données de champ sont au format ASCII. Selon le type de champ, l’application impose des restrictions supplémentaires. Voici les types de champs dans dBase :

Type de champMnémoniqueCe qu’il accepte
CCaractèreN’importe quel texte ASCII (rempli d’espaces jusqu’à la longueur du champ)
DRendez-vousDes chiffres et un caractère pour séparer le mois, le jour et l’année (stockés en interne sous forme de 8 chiffres au format AAAAMMJJ)
FVirgule flottante-, ., 0–9 (justifié à droite, rempli d’espaces)
LLogiqueY, y, N, n, T, t, F, f ou ? (lorsqu’il n’est pas initialisé)
MMémoTout texte ASCII (stocké en interne sous forme de 10 chiffres représentant un numéro de bloc .dbt, justifié à droite, rempli d’espaces)
NNumérique-, ., 0–9 (justifié à droite, rempli d’espaces)

Références

Voir aussi