Удаление записей в линейных структурах может осуществляться двумя способами

Записи располагаются в линейном порядке, т. е. последовательно друг за другом, без каких-либо указателей на связи между записями и ссылок.

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

При заполнении одной страницы целиком выделяется дополнительная страница

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

Это позволяет обеспечить эффективное использование дискового пространства, однако вызывает существенные расходы при таких операциях.

Второй способ. Удаление записи выполняется простым «вычеркиванием», без перезаписывания всех записей, расположенных после удалённой записи. На месте вычеркнутых записей остается пустое место.

При превышении общего объема пустых мест на странице более определенного значения (например, больше 25-30 %) специальный компонент СУБД автоматически проводит устранение пустых мест по удаленным записям.

Запуск данной процедуры в некоторых СУБД предоставляется пользователю (Администратору) для периодического уплотнения (сжатия) файла базы данных.

Корректировка записей может привести к ситуации, когда для нового значения изменяемого поля корректируемой записи может потребоваться либо больше, либо меньше дискового пространства по сравнению со старым. Разрешение этой ситуации приводит к двум разновидностям линейных структур файлов баз данных.

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

Строки имеют различную длину и отделяются друг от друга символом возврата каретки. В данном случае строка является физической записью, а доступ к ней осуществляется по её номеру «k» путем последовательного считывания (продвижения) k-1 предшествующих строк-записей (рис. 2.10.).

Рис. 2.10. Линейная структура текстового файла.

При корректировке какого-либо поля может потребоваться либо больше, либо меньше дискового пространства. Поэтому файл либо расширяется, либо уплотняется с автоматическим перезаписыванием всех строк-записей соответствующей страницы. Если же страница переполняется, то перезаписываются записи следующей страницы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: