Файл: Левковиц, Д. Структуры информационных массивов оперативных систем.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 86
Скачиваний: 0
TOTAL ACTIONS AND DOLLARS OR NEW |
|
|
||
CONTRACTS |
|
|
|
|
TOTAL ACTIONS 8 |
|
|
|
|
TOTAL DOLLARS |
§325,800 |
|
|
|
CONTRACT MODIFICATIONS AND DOLLARS BY TYPE |
||||
CONTRACT MODIFICATION |
NUMBER |
DOLLARS |
||
Additional Task |
|
18 |
3,252,000 |
|
Change of Scope |
|
3 |
70,000 |
|
Termination |
|
1 |
65,000 |
|
Renegotiation |
|
4 |
120,000 |
|
Рис. 4-4. Форма документа для запроса 2. |
|
|
||
головком T O T A L ACTIONS A N D D O L L A R S |
OF NE W |
|||
CONTRACTS. Поскольку |
функция |
TAB (пробел) |
отсут |
|
ствует, печать начинается с левой |
границы. Н а 3-й стро |
|||
ке (2-я строка пропущена) после |
TAB 10 (десяти |
про |
||
белов) печатается метка |
T O T A L |
A C T I O N , |
непосред |
ственно за меткой начинается 77, интерпретируемая как
промежуточное поле памяти, |
ранее определенное в поис |
|||
ковом разделе обработки. Это поле, |
как указано выше, |
|||
содержит подсчет |
или T A L L Y дл я F U L E 1 . Н а 4-й строке |
|||
вслед за пробелами печатается |
метка T O T A L D O L L A R S |
|||
с последующим значением S1, |
с о д е р ж а щ и м |
сумму AC |
||
T I O N A M O U N T S |
новых контрактов. |
|
|
|
Н а 7-й строке, |
начиная от |
края, |
'печатается заголо |
|
вок CONTRACT M O D I F I C A T I O N S |
A N D D O L L A R S BY |
|||
TYPE; на 9-й строке от к р а я |
заголовки — CONTRACT |
|||
M O D I F I C T A I O N , |
N U M B E R после TAB (20) |
д в а д ц а т ь |
||
пропусков и D O L L A R S после |
TAB (40). |
|
OUTPUT FORMAT
(LI)"TOTAL ACTIONS AND DOLLARS OF NEW CONTRACTS"
(L3) TAB 10 "TOTAL ACTIONS "Tl
(L4) TAB 10 "TOTAL DOLLARS $"Sl
(L7) "CONTRACT MODIFICATIONS AND DOLLARS BY T Y P E "
(L9) «CONTRACT MODIFICATION» TAB 20
«NUMBER» TAB 40, «DOLLARS»
PRINT (1)
(LIOF) DECODE Dl* TAB 20, T2, TAB 40, S2,- REPEAT
Рис. 4-5. Образец запроса 2.
6-88 |
81 |
С л е д у ю щ им форматом вывода |
является |
(1), |
|||||||
на который имеется ссылка |
в разделе Обработка, свя |
||||||||
з а н н а я € FILE3 . |
Этот |
ответ |
будет |
выдан в |
соответству |
||||
ющее |
время при обработке; |
в рассматриваемом |
приме |
||||||
ре оно выполнится для каждого сечения |
FILE3 (т. е. для |
||||||||
всех |
отличных |
между |
собой |
значений |
функций |
SAME |
|||
Dl*). |
Оператор |
начинается |
с 10-й |
строки |
и |
зани |
мает столько последовательных строк, сколько это необ
ходимо, т. е. д л я |
каждого 'повторения PRINT |
(1) в |
раз |
деле Обработка |
намечается следующая |
строка |
из |
раздела Выходной формат . Строка начинается с испол нения функции DECODE н а д D1*. Функция переводит значение в поле имени PROCUREMENT A C T I O N в его английский эквивалент, используя код в таблице перево
да. Печать начинается от левой |
границы, |
поскольку |
||||||||||||||
предшествующая функция T A B отсутствует. Таким об |
||||||||||||||||
разом, |
термины |
A D D I T I O N A L |
TASK, C H A N G E |
OF |
||||||||||||
SCOPE, T E R M I N A T I O N |
R E N E G O T I A T I O N |
принадле |
||||||||||||||
ж а т полю PROCUREMENT |
A C T I O N |
с кодом, |
более |
4, |
||||||||||||
и выбираются из файла согласно логическому |
в ы р а ж е |
|||||||||||||||
нию поиска FILE2 . На |
той |
ж е |
строке |
находится |
функ |
|||||||||||
ция TAB 20, |
после |
чего |
печатается |
значение |
из |
Т2. |
Из |
|||||||||
р а з д е л а Обработка |
поиска по запросу |
видно, |
что |
значе |
||||||||||||
ние из Т2 есть подсчет |
|
числа |
сечений |
по |
значениям |
|||||||||||
PROCUREMENT A C T I O N , т. е. кратность, |
с |
которой |
||||||||||||||
данное значение PROCUREMENT A C T I O N |
появляется |
|||||||||||||||
в выборке из FILE2 . После T A B 40 |
печатается |
значение |
||||||||||||||
из FILE2, представляющее |
сумму |
A C T I O N |
A M O U N T S |
|||||||||||||
д л я напечатанного значения PROCUREMENT A C T I O N . |
||||||||||||||||
Таким образом, на рис. 4-4 |
показано, |
что |
PROCURE |
|||||||||||||
M E N T A C T I O N |
A D D I T I O N A L |
T A S K |
встречается в |
вы |
||||||||||||
борке |
18 раз, |
а |
о б щ а я |
сумма |
в д о л л а р а х , |
|
связанная |
|||||||||
с этой |
акцией, |
равна 3 252 000; |
C H A N G E OF |
SCOPE |
||||||||||||
повторяется |
три |
раза, |
а о б щ а я |
сумма |
по |
всем |
трем |
ак |
||||||||
циям |
равна |
70 000 |
и |
т. |
д. |
Последнее |
высказывание |
|||||||||
в последовательности |
оператора PRINT |
(1) |
|
содержит |
||||||||||||
функцию REPEAT без аргумента и означает возвраще |
||||||||||||||||
ние управления в блок поиска |
раздела |
обработки. |
Та |
|||||||||||||
ким образом-, |
четыре строки |
отчета, |
начиная |
|
с |
10-й |
||||||||||
( A D D I T I O N A L |
T A S K |
183, |
252 |
000), |
печатаются в |
ре |
зультате четырех последовательных исполнений выска
зывания PRINT |
(1). |
|
|
|
Н а |
рис. 4-6 |
представлен еще |
более |
сложный пример |
языка |
запроса, |
п р и н а д л е ж а щ и й |
тому |
ж е прототипу. |
82
ACT |
5, |
PR1, |
FA2586 |
|
|
|
R E T R I E V E AND REPORT |
|
|
||||
OUTPUT D E V I C E |
|
|
|
|||
• |
LINE PRINTER |
|
|
|||
DATA CONDITIONS |
|
|
||||
|
Al |
(SEX=M) |
|
|
|
|
|
A2 |
(AGE .GT. AVERAGE |
(AGE)) |
|
||
|
A3 |
(SALARY |
.GT. MAX |
i R E N T + L I V E X P ) |
||
PROCESSING |
|
|
|
|
||
|
INTRA |
|
|
|
|
|
|
|
F I L E |
1=A1 |
AND A2 AND A3 |
|
|
|
INTER |
|
|
|
|
|
|
|
FOR |
F I L E |
1 |
|
|
|
|
F I L E 2 = NAME, ADDRESS, A2*, |
A3* |
|||
|
|
FOR |
F I L E |
2 |
|
|
|
|
F I L E 3 = SORT A3*, NAME |
|
|||
OUTPUT |
FORMAT |
|
|
|
||
|
(LIF) WHOLE RECORD |
F I L E 3 |
|
|||
|
Рис. 4-6. Образец запроса 3. |
|
||||
В отличие от |
предыдущих |
примеров в раздел |
Условие |
может быть включено наименование функции. В процес соре этого типа условие выводится из форм Имя/Отно - шение/З'Начение через Имя/Отношение/Функция имени. Это иллюстрируется элементом А2, состоящим из зна чений AGE, больших чем A V E R A G E OF AGE . Это озна
чает, |
что |
значение |
из |
А2 образуется |
в |
результате |
вычис |
|||||||
ления функции A V E R A G E . Возможность работы запро |
||||||||||||||
са такого типа в условиях реального |
|
м а с ш т а б а |
времени |
|||||||||||
поиска зависит от нескольких факторов . |
Во-первых, ес |
|||||||||||||
ли аргумент |
функции |
(в н а ш е м |
случае AGE) |
является |
||||||||||
ключом |
и |
если |
справочник |
|
организован |
правильно, |
||||||||
поиск |
в |
реальном |
масштабе |
времени, |
возможен . |
Схема |
||||||||
справочника, |
п о з в о л я ю щ а я реализовать |
такой |
тип поис |
|||||||||||
ка, называется |
деревом |
и |
будет |
рассмотрена н и ж е |
||||||||||
в гл. |
6. |
К а ж д о е |
из значений |
|
AGE |
|
можно |
поместить |
||||||
в справочник-дерево |
и |
далее |
вычислить |
среднее |
значе |
|||||||||
ние. |
Если аргументом |
функции |
служит |
классификатор, |
в справочник он не попадет и тогда возможны две аль тернативы. Одна из них состоит в том, что функциональ ные преобразования ограничиваются значениями, при н а д л е ж а щ и м и подфайлу, выбранному с помощью клю чей. Это означает, что усреднению подвергнутся только значения, с о д е р ж а щ и е с я в записях, выбранных по усло-
6* |
83 |
виям ключей |
р а з д е л а |
Условие, что, |
разумеется, отлича |
|
ется от среднего значения по всему |
файлу . В этом |
слу |
||
чае поиск в |
реальном |
масштабе времени, возможен, |
но |
при этом пользователи д о л ж н ы понимать и .учитывать
ограниченный смысл указанных функций. Если |
ж е в ка |
||||
честве второй |
альтернативы функции |
всегда |
относятся |
||
к файлу в целом, поиск |
в реальном |
масштабе времени |
|||
по |
аргументам |
классификатора невозможен, |
поскольку |
||
для |
получения |
значений |
функции необходим |
просмотр |
каждой записи файла .
Условие A3 вносит новые осложнения . Аргументом здесь служит арифметическое выражение; трудность со
стоит в вычислении с л о ж н ы х |
аргументов. Если аргумен |
||||||||
ты RENT и L I V E E X P были |
бы ключами, |
поиск в |
реаль |
||||||
ном |
масштабе |
времени |
по |
условию |
A3 |
логически |
был |
||
бы |
невозможен, |
поскольку |
|
тогда |
через |
справочник |
|||
д о л ж н ы быть вычислены |
все |
параметры |
комбинации |
значений из обоих множеств. Помимо того, что процесс
этот займет много времени, эти комбинации |
сами |
по |
||||||||||||||||||
себе |
бессмысленны. |
|
Следовательно, |
единственное |
ра |
|||||||||||||||
зумное решение состоит в том, что |
|
этот |
тип |
.условий |
||||||||||||||||
действует только |
|
на |
|
выбранном |
|
списком |
лодфайле, |
|||||||||||||
(т. е. как классификатор) . При этом опять |
ж е |
пользо |
||||||||||||||||||
ватель |
д о л ж е н |
сознавать, |
что |
условие |
|
прнложимо |
не |
|||||||||||||
к |
полному |
файлу, |
|
а |
к |
его |
подфайлу, |
|
образованному |
|||||||||||
с |
помощью |
ключей. |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
Внутризаписная |
логика |
поиска |
в |
приводимом |
приме |
||||||||||||||
ре |
представлена |
|
конъюнкцией |
трех |
элементов. |
М е ж з а |
||||||||||||||
писная обработка найденного ф а й л а |
(файл |
с |
|
меткой |
||||||||||||||||
FILE1) |
состоит |
в |
создании |
файла |
(с |
меткой |
F I L E 2 ) , |
|||||||||||||
представляющего |
собой |
выборку полей |
из к а ж д о й |
запи |
||||||||||||||||
си |
F I L E 1 |
(т. е. |
полей |
ключей |
или |
классификаторов) |
||||||||||||||
с |
именами |
N A M E , |
ADRESS, |
AGE, |
SALARY. |
Может |
||||||||||||||
оказаться, |
что |
при |
этом |
д а н н ы е т а к ж е |
редактируются и |
|||||||||||||||
подвергаются |
выборке. Д а л е е , |
все |
записи F I L E 2 |
сорти |
||||||||||||||||
руются |
по |
N A M E |
|
внутри |
SALARY, |
и |
отсортированный |
|||||||||||||
файл |
получает |
метку |
FILE3 . |
|
|
|
|
|
|
|
|
|
||||||||
|
Р а з д е л |
Выходной |
формат состоит из |
печати |
|
FILE3, |
||||||||||||||
начиная |
с |
1-й строки. Следует заметить, |
что |
в докумен |
||||||||||||||||
те появятся только четыре отобранных поля |
(FILE2), |
|||||||||||||||||||
отсортированных |
|
по |
N A M E в |
пределах |
SALARY. |
По |
||||||||||||||
скольку |
заголовки и пропуски в указаниях д л я |
печати |
от |
|||||||||||||||||
сутствуют, из библиотеки процессора запроса |
|
может |
||||||||||||||||||
быть |
выбран |
стандартный |
формат |
|
печати |
записи |
и |
84
MR76, PRIORITY 2, FA8721
UPDATE
DATA CONDITIONS
|
• |
Al |
(ACC NO. = 67215) |
|
|
|
|||
|
|
A2 |
(GRADE=67) |
|
|
|
|||
|
PROCESSING |
|
|
|
|
|
|||
|
|
INTRA |
|
|
|
|
|
||
|
|
|
F I L E |
1=A1 |
|
|
|
||
|
|
|
FOR |
F I L E 1 |
|
|
|
||
|
|
|
|
D E L E T E KEY GRADE |
|
|
|||
|
|
|
|
ADD KEY A2 |
|
|
|
||
|
Рис. 4-7. |
Образец запроса 4 (обновление). |
|
|
|||||
с его |
помощью |
под |
управлением |
системной |
функции |
||||
W H O L E RECORD |
отпечатана соответствующая |
стра |
|||||||
ница |
документа. |
|
|
|
|
|
|
|
|
Н а |
рис. 4-7 и |
4-8 представлены варианты формули - . |
|||||||
ровки |
задачи обновления |
файла |
на языке |
прототипа |
|||||
запроса. Первый |
из |
них, |
идентифицируемый как |
MR 76, |
не содержит требований на работу с внешними устрой
ствами. Р а з д е л |
Условие содержит |
имена полей данных |
|||||
и значения, участвующие |
в |
обновлении; AI |
— номер до |
||||
ступа единичной |
записи, |
А2 |
— имя |
ключа |
и значение, |
||
MR77, |
PRIORITY 2, FA8721 |
|
|
||||
UPDATE |
|
|
|
|
|
|
|
OUTPUT D E V I C E |
|
|
|
|
|
||
TYP |
|
|
|
|
|
|
|
DATA CONDITIONS |
|
|
|
|
|||
В (YEAR.BTW.1966, |
1969) |
|
|||||
С (TYPE=XL78) |
|
|
|
||||
D (STR COL PLAN NO. 87Ѳ5231Е) |
|
||||||
PROCESSING |
|
|
|
|
|
|
|
INTRA |
|
|
|
|
|
|
|
|
F I L E |
1=B |
AND |
С |
|
|
|
INTER |
|
|
|
|
|
|
|
|
FOR |
F I L E |
1 |
|
|
|
|
|
D E L E T E DATA E7 |
|
|||||
|
ADD |
DATA |
F7 |
D |
|
||
|
RESTORE F I L E 1 |
|
|||||
OUTPUT FORMAT |
|
|
|
|
|||
(LIF) DATA |
F I L E 1 |
|
|
||||
Рис. 4-8. Образец |
запроса |
5 |
(обновление). |
85