Файл: Левковиц, Д. Структуры информационных массивов оперативных систем.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 19.10.2024
Просмотров: 79
Скачиваний: 0
мисту-прикладпику, работающему с компилятором . Язык запроса может функционировать к а к средство об
щения с пользователем-непрограммистом, в этом |
случае |
||||||||||
его утверждения д о л ж н ы |
интерпретироваться, |
поскольку |
|||||||||
эффективное |
взаимодействие |
ч е л о в е к — м а ш и н а |
требует |
||||||||
построчного |
редактирования |
и исполнения. |
Это |
свойст |
|||||||
во |
превращает операции |
управления |
файлом |
как |
с |
точ |
|||||
ки |
зрения программиста, |
так |
и с точки |
зрения |
пользова |
||||||
теля - непрограммиста |
в операции, не |
зависящие |
от |
ма |
|||||||
шины. |
|
|
|
|
|
|
|
|
|
|
|
|
Более конкретно, |
язык |
запроса |
и |
связанный |
с |
ним |
||||
процессор д о л ж н ы |
как |
минимум |
уметь |
осуществлять |
|||||||
следующие |
операции: |
|
|
|
|
|
|
|
|
1)поиск, основанный на использовании ключей и классификаторов;
2)обновление записей — присоединение и исключе ние записей, присоединение, исключение и модификации
ключей и классификаторов, модификации |
данных; |
||||
3) межзаписную обработку со свободным включением |
|||||
процедур; |
|
|
|
|
|
4) |
создание гибких |
форм для |
выходных |
данных. |
|
К этому следовало бы добавить компилятор д л я вы |
|||||
числительных процедур, но если |
блок запроса |
включен |
|||
в существующий компилятор, |
это требование |
выпол |
|||
няется |
автоматически, |
и тогда |
утверждения языка за |
проса могут быть свободно связаны с вычислительными предложениями .
Язык запроса, описываемый в этой главе, представ ляет собой некоторый прототип или модель, поскольку
главной его |
целью |
является выяснение |
требований |
к структурам |
файла |
и их иллюстрация . К а к |
прототип |
описываемый далее язык запроса удовлетворяет всем че тырем минимальным требованиям, перечисленным выше. Читатель может его расширить или адаптировать для
своих приложений, |
поскольку к а ж д а я система |
может |
содержать некоторые |
специальные требования, |
которые |
в терминах базисного языка не могут быть полностью удовлетворены. Описываемый ниже язык может быть для некоторых целей рассмотрен и использован к а к язык операционной системы. Это высокоформализованный кон текстно-свободный язык, и, как указано выше, его основ
ная задача |
в р а м к а х |
этой |
книги состоит |
в |
выявлении |
некоторых |
фундаментальных |
требований |
к |
структурам |
|
файлов в оперативных |
системах. |
|
|
68
HEADER (ID, Priority, File Access Key)
COMMAND (Retrieve, Update, Report, etc.)
OUTPUT D E V I C E (Typewriter, Display, Printer)
DATA CONDITIONS
K l (key name R value)
K2 (key name R value)
CI (qualifier name R value)
C2 (qualifier name R value)
PROCESSING (A function of K l , K2, .. . C l , C2 .. Л
• Intra — Record Logic Functions
•Inter — Record Processing OUTPUT FORMAT
•Titles
•Formatting Print Statements
Рис. 4-1. Прототип схемы запроса.
Ф о р м а т запроса, |
представленный |
на рис. 4-1, состоит |
из шести основных |
разделов, первые |
три из которых со |
держат основную у п р а в л я ю щ у ю информацию и здесь
нами не рассматриваются; остальные |
три существенно |
|||
связаны |
со структурой |
и обслуживанием файла |
и обра |
|
щением с ним. |
|
|
|
|
Первый раздел представляет собой |
Заголовок |
(HEA |
||
DER), |
с о д е р ж а щ и й |
идентификатор |
пользователя, а |
|
в случае |
мультитерминальной системы |
с дальней |
связью |
|
т а к ж е идентификатор |
терминального устройства. Заголо |
вок, кроме того, может содержать и другую информацию,
такую как, например, приоритет |
запроса |
и ключ доступа |
||
к файлу, используемый дл я подтверждения |
подлинности |
|||
системных |
файлов или записей, |
участвующих в запросе. |
||
Р а з д е л |
Действие ( C O M M A N D ) запроса |
обычно пред |
||
ставляет |
собой относительно |
простое |
мнемоническое |
|
утверждение или функцию, которое д о л ж н о |
быть выпол |
нено в ответ на запрос. Следует отметить, что понятие
«запрос» здесь понимается в достаточно широком |
смыс |
|||||
ле; в некоторых системах помимо поиска |
ф а й л а |
запрос |
||||
может |
содержать |
требование |
на обновление |
файла, |
||
выполнение процедур |
редактирования, сообщение |
о со |
||||
стоянии |
системы |
или |
вызов |
процедуры |
или подпро |
|
граммы |
|
|
|
|
|
|
69
Третий раздел запроса содержит спецификацию Вы ходных устройств (OUTPUT D E V I C E ) . В некоторых си стемах речь может идти о выборе выходного устройства.
Эти три различные системные функции |
осуществляют |
|
«естественное» разделение операций над |
ф а й л а м и , |
кото |
рые рассмотрены в последующих главах. |
Другими |
сло |
вами, автоматизированная система имеет свой, вполне упорядоченный способ обработки информации, который
может несколько отличаться от естественного |
процесса, |
|||||||
реализуемого человеком при попытке установления |
свя |
|||||||
зи с системой и ее -использовании. Таким |
образом, |
язык |
||||||
запроса |
и процессор |
д о л ж н ы |
служить |
«ограничитель |
||||
ным» |
механизмом |
или синхронизатором |
между челове |
|||||
ком |
и |
машиной. |
А |
поскольку |
человеческое |
мышление |
обладает значительно большей гибкостью, было решено жестко ограничить пользователя соответствующим фор
матом запроса, |
проводя его |
через последовательность |
||
четких утверждений, |
которые |
в некоторых |
случаях могут |
|
потребовать от |
него |
поиска |
аналоіий |
и переработки |
«естественного» порядка работы автоматизированной си стемы файлов . Изложенное разделение понятий усили вает иллюстративные свойства рассмотрения, рельефно
выделяя |
основные |
функциональные |
компоненты |
струк |
||||
туры |
файла . |
|
|
|
|
|
|
|
Четвертый раздел |
запроса |
под названием |
Условия |
|||||
(DATA |
CONDITIONS) |
содержит у п р а в л я ю щ и е |
аргумен |
|||||
ты или |
параметры . |
|
Например, |
при |
действии |
|
поиска |
|
д о л ж н ы быть определены ключи, классификаторы |
и ус |
|||||||
ловия |
поиска. При |
обновлении |
у п р а в л я ю щ и м и |
парамет |
рами могут быть номер д л я доступа единичной записи и собственно данные обновления. Группу записей лучше
обновлять |
не по номеру записи, |
а по списковому ключу. |
||
Например, |
может потребоваться |
обновление в |
записях |
|
о воинском |
подразделении, относящееся |
к определенно |
||
му воинскому званию. Во всех случаях |
р а з д е л |
условия, |
||
определяющий условия д л я ключей и |
классификаторов |
|||
при получении доступа к записи, |
будет |
использован как |
запрос. Часто оказывается полезным предоставить поль зователю возможность помечать ключи или условие мне
моническими символами, например KU К2, |
Cl, С2 |
(см. |
||
рис. 4-1), с тем |
чтобы далее использовать |
|
мнемонику |
|
естественного языка для спецификации имени |
ключа или |
|||
классификатора, |
его значения или серии значений, а |
так |
||
ж е требуемого соотношения между именем |
и |
значением. |
70
Д л я прототипа |
запроса, ф о р м а т |
которого |
мы у ж е |
рас |
||
сматривали, это достигается достаточно точно |
введением |
|||||
символов пользователя . А |
именно |
вслед за |
присвоенным |
|||
пользователем |
символом, |
рассматриваемым |
как |
метка |
||
условия, следует о т к р ы в а ю щ а я скобка, д а л е е |
имя |
ключа |
или классификатора в его системной форме представле
ния, вслед за которым идет |
оператор |
отношения |
(равно, |
||
больше, меньше, |
в пределах), д а л е е |
цифровое |
или |
ал |
|
фавитно-цифровое |
значение |
или серия значений |
(в |
за |
висимости от типа оператора отношения), и, наконец,
закрывающая |
скобка. Обобщение этой концепции могло |
бы привести |
к значениям, полученным в результате |
функциональных преобразований значений имен соот ветствующих ключей и классификаторов . Однако такое обобщение, во многих информационных системах ненуж ное, значительно усложнило бы программы . Эта точка зрения будет проиллюстрирована . В некоторых случаях утверждение условия вырождается в значение поля, т. е. имя и операция отношения опущены. Это может иметь место при действии обновления, когда обновлению под
лежит поле данных, определенное |
в р а з д е л е обработка, |
||
а новые |
данные, которые |
д о л ж н ы |
быть добавлены или |
внесены |
в поле, у к а з а н ы |
и помечены в разделе Условие. |
Представление имен полей и значений в запросе и записях само по себе требует дальнейших разъяснений. Часто оказывается более экономичным помещать в за пись коды значений д л я имен или значений, поскольку полное название термина на естественном языке может потребовать значительно больше памяти, а будучи по вторенное в записях при к а ж д о й реализации, может при вести к неоправданно высоким требованиям к памяти. Таким образом, имя или значение в записи заменяются целым кодовым числом, а т а б л и ц а перевода преобразует имя в код, и наоборот (при необходимости распечатки ключей и классификаторов из записи) . Более того, в за писях фиксированного формата наименование ключа или классификатора определяется положением символа вну три записи, а имя д л я перевода находится в таблице, описывающей ф о р м а т записи. Здесь следует упомянуть метод организации файла, при котором ключи (но не классификаторы) могут быть полностью изъяты из за писи.
С помощью метки проектировщик системы может ре шать вопрос о том, следует ли пользователю различать
71