Оформить и купить диплом на бланке ГОЗНАК без предоплаты

Организация записей в файлах

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

Каждому отношению нередко сопоставляют отдельный файл.

На физическом уровне выполняются следующие типичные операции:

добавить запись, удалить запись, модифицировать запись, вывести запись.

Все операции включают в себя поиск записи с заданным ключом.

При добавлении записи также следует предусматривать предварительный поиск записи с тем же ключом. В данном случае может быть обнаружена ошибка либо проектировщика СУБД (если “ключ” не оказался ключом), либо пользователя (если он повторяет занесение записи). В случае удаления записи целесообразно только пометить ее как удаленную установкой соответствующего флага “удаления”. Этот флаг необходимо проверять при модификации или выводе записи с целью обнаружения ошибочной ссылки на удаленную запись.

В настоящее время базы данных размещаются на магнитном диске. Эта особенность должна учитываться при проектировании физической органи-

зации базы данных. Дело в том, что при обращении к диску через файловую управляющую систему данные передаются блоками, часто называемыми секторами. Типичный размер сектора 512 байт. Файл размещается в кластерах, представляющих собой несколько подряд расположенных секторов. Кластеры применяются для слежения за использованием дискового пространства. Больший размер кластера по сравнению с сектором сокращает объем информации, необходимой для управления размещением; правда, при размещении небольших файлов имеет место существенное недоиспользование диска.

Итак, обмен с диском выполняется секторами. Если запись переходит границу сектора, то необходимы два обращения к диску. В случае большого количества записей, значительно меньших, чем размер сектора, снижение быстродействия СУБД будет незначительным. Но в случае, если большинство записей имеют длину больше половины сектора, быстродействие СУБД понизится почти в два раза.

Следовательно, размер записей целесообразно подгонять под размер сектора, т. е. либо сектор должен содержать целое число записей, либо запись должна размещаться в целом числе секторов.

Подгонку размеров записи обычно можно выполнить путем изменения допустимых размеров символьных строк.

Пример. Пусть запись о студенте имеет следующий первоначальный формат:

30 байт        – фамилия, имя, отчество;

1 байт – пол студента и флаг истинности записи;

40 байт        – адрес;

4 байта        – указатель на следующую запись.

Подгоняя под размер сектора 512 байт, увеличим размер записи с 75 до 128 байт:

1 байт – флаг истинности записи;

42 байта      – фамилия, имя, отчество;

1 байт – пол студента;

80 байт        – адрес;

4 байта        – указатель на следующую запись.

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

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

Для упорядочения записей применяют хеширование и индексирование.