Читать книгу Основы использования и проектирования баз данных - Владимир Михайлович Илюшечкин - Страница 3

Глава 1
Основные сведения о хранении данных
1.1. Файловые системы хранения данных

Оглавление

Использование компьютерной техники связано с двумя большими областями деятельности человечества [10]. В первой области компьютерная техника применяется для выполнения численных расчетов, которые слишком долго или вообще невозможно производить вручную. Характерной особенностью данной области является наличие сложных алгоритмов обработки, которые применяются к простым по структуре данным, объем которых сравнительно невелик.

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

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

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

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

– создать файл (требуемого типа и размера);

– открыть ранее созданный файл;

– прочитать из файла некоторую запись (текущую, следующую, предыдущую, первую, последнюю);

– записать в файл на место текущей записи новую;

– добавить новую запись в конец файла.

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

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

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

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

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

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

– дублирование данных сопровождается неэкономным расходованием ресурсов, поскольку на ввод избыточных данных требуется затрачивать дополнительное время и деньги;

– для их хранения необходимо дополнительное место во внешней памяти, что связано с дополнительными накладными расходами;

– дублирование данных может привести к нарушению их целостности.

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

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

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

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

Основы использования и проектирования баз данных

Подняться наверх