Поиск по нескольким ключам
Структура инвертированного файла оказывается весьма полезной, когда необходимо осуществлять поиск данных по двум или более ключевым полям, имеющим предопределенные значения. Если все адреса записей перечислены в таблице индексов, то достаточно
просмотреть только строки этой таблицы, соответствующие заданным значениям ключей, и найти в них общие адреса. Если же записи соединены в таблице индексов посредством связанного списка, то достаточно просмотреть только одну из интересующих нас цепочек (предпочтительно самую короткую), выяснив при этом, какие из ее элементов удовлетворяют всем условиям.
Для того чтобы найти в файле, показанном на рис. 9.37, сведения о всех студентах, родившихся в 1952 г. и изучающих курс физики, последовательно просматривается более короткий связанный список «Дата рождения = 1952» и путем проверки поля ключа курса каждой записи выясняется, что единственной личностью, удовлетворяющей обоим условиям, является Ливи.
Если индексы сформированы так, как это показано на рис. 9.38, то путем сравнения строк «Дата рождения = 1952: 1400, 1700, 1800» и «Курс = Физика: 1100, 1200, 1300, 1600, 1800, 2300, 2400» выявляется только один общий адрес — 1800, который приводит к Ливи.