Cтраница 1
Включение сегментов Б методе HISAM связано со сдвигом других сегментов и поэтому выполняется медленнее, чем в прямых методах. Кроме того, для HSAM включение вовсе невозможно. [1]
![]() |
Вызов Insert с квалифицированными SSA.| Указатели режимов обработки вызова Insert. [2] |
При загрузке базы данных или включении сегмента в существующую базу данных вам разрешается применять квалифицированные SSA для всех более высоких1 уровней иерархии. На рис. 6.2 приведен соответствующий этому случаю пример. Заметим, что мы специфицировали квалифицированные SSA для обоих сегментов БОЛЬНИЦА и БЛОК. Ссылка на сегмент ПАЦИЕНТ, как и прежде, осуществляется неквалифицированным SSA. При использовании кода функции ISRT необходимо помнить важное правило, заключающееся в том, что загружаемый или включаемый сегмент должен быть специфицирован с помощью неквалифицированного SSA. DL / 1 сам выполняет дальнейшую идентификацию сегмента на основе информации, содержащейся в области ввода-вывода; определение квалификационного выражения в последнем SSA не является правильным. [3]
Программа Загрузка использует следующие коды операций: 01 - включение сегмента, 02 - включение полей, 03 - исключение сегмента, 04 - исключение полей, 05 - замена ключевого поля и полей, 06 - замена ключевого поля, 07 - замена полей. [4]
![]() |
Вызов Insert. [5] |
Последовательность вызовов подобного типа может обеспечить загрузку базы данных или включение сегмента в существующую базу данных. Заметим, однако, что единственный неквалифицированный SSA не дает DL / 1 никакой информации о том, куда именно в базу данных необходимо включить этот конкретный сегмент ПАЦИЕНТ. Как и в случае других вызовов, кроме полностью квалифицированных, DL / 1 определяет место включения или загрузки сегмента на основе информации о текущей позиции. [6]
![]() |
Спецификация правил включения.| Некоторые сегменты ВРАЧ. [7] |
ПРАВИЛА) предложения SEGM сообщает DL / 1, как осуществлять управление включением сегмента в такой ситуации. На рис. 6.12 приведено возможное предложение SEGM для сегмента ВРАЧ. Здесь также показаны три варианта, которыми располагает АБД при определении второго подпараметра операнда RULES. Второй подпараметр указывает DL / 1, куда в цепочке подобных следует включать новый сегмент, если сегменты данного типа не имеют уникальных ключевых полей. Этот подпараметр называется правилом включения. Правило включения FIRST ( ПЕРВЫЙ) указывает, что новый сегмент всегда будет включаться в начало цепочки подобных, а правило включения LAST ( ПОСЛЕДНИЙ) - что в ее конец. Последнее правило действует по умолчанию, если операнд RULES не определен. Правило включения HERE ( ЗДЕСЬ) говорит о том, что вы тем или иным способом установите позицию в цепочке подобных до осуществления вызова Insert. Новый сегмент будет затем включаться после сегмента, на который установлена текущая позиция. [8]
Параметр PROCOPT A свидетельствует о том, что вызовы Get, Insert, Replace, Delete допустимы при работе с базой данных, а параметр PROCOPT AS - о том, что разрешается выдавать Get, Insert, Replace и Delete, причем сегменты должны обрабатываться в возрастающей последовательности. С целью включения сегментов в существующую базу данных могут использоваться вызовы Insert с А и AS. Параметр PROCOPT I показывает, что лишь вызовы Insert в режиме включения приемлемы для этой базы данных, а параметр PROCOPT IS - что разрешены лишь вызовы Insert в режиме вклю-чения, причем сегменты должны включаться в возрастающей последо-вательности. [9]
Прежде всего рассмотрим вызов и SSA, которые могут быть ис - пользованы для включения сегмента. На рис. 6.1 приведен фрагмент программы на языке Кобол, которая может осуществить включение сегмента ПАЦИЕНТ. Заметим, что в данном случае специфицирован только неквалифицированный SSA для сегмента ПАЦИЕНТ. [10]
![]() |
Указатели на первый и последний физически порожденные.| Прямые и обратные указатели на физически подобный. [11] |
АБД не может специфицировать указатели только на последний физически порожденный. Эти указатели обеспечивают быстрый доступ к последнему экземпляру сегмента некоторого типа для облегчения включения сегмента в конец длинной цепочки подобных. [12]
Так, могут быть учтены: требования заказчика к времени обработки и эквиваленты используемых периодов обращения ( например, 1 день 8 ч, 1 мес 4 3 нед); масштаб периода обращения и эквиваленты для различных режимов обработки ( например, одно включение сегмента равно десятиразовому получению сегмента); факторы использования телеобработки. Все эти параметры представляют собой те дополнительные данные, которые после определения не изменяются в процессе проектирования. Они могут быть помещены в таблицы и использоваться в различных итерациях в процессе проектирования. [13]
![]() |
Сегменты ПАЦИЕНТ до включения.| Код функции, SSA и область ввода-вывода для вызова Insert. [14] |
С этим примером мы уже встречались ранее, когда первоначально строили базу данных. Единственное отличие между включением сегментов в существующую базу данных и ее первоначальной загрузкой состоит в определении режимов обработки в РСВ. [15]