Una base de datos de archivo plano es una base de datos almacenada en un archivo llamado archivo plano . Los registros siguen un formato uniforme y no existen estructuras para indexar o reconocer relaciones entre registros. El archivo es simple. Un archivo plano puede ser un archivo de texto sin formato (por ejemplo, csv , txt o tsv ) o un archivo binario . Las relaciones se pueden inferir a partir de los datos de la base de datos, pero el formato de la base de datos en sí no hace explícitas esas relaciones.
El término generalmente implica una base de datos pequeña, pero las bases de datos muy grandes también pueden ser planas.
Los archivos de texto simple generalmente contienen un registro por línea. [2]
Entre los ejemplos de archivos planos se incluyen /etc/passwd
y /etc/group
en sistemas operativos tipo Unix . Otro ejemplo de archivo plano es una lista de nombres y direcciones con los campos Nombre , Dirección y Número de teléfono .
Una lista de nombres, direcciones y números de teléfono escritos a mano en una hoja de papel es una base de datos de archivo plano. Esto también se puede hacer con cualquier máquina de escribir o procesador de textos . Se puede utilizar una hoja de cálculo o un programa de edición de texto para implementar una base de datos de archivo plano, que luego se puede imprimir o utilizar en línea para mejorar las capacidades de búsqueda.
Los archivos planos generalmente están separados por delimitadores (como valores separados por comas (CSV) ) o tienen un ancho fijo (cada columna tiene un ancho fijo).
En los archivos de valores separados por delimitadores , los campos están separados por un carácter o cadena llamado delimitador . Las variantes comunes son CSV (el delimitador es ,
), valores separados por tabulaciones (TSV) (el delimitador es el carácter de tabulación), valores separados por espacios y valores separados por barras verticales (el delimitador es |
).
Si se permite el uso de delimitadores dentro de un campo, debe haber una forma de distinguir los caracteres o cadenas delimitadores que se utilizan de manera literal. Por ejemplo, considere la oración "Si tengo que hacerlo, lo haré yo mismo". Para codificarla en CSV, debe haber una forma de evitar que la coma divida el campo. Existen varias estrategias para evitar la colisión de delimitadores .
En los formatos de ancho fijo, cada columna tiene una longitud fija y los campos se rellenan con espacios según sea necesario. Las longitudes fijas se pueden predefinir y conocer de antemano (es decir, indicar en la especificación del formato) o analizar desde un encabezado .
Con longitudes predefinidas, los campos están limitados a una longitud máxima. La necesidad de campos más largos puede aparecer en algún momento después de que se defina el formato. Las posibles soluciones alternativas incluyen abreviar frases, reemplazar valores con enlaces (por ejemplo, una URL que apunte al valor) y dividir un archivo en varios archivos.
En el caso de los formatos separados por delimitadores, para determinar los límites de los campos es necesario encontrar los delimitadores, lo que genera cierta sobrecarga computacional . Esto no es necesario en el caso de los formatos de ancho fijo. Sin embargo, estos formatos pueden generar tamaños de archivo innecesariamente grandes si los campos tienden a ser más cortos que las longitudes reservadas para ellos.
Los delimitadores se pueden utilizar junto con una notación que indique la longitud de cada campo. Por ejemplo, 5apple|9pineapple
especifica la longitud (5 y 9) de cada campo. Esto se denomina notación declarativa . Tiene poca sobrecarga y evita de forma trivial las colisiones de delimitadores, pero es frágil cuando se edita manualmente y rara vez se utiliza.
El trabajo de Herman Hollerith para la Oficina del Censo de los Estados Unidos , que se ejecutó por primera vez en el Censo de los Estados Unidos de 1890 , que involucraba datos tabulados mediante perforaciones en tarjetas de papel, [3] a veces se considera la primera base de datos de archivo plano computarizada, ya que no incluía tarjetas que indexaran otras tarjetas o que relacionaran de otro modo las tarjetas individuales entre sí, excepto por su membresía grupal. [ cita requerida ]
En la década de 1980, las aplicaciones informáticas de bases de datos configurables en archivos planos eran populares en IBM PC y Macintosh . Estos programas se diseñaron para facilitar a las personas el diseño y el uso de sus propias bases de datos, y casi estaban a la par de los procesadores de texto y las hojas de cálculo en cuanto a popularidad. [ cita requerida ] Entre los ejemplos de software de bases de datos en archivos planos se incluyen las primeras versiones de FileMaker y el shareware PC-File y el popular dBase .
Las bases de datos de archivos planos son comunes y omnipresentes porque son fáciles de escribir y editar, y se adaptan a una gran variedad de propósitos de una manera sencilla.
Los almacenes lineales de datos NoSQL , datos JSON , hojas de cálculo primitivas (quizás separadas por comas o delimitadas por tabulaciones) y archivos de texto pueden considerarse bases de datos de archivos planos porque carecen de índices integrados, referencias integradas entre elementos de datos y tipos de datos complejos. Los programas para administrar colecciones de libros o agendas y libretas de direcciones pueden utilizar bases de datos de archivos planos de propósito único, que almacenan y recuperan información de archivos planos sin índices ni sistemas de puntero.
Si bien un usuario puede escribir una tabla de contenidos en un archivo de texto, el formato de archivo de texto en sí no incluye el concepto de tabla de contenidos. Si bien un usuario puede escribir "amigos de Kathy" en la sección "Notas" de la información de contacto de John, esto es interpretado por el usuario en lugar de ser una característica incorporada de la base de datos. Cuando un sistema de base de datos comienza a reconocer y codificar relaciones entre registros, comienza a alejarse de ser "plano", y cuando tiene un sistema detallado para describir tipos y relaciones jerárquicas, ahora está demasiado estructurado para ser considerado "plano".
El siguiente ejemplo ilustra los elementos típicos de una base de datos de archivos planos. La disposición de los datos consta de una serie de columnas y filas organizadas en formato tabular . En este ejemplo específico se utiliza solo una tabla.
Las columnas incluyen: nombre (el nombre de una persona, segunda columna); equipo (el nombre de un equipo deportivo apoyado por la persona, tercera columna); y un ID numérico único (usado para identificar de forma única los registros, primera columna).
A continuación se muestra un ejemplo de representación textual de los datos descritos:
id nombre equipo1. El blues de Amy2 Bob Rojos3. El blues de Chuck4. Azules de Richard5 Ethel Rojos6 Fred Blues7 azules de Gilly8 Hank rojos9 El blues de Hank
Este tipo de representación de datos es bastante estándar para una base de datos de archivo plano, aunque hay algunas consideraciones adicionales que no son evidentes en el texto: