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