Буферный диспетчер поддерживает диспетчер файлов – программный компонент, управляющий структурами данных и размещением данных на диске. Диспетчер файлов может быть частью операционной системы или являться частью СУБД. Но принципы его работы при этом идентичны.
Диспетчер файлов взаимодействует с диспетчером дисков – частью операционной системы, с помощью которой выполняются все дисковые операции ввода-вывода.
Диспетчер дисков обращается к диску, на котором расположена база данных.
База данных на диске представляет множество наборов страниц строго фиксированного размера. Каждый набор страниц имеет уникальный номер. Наборы не имеют общих страниц. Один из наборов содержит все имеющиеся свободные страницы, не используемые для размещения данных. Этот набор называют еще свободным пространством на диске.
Каждая страница имеет уникальный внутри набора номер и содержит не более 255 записей. Схематичное изображение постраничной организации базы данных приведено на рис. 12.2.
В физической записи хранится одна строка реляционной таблицы. Как правило, на одной странице хранятся записи только одной таблицы. Но не исключается хранение записей из нескольких таблиц. Это позволяет сократить число обращений к диску, если возникает необходимость соединения записей при выполнении запроса.
Каждая запись имеет уникальный в пределах страницы номер, который состоит из двух частей: номера страницы, на которой эта запись находится, и информации о смещении записи от конца страницы. При такой организации хранения данных упорядочение записей на страницах происходит не путем их физического перемещения, а путем корректировки информации о смещении записи от конца страницы.
При размещении записей на страницах используется принцип кластеризации – как можно более близко физически размещать логически связанные и часто используемые записи. Это важное условие высокой производительности базы данных.
В процессе физического доступа к базе данных сначала СУБД определяет в ней искомую запись. Для этого в оперативную память помещается набор записей из файла, в котором ищется нужная запись. Затем для извлечения записи запрашивается диспетчер файлов. Он определяет номер страницы, на которой находится эта запись. Далее для извлечения данной страницы запрашивается диспетчер дисков. Он определяет физическое расположение страницы на устройстве хранения данных и извлекает страницу из набора страниц.
В зависимости от запроса со стороны СУБД диспетчер файлов кроме извлечения записи может также:
· заменить запись в файле;
· добавить новую запись в файл;
· удалить запись из файла;
· создать новый файл;
· удалить файл.
В зависимости от запроса со стороны диспетчера файлов диспетчер дисков кроме извлечения страницы может также:
· заменить страницу в наборе страниц;
· добавить страницу в набор страниц;
· удалить страницу из набора страниц.
Таким образом, для СУБД база данных – это множество записей, просматриваемых диспетчером файлов. Для диспетчера файлов база данных – это набор страниц, просматриваемых диспетчером дисков. А диспетчер дисков уже непосредственно работает с устройствами хранения данных.
На начальном этапе работы с базой данных она содержит набор пустых страниц, последовательно пронумерованных, начиная с нуля. Предположим, что в базу данных необходимо поместить набор записей с данными Х. Для этого диспетчер дисков в наборе пустых страниц пометит определенное количество страниц как набор страниц Х, а диспетчер файлов разместит на страницах данные.
Пусть на одной странице размещается только одна запись. Если надо удалить запись из набора Х, то диспетчер файлов ее удаляет
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.