Файл: Левковиц, Д. Структуры информационных массивов оперативных систем.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 19.10.2024

Просмотров: 85

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

м е ж ду собой ключи и классификаторы в разделе усло­ вия. Если это требование с него снимается, система са­ ма д о л ж н а уметь их автоматически различать с по­ мощью декодирования . В противном случае пользова­ телю следует обратиться к печатному каталогу имен ключей и классификаторов . Таким образом требование декодирования с системы снимается.

Пятый раздел запроса содержит спецификацию про­ цесса поисковой Обработки (PROCESSING), являющей­ ся функцией условий. Р а з л и ч а ю т два типа обработки: внутризаписиые логические функции и м е ж з а п и с н а я об­ работка .

В

первом

случае записи извлекаются в оператив­

ную

память

из З У П Д согласно поисковому описку,

после чего подвергаются дальнейшей обработке внутри записи с помощью ключей и классификаторов . Оконча­ тельный ответ об удовлетворении некоторой записи'Из списка запросу согласно логике его внутризаписной об­

работки

есть функция одних

лишь

данных (условий клю­

ча или

классификатора) внутри

этой записи.

Функция

внутризаписной обработки,

о п р е д е л я ю щ а я

поисковый

список, обычно представляет собой булево выражение, аргументы которого суть метки, определенные в разделе Условие запроса .

М е ж з а п и с н а я обработка включает

операции над про­

межуточными ф а й л а м и , п о р о ж д а е м ы

м и записями, про­

шедшими внутризапнсную обработку. Она может содер­ ж а т ь вычислительные процедуры, операции по сорти­ ровке всех отобранных записей или некоторой ее части. Обработка этого типа используется при формировании отчетности, однако в некоторых системах процедуры они

могут отсутствовать. В этом случае формирование

отчет­

ности состоит

в выдаче пользователю

записи по

мере

того, ка к она найдена

и классифицирована

процедурами

внутризаписной

обработки.

 

 

 

Р а з д е л Обработка

т а к ж е состоит

из

высказываний

типа программ, с о д е р ж а щ и х встроенные функции языка запроса типа For (цикл в приложении к списку) D'elete key name, add key Name, Sort name, Tally data condition,

Sum

name и т.

д. и высказывания

о локализации

типа

a = ß ,

которое

определено, если

ß — функциональное

в ы р а ж е н и е типа sum name или

A l A N D А2, а

а —

принятый пользователем символ

дл я хранения

мет­

ки ß.

 

 

 

 

72


Шестой раздел запроса содержит Выходной формат

(Output F O R M A T ) . При правильном

формировании от­

четности заголовки и метки д о л ж н ы

либо в явной форме

присутствовать в запросе, либо вызываться из записан­

ных ранее

меченых форм. Кроме того, результаты по­

иска д о л ж н ы быть размещены и упорядочены.

 

Из опыта большинства начинающих программистов

известно,

что стандартные высказывания

ввода-вывода

на

языках

программирования Ф О Р Т Р А Н ,

А Л Г О Л .и да­

же

К О Б О Л требуют большего навыка и

представляют

большие операционные трудности, чем алгоритмические высказывания языка . Пользователь языка запроса, не­

программист, незнакомый

д а ж е с простейшими

процеду­

рами

редактирования при

компиляции, ж е л а л

бы воз­

можно

упростить правила

спецификации, д л я

ф о р м а т о в

вывода, сохраняя при этом качественное и гибкое пред­ ставление данных. Оба эти требования несколько проти­ воречивы, поскольку большая гибкость представления приводит к более сложной процедуре формирования . Од­ нако частично эта трудность может быть преодолена ис­ пользованием стандартных форматных функций, вклю­ ченных в исполнительную программу относительно про­ стой конструкции. Эти функции или программы, подобно рассмотренным выше процедурам обработки SUM ,

TALLY, A D D KEY и т. д., пишутся

системными

програм­

мистами

дл я

предоставления

пользователю

удобных

форматных пакетов

(наборов) .

Н а п р и м е р ,

функция

W H O L E RECORD1 NAME может формировать и печатать

(или высвечивать) любую запись в

файле

NAME, ранее

определенную выражением типа NAME-ß. Стандартный

формат

записи

м о ж е т

быть настроен на

формат любой

записи системы. Это

означает,

что

файл

NAME должен

иметь соответствующее описание формата, которое может быть интерпретировано функцией W H O L E RECORD1 . Дальнейшее расширение состояло бы в написании серии

