СУБД - Файловая структура

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

Организация файлов

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

Организация файлов

Организация файлов кучи

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

Последовательная организация файлов

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

Организация хэш-файлов

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

Организация кластерных файлов

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

Файловые операции

Операции над файлами базы данных можно широко разделить на две категории:

  • Операции обновления

  • Операции поиска

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

  • Открыть - файл можно открыть в одном из двух режимов : режиме чтения или записи . В режиме чтения операционная система не позволяет никому изменять данные. Другими словами, данные только для чтения. Файлы, открытые в режиме чтения, могут быть разделены между несколькими объектами. Режим записи позволяет изменять данные. Файлы, открытые в режиме записи, могут быть прочитаны, но не могут использоваться совместно.

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

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

  • Запись - пользователь может выбрать, чтобы открыть файл в режиме записи, что позволяет им редактировать его содержимое. Это может быть удаление, вставка или изменение. Указатель файла может находиться во время открытия или может быть динамически изменен, если операционная система позволяет это сделать.

  • Закрыть - это самая важная операция с точки зрения операционной системы. Когда генерируется запрос на закрытие файла, операционная система

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

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