
- •АЛГОРИТМЫ
- •ОРГАНИЗАЦИЯ ОБЛАСТИ ПЕРЕПОЛНЕНИЯ
- •ЗАДАНИЕ
- •ЛАБОРАТОРНАЯ РАБОТА № 2
- •СПОСОБЫ ПОИСКА
- •ЗАДАНИЕ
- •ЛАБОРАТОРНАЯ РАБОТА № 3
- •Второй вариант ликвидации пустых мест в файле — битовая матрица.
- •ЗАДАНИЕ
- •ЛАБОРАТОРНАЯ РАБОТА №4
- •МЕТОДЫ ФИЗИЧЕСКОЙ ОРГАНИЗАЦИИ ДАННЫХ
- •СВЯЗЬ С ТЕХНИЧЕСКИМ ОБЕСПЕЧЕНИЕМ
- •ИНДЕКСНО-ПОСЛЕДОВАТЕЛЬНЫЙ МЕТОД ДОСТУПА (ISAM)
- •ВИРТУАЛЬНЫЙ МЕТОД ДОСТУПА (VSAM)
- •Задание
11
записей продолжается начиная со второй дорожки n+1-го цилиндра и т.д. до окончания создания файла. При реорганизации выполняется полная перезапись.
Область переполнения может располагаться на одной или нескольких дорожках того же цилиндра, на котором находятся первоначальные данные и в этом случае доступ к записям ускоряется — нет необходимости перемещения головок чтения. С другой стороны, допускается расположение области переполнения за пределами данного цилиндра — независимая область переполнения.
При поиске какой-либо конкретной записи необходимо вначале определить на каком цилиндре она находится. Для этого последовательно просматриваются все индексы цилиндров пока не находится 1-й, содержащий ключ, превышающий ключ искомой записи. Затем та же операция производится над индексами дорожек в найденном цилиндре. И, наконец, считывается с дорожки необходимая запись.
Если необходимо включить в файл новую запись, а файл уже создан, то эта запись включается на то место, где она должна располагаться в порядке возрастания ключа. Если это место уже занимает другая запись ее необходимо передвинуть вправо. В случае, когда сдвигаемая запись не вмещается на дорожке ее необходимо поместить в область переполнения.
При обращении к записям, попавшим в область переполнения требуется дополнительная операция чтения. Для повышения эффективности работы необходима периодическая реорганизация файла. Записи файла заново сортируются и переразмещаются, оставляя свободными области переполнения. Затем производятся соответствующие изменения в индексе. Такая процедура
называется процедурой ведения файла.
ВИРТУАЛЬНЫЙ МЕТОД ДОСТУПА (VSAM)
Вданном методе используются управляемые области, подразделяющиеся на управляемые интервалы. Управляемые интервалы, относящиеся к одному набору данных, имеют одинаковую длину. Выбор длин возможен в широких пределах. Несколько управляемых интервалов могут располагаться на одной дорожке, в тоже время один управляемый интервал может занимать несколько дорожек.
Вметоде доступа VSAM используется индекс управляемых интервалов, который называется набором указателей – на одну управляемую область имеется один набор указателей.
Набор указателей сам индексируется с помощью иерархии(дерева) указателей. Эта иерархия указателей носит название набора индексов. Набор указателей содержит максимальное значение ключа для каждого управляемого интервала и указывает на данный управляемый интервал. Высший уровень
набора индексов содержит максимальное значение ключа для каждой управляемой области и указатель на блок набора указателей для данной управляемой области.
12
При создании файла осуществляется включение записей в управляемые интервалы, при этом их не заполняют до предела, что приводит к образованию распределенной свободной памяти в каждом из интервалов. Кроме этого, внутри управляемой области некоторые управляемые интервалы остаются свободными. Каждый элемент набора указателей указывает на один управляемый интервал. Если управляемый интервал полностью свободен, то элемент набора вместо максимального значения ключа записей, расположенных в интервале, содержит признак свободной памяти.
Наличие значительного объема свободной памяти в каждом управляемом интервале приводит к тому, что большая часть вновь поступающих записей умещается в пределах соответствующих интервалов. Тем не менее неизбежны случаи нехватки распределенной свободной памяти в интервалах для включения новых записей. В таких случаях осуществляется “расщепление” интервала. Предположим, что необходимо включить запись с некоторым значением ключевого поля. В соответствии со значением ключевого поля определяется управляемый интервал, в который следует включить запись. Но интервал полностью заполнен, и поэтому осуществляется его расщепление, заключающееся в том, что около половины его записей пересылается в свободный интервал, входящий в состав той же управляемой области. Программы VSAM находят свободный управляемый интервал, для которого соответствующий элемент в наборе указателей помечен как свободный.
Но управляемая область может быть также заполненной(т.е. в ее составе нет интервалов, помеченных в наборе указателей как свободные). В таком случае осуществляется расщепление управляемой области. В конце набора данных программы VSAM выделяют новую область, в которую переписывается около половины интервалов из расщепляемой области. Место для новых областей может быть выделено заблаговременно, или новая область создается путем добавления дополнительного экстента к наборам данных. Расщепление интервалов и областей сопровождается соответствующими изменениями в индексах.
Необходимо отметить, что процесс расщепления свободной памяти может быть организован таким образом, что отпадает необходимость выполнения процедур ведения файла, так как расщепление фактически обеспечивает выполнение функции ведения.
Следует отметить, что в любом случае (до или после расщепления интервала) записи в пределах управляемого интервала расположены в порядке, соответствующем возрастанию их ключей. Однако в масштабе управляемой области возрастание ключей может быть нарушено. Тем не менее, адресация в блоке индексов организована таким образом, что позволяет осуществлять доступ к записям, содержащимся в области, в порядке возрастания значений ключей. После расщепления управляемой области интервалы в образованных областях остаются в той же последовательности, что и до расщепления. Многократные расщепления могут нарушить последовательность управляемых областей, тем не менее, доступ к записям в соответствии с последовательностью ключей возможен благодаря наличию набора индексов.
13
Набор индексов может иметь многоуровневую структуру. Индексы, расположенные на высшем уровне этой структуры, содержат указатели, позволяющие осуществлять доступ к управляемым областям в соответствии с возрастанием ключей.
Расщепление областей приводит лишь к незначительному росту времени последовательного доступа к записям файла. Блоки наборов указателей, каждый из которых относится к одной управляемой области, образуют горизонтальную цепочку. Независимо от последовательности физического расположения управляемых областей блоки наборов указателей будут связаны в цепочки в соответствии с возрастанием значений ключей записей в интервалах. Таким образом, последовательная обработка записей не требует обращения к набору индексов, поскольку достаточно использования наборов указателей интервалов. Набор индексов применяется лишь при прямом доступе к записям файла.
Таким образом, в методе доступа VSAM не требуется периодического выполнения процедур ведения файла.
Задание
Произвести размещение последовательности из 1000 записей методом VSAM. Размещение производить в соответствии со следующим алгоритмом Шаг 1: Сгенерировать последовательность из 1000 записей Шаг 2: Отсортировать первые 800 записей
Шаг 3: Произвести размещение отсортированных записей по методу VSAM в структуры согласно варианту, заданному преподавателем Шаг 4: Произвести поэлементное добавление оставшихся 200 записей
Предусмотреть возможность визуального просмотра процесса добавления записей
Вариант 1
Управляемая область состоит из 8-ми управляемых интервалов. При начальном размещении каждый 4-й интервал – свободный. В каждом интервале при начальном размещении зарезервировать (оставить свободным) ≈10% общей размерности управляемого интервала. Создать 3 уровня индексов: главный индекс, индекс управляемых областей, индекс управляемых интервалов.
Вариант 2
Управляемая область состоит из 15-ти управляемых интервалов. При начальном размещении каждый 5-й интервал – свободный. В каждом интервале при начальном размещении зарезервировать (оставить свободным) ≈20%
14
общей размерности управляемого интервала. Создать 2 уровня индексов: индекс управляемых областей, индекс управляемых интервалов.
Вариант 3
Управляемая область состоит из 12-ти управляемых интервалов. При начальном размещении каждый 4-й интервал – свободный. В каждом интервале при начальном размещении зарезервировать (оставить свободным) ≈20% общей размерности управляемого интервала. Создать 2 уровня индексов: индекс управляемых областей, индекс управляемых интервалов.
Вариант 4
Управляемая область состоит из 9-ти управляемых интервалов. При начальном размещении каждый 3-й интервал – свободный. В каждом интервале при начальном размещении зарезервировать (оставить свободным) ≈20% общей размерности управляемого интервала. Создать 3 уровня индексов: главный индекс, индекс управляемых областей, индекс управляемых интервалов.