Что значит плоский файл

Содержание
  1. Плоские файлы
  2. Иллюстрированный самоучитель по SQL для начинающих
  3. Основы реляционных баз данных
  4. Плоские файлы
  5. ресурс для начинающих веб-разработчиков комплексные веб-услуги по созданию сайтов
  6. Справочный материал по основным языкам программирования и верстки сайтов.
  7. Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.
  8. Использование веб-редактора Adobe Dreamweaver в разработке сайтов.
  9. Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.
  10. Разработка веб сайтов под «ключ».
  11. Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.
  12. Веб-инструмент
  13. Веб-мастерская
  14. Веб-услуги
  15. Веб-графика
  16. Веб-ресурсы
  17. Посмотрите в Google
  18. Подписка
  19. Опрос
  20. Плоские файлы. Создание, заполнение, чтение, замена и удаление файла
  21. Создание файла
  22. Заполнение файла
  23. Чтение информации из файла
  24. Замена записи
  25. Удаление записи

Плоские файлы

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

Скажем, вам нужно сохранить в системе плоских файлов имена и адреса клиентов вашей компании. У этой системы может быть примерно такая структура.

Harold Percival 26262 S . Howards Mill Rd Westminster CA92683
Jerry Appel 32323 S. River Lane Rd Santa Ana CA92705
Adrian Hansen 232 Glenwood Court Anaheim CA92640
John Baker 2222 Lafayette St Garden Grove CA92643
Michael Pens 77730 S. New Era Rd Irvine CA92715
Bob Michimoto 25252 S. Kelmstey Dr Stanton CA92610
Linda Smith 444 S.E. Seventh St Costa Mesa CA92635
Robert Funnell 2424 Shen Court Anaheim CA92640
Bill Checkal 9595 Curry Dr Stanton CA92610
Jed Style 3535 Randall St Santa Ana CA92705
Читайте также:  Кардиомагнил что это значит

Как видите, в файле нет ничего, кроме данных. Каждое поле имеет фиксированную длину (например, длина поля имени всегда равна 15 символам), и в этой структуре поля не отделены друг от друга. Тот, кто создал базу данных, для каждого из полей назначил позицию и длину. Любая программа, которая использует этот файл, должна «знать», какие характеристики назначены каждому полю, потому что этой информации в самой базе данных нет.

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

Базы данных облегчают работу программистов, потому что при работе с данными в детали «вникает» СУБД. А приложениям, написанным для работы с плоскими файлами, необходимо держать эти детали при себе, т.е. в собственном коде. Если нескольким приложениям приходится одновременно получать доступ к одним и тем же данным из плоских файлов, то в каждом из приложений обязательно должен быть код, предназначенный для работы с этими данными. Но когда используется СУБД, то такой код в приложениях вообще не нужен.

Читайте также:  Что значит доход от продажи машины

Кроме того, если в приложении имеется код для работы с данными из плоских файлов, причем работает он только на определенной аппаратной платформе, то перенос приложения на новую платформу — это довольно сложное дело. Ведь придется изменить весь код, связанный с аппаратным обеспечением. А вот перенос на другую платформу аналогичного СУБД-приложения проходит намного проще — с меньшим количеством проблем и выпитого аспирина.

Источник

Иллюстрированный самоучитель по SQL для начинающих

Основы реляционных баз данных

Плоские файлы

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

Скажем, вам нужно сохранить в системе плоских файлов имена и адреса клиентов вашей компании. У этой системы может быть примерно такая структура.

Harold Percival 26262 S. Howards Mill Rd Westminster CA92683
Jerry Appel 32323 S. River Lane Rd Santa Ana CA92705
Adrian Hansen 232 Glenwood Court Anaheim CA92640
John Baker 2222 Lafayette St Garden Grove CA92643
Michael Pens 77730 S. New Era Rd Irvine CA92715
Bob Michimoto 25252 S. Kelmstey Dr Stanton CA92610
Linda Smith 444 S.E. Seventh St Costa Mesa CA92635
Robert Funnell 2424 Shen Court Anaheim CA92640
Bill Checkal 9595 Curry Dr Stanton CA92610
Jed Style 3535 Randall St Santa Ana CA92705

