Что такое структурированные файлы с индексным доступом и как с ними работать

Рейтинг: -1Ответов: 1Опубликовано: 29.01.2023

Приветсвую!

Возник вопрос с тем что такое структурированные файлы с индексным доступом. Дело в том что мне нужно создать два файла(один с расширением .fl, а другой с расширением .ind). И вот вопрос в том как для начала их создать, а второй как их открыть и наполнить информацией(или же это можно сделать без открытия файлов такого формата). В условии задачи пишется о том что индексированный файл состоит из двух частей(собственно говоря из файла формата .fl и файла формата .ind). При этом упоминается и о том что файл формата .ind это индексная таблица которая содержит какую то информацию о предметной области.

Цель работы: Научится работать из структурированными файлами на основе лишь только языка Си

Окончательная формулировка вопроса: Как создать файлы подобного типа(софт или командная строка или еще что-то) и как наполнить эти файлы какими нибудь тестовыми данными

Ответы

▲ 2

что такое структурированные файлы с индексным доступом.

Ваш препод, наверное, мой ровесник, а может даже - старше :-)

То, о чём Вы говорите, это изобретение фирмы IBM. Они появились в IBM OS/360 в шестидесятых годах прошлого века.

Идея заключается в чём:

  1. В отсортированном файле можно легко и быстро найти нужную запись хотя бы методом деления пополам.
  2. В отсортированном файле очень трудно выполнять операции вставки/удаления записей. Каждый раз приходится сдвигать (в среднем) половину файла.
  3. Вот и была предложена идея ISAM - индексно-последовательный метод доступа.

Берём диск. На каждой дорожке резервируем (к примеру) 50% пустого места. Заливаем данные (отсортированные!) в рабочие области на всех дорожках подряд. Отдельно создаём индексный файл (отсортированный!) в котором для каждой дорожки прописано значение минимального индекса записей на этой дорожке.

Таким образом, когда нужно найти какую-то запись по ключу, то поиск идёт в два этапа:

  1. В индексном файле ищем дорожку
  2. На дорожке ищем запись

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

Дураку понятно, что при интенсивной работе, область расширения рано или поздно закончится. Предусматривалось два варианта:

  1. Попытаться уместить новые записи в основной области, заново отсортировав все записи на дорожке. С учётом удалённых записей это могло сработать.
  2. Не помещающиеся записи перенести в т.н. "Индекс второго уровня".

Я не буду более подробно распространятся, так как с появлением СУБД эта технология приказала долго жить... И было это очень давно.