таких- процедур-функций, генерирующих

многообразие

различных специальных форматов общего

назначения

или рассчитанных на специфические требования кон­

кретных пользователей. Исполнительная или вызываю ­

щая программа д л я

этих

функций д о л ж н а

быть предель­

но простой, потому

что она пишется пользователем. Ос­

новные

требования

к

исполнительному

процессору

состоят в

возможности:

 

 

1) з а д а т ь разметку

по строкам и столбцам;

73


2)

з а д а т ь

алфавитно - цифровые

метки;

3)

занести

основные макетные

линии д л я графиков

исхем при работе с ЭЛТ ;

4)вызывать описанные выше системные функции для печати или высвечивания отмеченных переменных из раздела Обработка .

В системах, предназначенных дл я оперативного поль­ зования руководством и исполнителями, если выход си­

стемы

используется

этими людьми

непосредственно

в ф о р м е

отчетов или

визуальных схем

типа проекции

слайдов, то необходимо соблюдение очень высокого ка­ чества форматов и заполнений. Функции, которые теперь станет выполнять автоматизированная информационная система, в прошлом выполнялись людьми, которые со­ бирали эту информацию, а затем ее перерабатывали .

Д о сих пор при использовании ЭВ М в работе инфор­ мационных систем внимание фокусировалось в основном

на

улучшениях в области

хранения, поиска,

обновления

и обработки данных. Но если эти системы

д о л ж н ы

стать

д л я

руководства и пользователя - непрограммиста

оруди­

ем

оперативного управления,

процедурам

представления

данных

необходимо

уделить

дополнительное

внимание.

Из этого не следует, что вопросы автоматической

обра­

ботки данных по причине их преимущественного

разви­

тия

не являются главными;

напротив, мы

только

при­

б л и ж а е м с я к пониманию

взаимодействия

стандартных

методов

автоматизированной

информационно-поисковой

системы

(описанной

в последующих главах

этой

книги)

с информационными управляющими системами, систе­

мами

с у п р а в л я ю щ и м

воздействием,

системами

учета

и т. д.

 

 

 

 

 

 

 

 

 

 

На рис. 4-2—4-6 представлены варианты запроса раз­

личного уровня

сложности, имеющие

общий

прототип.

Н а

рис. 4-2 пользователь идентифицируется в

заго­

ловке

ка к >NL 252. Д а л е е

пользователь приписывает за­

просу

приоритет,

равный

единице,

и

представляет

ключ

доступа к

ф а й л у

12743.

Ключ

этот

м о ж е т быть исполь­

зован

как

код идентификации

ф а й л а

или ка к

код

раз­

решения работ. В начале работы с мультифайловой си­

стемой необходимо идентифицировать

файл

или файлы,

к которым адресован запрос. Д а л е е ,

если,

кроме того,

решены вопросы з а щ и т ы и доступа к файлу, достигается уровень управления файлом вплоть до элементарной за­ писи (см. рис. 3-5), селективно р а з р е ш а ю щ и й или за-

74


 

N.L252,

PR I, FA 12743 '

 

 

 

 

 

 

R E T R I E V E AND REPORT

 

 

 

 

 

OUTPUT

D E V I C E

 

 

 

 

 

 

 

 

TYP

 

 

 

 

 

/

 

DATA CONDITIONS

 

 

 

 

 

 

 

 

