База данных в виде плоских файлов
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2015 г. ) |
![]() | Эта статья , возможно, содержит оригинальные исследования . ( Март 2015 г. ) |

База данных с плоским файлом — это база данных , хранящаяся в файле, называемом плоским файлом . Записи имеют единый формат, и не существует структур для индексации или распознавания связей между записями. Файл простой. Плоский файл может быть обычным текстовым файлом (например, csv , txt или tsv ) или двоичным файлом . Отношения можно вывести из данных в базе данных, но сам формат базы данных не делает эти отношения явными.
Этот термин обычно подразумевает небольшую базу данных, но очень большие базы данных также могут быть плоскими.
Обзор [ править ]
Обычные текстовые файлы обычно содержат одну запись в строке. [2]
Примеры плоских файлов включают в себя /etc/passwd
и /etc/group
в Unix-подобных операционных системах. Другой пример плоского файла — список имен и адресов с полями «Имя» , «Адрес» и «Номер телефона» .
Список имен, адресов и номеров телефонов, написанный от руки на листе бумаги, представляет собой базу данных в виде плоского файла. Это также можно сделать с помощью любой пишущей машинки или текстового процессора . в Интернете для улучшения Для создания базы данных в виде плоского файла можно использовать программу электронных таблиц или текстовый редактор, которую затем можно распечатать или использовать возможностей поиска.
Плоские файлы обычно разделяются разделителями (например, значения, разделенные запятыми (CSV) ) или имеют фиксированную ширину (каждый столбец имеет фиксированную ширину).
Значения, разделенные разделителями [ править ]
В значений, разделенных разделителями файлах , поля разделяются символом или строкой, называемой разделителем . Распространенные варианты — CSV (разделитель — ,
), значения, разделенные табуляцией (TSV) (разделителем является символ табуляции), значения, разделенные пробелом, а также значения, разделенные вертикальной чертой (разделителем является |
).
Если разделитель разрешен внутри поля, должен быть способ различать символы-разделители или строки, которые понимаются буквально. Например, рассмотрим предложение «Если мне придется, я сделаю это сам». Чтобы закодировать его в CSV, должен быть способ предотвратить разделение поля запятой. Существует несколько стратегий предотвращения коллизий разделителей .
Форматы фиксированной ширины [ править ]
дополняются пробелами В форматах с фиксированной шириной каждый столбец имеет фиксированную длину, а поля при необходимости . Фиксированная длина может быть предопределена и известна заранее (т.е. указана в спецификации формата) или проанализирована из заголовка .
При предопределенной длине поля ограничены максимальной длиной. Потребность в более длинных полях может возникнуть через некоторое время после определения формата. Возможные обходные пути включают сокращение фраз, замену значений ссылками (например, URI, указывающим на значение) и разделение файла на несколько файлов.
В форматах, разделенных разделителями, определение границ поля требует поиска разделителей, что требует некоторых вычислительных затрат . Это не требуется для форматов фиксированной ширины. Однако форматы с фиксированной шириной могут привести к неоправданно большому размеру файла, если поля имеют тенденцию быть короче, чем длина, зарезервированная для них.
Декларативная нотация [ править ]
Разделители можно использовать вместе с обозначениями, указывающими длину каждого поля. Например, 5apple|9pineapple
определяет длину (5 и 9) каждого поля. Это называется декларативной нотацией . Он имеет низкие накладные расходы и тривиально позволяет избежать конфликтов разделителей, но он ненадежен при редактировании вручную и редко используется.
История [ править ]
Германа Холлерита Работа для Бюро переписи населения США впервые была осуществлена во время переписи населения США 1890 года , включая данные, табулированные с помощью дыроколов в бумажных карточках. [3] иногда считается первой компьютеризированной базой данных в виде плоских файлов, поскольку она не включала карточек, индексирующих другие карточки или иным образом связывающих отдельные карточки друг с другом, за исключением их членства в группе. [ нужна ссылка ]
В 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 (текстовый формат файла базы данных)
Ссылки [ править ]

- ↑ Глоссарий по интеграции данных . Архивировано 20 марта 2009 г. в Wayback Machine , Министерство транспорта США, август 2001 г.
- ^ Фаулер, Гленн (1994), «cql: язык запросов к базе данных плоских файлов» , WTEC'94: Материалы технической конференции USENIX зимой 1994 г. на технической конференции USENIX зимой 1994 г.
- ^ Блоджетт, Джон Х.; Шульц, Клэр К. (1969). «Герман Холлерит: пионер обработки данных» . Американская документация . 20 (3): 221–226. дои : 10.1002/asi.4630200307 . ISSN 1936-6108 .