Введение
База данных, хранящаяся в виде обычного неструктурированного файла.
Плоская файловая база данных — это база данных, хранящаяся в файле, называемом плоским файлом. Записи имеют единый формат, и отсутствуют структуры для индексации или определения связей между записями. Файл прост в устройстве. Плоским файлом может быть обычный текстовый файл (например, CSV, TXT или TSV) или двоичный файл. Связи между данными могут быть установлены на основе содержимого базы данных, но сам формат базы данных не делает эти связи явными. Обычно этот термин подразумевает небольшую базу данных, однако плоскими могут быть и очень большие базы данных.
Обзор
Обычно в обычных текстовых файлах каждая строка содержит одну запись. Существуют различные способы представления данных. В файлах с разделителями-запятыми (CSV) и файлах с разделителями, поля могут быть разделены разделителями, такими как запятые или символы табуляции. В других случаях каждое поле может иметь фиксированную длину, а короткие значения могут дополняться пробелами. Для предотвращения конфликтов разделителей может потребоваться дополнительное форматирование. Использование разделителей требует определенных накладных расходов на их поиск при каждом обращении (в отличие от форматирования фиксированной ширины), что может повлиять на производительность. Однако использование символьных разделителей (особенно запятых) также является простой формой сжатия данных, которая может повысить общую производительность за счет уменьшения объемов данных, особенно при передаче данных. Использование символьных разделителей, включающих информацию о длине (декларативная нотация), встречается относительно редко, но значительно снижает накладные расходы, связанные с определением границ каждого поля. Примеры плоских файлов включают /etc/passwd и /etc/group в Unix-подобных операционных системах. Другим примером плоского файла является список имен и адресов с полями "Имя", "Адрес" и "Номер телефона". Список имен, адресов и телефонных номеров, написанный от руки на листе бумаги, представляет собой плоскую базу данных. Это также можно сделать с помощью любой пишущей машинки или текстового процессора. Для реализации плоской базы данных можно использовать программу для работы с электронными таблицами или текстовый редактор, которые затем можно распечатать или использовать онлайн для расширенных возможностей поиска.
История
Работа Германа Холлерита для Бюро переписи населения США, впервые применённая на Переписи населения США 1890 года и включавшая в себя обработку данных посредством перфокарт, иногда рассматривается как первая компьютеризированная база данных с плоской структурой, поскольку она не содержала карт, индексирующих другие карты, или иным образом связывающих отдельные карты друг с другом, кроме как по принадлежности к группе. В 1980-х годах конфигурируемые компьютерные приложения для работы с базами данных с плоской структурой были популярны на IBM PC и Macintosh. Эти программы были разработаны, чтобы упростить проектирование и использование баз данных для отдельных пользователей и по популярности почти не уступали текстовым процессорам и электронным таблицам. Примеры программного обеспечения для баз данных с плоской структурой включают ранние версии FileMaker, условно-бесплатную PC File и популярную dBase. Базы данных с плоской структурой широко распространены и используются повсеместно, поскольку их легко создавать и редактировать, и они подходят для множества задач простым и понятным способом.
Современные реализации
Линейные хранилища данных NoSQL, данные в формате JSON, примитивные электронные таблицы (например, разделенные запятыми или табуляцией) и текстовые файлы можно рассматривать как плоские файловые базы данных, поскольку им не хватает встроенных индексов, ссылок между элементами данных или сложных типов данных. Программы для управления коллекциями книг, записями о встречах и адресными книгами могут использовать, по сути, одноцелевые плоские файловые базы данных, сохраняя и извлекая информацию из плоских файлов без индексов или систем перекрестных ссылок. Хотя пользователь может создать оглавление в текстовом файле, сам формат текстового файла не предусматривает концепцию оглавления. Если пользователь напишет "друзья с Кэти" в поле "Примечания" для контактной информации Джона, это будет интерпретировано пользователем, а не являться встроенной функцией базы данных. Когда система управления базами данных начинает распознавать и кодифицировать связи между записями, она перестает быть "плоской", а когда она имеет детальную систему для описания типов и иерархических связей, она становится слишком структурированной, чтобы считаться "плоской".