Файловая структура БД
На физическом уровне базовая таблица БД представлена в виде набора файлов операционной системы:
-
файлы, которые содержат её данные (файлы данных);
-
файлы со структурами, обеспечивающими ускоренный доступ к данным (файлы индексов);
-
файлы, содержащие неструктурированную информацию большого объёма (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 – страницу индекса.