Сблокированная запись - Большая Энциклопедия Нефти и Газа, статья, страница 1
Если тебе завидуют, то, значит, этим людям хуже, чем тебе. Законы Мерфи (еще...)

Сблокированная запись

Cтраница 1


Сблокированные записи обрабатываются быстрее.  [1]

Сблокированные записи фиксированной длины, расположение ключа в записи не имеет значения.  [2]

Сблокированные записи переменной длины, расположение ключа в записи не имеет значения.  [3]

Для сблокированных записей каждый блок содержит одинаковое число ( i) записей.  [4]

Обработка сблокированных записей требует использования небольшого дополнительного объема оперативной памяти, тем не менее в большинстве случаев это оказывается целесообразным, поскольку позволяет добиться некоторой экономии в памяти на дисках.  [5]

Если используются сблокированные записи типа F, то для последовательного набора данных на магнитных дисках желательно указывать тип записи в операторе DD следующим образом: RECFM FBS. Это означает, что все блоки, кроме, быть может, последнего, одинаковой длины.  [6]

В случае сблокированных записей переменной длины каждый блок может содержать несколько логических записей переменной длины. Первые четыре байта блока являются указателем длины записи и содержат значение длины блока. Информация о длине должна быть предусмотрена программистом, когда он создает блок или запись, и должна использоваться им при блокировании и деблокировании записей. К счастью, при программировании на языках высокого уровня эти операции выполняются автоматически. Указатель длины не входит в тело логической записи, передаваемой или получаемой пользователем. Однако размеры областей оперативной памяти и предназначенных для ввода и вывода данных должны выбираться с учетом необходимости размещения указателей длины.  [7]

При обработке сблокированных записей переменной длины ( условия предыдущего примера сохраняются) программа видоизменится следующим образом.  [8]

Как и для сблокированных записей фиксированной длины, ключ последней записи блока на диске повторяется дважды: в поле ключа и в поле данных.  [9]

Макрокоманда RELSE при обработке сблокированных записей фиксированной или переменной длины заставляет следующую за ней макрокоманду GET проигнорировать записи блока, оставшиеся в текущем буфере, и выбрать первую логическую запись из другого буфера.  [10]

Макрокоманда TRUNC при обработке сблокированных записей фиксированной или переменной длины заставляет следующую за ней макрокоманду PUT или PIJTX перейти к заполнению другого буфера.  [11]

Вспомним, что для сблокированных записей фиксированной длины ключ каждой логической записи помещается в область данных, а ключ последней записи блока - в область ключа блока. Если RKP 0 для сблокированных записей фиксированной длины, то ключ начинается с первого байта каждой записи, и поэтому средство удаления записей ( OPTCD L) не может быть использовано.  [12]

Второй проблемой, связанной с использованием сблокированных записей, является внутренняя проблема программного хозяйства. Если предполагается чтение блока данных, состоящего из пяти записей, то необходимо следить за тем, которую из пяти записей мы сейчас обрабатываем. Один из возможных способов заключается в использовании содержимого регистра в качестве базового адреса записи, обработка которой осуществляется в данный момент. Если обработка этой записи заканчивается, то содержимое регистра увеличивается на длию1 записи и полученное значение сравнивается с некоторой предельной величиной. Если предел превышен, то это говорит о том, что пора читать следующий блок записей и вернуть регистр базы к его начальному состоянию. Другой путь связан с последовательной пересылкой каждой записи в рабочую область памяти, так что при обработке данных все адреса памяти будут оставаться теми же самыми для каждой записи. По окончании обработки каждой записи осуществляется передача управления системной программе, которая обеспечивает пересылку следующей записи в рабочую область. В случае необходимости эта системная программа вызывает новый блок данных, который считывается с магнитной ленты.  [13]

Наиболее практичным способом организации произвольного доступа к сблокированным записям является рандомизация индекса, который содержит адрес начала блока. Блок, содержащий нужную запись, может быть затем считан в главную память и запись обработана. Чтобы обеспечить ввод в базу данных новой записи, необходимо только добавить ее в конец текущих записей и создать соответствующий входной элемент индекса. Исключение записей является более трудным. Оно не представляет проблемы само по себе, однако если отсутствует способ запоминания освобождающихся дорожек памяти при работе с базой данных, то объем базы будет уменьшаться на одну запись каждый раз, когда из нее исключается некоторый объект. Лучший способ справиться с такой ситуацией - это не допустить ее возникновения, что возможно, если при каждом исключении объекта запись, находящаяся в последней позиции базы данных, будет перемещаться по освободившемуся адресу, а индекс корректироваться в соответствии с новым местоположением записи.  [14]

Если каждый блок файла содержит одну логическую запись, то записи называются несблокированными; в противном случае говорят о сблокированных записях. Число логических записей в блоке называется коэффициентом блокирования.  [15]



Страницы:      1    2    3