Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
гл1-1.doc
Скачиваний:
132
Добавлен:
19.03.2016
Размер:
437.25 Кб
Скачать

1.5.Хранение данных

При хранении данных решаются две задачи:

  • как сохранить данные;

  • как обеспечить быстрый удобный доступ к ним.

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

Файл- это поименованная область на внешнем носителе, содержащая данные произвольной длины (любое число байтов, может быть и нуль), обладающая уникальным собственным именем

На ранних этапах развития компьютерных систем файлы содержали данные одного типа (текстовые, графические, звуковые файлы). Современные файлы могут содержать данные различных типов. Например, в текстовом файле могут содержаться графические вставки, элементы программного кода.

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

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

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

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

С физической точки зрения, файл — это всего лишь последовательность байтов. Способ использования или отображения этой последовательности (интерпретация!) определяется типом файла — текстовый, звуковой, исполняемый модуль программы и т.п.

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

Файловая система— это часть операционной системы компьютера и поэтому всегда несет на себе отпечаток свойств конкретной операционной системы.

Некоторые форматы файлов стандартизированы и должны поддерживаться любой операционной системой и работающими в ней приложениями (например, графические файлы, определенные спецификациями GIFилиJPEG). Наряду с этим всегда имеются форматы, специфичные только для данной системы (например, исполняемые файлыMSDOSилиWindows). Кроме того, есть еще форматы, разработанные для конкретных приложений, работающих под управлением данной операционной системы (например, формат .xls, используемыйMSExcel). И, наконец, в некоторых случаях при разработке приложений новые форматы приходится создавать самим программистам.

Структура файла может быть тривиальной. Например, текст может сохраняться в виде последовательности байтов, прямо соответствующих составляющим его литерам (формат plain text или ASCII-файл). Однако в большинстве случаев вместе с данными приходится сохранять и некоторую дополнительную информацию. Рассмотрим примеры характерных ситуаций.

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

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

Продемонстрируем это на простом примере. Предположим, что нам нужно сохранить таблицу из шести чисел, имеющую две строки и три столбца (2*3):

4

1

8

2

5

11

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

Таблица, содержащая шесть чисел, может быть образована разным количеством строк и столбцов: 1*6, 2*3, 3*2 и 6*1. Очевидно, что если таблица запоминается построчно, то основным параметром, определяющим ее вид, становится количество чисел в строке таблицы (т.е. количество столбцов). Поэтому договариваемсяо следующем формате: первое число в файле — это длина строки таблицы, затем записывается количество строк, а далее построчно сохраняются числовые элементы таблицы (тип данных, представляющий их, также должен быть оговорен). Число строк необходимо запомнить, чтобы знать, где остановиться при чтении информации. Теперь таблица может быть записана в файл в виде следующей последовательности:

3

2

4

1

8

2

5

11

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

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

ЗАГОЛОВОК (служебная инфомация)

Собственно сохраняемые данные

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

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

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

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