
2. СУБД
фактографических
ииформациоипых
систем
шциях
всех строк, лежащих за корректируемой''. Такой под-
ход,
так же, как и первый подход при удалениях записей, обес-
печивает максимальную эффективность использования диско-
вого пространства, но не дает возможности быстрого прямого
доступа
к нужной строке, так как местоположения записей по-
л"оянно
меняются.
Другим подходом
к
организации линейных структур для ре-
шения проблем корректировки данных является выделение для
каждой записи одинакового дискового пространства, исходя из
максимально возможного заполнения строк по установленным
типам полей.
Такой подход применяется в широко используемых для со-
здания «настольных информационных систем» (системы «ра-
бочего стола») СУБД куста dBASE (dBase, FoxPro, C/ipper), ко-
торые создают и оперируют базами данных в формате так на-
зываемых dbf-фаплов. Структура dbf-файла состоит из трех
частей'—заголовка,
блока описания структуры базы и инфор-
мационной части (см. рис. 2.13). В заголовке последовательно
представлены поля, которые определяют тип файла базы дан-
ных (с
memo-nОЛЯМИ
или без них), дату последнего изменения,
номер последней записи, смещение, с которого начинается ин-
формационная часть (записи), размер каждой
записи.
Блок опи-
сания структуры размещается после заголовка до информаци-
онной части и состоит из последовательности элементов, каж-
дый из которых описывает определенное поле логической
структуры (схемы) базы данных. Структура описания поля со-
держит последовательное описание имени поля, типа поля (чис-
ловое, текстовое, дата и т. д.), длины поля и заканчивается спе-
циальным символом для отделения описания одного поля от
другого. Информационная часть состоит из последовательнос-
ти групп байтов
одинаковой
длины без
специ^шьных
раздели-
телей, каждая из которых собственно и выражает содержимое
конкретной физической записи.
^ Точнее говоря,
перезаписываются
все записи соответствующей страницы. Если
она переполняется, то перезаписываются записи и следующей страницы, и т. д.
'
Спенс
Р.
СЛррег.
Руководство по программированию. Версия
5.01
/ Пер. с англ —
Мн.: Тивали,
1994-480
с (с.428).
62