Qu'est-ce que le format de fichier DBF ?
Un fichier .dbf contient une base de données structurée organisée en tables avec des enregistrements. Le format est né en 1983 avec dBASE II et est devenu le standard de facto de la famille plus large d'outils de base de données xBase. Le .dbf a été conçu pour faciliter l'échange de données entre diverses applications. Plusieurs variantes de dialectes du format .dbf existent - chaque itération ajoutant de nouveaux types de données et drapeaux - et en raison de ces différences, toutes les applications ne peuvent pas ouvrir un fichier .dbf donné sans connaître le dialecte qu'il suit.
L'en-tête du fichier .dbf est encodé en binaire et décrit la structure de la base de données. Il contient des informations telles que :
- Un octet de drapeau de version (décalage 0 ; ex:
0x03= dBASE III/IV sans mémo,0x30= Visual FoxPro,0x83= dBASE III avec mémo compagnon), - Date de la dernière mise à jour de la base de données (octets 1-3, stockés sous la forme AA MM JJ),
- Nombre d'enregistrements - un entier de 32 bits,
- Longueur de l'en-tête et longueur des champs d'enregistrement,
- Drapeau de chiffrement,
- Tableau de descripteurs de champs - une table des noms de colonnes, types et largeurs fixes.
Après l'en-tête, les enregistrements sont sauvegardés en texte ASCII ou en format binaire avec une longueur de champ constante. Lorsqu'un enregistrement est supprimé par l'application, son premier octet est défini par un astérisque (0x2A), le marquant comme logiquement supprimé plutôt que de l'effacer physiquement. Les nouveaux enregistrements sont ajoutés à la fin du fichier, augmentant sa taille ; certaines implémentations compactent plus tard le fichier avec une opération PACK et écrasent les enregistrements précédemment supprimés.
Les données mémo (texte long, binaire ou objets OLE) ne sont pas stockées à l'intérieur du .dbf lui-même - elles résident dans un fichier compagnon : .dbt pour dBASE III/IV ou .fpt pour FoxPro/Visual FoxPro. L'enregistrement .dbf ne stocke qu'un pointeur de numéro de bloc vers le compagnon. Les fichiers .dbf peuvent également être ouverts à l'aide de visionneuses DBF dédiées ; ces outils permettent aux utilisateurs d'inspecter le contenu du fichier sous une forme lisible par l'homme. Les fichiers .dbf ne doivent pas être ouverts avec un éditeur de texte, car l'en-tête binaire et les données de champ apparaîtront comme des caractères illisibles.
Sécurité et sûreté
RISQUE : LOWUn .dbf contient des données tabulaires simples, non exécutables, donc en ouvrir un est sûr. Deux précautions pratiques : (1) les décalages de jeu de caractères/page de code peuvent rendre le texte accentué ou non latin illisible - choisissez le bon encodage lors de l'importation ; (2) les DBF provenant de sources comptables, fiscales ou GIS peuvent contenir des données personnelles/sensibles, évitez donc de les télécharger sur des visionneuses en ligne. Les DBF corrompus (fichier mémo manquant ou tronqué) peuvent nécessiter un outil de réparation/récupération plutôt qu'un simple logiciel d'ouverture.
Détails du format
en brefProgrammes qui ouvrent les fichiers DBF
Détails techniques
spécifications approfondies| Catégorie de format | Base de données binaire plate à table unique ; disposition d'enregistrement à longueur fixe avec un en-tête binaire et un tableau de descripteurs de champs |
| Type MIME | application/dbf (également application/dbase et application/x-dbf dans diverses implémentations) |
| Identification de version | Le premier octet (décalage 0) est un drapeau de dialecte plutôt qu'un nombre magique fixe : 0x03 = dBASE III/IV sans mémo, 0x30 = Visual FoxPro, 0x83 = dBASE III avec mémo .dbt, 0xF5 = FoxPro 2.x avec mémo |
| Structure de l'en-tête | En-tête de base de 32 octets + un descripteur de champ de 32 octets par colonne + octet de terminaison 0x0D ; les descripteurs de champs commencent au décalage 32 |
| Gestion de la suppression | Les enregistrements supprimés sont marqués logiquement en définissant le premier octet de l'enregistrement sur 0x2A (astérisque ASCII) ; ils restent dans le fichier jusqu'à ce qu'ils soient explicitement supprimés via une opération PACK |
| Encodage des enregistrements | Enregistrements à longueur fixe ; champs de caractères en ASCII, champs numériques sous forme de chaînes ASCII décimales zonées, date sous forme de YYYYMMDD ASCII de 8 octets, octets binaires/bruts pour les autres types |
| Types de champs pris en charge | Caractère (C), Numérique (N), Date (D), Logique (L), Mémo (M), Flottant (F) ; Visual FoxPro ajoute Devise (Y), DateTime (T), Entier (I) et Général (G) pour les objets OLE |
| Fichier compagnon mémo | .dbt pour dBASE III/IV ; .fpt pour FoxPro et Visual FoxPro - l'enregistrement .dbf stocke uniquement un pointeur de numéro de bloc à 10 chiffres, pas les données mémo elles-mêmes |
| Fichiers compagnons d'index | .ndx (index unique dBASE), .mdx (multi-index dBASE IV), .cdx (index composé FoxPro/VFP) - tous externes ; aucune donnée d'index n'est intégrée dans le .dbf |
| Nombre maximum d'enregistrements | Jusqu'à 1 073 741 823 enregistrements par table (2³⁰ − 1) dans dBASE 7 ; les dialectes antérieurs plafonnent à des nombres inférieurs selon la largeur du champ d'en-tête |
| Nombre maximum de champs par table | 255 champs dans les dialectes xBase standards (dBASE III à FoxPro/VFP) |
| Longueur du nom de champ | Jusqu'à 10 caractères dans dBASE III/IV et FoxPro ; jusqu'à 128 caractères dans le mode Noms de Champs Longs de dBASE 7 |
| Prise en charge de la page de code | Identifiant de page de code stocké au décalage d'en-tête 29 (0x1D) ; valeurs courantes : 0x03 Windows ANSI, 0x57 US OEM (CP437), 0x64 Eastern European OEM (CP852) |
| Drapeau de chiffrement | L'octet d'en-tête au décalage 15 (0x0F) signale le chiffrement des enregistrements au niveau dBASE ; s'il est défini, les données d'enregistrement sont obscurcies par XOR - distinct de tout chiffrement au niveau du système de fichiers |
| Usage GIS | Le Shapefile ESRI contient toujours un .dbf compagnon pour les attributs d'entités aux côtés du fichier de géométrie .shp ; des outils tels que GDAL/ogr2ogr lisent et écrivent ces fichiers .dbf nativement |
| Publié | 1983 (dBASE II/III); format family known as xBase |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.dbase.com |
Conversions DBF
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers DBF.