Для корректной
работы подсистемы управления данными во внешней памяти необходимо поддерживать
информация, которая используется только этой подсистемой и не видна подсистеме
языкового уровня. Набор структур служебной информации зависит от общей организации
системы, но обычно требуется поддержание следующих служебных данных:
Внутренние каталоги, описывающие физические свойства объектов базы данных,
например, число атрибутов отношения, их размер и, возможно, типы данных; описание
индексов, определенных для данного отношения и т.д.
Описатели свободной и
занятой памяти в страницах отношения. Такая информация требуется для нахождения
свободного места при занесении кортежа. Отдельно приходится решать задачу поиска
свободного места в случаях некластеризованных и кластеризованных отношений (в
последнем случае приходится дополнительно использовать кластеризованный индекс).
Как мы уже отмечали, нетривиальной является проблема освобождения страницы в условиях
мультидоступа.
Связывание страниц одного отношения. Если в одном файле внешней
памяти могут располагаться страницы нескольких отношений (обычно к этому стремятся),
то нужно каким-то образом связать страницы одного отношения. Тривиальный способ
использования прямых ссылок между страницами часто приводит к затруднениями при
синхронизации транзакций (например, особенно трудно освобождать и заводить новые
страницы отношения). Поэтому стараются использовать косвенное связывание страниц
с использованием служебных индексов. В частности, известен общий механизм для
описания свободной памяти и связывания страниц на основе B-деревьев.