Плоская база данных - Flat-file database

Пример модели плоского файла

База плоско-файл представляет собой базу данных хранятся в файле называется плоский файл . Записи следуют единому формату, и нет структур для индексации или распознавания отношений между записями. Файл простой. Плоский файл может быть простым текстовым файлом или двоичным файлом . Отношения могут быть выведены из данных в базе данных, но сам формат базы данных не делает эти отношения явными.

Этот термин обычно подразумевает небольшую базу данных, но очень большие базы данных также могут быть плоскими.

Обзор

Обычные текстовые файлы обычно содержат по одной записи в строке. Существуют разные условные обозначения для изображения данных. В разделенных запятыми и разделителями значения , разделенные файлы, поля могут быть разделены разделителей , такие как запятая или вкладку символов. В других случаях каждое поле может иметь фиксированную длину; короткие значения могут быть дополнены пробелами . Во избежание коллизии разделителей может потребоваться дополнительное форматирование .

Использование разделителей влечет за собой некоторые накладные расходы на их поиск при каждой обработке (в отличие от форматирования с фиксированной шириной), что может сказаться на производительности . Однако использование разделителей символов (особенно запятых) также является грубой формой сжатия данных, которая может повысить общую производительность за счет уменьшения объемов данных - особенно для целей передачи данных . Использование разделителей символов, которые включают компонент длины ( декларативная нотация ), сравнительно редко, но значительно сокращает накладные расходы, связанные с определением размера каждого поля.

Примеры плоских файлов включают /etc/passwd и /etc/group в Unix-подобных операционных системах. Другой пример плоского файла - это список имен и адресов с полями Имя , Адрес и Номер телефона .

Список имен, адресов и номеров телефонов, написанный от руки на листе бумаги, представляет собой базу данных в виде плоского файла. Это также можно сделать на любой пишущей машинке или текстовом редакторе . Для реализации базы данных в виде плоских файлов можно использовать программу редактора электронных таблиц или текстов , которую затем можно распечатать или использовать в интерактивном режиме для улучшения возможностей поиска.

История

Работа Германа Холлерита для Бюро переписи населения США, впервые осуществленная во время переписи населения США 1890 года , включающая данные, табулированные с помощью дыроколов в бумажных карточках, может считаться первой компьютеризированной базой данных в виде плоских файлов, поскольку она (предположительно) не включала никаких карточек, индексирующих другие карты или иным образом связывающие отдельные записи (т. е. отдельные карты) друг с другом, за исключением их группового членства.

В 1980-х годах настраиваемые компьютерные приложения баз данных с плоскими файлами были популярны на IBM PC и Macintosh . Эти программы были разработаны, чтобы облегчить людям создание и использование собственных баз данных, и по популярности почти не уступали текстовым редакторам и электронным таблицам . Примеры программного обеспечения баз данных плоских файлов включают в себя ранние версии FileMaker и условно - бесплатные программы PC-File и популярный Dbase .

Базы данных в виде плоских файлов являются обычными и повсеместными, потому что их легко писать и редактировать, и они подходят для множества целей несложным образом.

Современные реализации

Линейные хранилища данных NoSQL, данные в формате JSON , примитивные электронные таблицы (возможно, разделенные запятыми или разделенные табуляцией) и текстовые файлы могут рассматриваться как базы данных с плоскими файлами, поскольку в них отсутствуют интегрированные индексы, встроенные ссылки между элементами данных, или сложные типы данных. Программы для управления коллекциями книг или встреч и адресной книгой могут использовать по существу одноцелевые базы данных плоских файлов, хранящие и извлекающие информацию из плоских файлов, не украшенных индексами или системами указания.

Хотя пользователь может записать оглавление в текстовый файл, сам формат текстового файла не включает понятие оглавления. Хотя пользователь может написать «друзья с Кэти» в разделе «Примечания» для контактной информации Джона, это интерпретируется пользователем, а не встроенной функцией базы данных. Когда система баз данных начинает распознавать и кодифицировать отношения между записями, она начинает отходить от «плоской», а когда у нее есть подробная система для описания типов и иерархических отношений, она теперь слишком структурирована, чтобы считаться «плоской».

Пример базы данных

В следующем примере показаны типичные элементы базы данных с плоскими файлами. Структура данных состоит из ряда столбцов и строк, организованных в табличный формат . В этом конкретном примере используется только одна таблица.

Столбцы включают: имя ( имя человека, второй столбец); команда (название спортивной команды, которую поддерживает человек, третий столбец); и числовой уникальный идентификатор (используется для однозначной идентификации записей, первый столбец).

Вот пример текстового представления описанных данных:

id    name    team
1     Amy     Blues
2     Bob     Reds
3     Chuck   Blues
4     Richard Blues
5     Ethel   Reds
6     Fred    Blues
7     Gilly   Blues
8     Hank    Reds
9     Hank    Blues

Этот тип представления данных является вполне стандартным для базы данных с плоскими файлами, хотя есть некоторые дополнительные соображения, которые не сразу очевидны из текста:

  • Типы данных: каждый столбец в таблице базы данных, такой как приведенная выше, обычно ограничен определенным типом данных . Такие ограничения обычно устанавливаются условно, но официально не указываются, если данные не передаются в систему реляционной базы данных .
  • Разделенные столбцы. В приведенном выше примере отдельные столбцы разделены пробелами . Это также называется отступом или форматированием данных с фиксированной шириной. Другое распространенное соглашение - разделение столбцов с помощью одного или нескольких символов- разделителей , например табуляции или запятой.
  • Реляционная алгебра: каждая строка или запись в приведенной выше таблице соответствует стандартному определению кортежа в реляционной алгебре (в приведенном выше примере изображена серия из трех кортежей). Кроме того, первая строка определяет имена полей , которые связаны со значениями каждой строки.
  • Система управления базой данных: поскольку формальные операции, возможные с текстовым файлом, обычно более ограничены, чем хотелось бы, текст в приведенном выше примере обычно представляет промежуточное состояние данных до их передачи в систему управления базой данных .

Смотрите также

  • / etc / passwd - часто используемый плоский файл, используемый для детализации пользователей в UNIX
  • CSV (стандартные значения, разделенные запятыми)
  • Berkeley DB (типичная база данных с плоскими файлами)
  • AWK (классический процессор плоских файлов)
  • Recfiles (формат файла базы данных в виде простого текста)

Рекомендации