¿Qué es el formato de archivo DBF?
Un archivo .dbf contiene una base de datos estructurada organizada en tablas con registros. El formato se originó en 1983 junto con dBASE II y se convirtió en el estándar de facto de la familia más amplia de herramientas de base de datos xBase. .dbf fue diseñado para facilitar el intercambio de datos entre diversas aplicaciones. Existen múltiples versiones de dialectos del formato .dbf -cada iteración añade nuevos tipos de datos y marcadores- y debido a estas diferencias, no todas las aplicaciones pueden abrir un archivo .dbf determinado sin saber qué dialecto sigue.
El encabezado del archivo .dbf está codificado en binario y describe la estructura de la base de datos. Contiene información como:
- Un byte de marcador de versión (desplazamiento 0; p. ej.,
0x03= dBASE III/IV sin memo,0x30= Visual FoxPro,0x83= dBASE III con memo compañero), - Fecha de la última actualización de la base de datos (bytes 1-3, almacenados como AA MM DD),
- Número de registros - un entero de 32 bits,
- Longitud del encabezado y longitud del campo de registro,
- Marcador de cifrado,
- Matriz de descriptores de campo - una tabla de nombres de columna, tipos y anchos fijos.
Después del encabezado, los registros se guardan en texto ASCII o formato binario con una longitud de campo constante. Cuando la aplicación elimina un registro, su primer byte se establece en un asterisco (0x2A), marcándolo como lógicamente eliminado en lugar de borrarlo físicamente. Los nuevos registros se añaden al final del archivo, aumentando su tamaño; algunas implementaciones compactan el archivo más tarde con una operación PACK y sobrescriben los registros previamente eliminados.
Los datos de tipo Memo (texto largo, binario u objetos OLE) no se almacenan dentro del propio .dbf -viven en un archivo compañero: .dbt para dBASE III/IV o .fpt para FoxPro/Visual FoxPro. El registro .dbf almacena solo un puntero de número de bloque hacia el compañero. Los archivos .dbf también se pueden abrir utilizando visores DBF dedicados; tales herramientas permiten a los usuarios inspeccionar el contenido del archivo en una forma legible para humanos. Los archivos .dbf no deben abrirse con un editor de texto, ya que el encabezado binario y los datos de campo aparecerán como caracteres ininteligibles.
Seguridad y protección
RIESGO: LOWUn .dbf contiene datos tabulares simples, no es ejecutable, por lo que abrir uno es seguro. Dos precauciones prácticas: (1) los desajustes en la codificación de caracteres/página de códigos pueden corromper el texto acentuado o no latino -elija el juego de caracteres correcto al importar; (2) los DBF de fuentes contables, fiscales o de GIS pueden contener datos personales/sensibles, así que evite subirlos a visores en línea. Los DBF dañados (falta el archivo memo o están truncados) pueden requerir una herramienta de reparación/recuperación en lugar de un programa de apertura normal.
Detalles del formato
en pocas palabrasProgramas que abren archivos DBF
Detalles técnicos
especificación profunda| Categoría de formato | Base de datos binaria plana de tabla única; diseño de registro de longitud fija con un encabezado binario y una matriz de descriptores de campo |
| Tipo MIME | application/dbf (también application/dbase y application/x-dbf en varias implementaciones) |
| Identificación de versión | El primer byte (desplazamiento 0) es un marcador de dialecto en lugar de un número mágico fijo: 0x03 = dBASE III/IV sin memo, 0x30 = Visual FoxPro, 0x83 = dBASE III con memo .dbt, 0xF5 = FoxPro 2.x con memo |
| Estructura del encabezado | Encabezado base de 32 bytes + un descriptor de campo de 32 bytes por columna + byte terminador 0x0D; los descriptores de campo comienzan en el desplazamiento 32 |
| Manejo de eliminación | Los registros eliminados se marcan lógicamente estableciendo el primer byte del registro en 0x2A (asterisco ASCII); permanecen en el archivo hasta que se eliminan explícitamente mediante una operación PACK |
| Codificación de registros | Registros de longitud fija; campos de caracteres en ASCII, campos numéricos como cadenas ASCII decimales zonificadas, fecha como ASCII YYYYMMDD de 8 bytes, bytes binarios/raw para otros tipos |
| Tipos de campo compatibles | Carácter (C), Numérico (N), Fecha (D), Lógico (L), Memo (M), Flotante (F); Visual FoxPro añade Moneda (Y), Fecha y hora (T), Entero (I) y General (G) para objetos OLE |
| Archivo compañero Memo | .dbt para dBASE III/IV; .fpt para FoxPro y Visual FoxPro -el registro .dbf almacena solo un puntero de número de bloque de 10 dígitos, no los datos memo en sí |
| Archivos compañeros de índice | .ndx (índice único de dBASE), .mdx (multi-índice de dBASE IV), .cdx (índice compuesto de FoxPro/VFP) -todos externos; no se incrustan datos de índice en el .dbf |
| Máximo de registros | Hasta 1.073.741.823 registros por tabla (2³⁰ − 1) en dBASE 7; los dialectos anteriores limitan a conteos menores dependiendo del ancho del campo del encabezado |
| Máximo de campos por tabla | 255 campos en dialectos xBase estándar (dBASE III hasta FoxPro/VFP) |
| Longitud del nombre de campo | Hasta 10 caracteres en dBASE III/IV y FoxPro; hasta 128 caracteres en el modo de nombres de campo largos de dBASE 7 |
| Soporte de página de códigos | Identificador de página de códigos almacenado en el desplazamiento del encabezado 29 (0x1D); valores comunes: 0x03 Windows ANSI, 0x57 US OEM (CP437), 0x64 Eastern European OEM (CP852) |
| Marcador de cifrado | El byte del encabezado en el desplazamiento 15 (0x0F) indica el cifrado de registros a nivel de dBASE; si está activado, los datos del registro están ofuscados mediante XOR -distinto de cualquier cifrado a nivel de sistema de archivos |
| Uso en GIS | El ESRI Shapefile siempre incluye un .dbf compañero para los atributos de los elementos junto al archivo de geometría .shp; herramientas como GDAL/ogr2ogr leen y escriben estos archivos .dbf de forma nativa |
| Lanzado | 1983 (dBASE II/III); format family known as xBase |
| Estándar abierto | Sí · libre de regalías |
| Especificación | www.dbase.com |
Conversiones de DBF
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos DBF.