- Плоские файлы
- Иллюстрированный самоучитель по SQL для начинающих
- Основы реляционных баз данных
- Плоские файлы
- ресурс для начинающих веб-разработчиков комплексные веб-услуги по созданию сайтов
- Справочный материал по основным языкам программирования и верстки сайтов.
- Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.
- Использование веб-редактора Adobe Dreamweaver в разработке сайтов.
- Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.
- Разработка веб сайтов под «ключ».
- Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.
- Веб-инструмент
- Веб-мастерская
- Веб-услуги
- Веб-графика
- Веб-ресурсы
- Посмотрите в Google
- Подписка
- Опрос
- Плоские файлы. Создание, заполнение, чтение, замена и удаление файла
- Создание файла
- Заполнение файла
- Чтение информации из файла
- Замена записи
- Удаление записи
Плоские файлы
Плоские файлы — самая простая разновидность структурированных данных. Нет, плоский файл — это не папка, придавленная стопкой книг. Плоские файлы называются так потому, что имеют минимальную структуру. Если бы они были зданиями, то их стены поднимались бы не от фундамента, а прямо от земли. Плоский файл — это собрание записей данных, записываемых в определенном формате одна за другой, — данные, одни только данные и ничего, кроме данных, т.е. список. На компьютерном языке плоский файл называется простым. В таком файле нет метаданных со структурной информацией, а есть лишь одни данные.
Скажем, вам нужно сохранить в системе плоских файлов имена и адреса клиентов вашей компании. У этой системы может быть примерно такая структура.
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 .
Понравилась статья или раздел сайта — порекомендуйте их друзьям.
Источник