Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / Л-8 - Организация среды хранения

.pdf
Скачиваний:
11
Добавлен:
28.06.2021
Размер:
712.43 Кб
Скачать

Косвенная адресация хранимых записей (3)

В качестве КБД записи выступает совокупность номера нужной страницы и номера требуемого слота в индексе этой страницы (значения N, i ).

В i-м слоте на N-й странице хранится собственно адрес записи (смещение от начала страницы).

При перемещении записи она остается на той же странице, и слот по-прежнему указывает на нее (меняется содержимое, но не сам слот).

Косвенная адресация хранимых записей (4)

Если запись не вмещается на страницу, она помещается на специально отведенные в данной области страницы переполнения, и соответствующий слот продолжает указывать на место ее размещения.

Этот подход позволяет:

перемещать записи на странице,

исключать фрагментацию,

возвращать освободившуюся память для повторного использования.

Относительная адресация хранимых записей (1)

Простейший вариант относительной адресации может использоваться, когда данные одного объекта БД (таблицы) хранятся в отдельном файле, и хранимая запись имеет формат фиксированной длины.

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

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

Относительная адресация хранимых записей (2)

Если память разбита на страницы, то адресом может выс-

тупать номер страницы и номер записи на странице

(или смещение от начала страницы).

Перемещение записи и ведет к изменению КБД и необ-

ходимости корректировки индексов, если они есть.

Некоторые СУБД при необходимости перемещения записи оставляют КБД прежним. Физически запись – на новом месте, а по старому адресу – новый адрес записи.

Это позволяет не менять КБД и не перестраивать индек-

сы, но приводит к увеличению времени доступа к

записи (два физических чтения вместо одного).

Структура идентификационного номера записи

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

Управление свободным пространством памяти на страницах

B-дерево