Как видите, в файле нет ничего, кроме данных. Каждое поле имеет фиксированную длину (например, длина поля имени всегда равна 15 символам), и в этой структуре поля не отделены друг от друга. Тот, кто создал базу данных, для каждого из полей назначил позицию и длину. Любая программа, которая использует этот файл, должна «знать», какие характеристики назначены каждому полю, потому что этой информации в самой базе данных нет.

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

Базы данных облегчают работу программистов, потому что при работе с данными в детали «вникает» СУБД. А приложениям, написанным для работы с плоскими файлами, необходимо держать эти детали при себе, т.е. в собственном коде. Если нескольким приложениям приходится одновременно получать доступ к одним и тем же данным из плоских файлов, то в каждом из приложений обязательно должен быть код, предназначенный для работы с этими данными. Но когда используется СУБД, то такой код в приложениях вообще не нужен.

Кроме того, если в приложении имеется код для работы с данными из плоских файлов, причем работает он только на определенной аппаратной платформе, то перенос приложения на новую платформу – это довольно сложное дело. Ведь придется изменить весь код, связанный с аппаратным обеспечением. А вот перенос на другую платформу аналогичного СУБД-приложения проходит намного проще – с меньшим количеством проблем и выпитого аспирина.

Источник

ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб сайтов под «ключ».

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

Веб-инструмент

Веб-мастерская

Веб-услуги

Веб-графика

Веб-ресурсы

Посмотрите в Google

Подписка

Подпишитесь на получение самых последних новостей и статей, с уведомлением по E-mail.

Опрос

Плоские файлы. Создание, заполнение, чтение, замена и удаление файла

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

Плоские файлы — это точно такие же файлы, как и рассмотренные нами ранее, но часто в двоичном или упакованном виде, позволяющем быстрее осуществлять операции извлечения, удаления и редактирования записей при помощи стандартного набора функций, избавляя программиста от забот о создании собственных библиотек для работы с текстовыми файлами. В состав РНР входит большое число расширений, позволяющих работать с различными видами плоских файлов и разновидностей баз данных Berkeley. Стандартным в настоящий момент считается доступ через расширение dba-функций(Database Abstraction Layer) — единый интерфейс к такого рода файлам.

Примечание . Для подключения расширения dba , которое, как и все остальные расширения, по умолчанию отключено, следует снять комментарий с директивы extension=php_dba.dll в конфигурационном файле php.ini .

Создание файла

Для открытия и создания плоского файла предназначена функция dba_open() , которая имеет следующий синтаксис:

resource dba_open(string name, string mode, string handler)

В качестве первого аргумента функция принимает параметр name с указанием имени файла. Второй параметр mode содержит символы, задающие режим открытия файла, и может принимать следующие значения:

Последний параметр handler определяет тип базы данных или плоского файла и может принимать следующие значения: dbm, ndbm, gdbm, db2, db3, db4, cdb, cdb_make, flatfile, inifile, qdbm . В основном это различные разновидности баз данных Berkeley DB. Нас будет интересовать тип flatfile — плоский файл.

Примечание . Не все форматы доступны по умолчанию, ряд из них конфликтует друг с другом. Для того чтобы выяснить, какие базы данных доступны в системе, следует воспользоваться функцией dba_handlers() , которая не принимает никаких аргументов и возвращает массив из имен доступных баз данных. Самый простой способ получить список баз данных — выполнить команду print_r(dba_handlers()) .

Примечание . Функция dba_list() , которая не принимает никаких аргументов, возвращает массив из полных путей к файлам, открытых в настоящий момент.

В случае успешного выполнения функция возвращает дескриптор открываемого файла, а в случае неудачи — false .

Рассмотрим пример создания плоского файла.

Результатом работы будет пустой файл test.db . Обратите внимание, что как и обычные файлы, в конце скрипта следует закрыть соединение, для чего предназначена специальная функция dba_close( ).

Заполнение файла

После того как файл создан, можно приступить к заполнению его информацией. Для вставки в файл записей типа «ключ-значение» предназначена функция dba_insert() , которая имеет следующий синтаксис:

