Поскольку файловые системы являются общим хранилищем файлов, принадлежащих разным пользователям, системы управления файлами должны обеспечивать авторизацию доступа к файлам, чтобы по отношению к каждому зарегистрированному пользователю данной информационной системы для каждого существующего файла указывались действия, которые разрешены или запрещены конкретному пользователю. Администрирование режимом доступа к файлу в основном выполнялось его создателем – владельцем. Для множества файлов, отражающих информационную модель одной предметной области, такой децентрализованный принцип управления доступом вызывал дополнительные трудности. Отсутствие централизованных методов управления доступом к информации послужило одной из причин разработки систем управления базами данных (СУБД).
Следующей причиной, способствовавшей созданию СУБД, стала необходимость обеспечения эффективной параллельной работы многих пользователей с одними и теми же файлами. В общем случае системы управления файлами обеспечивали режим многопользовательского доступа. Если операционная система поддерживает многопользовательский режим, вполне реальна ситуация, когда не менее двух пользователей одновременно пытаются работать с одним и тем же файлом. Если все пользователи собираются только читать файл, ничего страшного не произойдет. Но если хотя бы один из них будет изменять файл, для корректной работы этих пользователей требуется взаимная синхронизация их действий по отношению к файлу.
Ограничениями, присущими файловым системам, являются разделение и изоляция данных, дублирование данных, зависимость от данных, несовместимость файлов, фиксированные запросы и быстрое увеличение количества приложений [13].
Когда данные изолированы в отдельных файлах, доступ к ним весьма затруднителен. Для извлечения соответствующей поставленным условиям информации программист должен организовать синхронную обработку двух или более файлов.
Из-за децентрализованной работы с данными, проводимой пользователями независимо друг от друга, в файловой системе фактически допускается бесконтрольное дублирование данных, которое нежелательно по следующим причинам:
– дублирование данных сопровождается неэкономным расходованием ресурсов, поскольку на ввод избыточных данных требуется затрачивать дополнительное время и деньги;
– для их хранения необходимо дополнительное место во внешней памяти, что связано с дополнительными накладными расходами;
– дублирование данных может привести к нарушению их целостности.
Физическая структура и способ хранения записей файлов данных жестко зафиксированы в коде приложений. Это значит, что изменить существующую структуру данных достаточно сложно. Кроме того, при модификации структуры данных программы должны быть изменены с целью соответствия новой структуре файла. А таких программ может быть очень много. Следовательно, программист должен прежде всего выявить все программы, нуждающиеся в доработке, а затем их перепроверить и изменить. Ясно, что выполнение всех этих действий требует больших затрат времени и может явиться причиной появления ошибок. Данная особенность файловых систем называется зависимостью программ от данных.
Поскольку структура файлов определяется кодом приложений, она также зависит от языка программирования этого приложения. Например, структура файла, созданного программой на языке Паскаль, может значительно отличаться от структуры файла, создаваемого программой на языке С. Прямая несовместимость таких файлов затрудняет процесс их совместной обработки и может потребовать создания программного обеспечения, предназначенного для преобразования полей файлов в некоторый общий формат, поэтому этот процесс может оказаться весьма длительным и дорогим.