На физическом уровне базовая таблица БД представлена в виде набора файлов операционной системы:
файлы, которые содержат её данные (файлы данных);
файлы со структурами, обеспечивающими ускоренный доступ к данным (файлы индексов);
файлы, содержащие неструктурированную информацию большого объёма (BLOB-файлы);
файлы фразовых индексов.
Два последних типа файлов создаются только в том случае, если таблица содержит столбцы соответствующего типа.
Именование перечисленных типов файлов в БД (кроме EXT-файлов, которые имеют пользовательские файловые имена) приведено на рисунке 6.
Максимальное количество создаваемых файлов каждого типа не более 63.
Имена файлов таблицы имеют следующий формат:
<системный номер таблицы>.<тип файла><номер
файла>
где:
<системный номер таблицы>
– системный номер таблицы в БД (т.е. значение столбца $$$S11 данной
таблицы в системной таблице
$$$SYSRL
);
<тип файла>
– тип файла таблицы:
0 – IDX-файл (файл индексов);
1 – DATA-файл (файл данных);
2 – BLOB-файл (файл BLOB-данных).
<номер файла>
– порядковый номер файла данного типа.
Например, 116.01, 116.11.
Файлы таблицы могут располагаться на различных физических или логических дисках ОС. Они создаются/изменяются/удаляются ядром СУБД ЛИНТЕР при обработке SQL-запросов создания/модификации/удаления таблицы.
В запросах создания/модификации схемы таблицы можно указать количество и размеры файлов данных, индексов, BLOB-файлов, а также назначить физическое устройство, на котором следует создать тот или иной файл.
Выбор этих характеристик зависит от размеров таблицы, наличия свободного пространства на устройствах прямого доступа и количества этих устройств в конфигурации вычислительного комплекса.
Все файлы СУБД ЛИНТЕР (кроме файлов системного журнала) имеют страничную организацию.
Страница файла – это единица ввода/вывода для ядра СУБД ЛИНТЕР, а также единица захвата, освобождения и расширения файлового пространства. Кроме того, страница является единицей непрерывного расположения данных (запись любой таблицы не может быть расположена на двух и более страницах).
Длина страниц файлов БД ЛИНТЕР равна 4096 байт.
Первые страницы каждого файла таблицы занимает битовая карта (BitMap) состояния страниц этого файла. Каждый бит битовой карты отражает:
для IDX-файлов – факт занятости соответствующей страницы файла, т.е. занята страница или свободна;
для DATA/BLOB-файлов – возможность использования страницы, т.е. наличие/отсутствие свободного места в странице для добавления записи.
Например, первый индексный файл таблицы может иметь следующую структуру:
[B=1][C=2…32768][B=32769][C=32770…65536][B=65537][C=65538…65553][I=65554…98304][B=98305][I=98306…131072]...
где цифры соответствуют порядковым номерам страниц файла, а буквы обозначают:
B – страницу битовой карты;
C – страницу конвертера;
I – страницу индекса.