bool dba_insert(string key, string value, resource handle)

В качестве первого параметра key функция принимает строку с ключем записи, в качестве второго value — значение записи. Последний параметр определяет значение, которое передается дескриптору открытого функцией mda_open() файла. При успешном выполнении функция возвращает true , в случае неудачи — false .

Cкрипт заносит в ранее созданный файл test.db две записи.

Примечание . Формат flatfile не позволяет помещать записи с одинаковыми значениями ключей. Если в файл необходимо поместить несколько записей с одинаковыми ключами, следует воспользоваться форматом, поддерживающим такое поведение, например, cdb.

Примечание . Плоские файлы не допускают вставку нескольких значений для одной записи. Для того, чтобы сохранить в одной записи несколько значений, следует разместить их в массиве и упаковать его в строку при помощи функции serialize() , а при извлечении записи распаковать обратно в массив при помощи функции unserialize() .

Чтение информации из файла

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

bool dba_exists(string key, resource handle)

Функция принимает в качестве первого аргумента ключ key , а в качестве второго — дескриптор файла, возвращаемый функцией mda_open() . Если ключ key найден в файле, возвращается true , в противном случае — false .

Рассмотрим пример работы функции dba_exists() .

Первый вызов функции приводит к выводу строки «Ключ существует», т.к. ранее в файл test.db нами была добавлена запись с ключем «1». Проверка на существование записи с ключем «4» приводит к выводу записи «Такой ключ отсутствует».

После того как существование ключа проверено, можно осуществлять извлечение записи. Для этого предназначена функция dba_fetch(), которая по ключу извлекает из файла соответствующее ему значение и имеет следующий синтаксис:

string dba_fetch(string key, resource handle)

В качестве первого аргумента key передается ключ файла, в качестве второго — дескриптор, возвращаемый функцией dba_open() . Функция возвращает значение, соответствующее ключу.

Примечание . Если используемая база данных, поддерживающая создание записей с одинаковыми ключами, например cdb , после параметра key допускается использование дополнительного параметра skip , задающего число записей с ключем key , которые следует пропустить.

В результате работы скрипта в окно браузера будет выведена строка «Тест на заполнение файла «.

Если ключи плоского файла заранее не известны, имеется возможность последовательного извлечения записей из файла, начиная с первой записи. Функция dba_firskey() возвращает ключ первой записи и имеет следующий синтаксис:

string dba_firskey(resource handle)

Функция принимает дескриптор открытого файла handle и возвращает ключ первой записи файла. Вслучае неудачи возвращает false .

Функция dba_nextkey() возвращает ключ следующей записи. Последовательным вызовом данной функции можно перебрать весь файл. После того как функция вернет ключ последней записи, щна возвращает false .

В результате работы скрипта происходит последовательное чтение плоского файла — в цикле выводится значение всех записей.

Замена записи

По ключу можно заменить значение уже существующей записи на новое. Для этого предназначена функция dba_replace() , которая имеет следующий синтаксис:

bool dba_replace(string key, string value, resource handle)

Функция принимает в качестве первого параметра key ключ записи, в качестве второго value — значение, в качестве третьего handle — дескриптор, возвращенный функцией dba_open() . Функция возвращает true в случае успешного выполнения и false в случае неудачи.

Примечание . Если в качестве ключа key функции dba_replace() будет передан ключ несуществующей записи, такая запись будет создана.

В результате работы скрипта в окно браузера будет выведена строка «Повторяем тестирование».

Удаление записи

Последней операцией, которую поддерживают плоские файлы, является операция удаления записей. Для удаления записей предназначена функция dba_delete() , которая имеет следующий синтаксис:

bool dba_delete(string key, resourse handle)

Функция принимает в качестве первого параметра значение ключа key удаляемой записи, а в качестве второго параметра handle — дескриптор открытого файла. В случае удачного выполнения функция возвращает true , а в случае неудачи — false .

В примере производится удаление всех записей из файла test.db .

Понравилась статья или раздел сайта — порекомендуйте их друзьям.

Источник

Оцените статью