Индексно-последовательные файлы

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


Наборы данных индексно-последовательного доступа можно представить в виде древовидной структуры определенной высоты. В примере, показанном на рис. 2.8 высота дерева равна 3, листьевые вершины дерева соответствуют дорожкам магнитного диска.

Рис.2.8 Организация индексно-последовательного файла

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

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

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

2. Трудно сформировать набор данных, располагающийся на дисках разного типа;

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