Файловые системы

 

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

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

Однако файлы с произвольным доступом решили проблемы лишь частично. Файловые системы любого типа обладают рядом недостатков:

· избыточность данных;

· слабый контроль данных;

· недостаточные возможности управления данными;

· большие затраты труда программиста.

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

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

Недостаточные возможности управления данными. Индексно-последовательные файлы позволяют обращаться к определенной записи по ключу, например, по идентификатору товара. Этого достаточно до тех пор, пока необходимо найти только одну запись с данными. Однако часто требуется обработать ряд связанных между собою записей. Например, в информационной системе, регистрирующей продажи, необходимо найти все продажи клиенту Сидорову. Кроме того, необходимо узнать общее число таких продаж, среднюю цену, список товаров, производителей этих товаров. Такую информацию будет очень трудно извлечь из файловой системы, поскольку файловые системы не позволяют устанавливать связи между данными, хранящимися в разных файлах. СУБД были специально созданы для того, чтобы упростить связывание данных из разных файлов.

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