K l (NAME = SMITH

 

 

 

 

 

 

 

 

K2(AGE.BTW,21,30)

 

 

 

 

 

 

 

K3(Kl* = GORDON)

 

 

 

 

 

 

 

K4 (JOB = PROGRAMMER )

 

 

 

 

 

 

C l ( L O C N = PHILA)

 

 

 

 

 

 

 

 

C2(DRAFT=IA)

 

 

 

 

 

 

PROCESSING

 

 

 

 

 

 

 

 

INTRA

 

 

 

 

 

 

 

 

 

 

File

1=K2(K1 +

( ~ K 4 ) K 3 ) C 1 ( ~ C 2 )

 

 

 

INTER

 

 

 

 

 

 

 

 

 

 

FOR

F I L E 1

 

 

 

 

 

 

 

 

 

 

F I L E 2 = SORT AGE

 

 

 

OUTPUT FORMAT

 

 

 

 

 

 

(LI)

TAB'20,"PROGRAMMER

LISTING"

 

 

(L3F)

WHOLE RECORD

F I L E

2

 

 

 

 

 

 

Рис. 4-2. Образец

запроса

1.

 

 

п р е щ а ю щ ий доступ к фиксированным

записям внутри

файла . Выходным

устройством

может

быть

пишущая

машинка .

Если

система имеет

единственное

выходное

устройство или если адрес устройства

(а,

следовательно,

тип) у к а з а н

в

поле

идентификатора,

раздел

Выходное

устройство

в

запросе

может быть

полностью

опущен.

Запрос состоит в поиске и формировании отчетности по

шести условиям д л я данных. Метки данных

(рис. 4-2)

имеют

простое разъяснение:

первые

четыре

из них —

ключи,

две последние — классификатдры .

Однако,

как

уже было указано, эти метки

(Kl,

К2

и т.

д.)

не

могут

быть использованы д л я различения

ключей

и

классифи­

каторов применительно к процессору запроса и програм­ мам поиска. Обычно желательно не требовать от пользо­ вателя знания различия данных-ключей и данных - клас ­ сификаторов, хотя эту информацию легко сделать до­ ступной в виде напечатанных каталогов . Ключи и клас­ сификаторы можно довольно легко отличить с помощью

машинных

справочников.

Если

ж е

поиск

по списку не­

возможен

по той причине,

что либо

вопрос

пользователя

не содержит ключей, либо

в дизъюнкции логического вы­

ражения

запроса отсутствуют

неотрицаемые ключи,

75


пол ьз овате ль извещается об этом, после чего он может соответственно модифицировать вопрос.

Вприведенном примере пользователь определил

Ключ и соотношения И м я Ключа/Значение

как

N A M E

равно

S M I T H ,

AGE

менаду 21 и 30,

N A M E

равно GOR­

DON, JOB

равно PROGRAMMER . Д л я удобства

элемент

N A M E

в

 

тройке

N A M E / R E L A T I O N / V A L ' U E

можно

не

повторять,

 

приписав

соответствующему

 

обозначению

данных

 

метку

со

спецальньш

символом

 

(например,

звездой) .

 

Таким

образом,

при написании

условия

КЗ

И м я

Ключа

N A M E

обозначается

ссылкой

на

К1*.

За-,

прос

содержит

два

.классификатора

L'OCATION - PHILA,

DRAFT - IA .

 

 

 

 

 

 

 

 

 

 

 

 

 

Логика

внутризаітисной

обработки принадлежит

ти­

пу a = i ß .

В левой

части

равенства стоит имя

промежуточ­

ного

файла,

определенное

пользователем,

справа — ло­

гическое

выражение, аргументами

которого

с л у ж а т

мет­

ки раздела

Условие.

В рассматриваемом

примере

со­

здается

ф а й л с

меткой

F I L E 1 и

вызываются

процедура

поиска

по

списку

и

внутризаписиая

обработка,

которая

д о л ж н а

найти

все

записи

относительно

людей

«в

воз­

расте от

21

до

30

лет

по

имени

S M I T H

или

GORDON,

при

условии,

что

GORDON — непрограммист,

ж и в у щ и х

в Филадельфии

и

не

п о д л е ж а щ и х

призыву

по

статье

1А». Следует отметить, что справочный просмотр ука­

жет, что поиск по списку возможен, потому что

к а ж д а я

дизъюнкция логического в ы р а ж е н и я (приведенного

к

нормальной дизъюнктивной форме) содержит по

край­

ней

мере

один

неотрицаемый

ключ.

Однако

 

усло­

вия Cl и не С2"

могут быть

проверены

только

после

того,

как

запись

перенесена

из-

З У П Д

в оперативную

память .

 

 

 

 

 

 

 

 

 

 

Вторая

часть

раздела Обработка, ф о р м и р у ю щ а я

от­

чет,

интерпретируется следующим

образом . Д л я

каждой

записи

из

файла

F I U E l построить

второй

ф а й л

с

меткой

FILE2, отсортированный по значениям из

поля

с

именем

A G E . Подчеркивающие линии иа рис. 4-2 не несут смыс­

ловой

нагрузки — они выделяют типы функции

или

дей­

ствий

процессора

запроса . Употребление

а б з а ц е в

в

рас ­

сматриваемом примере д л я

выделения области управле­

ния циклом for т а к ж е чисто

условно, хотя

и может иметь

практическое значение. Суть дела в том,

что

непрограм­

мисты непривычны

к гнездовым процедурам,

в то

время

к а к программисты

постоянно пользуются

ими в

форме

76