Текст
                    Ю.Н. Иванов
ТЕОРИЯ
ИНФОРМАЦИОННЫХ
ОБЪЕКТОВ
И систвмы УПРАВЛЕНИЯ“
‘ БАЗАМИ ДАННЫХ
W
Ш
МОСКВА ”НАУКА”
ГЛАВН РЕД ия
ФИЗИК - АТЕ ичвской ЛИТЕРАТУРЫ
1988


ББК 32.773-01 И20 УДК 519.682.5  Теория гшформационньхх объектов и системы управлеъшя базами данных /Иванов Ю.Н. — М.: Наука. ‚Гл. ред.физ.-мат.лит.‚ 1988. — 232 с. ISBN 5-02-013,884-3  Излагаются теоретические основания систем Управления базами данных. Аналшзируются информационные объекты и выявляются необходимые язы- ковые средства для описания этих объектов, для запросов к ним, а также для описания документов. В основу принятого подхода положено представление об информационном объекте как о совоку ости информационных переменных, связанных между и зависимостями. Помимо распространения традгщион- ных в математике онятий на сферу дискретности, теория информационных объектов вырабо а новые понятия: группируюший аргумент, композиция и декомпозиция нкций и т.п. _ Для специал стов в области информ ис_ ой техники, разработчиков стем управления базами gaumx.fi$¥Ft.@6*ah1€§én ЭВМ. Табл. 27. 50. Библиогр. 119 назв.  Р е ц е н з н‘ т академик I'.C. Поспелов!  Иаанов Юрий Николаевич  г? - ТЕОРИЯ ИНФОРМАЦИОННЫХ ОБЪЕКТОВ и системы управпениябазами данных.  Редактор Р.А. Сопшкова Художесгвенньш редактор T.H. Кольчеико Технические редакторы 0.5. Черняк, С.Н. Баранина Корректоры T.C. Родионова, HJ7. Круглова, Т.В. Обод  Набор осуществлен в издательстве на наборно-печатаюцшх автоматах  ИБ N932648  Сдано в набор 01.02.88. Подписано к печати 20.04.88 Т—09571 Формат 60 х 90/16 Бумага писчая Гарнитура Пресс-Роман. Печать офсетная Усл. печ.л. 14,50 Усл.кр.-отт. 14,50.Уч.-изд.л.19‚10 Тираж 8800. Тип.зак. 88 . Цена 1 р. 90 к.  Ордена Трудового Красного Знамени издательство ”Наука” Главная редакция физико-математической литературы 11707 1 Москва В-7 1, Ленинский проспект, 15  Четвертая типография издательства ”Наука” 630077 г. Новосибирск-77‚ ул. Станиславского, 25  17о2о7ооом 26 088 © и н ——-——-'——- здательство ” аука”. 053 (02)-88 Главная редакция  физико-математической ISBN 5-02-01 3884-3 литературы, 1988 
,4-.'rtH-14,-9’ и ‘О ‚др  .- щ...‚‚..‚  ОГЛАВЛЕНИЕ  o о ь o о o o o о o oooooooo o o o о o ooooo о о ь o coo o о o o coo  Введение. Системы управления базами данных . . . . . . . . . . . . . . . . . . . . Глава 1. Черты информационных ‚объектов . . . . . . . . . . . . . `. .:1` . . . . . . .  . . . . . . . . . . . . . . . ... . . . . .. . Информационные переменные . . . . . . . . . . . . . . . . . . . . . . . . . . . Информационные функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Введениев запросы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Отношения между переменными . . . . . . . . . . . . . . . . . . . . . . . . . . Язык описания информационных объектов .\ . . . . . . . . . . . . . . . . .  woooocmcmcmcm охи-дины  Глава 2. Примеры описаний информационных объектов . . . . . . . . . . . . . . .  . формализованное описание ”анкетъ1” . . . . . . . . . . . . . . . . . . . . . . . ”Валовые выпуски” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ”Административно-территориальное деление страны и деление страны на экономические районы” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ”Морфлот” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  ‘Ф СООСФЙ A UJt~.)I--  O о о O o о о о o о ooooo o O O о о о:оооооьоооооо  ё 1. Иерархическое представление и ИНЭС-модель . . . . . . . . . . . . . . . . ё 2. Реляционная модель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ё 3. Иерархическая модель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ё 4. Сетевая модель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  Глава 4. Преобразования информационных объектов. . . . . . . . . . . . . . . . .  ё 1. Преобразования информационных зависимостей . . . . . . . . . . . . . . . ё 2. Преобразования отношений между переменными . . . . . . . . . . . . . . ё 3. Уничтожение, объединение и разделение информационных объектов ё 4. Язык преобразований информационных объектов. . . . . . . . . . . . . .  Глава5.Запросы................ . . . . . . . . . . . . . . . . . . ..  ё 1. О языках запросов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ё 2. Производные информационные зависимости . . . . . . . . . . . . . . . . . ё 3. Операции над информационными зависимостями . . . . . . . . . . . . . . ё 4. Язык запросов . . . . . . .° . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  .1*  15  17 17 21 35 39 47  55  55 56  62 71  82  82 108 115 118  120  120 141 144 145  153  153 158 167 173  3 
\  Главаб.документы.....................................  § 1. Документы табличной формы . . . . . . . . . . . . . . . . . . . . § 2. Элементы табличных отображений . . . . . . . . . . . . . . . . . . . . . . . § 3. Описания документов, структурные диаграммы и макеты документов 54.Последовательностизначений. .. . . . . . .. . .. . ; § 5. Языки ввода и вывода документов. . . .  I I I I I I О I I I I I I O I I I I I I O I I I О I О I I I I О I I I I I О  180  181 191 197 203 221  228  м: 
ПРЕДИСЛОВИЕ  Системы управления базами данных (СУБД) оперируют c информацион- ными объектами. Теория информатшонных объектов описывает свойства этих объектов, запросы к ним и действия над ними, а также вводит средст- ва формализованного отображения свойств, запросов и действий. Сегодня литература по СУБД насчитывает сотни наименований. Появле- ние в этом ряду предлагаемой книги может быть оправдано тем, что изла- гаемые в ней теоретические построения базируются на элементарном мате- матическом аппарате и все языки общения с информационными объектами построены с применением этого аппарата. Бьшо обнаружено, что для описания информационных объектов пригод- ны привычные‘ математические понятия: переменная, вектор, функция и т.п. При этом запросы к информатшонным объектам и действия над ними трактуются также в привычных термъшах: вычисление функцрш, нахожде- ние корней уравнения, суперпозиция функций, исключение параметра и т.п. Специфика информационных объектов задает необходимость расширения этого круга понятий, но ядром остаются привычные выразительные средст- ва элементарной математшси. Выбранный в книге путь - это адаптация тра- диционных математических понятий к сфере информационных объектов. Первая глава книги посвящена проблеме анализа информационных объектов. Здесь как пример рассматривается кадровая анкета и на основа- нии ее анализа выявляются черты информационных объектов, которым дается формализованное представление. Большая часть терминов формали- зованного представления заимствована из арсенала элементарной матема- тики. Глава заканчивается языком описания информационных объектов. Вторая глава содержит примеры описаъшй информационных объектов. Она хотя и не несет новых теоретических сведений, но полезна c точки зре- ния иллюстрирования предложенных языковых средств. В третьей главе дается сравнение предлагаемого языка описания инфор- мационных объектов c известными в литературе языками. Следующая, четвертая, глава посвящена преобразованиям информа- ционных объектов. Принятый подход позволил здесь, во-первых, навести порядок среди известных операций преобразования и, во-вторых, опреде- лить новые полезные операции. В основе больцшнства операций преобразо- вания лежит специфическое свойство информационных функций -— их дискретный характер. 
Благодаря пртшятому подходу удалось также выявить общую формулу запроса, в которую вкладываются известные типы запросов. Теория запро- сов вместе с языком запросов обсуждаются в пятой главе; там же приво- дятся сопоставлеъшя c известными в литературе языками запросов. Шестая, последняя, глава имеет дело с документами. Теоргш документов посвящено достаточно много отечественных и зарубежных статей и моно- графий. В этой къшге документ рассматривается как форма отображения информационных функтшй, составляющих ъшформационные объекты. Та- кая трактовка позволяет дать классификацию табличных документов, а также позволяет выбрать необходимые языковые средства для форма- лизации документов. В заключение этого обзора уместно сделать три замечания. Во-первых, те языки общения с информационными объектами, которые обсуждаются в настоящей книге, не претендуют на законченность в смысле их непосред- ственного применения в СУБД. Во-вторых, полнота обсуждаемых языков здесь не рассматривается и не гарантируется и индуктивный путь построе- mu: языков считается единственно возможным. В третьих, къшга готови- лась одновременно c монографией Н.Е. Емельянова ”Введение в СУБД ИНЭС” М.: Наука, 1988, которая в отличие от данной книги ориентиро- вана более на изложение инструментальной части ИНЭС, нежели теории СУБД вообще и СУБД ИНЭС в частности. Эта книга писалась долго. Ее обцшй замысел вынашивался сов- местно с Владиславом Васильевичем Токаревым и теперь уже, к сожа- лению, покойным Александром Николаевичем Дюкаловым. Своим появ- лением книга в значительной степени обязана тому обстоятельству, что автор участвовал в разработке отечественной СУБД широкого примене- ния — ИНЭС и имел постоянный контакт с ее ведущими разработчиками: Владимиром Львовичем Арлазаровым, Игорем Александровичем Фарадже- вым, Нш<олаем Евгеньевичем Емельяновым, Анатолием Васильевичем Усковым. Автор неизменно получал поддержку и помощь своих коллег Юрия Яковлевича Кочина, Раисы Александровны Сотниковой и‘ Сергея Дмитриевича Прошкина. Раиса Александровна взяла на себя труд привести рукопись к требуемому виду. На заключительном этапе работы над руко- писью автор получил возможность воспользоваться советами академика Гермогена Сергеевича Поспелова. Всем им автор приносит глубокую благодарность.  . -. ‘Н’ Ё. '3’ '1 : 1 ’\  _&l‘  дыр?‘  лгдйдгйжег „А-„х до‘ "- чЁтьдЧКгЗЗ-г“ г- 
ВВЕДЕНИЕ СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ  Эта книга о теоретических основаниях СУБД ИНЭС и других СУБД. СУБД - это Система Управления Базами Данных, а ИНЭС —- Информацион- ная Экономическая Система, которая разработана коллективами Институ- та проблем управления и Всесоюзного научно-исследовательского института системных исследований. 1. Об ИНЭС. ИНЭС представляет собой совокупность программных средств, обеспечивающих функционирование универсальной СУБД, а также средств, решающих задачи экономического управления (ни чему ино- му, как экономическим задачам, обязано появлеьше слова ЭКОНОМИЧЕ- СКАЯ в названии системы ИНЭС). В ИНЭС включены алгоритмы решения трех типов экономических задач: 1) составление экономических сводок и прямые плановые расчеты, 2) по- строение оптимального динамического межотраслевого баланса, 3) нахожде- ние оптимального динамического плана производства продукшш отрасли, перевозок сырья, полуфабрикатов и готовой продукции отрасли, размеще- ния новых предприятий отрасли в заданном регионе. Что касается СУБД ИНЭС, то она не ориентирована на данные, обладающие какими-либо специ- фическими свойствами, и поэтому может использоваться для практических задач разнообразной природы. Такой состав ИНЭС обусловлен ее назначением. Она выступает как опе- рационное ядро по отношению к автоматизированным системам управле- шипя (АСУ) экономическими объектами. Будучи адаптирована к конкрет- ному экономическому объекту и наполнена данными об этом объекте, ИНЭС развивается в АСУ этого объекта. АСУ, базирующейся на ИНЭС, присущи следующие функции: 1) она накапливает сведения о текущем состояшш объекта, 2) она вычисляет экономические управляющие воздей- ствия, которые приводят экономический объект в желаемое состояние, а) она всесторонне информирует об объекте, чтобы человек, активно дейст- вующий в контуре управления, мог избирать наиболее подходящий вариант управляющего решения. Включенные в ИНЭС алгоритмы обеспечивают фушсцию принятия экономического решения, СУБД ИНЭС —- регистрирую- щую функцию. ИНЭС может использоваться также в автоматизированных системах уп- равления объектами неэкономической природы. В этом случае ИНЭС под- держивает регистрирующую функцию АСУ, которая обеспечивается СУБД ИНЭС. 7 
В настоящей книге ъшчего не будет говориться об алгоритмах решения экономических задач. В ней будет идти речь о теории информа- ционных объектов как основании язьпсов СУБД. Что касается СУБД ИНЭС, то она фигурирует в изложении наряду c ДРУГИМИ системами, являясь материалом для иллюстрашитй. ‚ 2. О составе универсальной СУБД. На рис. В.1 показана схема универ- сальной СУБД. Верхний уровень схемы занимают обращения к системе (сообщения и заявки), на среднем уровне представлены укрупненные программные средства, на нижнем —'основные хранилища данных — базы. Стрелки под сообщениями и заявками указывают на те программные средства, которые работают с этими сообщениями и заявками (арабские тшфры у стрелок обозначают номер программного средства); стрелки под названиями программ связывают их c базами (занумерованы рим- скими цифрами) ‚ откуда извлекают данные или куда загружают данные эти программы. Все, что показано на рис. В.1, будет комментироваться в настоящем пункте. ` Последнее предварительное замечание. Здесь без объяснений будут ис- пользоваться два термина: ”данное” и ”тип данного” —- считается, что читателю они знакомы по литературе о банках данных (на всякий слу- чай напоминаем коротким примером: иванов .— это данное, или конкрет- ное данное, ФАМИЛИЯ — это тип данного). Вообще, в настоящей книге  79  употребляются другие тремины, семантически эквивалентные им: на- "7,  именование информационной переменнои вместо ”тип данного” и ”зн`а-  Заявки на печать Описания входных или высвечива- Макеты вьвходньпх документов ние данных документов  \2 \4,6 \5  описания ин- формационных объектов  Данные, поправки, заявки на уничто- жение данных  Заявки на орга- низацию внеш- них массивов  Заявки на преобра- зования информа- ционных объектов  DSIMEUODO SXGXJLUI  4 б п 5 в а т ‘ Ё ввод выв средств/х г. мАкв- дАн- првовудзо- р тов вы- ных ВАНИИ ин- A X0,fl.HblX ‚И Anny- MEHTOB M I,II,III 1,111,“; . lam ы V VI,VII V; “д” Шт 5 1 11 ш IV V VI 3A onn-- БАЗА БАЗА А Ёйний ин- ОПИСАНИЙ БАЗА БАЗА мнквтов СЛОВАРНАЯ ВНЕШНИЕ соорммти- входных щнных ЗАПРОСОВ выходных БАЗА р МАССИВЫ 3 днных докумвн- документов ДАННЫХ Ы овъвктов тов  Рис. В.1. Схема универсальной СУБД 
чение информационной переменной” вместо ”данного”. В первой главе этим последним терминам дается пояснение. _ 2.1.Прежде чем запрашивать данные, их надо ввести в БАЗУ ДАН- НЫХ, а прежде чем ввести, их надо описать и описать документы, c которых они вводятся. Язык описания информационных объектов предназначен для составле- ния ОПИСАНИЙ ИНФОРМАЦИОННЫХ ОБЪЕКТОВ, или МОДЕЛЕЙ ИН- ФОРМАЦИОННЫХ ОБЪЕКТОВ. В описаниях отражаются свойства типов данных и отношения между типами данных, которые присущи описывае- мому информационному объекту. Данные загружаются в базу данных в соответствии c ОПИСАНИЕМ ИНФОРМАЦИОННОГО ОБЪЕКТА, кото- рому они принадлежат; данные извлекаются из базы также по ОПИСАНИЮ ИНФОРМАЦИОННОГО ОБЪЕКТА. Программа ВВОД ОПИСАНИЙ ИНФОРМАЦИОННЫХ ОБЪЕКТОВ выполняет две функции: во-первых, она проверяет каждое вводимое ОПИСАНИЕ на предмет соблюдения в нем формальных правил языка опи- сания информационных объектов и в случае обнаружения оцшбки сооб- щает о ней; во-вторых, эта же программа загружает ОПИСАНИЯ в БАЗУ ОПИСАНИЙ ИНФОРМАЦИОННЫХ ОБЪЕКТОВ. 2.2. Когда данное находится в документе, то относительно него можно сказать, к какому типу оно принадлежит и с какими другими данными свя- зано. В память ЭВМ данные из документов попадают в виде последователь- ностей данных и разделителей между ними. ОПИСАНИЕ ВХОДНОГО ДОКУМЕНТА является средством, при помощи^которого для каждого данного из последовательности можно установить две привязки: к какому типу данного оно принадлежит и с какими другими данными состоит в заданном отношении. Напомним„ что типы данных и типы отношений фиксируются в ОПИСАНИИ ИНФОРМАЦИОННОГО ОБЪЕКТА. ОПИСАНИЕ ВХОДНОГО ДОКУМЕНТА составляетсяв терминах языка описания документов. В ОПИСАНИИ, помимо отражения двух привязок, еще могут содержаться условия правильности данных, которые используют- ся для проверки вводимых совокупностей данных. Программа ВВОД ОПИСАНИЙ ВХОДНЫХ ДОКУМЕНТОВ загружает ОПИСАНИЯ ВХОДНЫХ ДОКУМЕНТОВ в БАЗУ ОПИСАНИЙ ВХОД- НЫХ ДОКУМЕНТОВ, предварительно проверяя их- на предмет соответствия правилам языка описания документов. - 2.3. Теперь, когда выполнено ОПИСАНИЕ ‘ИНФОРМАЦИОННОГО ОБЪЕКТА и оно загружено в свою БАЗУ, а также составлено ОПИСАНИЕ ВХОДНОГО ’ДОКУМЕНТА, с которого снимаются данные, и оно тоже загружено в свою БАЗУ, можно вводить данные в БАЗУ ДАННЫХ. Данные вводятся с теми разделителями и в том порядке, как объявлено в ОПИСАНИИ ВХОДНОГО ДОКУМЕНТА: Массиву вводимых данных предшествует обращение к программе ВВОДА ДАННЫХ. В обращении называется имя ОПИСАНИЯ ИНФОРМАЦИОННОГО ОБЪЕКТА и имя ОПИСАНИЯ ВХОДНОГО ДОКУМЕНТА. Программа ВВОД ДАННЫХ в соответствии c этими двумя ОПИСАНИЯМИ размещает в БАЗЕ ДАННЫХ вводимые данные. Одновременно она проверяет, отвечает ли каждое вводимое данное указанным в ОПИСАНИИ ИНФОРМАЦИОННО- ГО ОБЪЕКТА. свойствам своего типа данных, а также отвечают ли сово- 9 
купности данных условиям правильности, заявленным в ОПИСАНИИ ВХОДНОГО ДОКУМЕНТА. Программа ВВОДА не только вводит новые данные, но еще и дополняет, исправляет и уничтожает уже находящиеся в БАЗЕ. Программа ВВОД ДАННЫХ может оперировать c данными, которые вводятся с внетцниэк носителей информашш, а также c данными, которые уже находятся в памяти ЭВМ. 2.4. Выделим три вида заявок на выборку данных, размещенных в БАЗЕ ДАННЫХ: 1) заявка на немедленную печать или высвечивание в стандартном формате, 2) заявка на немедленную печать или высвечивание в желаемом формате, 3) заявка на организацию массива данных желаемой структуры в па- мяти ЭВМ. Первый вид заявок можно считать экспр_есс—формой работы c БАЗОЙ — пусть данные выдаются в стандартном формате, лишь бы не тратить время на подготовку формата. Реализации заявок второго вида предшествует подготовка желаемого формата; о порядке этой подготовки пойдет речь в следующем разделе. Наконец, по исполненгш заявок третьего вида данные получаются организованными в массив желаемой структуры; на рис. В.1 эти массивы фигурируют в прямоугольнш<е ВНЕШНИЕ МАССИВЫ ДАН- НЫХ; они уже не являются принадлжностью БАЗЫ ДАННЫХ. Данные из ВНЕШНИХ МАССИВОВ могут быть снова загружены в БАЗУ ДАННЫХ программой ВВОД ДАННЫХ и могут быть отданы какому-то алгоритму, не имеющему отношения к СУБД. Реализация всех трех видов заявок имеет дело с извлечением данных из БАЗЫ ДАННЫХ посредством ЗАПРОСОВ. Язык запросов регламентирует форму ЗАПРОСА. Введенный в память ЭВМ ЗАПРОС обрабатывается СРЕДСТВАМИ РЕАЛИЗАЦИИ ЗАПРОСОВ и превращается в серию оператшй доступа к БАЗЕ ДАННЫХ. СРЕДСТВА РЕАЛИЗАЦИИ ЗАПРОСОВ ведут специальную БАЗУ ЗАПРОСОВ, пред- назначенную для запоминания длинных, часто повторяющихся ЗАПРОСОВ. ЗАПРОСЫ, хранящиеся в своей БАЗЕ, могут иметь застывшую форму, но могут также настраиваться заданием параметров в момент извлечения ихиз БАЗЫ ЗАПРОСОВ. 2.5. Рассмотрим вопрос о печати и о высвечивании данных, находящих- ся B БАЗЕ ДАННЫХ или являющихся принадлежностью ВНЕШНЕГО МАССИВА ДАННЫХ. Формат выходного сообщения несет в себе так называемый МАКЕТ ВЫХОДНОГО ДОКУМЕНТА. Чтобы при выводе документов одного фор- мата не нужно было каждый раз описывать один и тот же их МАКЕТ, предусмотрена возможность накопления МАКЕТОВ в отведенном для них хранилище — БАЗЕ МАКЕТОВ ВЫХОДНЫХ ДОКУМЕНТОВ. МАКЕТ ВЫХОДНОГО ДОКУМЕНТА описывается в термгшах языка описания документов и загружается в свою БАЗУ программой ВВОД МАКЕТОВ ВЫХОДНЫХ ДОКУМЕНТОВ. Теперь заявка на формирование выходного сообщения содержит в себе имя МАКЕТА ВЫХОДНОГО ДО- КУМЕНТА,указание терминального устройства — печатающего устройства или видеотерминапа и еще ЗАПРОС или имя ЗАПРОСА, если сам ЗАПРОС лежит в БАЗЕ ЗАПРОСОВ, а когда выводится ВНЕШНИЙ МАССИВ ДАН- 10  I  x_ 
НЫХ, то имя этого МАССИВА. Заявка адресуется программе ВЫВОД ДАННЫХ. _2.6. Главная функция СЛОВАРНОЙ СИСТЕМЫ — сжатие БАЗЫ ДАН- НЫХ. Каждое данное того типа, относительно которого сделано указание о сжатии, перед загрузкой в БАЗУ отдается СЛОВАРНОЙ СИСТЕМЕ; она вычисляет по нему цшфр и помещает шифр вместе с даъшым в СЛОВАРНУЮ БАЗУ; в саму БАЗУ ДАННЫХ помещается не дашюе, а его цшфр. Подчеркнем: шифры заменяют в БАЗЕ только те данные, mum которых отмечены спетшальным образом. Если цшфры короче заменяемых данных, то объем базы данных сокращается, что убыстряет поисковые операции в ней. В момент печати, высвечиваъшя или подготов- ки ВНЕШНЕГО МАССИВА шифры автоматически заменяются на сами данные. 2.7. Введение в БАЗУ новых данных прежнего типа и находящихся в прежних отношениях не есть преобразоваъше тшформатшонного объекта. Информационный объект преобразуется, если меняется состав типов дан- ных и меняются отношения между тушами данных.  Заявки на преобразование объекта выражаются на язьпсе преобразова-  ния штформационных объектов. Заявки реализуются СРЕДСТВАМИ ПРЕОБРАЗОВАНИЯ ИНФОРМАЦИОННЫХ ОБЪЕКТОВ. 2.8. Предыдущий обзор универсальной СУБД имел целью обосновать необходимость следующих четырех языков общегшя с данными: — язык описания информационных объектов, — язык преобразования информационных объектов, - язык запросов, — язык описагшя документов. Эта цель достигнута — показано, что каждый из четырех язьпсов нужен для своего программного средства СУБД. При том был оставлен без внима- ния целый ряд программных средств, которые являются необходимой пръшадлежностью универсальной СУБД, — они не нужны для обосноваъшя, поэтому бьши оставлены в стороне. Это такие программые средства: СРЕДСТВА ПРОСМОТРА И КОРРЕКТИРОВКИ ДАННЫХ, СРЕДСТВА ЗАЩИТЫ ДАННЫХ, СРЕДСТВА ВЕДЕНИЯ СИСТЕМНОГО ЖУРНАЛА и СРЕДСТВА ПРОВЕДЕНИЯ ДИАЛОГА. Ограничимся только их пере- числением и в заключение отметим, что, хотя в этом пункте рассматривал- ся состав произвольной уъшверсальной СУБД, членение СУБД на средства и их наименования здесь такие, какие прштяты в ИНЭС.  3. Об эволюции СУБД, Необходимость оперировать на ЭВМ большими объемами данных возникла в 60-е годы, когда определился переход к использованию ЭВМ в решении задач, ведущих свое происхождение от экономики. В предыдущие годы ЭВМ применялись в основном для проведения научных и инженерных расчетов, характери- зующихся больцшми количествами вычислительных операций над сравнительно ма- лыми объемами данных. 3.1. В развитии систем управления базами данных можно условно выделить три пе- риода: до 1969 года, с 1969 по 1975 год и после 1975 года. В течение первого периода накапливались требования к СУБД цшрокого назначения. Первые системы извесшы под названиями: ”Системы управления данными”, ”Системы поиска информации”, ”Системы управления информацией”, ”Системы управления файлами”, ‘Информа- Ционно-поисковые системы” и т.п. Число вариаций этих систем велико, а диапазон выполняемых ими функций очень широк. В эти голы были разработаны такие извест-  И 
!  ные системы, как ADAM, MARK I, MARK II, MARK III, MARK IV, IDS, GIS, IMS-1, TDMS, LUCID идругие (см. [1]). ’ 3.2. Во втором периоде (1969-—1975гг.) нрчинается осмысливание накопленного опыта и формирование общих принципов построения СУБД. Ряд организаций опубли- ковали аналитические отчеты [2‚ 3], в которых были изложены общие требования к универсальным СУБД. Особо следует отметить в связи с этим отчет Рабочей группы по базам данных Системного комитета КОДАСИЛ [4, 5]. В отчете разобраны наиболее интересные системы и предложены рамки языка определения данных (ЯОД) и языка манипулирования данными (ЯМД) . К этому же периоду относятся первые успехи в теории информационных объектов. Наиболее распространенными оказались три способа представления информационных объектов: иерархический, сетевой и реляционный [6‚ 7, 8]. Иерархическое представле- ние объектов принято, в частности, в системах типа 1М8 фирмы IBM. Комитетом КОДАСИЛ развито сетевое представление. В 1970 году был предложен теоретико- множественный подход к описанию информационных объектов, который послужил основой реляционного способа представления объектов. 3.3. К началу второго периода сложились основные требования к универсальным СУБД. Они должны обеспечивать (см.‚ например, [1] ): а) интегрированное хранение данных, б) доступ к данным для широкого круга пользователей, в) независимость данных, г) защиту данных от аппаратных сбоев, от ошибок в программах и защиту от не- санкционированного доступа. а) При интегрированном хранении все данные объединены в едином хранилище - в единой базе данных. Из этого вытекает, что общие для нескольких задач данные мо- гут быть представлены однократно в интегрированном хранилище, что избавляет, по крайней мере, от противоречивости данных, возможной в том случае, когда данные фигурирют в памяти ЭВМ в нескольких экземплярах. б) Использование такого громоздкого инструмента, как СУБД, оказывается оправ- данным лишь тогда, когда, во-первых, объемы манипулируемых данных необозримо велики и, во-вторых, к данным ожидается много разнотипных запросов. Любая универсальная СУБД должна обеспечивать доступ к базе данных многим пользова- телям, имеющим различные интересы; любая универсальная СУБД должна обслужи- вать данные произвольной природы. Язык манипулирования данными (ЯМД) являет- ся средством выражения запросов; язык определения данных (ЯОД) используется для описания схемы базы данных или описания информационного объекта. Язык манипулирования данными, язык определения данных и дРУгие языки СУБД могут быть встроены в какой-либо из процедурных языков высокого уровня; например, Кобол, или ПП/ 1, или язык Ассемблера и т.д. В этом случае операторы языков СУБД расширяют выразительные средства базового языка, и действия с дан- ными обеспечиваются как дополнительными операторами, так и исходными опера- торами базового языка. Другой вариант — автономные языки общения с СУБД. Отметим, что в ИНЭС язь1- ки общения обладают свойством автономности и в то же время к их операторам мож- но обращаться из языков ПЛ/ 1, Фортран и языка Ассемблера. в) Под независимостью данных понимаются следующие два свойства универсаль- ных СУБД. Если при изменении схемы базы данных прикладные программы, опери- рующие с данными из этой базы, не претерпевают изменения, то про такую СУБД го- ворят, что она обладает свойством логической независимости данных. Если при замене одного метода организации данных на другой не меняются ни схема базы дан- ных, ни прикладныепрограммы, то такая СУБД обладает свойством физической неза- висимости данных. В ИНЭС выдержано свойство логической независимости данных, но нет физической независимости в том виде, как она определена в предыдущей фра- зе. Дело в том, что в ИНЭС принят один метод физической организации данных — так называемый динамический метод, и варианты физической организации данных в рамках этого метода задаются указаниями, которые являются элементами схемы базы данных. г) Когда говорится о защите данных, обспечиваемой СУБД, то имеется в виду сле- дующее. Во-первых, возможность восстановления базы данных после того, как она повреждается из-за аппаратного сбоя или ошибки в программе пользователя. И, во- 12  ь  ° _ _.‘_‘.*4em-_'=**.“:&_..*..~‘«"' .*>._____.sfi£§.‘9'41i5>‘I$é=*~_‘  _ - »- и _„ __:.заечзыг.‹ёзч*тв_ щ- 
вторых, возможность установления паролей, защищающих фрагменты базы данных от несанкционированного доступа. 3.4. Третий период в развитии СУБД отсчитывают от 1975 года, когда вышел в свет отчет специальной исследовательской группы Национального бюро стандартов США [9] (см. также [10,' 111). B этом отчете проанализирован опыт эксплуатации СУБД и подведены итоги обсуждений и дискуссий, имевших место во втором периоде. В отчете было предложено выделять три уровня представления информационных объектов: концептуальный, внешний и внутренний. Концептуальное представление информационного объекта имеет дело с составом типов его данных, c их свойствами и отношениями между данными, присущими только информационному объекту. Внеш- нее представление есть адаптированное к планируемому кругу действий концептуаль- ное представление информационного объекта; на внешнем уровне допускается сосу- ществование таких известных способов представления информационных Объектов, как, например, иерархического и сетевого; иерархического, сетевого и реляционного и т.п. Внутренний уровеныучитывает принятую технологию хранения и пути доступа к данным, которыми располагает избранная СУБД. ‚ Переход к трехуровневой структуре СУБД направлен на достижение большей независимости данных, а также на обеспечение возможности совмещения в единой СУБД разных взглядов пользователей на одни и те же данные. Однако реализация этой идеи в полном объеме встречает определенные трудности, ибо требования, предъяв- ляемые трехуровневой структурой, являются внутренне противоречивыми. Так что при разработке конкретных систем обычно отдается предпочтение тем или иным свойствам идеальной СУБД. 3.5. В настоящее время во всем мире эксплуатируется большое число различных типов СУБД. Наиболее распространенными за рубежом являются следующие систе- мы: TOTAL, IMS,IDS, SYSTEM 2000, IDMS, DMS-II, ADABAS. Из других зарубежных СУБД следует отметить французскую систему SOCRATE, английскую DBMS, западно- германские GOLEM И SESAM. Судя по опросу пользователей, проведенному в США [12] , наиболее простыми и эффективными являются системы IDMS, TOTAL И DMS-II. наихудшей признана система 1М8. - 3.6. B CCCP к настоящему времени разработаны и применяются такие системы, как СИНБАД, ОКА, КАМА, СЕДАН, КОМИС, НАБОБ, БАНК, ЭЛЛИПС, ИНЭС, ПАЛЬМА, ПАРМА, ПОИСК-1, ПОИСК-4 и др. [13-21] . B системах СИНБАД и ОКА [13—15] используется иерархическая форма представ- ления данных; в СУБД НАБОБ [16], БАНК [17], ПАРМА [18] — сетевая; системы ИНЭС [19] и ЭЛЛИПС [20] имеют родственные черты, и присущий им способ представления данных будет обсуждаться в настоящей книге. Работы [22,- 23] посвя- щены сопоставлению основных характеристик отечественных СУБД. Указанные системы предназначены для универсального применения. Наряду с ними в арсенале отечественных СУБД имеются также и специализированные систе- мы (см., например, [24-26]). 3.7. В последние годы появился ряд отечественных и зарубежных монографий, суммирующих накопленный опыт в разработке и применении, СУБД [27-40] . Часть из них излагают вопросы СУБД в традиционном ключе: модели данных, языки общения, некоторые программные решения. В других рассматриваются новые для СУБД аспек- ты, например интеграция неоднородных баз данных [28] . Значительное продвижение наметилось на пути приложения СУБД к различным по своему характеру объек- там: экономике, АСУ, научно-технической информации, библиографии и др., что нашло свое отражение `в литературе [30, 41,—44]. Появился первый сборник задач по информационным системам и структурам данных [39] . Особого упоминания требуют достижения в области автоматизации проектирова- ния баз данных. Здесь переплетаются вопросы теории информационных объектов, языков их описания и программных средств. На эту тему написаны работы [45—64]. Когда говорят о будущем СУБД, то сходятся, как правило, на следУЮЩих направ- лениях их развития: — разработка технических средств, обеспечивающих аппаратную поддержку функ- mm СУБД — создание систем, управляющих разнородными базами данных и распределенными базами данных,  13 
-— создание теории информационных объектов, обосновывающих выбор вырази- тельных средств языков общения СУБД. ‘  НЗСТОШЦУЮ КНИГУ следует рассматривать как ВКЛЗД В nocnennee ИЗ ВЬЕДОЛСННЬЕХ,  направлений. В ней развивается формальный аппарат, базирующийся на понятиях информационной переменной и информационной функции [65—7 2] . Наиболее близкая и одновременно наиболее конкурирующая теория исходит из теоретико-множествен- ных представлений [8‚ 62-64]. подробному сопоставительному анализу этих двух, а также еще иерархического и сетевого подходов посвящена специальная, третья, глава книги. Помимо упомянутых работ, чаше других в литературе ссылаются на статьи [56- 61]. Подробный обзор существующих теоретических построений на тему СУБД, моделей данных, принципов формализации информационных объектов, языков отображения и смежных вопросов можно найти в фундаментальной монографии [28]. Задачей книги является изложение теоретических основ формальных выразитель- ных средств, необходшиых для работы с информационными объектами. Здесь надо сразу сказать, и эта мысль неоднократно будет повторяться, что полнота рассматри: ваемых языков не гарантируется и, вообще, проблема полноты не обсуждается.  ' ьщы  МЁЧКЧ.’ ми Q“! ".‘.$... 
‚од-п  ‚дым 1 чвггы ИНФОРМАЦИОННЫХ овъвктов  Тема всей книги, как уже отмечалось во Введентш, — теоретические ос- нования языков общения сбазами данных. Первая глава имеет дело с по- нятиями, фундаментальными для этих языков. Любой формальный язьпс слагается из своих выразительных средств или терминов и правил пользования ими. Формальные языки, к числу ко- торых принадлежат и языки СУБД, ориентируются на свои определенные объекты внешнего мира и предназначаются для построения моделей этих объектов. Построегше моделей —— всегда неформализуемая работа. Можно говорить о формальных правилах пользоваъшя термштами принятого языка, но вряд ли можно сформулировать законченные правила построения моделей в термгшах этого языка. Примыкающий вопрос — о полноте язы- ка. Нет гарантий, что выразительных средств пръшятого язьпса достаточно для описания любого информационного объекта. Здесь уместна аналогия c математическим языком моделирования физических, экономических и иных явлений. Он имеет в своем составе такие термины, как переменная, фуьпсция, производная, гштеграл и т.п. Известны правила пользования ими, но это не эквивалентно тому, что сформулированы правила построения математических моделей всех физических или всех экономических явле- ншй. Рассмотрение новых явлений не исключает добавления НОВЫХ Вырази- тельных средств в математический язык. ' - - В данной главе „из наблюдений над конкретными информационными объектами извлекаются абстрактные черты информациоъшого объекта об- щего вида. Для описания абстрактных черт предлагаются выразительные средства, близкие тем, c которьпии постоянно оперирует математшса, - переменная, функшая, вектор и ряд других. Здесь эти термины именуются: информационная перемеъшая, информационная функция, гшформационный вектор и т.п.; указываются их отличия от аналогичных термъшов обь1чно- го математического языка, возникшего как средство моделирования ме- ханических и физических явлений. Вообще, принятый в настоящей книге путь построеъшя теортш информационных объектов — это в основном адаптация некоторых математических понятий к информационным объектам.  ‘I5 
88888 2.8 щёки ы ошощочцж „во Qm SE do „ветоши то: «:23 NVQ ы ‚оозвххоь эзооачю: ‚очах щооцо „дым 4:3: RNI2 ~32 mm Qm.Q~ ES. 8 32.5 8.9: вы V ~_.Q ы „ка? Е»: ‚ооьо um: .:Bom2 223. шита ы очцмхвхоч ооцоозо QN Ёж ‚ооззхкоь чщоозць 336 .36: RN12 8:8 .8: 2.8 он Q ы очцмщзаоч „83. от мы Q ы ES. оозозо ES ыщ 3.9 ы $2 39828 ы 8.8 ‚оомоцз: .2 ниточке: и ычпм 8оэ8о8= .8: 23 „юты ы 38802 шов ы ы мим ы ‚звав. 8:83 о „82 и ы что ы $2 отошью: 3:8: ооЗоВо щзёззо .8: 23 E Q ы =оо8мъ= отв mm Q то ы „за 2 mums: „8: ‚Ъьоэо: 8:9, „во Ём очи ы uamoxuma fie .:m:..=e..3 mom mmzomab ною вы Б: „ЕЁ. :3: бонды um: ..§om2 моё ы Е: о98о= _ Ц Ц а Н Ц Ц J h J Т ш ш V т 3 о о „ш И о ш Щ ш н н э П э э П э Э П WM... И W И В Ц В Ц З З K Щ П О П О ш ш . <98 . «бит ЕЁ 3H.<mh<I отит? <93 .<mo: ЩЕЩ om._.omE.o „платит .. wsmfiioxo ЁЁ .m2:<m .<mom 528 .ьодпшвзщ<„_щ -<..mo по: тщщззёе _._._.om<._ шиит О wxmmnmmo Ёщщцыбь <._.<m.  N.N uxaubuh  Евы mov===u.3._.oo .._a8:.< 
?"""' "  -.5 -~.__ogvu—¢-=..~.,«.»......-....-. ....._._fl_‘ 1  § 1. Анкета  Справка из домоуправления, таблица валовых выпусков предприятий отрасли, технический паспорт автомобиля, атлас архитектурных памят- ников страны, библиографический каталог, диаграмма роста национального дохода по годам пятилетия —- все это примеры информационных объектов. Кадровая анкета взята как информационный объект, из которого извле- каются абстрактные черты штформационного объекта общего вида. Она удобна тем, что не требует подробных комментариев; одновременно она достаточно богата, чтобы из нее извлечь большую часть абстрактных ин- формационных черт. В табл. 1.1 собраны сведения о пяти сотрудниках некоторого предприятия (его название — ЗТМ) . . ”Анкета” имеет четырнадцать столбцов — от нулевого до тринадцатого. Каждый столбец имеет номер и наименование: О. ФАМИЛИЯ ИМЯ ОТЧЕСТВО, 1. ПОП, 2. ГОД, 3. ЧИСЛО, . . . , 12. НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ, 13. ПРАВИТЕЛЬСТ- ВЕННЬ1Е НАГРАДЫ. Над некоторыми столбцами есть объединяющие заголовки: ДАТА РОЖДЕНИЯ над 2, 3, 4 столбцами, ДАТА ОКОНЧАНИЯ ВУЗА над 7, 8, 9 столбцами, РАБОТА над 11 и 12 столбцами, а объединяющий заголовок СВЕДЕНИЯ О ВУЗЕ подчиняет себе столбцы 6 и 10, а также 7, 8, 9, которые уже объединены заголовком ДАТА ОКОНЧАНИЯ ВУЗА. Записям о каждом сотруднике отводится в табл. 1.1 одна строка; строка разби- вается на окна вертикальными линиями, отделяющими один столбец от другого. Разделы 6-10, относящиеся к высшему образованию, заполняются только при том условии, что сотрудникжпиеет высшее образование, т.е. когда в столбце 5 записано слово высшее. В окнах, принадлежащих 11 и 12 разделам (под объединяющим заголовком РАБОТА), может быть не одна запись, а несколько — по числу мест работы сотруд- ника. Эти записи отделяются одна от другой горизонтальными линиями, распростра- няющимися только на 1'1 И 12 столбцы. В 11 столбец вносится год поступления на предприятие, в 12 столбце на том же уровне записывается нашиеноваъше предприятия. Содержимое 11 и 12 столбцов, относящееся к одному сотруднику, образует подтаб- лицу в табл. 1.1. ° В столбце 13 может быть много записей —- no числу орденов и медалей; эти записи разделяются’ запятыми. Если же сотрудник не награждался, то в соответствующем окне столбца 13 записано слово нет.  § 2. Информационные перемешше  Математические переменные характеризуются своими наименованиями, своими обозначениями и своими множествами значеъшй. 2.1. Информационные переменные — наименования, значения и обозна- чения. Все, что есть в табл. 1.1.‚ — это либо наименования информационных переменных, либо значения информационных переменных. ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ПОЛ, ДАТА РОЖДЕНИЯ, СВЕДЕНИЯ О ВУЗЕ и вообще все, что вынесено в наименования столбцов и в объеди- няющие заголовки, есть наименования информационных переменных (или просто: наименования переменных). иванов иван иванович -—значение переменной ФАМИЛИЯ ИМЯ ОТЧЕСТ- ВО; муж и жен — значения переменной ПОЛ; вообще все, что написано в клетках таблицы’ под наименованиями столбцов, есть значения информа- гшонных переменных. Наименования и ' = ъичёйё‘ пере- менных различаются в этой книге следутръщщдцрадоьъ церньте изобража- ются прямыми прописными буквами, вфрэне курсивным? строчными.  2. Ю.Н. Иванов 17 
В отличие от привычных математических переменных значениями инфор- машюнных переменных могут быть не только числа, но и слова естествен- ного языка, тексты и вообще любые наборы символов. Все значения, принимаемые информационной переменной, образуют совокупность значений этой штформационной переменной. Например, со- вокупность значений ФАМИШ/[И ИМЕНИ ОТЧЕСТВА такова: { иванов иван иванович; пантелеев дмшрий ильич; петрова надежда петровна; семенова анна дмшриевна; Сидоров пет иванович}, а совокупность значеъшй переменной ПОЛ такова; { муж; муж; жен; жен; муж}. Со- вокупности значений получаются собиранием подряд всех значений, ко- торые выпадают у переменной. Скажем, первая совокупность собирается подряд из окон нулевого столбца табл. 1.1, вторая — из окон первого столбца. Значения могут повторяться в своих совокупностях, что подтверж- дает второй рассмотренный пример. Поэтому совокупности значений могут не быть множествамш. Множество значений переменной — это совокупность видов значений переменной. Множество значений переменной ПОЛ таково: {муж; жен}, а множество значений переменной ФАМИЛИЯ ИМЯ ОТЧЕСТ- ВО из табл. 1.1 совпадает c совокупностью ее значений. Состав множества значений штформатшонной переменной может быть наперед известен (например, переменная ПОЛ имеет только два вида зна- чений) ‚ а может быть неизвестен и пополняться или сокращаться со време- нем (например, множество значений переменной ФАМИЛИЯ ИМЯ ОТ- ЧЕСТВО из ”анкеты” изменяется в связи с уходом или приходом новых сотрудников). Множества значений информационных переменных и совокупности их значений содержат по конечному числу элементов. Поэтому они не явля- ются областями, что отличает информационные переменные от обычных математических переменных. - Информационным переменным, как и обычным математическим, умест- но присваивать обозначения для краткости письма. В этой книге перемен- ные обозначаются буквами греческого алфавита с нижними индексами. Отметим, что в зарезервированных словах обсуждаемого формального язы- ка нет греческих букв, что исключает возможную путаницу. Табл. 2.1 со- держит наименования переменных ”анкеты” и их обозначения. Для видов значений переменных принято такое обозначение: берется обозначеъше соответствующей переменной и в позиции верхнего индекса записывается номер вида значения, взятый в круглые скобки. Например:  ._ (1). в _ (2). иванов иван иванович - £1 , пантелеев дмитрии ильич - 51 _ , . . .  жен =т 179); муж= nf"; ...  Применение обозначений для видов значений переменных также преследует цель сокращения записей.  З а м е ч а н и е. В литературе по банкам данных вместо терминов ”информацион- ная переменная”, ”наименование информационной переменной”, ”значение информа- ционной переменной” употребляют ”данное”, “run данного”, ”конкретное данное” или ”атрибут”, "наименование атрибута”, ”значение атрибута”. Еще имеет распростра- нение такая терминология: “поле”, ”сегмент”, ”экземппяр сегмента”, ”запись”‚ “набор” и т.д. Наш выбор обязан стремлению приблизить язык описания информа- ционных объектов к обтцеупотребигепьному математическому языку.  18  „е  „...-щи. 
Таблица 2. 1 Обозначения переменных анкеты  НАИМЕНОВАНИЕ ПЕРЕМЕННОЙ ОБОЗНАЧЕНИЕ ФАМИЛИЯ ИМЯ ОТЧЕСТВО г, ПОЛ п, ДАТА РОЖДЕНИЯ.ГОД п, ДАТА РОЖДЕНИЯЛИСЛО _ ° п, ДАТА РОЖДЕНИЯ.МЕСЯЦ пд ОБРАЗОВАНИЕ п 5 НАИМЕНОВАНИЕ ВУЗА т ДАТА ОКОНЧАНИЯ ВУЗА.ГОД п, ДАТА ОКОНЧАНИЯ ВУЗА.ЧИСЛО „ 713 ДАТА ОКОНЧАНИЯ ВУЗА.МЕСЯЦ 179 АДРЕС ВУЗА nu, ГОД ПОСТУПЛЕНИЯ . Е, НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ п д, ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ п д 3 ДАТА РОЖДЕНИЯ а, ДАТА ОКОНЧАНИЯ ВУЗА а, СВЕДЕНИЯ О ВУЗЕ а, РАБОТЫ Ф д  2.2. Элементарные скалярные переменные. Элементарная скалярная переменная есть минимальное выразительное средство языка описания ин- формационных объектов. На нем базируются другие, более сложные выра- зительные средства. _ V Переменные анкеты О, ФАМИЛИЯ ИМЯ ОТЧЕСТВО, 1. ПОЛ, 2. ГОД‚..., 11. ГОД ПОСТУПЛЕНИЯ, 12. НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ - од- ним словом, все те, значения которых записаны в окнах столбцов от нуле- вого до двенадцатого, принадлежат к типу элементарных скалярных ин- формационных переменных (или просто элементарных скаляров) . Каждое значение элементарного скаляра считается неразложимым — та- ково отлшштельное свойство переменных данного типа. Что касается зна- чений ПОЛА, ГОДА, ЧИСЛА и т.д.‚ исключая АДРЕС ВУЗА, то их не- разложимость не имеет видимых альтернатив. Относительно штформацион- ной переменной АДЕРС ВУЗА задается, что она есть элементарный скаляр и, следовательно, ее значения приъшмаются как неразложимые. Этим закры- вается доступ к составным частям ее значеъшй: нельзя отдельно узнать город, индекс почтового отделения, улицу и номер дома, а можно узнать только весь адрес целшсом. При необходимости оперировать c каждой составной частью по отдельности следует ввести дополнительные перемен- ные и АДРЕС ВУЗА отнести к переменным дРУгого‚ более сложного типа. 2.3. Множественные переменные. В верхнем окне столбца 13. ПРАВИ- ТЕЛЬСТВЕННЫЕ НАГРАДЫ записаны две награды: медаль ”за трудовое отличие”\и орден ”знак почета”. Совокупность двух наград является одним значеъшем переменной ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ в первой строч- ке. Это значение разложимо на два элемента, имеющих одинаковое инфор- мационное содержание: 1)медаль ”за трудовое отличие” и 2) орден ”знак почета”. Назовем значение, которое допускает разложение на гшформа-  2* 19 
ционно подобные элементы, множественным значением. Переменную, принимающую хотя бы одно множественное значение, будем именовать множественной (подчеркнем: все значения элементарной скалярной пере- менной должны быть неразложимыми) . `  Множественное значение может содержать различное число составляющих его зле- ментов. Например, значение в верхнем окне столбца ПРАВИТЕЛЬСТВЕННЫЕ НАГРА- ДЫ состоит из двух элементов, значение в нижнем окне — из трех, а остальные три значения имеют по одному элементу. Порядок, в котором записываются элементы множественного значения, не регла- ментируется. Например, значение: медаль ”за трудовое отличие”, орден ”знак почета” и значение: орден ”знак почета”, медаль ”за трудовое отличие” считаются тождест- венными.  Введем понятие присоедштенной переменной. Пусть наряду с исходной множественной переменной ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ сущест- вует присоедгшенная к ней переменная, называемая, например, ПРАВИ- ТЕЛЬСТВЕННАЯ НАГ РАДА. Последняя замечательна тем, что каждый элемент значения исходной переменной является отдельным ее значением. Будем считать, что значения множественной переменной собираются из зна- чений присоединенной переменной, и это обстоятельство будем трактовать как существование отношения множественности между исходной множест- венной переменной и присоединенной переменной. Возвращаясь к рассмат- риваемому примеру, констатируем, что множественная переменная ПРАВИ- ТЕЛЬСТВЕННЫЕ НАГРАДЫ и присоединенная переменная ПРАВИТЕЛЬ- СТВЕННАЯ НАГРАДА находятся B отношении множественности.  Каждый элемент значения ПРАВИТЕЛЬСТВЕННЫХ НАГРАД и, следовательно, каждое значение ПРАВИТЕЛЬСТВЕННОЙ НАГРАДЫ неразложимы. Действительно.  элементы: медаль ”за трудовое отличие”, орден ”знак почета”, нет, медаль ”за отвагу’: орден красной звезды, орден красного знамени, не разложимы ни на какие части. Поэтому присоединенная переменная ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА при- надлежит к числу элементарных скалярных переменных. Элементы значений множественной переменной могут быть разложимы и, соот- ветственно, присоединенная переменная может не быть скалярной элементарной. 2.4. Векторные переменные. Три объединяющих заголовка в табл. 1.1. ДАТА РОЖДЕНИЯ, ДАТА ОКОНЧАНИЯ ВУЗА И СВЕДЕНИЯ О ВУЗЕ суть наименования векторных переменных (или, короче, векторов) . Вектор, как и всякая информационная переменная, характеризуется своим наименованием И своими значениями. Вектор c наименованием ДАТА РОЖДЕНИЯ имеет своими значениями следующие тройки значе- ний из табл. 1:1:  {(1927‚27‚ дек); (1959‚28‚февр); (19З4‚15, май); (1950,21‚апр); (1914, 17, июль)} .  Первую позицию в каждой тройке занимает значение ГОДА, вторую — значение ЧИСЛА месяца и третью — значеъше МЕСЯЦА. Каждое значение вектора разложимо на составляющие, и этим векторы похожи на множественные переменные. Но, во-первых, составляющие векторного значения штформационно разнородны, во-вторых, число состав- ляющих значений в каждом векторном значении одинаково и, в-третьих, каждая составляющая занимает в векторном значеъши строго предписан- ную позицию. 20 
Состав векторного значения есть отражение состава вектора, который выражается в терминах наименований составляющих компонент. Гово- рится: ”вектор с таким-то наименованием имеет в качестве компонент пе- ременные с такими-то наименованиями”. Например, вектор ДАТА РОЖДЕ- НИЯ имеет компонентами ГОД, ЧИСЛО, МЕСЯЦ. Будем говорить, что между векторной переменной и переменными-компонентами существует отношение туша вектор — компоненты. Каждая составляющая векторного значения ДАТЫ РОЖДЕНИЯ нераз- ложима, и, следовательно, все компоненты вектора ДАТА РОЖДЕНИЯ суть элементарные скалярные перемет-шые. В составе вектора могут быть не только элементарные скалярные переменные. Например, вектор СВЕДЕНИЯ О ВУЗЕ объединяет две элементарные скалярные переменные НАИМЕНОВАНИЕ ВУЗА и АДРЕС ВУЗА, а также векторную переменную ДАТА ОКОНЧАНИЯ ВУЗА.  § 3. Информационные функции  В математике переменная величшта у называется функтшей переменной величины х (аргумента или независимой переменной), если при заданном значентш х величина у принимает одно определенное значение (однозначная функция) или несколько определенных значений (многозначная функция). Совокупность значений х, для которых функция определена, образует об- ласть определения функции; совокупность значений, которые принимает зависимая переменная у, составляет множество значеъшй функции. Функциональная зависимость между аргументом х и зависимой переменной у мо- жет представляться как явная: у = f (x) , как неявная: f (x, y) = О или как параметри- ческая: у = f (t), x = пр“); в последнем случае соответствующие одно дРУгому значе- ния Х иу выражаются через третью величину I‘, называемую параметром. Между переменными МОГУТ СУЩеСТВОВЗТЬ так называемые сложные aanncmuocm. ПУСТЬ, например, переменная у зависит от переменной х: у = f (x), a переменная х, в свою очередь, зависит от переменной 1: x = пр (г) ‚ тогда про переменные у н t говорят, что они состоят в сложной функциональной зависшиости: у = f (x), x = ф (г), а функ- цию у = x(t), выражающую эту зависшиостъ, называют сложной функцией: у = = f [ФОН = x(t) или суперпозицией функций. Информационные функции, выражаюцше связи между информационны- ми переменными,‘ бывают определенными при дискретных (изолирован- ных) значениях аргумента и сами принимают дискретные значения. Значе- ния информационного аргумента не могут быть расположены непрерывно, что обычно имеет место для аргументов функций, ведущих свое происхож- дение от физических явлений, — в этом специфика информационных функций. Привычные математические функции могут представляться аналити- чески, графически или таблично. Что касается информационных зависи- мостей, то для них действительна только табличная форма представления. Отсутствие двух других обедняет информационный анализ по сравнению с математическим, и это есть следствие дискретной природы информацион- ных зависимостей. Та же дискретная природа делает невозможным распро- странение на информатшонные зависимости основных результатов матема- тического анализа, которые базируются на постулате сплоцшости. И тем не менее продуктивно даже ограниченное привлечение привычного матема- тического языка к исследованию информационных объектов.  21 
3.1. Одноюпочевьте однозначные уникальные зависимости в ”анкете”. Термин ”однозначная зависимость” не требует расшифровки, термин ”уни- кальная зависимость” будет объяснен в заключительном пункте этого пара- графа, а ”одноключевая зависимость” — это зависимость от одного аргу- мента. Такой термин удобен для изложения, ибо он короче, к тому же имеет распространение в литературе по СУБД. Каждому человеку присущи: один его пол, одна дата рождения, одна степень образоваъшя. Если человек не имеет высшего образования, то он не характеризуется сведениями о высшем образовантш; если человек окон- чил ВУЗ, то ему присуцш: одно название оконченного ВУЗа, одна дата окон- чания ВУЗа и один адрес оконченного ВУЗа (оставим в стороне тех людей, которые окончили два ВУЗа или более). Каждый человек унш<ален по совокупности своих характеристик, но по любой одной характеристике он может быть не уникальным. В частности, два человека могут иметь совпадающие фамишш, имена и отчества. Оста- вим пока в стороне такую возможность и будем считать, что каждый на- бор — фамилия, имя‚отчество — выделяет только одного человека. Тогда можно так перефразировать предыдущий абзац: каждой фамишш, имени, отчеству соответствует один пол, одна дата рождетшя, одна степень образо- вания, одно название ВУЗа (или ничего), одна дата окончания ВУЗа (или шитчего) , один адрес ВУЗа (или ъшчего). В п. 2.2. предыдущего параграфа ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ПОЛ, ДАТА РОЖДЕНИЯГОД‘), ДАТА РОЖЦЕНИЯЧИСЛО, ДАТА РОЖДЕ- НИЯ. МЕСЯЦ, ОБРАЗОВАНИЕ, НАИМЕНОВАНИЕ ВУЗА, ДАТА ОКОН- ЧАНИЯ ВУЗА.ГОД, ДАТА ОКОНЧАНИЯ ВУЗА.ЧИСЛО, ДАТА ОКОНЧА- НИЯ ВУЗА.МЕСЯЦ были определены как элементарные скалярные инфор-  мационные переменные. Окончательная редакция второго абзаца этого’  пункта такова: при заданном значешш переменной ФАМИШ/[Я ИМЯ ОТЧЕСТВО переменные ПОЛ, ДАТА РОЖДЕНИЯ. ГОД, ДАТА РОЖДЕ- НИЯ.ЧИСЛО, ДАТА РОЖДЕНИЯ.МЕСЯЦ, ОБРАЗОВАНИЕ принимают по одному определенному значению, а перемеьшые НАИМЕНОВАНИЕ ВУЗА, ДАТА ОКОНЧАНИЯ ВУЗА.ГОД, ДАТА ОКОНЧАНИЯ ВУЗА.ЧИС- ЛО, ДАТА ОКОНЧАНИЯ ВУЗА.МЕСЯЦ принимают по одному определен- ному значению или не принимают значений. Последняя фраза повторяет определение функшш, которым открывается „настоящая глава, только в ней абстрактные обозначения х, у заменены конкретными наименования- ми. Следовательно, между переменной ФАМИЛИЯ ИМЯ ОТЧЕСТВО как аргументом и переменной ПОЛ как зависимой переменной существует однозначная функциональная зависимость, определенная при всех значе- ниях аргумента ФАМИЛИЯ ИМЯ ОТЧЕСТВО. Такие же функциональные зависимости имеют место между аргументом ФАМИЛИЯ ИМЯ ОТЧЕСТ- ВО и зависимыми переменными ДАТА РОЖДЕНИЯ.Г ОД, ДАТА РОЖДЕ- НИЯ.ЧИСЛО, ДАТА РОЖДЕНИЯ.МЕСЯЦ‚ ОБРАЗОВАНИЕ. Между аргу-  ‘) B ”анкете” два столбца именуются ГОД, два столбца —_ЧИСЛО и два столбца — МЕСЯЦ; каждый из этих столбцов имеет над собой свой объединяющий заго- ловок: либо ДАТА РОЖДЕНИЯ, либо ДАТА ОКОНЧАНИЯ ВУЗА, благодаря чему они и различаются в табл. 1.1. Чтобы различать их вне табл. 1.1, будем писать перед ГОДОМ, ЧИСЛОМ и МЕСЯЦЕМ наименование соответствующего вектора и точку.  22  „мышцы  L.._'m 
ментом ФАМИЛИЯ ИМЯ ОТЧЕСТВО и зависимыми переменньпии НАИМЕНОВАНИЕ ВУЗА, ДАТА ОКОНЧАНИЯ ВУЗА.ГОД, ДАТА ОКОНЧАНИЯ ВУЗА.ЧИСЛО, ДАТА ОКОНЧАНИЯ ВУЗАМЕСЯЦ, АДРЕС ВУЗА имеет место однозначная функциональная зависимость, определен- ная не при всех значениях аргумента. Зафиксируем факт существования функциональных зависимостей в виде формул; обозначения переменных возьмем из табл. 2.1; для представ- ления зависимостей изберем явную форму, ибо об одной из переменных уже сказано, что она аргумент; рядом с формулами будем записывать сведения о множестве определения фуъжшш. Зависимости между первыми пятью переменными: ПОЛ (т) ‚ ДАТА РОЖДЕНИЯ.ГОД (щ) , ДАТА РОЖ- двъшячисло (пз)‚ ДАТА РОЖДЕНИЯ.МЕСЯЦ (ты), ОБРАЗОВАНИЕ (175) и аргументом ФАМИЛИЯ ИМЯ ОТЧЕСТВО (£1) представля- ются так:  т =F($1); п: =Р(Е1); 173 =Р(2Е1); n4 =F($1); 175 =F(i€1) (3-1) при E1e{El(l), Р’, Р’, f“’,sf"}. где  1 Е} ) = иванов иван иванович,  (2) _ и 1 — пинта/леев дмитдш ильич, (3) _. 1 — петрова надежда петровна, (4) _ 1 - семенова анна дмигриевна, 5 Е ) = сидоров nezp иванович. (3.2)  Зависимости между вторыми пятью переменными: НАИМЕНОВАНИЕ ВУЗА (175): ДАТА ОКОНЧАНИЯ ВУЗА.ГОД (n-,)-, ДАТА ОКОНЧАНИЯ  ВУЗАЧИСПО (173), ДАТА ОКОНЧАНИЯ ВУ3А.МЕСЯЦ (179), АДРЕС‘ ВУЗА (то) и тем же аргументом ФАМИЛИЯ ИМЯ ОТЧЕСТВО (Ед), а .  также множество определения фушсшй записываются в следующем виде: 176 =F(51)§ 177 =F($1)_; 178 =F(E1)3 179 =F($1)§ 1710 = Р(Ё1) (3-3)  lIpI«I£1 E { ЕР), (14), ESQ}; использованные здесь обозначения значений взяты из (3.2) . Подчеркнем, что зависимости (3.1), (3.3) пргшадлежат к тушу однознач- ных уъшкальных и буквой F B формулах отмечается данный факт. Итак, если формула открывается наименованием переменной (или ее обозначе- нием) и за ним следуют знак равенства, буква F, открывающая скобка, наименование (или обозначение) другой переменной и, наконец, закры- вающая скобка, то эта запись означает, что первая перемещая есть зави- симая переменная, вторая переменная — аргумент и‚между ними су1цест- вует однозначная уникальная зависимость. Первые пять зависимостей (см. (3.1)) определены при всех значениях ФАМИЛИИ ИМЕНИ ОТЧЕСТВА, которые уже есть в табл. 1.1 и которы- ми табл. 1.1 будет пополняться. Это значит, что любому имеющемуся или будущему значению ФАМИЛИИ ИМЕНИ ОТЧЕСТВА отвечает какое-то определеъшое значение ПОЛА, значение ДАТЫ РОЖДЕНИЯ. ГОДА и т.д. Альтернативой определеъшости функций здесь может быть только незнание.  23 
Скажем, в анкету внесен новый участник, про которого пока не известно, какое образование- он имеет. В столбце ОБРАЗОВАНИЕ против этого участника временно записывается значение неизвестно, которое с тече- нием времени заменится на какое-то известное определенное значение. Вторые пять зависимостей (см. (3.3)) определены только при трех зна- чениях ФАМИЛИИ ИМЕНИ ОТЧЕСТВА из табл. 1.1. Отметим, что мно- жество определения в (3.3) дано непосредственно через значения аргумен- тов, а может быть записано более компактно, используя следующее обстоятельство: определенность зависимостей, (3.3) имеет место в том слу- чае, когда переменная ОБРАЗОВАНИЕ (175) принимает значение высшее. Так что вместе с (3.3) действительна такая запись:  776 =F(§1)a 777 =F(§1), 778 =F(§1), 779 =F($1)a 7710 =F($1) (3-4) при £1 ={£1/£5 =высшее}. Факт определенности вторых пяти зависимостей означает, что любому значению аргумента из множества определения соответствует какое-либо известное определенное значение либо значение неизвестно. В табл. 1.1 значениями второй пятерки зависимых переменных при значениях аргу- мента, не принадлежащих множеству определения, являются пробелы. Наряду с пробелом неопределенным значением может быть, например, текст не определено. Итак, зависимая переменная при каком-то значении аргумента может принять либо известное определенное значение, если значение аргумента попало в множество определения и знания функции, либо значение неиз- весгно, если значение аргумента принадлежит множеству определения, но незнания функтши, либо, наконец, значение не определено (или пробел), когда значение аргумента не относится к множеству определения функции. 3.2. Двухкшочевая однозначная уникальная зависимость в ”анкете”. Наименование предприятия однозначно определяется годом поступления на него заданного человека (оставим пока в стороне случай, когда человек в течение одного года сменил несколько мест работы). В терминах пере- менных последняя фраза звучит так: при заданном значении переменной ФАМИЛИЯ ИМЯ ОТЧЕСТВО и заданном значении переменной- ГОД ПОСТУПЛЕНИЯ переменная НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ при- нимает одно определенное значение (по-прежнему считается, что каждое значение ФАМИЛИИ ИМЕНИ ОТЧЕСТВА выделяет только одного человека). Следовательно, переменная НАИМЕНОВАНИЕ ПРЕДПРИЯ- ТИЯ есть двухключевая однозначная функция аргументов ФАМИЛИЯ ИМЯ ОТЧЕСТВО и ГОД ПОСТУПЛЕНИЯ.  В табл. 3.1 представлена обсуждаемая функциональная зависимость в иной — так называемой матричной -— форме, нежели в табл. 1.1. Строка от строки отличает- ся значением ФАМИЛИИ ИМЕНИ ОТЧЕСТВА (£1); столбец от столбца —_значением ГОДА ПОСТУПЛЕНИЯ (5,). Ha пересечении строки и столбца записано значение НАИМЕНОВАНИЯ ПРЕДПРИЯТИЯ (nu), соответствующее значению ФАМИЛИИ ИМЕНИ ОТЧЕСТВА, записанному в этой строке, и значению ГОДА ПОСТУПЛЕ- НИЯ, записанному в этом столбце. Пустые клетки таблицы соответствуют сочета- ниям значений аргументов, при которых функция не определена. В табл. 3.1 имеются наименования и значения переменных, а также символы, их заменяющие (ср. табл. 2.1). В крайнем левом столбце расположены по алфавиту значения аргумента ФАМИЛИЯ ИМЯ ОТЧЕСТВО, рядом с ними в скобках — их обозначения из формулы (3.2). Значения второго аргумента ГОД ПОСТУПЛЕНИЯ  24 
Таблица З. 1  Зависимость НАИМЕНОВАНИЯ ПРЕДПРИЯТИЯ от ФАМИЛИИ ИМЕНИ ОТЧЕСТ- ВА и ГОДА ПОСТУПЛЕНИЯ  ГОД ПОСТУПЛЕНИЯ (£2) 1935 1941 1949 1958 1976 ФАМИЛИЯ (1) (г) (3) (4) (5) (Ё: ) (Ё: ) (Ё: ) (Ё: ) (Ё: ) (1) иванов иван иванович (г, ) мвз am (1) (4) (771 2 ) (711 : ) паителеев дмитрий ильич ($52)) зтм ` 4 071(2)) петрова надежда nezposua ф”) 33; (п: (4) семенова аина дмитриевна (г, ) за!) (п, : ) сидоров петр иваиович ($55)) лзмм армия am - (2) (3) (4) (т: ) (т: ) (т: )  выбраны из 11 столбца табл. 1.1 и помещены в порядке возрастания в самую верхнюю ‚  строку табл. 3.1; им также даны обозначения.  Используя введенные обозначения, запишем двухключевую однозначную уникальную зависимость в виде следующей формулы:  1712 =Р(Ё1›Е2) при 51,§2e{51(l), Ё”; 1(1), 2(3); 52) 2(5); Sf”, 54); $4). Ё”; 25%";  (5) (2), (5) (3) 1 ‚ 2 э 1 э £2 } ° Отметим, что в формуле зависимости (3.5)‚ подобно (3.1), (3.3), (3.4), гшформаштю об однозначном уникальном характере зависимости несет F. 3.3. Одноключевая многозначная уникальная зависимость в ”анкете”. Каждому человеку присущ свой список правительственных наград. Если каждый конкретный список считать значением информаштонной перемен- ной ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ, а каждого человека связать c неповторимым значеъшем переменной ФАМИЛИЯ ИМЯ ОТЧЕСТВО, то отмеченное соответствие может трактоваться как функциональная зависи- мость переменной ПРАВИТЕЛЬСТВЕННЬ1Е НАГРАДЫ от аргумента ФАМИЛИЯ ИМЯ ОТЧЕСТВО:  771 3 "‘ GU51) (3-6)  при 51e{51(l)s f”,sf”,z§“’,sf"}.  B (3.6) использованы обозначения из табл. 2.1 и из формулы (3.2). Некоторым значениям ФАМИЛИИ ИМЕНИ ОТЧЕСТВА соответствует не одна правительственная награда, а несколько правительственных наград. Поэтому ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ — множественная перемен-  25 
ная, о чем уже говорилось в п. 2.3 предыдущего параграфа, а изучаемая зависимость — многозначная. Многозначный уникальный характер зависи- мости идентифицируется буквой G в формуле зависимости. Функция (3.6) определена при всех значениях аргумента ФАМИЛИЯ ИМЯ ОТЧЕСТВО, встречающихся в анкете (см. нижнюю строку в (3.6)), а если вспомнить правила заполнения ”аш<еты”‚ даъшые в § 1 настоящей главы, — то и при всех мыслимых значениях аргумента. Такая полная определенность функтшональной зависимости достигается искусственным приемом: при значениях ФАМИЛИИ ИМЕНИ ОТЧЕСТВА, которым не соответствуют нш<акие правительственные награды, переменной ПРА- ВИТЕЛЬСТВЕННЫЕ НАГРАДЫ приписывается значение нет. Теперь при таких значениях аргумента вместо текста не определено или пробела вьша- дает искусственное значение нет.  3.4. О природе многозначности информационных функций. В п. 3.2 данные из нуле- вого, одиннадцатого и двенадцатого столбцов ”анкеты” были истолкованы как значе- ния трех информационных переменных, связанных одной двухключевой однозначной уникальной зависимостью (см. (3.5)). Это истолкование в последующем считается основным. Однако наряду с ним возможны и другие взгляды на связь между значе- ниями переменных ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ГОД ПОСТУПЛЕНИЯ, НАИМЕ- НОВАНИЕ ПРЕДПРИЯТИЯ; этим ДРУГИМ взглядам посвящен настоящий пункт. 3.4.1. Группы значений переменной ГОД ПОСТУПЛЕНИЯ можно считать завися- Цшми только от значений переменной ФАМИЛИЯ ИМЯ ОТЧЕСТВО вне связи со значениями переменной НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ. Эта трактовка имеет содержательное обоснование и формальное обоснование. Начнем с первого. Каждому человеку присущ свой список моментов поступления на новые пред- приятия. Если каждый список считать значением информационной переменной ГОДЫ ПОСТУПЛЕНИЙ (не ГОД ПОСТУПЛЕНИЯ, а именно ГОДЫ ПОСТУПЛЕ- НИЙ), а каждого человека связать со значением переменной ФАМИЛИЯ ИМЯ ОТЧЕСТВО, то отмеченное отношение может быть выражено функциональной за- висимостью первой переменной от второй: -  7311 =0(Ё1) при г, =‘ { Ё (11): А”: Ё (13). А”, £(15)}; здесь использованы старые обозначения из табл. 2.1 и формулы (3.2), а также новое обозначение п, 1 новой переменной ГОДЫ ПОСТУПЛЕНИЙ. Функциональная зависимость (3.7) представлена в табл. 3.2. Некоторым значениям ФАМИЛИИ ИМЕНИ ОТЧЕСТВА соответствует не один год поступления, а несколько, так что ГОДЫ ПОСТУПЛЕНИЙ — множественная переменная, а (3.7) - многозначная зависимость. Старая переменная ГОД ПОСТУП- ЛЕНИЯ шиеет своими значениями элементы значений множественной переменной ГОДЫ ПОСТУПЛЕНИЙ, и нет ни одного элемента множественных значений, который не фшурировап бы как значение переменной ГОД ПОСТУПЛЕНИЯ. Поэтому ГОД ПОСТУПЛЕНИЯ — присоединенная переменная, находящаяся в отношении множест- венности с переменной ГОДЫ ПОСТУПЛЕНИЙ (ср. ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ - ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА). В табл. 3.2, помшио зависимости переменной ГОДЫ ПОСТУПЛЕНИЙ от аргумен- та ФАМИЛИЯ ИМЯ ОТЧЕСТВО, представлены все значения переменной ГОД ПОСТУПЛЕНИЯ. Отметим, что совокупность этих значений не есть множество, ибо среди элементов совокупности имеются повторяющиеся, что не противоречит опреде- лению присоединенной переменной (”каждый элемент значения множественной пере- менной является отдельным значением присоединенной переменной”, см. 2.3 преды- дущего параграфа). Отправным пунктом формального обоснования обсуждаемой трактовки является формула двухключевой зависимости (3.5) . (1)  Зададимся первым значением аргумента ФАМИЛИЯ ИМЯ ОТЧЕСТВО ($1 ) И найдем все значения второго аргумента (2,), при которых определена в этом случае  26  „шаманит —.....$|n—n.-u-;..._—n.._..._.. 
Таблица 3.2  Зависимость переменной ГОДЫ ПОСТУПЛЕНИЙ от аргумента ФАМИЛИЯ ИМЯ ОТЧЕСТВО и значения присоединенной переменной ГОД ПОСТУПЛЕНИЯ  ФАМИЛИЯ ИМЯ ОТЧЕСТВО II_;(O),g¥IynnEHMfi ueauoe иван иваиович 1941, 1949 1941, 1949, 1976‚ пантелеев дмитрий цаьич 1976 1953‚ 197б‚ 1935‚ петрова надежда пегровна 1958 1941. 1949 cemeuoea анна дмигриевна 1976 сидоров петр иванович 1935, 1941, 1949 функция (3.5):  E, = ueauoe иван иванович, г, = 1941„ 1949; затем зададимся вторым значением аргумента и найдем то же самое: г, = пантелеев дмитрий ильич, г, = 1976;  затем — третьим значением и так далее до последнего значения аргумента. В резуль- тате получатся группы значений второго аргумента в зависимости от значений первого аргумента. Эта зависимость описывает множество определения функции (3.5). Она тождественна зависшиости (3.7)‚ это обнаруживается прямым сопоставлением. Формальную операцию, в результате которой получена обсуждаемая зависимость, назовем ”проектированием на плоскость 51, г, ”. Слово ”плоскость” в этом названии следует воспринимать как дань привычной терминологии, ведущей свое происхожде- ние от функшай недискретной природы. 3.4.2. Группы значений переменной НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ можно считать зависящими только от значений переменной ФАМИЛИЯ ИМЯ ОТЧЕСТВО вне связи со значениями переменной ГОД ПОСТУПЛЕНИЯ. Обоснование такой трактовки во многом повторяет рассуждения предыдущего раздела. Каждому человеку присущ свой список предприятий, на которые он поступал работать. Примем, что каждый конкретный список предприятий есть значение ин- формационной переменной НАИМЕНОВАНИЯ ПРЕДПРИЯТИЙ (новая переменная может иметь любое нашиенование, лишь бы не НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ). То, чтб человеку присущ его список предприятий, выражается в виде функцио- нальной зависимости переменной НАИМЕНОВАНИЯ ПРЕДПРИЯТИЙ от переменной ФАМИЛИЯ ИМЯ ОТЧЕСТВО:  НАИМЕНОВАНИЯ ПРЕДПРИЯТИЙ= G (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) при ФА- МИЛИЯ РПМЯ ОТЧЕСТВО е{иванов иван иваиович, панталеев дмигрий ильич, петрова надежда петровна, самеиоваднна дмигриевна, сидоров петр иванович }.  (3.8) Отметим, что формулы функционалыжых зависимостей можно писать не только в обозначениях, но и в исходных наименованиях и исходных значениях перемен- ных, примером чему является формула (3.8). ° Переменная НАРПМЕНОВАНИЯ ПРЕДПРИЯТИЙ — множественная, так как неко- торым значениям ФАМИЛИИ ИМЕНИ ОТЧЕСТВА отвечают не одно неразложимое значение (не одно предприятие), а несколько; значения переменной НАИМЕНОВА- НИЯ ПРЕДПРИЯТИЙ занимают окна двенадцатого столбца табл. 1.1; элементы множественных значений разделены в окнах горизонтальными линиями, не вы- ходящими за пределы двенадцатого столбца. Переменная НАИМЕНОВАНИЕ ПРЕД-  27 
ПРИЯТИЯ выступает как присоединенная к новой переменной НАИМЕНОВАНИЯ ПРЕДПРИЯТИЙ. Обсуждаемая функциональная зависимость — многозначная, на что указывает буква G B формуле (3.8). С формальной точки зрения зависимость (3.8) является следствием двухключе- вой однозначной зависимости 17,, ‘= F(2,, д) -- она получается проектированием по- верхности 17,, ‘=F(2,, а) на плоскость 2,, т,‘ Эта операция проводится так: для  первого значения аргумента ФАМИЛИЯ ИМЯ ОТЧЕСТВО ЦЕН) и для всех зна-  чений аргумента ГОД ПОСТУПЛЕНИЯ (2,) ИЗ множества определения при  1 данном значении 2, )‘, находятся значения зависимой переменной НАРПМЕНОВА- НИЕ ПРЕДПРИЯТИЯ (17,,)‘; они собираются в список. Находится список значений (2)  2 17 д, для второго значения 2, ‘ И всех 2, ИЗ множества определения при 2, = г, Так получается второй список, затем третий и т.д. Каждый список соответствует своему значению аргумента 2,. Построенная в результате этой операции проекти- рования зависимость совпадает с (3.8). В заключение двух разделов отметит, что представление отношений между зна- чениями из нулевого, одиннадцатого и двенадцатого столбцов ”анкеты” в виде двухключевой однозначной зависимости т: *1’ (1‘;’,, ёдявляется более полным, не- жели представление этих же отношений в виде пары одноключевых многозначных зависимостей (3.7), (3.8), ибо последние получаются как формальные следствия первой, но не наоборот. Именно поэтому в начале настоящего пункта первое пред- ставление было объявлено основным. 3.4.3. Сопоставим две переменные ”анкеты”: НАИМЕНОВАНИЯ ПРЕДПРИЯТИЯ и ПРАВИТЕПЬСТВЕННЫЕ НАГРАДЫ. Если бы в ”анкете” не было одиннадцатого столбца ГОД ПОСТУПЛЕНИЯ, то переменные НАРПМЕНОВАНИЯ ПРЕДПРИЯТИЙ (переменную из двенадцатого столб- ца уместно было бы тогда называть НАРПИЁНОВАНИЯ ПРЕДПРИЯТИЙ, а не НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ) и ПРАВИТЕПЬСТВЕННЫЕ НАГРАДЫ были бы в равном положении — обе могли бы трактоваться только как множественные переменные, зависящие от аргумента ФАМИЛИЯ ИМЯ ОТЧЕСТВО. Присутствие в ”анкете” переменной ГОД ПОСТУПЛЕНИЯ позволяет рассматривать переменную из двенадцатого столбца как функшпо двух аргументов: ФАМИЛИИ ИМЕНИ ОТ- ЧЕСТВА и ГОДА ПОСТУПЛЕНИ , и в таком виде она становится однозначной. Вообще, если переменной присуща зависимость двух от аргументов и если один из аргументов исключается в результате операции проектирования, то это может оз- начать только следующее: в ответ на задание оставшегося аргумента выдаются все значения зависшиой переменной при этом значении аргумента и при всех возмож- ных (из множества определения) значениях исключенного аргумента. Так возникают множественные значения и такова природа появления многозначности. Переменная ПРАВИТЕПЬСТВЕННЫЕ НАГРАДЫ определена как множественная, многозначно зависящая от аргумента ФАМИЛИЯ ИМЯ ОТЧЕСТВО. От многознач-  ности можно избавиться, если переменную ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА 1(B,  новом варианте переменную уместно назвать так же, как присоединенную к ПРА- ВИТЕПЬСТВЕННЫМ НАГРАДАМ — ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА) считать зависящей не только от этого аргумента, но также еще и от второго, который бы иден- тифицировал вместе с первым каждый элемент каждого значения исходной множест- венной переменной. Скажем, в роли второго аргумента может выступать НОМЕР НАГРАДЫ. Переменная ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА, определенная как функ- ция ФАМИЛИИ ИМЕНИ ОТЧЕСТВА и НОМЕРА НАГРАДЫ, всегда элементарная скалярная, так как любой человек имеет не более чем одну свою первую награду не более чем одну свою вторую награду и т.д. 3.4.4. Любая многозначная зависшиость может быть сделана однозначной, если ввести в зависимость дополнительный аргумент туша номер. Спрашивается, целесо- образна ли такая операция? Она полезна с той точки зрения, что факт однозначности гарантирует существование не более, чем одного значения зависимой переменной. Следовательно, поисковые действия можно прекращать по нахождению первого зна- чения зависимой переменной. Операция делает информационный объект, включающий в себя трансформируемую зависимость, более громоздким, ибо добавляет в объект еще одну переменную. Вряд ли эти доводы дают основания для определенного реше- 28 
ниЯ IIOC'l‘aBJIeI-{I-{0I‘0 B0l'Ip0C3.. НО сама неопределенность свидетельствует В ПОЛЬЗУ удер- жания B классификации функций наряду с однозначными функциями функций МНОГОЗНЗЧНЬЕХ. 3.5. Неуъшкальные зависимости. Два предположения были сделаны в от- ношении участников анкеты: каждый имел свое неповторимое сочетаъше фамилша, имени и отчества и каждый менял работу не более одного раза в год. Иными словами, бьша оставлена в стороне возможность повторения значащий аргумента ФАМИЛИЯ ИМЯ ОТЧЕСТВО (£1) и пар значений аргументов ФАМИЛИЯ ИМЯ ОТЧЕСТВО (21) и ГОД ПОСТУПЛЕНИЯ (£2). Однако не исключено, например, что среди сотрудгников ЗТМ есть два ивановых ивана ивановича и какие-то сотрудники по два раза в каком- то году поступали на новую работу. 3.5.1. Назовем одноключевую зависимость, значения аргумента в кото- рой не повторяются, одноключевой уникальной, а одноключевую зависи- мость с повторами значений аргумента — одноключевой неуникальной. Назовем двухключевую зависимость, пары значений аргументов в которой не повторяются, двухключевой уникальной, а с повторами пар — двухклю- чевой неуникальной. Наконец, назовем п-ключевую зависимость уникаль- ной, если в ней не повторяются энки значений аргументов; в противном случае она — п-ключевая неунш<альная зависимость. До сих пор изучались ут-шкальные зависимости в анкете — одноключевые и двухключевая. Уникальность всех зависимостей ”анкеты” бьша следст- вием двух предположений, еще раз отмеченных в начале данного пункта. Теперь откажемся от них. В анкету могут быть дописаны новые участнш<и с неуъшкальными фамилиями, шиенами и отчествами, новые участники могут неоднократно менять работу на протяжентш года. Тогда уникальные зависимости заменятся на неуникальные. Формулы одноключевых однозначных уникальных зависимостей (3.1), (3.3), формула двухключевой однозначной уникальной зависимости (3.5) и формула одноключевой многозначной уникальной зависимости (3.6) заменятся на формулы соответствующих неуникальных зависимостей:  171 =1(Ё1)(31 г: =2l(51()3§) 773(:)I(§(15))§ 774 =I(§1)§ 775 =1(§1) ПРИЁ1е{Ё1 97?; )9 1 agl ›Ё1 з°°°}; 176 =1(Ё1)З177 =1(Ё1)5 778 =1(§1)§ 779 =1(Ё1)$171о =1(Ё1) при 21 гни”, E4’, Ё”, . . .}; 1712 =I(51,52) при 51,22 e{s§",s§”; f", £3’; 91555’; Р’, §“’- “", Е”; f”,2§"; (5) (2), (5) (3), }, 1 9 2 9 l 9 2 9°°° 9  9 1 171з=-’(Ё1) при slam", 5”, £3’, f“’,.s1‘”....}. (3.9)  Формулы (3.9) повторяют (3.1), (3.3),' (3.5), (3.6) сдвумя изменения- ми: в формулах функциональных зависимостей поменялись буквы F Hal и G Ha J, a также формулы множеств определения дополнились многото- чиями.  29 
Появлеъше повторяюцшхся значеншй аргументов делает однозначные уникальные зависимости (одноключевые и двухключевые в ”анкете” ошюзначными неуникальными. Последние обозначены буквой 1. Поэтому в первой, третьей и пятой строках (3.9) фигурируют буквы 1 на тех местах, где в (3.1)‚ (3.3) и (3.5) записаны буквы F. Многозначные уникальные за- висимости становятся в этой же связи многозначными неуншсальными. Они обозначаются буквой J; поэтому в предпоследней строке (3.9) запи- сана буква J Ha том месте, где в (3.6) — буква G. Множества определения перенесены из (3.1)‚ (3.3), (3.5)‚ (3.6) в (3.9) c ешшствеъшым дополнением — многоточиями после последних элементов. Эти символы дают понять, что множества будут расцшряться за счет новых элементов — новых значений ФАМИЛИИ ИМЕНИ ОТЧЕСТВА и новых пар значений ФАМИЛИИ ИМЕНИ ОТЧЕСТВА — ГОДА ПОСТУПЛЕНИЯ. Среди новых элементов могут быть повторяющиесяиповторяющие старые элементы, что и вызывает необходимость замены уникальных зависимостей на неунржапьные. Термтш ”множество определения” теперь неприемлем из-за повторения элементов; вместо него в неуникапьных зависимостях будет ”совокупность значений, которые пробегает аргумент”.  3.5.2. Рассмотрим следующее видоизменение ”анкеты”. Пусть перед нулевым столбцом ФАМИЛИЯ ИМЯ ОТЧЕСТВО располагается еще один столбец с наимено- ванием ТАБЕЛЬНЫЙ НОМЕР. Переменная ТАБЕЛЬНЫЙ НОМЕР имеет своими значениями целые числа: 1, 2, 3, . . . Ни одно из значений этой переменной не повторя- ется — каждый сотрудник, бывший, настоящий или будущий, имеет свой неповтори- мый ТАБЕЛЬНЫЙ НОМЕР. В табл. 3.3, где показан фрагмент видоизмененной ”анкетъ1”, по сравнению с табл. 3.1, есть новый столбец, а также новая строка, отве- денная новому иванову ивану ивановичу. Каждый конкретный ТАБЕЛЬНЫЙ НОМЕР соответствует одной конкретной ФАМИЛИИ ИМЕНИ ОТЧЕСТВУ. Значит, ФАМИЛИЯ ИМЯ ОТЧЕСТВО есть функ- mm ТАБЕЛЬНОГО НОМЕРА, причем функция однозначная и уникальная. Она не вэаимнооднозначная, так как разным значениям табельного номера могут соответ- ствовать одинаковые значения ФАМИЛИИ ИМЕНИ ОТЧЕСТВА, и это тогда. когпа  Таблица 3.3 Фрагмент видоизмененной ”анкетьп” ТАБ ЕЛЬ- ФАМИЛИЯ ОБРАЗО_ НЫЙ ИМЯ ВАНИЕ ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ НОМЕР ОТЧЕСТВО 1 иванов иван иванович среднее ' медаль ”за трудовое отличие”, орден ”знак почета” 2 пантелеев дмитрий незакон нет шдьич высшее 3 петрова надежда высшее нет петровна 4 семенова анна высшее нет дмитриевна _ 5 сидоров петр высшее медаль ”за отвагу”, орден красной иванович звезды, орден красного знамени 6 иванов иван иванович высшее медаль ”за трудовое отличие”  30  F......__ 
в составе ”анкеты” имеются участники с одинаковыми ФАМИЛИЯМИ ИМЕНАМИ ОТЧЕСТВАМИ. Обозначим переменную ТАБЕЛЬНЫЙ НОМЕР буквой т; за ФАМИЛИЕЙ ИМЕ- НЕМ ОТЧЕСТВОМ сохраним старое обозначение 21. Отмеченная функциональная зависимость выражается следующим образом:  £1 =‘F (т). (3. 10)  Каждый конкретный ТАБЕЛЬНЫЙ НОМЕР как уникальный идентификатор человека порождает серию характеристик этого человека: ПОЛ (п‚),` ДАТ А РОЖДЕНИЯ.ГОД (т), . . . , НАИМЕНОВАНИЕ ВУЗА (n,o)‘, ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ (п, 3) (ГОД ПОСТУПЛЕНИЯ (2,) н НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ (n,,)‘ не случайно выпущены из этого списка). Переменные ПОЛ (п 1 ) ,`ДАТА РОЖДЕНИЯ. ГОД (17,), . . . , НАИМЕНОВАНИЕ ВУЗА (п: о)‘ однозначно и уникально зависят от аргу- мента ТАБЕЛЬНЫЙ НОМЕР, а переменная ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ — многозначно уникально:  п, =`Р'(т)‚ п, =F(1'), . . . ,n1° ‘=F(1'), 1113 = G(1'). - (3.11)  Таким образом, аргумент ТАБЕЛЬНЫЙ НОМЕР обеспечивает уникальность одно- ключевым зависимостям ”анкеты”. Отметим, что для приведения переменной НАИМЕНОВАНИЕ ПРЕШТРИЯТИЯ к уникальной зависимости от своих аргументов недостаточно заменить аргумент ФАМИЛИЯ ИМЯ ОТЧЕСТВО на аргумент ТАБЕЛЬ- НЫЙ НОМЕР. Двухключевая неуникальная зависшиость из (3.9) имеет две возмож- ности для неуникальности; во-первых, разные люди, но с одинаковыми ФАМИЛИЯМИ ИМЕНАМИ ОТЧЕСТВАМИ могут иметъ совпадающие ГОДЫ ПОСТ УПЛЕНИЙ на новые работы и, во-вторых, один и тот же человек может в один и тот же год несколько раз поступать на новые работы. Введение ТАБЕЛЬНОГО НОМЕРА исключает основание для первой неуникальности, но оставляет вторую. Ее также можно исключить, но для этого вместе с ТАБЕЛЬНЫМ НОМЕРОМ нужно ввести еще один аргумент — НОМЕР РАБОТЫ. I Общий рецепт приведения неуникальных зависимостей к уникальным — введение в зависшиости новых аргументов снеповторяютцимися значениями, например аргумен- тов типа номер. В конечном счете важно, чтобы каждому значению нового аргумента соответствовало одно значение старого аргумента. Если речь идет об аргументе типа номер, то все повторяющиеся и неповторяющиеся значения старого аргумента пере- нумеровываются. Введение новых аргументов сопровождается определением старых аргументов через новые, поэтому введение ТАБЕЛЬНОГО НОМЕРА сопровождается опреде- пением (3.10) ФАМИЛИИ ИМЕНИ ОТЧЕСТВА через ТАБЕЛЬНЫЙ НОМЕР, а это — дополнительная функциональная зависимость. Получается, что уникальность одно- ключевых зависимостей достигается ценой прибавления к исходному составу функ- циональных зависимостей еще одной зависимости. Уникальность двухключевых за- висимостей может потребовать двух дополнительных зависимостей и т.д. При прочих равных условиях уникальная функшш предпочтительнее, чем та- кая же неуникальная, в следующем смысле. Когда функция уникальна по своей природе и объявляется уникальной (а уникальную функцию можно объявить и неуникальной - класс неуникальных функций включает в себя класс функций уни- кальных) , то тем самым гарантируется не более чем однократная встреча с каж- дым значением аргумента. Так что, обнаружив первое требуемое значение аргу- мента, можно на этом останавливать поиск — второго такого же значения не най- дется. Итак, с одной стороны, приведение неуникальной зависшиости к уникальной связано с расширением состава зависимостей и, следовательно, c усложнением ин- формационного объекта. С другой стороны, уникальные зависимости требуют мень- ше поисковых операшай, чем неуникальные. Ответ на вопрос: следует ли стремить- ся к уникальности, неоднозначен. Отсюда ясно, по крайней мере, одно: необходи- мо держать в классификации зависимостей такой тип, как неуникальные зависимости. 3.5.3. Функция (3.10), выражающая зависимость ФАМИЛИИ ИМЕНИ ОТЧЕСТВА ($1) от ТАБЕЛЬНОГО НОМЕРА (т), обладает тем свойством, что обратная к ней функция неуникальная. Действительно, в табл. 3.3 значению т = 1 отвечает г, = ива- нов иван иванович и значению т = 6 отвечает также г, =` иванов иван иванович, так  31 
что аргумент обратной функции £1 имеет повторяющиеся значения. Отсюда следует, что если из (3.1О) выразить т через $1 и подставить эту функцию т =1($‚) в набор одноключевых уникальных зависимостей (3.11)‚ то в результате переменные 17,, т, . . . , то , п, 3 окажутся неуникальными функштями аргумента 51, как уже бьшо в (3.9). Неуникальность есть следствие того обстоятельства, что функция, выра- жающая зависимость нового аргумента г, от старого — т, имеет в качестве обратной неуникальную функцию. Табл. 3.4, а изображает неуникапьные функции: ОБРАЗОВАНИЕ = 1 (ФАМИЛИЯ ИМЯ ОТЧЕСТВО), ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ = J (ФАМИЛИЯ ИМЯ ОТЧЕСТВО). Отметим, что каждому значению аргумента, повторяющемуся и непов- торяющемуся, в изображении неуникальной функции отводится отдельная позрщия. Однозначная неуникальная зависимость может быть истолкована как многознач- ная уникальная. Скажем, зависимость ОБРАЗОВАНИЯ от ФАМИЛИИ I/IMEHI/I OT- ЧЕСТВА — однозначная неуникальная, как показано в табл. 3.4, а; она может быть формально перестроена в многозначную уникальную, как в табл. 3.4, б. Правила перехода следуюцше: строчки с неповторяющимися значениями аргумента перено- сятся без изменений; всем повторяющимся значениям аргумента отводится по одной позиции; значения зависшиой переменной, соответствующие одинаковым значениям аргумента, собираются в одну свою позицию. Наоборот, многозначная уникальная зависимость может быть перестроена по фор- мальным правилам в однозначную неуникальную: строчки с элементарными скаляр- ными значениями зависимой переменной переносятся без изменений; каждому эле- менту множественного значения зависимой переменной отводится отдельная позиция и перед ней записывается соответствующее значение аргумента. Подчеркнем, что речь идет о формальных заменах классификационных типов зависимостей; действительный классификационный туш диктуется содержанием зави- симости. Например, ОБРАЗОВАНИЕ не может многозначным образом зависеть от ФАМИЛИИ ИМЕНИ ОТЧЕСТВА, так как каждому человеку присуще одно ОБРАЗО- ВАНИЕ, но может зависеть неуникальным образом, так как встречаются люди с одинаковыми ФАМИПИЯМИ ИМЕНАМИ ОТЧЕСТВАМИ. Переходы: однозначная неуникальная функция -› неоднозначная уникальная функция и неоднозначная уникальная функция -› однозначная неуникальная функ- ция — происходят без информационных потерь; сделав переход, всегда можно вер- нуться к исходному представлению. Этого нельзя сказать о переходе: многозначная неуникальная функция -› многозначная уникальная функция. Такой переходнеоб- ратши. Пример на этот счет есть в табл. 3.4. Перестройка 3.4,а —› 3.4, б привела к тому, что элементы множественных значений переменной ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ, соответствующие двум ивановьш иванам ивановичам, оказались в одной позиции — в верхнем правом окне табл. 3.4, б. В такой записи (а она сделана по пра- вилам изображения многозначных зависимостей) нет возможности отделить список наград первого иванова ивана ивановича от списка второго иванова ивана ивановича и, следовательно, вернуться к многозначному неуникальному представлению обсуж- даемой зависимости.  3.6. Классификация информациоштьпх функций. Выделим следующие шесть типов гшформационньш функтшй: Г CONST "  ARRAY  n: грудь...) у (3.12)  G(£,x,...) 1(£,x,.--) _-7(€,X,---)_  Зависимая переменная п может быть константой (CONST) или совокуп- ностью элементов (ARRAY), может быть однозначной уникальной функ- тшей своих аргументов Е, х, . . . (F (E, х, . . . )) ‚ неошюзначной уникальной 32  “М” " мы —i:m22g«~45a:~«»««=:.:J&mae:r;~:ax.~*«s«=¢::a::.»$~z „ТЕ  к А-цаап.  ...‘fl).a_ \  на... 
_..j..__......  Таблица 3.4  Толкования зависимостей ”анкеты” как неуникальных (таблица 3.4‚а)и как neon.  нозначных (таблица 3.4, б) зависимостей  Таблица 3.4, а ФАМИЛИЯ ИМЯ ОТЧЕСТВО ОБРАЗОВАНИЕ ПРАВИТЕПЬСТВЕННЫЕ НАГРАДЫ иванов иван иванович среднее медаль ”за трудовое отличие”, орден ”знак почета” иванов иван иванович высшее медаль ”за трудовое отличие” пантелеев дмитрий ильич незакон нет высшее петрова надежда петровна высшее нет семенова анна дми триевна высшее нет сидоров петр иванович высшее медаль ”за отвагу”, орден крас- ной звезды, орден красного знамени Таблица 3.4, б ФАМИЛИЯ ИМЯ ОТЧЕСТВО ОБРАЗОВАНИЕ ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ иванов иван иванович среднее, медаль ”за трудовое отлачие”, высшее орден ”знак почета”, медаль ”за тру- довое отличие” панте.леев дмитрий ильич незакон нет высшее петрова надежда петровна высшее нет семенова анна дми триевна высшее нет сидоров петр иванович высшее медаль ”за отвагу”, орден красной звез-  ды, орден красного знамени  функтшей (G (Ё, х‚...))‚ однозначной неуникапьной функцией (I(£, х‚... ))  и, наконец, неоднозначной неуникапьной функцией (J (E, х, . . . )).  3.6.1. Четыре последних типа функтшй подробно обсуждались в преды- дущем тексте этого параграфа. Что касается типов CONST и ARRAY, то они исчерпывающе могут быть объяснены на примерах. Если бы в ”анкете” был столбец АДРЕС ПОСЛЕДНЕГО МЕСТА РАБО- ТЫ, то все участники сделали бы в своих строчках одшнаковую запись — адрес ЗТМ. Значение переменной АДРЕС ПОСЛЕДНЕГО МЕСТА РАБО- ТЫ не зависит от аргумента ФАМИЛИЯ ИМЯ ОТЧЕСТВО; оно.не зависит также от второго аргумента анкеты — ГОД ПОСТУПЛЕНИЯ; будем считать  3. Ю.Н. Иванов 33 
это’ значение неразложимым ни на какие части; тогда переменная АДРЕС ПОСЛЕДНЕГО МЕСТА РАБОТЫ принадлежит к типу константы:  АДРЕС ПОСЛЕДНЕГО МЕСТА ‘РАБОТЫ = CONST. (3.13)  Если бы ”анкета” была дополнена столбцом, в который каждый участник записал бы одгно и то же значение, но это значение, в отличие от предыдуще- го случая, бьшо бы разложимо на элементы, то переменная-наименование столбца пргшадлежала бы к типу ARRAY — СОВОКУПНОСТЬ. Отметим, что элементы, составляющие совокупность, могут повторяться, поэтому ARRAY — не множество, а совокупность. 3.6.2. Тип функциональной ‘зависимости J — самый сложный. В п-ключе- вой функшш 1-типа допускаются в повторы энок значеъшй аргументов, и множественности значений зависимой переменной. Подчеркнем: допуска- ются, но не обязательны. В частности, все значения зависимой переменной могут быть немножественными. Тогда эта функтшя Ътипа одновременно является *функцией 1-типа. Значит, Ъфушсция есть частный случай Ъфунк- ции. Если каждая энка значеъшй аргументов уникальна в Ъфункции, то эта 1-функция одновременно есть О-функция, и, следовательно, С-функция есть частный случай Ъфунктши. Когда (Р-функция не имеет ни одного множественного значения зависи- мой переменной или когда Ъфункция не имеет ни одного повтора энок значений аргументов, то эти G- и Ьфункции вырождаются в F -функцию; так что Е-функция есть частный случай О-функтши и частный случай 1-функции. Если при любой энке значений. аргументов функция типа J (или функ- ция типа G) принимает одно и то же множественное значение, то эта Ъфункция (или С-функция) одновременно пръшадлежит к типу ARRAY; следовательно, тип ARRAY_ есть частный случай Ъфункции и частный  1 K Puc. 1.3.1. Подчинения типов функциональных зависимостей F l ARRAY CONST  случай О-функшш. Аналогично туш CONST есть частный случай 1-функ- um»: и F -функции‚ а также частный случай ARRAY, когда совокупность состоит ровно из одного элемента. На рис. 1.3.1 отражены подчинения типов функциональных зависи- мостей, которые только что обсуждались. Каждому типу в графе подчи- нений отведена своя верцшна; стрелки направлены от более сложного типа к менее сложному.  34 
Туш функции всегда можат быть повышен, если только она по своей природе не принадлежит самому сложному ./-типу. Этот шаг страхует от возможных ошибок в определешш действительного классификационного пша функшш, но одновременно приводит‘ к потерям. Действительно, если уникальную функцию объявить неутшкальной (заменить тип F Ha 1 ‚или тип G на J), то поисковые операции после нахождения первой заданной энки значений „аргументов не остановятся (см. п. 3.5.2) . Если однозначную функ- цию объявить многозначной (заменить пш F Ha G 1»IJI1»I'-um I HaJ), то поис- ковые операцгш не прекратятся после нахождения первого значения зависи- мой переменной (см. п. 3.4.4) . Аналошчные потери произойдут при повы- шении типов CONST или ARRAY. Вывод` из этого такой, что нужно функ- цию объявлять тем классификационным типом, которому она прштадлежит по своей природе. ’  § 4. Введение в запросы  Запросам посвящена спетшальная глава этой книги, а в данном параграфе сообщаются только те сведения о ъшх, которые оправдывают существова- ние некоторых черт информатшонных объектов. 4.1. Объект запроса и условия запроса. Начнем со следующих трех запро- сов, в которых фигурируют одноключевые оштозначньте переменные и аргумент ФАМИЛИЯ ИМЯ ОТЧЕСТВО из ”анкеты”: 1°. Каковы год, число и месяц рождегшя Пантелеева Дьштрия Ильича? 2°. Кто закончил ЛПИ? 3° . B каких месяцах рошпшсь те, кто имеет высшее образование? В любом запросе есть две части: условия запроса и объект запроса. В объекте запроса указывается то, что должно быть сообщено запраши- вающему: 1°. Каковы год, число и месяц рождения . . . 2° . Кто . . . 3°. В каких месяцах . . . . Иными словами, в объекте запроса указываются наименования перемен- ных, значения которых представляют „интерес: 1°. ДАТА РОЖДЕНИЯ.ГОД; ДАТА РОЖДЕНИЯ.ЧИСЛО; ДАТА РОЖ- ДЕНИЯ.МЕСЯЦ. . . 2°. ФАМИЛИЯ ИМЯ ОТЧЕСТВО . . . 3° . ДАТА РОЖДЕНИЯ .МЕСЯЦ . . . В условиях запроса сообщаются условия, которые выделяют требуемую  информацию: 1°. . . . Пантелеева Дмитрия Ильича 2° . . . . ППИ 3°. . . . высшее  Если прибегнуть к термштам ”наименования переменных, значения пе- ременных”, то в условиях запроса указываются наименования переменных и их ‚значения, которые выделяют требуемые значения переменных, наиме- нования которых даны в объекте запроса: 1° . . . . ФАМИШ/[Я ИМЯ ОТЧЕСТВО = такте/леев дмитрий ильич ’ 2°. . . . НАИМЕНОВАНИЕ ВУЗА = ’лпи ’ 3°. . . . ОБРАЗОВАНИЕ = ’высшее ’.  3* 35 
Окончательно в термшчах переменных три обсуждаемых запроса пред- ставляются так: 1°. ДАТА РОЖДЕНИЯ.ГОД; ДАТА РОЖДЕНИЯ.ЧИСЛО; ДАТА РОЖДЕ- НИЯ.МЕСЯЦ/ФАМИЛИЯ ИМЯ ОТЧЕСТВО = Чгантелеев дмитрий ильич ’ 2°. ФАМИЛИЯ ИМЯ ОТЧЕСТВО/НАИМЕНОВАНИЕ ВУЗА = ’лпи’ 3° . ДАТА РОЖДЕНИЯ ‚МЕСЯЦ/ОБРАЗОВАНИЕ = ’высшее’ (4.1)  Пръшята следующая форма представления запросов. Наименования пере- менных, фигурируюпшх в объекте запроса, записываются до косой черты; если их несколько, то наименование от наименоваъшя отделяется точкой с запятой. Условия запроса записываются после косой черты и выглядят так: пишется наименование переменной, знак равенства и значение этой пе- ременной, взятое B апострофы. Косая черта в запросе читается следующим образом: ”такой‚ что” или ”при условша, что”. Разумеется, тремя типами запросов (4.1) не исчерпываются все запросы, поэтому здесь перечислены далеко не все выразительные средства запросов. 4.2. Вычисление информационных функшай, решение штформашпонных уравнений. Воспользуемся табл. 2.1 и заменим в записях (4.1) все наиме- нования переменных их обозначениями:  1°. 171; 173 ; 174/51 = ’пантелеев дмитрий ильич’ 2°. т/пь = Эти’ 3°. 174/175 = ’высшее’. (4.2)  Первый запрос в (4.2) выглядит как вычисление трех зависимых перемен- _ ных, являющихся функциями аргумента 51 , при задаъшом значении этого у аргумента. Ответ на него получается следующим образом: в первом столб- „ё це табл. 1.1, где все значения упорядочены по алфавиту, находится заданное д значение 51 = ’naureneee дмшрий ильич’ и в его строке читаются требуе- Mme 172, 173, 174. Ответ таков: 1959; 28; февр. Запросы, которые ъштерпре- тируются как вычисления функций по заданному значению аргумента, на- зывают прямыми. Во втором запросе задается значение зависимой переменной 176, являю- 1 щейся функцией аргумента 5.1 , и требуется найти соответствующее значение этого аргумента; Ответ: семенова анна дмитриевна, сидоров петр иванович. Ответ получается в результате такого процесса: все значения столбца НАИМЕНОВАНИЕ ВУЗА поочередно сравниваются с заданным значением лпи; в тех строках, где происходят совпадения, читаются значеъшя 51. Отметим, что значения 175 не упорядочены в своем столбце, именно поэтому поиск охватывает все значения пд , ибо, обнаружив первое совпадение, нель- зя быть уверенным, что оно последнее. Второй запрос в (4.2) может интер- претироваться как решение уравнения относительно 51; такие запросы называют обратными или инвертироваъшыми. Третшй запрос — составной. Он может быть представлен как состоящий из обратного и прямого запросов. Сначала в обратном запросе (51/175 = , = ’высшее’) находятся те значеъшя аргумента 51 , которые являются корня- ми уравнения 17 5 = ’высшее’; ответ здесь таков: петрова надежда петровна, семенова анна дмшриевна, сидоров new иванович. Затем в прямом запросе (174/51 = ’ne1poea надежда петровна, сёменова анна дмшриевна, сидоров петр иванович ’) вычисляются значения переменной 174, являющей- ся фушсцией аргумента 51 . Окончательный ответ: май, апр, июль.  36  I  ‘_ ~ s4&w .‘4 waéfifldvrm .1..a.; 2-:1-..~1«.ms.mr г  т Жилы, :1  “миазм  x.L ‘ 1 ‘т-‘жлмщь мэть  “пни-нижним. „ли-лишь “’ 
Не следует думать, что порядок поисковых действий при реализации СОСТЗВНЫХ запросов должен бЫТЬ всегда именно таким, как описано В пре- дыдущем абзаце. В частности, табл. 1.1 подсказывает более экономную организацию ПОИСКЗ: В ПЯТОМ столбце НЗХОДЯТСЯ СТрОЧКИ СО значением высшее, В окнах четвертого столбца, лежащих В выделенных строчках, читаются требуемые ответы; поисковые операции обопши определение значений аргумента £1. Однако в приншше составной запрос разложим на несколько aanpocon, последовательно обращаемых К СВОИМ зависимостям. 4.3. Аргументы и зависимые переменные. На примере одноключевой однозначной уникальной функции n = F($) установим различие в положениях информационного аргумента и информационной зависшиой переменной. Значения информационного аргумента обычно располагаются в каком-либо заранее обусловленном порядке: либо по алфавиту, если значения аргумента суть слова естест- венного языка, либо по возрастанию чисел. если значения аргумента суть числа. Что касается значений зависшиой переменной, то они располагаются рядом с сооответ- ствутоццши значениями аргумента, и поэтому их порядок не может быть предопре- делен заранее. описанное различие в положениях аргумента и зависимой пере- менной имеет место как на бумаге, так и в памяти ЭВМ. Внесение неравноправности в положения переменных, связанных функциональной зависимостью, — не единствен- но возможный, но наиболее распространенный путь организации их значений. ( ) Найти значение зависшиой переменной n no заданному значению аргумента г * —  это значит отыскать в упорядоченном по г множестве пар г, n napy с E = to’) И в ней  прочитать требуемое значение no’). По заданному значению n(*) определить соот- ветствующие значения E — это значит найти в множестве пар г, n, упорядоченном по г,  но не по n, все пары с n = по‘) и прочитать требуемые значения г“). Если обратная к n =F(£) функция однозначная, то найдется одна пара с n = по‘) и одно значение  до)  несколько значений г“). Поиск при заданном го‘) нужной пары го’ ) ‚ n(*) среди пар в, n, упорядоченных по г, как правило, менее трудоемок, чем поиск в том же мно-  ; B Hp0THBHOM случае МОЖСТ бЫТЪ НОСКОЛЬКО пар С ‘п = По‘) И СООТВВТСТВВННО  жестве, но при заданном n(*) . Поэтому реализация запросов первого туша (прямых), как правило, менее трудоемка, чем второго туша (обратных). Допустим, информационный объект только проектируется и только установлен факт существования функциональной связи между двумя переменными. Пусть, к тому же, известен круг запросов, адресуемых к этши переменным. Из двух перемен- ных следует назначить аргументом ту переменную, которая в запросах чаще будет фигурировать как задаваемая, нежели как определяемая. Иньпии словами, аргумент чаще должен фигурировать в условиях запроса, чем в объекте запроса.  4.4. Запросы к шюгозначтгой зависимости. Следующие два запроса обра- щены к многозначной зависимости: ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ = = G (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) :  1° . Какие награды имеет Сидоров Петр Иванович? 2° . Кто награжден орденом ”Знак Почета”? (4,3)  Первый из них — прямой; в нем требуется вычислить значение много- значной зависимой перемеъшой -1713 , зависящей от аргумента £1, при задан- ном значении этого аргумента. По правилам, предложенным в п. 4.1, этот запрос записывается следующим образом: 1°. ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ/ФАМИЛИЯ ИМЯ ОТЧЕСТВО= = ’сидоров nezp иванович’ (4.4)  Ответом на первый запрос является значение многозначной переменной 37 
1713, содержащее три элемента: медаль ”3a oreaey”, орден красной звезды, орден красного знамени. Второй запрос из (4.3) - обратный; в нем требуется найти значение ар- гумента по заданному значению зависимой переменной. Но многозначная зависимая переменная ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ не имеет зна- чеъшя орден ”3ua1c nouera”, B чем можно убедиться, обратившись к послед- нему столбцу табл. 1.1. Такое значение принимает присоединенная пере- менная ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА (см. п. 2.3 настоящей главы). Она вводится именно для того, чтобы обеспечить доступ к элементам множественных значений, и разбираемый пример является тому иллюстра- тшей. Используя присоединенную переменную, запишем второй запрос (4.3) в формальных терминах:  2°. ФАМИЛИЯ ИМЯ ОТЧЕСТВО/ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА = = °орден ‘Знак почета”. (4.5) Ответ: иванов иван иванович.  4.5: доопределения функций и запросы. Запрос: Кто не имеет правителвственньш наград? формально записывается следующим образом:  ФАМИЛИЯ ИМЯ ОТЧЕСТВО/ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ = ,H3T’- (4.6)  Лаконичность запроса (4.6) обеспечивается тем обстоятельством, что среди зна- чений переменной ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ присутствует значение нет. Напомним, что это значение приписывается при тех значениях ФАМИЛИИ ИМЕНИ ОТЧЕСТВА, которым не соответствуют никакие правительственные награды (см. п. 3.3 настоящей главы). Если бы функция 11,3 = G (2,) небыла доопределена зна- чениями нет, то обсуждаемый запрос выражался бы так: сначала следовало бы найти всех участников анкеты, затем всех награжденных участников и из первой совокуп- ности вычесть вторую. Так что искусственные доопределения функциональных зави- сшиостей способствуют краткости выражения некоторых запросов.  4.6. Некоторые запросы к двухключевой зависимости. Рассмотрим сле- дующие три запроса, адресованные двухключевой зависимости ”анкеты” (3.5) : 1°. На каких предприятиях работал Иванов Иван Иванович? 2° . В какие годы меняламесто работы Петрова Надежда Петровна?  3° . Когда поступил на ЗТМ Пантелеев Дмитрий Ильич? Их формальные затшси таковы: 1°. НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ/ФАМИЛИЯ ИМЯ ОТЧЕСТВО = = ’иванов иван иванович ’ 2° . ГОД ПОСТУПЛЕНИЯ/ФАМИЛИЯ ИМЯ ОТЧЕСТВО = надежда петровна’  3°. ГОД ПОСТУПЛЕНИЯ/ФАМИЛИЯ ИМЯ ОТЧЕСТВО = ’пантелеев дмитрий ильич’, НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = ’зтм’ (4.7)  В п. 3.4 настоящей главы говорилось, что отношения между значениями переменных ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ГОД ПОСТУПЛЕНИЯ, НАИМЕ- НОВАНИЕ ПРЕДПРИЯТИЯ можно представить либо в виде двухключе- вой зависимости (3.5)‚ либо в виде пары одноключевьтх зависимостей  38  ’пе1рова  | ё I Ё 1  - “\"5\5-‘Jr е -  _. ._ ‚. _§,3,;§( ‚г.‘  \_ i2.\{(.?'~"-QKL  и е Ё 3» I ъ: ‚ я 
(3.7)‚ (3.8) и что двухключевая зависимость более полная, ибо из нее (3.7)‚ (3.8) получаются как формальные следствия. Запросы (4.7) рас- сматриваются для того, чтобы оправдать предпочтение, отданное двухклю- чевой зависимости перед парой одноключевых зависимостей. Первый запрос из (4.7) может быть обращен с равным успехом и к двухключевой зависимости, и к одноключевой (3.8); второй запрос — также c равным успехом к двухключевой зависимости и к одноключевой (3.7). Что касается третьего запроса, то он может адресоваться только двухключевой зависимости. Таким образом, выбор представления (3.7) , (3.8) вместо (3.5) сделал бы невозможными ответы на некоторые запросы, обращенные к тройке переменных ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ГОД ПОСТУПЛЕНИЯ, НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ.  § 5. Отношения между переменными  Функциональная зависимость есть один из типов отношеъшй между ин- формационными переменными. В настоящем параграфе излагаются другие типы отношений, используемые при огшсании информационных объектов. 5.1. Отношение множественности. Исходная множественная переменная ”анкеты” ПРАВИТЕПЬСТВЕННЫЕ НАГРАДЫ и присоединенная к ней пе- ременная ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА находятся B отношеъши мно- жествешюсти, как бьшо определено ‚в п. 2.3. Первая используется в тех запросах, где задаются значеъшя исходнои множественной перемеъшои или спрашивается о них, вторая - в запросах, где фигурируют элементы мно- жественных значений исходной переменной (см. п. 4.4) . Вообще, если в составе информационного объекта имеется множествен- ная переменная, являющаяся многозначной функцией каких-то аргументов, то огшсание этого объекта должно содержать эту множественную перемен- ную для доступа к ее множественным значениям, а также присоединенную переменную для доступа к элементам множественных значений. Отноше- ние множественности между исходной множественной перемеъшой п и при- соединенной к ней п’ выражается следующей формулой:  п= W(n')- (5-1) Например: _ ПРАВИТЕПЬСТВЕННЫЕ НАГРАДЫ = И/(ПРАВИТЕПЬСТВЕННАЯ НАГ- ` РАДА). (5.2)  5.2, Вектор и компоненты. Переменные ”анкеты”: ДАТА РОЖДЕНИЯ, ДАТА ОКОНЧАНИЯ ВУЗА, СВЕДЕНИЯ О ВУЗЕ бьши названы в п. 2.4 этой главы векторными переменными или просто векторами. 5.2.1. Условимся о следующей форме записи состава вектора: в левой части равенства пишется наименование вектора -—_ ос, в правой части - буква V, открывающая скобка, компоненты вектора —п‚, 172,173, . . . , разделяемые запятой, и закрывающая скобка: '  а: V(771a7?2,773,---)3 (5-3)  многоточия в формуле заменяют другие компоненты вектора, если они есть. Примеры:  39 
ДАТА РОЖДЕНИЯ = V (ГОД, ЧИСЛО, МЕСЯЦ) ; ДАТА ОКОНЧАНИЯ ВУЗА = V (ГОД, ЧИСЛО, МЕСЯЦ);  СВЕДЕНИЯ О ВУЗЕ = V (НАИМЕНОВАНИЕ ВУЗА, ДАТА ОКОНЧАНИЯ ВУЗА, АДРЕС ВУЗА). (5.4)  5.2.2. Одна из ролей, которые играют векторы в огшсании информацион- ного объекта‚ — различение разных по существу, но совпадающих по наи- менованию переменных.  В‘ ”анкете” присутствуют две переменные с одинаковым наименованием ГОД, две переменные ЧИСЛО и две переменные МЕСЯЦ. То обстоятельство, что над одной тройкой ГОД, ЧИСЛО, МЕСЯЦ шиеется вектор ДАТА РОЖДЕНИЯ, а над другой — ДАТА ОКОНЧАНИЯ ВУЗА, позволяет отличить в табл. 1.1, например, ГОД, относя- щийся к рождению, от ГОДА, относящегося к окончанию вуза. В п. 3.1 было предло- жено (и потом многократно использовано) для различения в тексте ГОДА от ГОДА, ЧИСЛА от ЧИСЛА и МЕСЯЦА от МЕСЯЦА писать перед ними наименование соот- ветствующего вектора и точку. Предложенное средство различения естественно счи- тать общим, а не относящимся только к конкретному примеру. Отметши два тождества, связанных с записью компонент вектора. Пусть а — наиме- нование вектора‚а 17 д ,п„п„ . . . — нашиенования компонент (см. (5.3)). Каждая ком- понента в тексте описания информационного объекта или в тексте запроса может или должна фигурировать с предшествующим наименованием вектора: а - 17 1, or 17,, а - п, . . . Если компонента имеет неуникальное наименование, то предшествование нашиенования вектора необходшио. В противном случае оно не обязательно, и если, скажем, п, — уникальное нашиенование, то запись а- п, тождественна записи 17,. Второе тождество есть следствие первого: '  °‘=V(°‘°’71aa'"72a°""73s---)3  B частности, определение вектора ДАТА РОЖДЕНИЯ в (5.4) тождественно такому определению: ‚.  ДАТА РОЖДЕНИЯ = У (ДАТА РОЖДЕНИЯ. ГОД, ДАТА РОЖДЕНИЯ. ЧИСЛО, ДАТА РОЖДЕНИЯ. МЕСЯЦ). (5.5)  5.2.3. Векторы позволяют экономно записывать факт функциональной зависимости. Если несколько переменных 171, 172, 173, . . . одинаково зави- сят от одинакового состава аргументов £1,352, . .. и над 171,172,173, . .. есть вектор а, набор формул функциональной зависимости  771=F(£1:¢§2s-~-)1 n2=F(£ls£29'°-)9 n3=F(£19£29--°)9°°'9  можно заменить на одну формулу такой же зависимости, отнесенную к вектору а:  °‘=Р(Ё1‚Ё2‚ - - - Напршиер, одной формулой ДАТА РОЖДЕНИЯ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) (5.6)  можно заменить три формулы, в которых левые части — разные компоненты вектора ДАТА РОЖДЕНИЯ, а правые части — все одинаковые, совпадающие с правой частью формулы (5.6). 5.2.4. Вектор дает возможность экономно записывать запросы. Если в объектах многих запросов встречается сочетание одних и тех же переменных, то уместно объя- вить это сочетание вектором c каким-то нашиенованием и впредь в объектах запросов записывать это наименование вектора. Например, вместо того, чтобы в объекте перво- го запроса (4.1) перечислять ДАТА РОЖДЕНИЯ. ГОД, ДАТА РОЖДЕНИЯ.ЧИСПО, ДАТА РОЖДЕНИЯ.МЕСЯЦ, можно, имея формулу вектора ДАТА РОЖДЕНИЯ (5.4), записать этот запрос короче:  ДАТА РОЖДЕНИЯ/ФАМИЛИЯ ИМЯ ОТЧЕСТВО = тантелеев дмитрий ильич '. 40 
5.2.5. Уникальность зависшиости можно получить, введя аргумент типа номер или любой другой аргумент, относительно которого есть уверенность в уникальности его значений. Возможный вариант здесь — векторный аргумент. Снова обратшися к при- мерам из ”анкеты”. Положим, что сочетание фамилии, mean И отчества неуникальным образом иден- тифицирует человека, а сочетание фамилии, шиени, отчества, года рождения, числа рождения и месяца рождения уникально идентифицирует человека. В таком случае, чтобы сделать одноключевые зависшиости анкеты уникальными, можно взять в ка- честве аргумента переменную (назовем ее ИДЕНТИФИКАТОР ЧЕЛОВЕКА), значения которой составляются из значений ФАМИЛИИ ИМЕНИ ОТЧЕСТВА, ДАТЫ РОЖ- ДЕНИЯ. ГОДА, ДАТЫ РОЖДЕНИЯ. ЧИСЛА, ДАТЫ РОЖДЕНИЯ. МЕСЯЦА. Введем новую векторную переменную: ИДЕНТИФИКАТОР ЧЕЛОВЕКА = V (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ДАТА РОЖДЕ- НИЯ. ГОД, ДАТА РОЖДЕНИЯ. ЧИСЛО, ДАТА РОЖДЕНИЯ. МЕСЯЦ)  и примем ее в качестве нового аргумента вместо старого ФАМИЛИЯ ИМЯ ОТЧЕСТ ВО. Объявление какой-то переменной аргументом всегда связано с тем, что ее значения располагаются в лексикографическом порядке. Значения векторного аргумента ИДЕНТИФИКАТОР ЧЕЛОВЕКА тоже будут упорядочены. Порядок будет повторять порядок следования ФАМИЛИЙ ИМЕН ОТЧЕСТВ с тем дополнением, что при рав- ных ФАМИЛИЯХ ИМЕНАХ ОТЧЕСТВАХ вперед будут поставлены значения ИДЕНТИ- ФИКАТОРА ЧЕЛОВЕКА с “меньшим” значением ДАТЫ РОЖДЕНИЯ. Итак, введение векторного аргумента обеспечивает желаемую уникальность зави- симостеи и оставляет неизменным состав переменных объекта. Можно было бы принять другое решение — объявить ИДЕНТИФИКАТОР ЧЕЛОВЕКА элементарным скаляром, как было сделано с ФАМИЛИЕИ ИМЕНЕМ ОТЧЕСТВОМ. Но как нет доступа отдельно к ФАМИЛИИ, отдельно к ИМЕНИ, отдельно к ОТЧЕСТВУ, так не было бы доступа к компонентам ИДЕНТИФИКАТОРА ЧЕЛОВЕКА. Отметши в заключение этого раздела, что компоненты: ФАМИЛИЯ ИМЯ ОТЧЕСТ- ВО, ДАТА РОЖДЕНИЯ. ГОД, ДАТА РОЖДЕНИЯ. ЧИСЛО, ДАТА РОЖДЕНИЯ. МЕСЯЦ после объявления ИДЕНТИФИКАТОРА ЧЕЛОВЕКА аргументом становятся его функ- циями. 5.2.6. ИДЕНТИФИКАТОР ЧЕЛОВЕКА объявлен векторным аргументом, а не элементарным скалярным; АДРЕС ВУЗА принят как элементарная скалярная переменная, и в п. 2.2 сказано, к каким последствиям это при- водит. Рассмотрим в общей постановке, какие решения возможны относи- тельно набора элементарных скалярных переменных. Если набор оставлен в исходном виде, то этим сохраняется доступ к каждой переменной и к любому их сочетанию. Если набор дополнен век- тором c исходными переменными В роли компонент, то таким решением сохраняется доступ к каждой переменной и к любому их сочетанию, а так- же обеспетшвается экономная запись запроса на все переменные сразу и экономная запись функциональной зависимости всех переменных. Третья возможность — объявить набор переменных элементарным скаляром. Новой переменной надо дать наименование ирпределить порядок, в кото- ром будут составляться значения новой переменной из значений старых переменных. Последнее решение исключает доступ K каждой перемен- ной по отдельности; остается только доступ K новой переменной. 5.3. Множественные векторные переменные. Правая часть отношения множественности и правые Части отношения вектор-компоненты не обя- зательно элементарные скалярные переменные, хотя в приводимых приме- рах ОНИ именно такие. ЭТО обстоятельство открывает ВОЗМОЖНОСТЬ КОНС- труирования сложных переменных, из которых выделим так называемые множественные векторные переменные.-  41 
' иваиов иван иваиович  5.3.1. Одиннаддатьтй и двенадцатый столбцы ”анкеты” объединяет за- головок РАБОТЫ; РАБОТЫ — пример множественной векторной перемен- ной в анкете. Каждому человеку присущ свой ”послужной список”, т.е. список пар: значение ГОДА ПОСТУПЛЕНИЯ на новое предприятие — значение соответ- ствующего НАИМЕНОВАНИЯ ПРЕДПРИЯТИЯ. Будем стштать каждый по- служной список значением информационной переменной РАБОТЫ; кон-  кретного человека будем идентифицшровать его ФАМИЛИЕЙ ИМЕНЕМ .  ОТЧЕСТВОМ. Отмеченное соответствие может быть зафиксировано как  ' фуъпсциональная зависимость переменной РАБОТЫ от аргумента ФАМИ-  ЛИЯ ИМЯ ОТЧЕСТВО. Табл..5.1 отражает эту зависимость. В правом столбце табл. 5.1 представлены значения переменной РАБОТЫ. Верхнее значение — множествеъшое, оно состоит из двух элементов? (1941, мвз) и (1949 зтм) (элементы обособлены круглыми скобками и разде- ляются между собой запятыми); нижнее значение — также множествен- ное, состоящее из трех элементов: (I935, лзмм), (1941, армия) и (1949, зтм); остальные значения — одноэлементные. Таким образом, переменная РАБОТЫ — множественная, а зависимость РАБОТ от ФАМИЛИИ ИМЕНИ ОТЧЕСТВА — многозначная:  РАБОТЫ = G (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) . (5.7)  В (5.7) записано, что обсуждаемая зависимость - многозначная уникаль- ная; последующие выкладки легко переносятся и на случай неуникальности. Как отмечалось в п. 2.3, порядок расположения элементов в множествен- ном значении не меняет значения. Применительно к переменной РАБОТЫ это означаетдчто, например, значение (1941, мвз), (1949, згм) и значение (1949, зтм) ‚ (1941‚' мвз) тождественны. Среди всех порядков удобно выб- рать такой, который облегчает‘ поисковые операции. Именно поэтому элементы значений переменной РАБОТЫ расположены в своих окнах по возрастанию ГОДА ПОСТУПЛЕНИЯ. РАБОТЫ, как всякая множественная переменная, имеет присоединен- ную переменную; назовем ее РАБОТА:  РАБОТЫ= w (PABOTA). (5.8)  Значениями новой переменной являются элементы значений переменной РА- БОТЫ: (1941, мвз), (1949, згм), (1976, згм), (1958, зтм), (1976, згм),  Таблица 5.1  Зависимость множественной векторной переменной РАБОТЫ от ФАМИЛИИ ИМЕ- НИ ОТЧЕСТВА '  ФАМИЛИЯ ИМЯ ОТЧЕСТВО РАБОТЫ  (1941, мвз) ‚ (1949, зтм)  пангелеев дмигрий ильич (1976, згм) петрова надежда петровна (1958‚ згм) семенова анна дмигриевна (1976, зтм) сидоров пегр иванович (1 935, лзмм) , (1941, армия), - (1 949, зтм)  42  и  ‘ La.  П М: .._шнп—цды._„.ьи—-ц——.‹ 
(1935, лзмм) ‚ (194]‚ армия), (1949, згм) . Значение переменной РАБОТА однозначно выделяется заданием значения ФАМИЛИИ ИМЕНИ ОТЧЕСТВА и значения ГОДА ПОСТУПЛЕНИЯ; следовательно:  РАБОТА = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, Г ОД ПОСТУПЛЕНИЯ). (5.9)  Каждое значение присоединенной переменной РАБОТА разложимо на два информационно разнородных значения: значение ГОДА ПОСТУПЛЕ- НИЯ и значение НАИМЕНОВАНИЕ ПРЕШТРИЯТИЯ; следовательно, РА- БОТА есть вектор:  РАБОТА = г/(год поступлвния, HA1/IMEHOBAI-II/IE ПРЕДПРИЯТИЯ). ’ ’ (5.10)  Формулы (5.8), (5 .10) объясняют термин ”множественная векторная пе- ременная”: РАБОТЫ есть множественная перемеъшая по отношеъшю к сво- ей присоединенной переменной РАБОТА, которая, в свою очередь, есть векторная переменная по отношению к своим коштонентам ‘F ОД ПОСТУП- ЛЕНИЯ и НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ; или: РАБОТЫ есть множест- венная векторная переменная по отношеъшю к переменным ГОД ПОСТУП- ЛЕНИЯ, HA1/IMEHOBAHI/IE ПРЕДПРИЯТИЯ. 5.3.2. За отправной пункт формального определения множественной векторной пе- ременной ВОЗЬМЗМ ДВУХКЛЮЧОВУЮ ЗЗВИСИМОСГЬ ' 7112 = F651 :32)-  Две переменные из этой зависимости 5, И n,, соединим в вектор; обозначим его через oz,,:  oz,, = V(5,,n,,). ~ (5.11)  Каждой паре значений аргументов 5,, г, соответствует одно значение зависимой пе- ременной п„ и, следовательно, одно значение вектора a,,:  an =F($;.E¢). (5-12)  Зафиксируем теперь аргумент 5,, а аргументу 5, предоставим возможность пробе- гать все значения из множества определения функции п, , = F (5, , 5,) при данном зна- чении 5, . Тогда вектор a,, будет иметь столько значений, сколько элементов в мно- жестве определения при данном 5 .Пример:пусть при 5, = 5, множество определе- ния состоит из двух пар: 5, 1 , г? и sf‘), 5,0’ ; зависимая переменная п„ принимает на этих парах значения: n,(}’l)n инд); тогда вектор а„ при 5, = 5,“) имеет два _ 1 1 1 2 1 2 таких значения. (5,( ),n,(,’ )) И (5,( ), ль’ )).  Введем новую переменную ф„ которую определим следующим образом: при кажг дом 5 , значение ф, составляется из всех значений вектора а, , , имеющихся при этом 5,.  ,1 Продолжение примера: при 5, = 5,0) переменная ф, принимает значение (5 ‚(п ‚ ан ))‚  (E ‚(ю , 118 ’2)). Новая переменная ф, — множественная; она относится к‘, вектору а, , так, как множественная переменная относится к своей присоединенной: ф, = W(oz,,); (5.13) новая переменная — многозначная функция аргумента 5, : ш, = Gcm. ° (5.14)  Переменная ф, по отношениюж 5,, 'n,,_ выступает как множественная векторная переменная. Если теперь ‚в формулы (5.12)— (5.14) подставить ФАМИЛИЮ ИМЯ ОТЧЕСТВО вместо 5,, ГОД ПОСТУПЛЕНИЯ вместо 5,, НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ вместо п„‚ РАБОТА вместо a,, И РАБОТЫ вместо ‘J/..T0 II0IIY‘laTc5I формулы  43 
(5.8) — (5.1О)‚ правда записанные в обратном порядке. Формулы (5.8) — (5.1О) опре- деляют множественную векторную переменную на пути расщепления, а (5.12) — (5.14) — на пути сборки. 5.3.3. Продолжим путь сборки. Переменную ф, (РАБОТЫ), а также переменные г, (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) , п, (ПОЛ), а, (ДАТА РОЖДЕНИЯ), п, (ОБРАЗО- ВАНИЕ) и 17,3 (ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ) соединим в вектор с обозна- чением х, :  X1 =V($1.n1,0t1.n5,\P1,m3)- (5~15)  B этом векторе собраны только те переменные ”анкеты”, которые определены для сотрУдНиков без высшего образования; вектор умесгноназвать СОКРАЩЕННАЯ АНКЕТА. Вектор х, принимает следующие пять значений:  х?) = (иванов иван иванович, муж, 1927, 27, дек, среднее [(1941, мвз) , (1949, зтм) ], [медаль ”за трудовое отличие”, орден ”знак почета”]);  X?) = (пантелеев дмитрий ильич, муж, 1959, 28, февр, незакон высшее, [(1976‚ зтм) 1. luerl);  x?) = (петрова надежда петровна, жен, 1934, 15, май, высшее, [ (1958, зтм) ],  [иет1); х?) = (семенова анна дмитриевна, жен, 1950, 21, апр, высшее, [(1976‚ зтм) ], [нет 1); XS” = (сидоров петр иванович, муж, 1914, 1 7, июль, высшее, [ (1935, лзмм) ‚ (1941, армия), (1949, зтм) ]‚ [медаль ”3a отвагу”, орден красной звезды, орден красного знамени ]). (5 16) Значения векторов в записях (5.16) обособлены круглыми скобками, значения мно- жесгвенньпх переменных — квадратными, значение от значения отделено запятой.  Каждое значение вектора х, выделяется значением аргумента г, . Некоторые ком- поненты многозначным образом зависят от 15,. Поэтому будем считать, что вектор х, есть многозначная функция г, :  х, =С'(Е‚). (5.17)  Введем переменную ф, (СОКРАЩЕННЫЕ АНКЕТЫ), единственное значение кото- рой составлено из всех значений вектора х, . Отношение между ф, и х, — это отно- шение множественности:  Фе = W(X1 )3 . . сама переменная есть совокупность (см. п. 3.6) : ф, = ARRAY; (5.19)  no отношению к $1, п, , а, , 115, ф, , т, переменная who —- множественная векторная переменная. 5.3.4. Множественные векторные переменные принадлежат к сложным типам переменных. Они заслуживают выделения, по крайней мере, в свя- зи c двумя обстоятельствами: во-первых, множественными векторными пе- ременными идентифицируются таблицы и, во-вторых, переменные этого типа играют особую роль в ИНЭС-представлениях информационных объек- тов. Что касается второго обстоятельства, то оно будет предметом рассмот- рения гл. 3; утверждение насчет идентификашш таблиц можно оправдать следующими примерами.  Множественная векторная переменная РАБОТЫ определяет подтаблицы в табл. 1.1. Каждое заданное значение ФАМИЛИИ ИМЕНИ ОТЧЕСТВА выделяет зна- чение переменной РАБОТЫ, которое представимо в виде таблицы со столбцами ГОД ПОСТУПЛЕНИЯ, НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ, причем первая переменная в этой паре — аргумент. Множественная векторная переменная СОКРАЩЕННЫЕ АНКЕ-  44 
ТЫ также представима в виде таблицы; если из табл. 1.1 исключить столбцы от шесто- го до десятого, то получится таблица, представляющая СОКРАЩЕННЫЕ АНКЕТЫ. Характерной особенностью множественной векторной переменной является то, что среди компонент векторной переменной, присоединенной к множественной век- торной переменной, присутствует аргумент, от которого зависят все прочие перемен- нью-компоненты и который принимает все возможные для него значения. Назовем такой аргумент свертывающим аргументом. Подобно векторам множественные векторные переменные могут использоваться для краткой записи запроса. Если, скажем, запрацшвается послужной список иванова ивана ивановича и в описании информационного объекта дано определение множест- венной векторной переменной РАБОТЫ — (5.8) — `(5.1О), то обсуждаемый запрос записывается в следующем кратком виде:  РАБОТЫ/ФАМИЛИЯ имя ОТЧЕСТВО = ’иванов иван иваиовичд 5.4. Составные функциональные зависимости и составные переменные. Математическая фуъпсция может задаваться и таким образом: она равняет- ся одному аналитическому выражению, когда значения аргументов при- надлежат первой подобласти определения, она равняется другому аналити- ческому выражеъшю, когда значения аргументов — во второй подобласти определения, третьему аналитическому выражению — в следующей под- области и т.д. Функциональные зависимости такого рода называют состав- ныыш, а зависимые переменные, имеющие составные аналитические выра- жения, — составными переменными. В настоящем пункте речь будет идти о составных информационных переменных. ` 5.4.1. Начнем c общего определения составной информационный перс меннои: -- ———-- -" ""  n ;—' U(e/12921 32(1)’, 7/129?; ‚от °, . ); ( 20)  символ 92 B (5.20) заменяет какой-нибудь из шести злаков отношения:  1  (5.21)  за Н %АУУ%н  Формула (5.20) читается так: переменная п совпадает с переменной е, когда переменная и находится в заданном отношеншт со своим первым значением и (1) ; переменная п совпадает c ‘у, когда и нахошатся в заданном отношенша со своим вторым значением и (2) и т.д. Переменная и называ- ется индикаторной переменной; ее отношения с ее значениями выделяют совокупность значений аргументов, на которых сохраняется совпадение составной переменной п c какой-либо из ее составляющих: е, ‘у, .  Пусть переменные е, 7, . . . , и есть однозначные уникальные функшш своих аргументов: ' e=F(£,x,. ..), 'y=F(.§,x-,. ..),. ..,v=F(§,x,...) и пусть значения ‘um , 12(2),. . . и знаки отношений sn,, SR2, . . . выбраны так,что выделяемые соотношениями vSR1v(1), ращу 2 , . . . совокупности  значений аргументов не имеют пересечений; тогда составная переменная п будеттакже однозначной уникальной функцией того же набора аргумен- тов, что H ее составляющие (п = 1705, х, . . .)). Если выделяемые совокуп- 45 
ности значений аргументов имеют пересечеъшя, то составная переменная уже не будет уникальной однознаъшой функцией даже при однозначных уникальных ФУНКПИях-составляюцлах. В качестве составляющих переменных е, ‘у, . . . могут выступать элемен- тарные скалярные, множественные, векторные, множественные вектор- ные — одним словом, любые переменные, являюцшеся однозначными: или многозначными, уникальными или неуникальньшш фушщияьш своих ар- гументов. индикаторную переменную для простоты дела разумно выби- рать из числа элементарных скалярных переменных, однозначно завися- щих от своих аргументов.  5.4.2. Тот факт, что информационная функция не определена при каких-то значе- ниях аргумента, выражается в ”анкете” двумя способами: либо ничего не пишется (сотрудник, не имеющий высшего образования, пропускает столбцы 6-10, объединен- ные заголовком СВЕДЕНИЯ О ВУЗЕ), либо пишется слово нет. Про последний спо- соб уже говорилось B п. 3.3, что функция ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ = G (ФАМИЛИЯ „ИМЯ ОТЧЕСТВО) на совокупности значений аргумента, где первона- чально она не определена, искусственно доопределяется значением нет. Что касает- ся переменных, входящих в вектор СВЕДЕНИЯ О ВУЗЕ, то они не доопределялись умьшшенно, чтобы иллюстрировать специальный тип переменных’ - составные пе- ременные. = Допустим, ‚что изначально было два вида ”анкет”._ Первый вид содержал четыр- надцать столбцов (О -:-13 B табл. 1.1) и предназначался для тех сотрудников, кото- рые имеют высшее образование. Второй вид ”анкет” включал только девять столб- цов (0—:~5, 11 +_l3 ИЗ табл. 1.1), его заполняли те сотрудники, которые не имели высшего образования. Отметим, что в столбце 5. ОБРАЗОВАНИЕ ”длинных анкет” обязательно должно было стоять значение высшее, а в таком же столбце ”коротких анкет” значение высшее, напротив, стоять не могло. А теперь объединим первые и вторые ”анкеты” в одном информационном объекте. Как описать совмещенный объект, объединяющий в себе два объекта c различающимися ‘составами перемен- ньтх? В ”длинной анкете” имеются пять переменных пб -2-111°, которых нет в ”короткой анкете” и которые объединены вектором СВЕДЕНИЯ О ВУЗЕ. Введем в ”короткую анкету” дополнительную переменную с наименованием ОТСУТСТВИЕ СВЕДЕНИЙ и прштишем ей следующий смысл: это — переменная, не имеющая ни одного значе- ния; переменные данного типа будем называть тривиальньпии. Новая ”короткая анкета” и ”длинная анкета” приобрели симметричный вид: у них есть общие девять переменных: 5,, n, -I-17,, д, nu, 17,3, атакже еще по одной переменной: векторная переменная СВЕДЕНИЯ О ВУЗЕ в ”длинной анкете” и тривиальная переменная ОТ- СУТСТВИЕ СВЕДЕНИЙ в ”короткой анкете”. ‘Объединенная анкета” содержит девять общих переменных, а также еще состав- ную переменную, которой присвоено наименование СВЕДЕНИЯ О ВЫСШЕМ ОБ- РАЗОВАНИИ. Эта последняя имеет две составляющие переменные: СВЕДЕНИЯ О ВУЗЕ и ОТСУТСТВИЕ СВЕДЕНИЙ; они входят в анкету не вместе, а либо одна, ли- бо другая, чем отражается тот факт, что каждый человек может либо иметь высшее образование и тогда характеризоваться СВЕДЕНИЯМИ О ВУЗЕ, либо не иметь его и тогда характеризоваться ОТСУТСТВИЕМ СВЕДЕНИЙ. По правилам (5.2О), (5,21) состав только что введенной составной переменной выражается следующей формулой:  СВЕДЕНИЯ О ВЫСШЕМ ОБРАЗОВАНИИ = U (ОТСУТСТВИЕ СВЕДЕНИЙ] ФАМИЛИЯ ИМЯ ОТЧЕСТВО = ‘иваиов иван иванович, паителеев дмитрий ильич’, СВЕДЕНИЯ О ВУЗЕ/ФАМИЛИЯ ИМЯ ОТЧЕСТВО = ‘петрова надежда петровна, семенова аина дмигриевна, сидоров пегр иваиович’). (5.22)  Вместе с наименованиями составляющих в (5.22) фш°урируют также условия. переключения с одной ясоставляющей: на другую. В роли индикаторной переменной здесь выступает аргумент ФАМИЛИЯ ИМЯ ОТЧЕСТВО, а значения и 0),- и, 2), . . . суть совокупности значений аргумента. Тот же состав переменной СВЕДЕНИЯ О ВЫС- ШЕМ ОБРАЗОВАНИИ может быть описан короче, если воспользоваться"другой инди- каторной переменной — ОБРАЗОВАНИЕ: 46  ....._..~.. а  чди ‚вид-ми..- 
СВЕДЕНИЯ О ВЫСШЕМ ОБРАЗОВАНИИ = U (ОТСУТСТВИЕ СВЕДЕНИЙ/ОБРАЗО- .  BAH]/IE # ’высшее’‚СВЕДЕНИЯ о ВУЗЕ/ОБРАЗОВАНИЕ = ’вь:сшее’). (3.23)  Формулы (5.22) и (5.23) эквивалентны, потому что первое и второе условия из (5.23) вьшолняются как раз на тех совокуштостях значений аргумента, которые фи- гурируют в первом и втором условиях (5.22) . 5.4.3. Составная переменная, как и всякая информационная переменная, характе- ризуется своими значениями. Значения переменной СВЕДЕНИЯ 0 ВЫСШЕМ ОБРА- ЗОВАНИИ таковы: (не определено), (не определено), (митхт, 1958, 11, февр, москва, г-417 м пиро- говская 1), (лпи, 1975, 20, май, ленинград к-251 политехническая 29), (лпи, 1950, 22, май, ленинград к-251 пол нтехническая 29)  Первые два значения в (5.24) суть значения тривиальной переменной ОТСУТСТВИЕ СВЕДЕНИЙ, остальные — значения вектора СВЕДЕНИЯ О ВУЗЕ. Если вектор СВЕДЕНИЯ О ВУЗЕ уникально зависит от ФАМИЛИИ ИМЕНИ ОТ- ЧЕСТВА, то зависимость составной переменной СВЕДЕНИЯ О ВЫСШЕМ ОБРАЗОВА- НИИ от того же аргумента также уникальная; в противном случае она неуникальная.  5.4.4. В п. 3.1 и далее ”анкета” рассматривалась как единый информа- ционный объект, в котором пять зависимостей бьши объявлены опреде- ценными не при всех значениях аргумента. В настоящем пуъпсте ”анкета” представлена как объединение ”короткой” и ”длинной” ашсет, в которых уже все зависимости считаются определенными: при всех значеъшях аргу- мента. Изображение ”анкеты” в виде табл. 1.1 с пробелами в некоторых ок- нах действительно для первой трактовки, но не для второй. Вообще, ‘составная переменная есть ‘средство выражения альтернатив- ности. В предыдущих двух разделах настоящего пуьпста обсуждалось част- ное применение этого средства для объединения в одном объекте несколь- ких объектов, которые имеют близкие составы переменных. Совпадаю- щие переменные объединяемых объектов без трансформаций переносят- ся в объединение, а расходящиеся собираются в составную переменную. Иногда (как это имеет место в ”анкете”) один из объединяемых объек- тов является частью другого; тогда к нему добавляется тривиальная пере- менная, которая фигурирует в качестве составляющей составной перемен- ной. Если бы все переменные объединяемых объектов бьши определены на одной и той же совокупности значений аргументов, то состав перемен- ных не менялся бы при движении по совокупности значений аргументов, не возникла бы альтернативность и не нужна бьша бы составная перемен- ная. Так что составная переменная в обсуждаемом применении есть сред- ство отражения альтернативности состава переменных, которая есть след- crane того‚что какие-то зависимые переменные определены не на всей со- вокупности значений аргументов, а только на ее части.  § 6. Язык описаъшя информационных объектов  В настоящем параграфе, излагается вариант формализованного языка описания информационных объектов, рассчитанный на применение в СУБД. Основные понятия этого языка были введены и подробно иллюстрированы примерами в предЫдУЩих пяти параграфах. Вообще, изложение языков, ориентированных на непосредственное применение в СУБД, не является задачей этой книги; ‘здесь обсуждаются в основном теоретиче- ские основания таких языков. Однако собранные воедино формулы описания дают цельное представление об обсуждаемом арсенале средств. 6.1. Таблица. В табл. 6.1 собраны формулы описания информационных объектов. При чтении ее надо иметь в Bull)’. что  47 
Таблица 6.1 Формулы описания информационных объектов  Название фор-  48  мулы Вид формулы Примеры Примечания 1. формула CONST ПОЛ =J (ФАМИЛИЯ CONST — постоянная функционапь- ARRAY ИМЯ ОТЧЕСТВО); ARRAY —COB0 КУПНОСТЬ ной зависимос- _ F(£, x, . . .) НАИМЕНОВАНИЕ F — уник. однозн. ‘Ш п °' G(£, х, . . .) ПРЕДПРИЯТИЯ= G — уник. многозн. 1 (г, x, . . .) J (ФАМИЛИЯ ИМЯ 1 — неуник. однозн. J(£, x, . . .) ОТЧЕСТВО, ГОД J — неуник. многозн. ПОСТУПЛЕНИЯ); ПРАВИТЕЛЬ- СТВЕННЫЕ НАГРАДЫ = J (ФАМИ- ЛИЯ ИМЯ ОТЧЕСТВО) 2. формула п = W(n' In, , n,) ПРАВИТЕЛЬСТВЕН- п‚, п, — мин. и макс. множеств енно- """^"’ НЫЕ НАГРАДЫ= число элементов сти = W (ПРАВИТЕЛЬ- СТВЕННАЯ НАГ- РАДА | 0.50) 3. формула а = У(п, ‚ п, ‚ n3, . . .) ДАТА= V (ГОД, ЧИСЛО, вектора МЕСЯЦ) 4. формула п = U(e/IISR, и“), сввдвния о выс- = состава ‚у/„дд „(21 ) ШЕМ ОБРАЗОВАНИИ = # составной 2 , . . . = U (ОТСУТСТВИЕ СВЕ- т = > переменной ДЕНИЙ/ОБРАЗОВА- 2 НИЕ #’высшее' , СВЕДЕ- < НИЯ О ВУЗЕ/ОБРАЗО- g ВАНИЕ= ’высшее’) 5. формула 'INT ‘ 1‘0I1=S(DEC I 4.4 I In,, n, I — мин. и макс. свойств DEC ( 1910, 1930)); число символов значений REAL пол = S (TEXT <_n_, n)— МИН. и макс. элементар- ‘п =S(‘ LOG * I п, ‚ п, | ‚МУЖ, ЖЕН’) ; 0TCyT- значение числовой НОЙ скаляр‘ TEXT СТВИЕ СВЕДЕНИЙ = переменной ной пере- VOC = S(TRIV) 37(1), n(2 ), _ _ _› __ Ментй TRIV I полный список й (Е, б) т“), пр)’ . _ . ‚) значений переменно 6. формула а = 1‚(В) ДАТА ОКОНЧАНИЯ подобия ВУЗА = L (ДАТА РОЖ‘ ПЕНИЯ) 7. формула oz = ”В” ФАМИЛИЯ ИМЯ обозначения oz.'y = ”B” ОТЧЕСТВО = ”ФИО”; ДАТА РОЖДЕНИЯ. = „ДРГМ  ——.-gj-‘.4-.-,u-~..,_..‘,_._._...—..._.--..-.—...~.:-.a .——._..Qf—— ——-----fig-‘ u...-—-— ~—v— "W 
- волнистыми линиями подчеркнуты необязательные части формул: — в фигурные скобки заключены вариантные части формул: — многоточия заменяют подобные части формул; — греческие буквы в формулах — это наименования или значения переменных; значение выделяется тем, что у буквы в позиции верхнего индекса имеются круглые скобки с числом, показывающим номер значения; — латинскими строчными буквами п обозначаются числа. 6.2. Известные формулы. Первые четыре формулы из табл. 6.1 уже обсуждались в предьщуших параграфах. Первая формула табл. 6.1 повторяет (3.12) . Вторая форму- ла почти совпадает с (5.1); новая часть — это два числа, записываемых после верти- кальной черты: число, которое не больше (п‚), и число, которое не меньше (пд) числа элементов в любом множественном значении множественной переменной: новая часть необязательна. Третья и четвертая формулы табл. 6.1 повторяют соответ- ственно (5.3) и (5.2О). 6.3. Свойства значений элементарных скалярных переменных. Интерес представ- ляют свойства значений всяких переменных: элементарных скалярных, множествен- ных, векторных и прочих сложных, которые составляют информационный объект. Но описывать проще значения именно элементарных скалярных переменных, так как только они неразложимы. Выход в том, что цепочкой отношений можно выразить любую сложную переменную через элементарные скалярные переменные, на которые она в конечном счете разлагается. Имея с одной стороны цепочку отношений, а с другой стороны описание свойств значений элементарных скалярных переменных, можно сделать заключение о свойствах значений сложных переменных, выражаемых через элементарные скалярные переменные. Эти соображения оправдывают название настоящего пункта. 6.3.1. Формула свойств значений элементарной скалярной переменной фигурирует под номером 5 в табл. 6.1. Левую частъ формулы занимает наименование описываемой переменной, затем знак равенства, буква S и в круглых скобках четыре указания: первое определяет формат представления значений, второе — минимальное и макси- мальное число символов, которым могут отображаться значения описываемой пере- менной, третье -- нижняя и верхняя граница значений числовой переменной, четвер- тое — полный перечень значений. Напомним, что значения в памяти ЭВМ хранятся в виде последовательностей нулей и единиц и что формат представления — это способ образования таких последователь- ностей; выбор формата определяется типом значения и типом операции над значения- ми эггого типа. В последующих разделах этого пункта описываются способы изображе- ния на бумаге выделенных типов значений и варианты форматов их представления в памяти ЭВМ. Выделены следующие шесть типов значений: — числовые целые значения; — числовые действительные значения; — логические значения; — текстовые значения; ‘— словарные значения; — тривиальные значения. Второе указаъше в формуле свойств значений относится к длине значения: п„ п, — миъшмальное и максимальное числа символов, которыми отображаются значения описываемой переменной в избранном формате. Третья запись делается только для числовых или логических значений: п — число, которое не больше, и ‘й — число, которое не меньше любого числа, являюшегбся значением описываемой переменной. Четвертое указаъше в формуле -- полный перечень значений описываемой элементарной скаляр- ной переменной. Если перечень входит в формулу, то второе и третье указания, хотя и могут быть в формуле, но, являясь следствием перечня, становятся ненужными. Первое указание в формуле свойств значений — обязательное; второе, третье и четвертое — необязательные. Если они опускаются, то вместе с ними из формулы уходят окружающие их символы: две прямые линии, или две угловые скобки, или два апострофа. Последние три указания, когда они присутствуют в формуле, исполь- зуются для контроля значений в момент их загрузки в память ЭВМ, а также для разметки документа, в который выводятся значения. 6.3.2. Пример числового значения: 1927. изображающие символы суть цифры: 0,1, . . . . 9, знак ”—  4. Ю.Н. Иванов 49  ”, а также знак ”+”, который можно опустить. Целые числа могут ‘ 
храниться в памяти ЭВМ либо в двоичном виде, и c ними тогда работают команды  двоичной целой арифметики, либо в десятичном виде, и арифметические действия над ними вьшолняют команды десятичной целой арифметики. Первый вариант соответствует формату ШТв формуле 5 табл. 6.1, второй — DEC. Если над значениями не предполагается производить каких-либо арифметических операций, а предполагается обработку ограничить операциями сравнения и выводом на печать или на экран видеотерминала, то целесообразен формат 1)ЕС.Он продолжает оставаться целесообразным и при небольшом числе арифметических операций. И толь- ко если арифметическая обработка значительна, то следует избрать формат INT; он порождает трудоемкую операцию перевода 10 —› 2 и трудоемкую операцию обратного перевода 2 —› 10, но зато открывается возможность применения операций двоичной целой арифметики, которые менее трудоемки, чем операции десятичной целой ариф- метики. Значения в INT и DEC, будучи выведенными на печать или на экран видеотермина- ла, изображаются как целые числа, занимающие наименьшую вмещающую длину. 6.3.3. Примеры действительных числовых значений: —0.0442525, —.442525 Е-1, 1927. Общий вид действительного числа с обязательной целой частъю таков:  знак Целая дробная знак . абсолютная величина числа часть . часть Е порядка порядка : (6.1) vv\ с обязательной дробной частью таков: знак целая дробная знак абсолютная величина числа часть часть Е порядка порядка (6.2)  J-saxlsrvvs  Целая часть, дробная часть и абсолютная величина порядка изображаются Целыми числами без знаков; знак числа и знак порядка изображаются символами "+” или ”—”: символ ”+” может быть опущен и в знаке числа, и в знаке порядка. Волнистыми линиями в формулах (6.1), (6.2) подчеркнуто то, что в конкретных случаях может и не присутствовать. Скажем, знак числа может быть опущен, и тогда число считается положительным. Обязательным впервой формуле (как это заявлено над ней) являет- ся целое число. изображающее целую часть. Затем может следовать, а может и не следовать дробная часть с десятичной точкой перед ней. После дробной части может либо быть, либо не быть изображение порядка; это — буква Е, знак порядка (который опять-таки либо изображается символами ”+” или ”—”, либо опускается, и тогда знак порядка считается ”+”) И. наконец, абсолютная величина порядка, которая изобра- жается целым числом. В формуле (6.2) обязательной является дробная часть Над действительным числом, введенным в память ЭВМ, могут совершаться арифме- тические операции; при этом оно должно быть представлено в двоичном формате и тогда следует указать формат REAL. Если над действительным числом не предпола- гается производить никаких операций, кроме операции сравнения c последующим BLI- водом на печать или на экран видеотерминала, то следует в позиции типа значения ука- зать ТЕХТ, что избавляет от трудоемких операций перевода 10 -> 2 и 2 ->10. Формат печати действительного числового значения — это число позиций до десятич- ной точки, число позиций после десятичной точки и число позиций на указание поряд- ка. Если в формуле свойств значений нет границ значений и нет перечня значений, то действительное числовое значение выдается на печать в нормализованном формате:  1 .| мантисса | Е 2 [порядок |; (6.3)  всему значению отводится двенадцать позиций, из них мантиссе -- шесть позиций и порядку — две позиции. Когда дается полный перечень значений, то на печать значения выдаются в том виде, в каком они фигурируют в перечне. Наконец, в отсутствие перечня и при наличии границ формат печати вырабатывается следующим образом. Пусть границы д и 7n’ заданы в разных форматах:  n=i|+—5—>|.|+—§—>|E:g,fi=:I+-7z—»|.|<—7\—>IE:1T, (6.4)  д, 72 — числа позиций до десятичной точки нижней и верхней границ, A A — числа пози-  ций после десятичной точки, 1,7: - порядки. Каждое выводимое число сравнивается с нижней и верхней границами и ему приписывается формат печати той границы, к  50  .‘,),_,_[ _a-$\.n.-- ‚на  Qjs. 
которой оно ближе. Чтобы все действительные значения какой-то переменной выдава- лисьв одном и том же формате, следует обе границы задатьв одном и том жеформате. . Три дополнительных замечания. 1) Если порядок граничного значеъшя — 1,? нулевой, то нуль вместе с буквой-Е можно опустить; выводимые в°зггом формате значения также не будут иметь буквы Е и порядка. 2) Если число позиций, отведенных для целой части —— Е, Е, превышает число цифр в целой части выводимого значения, то избыточные позиции оставляются слева от целой части и не заполняются. __ 3) Если число позиций, отведенных для дробной части — 7_\,)\, превышает число цифр в дробной части выводимого значения, то избыточные позиции оставляются справа от дробной части и заполняются нулями. Последним примером среди действительных числовых значений, выписанных в начале данного раздела, фигурирует целое число 1927. Не вдаваясь в подробности, отметим, что задавать целое число в формате REAL невьподно, ибо тогда оно зани- мает больше места в памяти. к ' 6.3.4. Примеры логических значений: 11011,1В. Логические значения представля- ются в ДВУХ форматах: в двоичном (О, 1) или в шестнадцатиричном (О -:-9, A, B, С, D, E, F). B любом случае первая позиция формулы свойств значений должна быть занята указанием DOG, a двоичный или шестнаддцатиричный варианты форматов представления определяются так. Если во второй, третьей или четвертой позициях формулы свойств значений фигурируют значения, состоящие только из нулей и ema- ниц, то вводить логические значения следует в двоичном формате и выводиться они будут также в двоичном формате. В отсутствие указаний или в том случае, когда граничные значения или значеъшя из перечня состоят не только из нулей и единиц, формат логических значений шестнадцатиричный. Граничные логические значения используются, как и в случаях DEC, INT И REAL, для разметки выходных документов и контроля. В момент контроля граничные логические значения и контролируемое логическое значеъше воспринимаются как целые числа. _ Над логическими значениями допускаются поразрядные булевские операции. 6.3.5. Примерытекстовых значений: москва г-417 м пироговская 21, 11011,1В, —О,0442525, —.442525 Е—1, 1927. Этот ттш значений изображается всеми доступными символами: буквами русского и латинского алфавита, цифрами, знаками препинания и прочими символами. (Два отклонения от общепринятого правописания. В четвертой позиции формулы свойств значеъшй апостроф выступает как ограничитель значений, а запятая‘ — как разделитель значеъшй. Чтобы отличать апостроф-ограничитель от апострофа-члена значения и запятую-разделитель от запятой-члена значения, предлага- ется писать сдвоенный апостроф и сдвоенную запятую, когда они — члены значения). Текстовые значения отмечаются форматом ТЕХТ в первой позиции формулы свойств значеъшй. Если над числовыми значениями не предполагается производить арифметические операции, то для них можно определить формат ТЕХТ. В том же формате ТЕХТ можно держать и логические значения, если они не будут обрабатываться булевскими опера- циями. DEC, INT, REAL, LOG выступают как частные форматы по отношению к ТЕХТ. Однако из этого не следует, что если над значеъшями не предполагается производить специализированных операций, то им надо назначать формат ТЕХТ. Такое назначение невьподно, хотя с формальной стороны не ошибочно ‘-3 формате ТЕХТ числовые и логические значеъшя занимают больше места, Hemp своих специализированных фор- матах. Относительно текстовых значений определены операции ввода и вывода, а также группа операций соединения текстов, выделения заданной части текста и, вообще, операций типа редактирования. ' Текстовые значения выводятся в зарезервированное для них число позиций, равное верхней границе длин значений; свободные позиции оставляются слева от выводимого значения. n , ‘ 6.3.6. Формат VOC предназначен для сжатия основного хранилища значений — базы данных. Если какую-то переменную в ее формуле свойств значений снабдить указани- ем VOC, то произойдет следующее. ~ — _ › т ' . „  4* 51 
Значения этой переменной при вводе будут направлятьсяне в базу данных, а в так  . называемую словарную базу (VOC от vocabulary - словарь); в базу данных будут  загружаться короткие цифры, автоматически вычисленные словарной системой. В ре- зультате объем базы будет меньше, чем в случае отсутствия словаря (этот эффект называют ”сжатие базы”), а если одни и те же‚‚значения многократно всгретаются в объекте, то применение словаря может давать экономию и суммарного объема -— объема базы данных плюс объем словарной базы. Правда, каждая выборка значеъшя переменной, снабженной указанием VOC, сопровождается обращением к словарной базе, что связано с временными затратами. Форматом VOC уместно пользоваться по отношению к переменным, редко фигурирующим в запросах и имеющие длинные значения — этим уменьшается объем базы данныхи ускоряются поисковые операции относительно всех переменных, за исключением переменных c форматом VOC. Второе, третье и четвертое указания в формуле свойств значеъшй при формате VOC такие же, как и при формате ТЕХТ. Правила вывода и операции над значениями при формате‘ VOC также совпадают c правилами вывода и операциями при формате ТЕХТ. Напомним, что форматом ТЕХТ (и, следовательно, форматом VOC) могут снабжаться все типы значений переменных: числовые целые, числовые действителытые, логические и текстовые значения. 6.3.7. Тривиальная переменная не имеет значений. В формуле свойств для нее присутствует одно указание TRIV и более никаких указаъшй нет. 6.3.8. Заключим этот пункт примерам»: формулы свойств значений. Отметим еще раз, что формула приложима только к элементарным скалярным переменным: ФАМИЛИЯ ИМЯ ОТЧЕСТРО = S(TEXT I 5,50 I); ПОЛ =S(TEXT ’МУЖ, ЖЕН’); ДАТА РОЖДЕНИЯ. ГОД= S(INT| 4,4 I < 1910, 1985 ›); ДАТА РОЖДЕЪШЯ. ЧИСЛО = S(DEC I 1,2 I < 1,31 )); ДАТА РОЖДЕНИЯ. МЕСЯЦ == S (ТЕХТ! 3,7 I )3 ДАТА ОКОНЧАНИЯ ВУЗА. ГОД = S(INT I 4,4 I < 1910, 1985)); ДАТА ОКОНЧАНИЯВУЗА. ЧИСЛО = S (DEC I 1.2 I < 1,31 >); ДАТА ОКОНЧАНИЯ ВУЗА. МЕСЯЦ = S (TEXT I 3.7 I); АДРЕС ВУЗА =S(VOC I 20,50 I); ОТСУТСТВИЕ СВЕДЕНИЙ = S (TRIV). (6.5) B (6.5) фигурируют переменные ”анкеты”. Тривиальная переменная ОТСУТСТВИЕ СВЕДЕНИЙ была введена в п. 5.4. Относительно переменной ДАТА РОЖДЕНИЯ. ГОД предполагается, что ее значения будут’ многократно участвовать в арифметических операциях, поэтому для нее избран формат INT (см. п. 6.3.2). Напротив; для перемен- ной ДАТА РОЖДЕНИЯ. ЧИСЛО не планируется арифметическая обработка, поэтому ее формат представления — DEC._ Чтобы сжать базу значений, для переменной с плин- ными значениями АДРЕС ВУЗА определен формат VOC. Это назначение убыстряет поисковые операции относительно всех переменных ”анкеты”, кроме переменной АДРЕС ВУЗА, для которой поисковые операции удтшняются. 6.4. Формула подобия. Шестая и седьмая’ формулы табл. 6.1 относятся к вспомога- тельным. Они предназначены для сокращения текста описания информационного объекта. ~ B связи с формулой подобия вернемся к описанию свойств значений перемен- ных (6.5). Переменные ДАТА РОЖДЕНИЯ. ГОД и ДАТА ОКОНЧАНИЯ ВУЗА. ГОД имеют одинаковые формулы свойств значений. Это обстоятельство является основа- нием для того, чтобы заменить пару формул из ((5 .5) :  ДАТА РОЖДЕНИЯ. ГОД = S (INT I 4,4 I < 1910, 1985)); - ДАТА ОКОНЧАНИЯ ВУЗА. ГОД = S(INT | 4,4 | ( 1910, 1985)) на следующую пару формул: ДАТА РОЖДЕНИЯ. ГОД = S (INT | 4,4 H1910, 1985 › ); ДАТА ОКОНЧАНИЯ ВУЗА. ГОД =Ь (ДАТА РОЖДЕНИЯ: ГОД).  Вторая формула из последней пары есть формула подобия. Ее левую часть занимает подобная переменная, затем знак равенства, буква L И в круглых скобках —- так назы-  52  Jsaw днищ 
ваемая опорная переменная. Когда опорная и подобная переменные суть элементарные скалярные переменные, то формула подобия объявляет, что подобная переменная имеет ту же формулу свойств значений, что и опорная. Еще одно приложение формулы подобия связано свекторами. Поясним снова на примере из ”анкеты”. Два вектора из ”анкеты”: ДАТА РОЖДЕНИЯ и ДАТА ОКОН- ЧАНИЯ ВУЗА — имеют равные по наименованию и по информационному содержанию компоненты: ГОД, ЧИСЛО, МЕСЯЦ. Один из векторов можно не описывать, а всего лишь объявить подобным другому вектору; последний в этом случае выступает как опорный вектор:  ДАТА ОКОНЧАНИЯ ВУЗА = L (‚ДАТА РОЖДЕНИЯ). (6.6) Как и в предыдущем примере, левую часть формулы подобия занимает подобная, а правую — опорная переменные. Формулу подобия (6.6) следует воспринимать вместе со всеми формулами, относя- щимися к опорной переменной. В данном случае это формула состава вектора  ДАТА РОЖДЕНИЯ (см. (5.4)) и формулы свойств значений его компонент (см. (6.5)).  Формула (6.6) утверждает следующее. Во-первых, вектор ДАТА ОКОНЧАНИЯ ВУЗА имеет своими компонентами элементарные скалярные переменные ГОД, ЧИСЛО, МЕ- СЯЦ, подобно вектору ДАТА РОЖДЕНИЯ. Во-вторых, переменная ГОД, относящаяся к ДАТЕ ОКОНЧАНИЯ ВУЗА, характеризуется такой же формулой свойств значений, что и переменная ГОД, входящая в ДАТУ РОЖДЕНИЯ. Третье и четвертое следствия из (6.6) касаются подобий ЧИСЛА и ЧИСЛА, а также МЕСЯЦА и МЕСЯЦА. Итак, формула подобия (6.6) в рассматриваемом приложении заменяет такие четыре формулы: ДАТА ОКОНЧАНИЯ ВУЗА = V (ГОД, ЧИСЛО, МЕСЯЦ); ДАТА ОКОНЧАНИЯ  ВУЗА. ГОД = S (INT I 4,4 |( 1910, 1985 ) ); ДАТА ОКОНЧАНИЯ ВУЗА. ЧИСЛО = = S (DEC( 1,31 Н; ДАТА ОКОНЧАНИЯ ВУЗА. МЕСЯЦ = S (TEXT | 3,7 I ). (5-7)  Вообще, формулой подобия можно пользоваться либо по отношению к элементар- ным скалярным переменным, либо по отношению к векторам, компонентами кото- рых являются элементарные скалярные переменные. В первом случае на подобную переменную переносятся свойства значений опорной переменной. Во втором случае подобной переменной приписывается тот же состав компонент — элементарных ска- лярных переменных c теми же свойствами значений, что и у опорной переменной. Сделаем два замечания к данному выше определению подобия. 1) Опорная и по- добная переменные не обязаны быть функциями одного и того же состава аргументов. 2) Когда подобная и опорная переменные — векторы, то формула подобия отожде- ствляет наименования их компонент. Для выделения компоненты, принадлежащей какому-то одному вектору, ее наименование компонуется из наименования вектора и общего наименования компоненты, разделенных точкой, как это было принято в п. 3.1 гл. 1. Отметим, что формулу подобия можно было бы распространить на мно- жественные, множественные векторные, составные и другие более сложные перемен- ные, но для этого нужно было бы иметь правило выделения подчиненных переменных, как это было сделано для компонент вектора. 6.5. Формула обозначения. Если переменная имеет длинное наименование и в описании объекта она встречается не один раз, а несколько, то имеет смысл отож- дествить ее с другой переменной, имеющей короткое наименование, которой и поль- зоваться в описании. Например:  ФАМИЛИЯ ИМЯ ОТЧЕСТВО = ”ФИО”; ГОД ПОСТУПЛЕНИЯ = ”Г П”; ДАТА РОЖДЕНИЯ. ГОД = ”ДРГ”. (6.8)  Наименование обозначаемой переменной записывается в левой части формулы, затем знак равенства и взятое в кавычки обозначение — таков синтаксис формулы обозна- чения. Переменная может иметь несколько обозначений. 6.6. Синтаксис описания информационных объектов. В этом пункте даются фор- мальные правила соединения формул, описывающих отдельные черты и свойства ин- формационного объекта, в единое описание информационного объекта.  53 
1° . Признак начала описания — слово INF, за которым после знака равенства следует наименование информационного объекта и точка c запятой. 2° . Формулы в описании разделяются точкой с запятой.  -3° . B подряд идущих формулах, относящихся к одной описываемой переменной, '  можно не повторять наименование этой‘ переменной. Можно однократно записать наименование описываемой переменной, затем знак равенства, первую правую часть, второй знак равенства, вторую правую часть, третий _знак равенства и т.д. 4° . В подряд идущих формулах с одинаковой правой частью разрешается не повто- рять эту правую часть. Блок таких формул имеет одну правую часть, один знак равен- ства перед ней и сколько-то левых частей; разделитель формул ставится между наименованиями переменных. 5° . Признак конца описания — слово FIN, идущее после последней точки c запятой, которая ставится после последней формулы описания. - 6.7. О наименованиях переменных. Наименования переменных могут состоять из букв‘ русского и латинского алфавита, а также пробелов. В наименованиях перемен- ных не должны встречаться сочетания символов, выступающих в формулах как огра- ничители или разделители. Полный список запретов появится после того, как будут обсуждены язык преобразования информационных объектов, язык запросов и язык описания документов. Запреты на символы и их комбинации, предъявляемые одним языком описания информационных объектов, следуют из табл. 6.1.  -. ь бомж-чинит ›  яд ~53 uvt?{ ‘r%4 h 4 
ГЛАВА 2  \  пгимвгы ОПИСАНИЙ ИНФОРМАЦИОННЫХ ОБЪЕКТОВ  Здесь приводится формализованное описание ”анкеты” на том языке, который был предложен в предыдущей главе. Кроме анкеты рассматри- ваются еще три примера. Попутно исследуется новое свойство информа- ционных объектов — свойство аргумента быть группирующим. Вводятся  так называемые служебные информационные объекты; их назначение —  облегчать запись запросов к основным объектам.  § 1. Формашазованное отшсание ”анкеты’  Большая. часть формул из формализованного описания информационного объекта ”анкета” приведена с необходимыми пояснениями в предыдущей главе. Собранные в едином описании и дополненные недостающими, они показаны на рис. 2.1.1. Следующие комментарии даются для оправдания принятых решений. 1°. Вообще, состав переменных информационного объекта определяется будущими запросами к этому объекту. Если будут, скажем, запросы о послужном списке, то есть смысл ввести переменную РАБОТЫ, в противном случае ее можно не вводить. В описании, данном на рис. 2.1.1, переменная РАБОТЫ фигурирует, следовательно, считается, что запросы о послужном списке будут частыми. 2° . Все зависимости ”анкеты” считаются в данном описании неуникальными, пото- му что не исключаются повторы значений ФАМИЛИИ ИМЕНИ ОТЧЕСТВА и ГОДА ПОСТУПЛЕНИЯ.  INF = АНКЕТА; ФАМИЛИЯ имя отчвство = ”ФИО”=8(ТЕХТ д 5,50 I ); пол = I (ФИО) =S(TEXT ‘МУЖ, жвн’); ДАТА гождвния =v (ГОД, число, мвсяц) =1(ФИО); I‘OJ1=S(INT|4,4|<1910,1985>); ‘II/ICJIO=S(DEC|l,2|(l,31)); МЕСЯЦ = s (TEXT я 3,7 я ); ОБРАЗОВАНИЕ = ”0BP” = 1 (фио) г S (TEXT ’ СРЕДНЕЕ, НЕЗАКОН высшвв, ВЫСШЕЕ’); НАИМЕНОВАНИЕ ВУЗА=”НВУЗ” = S(TEXT); ДАТА ОКОНЧАНИЯ ВУЗА= ”I1BY3”=L (ДАТА гождвния); АДРЕС ВУЗА = =”АВУЗ” =s(v0c); СВЕДЕНИЯ о вузв =V(HBY3, двуз, АВУЗ) =1 (ФИО); свв- ДЕНИЯ о высшвм ОБРАЗОВАНИИ= U (ОТСУТСТВИЕ СВЕДЕНИЙ/ОБР #’ BbIC-  .ШЕЕ ’‚ СВЕДЕНИЯ 0 ВУЗЕ /‚ОБР = ’ ВЫСШЕЕ ’); ОТСУТСТВИЕ СВЕДЕНИЙ =  = S (TRIV); ГОД ПОСТУПЛЕНИЯ = ”ГП” = S (INT | 4,4 I < 1930, 1980) ); НАИМЕНО- ВАНИЕ ПРЕДПРИЯТИЯ = 1 (ФИО, ГП) = S (TEXT); PABOTA = V (ГП, НАИМЕНО- ВАНИЕ ПРЕДПРИЯТИЯ) ; РАБОТЫ = W (PABOTA) ; ПРАВИТЕЛЬСТВЕННЫЕ НА- ГРАДЫ = J (ФИО) = W (ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА | 1,50! )3 ПРАВИТЕЛЬ- СТВЕННАЯ НАГРАДА = 8 (ТЕХТ | 3,50 | ); FIN  Puc. 2. 1.1. формализованное описание объекта ”анкета”  55 
3° . Вообще, в тексте описания аргумент отличается от зависимой переменной тем,  что ‘он фигурирует хотя бы в одной правой части формулы функциональной зави- симости.  4°. Вообще, в блоке формул, имеющих одну левую часть и много правых, безраз- лично, в каком порядке записывать правые части: первым может быть или .обозначе- ние, или состав вектора, или функшаональная зависимость и т.д. 5° . В формуле свойств значений переменной ОБРАЗОВАНИЕ дан полный перечень значений, а в такой же формуле переменной МЕСЯЦ перечень не фигурирует. Этим предполагается, что в графе ОБРАЗОВАНИЕ каждой анкеты может быть либо значение среднее, либо значение незакои высшее, либо, наконец, значение высшее; указание на сей счет должно быть дано в инструкции по заполнению анкеты. Отсутствие полного перечня значений переменной МЕСЯЦ подразумевает, что от за- полняюших не требуется единообразия в написании этих значений. В одной анкете мо- жет быть записано январь, в другой — янв., а в третьей -- 1. Следовательно, практи- чески исключается возможность таких запросов, в которых задается значение перемен- ной МЕСЯЦ; остаются запросы, в которых значения этой переменной определяются.  .§ 2. ”валовые вьшуски”  В табл. 2.1 показан фрагмент массива месячных валовых выпусков, представляемых предприятиями в органы статистики.  Каждое число в таблице есть валовый выпуск и характеризуется следующим набо- ром признаков. Оно относится к планируемому или фактическому вьшуску, оно свя- зано с каким-то месяцем; оно принадлежит какому-то предприятию. Предприятия сгруппированы по признаку принадлежности министерствам, а также городам и об- ластям, которые, в свою очередь, собраны по признаку принадлежности республикам.  По отношению к ”валовым выпускам” представляют интерес следующие типы запросов: 1) Каково плановое задание такого-то предприятия в таком-то месяце? 2) Какие предприятия такого-то министерства, расположенные на терри- тории такой-то республики, не выполнили планового задания? 3) Каково отношение факта к плану для такого-то министерства в таком-то квартале в целом по СССР‘? 4) Каково отношение фактического выпуска в этом году к фактическо- му выпуску прошлого года для всех министерств и республик? и т.д. 2.1. Формазшзованное отшсание. Когда информационный объект пред- ставлен таблицей, то, B принципе, его формализованное описание готово - требуется всего лишь перейти от одних формальных терминов к другим. 2.1.1. Информационный объект ”валовые выпуски” имеет в своем соста- ве следующие переменные: ВАЛОВЫЙ ВЫПУСК, МИНИСТЕРСТВО, РЕС- ПУБЛИКА, ОБЛАСТЬ ИЛИ ГОРОД, ПРЕДПРИЯТИЕ, МЕСЯЦ, ВИД ВЫПУСКА. Все наименования переменных суть заголовки столбцов табл. 2.1 и еще заголовок самой_табл. 2.1. Сейчас обсуждается конкретный объект ”валовые выпуски” и конкрет- ная таблица, представляющая его; но заодно можно высказать общие co- ображения по переводу в формализованное описание табличного отображе- ния информационного объекта. Так, наименования переменных таблично отображенного объекта следует искать в заголовках строк и столбцов и еще, может быть, в заголовке самой таблицы. Наименования переменных ”анкеты” присутствуют только в заголовках столбцов; наименования пере- менных ”валовых выпусков” есть и в заголовках столбцов и в заголовке самой таблицы. Следующшй вопрос: какие из переменных должны upwin-  56  « l'9Vfl \ H 
за ома „За 83 зам 8% Эва Ёввхацадё 85. два S3 83 „ша $8 юза 2.3 E328. извоза „ввоз ц 2 uarasu . O 28$ а: 88 was от? 8% Зои ввцва: „айва §&=%§ щ „за 8% SS за 8% за За §=§.§. „зввввоаё вавззч а 432 83 „за 23. . д: д? „Ев Эва Ёвввцадё . „ваз: 88 comm ада 88 „Е: 32: навага авоцва в „ага ав Эоювюхчмжё и ч и ч и и издававшие. щчхщшюьё ставен: 85.. два we чю н ь mm ыь тю зкащю совам щЗЗЗЁо ц :83. uS§==m o .m_.,m~m% том осн Ё м ион mi ион нёбом: x3=.§.oe.ox.o:mm8:ox comma umxoos. шт ЁЁ SS SS от: XS Е: 32 Эва „вввё вавёаё а юии чии чюи чии н ы и мои „ком. x3==mm.8SO_8= союзы шашка „З ц ma Sm „а „а Ё „вы ...=a§§§e§§3.. Эва звав: ы ич чч ич чч ьч ич дыззхщюч 3.3.3.3 53.236 oumwzazmu. m Eon: ьи um Б щи no an §§§_.§ „тамады .§3§.=§§nuExa швах доза ‚меч 2.8 88 Эва $3 мимы 82 „ёж ёахвваэова Эва „аза Ё: „на За этом опа дом Зою „зава: .2898: „жатва взывая. два ‚СЁЕ =33 ‚вжав „ЗЁ 5.8% 23.2 mxhwsmnfimmn подом „ 55: ЁОЁВЩ „чтит ЕЁ - щи: om HO дноЁщо ‚отд dmeosmsz шаг ЁЁЦКЧ ‚Ещё dwomz  ы а „забав  T  ..5_o>=_._m m_.=_o5£.. 
маться за зависимые, а какие — за независимые. В ”анкете” аргументом назначены переменная ФАМИЛИЯ ИМЯ ОТЧЕСТВО, занимающая краи- ний левый столбец, и переменная ГОД ПОСТУПЛЕНИЯ, занимающая се- рединный столбец; в ”валовь1х выпусках” переменная ВАЛОВЫЙ ВЫ- ПУСК — зависимая, остальные -— аргументы. - Каждая шестерка значений: значение МИНИСТЕРСТВА (£1), значение РЕСПУБЛИКИ (E2), значение ОБЛАСТИ ИЛИ ГОРОДА (£3), значение ПРЕДПРИЯТИЯ (£4), значение МЕСЯЦА (£5) И значение ВИДА ВЫ- ПУСКА (£6) порождает единственное значеъше ВАЛОВОГ О ВЬШУСКА (п); шестерки значений первых переменных не повторяются; следовательно,  ВАЛОВЬ1Й ВЫПУСК однозначно и уникально зависит от шести первых переменных:  17 = F(§1,§2,§3,54,5s,§6)- (2-1)  2.1.2. формализованное описание информационного объекта ”валовые выпуски” дано на рис. 2.2.1. Это описание не требует комментариев, особенно после комментариев описания ”анкеты”. ' 2.1.3. Экономические и вообще числовые показатели обычно обозна- чаются буквой c наборами нижних и верхних индексов. Применительно  к ВАЛОВОМУ ВЫПУСКУ такое обозначение выглядит следующим образом:  v,t,,¢,qe, тем, reR, qEQ,, eEEq,,,,, t E T, go E<I>, (2.?)  где буква v читается как ВАЛОВЫЙ ВЫПУСК; индекс т — МИНИСТЕР- СТВО, М — множество министерств (минлегпром, минмясомолпром, минпищепром, ...); r - РЕСПУБЛИКА, R — множество республик (рсфср, усср‚ бсср, ...); q — ОБЛАСТЬ ИЛИ ГОРОД, Q, — множество областей или городов в РЕСПУБЛИКЕ r (бобруйск, пинск‚ ...); е — ПРЕДПРИЯ- ТИЕ, Eq,,,, — множество предприятий МИНИСТЕРСТВА т, расположен- ных в ОБЛАСТИ ИЛИ ГОРОДЕ q, находящихся в РЕСПУБЛИКЕ r , (фабрика меховых изделий, ...); t — МЕСЯЦ, Т -— множество месяцев (янв, февр, ...); ф — ВИД ВЫПУСКА, Ф ={план‚факт}. С содержательной стороны записи (2.1) и (2.2) тождественны. Когда по- казатели фигурируют в формулах с арифметическими операциями, то более привычным является использование символов типа (2.2). Например, фак- шческий ВАЛОВЬ1Й ВЫПУСК МИНИСТЕРСТВА т‘ за месяц г‘ выражает-  INF-= ВАЛОВЫЕ ВЫПУСКИ; МИНИСТЕРСТВО = ”МИН” = S (TEXT); РЕСПУБЛИКА = ”РЕСП” = S (TEXT ’ РСФСР, УССР‚ БССР, ЛАТССР, ЛИТССР, ЭССР, МССР, Г ССР, АЗССР, АРМССР‚ УЗССР, ТУССР, ТАССР, КИРССР, КАЗССР ’); ОБЛАСТЬ ИЛИ Г ОРОД= ”ОБЛ” = S(TEX'T); ПРЕДПРИЯТИЕ = ”ПР” = S (TEXT); МЕСЯЦ = ”МЕС” = S (TEXT ’ ЯНВ, (DEEP, МАРТ, АПР, МАИ, ИЮНЬ, ИЮЛЬ, АВГ, СЕНТ, О_КТ‚ НОЯ, ДЕК ’ ) ; ВИД ВЫПУСКА=”ВИД” ’= =S (TEXT ’ ПЛАН, ФАКТ ’); ВАЛОВЫИ ВЫПУСК =F (МИН,РЕСП‚ ОБЛ, ПР, МЕС, ВИД) =S(REAL I 4,8 | ( 1, 10000 ))  Puc. 2.2.1. формализованное описание объекта ”валовые выпуски” 58 
ся следующей формулой:  2 2 2 u"'*°"  ген eQ eE mhqe. Ч re Чипа:  Здесь суммирование проводится по ПРЕДПРИЯТИЯМ е МИНИСТЕРСТ- ВА т‘ во всех ОБЛАСТЯХ И ГОРОДАХ q, где они расположены, и по всем РЕСПУБЛИКАМ, где находятся эти ОБЛАСТИ И ГОРОДА; ф" = факт, If’ — заданный месяц. . 2.2. Грушшруюцше аргументы. Пусть информационная переменная п уникальным образом зависит от аргумента Е. Зависимость может быть однозначной или многозначной, одноключевой или многоключевой‚ но для простоты выкладок ограничимся случаем, когда изучаемая уъшкальная зависимость — однозначная и однокпючевая. Тот факт, что зависимость ин- формационная и, следовательно, множество ее определения Е‘. дискретно, порождает одну интересную возможность, которой часто пользуются. 2.2.1. Разобьем множество определения Е.‘ на такие непересекающиеся подмножества Ед, 52, ..., что их объединение в точности равно Е;  Присвоим каждому подмножеству свое имя: со“) есть имя подмножества  -7 (2)  ...„ со есть имя подмножества E2, . Введем новую переменную со,  которая принимает дискретные значения: со“) , со“) , . Объявим зависи- мую переменную п функцией двух аргументов: старого Е и нового со: п = F( Е, со). Чтобы значения новой функции F (Е , со) и исходной функ- ции F (Е) совпадали, необходимо такое сочетание значений аргументов Е‘ и ‹о"‘: если Е“) е Ед, то должно быть со“) = со“) , где со“) есть имя Ед, а если со“) = со“), то должно быть Е“) е E,-, где cog” есть имя Ед.  Получается, что новая функция F (Е ‚ со) определена не при всех значениях старого и нового аргументов, а только при их специальных сочетаниях. Наоборот, пусть задана функция двух аргументов 17=F (Е, со); значения первого аргумента выбираются из множества Е, второго — из множества  $2 = { со“) , со“), ...}. Пусть функция Р'(Е, со) определена только при та- ких совпадениях: каждому значению Е“) должно соответствовать одно  свое значение со“) ‚ каждому со( “) соответствует много Е“) . Тогда зави- симая переменная п по существует является функцией одного аргумен- та: п = F (Е) . Аргумент со, значения которого суть имена групп значений другого аргу- мента Е, назовем групгшруюцшм, а аргумент Е, доставляющий группы, на- зовем группируемым. Тот факт, что аргумент гругшируемьй или группи- рующий, никак не отмечается в описании информационного объекта. 2.2.2. Обратимся теперь к ”валовым вьшускам”, с тем чтобы указать там группируюцше аргументы. Функция (2.1) определена не при любых сочетаниях аргументов РЕСПУБЛИКА и ОБЛАСТЬ ИЛИ ГОРОД — каждому значению аргумента ОБЛАСТЬ ИЛИ ГОРОД должно соответст- вовать одно свое значение аргумента РЕСПУБЛИКА, а каждому значению РЕСПУБЛИКИ соответствует много своих значений ОБЛАСТИ ИЛИ 59 
ГОРОДА. Так что переменная РЕСПУБЛИКА есть группирующий аргу- мент‚а ОБЛАСТЬ ИЛИ ГОРОД —- группируемый. В зависимости (2.1) есть и второй группирующий аргумент — МИ- НИСТЕРСТВО, значения которого есть имена групп значений переменной ПРЕДПРИЯТИЕ. 2.2.3. Вообще, группирующие аргументы вводятся для ускорения поис- ковых операций и облегчения записи групповых запросов. Поясним это на примерах из ”валовых выпусков”. Рассмотрим два задания на поиск: в первом задается значение аргумента ОБЛАСТЬ ИЛИ ГОРОД и согласующееся c НИМ значение группирующего аргумента РЕСПУБЛИКА; во втором задании значение РЕСПУБЛИКИ не задается; что касается остальных аргументов зависимости, то пусть они все задаются; объект поиска -— зависимая переменная ВАЛОВЫЙ ВЫ- ПУСК. Оба варианта запроса должны приводить к одинаковым ответам; второй вариант эквивалентен тому, что группирующий аргумент РЕСПУБ- ЛИКА не введен в зависимость (2.1). В первом случае поиск сначала ведется среди относительно небольшого числа значений группирующего аргумента РЕСПУБЛИКА, а потом, когда требуемая РЕСПУБЛИКА найдена, то среди относительно небольшого числа значений группируемого аргумента ОБЛАСТЬ ИЛИ ГОРОД, объединяемых заданной РЕСПУБЛИКОЙ (см. табл. 2.1). В отсутствие переменной и столбца РЕСПУБЛИКА (второй вариант) поисковая опера- ция проводится по всему массиву значений аргумента ОБЛАСТЬ ИЛИ ГОРОД, что более трудоемко, чем в первом случае, Второе применение группирующих аргументов — групповые запросы. Скажем, требуется получить ВАЛОВЫЙ ВЫПУСК в одной какой-то ОБЛАСТИ ИЛИ ГОРОДЕ, затем при тех же значениях прочих аргумен- тов — во второй ОБЛАСТИ ИЛИ ГОРОДЕ, в третьей ОБЛАСТИ ИЛИ ГОРОДЕ и т.д. Группа таких запросов, которые различаются значением одного аргумента в условиях запросов, может записываться как один, так называемый групповой запрос; в условии группового запроса через разде- литель типа ”или” перечисляются значения аргумента, которыми различают- ся исходные запросы. Группирующие аргументы следующим образом сокращают записи груп- повых запросов. В групповом запросе о ВАЛОВЫХ ВЫПУСКАХ во всех ОБЛАСТЯХ ИЛИ ГОРОДАХ (подчеркнем: во всех), составляющих неко- торую республику, необходимо перечислить все ОБЛАСТИ ИЛИ ГОРОДА этой республики. Наличие в зависимости группирующего аргумента РЕСПУБЛИКА делает это перечисление ненужным — достаточно в условии запроса указать заданное значение РЕСПУБЛИКИ, и этим указанием дости- гается выделение требуемых значений ВАЛОВОГО ВЫПУСКА. Таким об- разом, группирующий аргумент позволяет записывать некоторые группо- вые по аргументу запросы как единичные. 2.3. Служебньпй информационный объект МНОЖЕСТВА. Как уже отме. чалось в § 4 предыдущей главы, любой запрос содержит объект запроса, где перечисляются переменные, значения которых хотят получить, и условия запроса, где задаются значения других переменных, которые выделяют искомые значения. Когда одни и те же наименования переменных часто повторяются в объектах запросов и этих наименований много, то имеет 60  Ада... д  ‚е yAafin..........._...«....annnh-a..._........u.._ ._.§. 
смысл определить над ними вектор и в запросах называть этот вектор, а не составляющие его переменные. Указаъше о векторе делается в ‘описании информационного объекта. Когда одна и та же группа значений ‘переменных часто повторяется в условиях групповых запросов и значений в группе много, и, кроме того, эта группа не выделяется заданием значения какого-то группирующего аргумента, Ю целесообразно значения из группы объявить элементами некоторого множества выборки, дать наименование этому множеству и в запросах назвать это множество выборки, а не составляющие его элемен- ты. Подстановка в запрос элементов-значений вместо имени множества выборки происходит автоматически. О том, какие указаъшя надлежит сде- лать на этот счет при формулировке запроса, пойдет речь в момент обсужде- ния языка запросов. Здесь же описывается служебный информационный объект под названием МНОЖЕСТВА, который включается в состав основ- ного информационного объекта и который аккумулирует множества выборки, предназначенные для экономной записи запросов. Служебный объект МНОЖЕСТВА определим как содержащий одну функциональную связь между двумя переменными: МНОЖЕСТВО и ЭЛЕ- МЕНТЫ. Значениями переменной МНОЖЕСТВО являются имена конкрет- ных множеств выборки; в качестве значений переменной ЭЛЕМЕНТЫ выступают соответствующие наборы элементов. Если аргументом назнатшть переменную МНОЖЕСТВО, а зависимой переменной .— ЭЛЕМЕНТЫ, то функциональная связь между ними описывается такой формулой:  ЭЛЕМЕНТЫ = G (МНОЖЕСТВО); ` (2.3)  каждое имя конкретного множества порождает не один элемент, а набор элементов, поэтому зависимость (2.3) не однозначная, а многозначная. Пример c ”валовыми выпусками”. Допустим, что одъшм из наиболее часто повторяюпшхся типов групповых запросов к ”валовым выпускам” является такой: выдать ВАЛОВЫЕ ВЫПУСКИ при условии, что ОБЛАСТЬ ИЛИ ГОРОД = Москва, киев, минск и еще двенадцать столиц союзных республик. Что касается аргументов МИНИСТЕРСТВО, РЕСПУБ- ЛИКА, ПРЕДПРИЯТИЕ, МЕСЯЦ, ВИД ВЫПУСКА, то какими они задают- ся — сейчас неважно. Пусть пятнадцать наименований столиц суть элементы множества, назы- ваемого сголицы. Введем их в функциональную связь (2.3) как одно мно- жественное значение зависимой переменной ЭЛЕМЕНТЫ, которое соответ- ствует значению аргумента МНОЖЕСТВО, равному столицы. В обсуждаемом типе запросов введенная связь может быть использована следующим образом. В условиях запроса вместо записи ОБЛАСТЬ ИЛИ ГОРОД = москва, киев или минск, пишется: ОБЛАСТЬ ИЛИ ГОРОД равняется значению переменной ЭЛЕМЕНТЫ при условии: МНОЖЕСТ- ВО = столицы. Реализация всего запроса начнется c того, что исполнится внутренний запрос об ЭЛЕМЕНТАХ. Этим действием пятнадцать наимено- ваний будут извлечены из зависимости (2.3) и подставлены в условия исходного запроса. А далее будет реализовываться сам исходный запрос, который теперь имеет привычный вид.  61 
§ ‘3. ”Админисгративно-терригориальное деление страны и деление страны на экономические районы”  В табл. 3.1,а‚ 3.1‚б‚ 3.2‚а, 3.26 даны фрагменты того и другого делений. изучаемый в этом параграфе информашаонный объект отображается на че- тыре перечисленные таблицы. Каждая из них представляет собой отдель- ную фушсциональную связь и может рассматриваться изолированно от других, Процесс описания информационного объекта построен так, что  - ’ ' ’ Таблица 3.1 ”Административно-терр игор иальное деление страны”  Таблица З.1‚а  СТРАНА РЕСПУБЛИКИ  ссср -‘ азербайджанская сср; армянская сср; белорусская сср; грузин- ская сср; казахская сср; киргизская сср; латвийская сср; литовская сср; молдавская сср; рсфср; таджикская сср; узбек-  ская сср; украинская сср; эстонская сср  Таблица 3.1,б  РЕСПУБЛИКА КРАЯ, ОБЛАСТИ, АССР ИЛИ КРУПНЫЕ ГОРОДА  О J О 0 Q o O O O 0 O O 0 0 0 O 0 с o Ц с 0 I O I O O О O 0 Q O 0 o 0 с О o 0 о O O C O O O O I O  рсфср алтайский, амурская, архангельская, астраханская, башкир- ская асср, белгородская, брянская, бурятская асср, волгоградская, вологодская, воронежская, владимирская, горько вская, дагестан- ская асср, ивановская, иркутская, кабардино-балкарская асср, калиниградская,калининская,калмьщ кая асср, калужская, камчатская, карельская асср, кемеровская, кировская, коми асср, Костромская, краснодарский, красноярский, куйбышевская, курганская, курская, ленинград‚ ленинградская, липецкая, мага- данская, Марийская асср, москва, московская, мурманская, новгородская, новосибирская, омская, Оренбургская, Орловская, пензенская, приморский, псковская, ростовская, рязанская, aa- ратовская, сахалинская, свердловская, северо-осетинская асср, ‘смоленская, ставропольский, тамбовская, татарская асср, томская, тувинская асср, тульская, тюменская, удмуртская асср, ульянов- ская, хабаровский, челябинская, читинская, чечено-ингушская асср, чувашская асср,‘якутская асср, ярославская  украинская винницкая, волынская, ворошиловградская‚ днепропетровская сср донецкая, житомирская, Закарпатская, запорожская, ивано- франковская, киев, киевская, Кировоградская, крымская, львов- ская, николаевская, одесская, полтавская, ровенская, сумская, тернопольская, харьковская, херсонская, хмельницкая, черкасская, черниговская, черновицкая  _Г узбекская андижанская, бухарская, каракалпакская асср, каш кадарьинская, сср наманганская, самаркандская, сурхандарьинская, сырдарьинская, ташкент‚ ташкентская, ферганская, хорезмская  О Q J I Q О n o n 0 О O O о O O o O I 0 0 0 O 0 O 0 0 O 0 O O O O Q O O О O O o I I 0 I O Ц I U O О о 0 О о о  аммиак-ь - .„  -A|4.l1a..Jl.)..p.a. _... 
Таблица 3.2 ”Деление страны на экономическце районы” Таблица З.2,а  СТРАНА ЭКОНОМИЧЕСКИЕ РАЙОНЫ  ссср белорусский, волго-вятский, восточно-сибирский, дальневосточный, донецко-приднепровский, закавказский, западно-сибирский, казахстанский, молдавский, поволжский, прибалтийский, северо-западный, северо-кавказский, средне- азиатский, уральский, центральный, центрально-черноземный, юго-западный, южный  Таблица 3.2,б ЭКОНОМИЧЕСКИЙ КРАЯ, ОБЛАСТИ, АССР ИЛИ КРУПНЫЕ ГОРОДА РАЙОН ` волга-вятский горьковская, кировская, Марийская асср, мордовская асср,  чувашская асср  восточно-сибир- бурятская асср, иркутская, красноярский, тувинская асср, ский читинская '  9  дальневосточный амурская, камчатская, магаданская, приморский, сахалинская, хабаровский, якутская асср  донецко-приднеп- ворошиловградская, днепропетровская, донецкая, запорожская, ровский кировоградская, полтавская, сумская, харьковская  1 9 О . О О D O O O O O O O O O D О О О I O C O О I О О О О О I О I O О О О О О О О О О . 0 О I O C O О О О О О  Р западно-сибирский алтайский, кемеровская, новосибирская, омская, томская, тюменская  северо-западный архангельская, вологодская, карельская асср, коми асср, ленинградская, ленинград, мурманская, новгородская,  псковская сев еро-кавказ- дагестанская асср, кабардино-балкарская асср, краснодарский, скид ростовская, северо-осетинская асср, ставропольский,  ueueuo-u нгуш ская асср  90000000000000onoouoooooooolo§pooIao0oo|ooo0OOOOOIOOOOO  уральский курганская, оренбургская, пермская, свердловская, челябинская, удмуртская асср  центральный брянская, владимирская, ивановская, калининская, калужская, костромская, московская, москва, орлов ская, рязанская, смол енская, тульская, ярославская  63 
сначала рассматриваются таблицы-функции по отдельности, а затем об- разуются их различные соединения. 3.1. ”Администратявно-территориальное деление страны”. Каждой стра- не присущ свои список административно-территориальных единиц высшеГ0 уровня, которые здесь названы республиками (в США это штаты, во Фран- ции — департаменты, однако в данном случае принято наименование респуб- ЛИКИ) ЕСЛИ Каждую конкретную страну считать значением переменной СТРАНА, а каждый список адмгшистративнотерриториальных единиц выс- шего уровня считать значением переменной РЕСПУБЛИКИ, то отмеченное B первой фразе этого пункта отношение может трактоваться как функцио- нальная зависимость переменной РЕСПУБЛИКИ от аргумента СТРАНА. Обозначим аргумент СТРАНА символом £1, зависимую переменную РЕСПУБЛИКА — символом т; функциональную зависимость запишем в виде  Th =G(§1)- (3.1) Страны имеют в своем составе не одну административно-территориальную единицу высшего уровня (республику), а несколько. Поэтому значения зависимой переменной т не элементарные, а множественные, т.е. разложи- мые на элементы одинакового информационного содержания (см. п. 2.3 предыдущей главы). Например, когда г, = ссср, то соответствующее значе- ние п, разложимо на пятнадцать элементарных значений. Следовательно, функция (3.1) принадлежит к числу многозначных функций и обозначает- ся поэтому буквой G (см. п. 3.3 предыдущей главы). Напомним, что множественной переменной следует поставить в соответ- ствие присоединенную переменную. Переменной, присоединенной к множе- ственной переменной РЕСПУБЛИКИ, дадим наименование РЕСПУБЛИКА и обозначение 171. Формула множественности (см. табл. 6.1 гл. 1), отражаю- щая связь между РЕСПУБЛИКАМИ (т) и РЕСПУБЛИКОЙ (из), в обоз- начениях выглядит так:  т = W071). С (3-2)  Вторая таблица ”в административно-территориальном делении страны” — табл. 3.1,б. Она отражает зависимость КРАЕВ, ОБЛАСТЕЙ, АССР ИЛИ КРУПНЫХ ГОРОДОВ от РЕСПУБЛИК; эта зависимость, как и первая, многозначна. Обозначим множественную переменную КРАЯ, через 17,, аргумент РЕСПУБЛИКА — через £2; формула второй зависимости анало- гична первой (3.1):  175 = G ($2 )~ (3-3)  Формула множественности, связывающая множественную зависимую переменную КРАЯ, ОБЛАСТИ, АССР ИЛИ КРУПНЫЕ ГОРОДА (т) с присоединенной к ней переменной КРАЙ, ОБЛАСТЬ, АССР ИЛИ КРУП- НЫЙ ГОРОД (113 ) , B обозначениях записывается так:  172 = W073) (3-4)  Отметим, что в первой паре формул (3.1)— (3.2) переменная РЕСПУБЛИКА выступает в роли присоединенной переменной к множественной зависи- мой переменной и обозначена через 17', , a во второй - (3.3)—(3.4), она же является аргументом и обозначена через $2.  64 
"""""‘H г!‘ -4- ‘""“"-"*0 ‚яд.  .5 и г  3.2. ”Деление страны на экономические районы” отражено в табл. 3.2, а и 3.2, 6.’ ОНИ аналогичны табл. 3.1, а и 3.1, б; поэтому в отношении их ог- раничимся перечислением окончательных результатов. Введем новые обоз,- начения: 173 - ЭКОНОМИЧЕСКИЕ PAl7IOHbI,n§ и £3 — ЭКОНОМИЧЕСКИИ РАЙОН. Формулы функциональных зависимостей и формулы множествен- ности, аналогичные (3.1)—- (3 .4), _в рассматриваемом случае имеют такой вид:  773 = 0(Ё1)› . 773 = W073)» 772 = С(Ё2)› 772 = и/(ПЮ- (3-5)  3.3. Запросы. К четырем обсуждаемым зависимостям, отображенным в табл. 3.1 ‚ а, — 3.2, б, могут адресоваться следующие запросы: 1°. Из каких республик и экономических районов состоит СССР? 2°. Входит ли в состав СССР Карело-финская ССР? 3°. Есть ли в составе экономических районов СССР центральный район? .4°. Из каких краев, областей, АССР или крупных городов состоит Бе- лорусская ССР и Волго-Вятский экономический район? 5°. В какую республику и в какой экономический район входит Мага- данская область? 6°. В какие экономические районы входят области, составляющие Ук- раинскую ССР?. . . 3.4’. Варианты формализоваьшого отшсания.  3.4.1. Совокупность формул (3.1)—(3.5) адекватно отражает зависиг  мости, данные в четырех таблицах; в таблицах зависимости представлены по отдельности и формулы отражают их также по отдельности. ‘Формализовашюе описание рассматриваемого информационного объек- та в варианте (3.1) — (3.5) дано на рис. 2.3.1. Первый запрос из п. 3.3 разделяется на прямой запрос к зависимости (3.1) и также прямой запрос к первой зависимости из (3.5). Второй и третий запросы суть так называемые общие запросы по отношеъшю к тем же зависимостям. Обцшм называется запрос, в котором задаются одно- временно значения аргументов и значения зависимой переменной и пред- лагается проверить существование функциональной связи между нив/ш; ответом на общий запрос может быть либо ”да”‚ либо ”нет”; по трудоем- кости общий запрос близок к прямому, так как в нем по заданному зна- чеъшю аргументов вычисляется значение зависимой переменной (прямой запрос), а затем оно сравъшвается со значением, предложенным в тексте общего запроса. Четвертый запрос равен паре прямых запросов: один к зависимости (3.3) ‚ второй к третьей зависимости из (3.5). Пятый запрос  2‘ INF = АДМИНИСТРАТИВНО-ТЕРРИТОРИАЛЬНОЕ ДЕЛЕНИЕ СТРАНЫ И ДЕЛЕНИЕ СТРАНЫ НА ЭКОНОМИЧЕСКИЕ РАЙОНЫ; СТРАНА = S (TEXT); РЕСПУБЛИКИ = G (CTPAHA) = W (РЕСПУБЛИКА); РЕСПУБ- ЛИКА = S (TEXT) ; КРАЯ, ОБЛАСТИ, АССР ИЛИ КРУПНЫЕ ГОРОДА = G (РЕСПУБ- ЛИКА) = W (КРАЙ, ОБЛАСТЬ, АССР ИЛИ КРУПНЫЙ ГОРОД); КРАЙ, ОБЛАСТЬ, АССР ИЛИ КРУПНЫЙ ГОРОД = S (TEXT) ; ЭКОНОМИЧЕСКИЕ РАЙОНЫ = G (CTPA- НА) = W (ЭКОНОМИЧЕСКИЙ РАЙОН); ЭКОНОМИЧЕСКИЙ РАЙОН = S (TEXT); КРАЯ, ОБЛАСТИ, АССР ИЛИ КРУПНЫЕ ГОРОДА = G (ЭКОНОМИЧЕСКИЙ РАЙОН) ; FIN -  Puc. 2.3.1. Первый вариант формализованного описания объекта ‘административно- территориальное деление страны и деление страны на экономические районы”  5. Ю.Н. Иванов 65 
адресуется к тем же зависимостям, но состоит из двух обратных запросов. Наконец, шестой запрос разлагается на прямой запрос к (3.3) и обратный запрос к третьей зависимости из (3.5). Табличные представления, c которых начинались изучения всех рассмат- риваемых здесь информационных объектов, — привычная, но не единствен- но возможная форма отображения информационных функций. В качест- ве еще одной формы отображения введем диаграммы. На рис. 2.3.2, а, 2.3.2, б, 2.3.3, а, 2.3.3, б показаны диаграммы четрырех изучаемых одно- ключевых многозначных зависимостей. Они устроены следующим образом. Верхний уровень каждой диаграммы занимают наименование и зна- чения аргумента, нижний уровень — наименование и значения зависимой переменной. От наименования аргумента к наименованию зависимой пере- менной протянута стрелка, показывающая факт функциональной зави- симости, и от каждого значения аргумента стрелки ведут к соответствую- щим значениям зависимой переменной. 3.4.2. Второй вариант формализованного ошасания более экономен, чем первый, и получается после преобразоваъшя исходных зависимостей из (3.1)—(3.5): Сначала рассмотрим тройку переменных: КРАЯ, ОБЛАСТИ, АССР ИЛИ КРУПНЫЕ ГОРОДА (т), РЕСПУБШ/[КА (£2), и СТРАНА ($1). Каждое значение СТРАНЫ порождает список значений РЕСПУБЛИКИ (см. (3.1)); c другой стороны, каждое значение РЕСПУБЛИКИ соответ- ствует одному своему значению СТРАНЫ. Следовательно, в зависимость (3.3), где РЕСПУБЛИКА выступает в качестве аргумента, может быть встроен еще один аргумент — СТРАНА — как группирующий аргумент над группируемым РЕСПУБЛИКА, (см. п. 3.2). В результате вместо зависи- мости (3.3) и зависимости (3.1) получится следующая двухключевая мно-  СТРАНА ссор РЕСПУБЛ ики ° ° ° рсфср ° ° украинская узбекская; ° сср сср  Рис. 2.3.2,а. РЕСПУБПИКА= G (СТРАНА)  РЕСПУБЛИКА ‚ ‚ . рсфср . . . украинская о сор  V KPA9l,0BJ1ACTM, rapo/ra3— /(//p0B- мордовская чувашская ворошилов- харьков- Accp или КРУП_ ская с/гая асср асср граДс/(ая скал  НЫЕ ГОРОДА  Рис. 2.3.2.6. КРАЯ, ОБЛАСТИ, АССР ИЛИ КРУПНЫЕ ГОРОДА= G (РЕСПУБЛИКА) 66 
СТРАНА 0053”  зкономич ЕСКИ E долго: Bocrawm-_ ‚лолецко- U РАЙ оны вягскни сибирским прилив/грозами  Рис. 2.3.3, a. ЭКОНОМИЧЕСКИЕ РАЙОНЫ = G (CTPAHA)  ВОЛ!’ 0 ‘  ЗКОНШЁИЧЕСКИЙ . вятский’ ЁЗЪЗЁЁЪЁово/(„й  РАИОН  КРАЯ, ОБЛАСТИ гордков- киров- мордовская чуваков-лая ворошллов- харьков- Accp ил и |(Pyrf- спая ская двор двор граде/тая ская Hbl E ГОРОДА  Рис. 2.3.3,6. КРАЯ, ОБЛАСТИ, АССР ИЛИ КРУПНЫЕ ГОРОДА = СНЭКОНОМИЧЕ- СКИЙ РАЙОН)  гозначная зависимость: 772 = 5(‹Ё1‚Ё2)— (3-6)  Аналогичным образом можно поступить и со второй тройкой переменных: КРАЯ‚... (т), ЭКОНОМИЧЕСКИЙ РАЙОН (£3), CTPAHA (Ед). Пара многозначных одноключевых зависимостей из (3.5) преобразуется в од- ну двухключевую мнотозначную зависимость, если аргумент СТРАНА cun- тать группирующим над группируемым ЭКОНОМИЧЕСКИЙ РАЙОН:  712 = G(£1 , Ед). (3.7)  Зависимость (3.6) определена не при любых сочетаниях аргументов £1, а ‚ а только при таких, которые удовлетворяют (3.1). Именно это обсто- ятельство делает новую функцию (3.6) информационно эквивалентной паре исходных функций (3.1)‚ (3.3). Подобные суждения могут быть сделаны и относительно (3.7). Замена исходных функциональных зависимостей на новые (3.6), (3.7) приводит к изменению типов некоторых запросов. Если раньше первьп`а запрос из п. 3.3 трактовался как два прямых запроса, то в отношении (3.6), (3.7) он выглядит как запрос о множестве определения функции (3.6) и запрос о множестве определения функшш (3.7). Второй и третий запросы, бывшие ранее общими по отношению к аргументу и зависимой переменной, становятся обцшми по отношению к аргументам. Остальные ТРИ Запроса п. 3.3 сохраняют свой тип. Зависимости (3.6), (3.7) уже не отображаются табл. 3.1, а — 3.2, б. Табличное отобр жение первой из них представлено в табл. 3.3. О том, Kalf информационные функции отображаются таблицами, будет речь в шес- тои главе. Сейчас отметим, что выбранная форма таблиц при отображении 5* 67’ 
Таблица 3.3 ”Админнстративно-'герриториальиое деление страны”  СТРАНА РЕСПУБЛИКА КРАЯ, ОБЛАСТИ АССР ИЛИ КРУПНЫЕ ГОРОДА  . . . . . . . . . . . . . . . . . . . . . - . . . . . a . - o . . . . o - ac‘ . . . - o ь o . . o o . o › o o о . o . . . o o - о.  алтайский, амурская, архангельская, астраханская, баш- кирская асср, белгородская, брянская, бурятская асср, волгоградская, вологодская, воронежская, владимирс- кая, горьковская, дагестанская асср, ивановская, иркут- скащкабардино-балкарская асср, калининградская, ка- лининская, калмыцкая асср, калужская, Камчатская, ка- рельская асср, кемеровская, кировская, коми асср, кос- тромская, краснодарский, красноярский, куйбышевская, курганская, курская, ленинград, ленинградская, липецкая, магаданская, марийская асср, москва, московская, мур-  манская, новгородская, новосибирская, омская, оренбург- -  ская, орловская, пензенская, приморский, псковская, рос- товская, рязанская, саратовская, сахалинская, свердлов- ская, северо-осетинская асср, смоленская, ставрополь- ский, тамбовская, татарская асср, томская, тувинская асср, тульская, тюменская, удмуртская асср, ульяновская, хабаровский, челябинская, читинская, чечено-ингушская асср, чувашская асср, якутская асср, ярославская  o O o I o 0 O o о o o o о o o o 0 o o o O о 0 O - o О o o I o O O О O O o I O 0 O О о 0 Q o 0 Q п o I o О o o I с о o О o О O O О 0  украинская винницкая, волынская, ворошиловградская, днепропетров- сср ская, донецкая, житомирская, Закарпатская, запорожская, ивано-франковская, киев, киевская, кировоградская, кры- мская, львовская, николаевская, одесская, полтавская, ровенская, сумская, тернопольская, харьковская, херсон- ская, хмельницкая, черкасская, черниговская, черновицкая  узбекская андижанская, бухарская, каракалпакская асср, кашкадарь- сср инская, наманганская, самаркандская, сурхандарьинская, сырдарьинская, ташкент, ташкентская, ферганская, хоре- змская  o 0 0 I 0 со o Q I o Q Q 0 O o O o О Q о o I o 0 0 о o O J I O Q 0 0 с O О U О о о с O o o O O o o Q o o O Q o О О О o I I 0 0 00  двухключевых зависимостей требует установления ЦОШИНЭННОСТИ ЗРГУ‘ ментов. Здесь старцшм назначен аргумент СТРАНА, а младцшм — РЕС- ПУБШ/1КА. Если бы назначение было противоположным, то В КЗЖДОИ строке, где записывалось бы новое значение РЕСПУБЛИКИ, припшось бы повторять одно и то же значение СТРАНЫ — ссср. у На рис. 2.3.4, 2.3.5 даны Диаграммные отображения зависимостеи (3.6) ‚ (3.7) . Верхний уровень на каждой диаграмме отдан наименованиям и зна- чениям аргумента СТРАНА; нижний уровень- наименованиям и значениям зависимой переменной КРАЯ, ОБЛАСТИ, АССР ИЛИ КРУПНЫЕ ГОРОДА. Средний уровень на рис. 2.3.4 занимают наименование и значения аргумен- та РЕСПУБШЛКА, а на рис. 2.3.5 —_ наименование и значения аргумента ЭКОНОМИЧЕСКИЙ РАЙОН. Если бы аргумент СТРАНА бЫП помещен на средние уровни ‚диаграмм, а аргументы РЕСПУБЛИКА и ЭКОНОМИЧЕС- Кий РАЙОН — на верхние, то вид диаграмм изменился бы. Сейчас они выг- лядят как два дерева, в новом варианте это бьши бы наборы несвязанных  68 
СТРАНА 0“/’  РЕСПУБЛИКА ротор украинская узбекская cop сср  \`\ \ ‘s  КРАЯ, ОБЛАСТИ ‚ гсрьков- киров- . . ;ro;zao3c/ran чувашских; овощами/си: жарь/пси: Асср или круп- сиая спая асср дсср терская сидя  НЫЕ ГОРОДА Рис. 2.3.4. КРАЯ, ОБЛАСТИ, АССР или КРУПНЫЕ ГОЮДА-= G (СТРАНА, РЕСПУБ- ЛИКА)  СТ РА Н А ссср ЭКОНОМ ИЧ ECKVI Й . . Ёслго- всстчио- ° ° ° ‚соиецио- ° ° рА йон вятский сибирский иридивлровсиии  / \ / \  КРАЯ, ОБЛАСТИ ‚ горьиов- жиров: . иорлсвсиая чувак/сиг}. ° вдов/силос: ‘жарь/сё: Асср и ли круп- сияя сидя асср дсср градсиая скал  НЫЕ ГОРОДА  Рис. 2.35. КРАЯ, ОБЛАСТИ, АССР или КРУПНЫЕ ГОРОДА: G(CTPAHA, 3KOHO- МИЧЕСКИЙ РАЙОН)  стволов, gpemy»Ij1__ypo1_3er;_b Которых заъшмало бы значение ссср. Так что принятое подчинение аргументов по сравнеъшю c противбйоложньЁм при- водит к более экономному диаграммному отображению. Напомъшм, что такой же вывод бьш сделан и при обсуждешш табличного отображения за- висимостей (3.6) , (3.7). Вообще, Когда в составе аргументов встречается группирующий аргумент, то в диаграммном или табличном отображениях CFO МВСТО Над‘ грушшруемым, а не наоборот — такое подчинение дает эко- номию вртображенгш по сравнению с противоположным. На рис. 2.3.6 приведено формализованное описаъше изучаемого гшформа- Ционного объекта в варианте с двухключевыми зависимостями»: (3.6) ‚ (3.7).  INF = АДМИНИСТРАТИВНО-ТЕРРИТОРИАЛЬНОЕ ДЕЛЕНИЕ СТРАНЫ И ДЕЛЕ- НИЕ СТРАНЫ НА ЭКОНОМИЧЕСКИЕ РАЙОНЫ; СТРАНА 5 S (TEXT); РЕСПУБЛИ- КА = S (TEXT); ЭКОНОМИЧЕСКИЙ РАЙОН = S (TEXT); КРАЯ, ОБЛАСТИ, АССР ИЛИ КРУПНЫЕ ГОРОДА = G (CTPAHA, РЕСПУБЛИКА) = G (CTPAHA, ЭКОНОМИ- РАЙОН) = W (КРАЙ, ОБЛАСТЬ, АССР ИЛИ КРУПНЫЙ ГОРОД) = 8 (ТЕХТ); Рис. 2.3.6. Второй вариант формализованного описания объекта ‘административно- Территориальное деление страны и деление страны на экономические районы”  69 
3.4.3. Диаграммы на рис. 2.3.4, 2.3.5 допускают естественное совмеще- ние — они имеют совпадающие верхние и нижние уровни и различающиеся средъше уровни. На рис. 2.3.7 показана диаграмма, являющаяся продуктом совмещеъшя: верхншй и нижний уровни такие же, как и на исходных диаг- раммах, а средъшй уровень заъшмают верцшнь1‚ соответствующие наимено- ванию и значеъшям РЕСПУБЛИКИ, и вершины соответствуюцше наименова- нию H значениям ЭКОНОМИЧЕСКОГО РАЙОНА. Новая диаграмма инфор- мационно эквивалентна двум исходным, но заъшмает меньше места, чем сумма двух исходных. Совмещение диаграмм рис. 2.3.4, 2.3.5 наводит на мысль о совмещенгш двух функциональных зависимостей‘ (3.6), (3.7) B одну зависимость. Когда задается значение РЕСПУБШЛКИ, то по формуле (3.6) может быть определено значение КРАЕВ, . . . По полученному списку КРАЕВ, . . . формула (3.7) определяет один ЭКОНОМИЧЕСКИЙ РАЙОН или несколь- ко ЭКОНОМИЧЕСКИХ РАЙОНОВ, в которые входят найденные КРАЯ, . . . Так что каждое значеъше РЕСПУБШ/[КИ определят одно или несколько соответствующих „значений ЭКОНОМИЧЕСКОГО РАЙОНА. Справедливо и обратное: каждое значение ЭКОНОМИЧЕСКОГО РАЙОНА определяет одно или несколько значений РЕСПУБШЛКИ. Если бы было так, что одно- му значению РЕСПУБШ/[КИ соответствовало бы всегда несколько значе- ний ЭКОНОМИЧЕСКОГО РАЙОНА, а одному значению ЭКОНОМИЧЕС- СКОГ О РАЙОНА — всегда одно значение РЕСПУБЛИКИ, то аргумент РЕСПУБЛИКА мог бы быть назначен групхшрующим над аргументом ЭКОНОМИЧЕСКИЙ РАЙОН и в такой роли введен в зависимость (3.7). Предложенное свойство не выдерживается. Это, однако, не мешает ввес- ти в зависимость (3.7) дополнительный аргумент РЕСПУБШЛКА, ибо его значения определяются через значения уже имеющегося там аргумента ЭКОНОМИЧЕСКИЙ РАЙОН. Похожие рассуждения приводят к возмож- ности введения в зависимость (3.6) дополнительного аргумента ЭКОНО- МИЧЕСКИЙ РАЙОН. Третий вариант описания изучаемого информационного объекта имеет дело с одной фуьпашональной зависимостью:  712 = 0(Ё1 ‚ E2 s .53} (3-8) СТРАНА ° ‚ ссср  зконо-’  волго- укралн- восточно- узбек- ‚донецко- РЕспъ/Б- Mn_';|Ec- рсфср вят- спая carJ_/rpc - смея приди/ее- ЛИКА кии c/007 сср /am сср редок/ш  РАЙОН ‚Яд. Д. KP/\S|,OBJ1ACTH, щоьков- жиров: . ‘колдовская I/yaa/1/0/(:31; ‘заражаясь: харькЬЁ -° дсср или круп- скал скал двор двор граде/тая скал НЫЕ ГОРОДА  Рис. 2.3.7. КРАЯ, ОБЛАСТИ, АССР или КРУПНЫЕ ГОРОДА = G (СТРАНА, РЕСПУБ- ЛИКА, экономичвскии РАЙОН)  70  ч... 
INF = АДМИНИСТРАТИВНО-ТЕРРИТОРИАЛЬНОЕ ДЕЛЕНИЕ СТРАНЫ И ДЕЛЕ- НИЕ СТРАНЫ НА ЭКОНОМИЧЕСКИЕ РАЙОНЫ; СТРАНА = S (TEXT); РЕСПУБ- ЛИКА = S (TEXT); ЭКОНОМИЧЕСКИЙ РАЙОН = S (TEXT); КРАЯ, ОБЛАСТИ, АОСР ИЛИ КРУПНЫЕ ГОРОДА = G (CTPAHA, РЕСПУБЛИКА, ЭКОНОМИЧЕСКИИ РАЙОН) = = w (КРАЙ, ОБЛАСТЬ, АССР ИЛИ КРУТШЫЙ ГОРОД) = S (TEXT); FIN ‚ Рис. 2.3.8. Третий вариант формализованного описания объекта ”админис'гративно-тер- риториальное деление страны и деление страны на экономические районы”  Она является следствием двух зависимостей (3.6)‚ (3.7) и через них — следствием четырех исходных зависимостей из (3.1) — (3.5). Трехключевая зависимость (3.8) определена не при - всех значениях аргументов 51, 53, 53. Она определена только при таких 51, 53, которые удовлетворяют связи (3.1) ‚ и при таких 51, 53, которые удовлетворяют первой связи из (3.5). Что касается пар значений 53, 53, то между ними также должно существовать соответствие, обязанное паре зависимостей: (3.3) и третьей из (3.5). Таким образом, в одной новой зависимости (3.8) аккумулируются четыре исходных, и каждая из них может быть выделена из (3.8) как зависимость между аргументами (3.8) , отражающая множест- во определения (3.8). Следовательно, функция (3.8) и четыре фут-псции из (3.1)—’(3.5) взаимно эквивалентны. Функция (3.8) отображается диаграммой рис. 2.3.7. Отличительной особенностью этой диаграммы является то, что по сравнению с диаграм- Maw: рис. 2.3.2‚а, 2.3.2, б, 2.3.4, 2.3.5, которые имеют вид дерева, пос- ‘ледняя есть граф общего вида. Фуъпстшя (3.8) может быть также отобра- жена диаграммой вида дерево, для чего необходимо установить субордина- ЦИЮ МеЖдУ ТРЭМЯ аРГУМеНТаЫШ 51 , 53, 53, но такой вариант менее эконо- мен, ибо в нем с неизбежностью будут присутствовать верцшны сравными именами. Дело объясняется тем, что аргументы РЕСПУБШ/[КА и ЭКОНО- МИЧЕСКИЙ РАЙОН не относятся один к другому как групхшрующий и группируемый аргументы. . Укажем, к каким типам относятся запросы из п. 3.3, когда они реализу- ются на зависимости (3.8) . Первый запрос касается множества определения фуъпсшш (3.8). Второй и третий запросы суть общие запросы относительно аргументов (3.8). Четвертый запрос — прямой. Пятый — обратньпй. Шестой запрос, подобно первому, касается множества определеъшя (3.8). Третий вариант формализованного охшсания изучаемого информацион- ного объекта‚ базирующийся на одной трехключевой зависимости (3.8), дан на рис. 2.3.8.  § 4. ‘ээморфлот 99  До сих пор знакомства с новыми информационными объектами начинались с таб- ЛИЦ. Содержательные описания объектов выглядели как комментарии к кем-то сфор- мированным таблицам, а построение моделей для них — как перевод из табличного °Т°5Ражения в формализованное описание с использованием располагаемых формаль- ных терминов. Рассмотрим теперь пример, где нет подобной подсказки. 4.1. Запросы. Проектирование любого информационного объекта должно начинать- ся С Установления круга запросов, адресуемых ему. Объект ”морфлот” ориентируется "а Сведения, предназначаемые для расчетов морских перевозок, которые имеют Р°3Ультатом прикрепление грузов к судам. В связи с этим сведения, накапливаемые В объекте, должны быть достаточными для ответов на следующие вопросы:  71, 
1° . Какие грузы закреплены за таким-то судном в плановом периоде? 2° . Какие суда будут в таком-то порту такого-то числа? 3° . Какие грузы будут дожидаться перевозки в таком-то порту такого-то числа и кто владельцы этих грузов? . 4° . Какие суда оканчивают рейсы такого-то числа? 5° . Какой ДОХОД В долларах США получит такое-то судно за такой-то рейс? б° - Какие сУда и в каких портах будут приняты после аренды такого-то числа? 7° . Какие суда и в каких портах начнут ремонтироваться такого-то числа? Перечисленные запросы далеко не исчерпывают возможный круг запросов, однако достаточны для того, чтобы сформировать информационный объект. 4.2. Содержательное описание. Каждое судно в каждый момент времени может либо быть в рейсе под управлением собственного пароходства (рейс), либо быть В рейсе Под Управлением арендатора (аренда), либо быть в ремонте (ремонт). Рейс характеризуется наименованиями порта начала рейса и порта окончания рейса, датами начала и окончания рейса, а также доходами и расходами в целом за рейс. Кроме того, рейс характеризуется портами захода, датами прибытия в них и отправле- Ёия из НИХ и операциями В H0p'l'dX захода над перевозимыми грузами (погрузка или выгрузка). ' Когда СУДНО НЗХОДИТСЯ В аренды ТО Подробности, касающиеся его остановок в рей- се, не нужны для решения задач грузоперевозок. Здесь интересны: дата и порт начала аренды, дата и порт окончания аренды, имя арендатора, а также итоговые доходы и расходы за аренду. О ремонте достаточны такие сведения: порт ремонта, даты начала и окончания ремонта, доходы и расходы за ремонт. К перечисленным сведениям о заданиях, которые выполняют суда, необходимо еще добавить собственные характеристики судов: скорость хода и грузоподъемность. ' Обратимся теперь к грузам. Каждый груз характеризуется своим кодом, а также весом, именем владельца, датой готовности груза к перевозке и портом отправления, датой доставкигруза получателю и портом назначения. Под любой датой, которая здесь упоминалась, подразумевается такой комплекс: год, месяц, число, час. Доходы состоят из статей доходов, видов валюты и сумм доходов; расходы — из статей расходов, видов валюты и сумм расходов. Положим для простоты, что по каждой статье дохода или расхода всегда получается одна запись — один вид валюты (но статей в доходах и расходах может бытъ много). По этому содержательному описанию информационного объекта ”морфлот” можно судить, что в нем представлены далеко не все сведения, необходимые для расчетов морских грузоперевозок; в частности, нет сведений о портах. 4.3. Переменные. Извлечем из примеров запросов (п. 4.1) и содержательного описания (п. 4.2) наименования информационных переменных, с которыми будет иметь дело формализованное описание. - Если следовать непосредственно тексту п. 4.2, то получается такой список пере- менных: 1°. НАИМЕНОВАНИЕ СУДНА, 2° . ДАТА НАЧАЛА РЕЙСА‚ з°-. ДАТА ОКОНЧАНИЯ РЕЙСА, 4°. ПОРТ НАЧАЛА РЕЙСА‚_‚ 5° . ПОРТ ОКОНЧАНИЯ РЕИСА‚ 6°. доходы ЗА гвйс, 7°. РАСХОДЫ ЗА гвйс, 8°. НАИМЕНОВАНИЕ ПОРТА ЗАХОДА, 9°. ДАТА ПРИБЫТИЯ В ПОРТ, _ __ 10°. ДАТА ОТПРАВЛЕНИЯ ИЗ ПОРТА, 11°. КОД ГРУЗА, 12° . ОПЕРАЦИЯ НАД ГРУЗОМ‚ 13° . ДАТА НАЧАЛА АРЕНДЫ, 14° . ДАТА ОКОНЧАНИЯ АРЕНДЫ, 15°. ПОРТ НАЧАЛА АРЕНДЫ, 16° . ПОРТ ОКОНЧАНИЯ АРЕНДЫ, 17° . ДОХОДЫ ЗА АРЕНДУ,  72 
18°. РАСХОДЫ ЗА АРЕНДУ, 19° . ИМЯ АРЕНДАТОРА, 20°. ДАТА НАЧАЛА РЕМОНТА, 21° . ДАТА ОКОНЧАНИЯ РЕМОНТА, 22°.-ПОРТ РЕМОНТА, . 23°. ДОХОДЫ ЗА РЕМОНТ, ~ 24°. РАСХОДЫ ЗА РЕМОНТ, 25°. СКОРОСТЬ ХОДА СУДНА, 26°. ГРУЗОПОДЪЕМНОСТЬ СУДНА, 27° . ВЕС ГРУЗА, 28° . ИМЯ ГРУЗОВЛАДЕЛЬЦА, 29°. ДАТА ГОТОВНОСТИ ГРУЗА К ПЕРЕВОЗКЕ, 30°. ДАТА ДОСТАВКИ ГРУЗА ПОЛУЧАТЕЛЮ, 31° . .ПОРТ ОТПРАВЛЕНИЯ “ГРУЗА, 32°. ПОРТ НАЗНАЧЕНИЯ ГРУЗА, ° ГОД, МЕСЯЦ, ЧИСЛО, ЧАС, СТАТЬЯ, ВИД ВАЛЮТЫ, СУММА. Все переменные, начинающуюся со слова ДАТА, будем считать векторами с компонен- тами ГОД, МЕСЯЦ, ЧИСЛО, ЧАС; связь между ними описывается формулой век- тора; например (см. общую формулу (5.3) предЫдУшей главы):  ДАТА НАЧАЛА РЕЙСА = V (ГОД, мвсяц, число, ЧАС). (м)  Все переменные, начинаюцшеся со слов ДОХОДЫ ЗА . . . , будем считать множест- венными векторными переменными (см. п. 5.3 предыдущей главы). По правилам об- ращения с множественными векторными переменными к каждой из них присоединяет- ся соответствующий присоединенный вектор; наименования этих векторов выберем такие, чтобы они начинались со слов ДОХОД ЗА . . . , а продолжались теми словами, которые есть в наименованиях их множественных векторных переменных. Векторы ДОХОД ЗА . . . имеют компонентами переменные СТАТЬЯ, ВИД ВАЛ10- ТЫ, СУММА.- Отношения между упомянутыми в этом абзаце переменными описываются формулами множественности и формулами вектора. Например:  доходы ЗА гвйс = w (доход ЗА РЕЙС);  4.2 доход ЗА РЕЙС = V (СТАТЬЯ, вид ВАЛЮТЫ, СУММА). ( ) Переменные РАСХОДЫ ЗА .. . подобны переменным ДОХОДЫ ЗА . .. После тех толкований, которые даны группам переменных ДАТА . . . , ДОХО- Dbl ЗА . . . и РАСХОДЫ ЗА . . . , полный список переменных МОРФЛОТА полу- чается дополнением переменных 1° -:- 32° следующими переменными: — ДОХОД ЗА . . . , СТАТЬЯ, ВИД ВАЛЮТЫ, СУММА рядом скаждой перемен- ной ДОХОДЫ ЗА . . . ; — РАСХОД ЗА . . . , СТАТЬЯ, ВИД ВАЛЮТЫ, СУММА рядомскаждой пере-  менной РАСХОДЫ ЗА . . . ; — ГОД, МЕСЯЦ, ЧИСЛО, ЧАС рядом скаждой переменной ДАТА . . .  Все прочие переменные из списка 1° +32° no своей природе — элементарные скаляр- ные. Отметим, что три группы переменных: ДАТА . . . , ДОХОДЫ ЗА . . . , РАСХО- ДЫ 3A . . . допускают также толкование как элементарные скалярные переменные. Такое решение сделало бы невозможным доступ к компонентам векторов и к элемен- там множественных значений. 4.4. Сокращение списка переменных. - 4.4.1. Сначала, чтобы больше переменных сделать единообразными и тем упростить описаъше, изменим состав переменныж-относяцшхся к ремонту: исключим из списка ПОРТ РЕМОНТА и добавим в список ПОРТ НАЧАЛА РЕМОНТА и ПОРТ ОКОН- ЧАНИЯ РЕМОНТА. Условимся затшсывать наименование конкретного порта ремонта Одновременно как значение ПОРТА НАЧАЛА РЕМОНТА и как значение ПОРТА ОКОНЧАНИЯ РЕМОНТА. Такая коррекция не искажает содержательную картину. Теперь в списке переменных МОРФЛОТА фигурирует восемь троек информацион- Но подобных переменных: 73 
1°. ДАТА нАчАлА РЕЙСА, ДАТА НАЧАЛА АРЕНДЫ, дАтА НАчАлА РЕ- МОНТА; 2°. ДАТА ОКОНЧАНИЯ РЕЙСА, дАтА окончАния АРЕНДЫ, ДАТА окон- ЧАНИЯ РЕМОНТА; з°. поРт НАЧАЛА РЕЙСА, ПОРТ НАЧАЛА АРЕНДЫ, ПОРТ нАчАлА РЕ- МОНТА; 4°. ПОРТ окончАния РЕЙСА, ПОРТ ОКОНЧАНИЯ АРЕНДЫ, ПОРТ окон- ЧАНИЯ РЕМОНТА; 5°. ДОХОДЫ ЗА РЕЙС, ДОХОДЫ ЗА АРЕНДУ, ДохоДы ЗА РЕМОНТ; 6°. ДОХОД зА РЕЙС, Доход ЗА АРЕНДУ, доход ЗА РЕМОНТ; 7°. РАСхоДы ЗА РЕЙС, РАСхоДы ЗА АРЕНДУ, РАСхоДы ЗА РЕМОНТ; sf. РАСХОД ЗА РЕЙС, РАСХОД ЗА АРЕНДУ, РАСхоД ЗА РЕМОНТ.  Переменные в каждой тройке различаются только последними словами в их наиме- нованиях: . . . РЕИС, . . . АРЕНДА, . . . РЕМОНТ. Это обстоятельство открывает возможность для сокращения списка переменных. Введем следующие восемь пере- менных:  . ДАТА НАЧАЛА ЗАДАНИЯ, ДАТА ОКОНЧАНИЯ ЗАДАНИЯ, ПОРТ НАЧАЛА ЗАДАНИЯ, ПОРТ ОКОНЧАНИЯ ЗАДАНИЯ, . ДОХОДЫ ЗА ЗАДАНИЕ, ДОХОД ЗА ЗАДАНИЕ, . РАСХОДЫ ЗА ЗАДАНИЕ, . РАСХОД ЗА ЗАДАНИЕ,  а также еще девятую переменную ВИД ЗАДАНИЯ с тремя значениями: рейс, аренда, ремонт: Новые девять переменных эквивалентны старым двадцати четырем, если эти- ми новыми переменными пользоваться следующим образом: сопровождать наимено- вание новой переменной указанием значения переменной ВИД ЗАДАНИЯ. Напри- мер, раньше конкретная дата начала рейса была значением переменной ДАТА НАЧА- лА РЕЙСА, теперь она - значение переменной ДАТА нАчАлА ЗАДАНИЯ при условии: ВИД ЗАДАНИЯ = рейс. Заменим новыми девятью переменными старые Двадцать четыре переменных. Эта замена выгодна для описания, так как значительно сокращает список переменных. Что касается запросов, то среди них есть такие, которые в новых переменных форму- лируются короче, но есть и такие, которые формулируются длиннее. Первый пример. Раньше запрос 2° из п. 4.1 (в котором спрашивается о судах, прибывающих в такой-то порт такого-то числа, и не уточняется, после какого вида задания они прибывают — после рейса, после аренды или после ремонта) записывался как имеющий три пары условий: выдать НАИМЕНОВАНИЕ СУДНА при условии, что ПОРТ ОКОНЧАНИЯ РЕЙСА равняется такому-то порту и ДАТА ОКОНЧАНИЯ РЕЙСА равняется такой-то дате, или ПОРТ ОКОНЧАНИЯ АРЕНДЫ равняется тому же порту и ДАТА ОКОНЧАНИЯ АРЕНДЫ равняется той же дате, или ПОРТ ОКОНЧАНИЯ РЕМОНТА равняется тому же порту и ДАТА ОКОНЧАНИЯ РЕМОН- ТА равняется той же дате. Теперь этот же запрос формулируется короче, ибо в условии запроса He нужно ука- зывать отдельно . . . РЕЙС, отдельно . . . АРЕНДУ и отдельно . . . РЕМОНТ: вы- дать НАИМЕНОВАНИЕ СУДНА при условии, что ПОРТ ОКОНЧАНИЯ ЗАДАНИЯ равняется такому-то порту и ДАТА ОКОНЧАНИЯ ЗАДАНИЯ равняется такой-то дате. Второй пример. Раньше запрос 4° из п. 4.1 (в котором спрацшвается о судах, заканчивающих рейс в такую-то дату) формулировался так: выдать НАИМЕНОВА- НИЕ СУДНА при условии, что ДАТА ОКОНЧАНИЯ РЕЙСА равняется такой-то да- те. Теперь его формулировка стала длиннее, ибо добавилось условие на вид задания: выдать НАИМЕНОВАНИЕ СУДНА при условии, что ДАТА ОКОНЧАНИЯ ЗАДА- НИЯ равняется такой-то датеи ВИД ЗАДАНИЯ = рейс. 4.4.2. Три вида задания — рейс, аренда и ремонт — описывались первоначально вооемыо тройками подобных переменных и еще другими не подобными между собою переменными. Первые заменены на девять новых переменных, вторых изменения не коснулись. Эти вторые суть следующие переменные: НАИМЕНОВАНИЕ ПОРТА  74  °%‘B°3"3"%°%“%"6  „из. an “Удод 
Таблица 4.1  Наименования переменных, их обозначения и отношения между переменными ”мор  флота” ы° Наименование переменной Обозначение и отношения 1 ГОД 51 2 МЕСЯЦ б: 3 ЧИСЛО 53 4 ЧАС 54 5 НАИМЕНОВАНИЕ СУДНА г, 6 СКОРОСТЬ ХОДА т = F(£1-) 7 ГРУЗОПОДЪЕМНОСТЬ т = F(E1) в ДАтА НАЧАЛА ЗАДАНИЯ г, = V(a, ,s,,a3 , в.) =F(£,) 9 ДАТА ОКОНЧАНИЯ ЗАДАНИЯ а, = L(£,) = F (г, , д) 10 ПОРТ НАЧАЛА ЗАДАНИЯ п, =F(£1 ,$,) I 1 ПОРТ ОКОНЧАНИЯ ЗАДАНИЯ 114 = F (£1 , д) 12 ДОХОД ЗА ЗАДАНИЕ. СТАТЬЯ Е, 13 РАСХОД ЗА ЗАДАНИЕ. СТАТЬЯ £4 14 ВИД ВАЛЮТЫ п, 15 СУММА т; ~ 16 ДОХОД ЗА ЗАДАНИЕ. а, = тез ‚ т, т) =Р'($‚ ‚ Ё, ‚ $3) 17 ДОХОДЫ ЗА ЗАДАНИЕ ф, = W(oz,) = G(g1 , $2)  l\Jl\)t\)t\)I—-I- UJNI-*O\DOO  24  25 26 27 28 29  30 ‘Ч  32  33 34 35  36  37 38  рАсхоД ЗА ЗАДАНИЕ РАСХОДЫ ЗА ЗАДАНИЕ вид ЗАДАНИЯ имя АРЕНДАТОРА ДАтА привытия в порт ДАТА ОТПРАВЛЕНИЯ из ПОРТА НАИМЕНОВАНИЕ портА ЗА- ХОДА код ГРУЗА ОПЕРАЦИЯ НАД грузом ОПЕРАЦИЯ в порту ОПЕРАЦИИ в порту сввдвния ов ОСТАНОВКЕ сввдвния ов ОСТАНОВКАХ СВЕДЕНИЯ о РЕМОНТАХ ДОПОЛНЕНИЕ к ЗАДАНИЯМ  BEC ГРУЗА имя ГРУЗОВЛАДЕЛЬЦА ДАтА готовности ГРУЗА к пврввозкв ДАТА ДОСТАВКИ ГРУЗА полу- ЧАТЕПЮ ‘ порт ОТПРАВЛЕНИЯ грузА порт НАЗНАЧЕНИЯ ГРУЗА  аз = V($4,7?5,"75)=F(E;,£¢.$4) ‘Pg =W(0t3)=G($1,~‘;'g) '07 =F(£19£g) п; = F(€;,~‘;',,) $5 =L($2)=F(£1a$29$5) 014 =L(E¢)=F($;,$,,E5)  т =F(£, .£,,E_.,)  $5 то =Р`(Ё‚‚Ё‚‚З5‚Ед) as = V(E5)7!?1o) ‘Р; =И’(Ог5)=С(Ё1‚°Ё‚‚Ё5) 0'-5 ='V(€5,°‘4,7?9.\P3) ¢'4 =W(0t5)‘-'G(E,.E,)  7711 I б, = U011./n-, =n$1),n./n7 =n$2), т 1/n7 = =n§3)) т, =Р(Е.‚) т, =Р(г.‚)  av] oz. =L(E,)=F(E6)  n,.=F(-S5) 771 5 =F(E5)  75 
ЗАХОДА, ДАТА ПРИБЫТИЯ В ПОРТ, ДАТА ОТПРАВЛЕНИЯ ИЗ ПОРТА, КОД ГРУЗА, ОПЕРАЦИЯ НАД ГРУЗОМ, ВЕС ГРУЗА, ИМЯ ГРУЗОВЛАДЕЛЬЦА, ДАТА ГОТОВНОСТИ ГРУЗА К ПЕРЕВОЗКЕ, ДАТА ДОСТАВКИ ГРУЗА ПОЛУ- ЧАТЕЛЮ, ПОРТ ОТПРАВЛЕНИЯ ГРУЗА, ПОРТ НАЗНАЧЕНИЯ ГРУЗА, ИМЯ АРЕНДАТОРА. В приведенном списке нет ни одной переменной, относящейся к ремонту, — ремонт исчерпывающе характеризуется новыми девятью переменными. Переменная ИМЯ АРЕНДАТОРА дополняет новые девять переменныхв части аренды. Остальные переменные из последнего списка входят в описание рейса.  4.4.3. В табл.4.1‚ собраны все переменные ”морфлота” в той редакции, которая '  сложилась в настоящем пункте. Помимо перечисленных в тексте, там фигурируют еще дополнительные переменные, необходимые для введения составной функции, которая позволяет более экономно описывать информационный объект и о которой будет идти речь в конце следующего пункта. - ' Перечень переменных открывают четыре вспомогательные переменные: ГОД, МЕ- СЯЦ, ЧИСЛО, ЧАС, которые являются компонентами любого вектора, начинающего- ся со слова ДАТА. Переменные от номера 5 до номера 32 можно считать составляю- щими часть изучаемого информационного объекта, называемую ”хроники заданий”. Переменные от номера 33 до номера 38 плюс переменная номер 25 составляют ”хроники грузов”. ° 4.5. Отношения между переменными. В правом столбце табл. 4.1 даны обозначения переменных (если в строке с наименованием какой-то переменной записано равенство, то обозначение этой переменной занимает левую часть равенства). Там же представле- ны отношения переменных, которые включают формулы функциональной зависимо- сти, формулы вектора, формулы множественности и формулы подобия. 4.5.1. Среди переменных, относящихся к ”хроникам заданий”, переменная НАИМЕНОВАНИЕ СУДНА (г ‚) принята за аргумент. Основанием для такого выбора может быть уверенность, что в больцшнстве будущих запросов НАИМЕНОВАНИЕ  СУДНА будет задаваться, а не спрашиваться. Все зависимые переменные, входящие '  в ”хроники заданий”, зависят от конкретного судна, которое идентифицируется своим наименованием. Будем считать, что в пароходстве, взятом для описания, нет су- дов с одинаковыми наименоваъшями. Это предположение обеспечивает уникальность по аргументу НАИМЕНОВАНИЕ СУДНА зависимостей, выводимых ниже. Только от НАИМЕНОВАНИЯ СУДНА зависят две переменные: СКОРОСТЬ ХО- ДА (n1) И ГРУЗОПОДЪЕМНОСТЬ (17,) — они являются характеристиками кон- кретного судна (см. 5 и 6 строки в табл. 4.1.).  Еще один аргумент в зависимостях, которые связывают переменные из ”хроник „  заданий”, — ДАТА НАЧАЛА ЗАДАНИЯ ($2). Bce зависимые переменные из ”хроник заданий”, кроме СКОРОСТИ ХОДА и ГРУЗОПОДЪЕМНОСТИ, зависят от конкрет- ного задания конкретного судна. В рассматриваемом списке только две переменные в роли аргумента — ДАТА НАЧАЛА ЗАДАНИЯ или ДАТА ОКОНЧАНИЯ ЗАДА- ния совместно с НАИМЕНОВАНИЕМ СУДНА — идентифицируют задания судов, обеспечивая уникальность обсуждаемых зависимостей. Все прочие, подходящие на роль второго аргумента, не обладают таким свойством. Скажем. из какого-то порта могут начинаться не одно, а несколько заданий такого-то судна и в каком-то порту мо- гут заканчиваться несколько заданий такого-то судна; поэтому аргументы ПОРТ НА- ЧАЛА ЗАДАНИЯ H ПОРТ ОКОНЧАНИЯ ЗАДАНИЯ могут не обеспечивать уни- кальности. В то же время ДАТА НАЧАЛА ЗАДАНИЯ и ДАТА ОКОНЧАНИЯ ЗА- ДАНИЯ различны для различных заданий одного и того же судна. Из двух претенден- тов на роль второго аргумента выбрана ДАТА НАЧАЛА ЗАДАНИЯ, так как опять считается, что она скорее будет задаваться, чем запрашиваться в запросах. ДАТА НАЧАЛА ЗАДАНИЯ, подобно воем ДАТАМ из списка ”морфлота”. есть вектор и имеет компонентами переменные, указанные в форМУЛе (4-1). Такая же фор- мула, но в обозначениях, фигурирует в 8-й строке табл. 4.1. Тот факт, что векторная переменная может выступать в роли аргумента, уже Обсуждался в п. 5.2 гл. 1, Напомним, что в этом случае компоненты вектора-аргумента являются зависимыми переменными, зависящими от своего вектора, который назначен аргументом; ГОД, МЕСЯЦ, ЧИСЛО и ЧАС начала задания Зависят ОТ .ДАТЫ НАЧАЛА ЗАДАНИЯ: .  76  ы.  I -.a .Iu|M_,.4¢_..:............. :........_r_un—o.m.~_.< м 
ДАТА НАЧАЛА ЗАДАНИЯ. год; ДАТА НАчАлА зАдАниямвсяц; ДАТА НАЧАЛА ЗАДАНИЯ. число; ДАТА НАЧАЛА ЗАДАНИЯ.ЧАС= „ч: (ДАТА НАЧАЛА ЗАДАНИЯ). у (43)  при записи функциональных зависимостей (4.3) использованы два соглашения, принятые в § 5 и § 6 предЫдУЩей главы. Правило 4° из п. 6.6 позволяет однократно записывать правые части отношений, если в подряд идущих формулах они одинаковы; при этом левые части разделяются точками с запятыми, а знак равенства пишется один раз перед правой частью. Второе, использованное в (4.3) соглашение, — это правило записи компонент вектора (см. п. 5.2). Оно применяется тогда, когда две или несколько переменных из описания информационного объекта имеют одинаковые наименования. Запись (4.3) функциональных зависимостей компонент вектора ДАТА НАЧАЛА ЗАДАНИЯ может быть сокращена, если воспользоваться еще одним соглашением из п. 5.2 гл.1 (см. в разделе 5.2.3 переход от зависимостей компонент вектора к зависимости вектора) :  ДАТА НАЧАЛА ЗАДАНИЯ = F (ДАТА НАЧАЛА ЗАДАНИЯ). (4.4)  Именно последняя формула, но в обозначениях, приведена в 8-й строке табл. 4.1. Там две формулы — формула вектора (4.1) и формула функционалыюй зависимо- сги (4.4) — записаны в виде‘цепочки без повторов левой части, как это разрешает правило 3° ИЗ п. 6.6 гл. 1. ° ' С каждым конкретным заданием каждого конкретного судна связаны такие харак- теристики: дата окончания задания, порты начала и окончания задания, в°ид задания (рейс, аренда или ремонт), а также еще ряд характерисшк, о которых речь впереди. Формально это звучит так. Вектор ДАТА ОКОНЧАНИЯ ЗАДАНИЯ (ад) и элемен- тарные скалярные переменные: ПОРТ НАЧАЛА ЗАДАНИЯ (из), ПОРТ ОКОНЧА- НИЯ ЗАДАНИЯ (т), ВИД ЗАДАНИЯ (n.,) — однозначно и уникально зависят от пары аргументов: НАИМЕНОВАНИЕ СУДНА ($1) `и ДАТА НАЧАЛА ЗАДА- НИЯ (2,). Указанные зависимости записаны в правом столбце табл. 4.1. К этому следует добавить, что в 9-й строке вместе с функциональной зависимостью присутст- вует определение вектора ДАТА ОКОНЧАНИЯ ЗАДАНИЯ (а, ), которое выражено формулой подобия сопорной переменной ДАТА НАЧАЛА ЗАДАНИЯ (22). Переменные ДОХОДЫ ЗА ЗАДАНИЕ (411) И РАСХОДЫ ЗА ЗАДАНИЕ (щ), выступающие как множественные векторные переменные по отношеъшю к своим тройкам: СТАТЬЯ, ВИД ВАЛЮТЫ, СУММА, также являются зависящими от аргу- ментов НАИМЕНОВАНИЕ СУДНА и‘ ДАТА НАЧАЛА ЗАДАНИЯ. Действительно, перечни доходных и расходных записей после каждого рейса каждого судна опреде- ляются идентификатором судна и идентификатором задания, каковые суть значения двух упомянутых аргументов. Эти зависимости — Многозначные, так как переменные ДОХОДЫ ЗА ЗАДАНИЕ и РАСХОДЫ ЗА ЗАДАНИЕ — множественные (см. 16 и 18 строки табл. 4.1). Присоединенные к mm переменные: ДОХОД ЗА ЗАДА- НИЕ (а‚) и РАСХОД ЗА ЗАДАНИЕ (0:3) — векторы, имеющие равные тройки компонент (см. строки 15-18). Первые компоненты в них: ДОХОД ЗА ЗАДАНИЕ. СТАТЬЯ, РАСХОД ЗА ЗАДАНИЕ. СТАТЬЯ выбраны в качестве аргументов, значения которых выделяют в перечнях доходных и расходных записей по одной записи (см. 12-ю строку табл. 4.1). Переменные — компоненты векторов ДОХОД ЗА ЗАДАНИЕ (ад) и РАСХОД ЗА ЗАДАНИЕ (аз) при таком выборе суть уникальные и однозначные функцгш своих троек аргументов: НАИМЕНОВАНИЕ СУДНА ($1), ДАТА НАЧАЛА ЗАДАНИЯ (г‚), ДОХОД ЗА ЗАДАНИЕ. СТАТЬЯ ($3) и НАИМЕНОВАНИЕ СУДНА (51), ДАТА НАЧАЛА ЗАДАНИЯ (2,), РАСХОД ЗА ЗАДАНИЕ. СТАТЬЯ- (54), о чем записано в 16-й и 18-й строках табл. 4.1. Заметим, что уникальность по третьим аргументам обсуждаемых зависимостей есть Следствие предположения из п. 4.2 о неповторяемости статей в перечнях доходных и расходных записей. 4.5.2. Формулы функциональных зависимостей из строк 5 —:—20 имеют равное отно- шение к рейсу, аренде или ремонту. Поэтому записанные там функции определены При всех значеъшях своих аргументов. Переменная ИМЯ АРЕНДАТОРА имеет опре-  77 
деленные значенияотолько при условии: ВИД ЗАДАНИЯ = аренда; при двух других ВИДАХ ЗАДАНИИ переменная ИМЯ АРЕНДАТОРА не определена. Когда она опре- делена, то каждое ее значение однозначно и уникально обусловливается конкретным НАИМЕНОВАНИЕМ СУДНА и конкретной ДАТОЙ НАЧАЛА ЗАДАНИЯ, что отме- чено в 21-й строке табл. 4.1. ‚‚ Следующая группа переменных из ”хроник заданий” — ДАТА ПРИБЫТИЯ В ПОРТ, ДАТА ОТПРАВПЕНИЯ ИЗ ПОРТА и НАИМЕНОВАНИЕ ПОРТА ЗАХО- ДА — действительна только в том случае, когда_ ВИД ЗАДАНИЯ = рейс. Эти переменные описывают останов-к-идсудна в рейсе. Среди них ДАТУ ПРИБЫТИЯ В ПОРТ (£5) назначим аргументом, каждое значение которого вместе со значением НАИМЕНОВАНИЯ СУДНА (£1) и значением ДАТЫ НАЧАЛА ЗАДАНИЯ (£2) однозначно и уникально определяет характерисшки конкретной остановки конкрет- ного судна в конкретном рейсе: вектор ДАТА ОТПРАВПЕНИЯ ИЗ ПОРТА (ад), элементарную скалярную переменную. НАИМЕНОВАНИЕ ПОРТА ЗАХОДА (п‚), а также элементарные скалярные переменные — компоненты векторного аргумента ДАТА ПРИБЫТИЯ В ПОРТ. Уникальные зависимости записаны в 22-й, 23-й и 24-й строках табл. -4.1: В 22-й и 23-й строках даны к тому же определения векторов ДАТА ПРИБЫТИЯ В ПОРТ и ДАТА ОТПРАВПЕНИЯ ИЗ ПОРТА. В последних функциональных зависимостях можно бьшо бы назначить аргумен- том ДАТУ ОТПРАВЛЕНИЯ ИЗ ПОРТА, а ДАТУ ПРИБЫТИЯ В ПОРТ сделать зависимой переменной. Такое решение не повдшяло бы на тип функций — они oom- ЛИСЬ бы уникальными однозначными (F). Если же выбрать третьим аргументом НАИМЕНОВАНИЕ ПОРТА ЗАХОДА, то тип F сохранится только при условии, что в любом рейсе каждый порт будет проходиться каждым судном однократно. В противном случае тип F заменится на I, ибо в составе троек значений появятся повторяюцшеся. ОПЕРАЦИЯ НАД `ГРУЗОМ — погрузка или выгрузка — определяется значеъшем НАИМЕНОВАНИЯ СУДНА, значением ДАТЫ ‘НАЧАЛА ЗАДАНИЯ и значением ДАТЫ ПРИБЫТИЯ В ПОРТ, а также еще идентификатором груза — значением КОДА ГРУЗА. Переменная КОД ГРУЗА (26); назначенная аргументом, вместе с тремя первыми аргументами фигурирует в правой части формулы функциональной зависимости, записанной для зависимой переменной ОПЕРАЦИЯ НАД ГРУ- ЗОМ (то) (см. 26-ю строку табл. 4.1). Переменные КОД ГРУЗА и ОПЕРАЦИЯ НАД ГРУЗОМ — последние из списка переменных, принадлежацшх ”хроникам зада- ний”. Они определены, если только ВИД ЗАДАНИЯ = рейс. 4.5.3. Переменные из строк 28 + 32 будут комментироваться в следующем разделе. В настоящем разделе рассмотрим отношения между переменными, входящими в часть изучаемого информационного объекта, которая названа ”хроъшки грузов”. К их числу, помимо ВЕСА ГРУЗА, ИМЕНИ ГРУЗОВЛАДЕЛЪЦА‚ ДАТЫ ГОТОВ- НОСТИ ГРУЗА К ПЕРЕВОЗКЕ, ДАТЫ ДОСТАВКИ ГРУЗА ПОЛУЧАТЕЛЮ, ПОРТА ОТПРАВПЕНИЯ ГРУЗА и ПОРТА НАЗНАЧЕНИЯ ГРУЗА, присоединим еще и КОД ГРУЗА. ‘В заключающих табл. 4.1 строках 33'-:- 38 указано, что идентифи- катор груза, каковым является значение переменной КОД ГРУЗА, однозначно и уникально определяет значения последних шести переменных табл. 4.1. Оставим эти формулы без обоснования ввиду их очевидности. Отметим, что в строках 35-й и 36-й, помимо формул функциональной зависимости, есть еще формулы подобия, которые определяют состав векторов: ДАТА ГОТОВНОСТИ ГРУЗА К ПЕРЕВОЗ- КЕ и ДАТА ДОСТАВКИ ГРУЗА ПОЛУЧАТЕЛЮ. 4.5.4. Каждое судно в каждый момент времени может бытъ либо в рейсе, либо в аренде, либо в ремонте, и не может быть задания, которое описывалось бы одно- временно такими переменными: ИМЯ АРЕНДАТОРА и ДАТА ПРИБЫТИЯ В ПОРТ, ДАТА ОТПРАВПЕНИЯ ИЗ ПОРТА, НАИМЕНОВАНИЕ ПОРТА ЗАХОДА, КОД ГРУЗА, ОПЕРАЦИЯ НАД ‘ГРУЗОМ. Относительно этих переменных возможны два решения. Первое — оставить вое переменные как характеризующие все'три вида заданий. Но переменная ИМЯ АРЕН- ДАТОРА не определена, когда ВИД ЗАДАНИЯ = - ремонт или ВИД ЗАДА- НИЯ = рейс, а переменные ДАТА ПРИБЫТИЯ В ПОРТ, ДАТА ОТПРАВПЕНИЯ ИЗ ПОРТА, НАИМЕНОВАНИЕ ПОРТА ЗАХОДА, КОД ГРУЗА, ОПЕРАЦИЯ НАД ГРУЗОМ не определены, когда ВИД ЗАДАНИЯ = ремонт или ВИД ЗАДА- НИЯ = аренда. Выход из'положения — доопределить переменные какими-то значе-  78  т. ‚щипал. "  ‘$4 Ё Ё >1 а а 
mama, например значением нет при несвойственных переменным наборах значений их apryMeHTOB. второе решение — ввести составную функцию. Примем это второе решеъше и проведем пошотовительные действия. Сначала составим вектор ОПЕРАЦИЯ В ПОР- ту (as) скомпонентами: КОД ГРУЗА ($6) ‘и ОПЕРАЦИЯ НАД ГРУЗОМ (то) (см. 27-ю строку табл. 4.1). Каждое значение этого вектора определяется четверкой значений аргументов: НАИМЕНОВАНИЕ СУДНА (г, )‚ ДАТА НАЧАЛА ЗАДА- НИЯ (£2), ДАТА ПРИБЫТИЯ В ПОРТ (£3), КОД ГРУЗА (гд). Второй шаг. Введем множественную векторную переменную ОПЕРАЦИИ В ПОРТУ (41,), относительно которой вектор ОПЕРАЦИЯ В ПОРТУ является присоединенной переменной. Каждой тройке значений — значению НАИМЕНОВАНИЯ ПОРТА (£1); значению ДАТЫ НАЧАЛА ЗАДАНИЯ (£,) И значению ДАТЫ ПРИБЫТИЯ В ПОРТ ($3) — соответствует одно множественное значение переменной ОПЕРАЦИИ в ПОРТУ (см. 28-ю строку табл. 4.1). Это множественное значение разлагается на столько векторных значений переменной ОПЕРАЦИЯ В ПОРТУ, сколько значений пробегает четвертый аргумент КОД ГРУЗА (£6) при заданной тройке значений пер- вых трех аргументов. КОД ГРУЗА согласно определению из раздела 5.3.4 первой главы — свертывающий аргумент. Третий шаг. Образуем вектор с наименованием СВЕДЕНИЯ оОБ ОСТАНОВ- КЕ (ад), в который включим следующие компоненты: ДАТА ПРИБЫТИЯ В ПОРТ (£5), ДАТА ОТПРАВЛЕНИЯ ИЗ ПОРТА (ад), НАИМЕНОВАНИЕ ПОРТА ЗАХОДА (17,), ОПЕРАЦИИ В ПОРТУ (фа) — все переменные, которые определены при условии ВИД ЗАДАНИЯ = рейс. Четвертый шаг. Установим множественную векторную переменную СВЕДЕНИЯ ОБ ОСТАНОВКАХ op‘) над вектором СВЕДЕНИЯ ОБ ОСТАНОВКЕ (ад) (см.29-ю и 30-ю строки табл. 4.1). Свертывающим аргументом выберем здесь ДАТУ ПРИБЫТИЯ В ПОРТ (£5). Переменная СВЕДЕНИЯ ОБ ОСТАНОВ- КАХ (1114) зависит только от двух первых аргументов ”хроник заданий” — от НАИМЕНОВАНИЯ СУДНА (£1) и от ДАТЫ НАЧАЛА ЗАДАНИЯ (2,). Пятый шаг. Введем тривиалытую переменную СВЕДЕНИЯ О РЕМОНТАХ (nu). Она неразложима ни на какие другие переменные и не имеет ни одного значения (см. п. 6.3.7 гл. 1). Она может считаться зависящей от любого набора аргументов, в том числе от пары: НАИМЕНОВАНИЕ СУДНА (21), ДАТА НАЧАЛА ЗАДА- НИЯ (£2), которая определяет значения переменной СВЕДЕНИЯ ОБ ОСТАНОВ- КАХ (ф, ) . Последний шаг. Теперь в ”хр ониках заданий”имеются три переменные: СВЕДЕНИЯ ОБ ОСТАНОВКАХ (щ), ИМЯ АРЕНДАТОРА (17,) и СВЕДЕНИЯ О РЕМОНТАХ (п, , ) ‚ которые зависят от одного и того же набора аргументов и множества опреде- лений которых устроены так: переменная СВЕДЕНИЯ ОБ OCT АНОВКАХ определена как зависящая от аргументов НАИМЕНОВАНИЕ СУДНА и ДАТА НАЧАЛА ЗАДА- НИЯ при условии: ВИД ЗАДАНИЯ = рейс, переменная ИМЯ АРЕНДАТОРА — при условии: ВИД ЗАДАНИЯ = аренда и переменная СВЕДЕНИЯ О РЕМОНТАХ — при условии ВИД ЗАДАНИЯ = ремонт. Образуем составную переменную ДОПОЛНЕНИЕ К ЗАДАНИЯМ ((3,). Она совпадает со СВЕДЕНИЯМИ ОБ ОСТАНОВКАХ при ВИД ЗАДАНИЯ = рейс, с ИМЕНЕМ АРЕНДАТОРА при ВИД ЗАДАНИЯ = аренда и со СВЕДЕНИЯМИ О РЕМОНТ АХ при ВИД ЗАДАНИЯ = ремонт. Формула составной зависимости приведена в 32-й строке табл. 4.1; там использованы такие дополнитель- ные обозначения: рейс = п, ‚ аренда = п, ), ремонт= ‘п‚‚(3) ‚ ° Если назначить какие-то значения аргументов НАИМЕНОВАНИЕ СУДНА и ДАТА НАЧАЛА ЗАДАНИЯ и вычислить значение переменной ДОПОЛНЕНИЕ К ЗАДА- НИЯМ, то получится либо значение множественной векторной переменной СВЕДЕНИЯ ОБ ОСТАНОВКАХ, либо неразложимое значение элементарной скалярной переменной ИМЯ АРЕНДАТОРА, либо тривиальное значение тривиальной переменной СВЕДЕНИЯ О РЕМОНТАХ; появление первого, второго или третьего значения связано со значе- нием индикаторной переменной ВИД ЗАДАНИЯ, которое определяется назначенными значениями НАИМЕНОВАНИЯ СУДНАи ДАТЫ НАЧАЛА ЗАДАНИЯ. прокомментируем введение составной зависимости в духе раздела 5.4.2 гл. 1, Где Приводятся общие основания для введения составных переменных и составных зависимостей. Возможности сокращения первоначального списка переменных из п. 4.3  79 
-и введения составной зависимости обусловлены Такими свойствами объекта ”мор-  флот”. Первоначальный состав переменных допускает разделение на четыре части: одна часть переменных описывает рейсы судна и информационный объект, составлен- ный из этих переменных, может называться ”хроники рейсов”, вторая часть перемен- ных описывает аренду, они могут быть объединены в ”хроники аренд”, третья часть переменных составляет ”хрон:ики ремонтов” и, наконец, четвертая часть — ”хроники грузов”. Обсудим первые трн объекта. Объекты: ”хроники рейсов”, ”хроники аренд” и ”хроники ремонтов” имеют по восемь подобных переменных и еще неподобные переменные. Взамен восьми троек подобных переменных вводятся восемь новых переменных и девятая, так называе- мая индикаторная переменная, показывающая принадлежность значений этих новых восьми переменных к одному из трех исходных объектов. Отметим, что восемь троек подобных переменных эквивалентны новым девяти переменным. Над неподобными переменными производятся операции по выравниванию состава аргументов. В тех объектах, где это необходимо, вводятся множественные вектор-  INF = МОРФЛОТ;  год з .$'(1)ЕС|4,4|<1980, 1982>); мвсяц = = S(DEC| 1,21<1,31>); ЧАС = S(DECI 1,21 (1,241); НАИМЕНОВАНИЕ СУДНА =S(TEXT| 3,30 1) ="11c"; скорость ХОДА = F(HC) = S(REAL 1s,51<1o,4o>); ГРУЗОПОДЪЕМНОСТЬ = =F(HC) = .S'(REAL); ` ДАТА НАЧАЛА ЗАДАНИЯ = v(ro11, МЕСЯЦ, число, ЧАС) = ”ДНЗ” = F «днз); ДАТА ОКОНЧАНИЯ ЗАДАНИЯ = L (11113) = F(HC, 11H3); ПОРТ НАчАлА зАДА- ния = F(HC, 11H3) = S(TEXT); - ПОРТ ОКОНЧАНИЯ ЗАДАНИЯ =F(HC, 11113) =S(TEXT); . Доход ЗА ЗАДАНИЕ. СТАТЬЯ = s(rExT) = ”ДС”; РАСХОД ЗА ЗАДАНИЕ. сТАТья =S(TEXT) =”PC”; - вид ВАЛЮТЫ -= S(TEXT); СУММА = S(REAL); ДОХОД ЗА ЗАДАНИЕ = =v(11c,B1111 ВАЛЮТЫ, СУММА) = F (НС, 11113, 11c); доходы ЗА зАДАниЕ = W(I[0XOI[ зА› ЗАДАНИЕ); РАСХОД ЗА зАДАНиЕ= =v(1>c, вид ВАЛЮТЫ, СУММА) =F(HC, 11113, PC); РАСХОДЫ ЗА ЗАДАНИЕ = W(PACXO11 3A ЗАДАНИЕ); вид ЗАДАНИЯ =' F(HC, 11113) = s (ТЕХТ’РЕЙС, АРЕНДА, РЕМОНТ’) = “вид”; имя АРЕНДАТОРА =F(HC,11H3) = s (TEXT); ДАТА ПРИБЫТИЯ в ПОРТ = L (11113) = ”ДПП” =F(HC, 11113, ДПП); ДАТА ОТ- ПРАВЛЕНИЯ из ПОРТА 5 L (11113) = F(HC, 11H3, 111111); НАИМЕНОВАНИЕ ПОР- ТА зАхоДА =F(HC, днз, Дпп) =.5'(ТЕХТ); код ГРУЗА =S(DEC) =”*1<”; ОПЕРАЦИЯ НАД ГРУЗОМ =F(HC, 11H3, 111111, к) = = s (TEXT ‘ПОГРУЗКА, ВЫГРУЗКА’) ; опЕРАция в ПОРТУ = v(1<, ОПЕРАЦИЯ НАД ГРУЗОМ); опЕРАции в ПОР- TY = W(OI'IEPAIII/I51 B ПОРТУ); - - _ СВЕДЕНИЯ ов ОСТАНОВКЕ =V(Il,l'III, ДАТА ОТПРАВЛЕНИЯ из ПОРТА, НАИ- мЕНовАНиЕ ПОРТА ЗАХОДА, ОПЕРАЦИИ в ПОРТУ); СВЕДЕНИЯ ов ОСТАНОВКАХ = щевЕДЕния ов ОСТАНОВКЕ); свЕДЕния о РЕМОНТАХ =S(TRIV); ДОПОЛНЕНИЕ к зАДАНиям = Н(СВЕДЕНИЯ ов ОСТАНОВКАХ/ВИД = = ’РЕЙС’‚ имя АРЕНДАТОРА/ВИД = ’АРЕНДА’, СВЕДЕНИЯ. о РЕмоНТАх /вид = ’РЕМОНТ’) ; _ __ ВЕС ГРУЗА =F(K) =S(INT); имя I‘PY30BJ'IAIl.EJ1bIIA=‘F(K) =S(TEXT); ДАТА готовности ГРУЗА к ПЕРЕВОЗКЕ =1‚ (11113) =F(K); ДАТА ДОСТАВКИ ГРУ- ЗА ПОЛУЧАТЕЛЮ = L(11113) = F(K); IIOPT ОТПРАВЛЕНИЯ ГРУЗА = F(I() = =S(TEXT); ПОРТ НАЗНАЧЕНИЯ ГРУЗА =F(I() =S(TEXT); FIN  S(TEXT '1 3,71); число =  Рис. 2.4.1. формализованное описание объекта ”морфлот” 80 
Hue переменные, чем достигается свертывание по лишним аргументам. Над тремя переменными, представляющими три объекта и шиеющшии одинаковый состав аргу- ментов, устанавливается составная переменная. Восемь новых переменных, введен- ных взамен подобных переменных, плюс составная переменная, объединяющая непо- добные переменные, шпос индикаторная переменная — вот состав информационного объекта ”хроники заданий”, образованного вместо трех исходных объектов: ”хрони- ки рейсов”, ”хроники аренд”, ”хроники ремонтов”. 4.6. Формализованное описание объекта ”морфлот” приведено на рис. 2.4.1. Оно совпадает с описанием, данным в табл. 4.1, но с двумя изменениями. Во-первых, рядом с определениями множественных векторных переменных в формализован- ном описании нет указания состава аргументов, от которых они зависят. Во-вторых, в формализованном описании присутствуют еще формулы свойств значений элемен- тарных скалярных переменных.  6. Ю.Н. Иванов 81 
Г1Ъ4ВА 3 МОДЕЛИ ДАННЫХ  Под моделью данных следует понимать описание информашитонного объекта, составленное на языке описаъшя объектов, принятом в такой-то СУБД. Но чаще модель данных трактуется как совокупность выразитель- ных средств языка описаъшя, и здесь этот термин понимается именно так. Сейчас библиография по моделям данньтх насчитывает сотни наименова- ний. Часть из них приведена в списке книг и статей к настоящей главе. Наиболее распространены в литературе и в применениях реляционная, иерархическая, сетевая модели и ИНЭС-модель. Задачи этой главы следующие. Во-первых, позитивно изложить вЬтрази- тельные средства четырех перечисленных тгшов моделей. Во-вторых, сопос- тавить их с выразительными средствами языка, предлагаемого в настоя-- щей книге. '  § 1. Иерархическое представление и ИНЭС-модель  Хотя во введении система ИНЭС была поставлена в один ряд с другими СУБД, все же большее внимание автор будет уделять языкам ИНЭС, неже- ли языкам других СУБД. Оправданием здесь, не считая пристрастности, служит большая теоретическая основательность ИНЭС. Этот параграф посвящен основным выразительным средствам языка описания информа- ционньтх обьектов ИНЭС. База данньтх ИНЭС организована по иерархическому приъщипу, подоб- но некоторым другим базам (IMS [73] , СИНБАД [74] ‚ ОКА [14] и др.). Чтобы быть обслуженными ИНЭС, информационные объекты должны при- водиться к так называемому иерархическому представлеъшю, которое почти совпадает с ИНЭС-моделью объекта. Процедура приведеъшя заклю- чается B дополнении описания информационного объекта, которое выполне- но B терминах табл. 6.1, конструкционными переменными,обеспечивающи- ми иерархическую конструктшю модели. 1.1. Субординация аргументов. Когда рассматриваются одноключевые зависимости, то вопроса о субординацтш аргументов нет. Иерархическое представление переменных, связанных одной многокшочевой зависи- мостью, однозначно определяется порядком субординашити аргументов этой зависимости. Но порядков субординации много и, следовательно, способов иерархически представить переменные тиногокшочевой зависимости тоже  82 
много. Какое из представлений предпочесть? Нужно выбрать такое иерархи- ческое представление, чтобы порождаемая им организация значений обес- петшвала наиболее быстрые ответы на наиболее частые запросы. На примере тройки переменных £1, а, п, связанных одной функцио- нальной зависимостью п = F(£, , £2), покажем, как субординашитя аргумен- тов вызывает нерав ноправность запросов. 1.1.1. Два аргумента допускают два порядка подчинеъшя: либо £1’ старше Ё2(Ё1 > Ё2)›3Шб° 52 СТаРШе 51652 >'Ё1)- Старцшнство одного аргумента над другим порождает организашаю зна- чений в памяти ЭВМ следующего вида: каждое значеъше старшего аргумен- та открывает группу значений; в груште присутствуют все значения млад- шего аргумента из линожества его определения при данном значенгш старше- го аргумента; рядом с каждым значением младшего аргумента записано то значение зависимой переменной, которое соответствует этому значению младшего аргумента и открывающему группу значению старшего аргумен- та; группы расположены в порядке возрастания значений старшего аргумента; значеъшя младшего аргумента упорядочены внутри каждой группы. Получается, что все значения младшего аргумента вместе с соответствую- щими значениями зависимых переменных держатся компактно около свое- го значения старшего аргумента. Когда задается значение старшего аргу- мента, то этим выделяется группа, причем поскольку значения старшего аргумента упорядочены, то выделение группы происходит быстро. Поиск может остановиться на этом, если определяются все значения младшего аргумента и зависимой переменной при заданном значении старшего аргу- мента. Поиск может продолжиться, если определяется значение зависимой переменной при заданных значениях старшего°и младшего аргументов или определяется значение второго аргумента при заданных значениях старше- го аргумента и зависимой переменной. В любом из трех вариантов поиско- вые операции локализуются внутри группы и проходят быстро.„Из-за того, что значения младшего аргумента упорядочены внутри группы, быстрее проходит поиск при заданных значениях младшего и старшего аргументов нежели при заданных значениях зависимой переменной и старшего аргу- мента. ‘ Другое дело, есшит значение старшего аргумента не задано, а задано либо значеъше младшего аргумента, либо значение зависимой переменной, либо, наконец, и то и другое. Тогда поиск не локализуется внутри группы, а свя- зан с перебором групп, что удтшняет по сравнению с предыдущим время подготовки ответа, 1.1.2. Приведенные свойства иерархической организатши значений дают ответ на вопрос о предпочтительной субординашш аргументов. Аргументы, значения которых задаются вусловии запроса, должны занимать верхние уровни субординатши; аргументы, значения которых требуется определить, должны быть подчгшенными; тогда запросы удовлетворяются быстрее, чем при шюм порядке субординации. По-иному дело обстоит с безусловными запросами (запросы, в которых нет условия запроса mm B условии запроса стоит слово все, называются безусловными). Для скорейшей реатшзатши безусловного запроса выгодно, чтобы переменные, все значения которых разыскиваются, находились на  б* 83 
поверхности. Скажем, когда требуется выбрать все значеъшя Е, ‚ то пред- почтительная субординация — £1 >- £2. Действительно, значеъщя £1 при такой субординации открывают грушты. Найдя первое значение £1 , можно сразу же получить второе, не погружаясь внутрь первой грушты, после вто- рого °— сразу получить третье, не вовлекая в поиск содержимое второй грушты, и т.д. Высказанные утверждеъшя относительно условных и безусловных зап- росов справедливы не только для трех переменных из рассмотренного примера, но и для произвольного числа переменных, связанных между со- бой одной фушсциональной зависимостью. 1.1.3. Теперь уместно вернуться к уже обсуждавшемуся в п. 4.3 гл. 1 вопросу об аргументах и зависимых переменных. При иерархической организации, как бьшо указано в п. 1.1.1, значения зависимой переменной сцепляются со значениями младшего аргумента, которым предшествуют значения старших аргументов. Можно считать, что зависимой переменной отводится самый нижний уровень субординации, и при этом полагается, что значения переменной, которая в функциональ- ной зависимости назначена зависимой, скорее будут объектом поиска в условных запросах‚ав безусловных запросах скорее будут запрашиваться одновременно со всеми остальныьш значеъшями переменных из этой функ- тшональной зависимости. Есшл в формулы субординации, которые перво- начально относились только к аргументам, ввести и зависимую перемен- ную,то они запшнутся так: £1 > £2 > ‘п или £2 >- Ед > п. В результате всего получгшось, что при иерархическом. представлении два вопроса: 1) о выделении зависимой переменной из переменных, связан- ных одной функциональной зависимостью, и 2) об установлении суборди- нации среди оставцшхся переменных — аргументов — это две части одного вопроса: о субординации среди всех переменных, входящих в одну функ- циональную зависимость. Общшй рецепт установления субординации для иерархического представ- ления таков. В роли зависимой должна выступать переменная, которая ча- me дРУгих фигурирует в объекте условного запроса, нежели в его условиях‘, и одновременно в безусловных запросах фигурирует чаще всего вместе с остальными переменными из функциональной связи; ей отводится самый нижний уровень субординации. Верхние уровъш должны занимать те переменные, которые чаще задаются в условных запросах, чем являют- ся объектом поиска, и в безусловных запросах чаще всего фигурируют в одиночку, чем в окружеъши других переменных из функциональной связи. 1.1.4. Предпочтительная субординация переменных из функциональной связи определяется видом наиболее частых запросов. Субординация может первоначально задаваться пользователем и может в ходе работы меняться пользователем. Но если в СУБД предусмотрено накопление сведений 0 прошедших запросах, то субординация может автоматически подстраивать- ся под наиболее часто встречающшйся вид запросов. 1.2. Примеры иерархических представлений. В п. 1.4 будет дано опреде- ление иерархического представления объекта, содержащего зависимости с произвольным числом аргументов. Естественный предшествующий шаг На пути к определению — изложение основной идеи такой конструкции. Одна- 84 ` 
ко и он предваряется описанием нескольких простых случаев: иерархи- ческого представления объекта с одноключевыми зависимостями, иерархи- ческого представления объекта с двухключевыми зависимостями и иерар- хического представления объекта с одноключевыми и двухключевыми за- висимостями. Делается так: вводятся некоторые конструкцша, которые без объясненшй объявляются иерархическими: представлениями. Объясне- ния оставлены на последующие пушсты этого параграфа. 1.2.1. Начнем c объектов, содержащих один аргумент и одну зависимую переменную  n=F(£)- (1.1)  Последующее построеъше действительно для однозначных унш‹альных и однозначных неуншсальных зависимостей. Введем вектор а c компонентами Е и 17:  а = V(£. п) =F(Z€)- (1.2)  Вторая компонента этого вектора зависит от аргумента 3;’, первая ком- понента есть сам вектор Е; поэтому вектор а зависит от Е. Пусть 3;’ пробе- гает все доступные ему значения из множества определения E ; тогда век- тор а будет иметь столько значений, сколько их в ьшожестве Е. Будем считать эту совокупность векторных значений одним множественным зна- чеъшем переменной Ф. Последняя принадлежит к множественным вектор- ным переменным. Она относится к вектору а так, как множественная переменная относится к своей присоединенной переменной; она принимает одно множественное значение, поэтому ее mu есть ARRAY;  Ф = W(oz) = ARRAY. (1.3)  Ход построения (1.1)-(1.3) повторяет путь сборки множественной вектор- ной переменной из п. 5.3.2 гл. 1. Совокупность переменных Е, 17, oz, Ф, связанных формулой в_ектора и формулой множественности, а также формулами функциональной зави- симости, образует иерархическое представление объекта, содержащего одну одноключевую однозначную зависимость. Ecnn бы зависимость была неуникальной, но що-прежнему однозначной, то формулы определения иерархического представления (1.2), (1.3) не измеъшзшсь бы. Переменные E, 17, oz, Ф и отношения между ниша отображены на структур- ной диаграмме (рис. 3.1.1). Расположение вершин и направления стрелок на рис. 3.1.1 имеют "следующие основания. Формула множественности (1.3) С0держит в левой части переменную Ф, а в правой — переменную а; форму- па вектора (1.2) содержит в левой части переменную а, а в правой- пере- менные E и 17. Такие положения переменных в формулах можно тракто- вать как подгшненность одних переметшых другим: переменная а подчи- няется Ф (1.3), переменные Е, 17 nomnnmmrca oz (1.2). Согласно этой трак- товке каждая из переменных имеет только одну старшую переменную, За исключением Ф, которая не подчиняется никакой перемеъшой. Поэтому Ф находится на верхнем уровне структурной диаграммы. От нее идет подчи- Няющая стрелка к переменной а; стрелжа отражает отношение между Фи а как между ьшожественной переменной и присоединенной к ней перемен- ной. Из верцшны а вниз идут две подчиняюшие стрешси к верцшне E и 17:  85 
эти стрелки отражают отношения между а и Е, пкак между вектором и его компонентами. Совокупность переменных Е, п, а, Ф изображается на диаграмме в виде дерева; сами переменные оказываются выстроенными в иерархию, поэто- му структура, которую ohm составляют, называется иерархической. Отме- тим, что исходные переменные однокпючевой зависимости 2, n занимают терминальные вершины, а переменная Ф, приъшмающая одно значение, — корневую вершину дерева.  У’ Ф  а Ж 5 72 Puc. 3.1.1. Иерархическое представление однокпючевой зависимости  E 77 Puc. 3. 1.2. Иерархическое представление одноключевого объекта  Сделаем замечания по поводу терминологии. В последующем при обсуж- дентш диаграмм термины ”переменная” и ”верцшна” будут употребляться как тождественные, а термин ”подчгшяющая стрелка” будет иногда заме- няться термином ”луч”. И второе: информационный объект, имеющшй в своем составе только одноключевые зависимости, будет называться одно- ключевым объектом, только одноключевые и двухключевые зависимос- ти — двухключевым объектом и т.д. Пусть теперь однокпючевой объект имеет не одну одноключевую зави- симость, а несколько:  1'7’=F(£) (7?’=n1.n2.--.); (1-4)  символ Ъ’ здесь принят для обозначения набора зависимых переменных, число которых в наборе не оговаривается и каждая из которых зависит от одних и тех же аргументов. Ход построения иерархического представления для этого объекта ‘почти повторяет шаги (1.2) и (1.3); изменение касается только состава вектора а; теперь он записывается так:  0! = V(E.7f) (а = V(s. 171,172, .--))- (1-5)  Каждая компонента нового вектора а зависит от 2, что отражается та- кой же формулой зависимости, как и в случае (1.1) . Сохраняются также рас- суждения, приводящиек переменной Ф, см. (1.3). Структурная, диаграмма, иллюстрирующая отношения между переменны- ми E ‚Й, а, Ф, имеет вид, показанный на рис. 3.1.2. Тот факт, что З- набор зави- симых переменных, показан на рис. 3.1.2 следующим образом: из верцшны а к '57’ идут две стрелки, разделенные многоточием. 1.2.3. Обратимся к двухключевым объектам. В этом разделе рассматри- ваются объекты, содержащие два аргумента $1, £2 и одну зависимую пе- ременную пд 2 mm набор Чём. Пусть сначала объект содержит одну зависи-  86  ч деп. 
мую переменную 7112 =Р(Ё1‚Ё2)- (1-6)  B (1.6) записана функция типа F, НО построение остается в силе и для функ- ции типа 1. Определим субординацию аргументов такои: 51 >- 51. Построить иерар- хическую конструкцию, в которую погружается зависимая переменная 1111 и аргументы 51, 51, выставленные в порядке: 51 > ‹Ё2‚ - это значит образовать совокупность переменных, в которую включаются исходные переменные 51 , 51, 171 1, а также векторы 0:11, 0:1 и множественные вектор- ные переменные 11:1‚ 11:11. Исходные (51 ‚ 51, 1711) и дополнительные (0:11‚0:1‚ ф, ., 11:11) переменные связаны между собой следующими отношениями. Введем вектор 0:1 1: 1  0112 = V(§2,7712)=F(§1,§2)- (1-7)  B его составе подчиненный аргумент 51 и зависимая переменная 1711, зави- сящая, как это чбыло условлено, от двух аргументов 51, 51; поэтому вектор 0:1 1 можно считать зависящим от 51 , 51 . Зафшссируем теперь аргумент 51 ‚ ааргументу 51 (тому, который зани- маетнижъшй уровень субординации и в явном виде фигурирует в составе вектора 0:11) предоставим возможность пробегать все значения из множе- ства определения при данном 51. Тогда вектор 0:11 будет иметь столько значений, сколько элементов в множестве определения при данном 51 . Введем множественную векторную переменную 11/1. Каждое значение 1111 при фиксированном 51 — множественное. Его элементы суть элементы множества значений вектора am, nneumcpnmapyelvmle значениями 51 при данном 51. Вектор 0:11 выступает по отношению к множественной вектор- ной переменной 11:1 как присоединенная переменная по отношению к мно- жественной; каждому значению 51 соответствует свое множественное значение 11:1 :  ¢1=W(°‘12)=G(§1)- (1-8)  Построение (1.7)-(1.8) привело к множественной векторной переменной 11:1, зависящей от одного старшего аргумента 51. Следующшй шаг — введе- ние еще одного вектора, 0:1 :  °11=У(Ё1‚Ф1)=0(Ё1)- (1-9) B составе второго вектора старцшй аргумент S 1 и переменная 11:1, которая согласно (1.8) многозначно зависит от 51; поэтому вектор 0:1 можно пола- гать многозначно зависящим от 51 . Вектор 0:1 имеет столько значений, сколько значений аргумента 51 в области его определения. Будем считать всю эту совокупность значений од- ним множественным значением переменной 11:11 — множественной вектор- ной переменной. Каждый элемент множественного значения 11:11 есть значе- ние вектора 0:1 при каком-то значении 51. Вектор 0:1 выступает как присое- диненная переменная по отношению к 11:11; переменная 11:11 есть сово- Купность:  11:11 = И/(а1)= ARRAY. (1.10)  Ассоциашш семи переменных 51, 51, 1111, 0:11, 11:1‚ 0:1, 11:11, связанных со- 87 
500 Рис. 3.1.3. Иерархическое представление двухкшочевой зависимос- ти  отношениями (1.7) -(1.1О), составляет иерархическое пред- , ставление двухключевого объекта (1.6) при субординации аргументов £1 >- £2: Структурная диаграмма на рис.З.1.3 отношения между семью перемен-  иллюстрирует ными.  G ¢1 Сравним рис. 3.1.1 и 3.1.3, относяп3иеся к одноключе- 51 вой и двухключевой зависимостям. Обе диаграммы от- крываются множественными векторными переменными, 212 принимающими по одному множественному значеъшют Ф и Фо. Им подтшнены верцшны с присоединенными век- торами а и 011 . От каждой из этих верцшн идут по два лу- /\ ча: левые луъш — к аргументам Е И Е 1 ‚ правые — к зависи- 52 д мым переменным 17 и Ф1 . Диаграмма 3.1.1 на этом обры- _ вается, а диаграмма 3.1 .3 имеет продолжение вниз. Вериш- не Ф1 подчинена верцшна с присоединенный к Ф1 вектор- ной переменной 011 2 :31 1&15r6i5dY71—fIB§Ir лучи ко второму аргументу £2 и зави- симой двухключевой переменной 171 2 . ` Если в составе двухключевого объекта имеется не одна зависимость переменная 171 2, а набор 1712 , то формулы иерархического представления в этом случае повторяют (1.7)-(1.10) с одним изменением: в правой части формулы вектора (1.7) фигурирует не одна зависимая переменная 1712, a набор 1712. Структурная диаграмма для нового случая отличается от диаграммы рис. 3.1.3 тем, что нижний правый луч, ведущий 5 1712, заме- няется парои лучеи с многоточием между ними и надписью 1712, как на рис. 3.1.2. Отметим, что нижние индексы при зависимых переменных 1712 , 0112, Ф1‚ 0:1, Фо использованы для того, чтобы показывать аргументы, от которых зависят эти переменные, а также порядок субординации аргументов. 1.2.3. Рассмотрим теперь ситуацию, когда информационный объект содержит одноключевые и двухключевые зависимости: ° Й›1=Р(‹Ё1)‚ fi12"‘F(§1,§2)- (1-11) B формуле (1.11) применены обозначения, предложенные в предьщущем разделе: набор одноключевых переменных, зависящих от аргумента 21, обозначается символом 171, и зависимость от аргумента £1 показана тем,  ‘что к зависимой переменной приписан нижний индекс 1; набор двухключе-  вых зависимых переменных 1712 снабжается парой индексов, взятых от первого и второго аргументов; для всех двухключевых переменных приня- та субординашая 51 ›- 52, поэтому индекс 1 занимает первое место, а ин- декс 2 — второе в обозначении 1712. Отметим следующие два обстоятельства. 1) Одноключевые переменные 171 зависят от аргумента 81, который назначен старшим. 2) Объект (1.11) является двухключевым, но неполным двухключевым; до полного ему не хватает однокшочевых зависимостей от младшего аргумента £2, a также двухключевых зависимостей с противоположным порядком субординашаи. Пусть отдельно для переменных 31, 171 иотдельно для переменных £1, £2, 1712 построены иерархические представления; первое будем называть 88 
одноключевым представлением, второе -— двухключевым. Они вь1ражают- ся такими формулами (ср. (1.2) —(1.3) и (1.7) —(1.1О)):  (1) = ФО = и/(“ЁЪ Oil; = I/($1 ‚ 771); 01%: 7031, Wg). Ё: и‚(а%2)› 0Ё2 = V(§2,7712)- (1-12)  Здесь в отличие от представлений из предыдущих двух разделов вьшиса- ны только формулы векторов и формулы множественности; формулы функциональных зависимостей опущены. Вектор и множественная вектор- ная переменная одноключевого представления отмечены верхним гшдек- сом 1‚ а векторы и множественные векторные переменные двухключевого представления — индексом 2. Диаграмма первого и второго представлений даны на рис. 3.1.4 (ср. c рис. 3.1.1 и c рис. 3.1.3) . Будем строить иерархическое представление для объекта (1.11)‚ приме- няя так называемую операцию объединения представлеъшй. Объединить два представления: (El: Til: ай: И (E19 £29 W12: “ЁЬ ¢2laa%: — это значит ПОЛУЧИТЬ ‘третье представление, в которое вкладываются перемен- ные £1, E 2, H1, 5712. Сначала приведем результат, а потом дадим пояснения. Формулы объединения имеют вид  ‘до = И/(ОЧ), 011 = V651, Фит) 11/1: W(°‘12)» 0512 = т/(Ёз/ЙЁПЗ (1-13)  структурная диаграмма объединения показана на рис. 3.1 .5.‚ прокомментируем пару диаграмм рис. 3.1.4 в сопоставлении с диа- граммой рис. 3.1.5. Еслш вычеркнуть верхние индексы у переменных Фд и а, , то левая диаграмма рис. 3.1.4 почти совпадет c верхнеи частью правои диаграммы рис. 3.1.4 и c верхней частью диаграммы рис. 3.1.5; оъш расхо- дятся только в том, что на третьем уровне одной диаграммы вместе c ‚Е, фигурирует набор 773, на том же уровне второй диаграммы — переменная Фд, а третья диаграмма имеет и п, и :1/1. Будем говорить, что первыи и  1 Уровень ‘I95 ф‘? туповень "°° I 1 2 yp°5°”,b щ а? 2 УПовень а‘ А /N 3 уровень «E. - 77‘. <31 3 Зуровень E1 501 "й I 4 уровень afz 4 Уровень cm 5 Уровень £2 5 уровень 252  Рис. 3.1.4. Одноключевое и двухключевое представления Рис. 3.1.5. Иерархическое представление двухключевого объекта (1.11)  89 
- вни ие архических конструкций (1-12) И (1-13) "P1’1Ha1111e>K3T 1B:;(;)1¢P;(:5I:I13,n€1)oqacInM.I)ByneM называть третьи уровни — (£1, 7:71), (Ед, 1111) И (5,, фд, 771) —— точками расхождения, а четвертый (an) И пятый (.§2,?7',2) уровни двухключевых конструкций — перекрывающими частями этих кон- струкций. 1.2.4. Иерархические представления предыдущих разделов пока отно- сились к однозначным одноключевым и двухключевым зависимостям; в них не нашли отражения векторы, составные переменные и множест- венные переменные. Информационный объект ”анкета” принадлежал бы к числу неполных двухключевых объектов типа (1.11), если бы.в нем не бьшо векторов ДАТА РОЖДЕНИЯ, ДАТА ОКОНЧАНИЯ ВУЗА, СВЕДЕНИЯ О ВУЗЕ, составной переменной СВЕДЕНИЯ О ВЫСШЕМ ОБРАЗОВАНИИ вместе с тривиальной перемеъшой ОТСУТСТВИЕ СВЕДЕНИЙ, а также множест- венной переменной ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ. Трансформируем ”анкету” необходимым образом, чтобы получить иерархическое представ- ление конкретного объекта, использовав абстрактные построения предыду- щих разделов. Выведем из состава переменных ДАТУ РОЖДЕНИЯ, ДАТУ ОКОНЧА- НИЯ ВУЗА и СВЕДЕНИЯ О ВУЗЕ. Вместо двух троек: ГОД, ЧИСЛО, МЕСЯЦ введем такие переменные: ДАТА РОЖДЕНИЯ.Г ОД, ДАТА РОЖ- ДЕНИЯ.ЧИСПО‚ ДАТА РОЖДЕНИЯ.МЕСЯЦ‚ ДАТА ОКОНЧАНИЯ ВУЗА. ГОД, ДАТА ОКОНЧАНИЯ ВУЗА.ЧИСЛО‚ ДАТА ОКОНЧАНИЯ ВУЗА. МЕСЯЦ. Исключим вектор СВЕДЕНИЯ О ВУЗЕ. Прештшцем такое правило заполнения разделов, относящихся к сведениям о вузе: сотрудники, не имеющие высшего образования, пишут во всех разделах слово нет: тогда отпадает необходимость в составной переменной СВЕДЕНИЯ О ВЫС- ШЕМ ОБРАЗОВАНИИ M B тривиальной переменной ОТСУТСТВИЕ СВЕ- ДЕНИЙ. Примем, что значения переменной ПРАВИТЕЛЬСТВЕННЫЕ НАГ- РАДЫ — неразложимые и, следовательно, сама переменная -— элементарная скалярная. Для иерархического представления единственной двухключевой зависи- мости из ”анкеты” примем такую субординацию аргументов: ФАМИЛИЯ ИМЯ ОТЧЕСТВО > ГОД ПОСТУПЛЕНИЯ. Иерархическое представление ”упрощенной анкеты” изображено на диаг- рамме рис. 3.1.6. Переменным, получивпшм в предыдущем разделе обоз- начения 0:12, 11/1, ад, Фо, даны такие наименования: РАБОТА, РАБОТЫ, УПРОЩЕННАЯ АНКЕТА, УПРОЩЕННЫЕ АНКЕТЫ. 1.3. Основная идея иерархического представления. В иерархическом представлении особая роль отводится векторам с аргументами и мно- жественным векторным переменным. Дадим их определения в общем случае. Вектор с аргументом имеет в своем составе один аргумент, а также зависимые переменные, зависящие от одних и тех же аргументов, в тшслодг которых входит аргумент, включенный`в состав вектора. Запишем состав вектора с аргументом следующим образом:  0‘... k = V($k, k, ---)- (1-14) Эту запись следует воспртшимать как формулу типа вектора am k. Ha g первом месте в (1.14) фигурирует выделенный аргумент Ek, затем идут’  мы! чан-м.  „и «та»  90 A 
УПРОЩЕННЫЕ АНКЕТЫ  УПРОЩЕННАЯ АНКЕТА  ФАМИЛИЯ ПОЛ ДР. ДН ДЕ ОБРА- НАИМЕ‘ ДОЬДОЕДОВ. АДР-ЕС РАБОТЫ ПРАВИТЕЛЬ“  ИМЯ ГОД ‘MC’ HE“ 30BA- НОВА‘ ГОД ЧИО‘ ME" ВУЗА СТВЕННЫЕ ОТЧЕСТВО ЛО ОЯЦ НИЕ НИЕ Л0 ОЯЦ НАГРАДЫ ВУЗА РАБОТА  ОБОЗНАЧЕНИЯ: ‚ДАТА рождения. год= "де год» г°д ”^”'“‘Е"°В^""‘Е ДАТА Рождшиядисло: „днчисло„ поступления предприятия ДАТА РОЖДЕНИЯ. мвсяц= „др. месяц" ДАТА ОКОНЧАНИЯ вуз/м. год= ",uoa.ro,11" ДАТА ОКОНЧАНИЯ ВУЗА.ЧИСЛО= ггдовжисло» ДАТА ОКОНЧАНИЯ ВУЗА. мЕсяц="дов.мЕсяц"  Рис. 3.1.6. Иерархическое представление ”упрошенной анкеты”  множественные векторные переменные, обозначенные символом набора ‚с, следующие места в формуле вектора ( 1.14) могут занимать векторы без аргумента, элементарные скалярные и множественные скалярные зависимые переменные, составные переменные. Переменные перечисленных типов, чтобы попасть в правую часть формулы (1.14), должны зависеть от одних и тех же аргументов, включая zk. Множественные векторные пере- менные всегда многозначным (уникальным или неуъшкальным) образом зависят от своих аргументов: остальные переменные могут быть функция- ми F -, G-, 1- 1411141-mnon от тех же аргументов. Каждому вектору с аргументом ставится в соответствие своя множе- ственная векторная переменная и, наоборот, каждой множественной век- торной переменной отвечает свой вектор с аргументом. Вектор c аргумен- том порождает множественную векторную переменную в следующем смыс- ле. Зафиксируем значения всех аргументов вектора am k, кроме аргумента Ед, которому предоставим возможность пробегать все множество опреде- ления при этих фиксированных значениях прочих аргументов. Каждому значению Ek соответствует свое определенное значеъше вектора a___ k при фиксированных значениях протшх аргументов; все возможные 3,, порож- дают совокупность значений oz___ k. Объявим эту совокупность одним мно- жественным значением переменной Фт k _ 1 при заданных значениях всех прочих, исключая Екэ Дргументов. ‚Затем зафиксируем другие значения всех прочих, кроме Ek, аргументов и, предоставляя gk пробегать все дос- тупные значения, получим другое множественное значение xlI___ k_ д. Пере- Медная 1l1...k _ 1 — множественная векторная переменная; она принимает множественные значения; каждый элемент множественного значения  91 
зрю ‚с _ 1 есть значение вектора ат ‚с при каких-то значениях аргументов, включая Sk; аргумент Ед — свертывающий аргумент. Отношение между переменными Фт к- 1 и a___ k есть отношение между множественной и присоединенной переменными:  ‘д... k— 1 = W(°‘... к) 1 I (1-15)  Множественная векторная переменная :1/___ k_ д зависит от тех же аргу- ментов, что и порождающий ее вектор oz___ k, исключая свертывающий аргу- мент zk. Если вектор ост ‚с зависит только от одного аргумента, то порож- денная им множественная векторная переменная принимает однозначение типа совокупность. Постулируем: иерархическая конструкция образуется переменными двух тштов: am k — векторами c аргументами и Фт к _ 1 — множественны- Mn векторными переменными, отношения которых с другими перемен- ными описываются формулами векторов (1.14) и формулами ьишожествен- ности (1.15) . Переменные типов am k и x1J___ k _ 1 будем называть конструк- ционными. Будем трактовать отношения между левыми и правыми частями формул векторов и формул множественности как отношения подтшнения: та пере- менная, которая записана в левой части любой из формул, является стар- шей по отношению к переменным, фигурирующим в правой части той же формулы. Множественной векторной переменной \l’...k— 1 H°l1‘H’1H’13TC’1 ПО‘ рождающий ее присоединенный вектор oz___k, которыи, в свою очередь,  подтшняет свои компоненты$3‚‚,$„_‚„ (см. (1.14)‚ (1.15)). Отношения между переменными допускают интерпретацию на диаг- раммах: переменные изображаются как вершины, подчинение показыва- ется стрелками, направленными от старших переменных к младшим. На  99...к-1 _ А  а к Рис. 3.1. 7. Типовой фрагмент иерархического представ- " пения  рис. 3.1.7 дан типовой фрагмент структурной диаграммы иерархического представления. В этом фрагменте три уровня: верхний занимает конструк- ционная переменная ¢___,, _ 1, средний — также конструкционная перемен- ная ozmk, Ha Hmxuem уровне располагается аргумент 5,, и конструкцион-  ные переменные k, открывающие фрагменты, которые лежат ниже дан- ного фрагмента; многоточия на нижнем уровне заменяют составные, век- торные, элементарные и множественные зависимые переменные. Основная идея иерархической конструкции состоит в следующем. В до- полнение к исходным переменным информационного объекта надо ввести векторы с аргументами и множественные векторные переменные так, что- бы обеспечивались три свойства.  92 
1°. Свойство включения. ‘Иерархическое представление должно хотя бы однократно включать каждую перемеш-тую из описания информационного объекта. Это значит‚—что для каждого аргумента $3,, должен найтись хотя бы один конструкционный вектор о‹___‚‚, в состав которого входит этот аргумент, и для каждой прочей переменной также должен найтись кон- струкциоштьпй вектор, который прямо или косвенно включает в свой сос- тав эту переменную. Слова ”косвенно включает” поясняются в свой- стве 3° . 2°. Свойство иерархичности. Любая переменная из описаъшя штфор- мационного объекта может входить в правую часть не одного вектора a___ k, a нескольких, а на стуктурной диаграмме ей предоставляется столько вершин, сколько раз она фигурирует в правых частях формул иерархи- ческого представившая. Каждая конструкционная переменная о‹___‚‚, ф___‚‚_ д может фшуриро- вать только однократно в правои части какой-то другой конструкционной переменной. На структурной диаграмме каждой конструкционной перемен- ной отводится ровно одна верцшна. Каждая верцшна, заъшмаемая конструкционной или исходной перемен- ной, должна непосредственно подчиняться не более чем одной страшей верцшне. Этой свойство задает иерархитшость всей конструкции; такая конструкция на структурных диаграммах изображается в виде дерева либо в виде набора деревьев. Иерархия переменных может ‚открываться только множественной векторной переменной Фо; переменные остальных тгшов не подходят на роль самых старших переменных (см. рис. 3.1.7). 3°. Свойство отражения субординации. С каждой зависимой переменной из описания информациоъшого объекта связан набор аргументов, от кото- рых она зависит, а также субординация этих аргументов. Над зависимой переменной могут быть другие зависимые переменные из описания объек- та: множественная переменная над присоединенной перемеъшой, вектор над компонентой, составная переменная над компонентой. Но в конечном счете самая старшая переменная из описания включается в состав какого-то конструкционного вектора oz___ k, так что все переменные из описания пря- мо или- косвенно входят компонентами в какой-то конструкционный век- тор oz___ k. Тот через посредство порождаемой им множественной векторной переменной :1/___ ,,_ д подчиняется вектору о‹___‚‚_ д старшего уровня. В этой цепочке подтшнентай (от переменных из описания объекта до самой старшей переменной) сфокусируем вниматше на конструкционных векторах ..., ост ‚‚_ д, oz___ k, ОНИ примечательны тем, что в любой из них входит по од- ному аргументу. Над ‘каждой зависимой переменной из описания объекта должно быть ровно столько конструкшитонных векторов, сколько у нее аргументов; это должны быть те векторы, в состав которыхвходят аргу- менты рассматриваемой зависимой переменной из описаъшя; эти конструк- Ционные векторы должны следовать один за другим в порядке принятой субординации аргументов, входящих в них: если принято, что Е‚‚_ д старше «Ёк И £1‘- д входит в о‹___‚‚_ д, а $3,, — в о‹___‚‚, то должно быть о‹___‚‚_ д старше °‘..;k~ Отметим в заключение этого пункта, что иерархические представления, Введенные в предыдущем пункте, удовлетворяют трем перечисленным Выше свойствам. 93 
1.4. Иерархическое представление п-кшочевого объекта. В этом пункте рассматри- вается п-ключевой объект, содержащий п элементарных скалярных аргументов и на- бор элементарных скалярных зависимых переменных; из зависимых переменных только частъ п-ключевых, есть п — 1-ключевые‚ п — 2-ключевые, ...‚ двух- и одноключе- вые; рассматриваемые зависимости принадлежат к F- или 1-типам. 1.4.1. Сначала выберем из состава п-кшочевого объекта набор К-ключевых (1 < k < < n) зависимостей и определим для них иерархическую конструкцию. Пусть среди k аргументов определена субординашая £1 >- г, >- >- $k_ 1 >- £1, которая подходит для всех зависимых переменных из набора. Чтобы показать зависимость зависимых переменных набора от аргументов $1 , г, , ...‚ £k_ 1, Ед, выстроенных в порядке £1 >- >- г, >- >- $k_ 1, >- Ek, будем применять следующее обозначение: т 2 k— пс; поря- док расположения цифр в индексе отражает номера аргументов и порядок их подчи- нения. _1 Иерархическое представление объекта 171 2 k_ 1 k = Рог, , 5,, ..., г,‘ _ 1, Ед) имеет вид  ‘до =ш(а1); а; = V(£1a¢’1); ‘p1=W(a12); “п =7(52›"’2)3°°° ‘1’x2...k—2=W(°‘n2...k—1)3 °‘12...k—l= = V(5k-1'4’): ...k—l)3 ‘для ...k— 1 = Wm” k);  “из k = V($k» 713 2 k)‘ (1-16) Формулы (1.16) содержат k конструкционных векторов а, ‚ а, 2, а‘ 2 k_ 1, а! 2 k _ 1 k И k конструкционных множественных векторных переменных фо , ф, ‚  ...‚ ф 1 2 k_ 1. Назовем фо переменной первого уровня, а, — переменной второго YPOBHH. Ф: “ ПСРЗМЗННОЙ ТРСТЬЭГО УР0ВНЯ‚ т, Ф, 2 k_ 1 — переменной уровня 2k - 1,  ад, k — переменной уровня 2k. Нижние индексы любой переменной типа ф получаются исключением по- следней цифры из составного индек- са присоединенного к ф вектора а,  1 уровень ф°  2 уровень 091  /1  З уровень 5.1 S51  зуется по следующему правилу: бе- рется индекс аргумента, который фи- гурирует в составе этого вектора а, и дописывается к индексу перемен- ной ф, входящей в тот же вектор а. Так что по последовательности цифр в индексе любой переменной а можно восстановить все те аргументы, кото- - рые входят в составы сгарцшх век- 5 уровень 2,2 фи торов, а также определить суборди- _ . нацию среди этих аргументов. В ос- ° . тальном формулы иерархического ° ¢1?____K_1,_ представления (1.16) устроены так 2’<"3 же, как в одноключевом или двух- ключевом случаях и не требуют ком- ментариев. Совокупность исходных перемен- ных и конструкционных перемен- ных, связанных формулами (1.16), изображается на диаграмме как 2k + ¢12,_,k-1 + 1-уровневое дерево (см. рис. 3.1.8). I Ствол дерева образуют верцшны: фо ‚ а  4 уровень “12  Уровень Уровень 2к-2 5‘12...k-1  Уровень 2k-1 ax-1  “и Фр °f12v "ч Фи... 16-19 °‘12...k9 12 к  AK Puc. 3.1.8. Иерархическое представле-  УРОВСНЬ 2'” 1 ‚ёк 7:2..,k-1 к ние набора К-ключевых зависимостей  Уровень 2к  94  a y этого последнего индекса обра-.  -rxflhbzu 
из вершин ствола на четных уровнях отходят лучи к терминальным верцшнам-аргу-  ментам; 51, £2, ..., гм. д, $1,, из _последней вершины ствола к тому же отходит веер лучей к терминальным вершинам п, 2 1, _ 1 ‚д. . Каждая переменная из расширенной совокупности — г, , £2, ..., £k_ 1, $1,,  н“ mk_1k, 111°, ад, фд, oz”, ..., ф” ___k_ д, oz” „д, — входит только один раз в пра- вую часть какой-нибудь формулы (1.16)‚ иными словами, каждая верцшна-перемен- ная имеет в качестве старшей только одну вершину. Именно поэтому переменные могут быть выстроены в одну иерархию, поэтому совокупность перемеъшых изобра- жается в виде одного дерева и поэтому такое представление является иерархическим в духе принципов, изложенных в предыдущем пункте. _› 1.4.2. Получив иерархическое представление одного набора n1 2 k _ 1 k, естествен- но обратиться к процедуре объединения таких представлений. \ Рассмотрим объединение двух иерархических представлений туша (1.16) . В качест- Be первого возьмем (1.16); второе представление построим для набора зависимостей c такими аргументами: Ед, 2,, ..., 2,, £31 , £32 , ..., $5.’. Будем считать, что они упорядо- чены следующим образом: E, >- г, >- г; >- £31 >- Es: >- >- Es’. Эта цепочка совпадает с первой до аргумента г I включительно, следующие звенья в цепочках раз-  личные: $14.1 =# г, . В паре рассматриваемых цепочек выделим следующие части‘ (см.  рис. 3.1.9); подобные части, точка расхождения, расходящиеся части и перекрываю- щая часть длинной цепочки. Для определенности принято, что первая цепочка длиннее второй или равна ей по числу аргументов-звеньев: k > I + r.  Первое и второе представления описываются следующими формулами (ср. (1.16)): w.,=w(a:);—a: =V(2,,w:); ' w.,=w<a:>; a:=V<2,,w:);  ‘pi = W(a12); “Ё: = V(£2> 4'12)? = W(0t§2); “г: = уёЁрФёдё ф;2---1-1=ш(а;2м-1); :2...I—l=W(a:2...l)3 ‘да... I: VG]: ‘l”1z...l)3 01:2 1‘-= V(£1, г: 1); Ф1‚...1=“’(°‘Ё‚...1+1); Ё2...1=”’<°‘Ё=...г1)3  a113°°°I+l = V(£l+l’ ‘pi’ 1+1); “Ё: S1 = У(Е›°‚›ФЁ2 5'1);  1, 1+1 k—2=W(°‘:, 1+1 k—1)3 Wfgms, s,.—1 =W(°‘fg...s, гр)?  a:z...l+l ...k—l = I/($16-19 ‘pl12...l+1... k— 1); а12...81 ... Sr = I/(SS;--’ На: ... S,-);‘  Ё, 1+1 k— 1 = “Щ, 1+1 к):  ‘*1, 1+1 k= Лёт 3,, k); (1.17)  Левый столбец формул в (1.17) относится к первому представлению, правый — ко второму. Левый столбец внесен в (1.17) , чтобы удобнее было сравнивать два пред- ставления; в нем повторяются формулы (1.16) с двумя изменениями: особо выделе- но окружение уровня 21, а также переменным Ф и а придан верхний индекс 1. В правом столбце переменные ф и а имеют верхний индекс 2; нижние индексы набора зависи- мых переменных второго представления отражают свою субординацшо аргументов.  81). Еэ2›...›Е‚д_1 ›Е1‚ ›г›1+1›... ...>§k-1>EaK  E’1>a2*---*5»;-1 “д: 7’аз1›---›аз‚. подобные ЧАСТИ РАСХОДЯЩИЕСЯ ПЕРЕКРЫВАЮЩАЯ ЧАСТЬ ЦЕПОЧЕК ЧАСТИ цепочек ПЕРВОЙ цепочки  ТОЧКА РАСХОЖДЕНИЯ  Рис. З. 1.9. Сопоставление цепочек субординаций  95 
На рис. 3.1.10 показаны диаграммы первого и второго представлений (1.17); левая диаграмма повторяет с отмеченньши изменениями диаграмму рис. 3.1.8. Части представлений (1.17) от первых уровней (переменные И» ФЁ) до уровней 21 (векторы 0:12 д, oz: 2 д) назовем подобными. Подобные части базируются на сов- падающих начальных отрезках субординаций аргументов, искшочая последний аргу- мент гд. Уровни 21 '+ 1, на которых фигурируют аргументы гд, - это уровни расхожде- ния представлений. При движении сверху вниз на этих уровнях последний раз встре- чаются переменные с одинаковьпии нижними индексами: Ф}, ___д и :1/‘:3 д. Назовем расходящимися те части представлений (1.17), которые-начинаются с уровня 21 + 2 (векторы а; 2 д 4. д и oz’ 2 S1) и заканчиваются на уровне 21 + 2r + 1, где обрывается второе представление. м частям представлений соответствуют несовпадающие отрезки субординаций аргументов, и переменные Ф и oz, входящие в одну и другую расходящиеся части, имеют различные индексы. Как было условлено, первая цепочка субоурдинаций не короче второй, поэтому первое представление может иметь часть, перекрывающую второе представление; она начинается с уровня 21 + 2r + 2 и заканчи- вается уровнем 2k + 1, где обрывается первое представление. 1.4.3. Рассмотрим такой случай отношений между числами k, 1, г:  I>l,k>I+r,r>l. (1.18)  B этом случае представления (1.17) имеют ненулевые подобные части (1 > 1) , ненуле- вые „расходящиеся части (k > 1 + г > 1, 1 > 1), первое представление имеет перекры- вающую часть (k > 1 + г). Правила объединения подобных частей, уровней расхожде- ния и расходящихся частей, а также правило представления в объединении перекры- вающей части следующие. \ Объединение подобных частей. ~ Две множественные векторные переменные ф: я д_ д и Ф: 2 д _ д, располагающиеся на уровнях 21' — 1, и два подчинзпощихся им вектора 01;: д и а: 2 д с уровней 21’, которые принадлежат подобным частям  представлений, объединяясь, порождают такие переменные ф, 2 ___-д _ д , а, 2 д:  1 <i<I— 1 °¢i,...i—: = V(Ei_x . III}, i—:): “Ё, i—1 = V($i—.1. ФЁ, ...i—1)3 И, i— п = W011, г): 321-: = W(ai, i):  04, i= “(га ‘Pi, i)3--- “Ё, i‘-' Ига Ё, ‚т...  т щ: °° a1:...i—1 = V($i— 1: Ф12... 1.-1); ‘p12...i— i = W(a12...l°); ' 01,, i= V(’s'i. ‘Д, 0:»-  B первой строчке (1.19) записано, что формулы относятся только к подобным частям представлений, затем даны две тройки формул (слева — из первого представления, справа — из второго), в которых присутствуют переменные объединяемых уровней; под формулами — скобка как знак объединения и тройка формул из объединенного представления, в правых и левых частях которых фигурируют переменные Ф д ‚ „ ‚ д_1‚ “т 2 . . . i‘ I:.cJm удалить верхние индексы в верхних тройках формул, то все три тройки фор- мул окажутся тождественными. Результат объединения подобных частей есть часть, подобная каждой из объединяемых -частей. Объединение уровней расхождения. Компоненты уровней расхождения объеди- няются по правилу объединения множеств:  ,°",, ".15 V($1»W§,... 1) |°tf,...z= V(Ez. f,...z)‘  01,, ...z= V(¥z.W',,... ЬФЁ, z)- (1-20)  B (1.20) сначала записаны формулы первого и второго представлений, в которых фигурируют компоненты уровней расхождения, а под фигурной скобкой — формула результирующего представления, в которой присутствуют компонеты объединения: гд, ф} а д, ф: 2 д. В результирующей формуле (1.20) впервые при движении сверху  96  (l.l9)_  1; . д _ J ‘ё I I gt ’  . д: ж: у  -4A..<Q  _.,_:-:_.;_...;- _/'1›Ь;‚;_ "„ .3, 3, дд]_;__- ‚ .. „ЧЕХ: _ _ _  - _ 1 14,1 
1 уровень г? 910% 2 "’°°°"" a: ПОДОБНЫЕ а} ЧАСТИ А 3 уровень 51 501 51 Ф? Уровень 22- 1 9032...:-1 $122.4-1 Уровень 21 @112...» z *1 УРОВНИ Ё/ + 2 Уровень 2‘ *1 а‘ $f2'"zPACX0>KJ1EH и; sfm" Уровень 22. + 2 дс:‚„‚‚„ am, + 2’. -1 112,,_1,+1 ",1,-0'!‘-1 $o1§...$1...5';--1 РАСХОДЯ щився 1 ЧА-СТИ 2 УРОВЕНЬ + 2!‘ d:2....l.-r1...l+r $1.„$‚- + +1 EL". :2”.z.,1__. ‘.9’. ЕЁ’: 77;;...s,-  Уровень 2Ъ+2г+2 Уровень 2к -3  Уровень 2k - 2  /I  Ш  Уровень 2k-1  Уровень 2к  Уровень 2 к +1  к-т W2... I  1 “:2  .. 1+1... In-+1  ` ПЕРЕКРЫВАЮЩАЯ ЧАСТЬ  ПЕРВОГО ПРЕДСТАВЛЕН ИЯ  I00 ъ *1OOO  CI.  1:"1... K-1  IOh1.COx  5.. "112...k  Puc. 3.1.10. Два представления  7. Ю.Н. Иванов  97 
вниз две множественные векторные переменные 111:2 д, ‘pi: т, нерливаются в одну, а остаются такими, какими они были в своих представлениях.  Объединение расходящихся частей. Пусть на уровнях 2 (1 + 1') имеются векторы 0:1” д д. д 1 +1 и oz: 2 ‚д _‚., а на следующих уровнях-входящие в их состав мно- жественные векторные переменные ф} 2 1 + 1 ml д; и 4132 ‚д ‚д. Объединение этих уровней, принадлежащих расходящимся частям представлений, происходит по правилу: ~ I + 1 < I +1’ < I +r  °°° ‘P113 ...l+3 uol+).’ 1 = 2 и. 1 oool+j); "' ФЁ2 и. S1...SJ‘_ 1 = ..о S1... °t’.,....*+1...t+j'-'V(¥z+jnl1i,...1+1...1+j)? °ti,...s,sf щёку f,...s,...s,-)3  ¢'§,...t+n...z+j= ИШЬ... 1+2 ...z+j+:):--- W'.',...s1s,-= W(°‘f2...s  1ooaS.+1 l I  "°w12...I+1 ...l+i-- 1 =W(a12...l+1...l+j); °"‘p12... S1 ...S]‘_1 =W(a12...S11...  °‘1;...l+1...l+j= V(5l+]'v‘l’;2...I+1 ..l+j)3 °‘12...S1...s]'= V($Sjv‘l’x2...s1...s,~)3  1l’1,l+1 ...l+j= W(°£1¢...I-I-1 ...l+j+1)3 ‘д, 3 S1 sf: “(ада ...s1 sf“)?--~  (1.21)  Формулы (1.21) следует понимать так, что расходящиеся части представлений "не объединяются”. На уровне 2 (I +1‘) результирующего представления независимо сосу- ществуют два вектора: oz” ___H.1 т“; цап т“ ____,’., ана уровне 2(I+j) 1` две множественные векторные переменные: ф! 2 1+ 1 д; и фд 1 s1 Начат’ этих двух раздельных ветвей лежит на уровне расхождения 21+ 1, где представлены переменные ф: т; и ф}, _.__;, еще объединяемые в. составе одного векторадад 2 д. Переменные о ъединения, фигурирующие в формулах (1.21) под объединительной скобкой, не имеют верхних индексов в отличие от переменных объединяемых представлений. Уровень 2 (I + r) + 1 — последний, где имеются переменные правого представления, поэтому фрагменты объединяемых и результирующего представлений, в которых участвуют переменные этого уровня, отличаются от (1.21) :  2 = 2 . ..' ф I 2 со. со: 1 2 coo coo Sr),  ‘Ф а: 1000 one =: n ‘ 2 coo  °°°‘р:2...1+1...1+г-1 = „идя... 1+ 1 ...I-I-I‘); °‘:2...l-I-1 ...l+r=V(£l-I-rs ‘Viz... I-I-1 ...l+r)3--- к‘ W12... 1+1 ...I+r—1 = W(°‘12...I-I-1 ...1+г)З ‘P12 з, s,._ 1 = W(°‘:2 з, s,.)3 О‘: 2... S1 S, = V($s,-2 T7): 2 .91.)- (1.22)  O перекрывающей части первого представления. После уровня 2(I + r) + 1 второе объединяемое представление не meet переменных и результат объединения включает только переменные из перекрывающей части первого представления:  °‘я2...1+1 ...l-I-r= V(£l+rs‘1’1:...l+ 1...!-I-r)?»  I+r+1<I+r+m<k—1  ~--‘1’11z...l+1...l+r+m— 1 =W(°‘:2...l+1 ...l+r+m)3  ай: ...1+ 1...1+г+т = 7(Ёг+т› Ф12...1+: ...l-I-r+m)3  ‘1’112...l+1 ...l+r+m=W(°‘:2...l-I-1...l+r+m-I-1);-u 1A _1 ---W12... 1+1 ...l-I-r+m—1 =W(°‘12...l+ I...l+r-I-m); °‘12...l+1 ...1+r+m= V(Er+m»¢'u...z+:...1+r+m):  ¢’12...l-I-1 ...I-I-r+m= W(°‘12...l-I-1 ...l+r+m-+1);-u  98 
l+r+m=k  ,,,;p:,___1+1 _,,k_1 =W(°‘112... 1+1 k); 042 1+ 1 ...К= I/(ska 77,12... К)? ‘J g___ ,,_;p,,___ 1+1 k—1 =W(°‘12...l+1 ...k);  01,3 1+ 1 k = 7151031 2 k)-  в формулах (1.22) особо выделена пара переменных ф, , д + д k _. д и а, , занимающих уровни 2k — 1 и 21: соответственно. итак, объединение двух представлений (1.17) в случае, когда они шеют подобные части, уровень расхождения, расходящиеся части, а также когда одно представление имеет часть, перекрывающую второе, описывается следующей совокупностью формул:  ф, =И’(о:‚); oz, = 1’(Ё‚‚Ф‚):Ф‚ =W(<'x.,); ад, = У(Е‚‚Ф„);.„; ‘Р12...1— 1 =W(°‘12... ()3 °‘12...l= V(£b‘1’:2... lv¢’§z...I)3 W1:z...l=W(°‘12--.1+1); ‘”i2...l=W(“x2...s,)3 °‘12...l+1 V(5l.+1 MP1: ...l‘|-1); V(Es‘, Фит 31);  ...1+ 1 ...К›  °‘1 2 г,  ‘P1: 1+1 l+r— 1 = „(ан 1+ i ...l-I-r); ‘Рта... г, г,‘ WW1 2 „з, s,.)3  “з: 1+1 ...1+г= I/(51-I-1 ‚Фи 1+1 ...1+г)3 °‘12 „г, s,-= V(£s,.s;?>n2 s,.)-  ‘V12 ...1+1 ...k—i ‘шип ...1+1° К)?  о‹„ 1+1’ К‘ Vtzk. ‘:32. ‚д. (1.23)  Диаграмма объединения показана на рис. 3.1.11. Сначала — это единый ствол до уровня 21 + 1, где он разветвляется на два ствола; левый продолжается до уровня 2k +1, правый — до уровня 2(1 +r) +1. 1.4.4. Рассмотрим вторые отношения между параметрами k, 1, г:  1>1, k>I, r=0. (1.24)  B этом случае второй набор зависимых переменных зависит только от 1 аргумен- тов, которые упорядочены подобно первым 1 аргументам первого набора зависимых переменных. Представления (1.17) имеют подобные части от первого уровня до уров- ня 21 включительно; уровень 21 + 1 — точка расхождения; расходящихся частей представления не имеют; сразу после уровня расхождения следуегперекрывающая часть первого представления (см. рис. 3.1.10). Отметим изменения в формулах (1.23) и на диаграмме рис. 3.1.11. вызванные отсутствием в объединяемых конструкциях расходящихся частей. До уровня 21 — 1 (переменная up” д) формулы и диаграмма не претерпевают изменений. Компоненты вектора а, , д, расположенные на уровне 21 + 1, заменяются на следующие: ’  Q12 ...I= ‘p:2...l> T1>13___();  B составе вектора oz” т, появляется набор зависшиых переменных 712, ___1 вместо переменной типа ф, которая открывала расходящуюся часть второго представления. Теперь уровень 21 + 1 — последний для второго представления, поэтому нижняя часть правой колонки формул (1.23) в рассматриваемом случае отсутствует и правый ствол диаграммы 3.1.11 отсутствует; вместо вершины ф‘; , 1 на уровне 21 + 1 появляется “35°P Вершин 72: , д, к которым ведет веер лучей от а, , д. Что касается левой ниж- ней колонки формул '(l.23) И левого ствола диаграммы 3.1.11, то они остаются без изменений. Отметим, что объединение одноключевого и двухключевого представлений (1.13) доставляет пршиер рассматриваемого случая объединения. 1.4.5. Третьи отношения между параметрами k, 1, г таковы:  1=О, k>r>1. (1.26)  7* 99 
1 урОВВНЬ Ё‘,  2 уровень щ /1 3 уровень 51 ф} Уровень £1. -1 §a,2__.,_, Уровень 22.  yP°3e"“= 21 '*'1 E-1, {чел 7122...; a O  yr-’°Be"b gt "' 2 12...z.+1 “12..s, Уровень 2z:+2r-1 5.o12...z+1...z»r-1 .a2...s1...5,--1 з 3‘ V9039”? 27""2" _“12...1.+1...z+:; “s2...s,..,s,. Уровень 2z.+2r+1 ЕМ, 53,. 1z...s,. 12...z+1...z~r Уровень 2l.+2r+2 a,z_._,,, ,,,.,, Уровень 2.,‘-3 i é12...z+1...u-2 I Уровень 2К°2 a12...z+1...k-1 yp°Be"b 2-K-1 Eu:-1 $12...I.-v1...k.-1 Уддвень 2-K “12...z-v1...k Уровень 2k +1 Е,‘  Рис. 3. 1.11. Объединение двух представлений 
Равенство 1 = о следует понимать так, что цепочки субординаций начинаются с раз- пых аргументов. Подобные части представлений (1.17) отсутствуют; точка расхожде- mm попадает на нулевой уровень (I = O) и с первого уровня до уровня 2r + 1 идут рас- ходящнеся части; по-прежнему первая конструкция может перекрывать вторую (k > r) . B случае I = 0 два представления (1.17) "не объединяются”, и результирующее представление есть первое представление и второе представление, написанные рядом (ер, объединение расходящихся частей). Графически дело выглядит так: два дерева . 3.1.1О в результате процедуры объединения остаются теми же двумя деревьями. 1.4.6. Для краткости письма введем следующий термин. Иерархическое представ- пение набора однозначных зависимостей, зависящих от одного и того же состава оди- наково упорядоченных аргументов, будем называть одиночным представлением. подведем итоги относительно одиночного представления и относительно объеди- нения двух одиночных представлений. Одиночное представление описывается парами формул: одна формула касается множественной векторной переменной ф, вторая — вектора с аргументом oz. Все пары формул устроены одинаково за исключением последней. В последней формуле послед- ней пары вектора показан состоящши из аргумента нижнего уровня и набора зависи- мых переменных; вектор oz B предыдущих парах имеет компонентами аргумент и о множественную векторную пе еменную. Все о м лы множественности выгля- дНУ б Р Р У дят одинаковым о разом. Диаграмма одиночного представления есть дерево с одним стволом, на котором, чередуясь, размещаются переменные Ф и oz; ИЗ последней вершины oz исходит веер лу- чей к вершинам-зависимым переменным; боковые лучи из вершин oz приводят к вер- шинам-аргументам. Иерархическое представление, являющееся результатом объединения двух пред- ставлений‚ шиеет дело с двумя наборами зависимых переменных и их аргументами, выстроенными каждые в свою субординацию. Как и одиночное представление, оно выражается формулами вектора и формулами множественности; однако в них появ- ляются дополнительные черты, которые выявлены в трех рассмотренных случаях. Объединение двух одиночных представлений может выглядеть как два несвязан- ных представления (третий случай — 1.4.5); в составе какого-то вектора oz объедине- ния может быть не только аргумент и одна подчиненная переменная ф, но также вторая подчиненная переменная ф (первый случай —- 1.4.3) или набор зависимых переменных (второй случай — 1.4.4) . ‘ На диаграмме объединение ДВУХ одиночных представлений изображается либо двумя несвязанными деревьями (третий случай), либо одним деревом с одним ство- лом (второй случай), либо, наконец, деревом, имеющим до какой-то промежуточной вершины один ствол, а затем — два ствола (первый случай). Ошаношое представление и объединение двух одиночных представлений удовлет- воряет трем постулатам иерархического представления: относительно включения всех исходных переменных, относительно иерархичности и относительно отражения заданной суборд-.нан;ии. 1.4.7. Рассмотрим теперь объединение произвольного числа одиночных представ- лений, которые построены для однокшочевых, двухключевых, ..., п-ключевых одно- значных зависшиостей с разными порядками субординашш. В данном разделе будут излагаться не прямо правила объединения, как это было в 1.4.3-1.4.5, а всевозможные результаты объединения и свойства одиночных представлений, приводящие к таким результатам. Объединение одиночных представлений может выглядеть в одном крайнем случае как набор п деревьев, в другом крайнем случае — как одно дерево и в промежуточном СПУЧае-как k (1 < k < п) деревьев. В первом варианте совокупность одиночных представлений имеет все аргументы в роли начинающих суборшшашти, во втором ва- РианТе Один аргумент открывает все субординации одиночных представлений, третий ВаРИаНТ — промежуточный. Каждое такое дерево из объештнеъшя объешшяет некото- Р0е ‘пасло исходных одиночных представлений и имеет один ствол до какого-то сере- дИННОГО уровня, после которого он разветвляется на несколько стволов. В крайнем 31_eY‘lae дерево может иметь один ствол до конца, когда составы и субординащш аргу- нтов из попавцшх в дерево одиночных представлений удовлетворзпот такому усло- вию. они получаются вычеркиванием с конца членов самой длинной их субоРдинации.  101  рис 
Множественная векторная переменная уровня 2Е — 1 и присоединенный к ней век- тор с аргументом уровня 2Е в максимальной конфигурации имеют следующий вид:  Е=1,2,...п—1‚  Фкдс, k,-_ ‚ = W(°tk,k, щ):  ki+1 "Н 2  kn .., “Кис, кг V(5kp ‘Рек, 1:,» ‘Pk, к, кр ‘1’k,k k,-a "геле, k.-),~  д... k1 #1‘: ¢...¢ki¢ki-{.1 9916544 ¢...kn, k,,k,, ...,k,-, k,-4., ,k,-...,,k,,= 1, 2, ..., п.  В верхней строчке (1.27) -указано, что формула множественности и формула вектора из (1.27) действительны для всех множественных векторных переменных и векто- ров, имеющих не более п — 1 чисел в индексе. Формула множественности не требует  комментариев. Компонентами вектора oz ‚И ‚д: kl. из формулы вектора являются: аргумент tki, индекс которого совпадает с последним числом в индексе вектора; набор Е -ключевых зависимых переменных, зависящих от аргументов tk‘, на, ..., ski, которые выстроены в субординацшо: £k1 >- д‘: >- >- ski; компонентами  также ЯВЛЯЮТСЯ МНОЖВСТВОННЪЕО ВОКТОРНЫВ IICPCMCHHLIB Ф. НЮКНИЗ ИНДОКСЫ ПРИ всех  (1.27)  `ф одинаковы и совпадают с индексом вектора oz ИЗ левой части - значит, ‘все эти пере-  менные зависят от одних и тех же аргументов. Верхний индекс при каждой перемен- ной ф берется из аргумента, входящего в состав присоединенного к этой фвектора oz. B двух последних строчках (1.27) показано, что среди чисел составных индексов вектора oz и переменной ф нет повторяющихся и что значения всех чисел выбираются из одного и того же множества. Нижние индексы зависимых переменных '1'{k1 kg kt, и вектора oz kl ‚с: kl. несут в себе штформацшо опредшествующем порядке подчинения аргументов. В шобой цепочке подчинений не может быть более п аргументов и не может быть повторений аргументов; поэтому если i аргументов использованы в предшествующей части ка- кой-то цепочки, то осталось не более чем п — i звеньев цепочки. Отсюда следует, что вектор с Е числами в индексе не может содержать в качестве подчиненных более, чем п — i множественных векторных переменных уровня 2i + 1, и значит, (1.27) отражает максимальную конфшурацию вектора oz с i позиционным индексом. Вектор oz обязательно вкшочает в себч аргумент, но он не обязан, в частности, включать зависимые переменные. Если их нет в составе вектора, то либо в информа- ционном объекте нет зависимых переменных, которые зависят от набора аргументов £k1, иди... ski, либо они есть, но привязаны к субординации, отличной от 21,1 >- >-$1д2 >- >- $15.. B конкретном информационном объекте какой-нибудь вектор oz с Е-позиционным индексом может содержать не все переменные ф из максимального состава (1.27).  k. Отсутствие, например, переменной ф ‚а kl, говорит о том, что цепочка подчине-  ний $k1 > Ед: >- >- ski не используется как начало более длшнной цепочки ни в од-  ном одиночном представлении. Может быть так, что какой-то из векторов oz вовсе не имеет в своем составе переменных ф, но тогда он обязан иметь компонентами аргумент г kt. и набор зависимых переменных 7-{kl kg kl. .  сказанным выше исчерпываются варианты составов векторов oz на промежуточных уровнях. Самый нижний в иерархии вектор oz и порождаемая им множественная век- торная переменная ф имеют следующий общий вид: ‘Меде, k,,_, = таим, kn); —§- °‘k,k, k,, ' V(5k,,» "k, к, kn)? (1-23) k, #= k, ф #= kn; kt, kg, coo, = 1, 2, осе, n. Переменная ‘Иди: kn_ 1 занимает в иерархии переменных уровень 2п - 1, вектор 0:1,‘ ‚д: kn — уровень 2п, а его компоненты размещаются на уровне in + 1. Вектор oz c  102  ",“_v:-r .-‘. v-7:‘ -.-(.“.a:.;.z...:.«,.v.-a..:,..;..»..».......:. . _  -wowwwowu-amm - “г ‹. ‚ ' ч .—„м.ж дмынотшсщпацт*4етштм„а‹ч$г?.ы„ „м. ‹ 
"1...  n,_n03m1noHHbIM индексом отличается от векторов промежуточных уровней тем, что не шиеет в своем составе множественных векторных переменных ф. _› в состав вектора от‘ kg kn входит набор зависимых переменных 171,1 kg kn.  которые зависят от всех п аргументов и для которых предпочтительны субординация д,‘ > gkz >- >- Ед”. В объединении может присутствовать не один вектор а с п ин- действ, а несколько, и это потому, что разные п-ключевые зависимые переменные может оказаться выгодным привязать к отличающимся одна от другой субординациям д аргументов. Впрочем, имея в виду запросы, одну и ту же зависимую переменную, может быть, Целесообразно связать с двумя или несколькшии субординациями, иными словами, образовать два или несколько одиночных представлений на одну зависи- мостъ. Объединенному иерархическому представленшо не противопоказано сосущест- вование нескольких ‘вершин, предназначенных для одной и той же зависимой пере- менной. Возможность дублирования относится к переменным, зависящши от п аргу- ментов, а также к переменным, зависшцши от любого числа аргументов, большего  единрщы. 1.5. Многозначные и составные зависимости, а также векторы в иерархи-  ческом представления. В настоящем пункте рассматривается отражение в иерархическом представлении многозначных зависимостей и множествен- ных скалярных зависимых переменных; здесь идет речь о ‘тех векторах, которые изначально присутствуют в ъшформатшонном объекте, и об их соотношеъши с конструкционными: векторами; здесь же описывается, как выглядят в иерархическом представлении составные зависимости и сос- тавные переменные. ~ 1.5.1. Чтобы последующие формальные записи носили общшй характер, будем использовать тшювой фрагмент иерархического представления, введенный в п. 1.3 и развитьй в 1.4.7. В предстоящем изложеъши не нужны индексы переменных, поэтому перепишем формулу ( 1.27) в экономном виде:  ...¢=w(éx); a= щедр’, 3),...  B выделенном типовом фрагменте три уровня: верхншй заъшмает множест- венная векторная переменная 11/, cpez11m1‘»'1 — вектор c аргументом а ниж- Hui’: — аргумент ё, набор подчиненных множествештых переменных фи на- бор зависимы" переменных Н; последние два набора зависят от аргумента Е, а также от всех старших аргументов, встречающихся в дереве представ- ления на пути к корню. Структурная диаграмма типового фрагмента приве- дена еще раз на рис. 3.1.12. 1.5.2. Что касается отношения ипюжественности, то ему уже бьшо указа- но место в иерархическом представлении, когда речь шла о множествеьшьтх векторных переменных и присоединенных к ьшм векторам. Теперь речь будет идти о таком же отношеъши между множественной скалярной пере- менной и присоединешюй к ней переменной. Пусть в составе информационного объекта имеется одна многозначная зависимость; у — множественная зависимая переменная, зависящая от того же состава аргументов. что и набор 37’. Ввод переменной} в иерархическое Представление делается так. Переменная Д‘ догшсывается в правую часть вектора а; совокупность формул ( 1.29) дополняется формулой множест- венности относительно множественной переменной § и присоединенной к ней переменной 1‘ ':  --- Ф = Wm); a = V(£.7I, 72: с); §= we’);  (1.29)  (1.30) 103 
a.q_...o~g...  _ . ._ С: Рис. 3.1 .1 2. Типовой фрагмент представления Рис. 3.1.1 З. Фрагмент представления с множественной переменной  На диаграмме множественная переменная 5’ вместе c ee присоединенной переменной Д" вьплядит так, как показывает рис. 3.1 13. 1.5.3. В иерархическом представлении каждая вершина-переменная мо- жет непосредственно подчиняться только одной старшей вершине-перемен- ной, не считая переменной-корня дерева, которая не имеет над собой стар- ших. Отсюда следуют два вывода относительно векторов, которые могут быть встроены в иерархическое представп ение. Первый вывод касается векторов типа а, т.е. векторов c аргументом. В составе иерархического представившая не может быть тшых векторов типа а, кроме конструкционных. По определению каждой вершине-вектору а обязательно подчиняется верцшна-аргумент и нет таких вершин-аргументов в иерархическом представлении, которые не подчинялись бы своим вериш- нам-векторам а. Отсюда следует, что иные оа-векторы, кроме тех, которые уже есть, не могут быть встроены в иерархическое представление. В про- тивном случае вершины-аргументы имели бы не по одной старшей верцшне- вектору а. Правда, один и тот же аргумент может быть многократно пред- ставлен B иерархии, но каждый дубликат связывается со своей субордина- цией аргументов и ему отводится своя вершина, идентифитшруемая трас- сой от корня дерева к этой верцшне. Второй вывод о векторах, не включающих в свой состав аргументы. Для краткости будем говорить, что это векторы типа В. Как это отмечено в ( 1.29) и в (1.30), элементарные скалярные, множественные скалярные и множественные векторные переменные в отсутствие других векторов вхо- дят в правые части векторов а, иными словами, на диаграмме представляю- щие их верцшны. подчиняются верцшнам-векторам а. Чтобы было выдержа- но требование иерархичности, вводимые в представление В-векторы должны объединять в своем составе только те переменные, которые, не будь В-век- торов, подчинялись быодному общему для них ог-вектору; эти переменные должны непосредственно входить не более чем в один В-вектор. Введение в иерархическое представление В-вектора приводит к следую- щей ее перестройке, которую поясним сначала в терминах диаграмм. Сам В-вектор помещается на тот уровень, где должны бьши бы размещаться его составляющие, не будь его в представлении; компоненты помещаются на уровень ниже под вектором`и соединяются c НИМ стрелками. 104  4?-‘tn. нитки a::-:'.«:;..v. av4»:e.-aseiot-zss:-w~¢-2~i=;':-&.%§:c~,~,.-— ь „м - г we пни-ша -3-25¢ Р‘ шин-шт "'  I о .5 ,‹ ль 
Если над набором переменных-векторов и переменных-скаляров уста- новпен вектор, то этот поспешит помещается на уровень, где должны были бы быть скаляры, под ним его составляющие — векторы и скаляры. Опишем введеъше В-вектора формулами, для этого обратимся к фрагмен- ту 0,29) . Пусть набор ?7’ элементарных скалярных и 1m1g>11<ecI1_3§HHb1x ска- лярных зависимых переменных разделен на две части, п и п , и набор 3 множественных векторых переменных также разделен на две части: ф‘ и JP , Введениемв иерархическое представление В-вектораобъедтшяющего на-  gopbfiq" и W , приводит к таким изменениям записи (1.29) : ... Ф = W(0l); 04‘ VG, Й‘ ‚ ФЁВ); В: V072, Ф’); - - (1-31)  структурная диаграмма фрагмента (1.31) показана на рис. 3.1.14. 1.5.4. Составные переменные-следующим образом отражаются в иерархи- ческом представлении. Для составной переменной следует найти в иерар- хическом представлении такой ог-вектор, который имеет тот же и так же упорядоченный состав аргументов. Составная переменная вводится компо- нентой в этот вектор и занимает верцшну на том же уровне, что и другие компоненты вектора а. Компоненты составной перемеъшой заъшмают вер- шины на следующем подчиненном уровне.  Рис. 3.1 .14. Фрагмент представления с В-вектором Рис. 3.1.15. Фрагмент представления с составной переменной  Если составная переменная 29 описывается в термштах табл. 6.1 первой главы следующей формулой: '  д= U(e/v9tv(1), 7/v.9tv(2), ...), (1.32)  то фрагмент иерархического представления, включающий в себя эту состав- °  ную переменную, имеет такой вид:  °-› - - - Ф = W(oz); а= V(E, Ф, ‘д’, д); д = U(e, ‘у, ...); . . . (1.33) Иерархическое представление, в’ отпитше от предлагаемого в этой книге языка, не содержит в формуле составной переменной условий переключе- ния компонент. диаграмма фрагмента иерархического представления c составной пере- менной показана на рис. 3.1.15.  105 
АНКЕТЫ  АНКЕТА  ‚е ФАМИЛИЯ ПОЛ ДАТА ИМЯ ОТЧЕСТВО  ОБРАЗО‘ СВЕДЕНИЯО ВЫС- РАБОТЫ ПРАВИТЕЛЬСТВЕН- РОЖДЕНИЯ ВАНИЕ ШЕИ ОБРАЗОВАНИИ НЫЕ НАГРАДЫ  ГОД ЧИСЛО МЕСЯЦ СВЕДЕНИЯ ОТСУТСТВИЕ РАБОТА ПРАВИТЕЛЬСТВЕН-  0 ВУЗЕ СВЕДЕНИИ НАЯ НАГРАДА НАИМЕНОВАНИЕ ДАТА ОКОН‘ АДРЕС ГОД ПОСТУП- НАИМЕНОВАНИЕ ВУЗА ЧАНИЯ ВУЗА ВУЗА ЛЕНИЯ ПРЕДПРИЯТИЯ ГОД ЧИСЛО МЕСЯЦ  Рис. 3.1.16. Иерархическое представление ”анкеты”  1.5.5. Теперь изложены все выразительные средства иерархического представления и их можно проиллюстрировать иерархическим представле- нием двух информатшонньтх объектов: ”аъп‹еты” и ”валовых выпусков”. На рис. 3.1.16 показана структурная диаграмма иерархического представле- ния ”анкеты”. В отличие от первого представления, даъшого на рис. 3.1.6, здесь участвуют В-векторы: ДАТА РОЖДЕНИЯ, ДАТА ОКОНЧАНИЯ ВУЗА, СВЕДЕНИЯ О ВУЗЕ, сюда включена составная переменная СВЕ- ДЕНИЯ О ВЫСШЕМ ОБРАЗОВАНИИ с компонентой — вектором СВЕ- ДЕНИЯ О ВУЗЕ и второй компонентой -- тривиальной переменной ОТСУТСТВИЕ СВЕДЕЪШЙ, здесь же переменная ПРАВИТЕПЬСТВЕННЫЕ НАГРАДЫ считается не элементарной, а множественной, и присоединенной к ней взята переменная под названием ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА. Конструкционная переменная Фо названа АНКЕТЫ, а присоединенный к ней вектор а, — АНКЕТА. Исходным для иерархического представления ”анкеты” является охшсание, данное на рис. 2.1.1 второй главы в терминах предлагаемого в настоящей книге языка описания информационных объек- тов. Описание ”валовых выпусков”, даъшое на рис. 2.2.1 гл. 2 в теришнах того же языка, является отправным пунктом для второй штлюстрации — иерархического представления объекта ”валовые выпуски” (см. рис. 3..1.17) . Обратим внимание, что на семь исходных гшформатшонных переменных этого объекта приходится двенадцать конструкционных; множественным векторным переменным даны наименования: МВПО, МВП1 , ...‚ присоединенным векторам: ПВ1 , ПВ12‚ .. _ 1.6. Соотношение между описаниями. ‘Иерархическое представление гшформациоъшого объекта почти совпадает c ИНЭС-МОДЭЛЬЮ этого объек- та. (Иерархическое представление объекта следует переписать в синтаксисе  106  а и jg gr- i г.‘ K А ь  ‚Мёд-мёд:  °д%' 
рис, 3.1.17. Иерархическое представле- МВПО ние ”валовых выпусков”  инэсмодели, дополнить выраже- „ы mam, относящимися к своиствам значеншй элементарных скалярных  переменных, И еще заменить, если МИНИСТЕРСТВО ИВП1 это возможно и полезно, некоторые переменные так называемыми ссы- мвпп ночными переменными - тогда полученное описание ока всется ИНЭС-модепью объекта). В этом РЕСПУБЛИКА ИВП12  пункте речь будет идти о сопоставле- нии выразительных средств предла- гаемого B настоящей книге языка — они собраны в табл. 6.1 гл. 1 —и вы- разительных средств ИНЭС-модели, двддсть или мвп123  ПВ123  Ь  которая далее считается тождествен- ГОРОД нойиерархическому представлеъшю. 1.6.1. Факт существования функ- "51234 циональной зависимости между за- И висимой переменной и группой неза- „э; цприяти E MBm234  висимых переменных-аргументов в терминах нашего языка выражается формулой функциональной зависи- "312345 мости. В ИНЭС-модели такой факт следует из того, что переменные, МЕСЯЦ MBm2345 отмеченные признаком независи- мости, в дереве представления пред-  Х  шествуют переменной, не имеющей ‚ nB123455 такого признака (о том, что в иерар- хическом представлении: аргументы вид ВАЛОВЫЙ выделяются специальным образом, ЗЫПУСКА Выпуск  здесь говорится впервые). Свойство уьшкальност идинеуникальности функ- циональной зависимости никак не отражается в ИНЗС-модели, атабл.6.1 пре- доставляет на этот счет особые символы функций. О обые символы функций отводятся в табл.6.1 также и для обозначения многозначности зависимости. К тому же в ишогозначной зависимости зависимая перемеъшая — всегда множественная и она по необходимости фигурирует в‘ формуле множест- венности, которая связывает эту зависимую переменную с ее присоеди- ненной перемеъшой. ИНЭС-модель располагает специальным средством для Выражения свойства шюжественности зависимой переменной и одновре- менно многозначности ее зависимости от своих аргументов. АНЭС-модель допускает существование над каждой перемеъшой только Одного вектора, непосредственно включающего в свой состав эту пере- меннУю; свойства нашего языка не ограничивают числа непосредственных векторов над каждой переменной. Табл. 6.1 определяет составную переменную через ее компоненты и HH- дикаторную переменную; ИНЭС-модель дает возможность выразить ком- поненты составной переменной без условий их смены. 107 
1.6.2. Перевод описания информационного объекта, которое составлено в терминах нашего языка, в ИНЭС-модель этого объекта может произво- диться программным образом. ` Такая программа сначала приводит к иерархическому представлению каждую отдельно взятую фут-ткциональную зависимость. За первоначальный порядок подчинения может браться порядок следования аргументов в пра- вой части формулы функциональной зависимости. В ходе работы с объек- том субординация переменных может меняться, следуя статистике запро- сов, о чем уже говорилось в разделе 1.1.4. Следующий шаг программы — объединение одиночных представлений. В этой операции не участвуют составные зависимости и векторные пере- менные, а ышогозначньте зависимости на этом шаге полагаются однознач- ными (см. п. 1.4). Третий шаг — добавление присоединенных переменных к множествен- ным скалярным переменным, встраивание векторов в иерархию (должно быть не более одного вектора, непосредственно подчиняющего‘ каждую переменную) и введеъше составных зависимостей. Все действия первого, второю и третьего шагов огшсываемой программы были изложены в пре- дыдущих пунктах настоящею параграфа. Последние шаги программы — перевод иерархического описания объек- та в синтаксис ИНЭС-модели, дополнеъше формулами свойств значений элементарных скалярных переменных и замена некоторых переменных ссьшочньтми переменными — так же как и предыдущие шаги, допускают формализацию. В заключение этого параграфа отметим, что по богатству выразительных средств ИНЭС-модель ближе, чем все прочие модели, к языку описания, предлагаемому в настоящей къшге.  § 2. Реляционная модель  Реляшюнная модель данных была предложена Коддом в 1970 году [75] . Центральным в ней является понятие отношения (relation). 2.1 . Основные определения. 2.1.1. Пусть даны множества$1 ‚Ю; ‚ ...,9,, (не обязательно различные). Рассмотрим множество п-арных кортежей (d1, dz , ..., d,,) таких, что первый элемент каждого кортежа принадлежит множеству 01, второй -932, ..., n-bni —- Ют Отношение R определяют как множество элементов — корте- жей «д, dz, ..., d,,), составляющие которых дд , dz, ..., d,, находятся в задан- ном отношенша. MHo>1<ecn3a$1,$2, „Ют порождающие отношеъшя, назы- вают доменами, число п — степенью отношеъшя, число кортежей -- мош- ностью отношения. 2.1,2. Рассмотрим пример. Пусть даны три множества:5)1 — множество всех возможных фамилий, имен, отчеств,$2 = {муж, жен} иЮз — множест- во годов рождения. Отношение}? — ”быть сотрудником ЗТМ”, определен- ное на Ю‚‚Ю2,Ю3‚ составляют следующие кортежи: { (иванов иван Иванович, муж, 1927 ). ( пантелеев дшштрий Ильич, муж, 1959 ), (петрова надежда петровна, жен, 1934 ), (оеменова анна дмит- риевна‚ жен, 1950), < сидоров петр Иванович, муж, 1914 )} (2.1)  108  ___—  §«m_ ‚. 
В отношении (2.1) нет кортежей типа (иванов иван Иванович, жен, 2000) или (воробьева Клавдия николаевна, муж, 11) и т.п.; в отношение включены только такие сочетания элементов множеств Ю, , $2 ‚Юз, которые есть в табл. 1.1 гл. 1; именно они находятся в отношении ”быть сотрудником ЗТМ”. Степень отношения (2.1) равна 3, мощность — 5. 2.1.3. Обычно отношение отображают таблицей, каждая строка которой представляет кортеж. Количество столбцов таблицы равно степени отно- шения, а число строк — его мощности. Столбец таблицы называют атри`бу- том, его заголовок — наименованием атрибута, содержимое окон таблицы под заголовком — значеъшями атрибута. Табл. 2.1 иллюстрирует табличное отображение отношения (2.1) , которому присвоено наименоватше ”сотруд- ники ЗТМ”. Первый, второй и третий атрибуты имеют соответствешю такие наименования: ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ПОЛ и ГОД РОЖДЕНИЯ. Наименование отношения и наименование атрибутов должны быть уникальными. Что касается доменов, то, как уже указывалось, оъш мо- гут повторяться в наборе $‚,Ю‚, ..., Q . Например, атрибуты ГОД РОЖ- ДЕНИЯ, ГОД ОКОНЧАНИЯ ВУЗА, ГОД ПОСТУПЛЕНИЯ имеют в ка- честве домена ЦЕЛЫЕ НЕОТРИЦАТЕЛЬНЫЕ ЧИСЛА. Так что уникаль- ность наименований атрибутов позволяет различать атрибуты, значения которых принадлежат одному K тому же домену. 2.1.4. Из того факта, что отношение есть множество, следует, что ника- кие два кортежа отношения нетождественны и что упорядоченность корте- жей несущественна. Средством выделения отдельных кортежей является ключ отношения. Ключом отношения называется атрибут (или набор атрибутов), каждое значение которого идентифгщирует ровно один какой-то кортеж отноше- mm. Из этого определения следует, что каждому значению ключа соответст- вует одно-единственное значение любого атрибута отношения (в том числе и любого атрибута, входящего в состав ключа отношения). В отношении Рсотрудники ЗТМ” (табл. 2.1) ключом может быть назна- чен атрибут ФАМИЛИЯ ИМЯ ОТЧЕСТВО, если есть уверенность, что среди сотрудников ЗТМ нет и никогда не появится двух человек, у кото- рых совпадали бы фамилии, имена и отчества. В противном случае в качест- ве ключа можно выбрать пару: ФАМИЛИЯ ИМЯ ОТЧЕСТВО — ГОД РОЖ- ПЕНИЯ или даже тройку: ФАМИЛИЯ ИМЯ ОТЧЕСТВО — ПОЛ -- ГОД РОЖДЕЪШЯ.  Таблица 2.1 Сотрудники ЗТМ ФАМИЛИЯ ИМЯ ОТЧЕСТВО ПОЛ ГОД РОЖДЕНИЯ иванов иван иванович муж 1927 пантелеев дмитрий ильич муж 1959 петрова надежда петровна жен 1 934 семесюва анис доиитриевпа жен 1950 сидоров негр иванович муж 1914  109 
Факт существования ключа следует из того, что шдкакие два кортежа в отношении не могут быть тождественными. Если же в наборе кортежей встречаются совпадающие, то такой набор не является отношением; он может быть сделан отношением, если к составляющим d Е’) , d§°) , ..., d,,' каждого кортежа Добавить еще по одной — d,$;>, , доставляющей каждому кортежу уникальность. 2.1.5. Для краткой затшси отношеьшй используют формулу следую- шего вида:  R(A1, A2, д; ...,A,, A,,), (2.2)  которую называют схемой отношения. В этой формуле R наименоваьше отношений, Ад, А, , ...,А‚‚, ...‚А‚, ..., А„ — наименоваьшя атрибутов. Атрибу- ты заключаются B круглые скобки и отделяются один от другого запяты- ми. Ключ отношения выделяется чертой снизу. Отношение Ёсотрудники ЗТМ” може 1 бы гь отражено формулой предложенного вида так: СОТРУДНИКИ ЗТМ (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ‘ПОЛ, ГОД РОЖ- ДЕНИЯ) _ (2.3) 2.1.6. Реляционное представлеъше информационного объекта может  ° содержать не одно, а несколько отношеьшй. Если в двух или более отноше-  ниях имеются одинаковые атрибуты, то тем самым существует возмож- ность установить св язь между этими отношениями. 2.2. Нормализация отношений. _ 2.2.1. Выберем из ”анкеты” следующие атрибуты: ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ОБРАЗОВАНИЕ, ГОД ПОСТУПЛЕЪШЯ и НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ. По правилам реляционного представления эта совокуп- ность переменных приводится к отношеъшю, называемому далее ОБРАЗО- ВАНИЕ-РАБОТЫ; реляционная формула этого отношения имеет следую- щий‘ вид: _ ОБРАЗОВАНИЕ-РАБОТЬ1 ~ (<I_3‘_I§_4I/IJII/I51 ИМЯ ОТЧЕСТВО, ГОД ПОСТУПЛЕНИЯ НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ, ОБРАЗОВАНИЕ). (2.4) Табличное отображение отношения приведено в табл. 2.2. Фрагмент табл. 1.1 из ил. 1 с теми же переменными: отличается от табл. 2.2 тем, что в последней многократно повторяются одинаковые значения ФАМИЛИИ ИМЕНИ ОТЧЕСТВА и ОБРАЗОВАНИЯ.  Таблица 2.2 ‘Юбразование-работы” . Е В - ФАМИЛИЯ имя отчество ‚ЧЁЁИЪОСТУП §fi‘g“}‘,,,f§§_ А ОБРАЗОВАНИЕ ПРИЯТИЯ иванов иван иванович 1941 мвз среднее иванов иван иванпвич 1949 am среднее паителеев дмитрии шиш. 1976 Зтм незакон высшее петрова надежда петоовна 1958 saw высшее семеиова дина дмигриегча 19 76 am высшее сидоров nezp иванович 1935 лзмм высшее сидоров пвтр иванович 1941 армия высшее сидоров nezp иванович 1949 am высшее  110 
каждый кортеж отношеъшя ”образование-работьт” имеет по четыре составляюших.- Чтобы уникальным образом идентифицировать кортежи, уже недостаточен один атрибут ФАМИЛИЯ ИМЯ ОТЧЕСТВО в качестве ключа, как это бьшо в ‘отношеъши ’°сотрудники ЗТМ”. Ключ из двух атрибу- тов ФАМИЛИЯ ОТЧЕСТВО-ГОД ПОСТУПЛЕНИЯ позволяет выделять каждый кортеж рассматриваемого отношеъшя по отдельности. Значеъшями нового ключа являются всевозможные допустимые сочетания значений атрибутов ФАМИЛИЯ ИМЯ ОТЧЕСТВО и ГОД ПОСТУПЛЕНИЯ из табл. 1. 1. гл. 1. Так в реляционной табл. 2.2 получается многократное дублироваъше значений атрибута ФАМИЛИЯ ИМЯ ОТЧЕСТВО. Повторы значений ФАМИЛИИ ИМЕНИ ОТЧЕСТВА с неизбежностью вле- кут за собой повторы значешй ОБРАЗОВАНИЯ. Представление рассмат- риваемой совокупности атрибутов в одном отношешш (2.4) порождает необходимость считать, что для атрибута ОБРАЗОВАНИЕ ключом является пара: ФАМИЛИЯ ИМЯ ОТЧЕСТВО-ГОД ПОСДГУПЛЕЪШЯ, хотя для от- дельно взятого ОБРАЗОВАНИЯ в качестве ключа достаточен один атрибут ФАМИЛИЯ ИМЯ ОТЧЕСТВО. Избежать дублироватшя значений атрибута ОБРАЗОВАЪШЕ можно, вынеся ФАМИЛИЮ ИМЯ ОТЧЕСТВО и ОБРАЗО- BAHI/IE B отдельное отношение (правда, значеъшя ФАМИЛИИ ИМЕЪШ ОТЧЕСТВА будут при этом фигурировать в двух отношениях); схемы новых двух отношений затшсываются следующим образом (ср. прежнее реляционное представившие (2.4)):  ОБРАЗОВАНИЯ (ФАМИЛИЯ имя одтвство, OBPABOBAHI/IE); РАБОТЫ (ФАМИЛИЯ имя отчвство, год поступлвния, НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ). (2.5)  Два новых отношения информационно эквивалентны исходному. Расщепление исходного отношеъшя (2.4) на два (2.5) позволяет упро- cum: операции, связанные с обновлеъшем значений. Например, если необхо- димо изменить значение ОБРАЗОВАНИЕ при каком-то значеншт ФАМИЛИЯ ИМЯ ОТЧЕСТВО, то в новом отношеъши не воэъшкает проблема обеспе- чения непротиворечивости записей, поскольку фамилия, имя, отчество и образоваъше оотрудникапоявлятотся точно в одном кортеже. В ва- рианте (2.4) таких кортежей может быть несколько, что подтверждает табл. 2.2, и нужно не пропустить ни одного кортежа при внесеъши из- менеъшя.  Описанньпй процесс расшеплеъшя сложного отношения на простые — один из примеров так называемой нормализации отношений. 2.2.2. Второй пример нормализации отношеъшй доставляют следующие действия c тройкой атрибутов из ”анкеты”: ФАМИЛИЯ ИМЯ ОТЧЕСТВО, НАИМЕНОВАНИЕ ВУЗА, АДРЕС ВУЗА. Отношение, построенное на этих атрибутах и названное ”специалисты-вузы”, описывается такой реля- Ционной формулой: ь СПЕЦИАЛИСТЫ-ВУЗЫ (ФАМИЛИЯ ИМЯ ОТЧЕСТВО. НАИМЕНОВА- НИЕ ВУЗА, АДРЕС ВУЗА). (2.6)  Табличное отображение (2.6) показано в табл. 2.3; там, в отличие от табл. 1.1 гл. 1, нет строк, относящихся к сотрудникам, которые не имеют высшего образования. -  111 
‚танцевавший  Таблица 2.3 ”Cneuuanuc'r5t-ny3b1” ФАМИШШ ИМЯ . ОТЧЕСТВО НАИМЕНОВАНИЕ АДРЕС ВУЗА ВУЗА nezpoea надежда петровна мигхт москва г-41 7 м пироговская 1 саменова анна дми zpueeua лпи ленипград к-251 политехни- ческая 29 сидоров петр иванович лпи ленинград к-251 политехни- ческая 29  Вместо отношения (2.6) введем следующие два отношения: СПЕЦИАЛИСТЫ (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, НАИМЕНОВАНИЕ ВУЗА): ВУЗЫ (НАИМЕНОВАНИЕ ВУЗА, АДРЕС ВУЗА). (2.7) Пара отношений (2.7) представлена в табл. 2.4‚а и 2.4, б. Они эквивалентны исходному отношению (2.6): если требуется узнать адрес вуза, в котором уьшлся такой-то сотрудник, то из первого отношеъшя -- табл. 2.4‚а -— можно узнать наименоваъше оконченного им вуза, из второго — табл. 2,4,б - адрес этого вуза. В расщеплении исходного отношеъшя (2.6) на пару новых отношеъшй имеются свои удобства. Первое из них в том, что пара отноше- Hm“: содержит, скорее всего, меньше значений, чем одно исходное. Заметим, что значения атрибута НАИМЕНОВАНИЕ ВУЗА? представлены и в первом и во втором отношениях, и если все сотрудники предприятия, имеющие высшее образоваъше, учились в разных вузах,'то желаемого сокрашеъшя объема значений не произойдет — значеьшя НАИМЕНОВАНИЯ ВУЗА будут дублироваться против прежнего. Однако, скорее всего, сотрудники одного предприятия утшлись в небольшом числе близких по профилю ВУЗОВ, и это обстоятельство дает основание надеяться на сокращение объема дан- ных при расщеплении: исходной таблицы. Второй довод за расщепление касается поправок. Скажем, один из вузов, часто упоминающийся в анкетах, сменил адрес. Тогда в` варианте (2.7) поправка должна вноситься один раз, а в варианте (2.6) — столько раз, сколько этот вуз упоминается в анкетах.  99 99 99 99 Таблица 2'4 Специалисты Вузы Таблица 2.4‚а Таблица 2. 4, б HA1/IMEI-IO» НАИМЕНО- Ф^Мидия Имя ВАНИЕ BAHPIE АДРЕС ВУЗА ОТЧЕСТВО ВУЗА ВУЗА MTP034’ W109-71004 '1€7‘P06W1 мипст мипст москва г-41 7м пиро- саменова дина дмитриевна „т, говская 1 сидоров nezp иванович лпи лпи ленииград к-251 поли-  техническая 29  112 
к числу действий, называемых приведеъшем информационного объекта  ` Переход от отношения (2.6) к паре отношений (2.7) также принадлежит  к нормальной форме. 2.2.3. Последнему отношению, привлекаемому в связи с нормализа- Ё цией, дано наименование ”награды”:  НАГРАДЫ (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ПРАВИТЕЛЬСТВЕННАЯ  ЦАЕАЩА) ; (2.8)  оно представлено в табл. 2.5. Естш бы реляционное представление двух атрибутов ФАМИЛИЯ ИМЯ ОТЧЕСТВО и ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ имело вид, подобньпй двум столбцам табл. 1.1 гл. 1', то доступ к некоторым конкретным награ- дам был бы закрыт. Некоторые кортежи такого отношеъшя содержали бы вместе со значением ФАМИЛИИ ИМЕНИ ОТЧЕСТВА сгшски ПРАВИТЕЛЬ- СТВЕННЫХ НАГРАД, а не одну ПРАВИТЕЛЬСТВЕННУ Ю НАГРАДУ. д В реляционном представлении, показанном в табл. 2.5, каждая ПРАВИ- ТЕЛЬСТВЕННАЯ НАГРАДА держится отдельно, поэтому имеется доступ . к каждой ПРАВИТЕЛЬСТВЕННОЙ НАГРАДЕ. Поэтому же значеьшя ФА- g МИЛИИ ИМЕНИ ОТЧЕСТВА повторяются в левом столбце табл. 2.5, и значит, один атрибут ФАМИЛИЯ ИМЯ ОТЧЕСТВО не может быть назна- чен ключом отношеъшя НАГРАДЫ. В качестве ключа, значения которого уникальны и каждое значение которого выделяет ровно один кортеж, здесь следует взять пару атрибутов: ФАМИЛИЯ ИМЯ ОТЧЕСТВО-ПРАВИ- д ТЕЛЬСТВЕННАЯ НАГРАДА, что и отражено в реляционной формуле (2.8) . Есхш бы было отношение, которое вместе c ФАМИПИЕЙ ИМЕНЕМ ОТЧЕСТВОМ и ПРАВИТЕЛЬСТВЕННОЙ НАГРАДОЙ содержало бы еще третий атрибут, скажем ГОД РОЖДЕНИЯ или ОБРАЗОВАНИЕ, то такое отношение следовало бы разделить на два: одно - c атрибутами ФАМИЛИЯ ИМЯ ОТЧЕСТВО и ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА, второе — ФАМИ- ЛИЯ ИМЯ ОТЧЕСТВ0 и третий атрибут. Это разделение привело бы к тому, что исключились бы дублироваъшя значеъшй третьего атрибута, выз- ванные дублированием значений ФАМИЛИИ ИМЕНИ ОТЧЕСТВА. Указанное действие также направлено на приведение отношения к нормальной форме. 2.2.4. Процедура приведеъшя отношеъшй к нормальному виду — норма-  лизация отношений — описана в работах [76—80] . Изложение в предыдущих разделах имело целью иллюстрировать эту процедуру без Таблица 2.5 д “Награды” _ФАМИЛИЯ ИМЯ ОТЧЕСТВО ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА ’ иванов иван иванович медаль ”за трудовое отличие” д иванов иван иванович С, орден "знак почета” ‘ пантелеев дмитрий ильич нет петрова надежда петровна нет семенова анна дми триевна нет Сидоров петр иванович медаль "за отвагу” Сидоров nezp иванович орден красной звезды Сидоров петр иванович орден красного знамени ъ 8. Ю.Н. Иванов ' 113 
претензий на сколько-нибудь полное ее освещение. В следующем пункте будет дано истолкование нормализующих преооразоваъшй в тершанах информационных переменных и информационных функций 2.3. Реляционная модель в терминах информационных переменных и информационных функций. Отметим прежде всего, что реляционная модель информационного объекта, в отличие от ИНЭС-модели, иерархи- ческой модели или сетевой модели, не привязана к какой-либо физической организацша значений переменных. Этим реляционный подход к описанию ин- формашаоштых объектов родственен тому, который избран в настоящей книге.  2.3.1. Понятие атрибута тождественно понятию элементарной скаляр- ной переменной, понятие отношения совпадает с понятием набора уникаль- ных одноключевых зависимостей, а понятие ключа подобно понятию аргу- мента. Если зависимость уникальная однозначная одноключевая, то значе- ния ключа совпадают со значениями единственного уникального аргумента (см. (2.3)). Если зависимость уникальная однозначная многоключевая, то значения ключа суть наборы значений аргументов (см. (2.5)). Если зави- симость уникальная неоднозначная, то значения ключа суть наборы значе- ний аргументов плюс значения переменной, присоединенной к множествен- ной зависимой переменной (см. (2.8)). Значения ключа, когда он представлен одной переменной или составлен из нескольких переменных, должны быть уникальными. Из этого, в част- ности, следует, что когда зависимость неуникальная, то ключ, помимо аргументов, должен содержать еще зависимую переменную. Если вклю- чение зависимой переменной в состав ключа не обеспечивает его уникаль- ности, то, значит, такая одна отдельно взятая зависимость не может быть представлена реляционно. Также не может быть представлена реляционно многозначная зависимость, если хотя бы одно ее множественное значение meet совпадающие элементы. Например, если среди ПРАВИТЕЛЬСТВЕН- НЬ1Х НАГРАД, относящихся к какой-то ФАМИЛИИ ИМЕНИ ОТЧЕСТВУ (см. (2.8) и табл. 2.5) , встречаются одинаковые награды, то, следователь- но, B реляционной таблице встречаются и равные кортежи, что делает не- возможньпи уникальность значений ключа. ` 2.3.2. О нормализации отношений. Переход от реляционного представ- ления (2.4) к представлению (2.5) - это пример расщепления одного отно- шения, содержащего одну двухключевую и одну одноключевую зависимос- ти, на два отношения, одно из которых содержит только одноключевую за- висимость, а второе — только двухключевую зависимость. Отношение (2.4) считается требующши нормализации, а отношения (2.5) - отноше- ниями в нормальной форме. Переход от ненормализоваштого отношения (2.6) к двум отношениям в нормальной форме (2.7) базируется на замене сложной функции -- АДРЕС ВУЗА = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) — двумя простьпии функциями, порождающими эту сложную: АДРЕС ВУЗА = F (НАИМЕНО- ВАЪШЕ ВУЗА) иНАИМЕНОВАНИЕ ВУЗА =Р (ФАМИЛИЯ ИМЯ ОТЧЕСТ- ВО). Наконец, третий рассмотренный пример нормализашш отношения — это выделение в специальное отношение многозначной зависимости. Рассмотренные примеры нормализации предписывают следующий поря- док компоновки в отношения функциональных зависимостей информа- 114  I д. вы .-*4 д‘;  вг д 
циоШ-ЮГО объекта: 1) переменные каждой многозначной зависимости составляют отдельное отношение; 2) несколько однозначных зависимостей могут включаться в одно отношение, если только они имеют одинаковые наборы аргументов; 3) среди последних не должно быть сложных функ- ций - все функции должны быть простыми. 2.3.3. В реляционной модели нет средств для выражения векторов. Этим исключается экономная запись запросов, а также исключается возможность иметь одноименные скалярные леремеъшые. В связи с послед- ним переменные ГОД, ЧИСЛО и МЕСЯЦ, составляюцше векторы ДАТА РОЖДЕНИЯ и ДАТА ОКОНЧАНИЯ ВУЗА, должны быть переименованы. Примем для них уже употреблявцшеся наименования: ДАТА РОЖДЕНИЯ. год, ДАТА РОЖДЕНИЯ. ЧИСЛО, ДАТА РОЖДЕНИЯ. МЕСЯЦ, ДАТА ОКОНЧАНИЯ ВУЗА. ГОД, ДАТА ОКОНЧАНИЯ ВУЗА. ЧИСЛО, ДАТА ОКОНЧАНИЯ ВУЗА. МЕСЯЦ. 2.3.4. В реляционной модели отсутствуют средства для выражения сос- тавных функциональных зависимостей. Чтобы привести к совокупности отношений тшформационтшй объект ”анкета”, его следует расщепить на два объекта: ”анкета. с0ТРУдНика с высцшм образованием” и ”анкета сотрудника без высшего образования”. Каждый из новых объектов допускает реляционное представление без то- го, чтобы искусственно доопределять переменные НАИМЕНОВАНИЕ ВУЗА, ДАТА ОКОНЧАНИЯ ВУЗА. ГОД, ДАТА ОКОНЧАНИЯ ВУЗА. ЧИСЛО, ДАТА ОКОНЧАНИЯ ВУЗА. МЕСЯЦ при значениях ОБРАЗОВАНИЕ # # высшее. Второй вариант расщепления, также не требующий доопределения пере- менных, — это выделение переменных, касающихся сведеншй о вузе, в отдельное отношение: Этот вариант принят в полном реляциоъшом представ- пении ”анкеты”, формулами которого заканчивается настоящий параграфУ СОТРУДНИКИ (‘ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ПОЛ, ДАТА РОЖДЕ- НИЯ. ГОД, ДАТА РОЖДЕНИЯ. ЧИСЛО, ДАТА РОЖ- ДЕНИЯ. МЕСЯЦ, ОБРАЗОВАНИЕ); СВЕДЕНИЯ О ВУЗЕ (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, НАИМЕНОВАНИЕ I ВУЗА, ДАТА ОКОНЧАНИЯ ВУЗА. ГОД, ДАТА ОКОНЧАНИЯ ВУЗА. ЧИСЛО, ДАТА ОКОНЧА- НИЯ ВУЗА. МЕСЯЦ); ВУЗЫ (НАИМЕНОВАНИЕ ВУЗА, АДРЕС ВУЗА); РАБОТЫ (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ГОД ПОСТУПЛЕНИЯ, НАИ- , МЕНОВАНИЕ ПРЕДПРИЯТИЯ); НАГРАДЫ (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА) . (2.9)  § 3. Иерархическая модель  В настоящем параграфе рассматриваются основные черты так называемой тради- Ционной иерархической модели, используемой в СУБД типа IMS [81, 73, 82]. ‚ Ввиду того, что выразительные средства модели данных IMS почти эквивалентны Вьтазитезтьным средствам нашего языка, изложение имеет своей целью не столько Сравнение, сколько позитивное описание основных выразительных средств традицион-  ного иерархического подхода. Как и прежде, в иллюстративных целях ‚будет исполь- зоваться ”анкета”.  зч= ` 115 
сотрудники — СОТРУДНИКИ ФАМИЛИЯ ИМЯ‚ ПОЛ ОБРАЗОВАНИЕ ФАМИЛИЯ ИМЯ ПОЛ ОБРАЗОВАНИЕ РАБОТЫ РАБОТЫ °ТЧЕСТВ° год поступ- НАИМЕНОВАНИЕ рАБотА ЛЕНИЯ ПРЕДПРИЯТИЯ ГОД НАИМЕНОВАНИЕ ПОСТУПЛЕНИЯ ПРЕДПРИЯТИЯ  Рис. 3.3.1. Сопоставление ИНЭС-и 1М8-диаграмм  3.1. ШЗ-днаграммы. Рассмотрение особенностей традиционного иерархического представления информационных объектов целесообразно начать со структурных диаг- рамм. далее, во избежание путаницы при изложении модели данных СУБД 1М8 будет использоваться термин ”1М З-диатрамма”. 3.1.1. Напомним, что’ на структурной диаграмме ИНЭС исходные и конструкцион- ные переменные изображаются вершинами дерева, а отношения между ними — стрел- ками. На рис.3.З.1 слева приведена ИНЭС-диаграмма двухключевого информационного объекта, являющегося фрагментом "анкеты" и содержащего переменные: ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ПОЛ, ОБРАЗОВАНИЕ, ГОД ПОСТУПЛЕНИЯ, НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ. На ИНЭС-диахрамме этим исходным переменным соответствуют  терминальные вершины, а конструкционные переменные-РАБОТА, РАБОТЫ, СОТ-  РУДНИК, СОТРУДНИКИ — занимают промежуточные и корневую вершины. [МЗ-диаграмма того же информационного объекта приведена на рис. 3.3.1 справа. Она также имеет вид дерева. Тройке элементарных скалярных переменных -—ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ПОЛ, ОБРАЗОВАНИЕ - отведен прямоугольник, над которым надписано его наименование СОТРУДНИКИ. Другой паре. элементарных скаляр- ных переменных - ГОД ПОСТУПЛЕНИЯ и НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ — отведен другой прямоугольник — РАБОТЫ и он подчинен первому. Элементарные скалярные переменные в ЛМЗ-модели называются полями; на 1М8-диа1рамме они записываются внутри прямоугольников. Совокупность полей, объединенных в один прямоугольник, называется сегментом; наименования сегмен- тов надписываются над птрямоуголъником. Сегмент РАБОТЫ включает поля: ГОД ПОСТУПЛЕНИЯ и НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ, сегмент СОТРУДНИКИ — поля ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ПОЛ и ОБРАЗОВАНИЕ. Сегмент СОТРУДНИКИ — корневой, сегмент РАБОТЫ — подчиненный. Подчинение сегментов отражает приня- тый порядок субординации аргументов. В терминах ТМЗ-модели множественная векторная переменная — это один из типов сегментов. Значение вектора с аргументом, который присоединен к множественной векторной переменной, называется в 1М8-модели экземпляром сегмента. 3.1.2. Обратим внимание на два обстоятельства, связанных с ТМЗ-диаграммами. Во-первых, на этих диаграммах нет конструкционных переменных — векторов с аргументом. Во-вторых, исходные переменные ФАМИЛИЯ ИМЯ ОТЧЕСТВО. ПОЛ, ОБРАЗОВАНИЕ размещаются в нетерминалъном сегменте, а на диаграмме ИНЭС они же занимают терминальные вершины. В ТМЗ-модели подчинение устанавливается непосредственно между исходными переменными, сгруппированными в сегменты. Чтобы получить 1М$-диаграмму из ИНЭС-диахраммы объекта, содержащего элементарные скалярные переменные, надо:  116  L__ 
СОТРУДНИКИ  ФАМИЛИЯ ИМ Я ОТЧ ЕСТВО  ПОЛ ОБРАЗОВАНИЕ I  ПРАВИТЕЛЬСТВЕННЫЕ РАБОТЫ НАГРАДЫ ГОД НАИМЕНОВАНИЕ ПРАВИТЕЛЬСТВЕННАЯ ПОСТУПЛЕНИЯ ПРЕДПРИЯТИЯ НАГРАДА  Рис. 3.3.2. ТМЗ-диаграмма объекта, включающего многозначную зависимость  1) устранить векторы c аргументом; 2) из терминальных вершин, подчиненных одному вектору с аргументом, образо- вать сегмент. присвоив ему наименование ближайшей старшей вершины-множест- венной векторной переменной; 3) провести между сегментами стрелки, показывающие подчинения сегментов; подчинения сегментов отражают принятую субординацито аргументов; шобой сегмент может шиеть много подчиненных сегментов и не более одного старшего сегмента; корневой сегмент не имеет старшего. 3.2. Многозначные зависимости в 1М8-модели. Рассмотрим 1М8—пр едставление мно- гозначных зависимостей на примере: ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ = С (ФАМИЛИЯ ИМЯ ОТЧЕСТВО). Ввод множественной переменной и присоединенной к ней переменной в [МЗ-конст- рукцию производится следующим образом. присоединенная переменная ПРАВИ- ТЕЛЬСТВЕННАЯ НАГРАДА объявляется полем, а множественная переменная ПРА- ВИТЕЛЬСТВЕННЫЕ НАГРАДЫ — сегментом, содержащим это единственное поле; сегмент ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ подчиняется сегменту СОТРУДНИКИ, включающему в свой состав аргумент ФАМИЛИЯ ИМЯ ОТЧЕСТВО. На рис. 3.3.2 показана ШЗ-диаграмма информационного объекта, имеющего те же переменные, что и на диаграмме 3.3.1 справа, и еще — ПРАВИТЕЛЬСТВЕННЫЕ НАГРА- ДЫ и ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА. х  3.3. Векторы в НИЗ-модели. Пусть объект, помимо тех зависимостей, которые представлены на рис. 3.3.2, вкшочает еще переменные ГОД, ЧИСЛО, МЕСЯЦ и вектор ДАТА РОЖДЕНИЯ. Все четыре- последние переменные зависят от аргумента ФАМИ- ЛИЯ ИМЯ ОТЧЕСТВО. Введение вектора в ЕМЗ-представление осуществляется следую- щим образом. ° Вектор ДАТА РОЖДЕНИЯ объявляется сегментом, а компоненты ГОД, ЧИСЛО, МЕСЯЦ — его полями. Сегмент ДАТА РОЖДЕНИЯ подчиняется сегменту СОТРУД- НИКИ, который имеет полем аргумент ФАМИЛИЯ ИМЯ ОТЧЕСТВО рис. 3.3.3.  СОТРУДНИКИ ФАМИЛИЯ [имя ОТЧЕСТВО ПОЛ ОБРАЗОВАНИЕ  ПРАВИТЕЛЬСТВЕННЫЕ  ДАТА РОЖДЕН ИЯ РАБОТ Ы Н АГ РА ДЫ ha J:::;:::::¢::E |"W:::.:‘;{:E""**  Puc. 3.3.3. 1М8-диаграмма объекта, включающего векторную переменную 1 17 
СОТРУДНИКИ  ФАМИЛИЯ ИМЯ ОТЧ ЕСТВ0  ПОЛ ОБРАЗОВАНИЕ l  flPABV1TEIlbCTBEl'l' ДАТА РОЖДЕНИЯ СВЕДЕНИЯ О ВУЗЕ РАБОТЫ НЬ|Е НАГРАДЫ у НАИИЕНОБА‘ АДРЕС| ГОД ПОСТУП- НАИМЕНОВАНИЕ ПРАВИТЕЛЬСТ‘ Iron число мЕсяц| НИЕ ВУЗА ВУЗА ЛЕНИЯ ПРЕДПРИЯТИЯ ВЕННАЯ НАГРАДА  \  ДАТА окончАния ВУЗА  [filuwcnolmtcaul  Puc. 3.3.4. [МЗ-диаграмма ”анкеты”  3.4. [ИЗ-диаграмма информационного объекта ”анкета” показана на рис 3.3.4. Там новыми по сравнению с диаграммой рис. 3.3.3 являются сегменты СВЕДЕНИЯ О ВУЗЕ и ДАТА ОКОНЧАНИЯ ВУЗА. которые требуют комментариев. 1М$-модель не располагает специальным средством для выражения составных функ- ций. Чтобы экономным образом представить-”анкету”‚ являющуюся, как это было установлено в разделе 5.4.2 гл. 1, объединением двух информационных объектов: ”короткой анкеты“ (для тех, кто не имеет высшего образования) и ”длинной анкеты” (для тех, кто имеет высшее образование), поступают следующим образом. Выделя- ются совпадающие переменные; для них строится 1М$-\г|редставление. Несовпадающие пер сменные образуют свою иерархическую конструкцию, которая подчиняется сегмен- ту, содержащему аргумент этих несовпадаюцшх переменных. Сегменты СВЕДЕНИЯ О ВУЗЕ и ДАТА ОКОНЧАНИЯ ВУЗА являются именно такой конструкцией в случае ”анкеты”. - Отметим в заключение, что [МЗ-модель располагает средством указания уникаль- ности или неуникальности кшоча-аргумента.  § 4. Сетевая модель  Сетевая модель данных была предложена рабочей группой по базам данных систем- ного комитета Кодасил (CODASYL DATA BASE TASK GROUP) [83—88]. Сетевая модель во многом подобна [МЗ-модели, и в настоящем обзоре выделяются в основном отличительные особенности сетевой модели. 4.1. Основные понятия. Запись и набор суть основные понятия сетевой модели. В максимальном случае запись объединяет в себе элементы данных, векторы и повторяющиеся грушты; в мшяшальньш случаях запись может состоять либо из одного элемента данных, либо из одного вектора, либо из одной повторяющейся груп- пы. В переводе на язык информационных переменных элемент данных есть элементар- ная скалярная переменная, вектор — элементарная векторная переменная, повторяю- щаяся группа — множественная скалярная или множественная векторная переменная, в максимальном случае запись - множественная векторная переменная. Экземпляр записи, когда запись выслупает как множественная векторная перемен- ная, — это одно значение присоединенной переменной, идентифишаруемое значением ключа, которым является входящий в состав записи аргумент. Набор есть средство выражения отношения между записями. В [МЗ-модели можно выразить только отношение типа ”один ко многим”; сетевая модель дает средство для  118  › \‚„‹  Adi?‘  -if an а  {ь ‘iv’ “I *~ ‚дыши 
выражения отношения типа ”многие ко многим”. В наборе всегда представлены две записи: старшая, или владелец набора, и младшая, или член набора. Одна и та же запись может быть членом нескольких наборов - так образуется сетевая структура (а не иерархическая, как в 1М$-модели). Особое место занимает набор, в котором владелец weer наименование СИСТЕМА; такой набор называется сингулярным. Сетевое представление информационных объектов, как и ИНЭС- и [ИЗ-представле- mm, удобно иллюстрировать диаграммой. Диаграмма сетевой модели в общем слу- чае — сеть, вершины которой соответствуют записям, а стрелки между вершинами — наборам. Стрелки направляются от записей-владельцев к записям-членам. 4.2. Записи связи. Сетевая модель позволяет без избыточности представлять отно- шения типа ”многие ко многим”. Пример такого отношения доставляет определенная в п. 3.4 гл. 1 многозначная зависимость ГОДЫ ПОСТУПЛЕНИЙ =G (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) . _ Некоторым значениям ФАМИЛИИ ИМЕНИ ОТЧЕСТВА соответствуют неразложи- мые значения зависимой переменной ГОДЫ ПОСТУПЛЕНИЙ, а другим - списки эле- ментов, составляющих значения. Обратно: некоторым элементам значений переменной ГОДЫ ПОСТУПЛЕНИИ соответствуют неразложимые значения ФАМИЛИИ ИМЕНИ ОТЧЕСТВА. а другим — разпожимые на элементы значения. Так что ГОДЫ ПОСТУПЛЕ- НИЙ — многозначная функция от ФАМИЛИИ ИМЕНИ ОТЧЕСТВА и обратная ей — также многозначная. При последующем построенгш важно учесть что прямая и обрат- ная функции — Многозначные. Представление обсуждаемой зависимости в виде одного набора, в котором владель- цем является запись ФАМИЛИЯ ИМЯ ОТЧЕСТВО, а членом — ГОДЫ ПОСТУПЛЕ- НИЙ, повлечет за собой дублирование экземпляров записи ГОДЫ ПОСТУПЛЕНИЙ. Иными словами: одни и те же элементы значений переменной ГОДЫ ПОСТУПЛЕНИЙ будут фжурировать в нескольких значениях, соответствующих разным значениям ФАМИЛИИ ИМЕНИ ОТЧЕСТВА. Чтобы избежать дублирования’ и наряду с неповто- ряющимися значениями ФАМИЛИИ ИМЕНИ ОТЧЕСТВА иметь неповторяюшиёся эле- менты значений переменной ГОДЫ ПОСТУПЛЕНИИ, рекомендуется ввести так назы- ваемую запись связи. Она делается членом двух наборов, а исходные записи — вла- дельцами этих наборов. Экземпляры записи связи суть адреса связи. В терминах информационных переменных запись связи — конструкционная пере- менная сетевого представления; будем называть ее переменной связи. значениями пе- ременной связи являются всевозможные допустимые пары значений связываемых пе- ременных, зашифрованные своими адресами. В рассматриваемом примере пары зна- чений таковы (см. табл. 3.2 гл. 1): иванов иван иванович-1941‚ иванов иван иванович-1949‚ пантеаеев дмитий ильйч-197 6, пегрова надежда петровна-195 8, саменова анна dmupueeua-1976, сидоров пет иванович-1935, сидоров nezp ueauoeuu-1 941, сидоров петр иванович-1949. Если теперь переменную ФАМИЛИЯ ИМЯ ОТЧЕСТВО взять за аргумент, а перемен- ную связи принять за зависимую переменную, то такая функциональная зависимость будет многозначной, а обратная к ней — однозначной. То же самое будет шипеть место и для переменной ГОДЫ ПОСТУПЛЕНИЙ и переменной связи. Цель введения перемен- ной связи — искшочение одновременной многозначности прямой и обратной функций. Обсужденная конструкция подсказывает способ сетевого представления двух- кшочевых и, вообще, многокшочевых зависимостей. В тройке: переменная связи, ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ГОДЫ ПОСТУПЛЕНИЙ первую можно заменить НАИ- МЕНОВАНИЕМ ПРЕДПРИЯТИЯ, а вторую — взять в элементарном варианте: ГОД ПОСТУПЛЕНИЯ. Тогда два набора — ФАМИЛИЯ ИМЯ ОТЧЕСТВО-НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ и ГОД ПОСТУПЛЕНИЯ-НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ с общши членом НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ — образуют сетевое представление двух- кшочевой зависимости: НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ГОД ПОСТУПЛЕНИЯ). Адреса связи, являющиеся значениями перемен- ной связи, заместятся после предложенных перемен значениями переменной НАИМЕ- НОВАНИЕ ПРЕДПРИЯТИЯ.  ‘I19 
l"JZ4BA 4 ПРЕОБРАЗОВАНИЯ ИНФОРМАЦИОННЫХ ОБЪЕКТОВ  После зтого как информационный объект сформирован, т.е. он описан по правилам гл. 1 и наполнена значениями: база его значеъшй, c НИМ можно производить следующие действия: 1) можно обращаться к нему c запросами; запросы, как правило, не связаны c изменением ошасания гшформационного объекта или c измене- нием базы его значений; 2) можно дополнять значениями: базу значений — это действие затраги- вает только базу значений и не изменяет огшсаъше ъшформационного объ- екта; 5 З) можно исключать отдельные значеъшя или совокупности значеъшй в базе значеншй — такое действие также не изменяет огшсания объекта; 4) можно корректировать совокупности значеъшй в базе значеъшй — сначала уничтожать неправильные значеъшя, а затем на их место вносить правильные; это действие есть комбинация предыдущих двух действий; 5) наконец, можно преобразовывать гшформационный объект; преоб- разоватшем информациоъшого объекта здесь называется любое действие, которое обязательно изменяет описание объекта и, может быть, его базу значеъшй. ° Предыдущие три главы касались охшсаний информационных объектов. Наполнение базы значений, дополнеъше базы значений, исключеъше значений из базы и коррекция значений в базе, а также запросы будут излагаться в следующей главе. Настоящая глава посвящена преобразованиям информационных объектов. Полнота этих действий в каком-либо смысле здесь не гарантируется. Материал данной главы нашел отражение в публикашш [70].  § 1. Преобразования информационных зависимостей  Функциональная зависимость выражается формулой функциональной зависимости, общий вид которой дан в табл. 6.1 гл. 1. Преобразования од- ной отдельно взятой зависимости mm гругшы зависимостей в конечном счете имеют целью облегчить прохождеъше одних запросов в ущерб другим. Некоторые из предлагаемых ъшже преобразоваъшй ведут свое, происхожде- ние от операций ЭВМ, другие известны как операшш математического ана- лиза, а третьи присущи только информационным функциям, отличающимся дискретным характером их множеств определения.  120 
1.1 . Искшочение и добавление зависимостей. Исключение зависимости из гшформационного объекта задается следующей формулой:  б CONST ARRAY F (ax, ...) DEL ч= G(£,x, ...) - (1-1) Кг, х, ...) Ь- ‘,(£9x9 '°') —  Сначала пишется слово DEL (от deletion — Bbmeprcnnanne) и за mm через пробел — формула исключаемой фуъжциональной зависимости в том виде, в каком она фигурирует в отшсаъши информационного объекта. Предписание (1.1) вызывает такие последствия: во-первых, из описа- ния исключается заданная формула функтшональной зависимости и, во-вто- рых, из базы значений стираются относящиеся к исключаемой зависимости значения зависимои переменнои и тех аргументов, которые участвуют только в исключаемой зависимости. Устранение из информационного  объекта переменных может лишить смысла ряд формул описания, в кото-  рых фигурируют исключенные переменные; скажем, формула свойств зна- ченшй переменной, значения которой стерты из базы значеъшй, не нужна в описанша. ' Добавлеъше новой зависимости в состав информационного объекта проводится в два этапа. Сначала в описание информационного объекта вносится формула добавляемой зависимости и еще сопутствующие фор- мулы, например формулы свойств значеъшй добавляемых переменных. Внесение сопутствующих формул будет обсуждаться в следующем парагра- фе, а для ввода в описание новой функциональной зависимости следует записать такое выражение:  " CONST т ARRAY = F(£,- ‚...) ADD n (Катит) . (1.2) 1(€,x,...) L X , _  Формула добавления открывается словом ADD (от addition - добавлетше) и за‘ ним через пробел — формула добавляемой зависимости. Второй этап в добавленша функциональных зависимостей здесь также не обсуждается; он касается затшси значеъшй новых переменных в базу значеъшй. 1.2. Изменение типа функциональной зависимости достигается следую- Щим указанием:  mm и Рант F“”"°°°’ ПЕ х ...) SUB n= IG(5’X»---) —> §= G(£:x:...) ’ (т) (Е: Х з °°°) х ‚ п.) “д X’---) L «ax , ...) .4  121 
Первое слово — „ЗОВ (от substitution — подстановка), за ним через пробел — изменяемая зависимость, записанная в том виде, как она фигурирует в опи- сании информационного объекта, затем — сдвоенный символ: -—> и новая зависимость, которая от старой отличается типом и, может быть, наимено- ванием зависимой переменной. В табл. 1.1 приведены допустимые изменеъшя типов зависимостей: одинарным знаком ”+” отмечены изменеъшя типов, не сопровождающиеся изменениями в базе значений; знак ”+ +” относится к одновременным изменениям типов и базы значеъшй; пустые клетки соответствуют недопустимым изменениям типов; первоначальные ‘mum показаны в крайнем левом столбце, конечные — в верхней строке. Необходимые подготовительные сведения о переводах одних типов зави- симостей в другие бьши изложены в п. 3.6 гл. 1. 1.2.1. CONST —— самый простой в классификации типов и какие-либо его изменения невозможны. 1.2.2. Тип ARRAY может быть заменен только на тип CONST, и такая замена приведет к следующему. Значеъше переменной типа ARRAY есть со- вокупность элементов, к каждому из которых открыт свой доступ. После замены ARRAY на CONST значение становится неразложимым и выглядит как один элемент.  Таблица 1.1  допустимые изменения типов зависимостей  ////  ARRAY + +  ARRAY F I G J  /  C,ONST  - "д Ё‘ ;- ‘.4..r а "~"“f"°7'-"’-‘-’.'>~«I“'—'7“'-"¥’.‘=?hl"‘ -‘~‘<-5.? . .. .  122 
1.2;3. Замены функциональных типов F, I, G, J Ha CONST или ARRAY вообще допустимы, но рассматриваются не в рамках преобразования (1.4) ‚ а в рамках преобразования, называемого проектированием. Замену!’ на 1 или G, или J следует понимать так. В момент описания ин- формационного объекта относительно какой-то функциональной зависи- мости бьшо принято, что все знчачетшя ее зависимои переменнои неразло- жимы, а все сочетания значеъши аргументов унужальны, т.е. зависимость была отнесена к типу F. Первая часть графика этой функциональной зави- симости бьша заведена в базу значеъшй, и она не противоречила сделанному назначению. Однако в какой-то момент работы выяснилось, что оставшаяся часть графика не прушадлежит к типу F : либо значения зависимой перемен- ной оказались разложимыми на элементы (туш G), либо нацшись повторяю- щиеся сочетания значений аргументов (туш 1) , либо и то и другое вместе (туш J). B таком случае надлежит произвести замену туша F Ha нужный тип посредством указания (1.3). Оно не изменит уже накопленную в базе часть графика (ибо класс фушсций типа F уже, чем класс G или класс 1, или класс J), HO откроет возможность для ввода оставшейся части графика. Замена типа 1 на тип J и замена G Ha J должны пониматься так же, как в огшсанном выше случае. 1.2.4. Указание (1.3) с заменой туша G Ha более простой тип F приводит к изменениям в базе значений: множествеъшые значетшя зависимой пере- меъшой становятся элементарными и. «доступ к бывцшм элементам мно- жественных значений закрывается. Разумеется, такое преобразовауше функ- циональной зависимости, подобно переводу ARRAY B CONST, связано с ин- формационными потерями, ест: только среди значений зависимой перемен- ной имеются множественные. Замена туша G Ha туш F может прушести поль- зу B случае, который противоположен описанному в разделе 1.2.3. Если фуъпсция объявлена типом G, a B ходе работы выяснилось, что множествен- ных значений зависимой переменной нет и они не ожидаются, то_ целесооб- разно тип G заменить на F. Отметим, что замена G Ha F должна сопровож- даться дополнительным действием — исключением формулы множествен- ности относительно прежней множественной зависимой переменной; при желануш можно также поменять наименование зависимой переменной. Изменение 1 на F также может быть полезно, если оказалось, против ра- нее предполагаемого, что все введенные и все ожидаемые сочетаъшя значе- ний аргументов уникальны. Если же по своей природе исходная функция принадлежит к типу 1, то замена его на туш F приведет к следующей пере- стройке базы значеъшй: все значения зависимой переменной, относящиеся к какому-то повторяющемуся сочетанию значений аргументов, собираются в одно значение, которое делается неразложимым; доступ к бывшим от- дельным значениям становится невозможным, что, естественно, сопряжено с информационными потерями. 1.2.5. Замена типа 1 на тип G переводит неуникальность в многознач- ность: все значения зависимой переменной, относящиеся к какому-то пов- торяющемуся сочетанию значений аргументов, собираются в одно множест- венное значение; доступ к элементам каждого такого множественного зна- чения (элементы — это элементарные значения бывшей неуникальной функ- mm) сохраняется. Замена G Ha I имеет обратные последствия: каждое соче- тание значеъшй аргументов, порождающее множественное значение зависи-  123 
мой переменной, повторяется столько раз, сколько элементов в его мно- жественном значенуш; против каждого повторяемого сочетания записыва- ется ровно один соответствующий элемент. Замены 1 на G и G Ha I информа- ционно эквивалентны, ибо они допускают возвращение к исходным тушам. Отметим, что переход из G B I должен сопровождаться исключением фор- мулы множественности относительно прежде множественной зависимой переменной и, может быть, изменеъшем наименования зависимой пе- ременной; переход из 1 в G требует дополнения описания новой формулой множественности, введения новой переменной, присоединен- ной к теперь множествеъшой зависимой переменной, и, может быть, изме- нетшя наименования зависимой перемеъшой. Примеры переходов из 1 в G И из G B I дает табл. 3.4 гл. 1. 1.2.6. Замена типа J Ha туш G или туш 1 или тип F не приводит к пере- стройке базы значеьшй, если первоначальное назначение туша зависимос- ти бьшо сделано c перестраховкой и по своей природе зависимость при- надлежит либо к тушу G, либо к типу 1, либо, наконец, к тушу F. Если же зависимость действительно многозначная неуникальная, то подобные за- мены вызывают перестроуп<у базы значеъшй. При замене J Ha G значения зависимой переменной, соответствующие какому-то повторяющемуся сочетанию значений аргументов, собираются в одно множественное значение. Первоначальные значеъшя зависимой пе- ременной могли быть сами множественными; внутри нового множест- венного значения их граъшцы стираются. Доступ к каждому элементу но- вых множественных значенупй (они же одновременно являются элемента- ми прежних множественных значений) сохраняется, но переход от J к G несет ушформациоъшые потери, ибо пропадает возможность восстановить старые множественные значения. Пример обсуждаемой замены дает пере- ход от зависимости ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ = J (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) к зависимости ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ = = G (ФАМИЛИЯ ИМЯ ОТЧЕСТВО), отображенньй в табл. 3.4. гл. 1. Замена J на F связана c еще больцшми информациоъшьхми потерями, чем J на G. При переходе от J к G образуются множествеъшые значения, как это бьшо только что описано; при переходе от J к F эти множествен- ные значения приушмаются за неразложимые и доступ к бывцшм элементам закрывается. Переход от туша J к типу 1 во всем повторяет переход от типа G к типу 1; новьпй переход отличается от старого лишь тем, что его исходная зависи- мость сама имеет повторяюпшеся сочетания значеъшй аргументов. Отметим, что замена J Ha F И J Ha I должна сопровождаться вычеркива- нием формулы множественности старой зависимой переменной и, возмож- но, изменением наименования зависимой переменной. 1.3_. Проектирование функциональной зависимости и введение грушш- рующего аргумента. Понятие проектирования информационной фушсцуш бьшо определено в п. 3.4 гл. 1, а грушшрующие аргументы бьши введены в рассмотрение в п. 2.2 гл. 2. 1.3.1. Пусть исходная зависимость имеет в качестве зависимой пере- менной п, а в качестве аргументов — Е, ..., х, фЁСпроектировать зависи- мость на совокуштость аргументов Е, ..., Ф или, другими словами, исклю- тшть из зависимости аргумент х — это значит построить новую зависимость  124 
м““"“—` Ч‘  по следующему правилу. Надо взять первое сочетание значений оставцшхся аргументов 2(1), ..., М!) и найти значения зависимой переменной п при всех значениях исключаемого аргумента х (из множества его определения при  этом сочетантш £(l), ..., :1/(1)); значениязависимой переменной следует 005 ть в одно множественное значение; оно соответствует сочетаъшю 5(1), ..., фа). Затем следует взять второе сочетание значений аргументов  и таким же образом получить второе множественное значение, составлеъшое из значений зависимой переменной п, и т.д. Только в одном случае множест- венные значеъшя будут содержать по одному значению зависимой перемен- ной: когда исходная зависимость - однозначная и исключаемый аргумент — группирующий. Описанная операция равно применима ко всем типам фушашональньтх зависимостей — F,. G, I, J. Указание о проектировании записывается так:  гсоызт ' f ARRAY EXARG п= G (2,...,x,...,w) -> §= & §=w(n). (1.4) J асами . ‚_1(Е‚..-‚Ф) _  Сначала пишется слово EXARG (от exclusion of argument —- исключеъше аргумента); после пробела — преобразуемая зависимость в том виде, как она фигурирует в описании; сдвоенный символ —>; за ним — новая зави- симость, в правой части которой отсутствует исключаемый аргумент; новая зависимость может иметь новый туш зависимости и новое наимено- вание зависимой переменной; в этом случае после символа & записывается формула множественности, связывающая новую — § и старую — п зависи- мые переменные. По поводу формулы множественности и изменеъшя наименования зави- симой переменной надо сказать слеятующее. Если исключаемый аргумент — группирующий, то новая зависимость остается c тем же типом зависимос- ти, что и исходная; в этом случае нет необходимости менять наименование зависимой переменной, а также нет необходимости во введении формулы множественности. Если исходная зависимость штожественная: G или J, то исключение группирующего или негруппирующего аргумента также не меняет ее типа, и опять не нужно менять наименование зависимой перемен- ной и вводить формулу множественности. И только естш исходная зависи- мость однозначная: F или 1, а исключаемьпй аргумент — негрутширующий, то преобразование (1.4) меняет тип зависимости (F Ha G, I на J) и возни- кает необходимость в измененша наименования зависимой переменной и введешти формулы множественности, в которой новая зависимая пе- ременная выступает в роли множественной, а старая — в роли присоеди- ненной к ней переменной. Впрочем, и в последнем случае можно оставить исходньпй туш зависимости (F шт 1) ‚ но этим закрывается доступ к эле- ментам множественных значенийновой зависимой переменной. Отметим, что когда исключаются вое аргументы зависимости, то полу- чается совокупность значештй зависимой переменной, которая может быть отнесена либо к тигту ARRAY c необходимым добавлеъшем формулы множественности, либо к типу CONST.  125 
Примеры из ”анкеть1” и ”валовых вьщусков”:  EXARG НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ . = 1 (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ГОД ПОСТУПЛЕНИЯ) — > НАИМЕНОВАНИЯ ПРЕДПРИЯТИЙ =J (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) & НАИМЕ- НОВАНИЯ ПРЕДПРИЯТИЙ = W (НАИМЕНОВАНИЕ ПРЕД. ПРИЯТИЯ); EXARG ВАЛОВЫЙ ВЫПУСК = F (МИНИСТЕРСТВО, РЕСПУБЛИКА, ОБЛАСТЬ, пгвдпгиятив, мвсяц, вид ВЫПУСКА) - > — > ВАЛОВЫЙ ВЫПУСК = F (ОБЛАСТЬ, ПРЕШТРИЯТИЕ, МЕСЯЦ, ВИД ВЬШУСКА). (1 .5)fi  1.3.2. B имеющуюся зависимость можно ввести только группирУЮЦшй аргумент. Введение негрушшрующего аргумента в многозначную зависи- мость, имеющее целью сделать ее однозначной, сопряжено с необходи- мостью установления соответствий между элементами множественных значений и значениями нового аргумента. Но такие соответствия задаются функцией, имеющей в своем составе и старые аргументы и новьй аргумент, так что вспомогательное средство для введения негрушшрующего аргу- мента есть сама искомая зависимость. Введение грушшрующего аргумента в зависимость достигается следую- щим указанием:  F я F ‘п: [G (£sx9°") & Ё=Р(Ё‚ к‘) —> п = [G (Ё, £9 Х: °")’ J J ‘  Первое слово — INARG (от input of argument — введение аргумента); после пробела записывается имеющаяся в базе зависимость, в которую вводится группирующий аргумент; затем после объедштительного символа & должна быть также имеющаяся в базе зависимость будущего группирующего аргу- мента от всех аргументов первой зависимости или от их части; следующую позицию занимает сдвоенный символ — > и за ним - новая зависимость, в которой фигурируют все старые аргументы и еще новый гругшируютций аргумент. Преобразование (1.6) в качестве преобразуемой допускает зависимость любого тшта — F, G, I, J; зависимость же группирующего аргумента от сво- их аргументов должна быть уникальной однозначной. Что касается неод- нозначности, то она невозможна, потому что невозможны множественные значения как значеъшя аргумента, а неуншсальность невозможна из-за того, что исключает однозначную привязку значения группирующего аргумента к значениям аргументов преобразуемой зависимости. Результирующая за- висимость имеет тип исходной зависимости. Рассмотрим примеры из ”анкеты”. Пусть зависимость ОБРАЗОВАНИЯ от ФАМИЛИИ ИМЕНИ ОТЧЕСТВА - уникальная однозначная, зависи- мость ПРАВИТЕЛЬСТВЕННЫХ НАГРАД от того же аргумента - утшкаль- ная неоднозначная, а зависимость НАИМЕНОВАНИЯ ПРЕДПРИЯТИЯ от ФАМИЛИИ ИМЕНИ ОТЧЕСТВА и ГОДА ПОСТУПЛЕНИЯ — неуникаль- ная однозначная, причем неунш<альность последней обязана повторам значе- ний ГОДА ПОСТУПЛЕНИЯ при ошшх и тех же значениях ФАМИЛИИ ИМЕНИ ОТЧЕСТВА (сотрудники имеют разные ФАМИЛИИ ИМЕНА  126  ‚ь з. ‚в, L4<.>«s¢Rnge<}-y 
ОТЧЕСТВА, но один и тот же сотрудник может менять неоднократно место  работы в течение одного года). Примем ОБРАЗОВАНИЕ в качестве груп- пирующего аргумента и введем его в две другие зависимости: . INARG ПРАВИТЕПЬСТВЕННЫЕ НАГРАДЫ =. G (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) & ОБРАЗОВАНИЕ = F (ФАМИЛИЯ ИМЯ ОТ- ЧЕСТВО) — > ПРАВИТЕПЬСТВЕННЫЕ НАГРАДЫ = G (ОБ- PABOBAHI/IE, ФАМИЛИЯ ИМЯ ОТЧЕСТВО); INARG НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = 1 (ФАМИЛИЯ ИМЯ ОТ- ЧЕСТВО, ГОД ПОСТУПЛЕЪШЯ) & ОБРАЗОВАНИЕ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) — > НАИМЕНОВАНИЕ ПРЕД- ПРИЯТИЯ = 1 (ОБРАЗОВАНИЕ, ФАМИЛИЯ ИМЯ ОТЧЕСТ- ВО, ГОД ПОСТУПЛЕНИЯ). Оба преобразования были бы невозможны, ест: бы аргумент ФАМИЛИЯ ИМЯ ОТЧЕСТВО имел повторяющиеся значения и, следовательно, ОБРА- ЗОВАНИЕ неунтжальньтм образом зависело бы от ФАМИЛИИ ИМЕНИ ОТЧЕСТВА. Проиллюстрируем это на примере ПРАВИТЕЛЬСТВЕННЫХ НАГРАД. В табл. 1.2 и 1.3 фигурируют два иванова ивана ивановича с разными ОБРАЗОВАНИЯМИ и разными ПРАВИТЕЛЬСТВЕННЫМИ НАГРАДАМИ. Попытка ввести грушшрующшй аргумент ОБРАЗОВАНИЕ в зависимость ПРАВИТЕЛЬСТВЕННЫХ НАГРАД, от ФАМИЛИИ ‘ИМЕНИ ОТЧЕСТВА наталкивается на .акую неопределенность: какому иванову ивану иванови- чу пригшсать высшее ОБРАЗОВАНИЕ — тому, кто награжден одной награ- дой, или тому, кто имеет две награды. Заметим, что табл. 3.4, а из гл. Imo- держащая обе зависимости в одной табшще, неадекватно отражает cm-y‘;.  T46/mud 1.2  Вертикальная зависимость ОБРА- ЗОВАНИЯ от ФАМИЛИИ ИМЕНИ  Таблица 1.'3  Неуникальная зависимость [ПРАВИТЕЛЬ- СГВЕННЬШ НАГРАД от ФАМИЛИИ ИМЕ-  звезды, орден красного знамени  ОТчЕСТВА НИ ОТЧЕСГВА ФАМИЛИЯ ФАМИЛИЯ ПРАВИТЕЛЬСТ- ИМЯ ОБРАЗОВАНИЕ ИМЯ ВЕННЬЕЕ ОТЧЕСТВО ОТЧЕСТВО НАГРАДЫ пенное среднее иванов иван медаль ”за тру- иван иванович иванович довое отличие” иванов иван высшее иванов иван медаль ”за трудо- иванович иванович вое отличие”, ор- ден ”знак почета" пантелеев невском) пантелеев нет дмшрий mauve высшее дмитрий ильич петрова надежда высшее петро ва надежда нет mpoeua петровна семенова анна высшее семенова анна нет дмитриевна дмитриевна Сидоров высшее сидоров петр медаль "за отвагу”, петр иванович иванович орден красной  127 
цию. Обсуждаемьпй случай — две раздельные зависимости и, чтобы пока- зать отмеченную вьпце неопределенность, нужно две зависимости предста- вить двумя раздельными таблтщами, как и сделано в настоящем пункте. 1.4. Исключение параметра из пары зависимостей и введение параметров в зависимость. - ' 1.4.1. Функциональная зависимость между аргументом г и зависимой переменной п может задаваться в параметрическом виде: £= F(1'), п = F (т) , И тогда соответствующие одно другому значетшя Е и п выражаются через значеъшя третьей переменной т, называемой параметром. Приведение пара- метрической зависимости к явной форме, п = F(£) , будем называть опера- цией исключеъшя параметра. Настоящий раздел посвящен содержательному описанию этой операщш. Две-зависимости из ”атткеты”:  НАИМЕНОВАНИЕ ВУЗА =1= (ФАМИЛИЯ имя отчвство);  АДРЕС ВУЗА= F (ФАМИЛИЯ I/IMiI. ОТЧЕСТВО) (1.7).  могут рассматриваться как параметрическое выражетше зависимости АДРЕС ВУЗА =1 (НАИМЕНОВАНИЕ ВУЗА) (1.8) через параметр ФАМИЛИЯ ИМЯ ОТЧЕСТВО. В табл. 1.4 даны две исход- ные зависимости (1.7)‚ а также явная зависимость (1.8) ‚ получающаяся исключением параметра `из исходных. Операция исключения параметра в рассматриваемом случае выглядит  › следующим образом: берется какое-то значетше параметра-аргумента  ФАМИЛИЯ ИМЯ ОТЧЕСТВО, для него находится соответствующее значе- ние НАИМЕНОВАНИЯ ВУЗА и соответствующее значение АДРЕСА ВУ- ЗА; они вносятся в третью таблицу, где первому отводится роль значения аргумента, а второму -- значения зависимой переменной. Среди сотруднтщов ЗТМ есть такие, которые окончили одни и те же ву- зы. Это знатшт, что ФАМИЛИЯ ИМЯ ОТЧЕСТВО неуъшкальным образом зависит от НАИМЕНОВАНИЯ ВУЗА, а тогда результирующая явная зави-  симость получается также неуъшкальной, что наблюдается в третьей  табл. 1.4 и отмечено в выражении (1.8). Вообще, АДРЕС ВУЗА зависит от НАИМЕНОВАНИЯ ВУЗА утшкальным образом, а неутшкальность в третьей табл. 1.4 есть следствие прштятой процедуры получения этой зави- симости. Неуншсальность здесь особенная — охшнаковьтм значеъшям аргу- мента НАИМЕНОВАНИЕ ВУЗА соответствуют одинаковые же значетшя зависимой переменной АДРЕС ВУЗА. Лишние пары значений могут быть исключены следующим приемом: получившуюся неуникальную зависи- мость следует перевести в утшкальную неоднозначную; множественные значения зависимой перемеъшой этой новой зависимости будут состоять из одинаковых элементов; на все значения новой зависимости следует подействовать операцией редуцирования, которая исключает повторы элементов и о которой будет идти речь в следующей главе. . Если бы исходные параметрические зависимости были неуникальными, то получение явной зависимости натолкнулось бы на неопределенность такого рода: когда одинаковым ФАМИЛИЯМ ИМЕНАМ ОТЧЕСТВАМ соответствуют разные НАИМЕНОВАНИЯ ВУЗОВ по одной зависимости и одинаковым ФАМИЛИЯМ ИМЕНАМ ОТЧЕСТВАМ соответствуют разные АДРЕСА ВУЗОВ по второй зависимости, то неясно, к какому  128 
ы нажатом 65.: г ь ~v.~ umzuoxa ьёаг an §.x.u2.=.58.~ .53: щитах счцмазаюч „Ее. am wuxumaaaxms .53: чище. свцыазёч „Ее. <юйщ m§..<mom <93 отцы? .m2s<m an „В: .8..==xm.§ „В: эзюоавю: 38028: ~wN-.x ©um~===me. чью: women...» ЕЁ Е»: шоцоезю am ёж ‚ .u..:.==xm.§.8= §....2a§§ §8=m.=§€ щите. счцмазхюч ‚ чаач umoamzuo „Ее. 3:8 umormxau ы Ёхошомоцз: затакт: §...5&§ 2 и Эчм umxuoz. задета: степью: «Razz. ucsamcua „вода: ОФНОЩЫНО <93 щёЁщ . ОФНОЩЫЬО <ю›щ еще? NSfl.S2<0 .omm2x<m „за: 553249  96.3 m=m<moflm2=<E _u<m>m мышиные. =._.oo2=o=na... o=:9.89..m ooznw = oov.oo_.=E.o22_a=  3 ёёвд  129  9. Иванов 
значех-шю АДРЕСА ВУЗА привязать такое-то значеъше НАИМЕНОВАНИЯ ВУЗА. К этому ограъшчению на типы функцшй, участвующих в операшш исключения параметра, следует добавить, что зависимость будущего аргу- мента результирующей явной функции от своих аргументов должна быть однозначной, ибо множественные значения аргументов недопустимы. Что касается зависимости будущей зависимой перемеъшой явной функции от своих аргументов, то она может быть однозначной mm многозначной. и соответственно этому явная функция получится однозначной шш много- значной. При соблюдении указанных ограъшчеъшй результирующая функ- гшя может получаться как уникальной, так и неушшальной. Примером последнего может служить переход от (1.7) к (1.8). В общем случае операция исключения параметра из пары зависимостей выглядит так. Исходными являются две зависимости: F п = [О] (х, ...‚ т, ...‚ и); $= F(x, ..., т, ...‚ Ф); (1.9) они имеют одинаковые аргументы: х, ...‚ т и расходящиеся аргументы: и и Ф; первая зависимость может принадлежать либо к типу F, либо к пишу G; вторая зависимость должна быть только типа F. Явная зависимость по- лучается в результате исключения из (1.9) параметра т:  F  =0 "1  J  (х , ...‚ Е, и, ...‚ Ф); (1.1О)  она зависит от объединения аргументов первой и второй зависимостей (1.9) плюс переменная Е минус параметр т; результирующая зависимость может принадлежать ко всем четырем тгшам зависимостей. 1.4.2. Формат указания об исключении параметра из пары зависимостей таков: '  EXPAR n=[ (x,...,7,...,v)& Е = Р'(х,...,т,... Ф)—> п = Ё (x,...,E,v,...,¢/). J (1.11)  Первым записывается управляющее слово EXPAR (от exclusion of parame- ter — исключение параметра); затем пробел и зависимость будущей зави- симой переменной явной функции от своих аргументов, в том числе от исключаемого параметра; после объединительного символа &_ — зависи- мость будущего аргумента явной функшш от своих аргументов, включая параметр; после сдвоенного символа —> записывается результирующая явная зависимость. Пример: EXPAR АДРЕС ВУЗА =F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) & НАИМЕ- HOBAI-H/IE ВУЗА = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) —> АДРЕС ВУЗА =1 (НАИМЕНОВАНИЕ ВУЗА). Исходные зависимости для преобразования EXPAR должны быть представ- пены в описашш информационного объекта и в базе его значений, и фор- 130 ' 
мулы зависимостей в указаъши на преобразование должны в точности повторять такие же формулы в описании.  1.4.3. Второе исследуемое в настоящем пункте преобразоваъше имеет наименоваъше ”введеъше параметра”. Сначала приведем содержательное описание этой операцгш. ' Рассмотрим следующие две зависимости:  НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = F (ФАМИЛИЯ имя отчвст- во, год поступлвния); год поступлвния = F (ФАМИЛИЯ имя отчество, НОМЕР РАБОТЫ). (1.12)  Первая взята из ”анкеты”, вторая введена специально для данного слу- чая; обе показаны B первой и второй табл. 1.5. НОМЕР РАБОТЫ — новая переменная, выступающая в роли аргумента во второй зависимости; она принимает значения: 1‚2‚3, ФАМИЛИЯ ИМЯ ОТЧЕСТВО и НОМЕР РАБОТЫ однозначно определяют ГОД ПОСТУПЛЕНИЯ на работу; если среди участников ”анкеты” нет имеющих одинаковые ФАМИЛИИ ИМЕНА ОТЧЕСТВА, то зависимость ГОДА ПОСТУПЛЕНИЯ от своих аргументов уникальная, что и принято в (1.12). Отметим также, что первая зависи- мость (1.12) здесь также считается унш<ал ьной однозначной. Две зависимости (1.12) порождают третью зависимость:  НАИМЕНОВАНИЕ пгвдгтгиятия = F (ФАМИЛИЯ имя отчвст- во, HOMEP РАБОТЫ) (1.13)  B результате операции введения параметра НОМЕР РАБОТЫ. Новая зави- симость представлена в третьей табл. 1.5. и получается из первых двух следующим образом: берется какое-то значеъше ФАМИЛИИ ИМЕНИ ОТ- ЧЕСТВА и какое-то значение НОМЕРА РАБОТЫ из числа возможных при данном значении ФАМИЛИИ ИМЕНИ ОТЧЕСТВА; по второй зави- симости из (1.12) находится соответствующее им значение ГОДА ПОСТУП- ЛЕНИЯ; взятое значение ФАМИЛИИ ИМЕНИ ОТЧЕСТВА и полученное значеъше ГОДА ПОСТУПЛЕНИЯ определяют по первой зависимости (1.12) значеъше НАИМЕНОВАНИЯ ПРЕДПРИЯТИЯ; оно принимается соответст- вующим отправным значениям ФАМИЛИИ ИМЕНИ ОТЧЕСТВА и НОМЕРА РАБОТЫ. _ Итак, исходной была зависимость НАИМЕНОВАНИЯ ПРЕДПРИЯТИЯ от ФАМИЛИИ ИМЕНИ ОТЧЕСТВА и ГОДА ПОСТУПЛЕНИЯ; ее будем называть еще явной зависимостью. К ней бьша добавлена зависимость, выражающая один из аргументов явной зависимости, ГОД ПОСТУПЛЕ- НИЯ, через новую переменную — параметр НОМЕР РАБОТЫ и другой аргумент явной зависимости — ФАМИЛИЯ ИМЯ ОТЧЕСТВО. В результате операции введения параметра зависимая переменная явной функшш — НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ —,- оказалась выраженной через старый свой аргумент — ФАМИЛИЯ ИМЯ ОТЧЕСТВО и новую ‘переменную — параметр НОМЕР РАБОТЫ. Если теперь из зависимости (1.13) и второй зависимости (1.12) исклютшть параметр НОМЕР РАБОТЫ, то вновь полу- ‘штся исходная явная зависимость (1.12). В этом смысле операция исклю- чения параметра и операция введения параметра взаимно обратные. Операция введения параметра возможна лишь тогда, когда явная функ-  ЦИЯ, В КОТОРУЮ ВВОДИТСЯ napaMe'rp, УНИКЗЛЬНО зависит ОТ СВОИХ аргументов. 9* 131 
Явное и параметрическое переменными: ФАМИЛИЯ ИМЯ ОТЧЕСТВО,  ВАНИЕ ПРЕДПРИЯТИЯ  выражение функциональной  Таблица 1.5  зависимости между ГОД ПОСТУПЛЕНИЯ, НАИМЕНО-  ФАМИЛИЯ  ФАМИЛИЯ ГОД ПО- НАИМЕНОВА- НОМЕР ГОД ПО- ИМЯ СТУПЛЕ- НИЕ ПРЕД- ИМЯ ‘РАБО- СТУППЕ- ОТЧЕСТВО НИЯ ПРИЯТИЯ ОТЧЕСТВО ТЫ НИЯ иванов 1 941 мвз иваиов 1 1 941 иван 1 949 згм иван 2 1 949 иванович иванович пангелеев 1976 згм пантелеев 1 1976 дми трий дмитрий ильич ильич nerpoea 1 958 згм пегрова 1 1 958 надежда надежда пегровна пегровна семенова 1 9 76 згм саменова 1 1 9 76 вина вина дмигри евна дми триевна _ сидоров 1 935 лзмм сидоров 1 1 935 пегр 1 941 армия петр 2 1 941 иванович 1 949 Зтм иваиович 3 1 949 ФАМИЛИЯ номвг НАИМЕНО- ИМЯ РАБОТЫ ВАНИЕ отчвство пгвдшия- / ТИЯ иванов 1 мвз иван 2 згм иванович пантелеев 1 згм дмигрий ильич nezpoea 1 am надежда петровна семенова 1 згм вина дми триевна сидоров 1 лзмм Лет 2 армия иванович 3 згм 132 
Нив-впаян‘  Повтор любого набора значений аргументов сделал бы невозможной опре- деленную привязку значетшя зависимой переменной явной функции к зна- чениям ее новых аргументов, включающих" параметр. К тому же функция, задающая зависимость аргумента от параметра, должна быть однознатшой, так как множественные значеъшя в качестве значений аргумента неприем- лемы. Относительно ее уникальности или неуникальности и однозначности или многозначности явной функшш нет нш<аких ограничений — эти свой- ства допустимы в любых сочетаниях; результирующая фуъп<ция будет обладать теми же свойствами аргументов и зависимой переменной, какими обладают аргументы задающей зависимости и зависимая переменная явной зависимости. Операция введения параметра в общем виде представляется так. Исход- ная явная фушсция и исходная функция, задающая зависимость одного из аргументов явной функшш через ввоштмьпй параметр и протше пере- менные, записываются следующим образом:  п я г] я п- G (x, „Е, ...,v), 2- ‘I (x,...,'r,...,x1/),  B них есть совпадающие аргументы: х, ...; есть расходящиеся аргументы; в аргументы первой зависимой переменной обязательно входит вторая зависимая переменная Е; вторая зависимость включает один или несколько аргументов, выступающих как параметры: т, ..., Ф. Результирующая функция получается путем подстановки второй зависимости в первую:  _F  (1.14)  G - п = I (X, ..., т, и, Ф); (1.15)  J она зависит от объединения агрументов первой и второй зависимостей, исключая Е. Результирующая зависимость принадлежит к типу F, если обе исходные принадлежат также к типу F; она имеет тип G, если первая имеет тип G, а вторая- тип F; типы F и 1 y первой и второй зависимостей соответственно порождают тип 1 результиРУЮЩей зависимости, а G И 1 порождают тип J. 7 - 1.4.4. Задание на введение параметра в зависимости формально затшсы- вается следующим образом:  INPAR п = [Ё 1 (х, ..., Е, ..., и) & Е‘: (х, ..., т, ..., Ф) — > F G ' ‚‚ 17 = I (х,..., т, v,..., Ф). ‚ (1.16) J  Первым в записи идет управляющее слово INPAR (от input of parameter- введение параметра); за ъшм после пробела-исхоштая явная зависимость в том виде, как она представлена в описаъшиинформационного объекта; затем — объедиъштельный символ & и функция, задающая зависимость аргумента явной функции от параметра (параметров); она также должна иметь вид, не отличающийся от вида в отшсашш информационного объекта; указание заключает формула результирующей зависимости, которой пред- шествует сдвоенный символ — >. 133 
Примеры: INPAR НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = F (ФАМИЛИЯ ИМЯ ОТ- ЧЕСТВО, ГОД ПОСТУПЛЕНИЯ) & ГОД ПОСТУПЛЕНИЯ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, НОМЕР РАБОТЫ) — > НАИМЕ- НОВАНИЕ ПРЕДПРИЯТИЯ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, НОМЕР РАБОТЫ) ; АДРЕС ВУЗА = F (НАИМЕНОВАНИЕ ВУЗА) & НАИМЕНОВА- НИЕ ВУЗА = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) — > АДРЕС ВУЗА = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО). 1.5. Композиция и декомпозшшя зависимостей. Эти два преобразова- ния действительны только для информационных функций, каковым при- суща диск ретность множества определения. _ 1.5.1. Рассмотрим одну двухключевую функцию типа F:  n=F(£,x)- (1.17)  Как будет видно из последующего построения, тип функции может быть любым и тшсло аргументов также может быть любым. Любой аргумент информационной функшш принимает конечное тшсло значений. Выберем такой, который принимает к тому же малое гшсло значений. Пусть в функции (1.17) таким будет аргумент х: х ={ х“), x(2),... } . При фиксированных значениях х функция (1.17) порождает частные фушсции одного аргумента Е:  т =F(z, >6"), п: =F(2,x<”), (1.18)  Обозначения п, , п, , относятся уже к новым переменным, производным от 17. Они имеют отличные от 17 наименования; их значения совпадают со значениями п при соответствуюцшх значениях аргумента х. Отношения между 171 ‚ 172 , и 17 можно отразить такой формулой:  n=m/x=x‘”, n=n2/x”=x"’, (1-19)  Набор фушсций (1.18) эквивалентен одной функции (1.17). Действитель- но, фщссированные значения аргументов Е“), х порождают по (1.17) какое-то значение 17 ; его же можно полутшть, найдя сначала по соотно- шениям (1.19) нужную новую зависимую переменную 17,-, a затем выгшслив значение соответствующей частной функшш (1.18) . _ Переход от функции (1.17) к функциям (1.18) будем называть деком- позицией исходной функцгш (1.17); формулы, связывающие новые зави- симые переменные т, 17,, c исходной переменной 17, будем называть формулами декомпозиции, а аргумент х, значения которого фигурируют в формуле декомпозиции, — аргументом декомпозицгш. Впредь формула декомпозиции будет загшсьтваться в более компактном виде:  INPAR  n=D(m/x=x“’, 112/x=x"’,...). (1-20)  Эта формула внешне напоминает формулу составной зависимости и читает- ся следующим образом: переменная 17 совпадает с 171 , когда переменная х равняется х , совпадает с 172 когда х равняется х , Рассмотрим пример с функцией ГОД ПОСТУПЛЕНИЯ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, НОМЕР РАБОТЫ), которая бьша введена в предьщущем пункте. Декомпозируем эту функцию по аргументу НОМЕР РАБОТЫ;  134  ——. ."‘5——_ ......_:_..3_._._.....—_._ L .___:.-"fi________ 017  1.-"5, 
в ”анкете” он приъшмает не более трех значений, поэтому тшсло частных функций в формуле типа (1.18) будет равно трем. Зависимой переменной при НОМЕР РАБОТЫ = 1 присвоим наименование ГОД ПЕРВОГО ПОСТУП- лвния, при НОМЕР РАБОТЫ = 2 — ГОД ВТОРОГО ПОСТУПЛЕНИЯ, при НОМЕР РАБОТЫ = 3 — ГОД ТРЕТЬЕГО ПОСТУПЛЕНИЯ. Данные присвоения сводятся в следующую формулу декомпозишиш: ГОД ПОСТУПЛЕНИЯ = D (ГОД ПЕРВОГО ПОСТУПЛЕНИЯ / НОМЕР РАБОТЫ = 1, ГОД ВТОРОГО ПОСТУПЛЕНИЯ / НОМЕР РАБОТЫ =2‚ ГОД ТРЕТЬЕГО ПОСТУП- лвния/ НОМЕР РАБОТЫ = 3) . B табл. 1.6 приведены исходная зависимость и три частных производных от нее зависимости. Первая функция ГОД ПЕРВОГО ПОСТУПЛЕНИЯ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) получается так: фиксируется НОМЕР РАБОТЫ равным 1; берется первое значение ФАМИЛИИ ИМЕНИ ОТЧЕСТВА, по исходной зависимости нахо- дится ГОД ПОСТУПЛЕНИЯ; берется второе значение ФАМИЛИИ ИМЕНИ ОТЧЕСТВА, опять находится значение ГОДА ПОСТУПЛЕНИЯ и т.д.‚ полу- ченные значеъшя ГОДА ПОСТУПЛЕНИЯ и будут искомыми значениями ГОДА ПЕРВОГО ПОСТУПЛЕНИЯ. Другие две частные функции полу- чаются аналогичным путем. Отметим, что вторая и третья функции опреде- лены не при всех-значениях аргумента. Приведем соображеъшя о выгодности частных функций по сравнению с исходной и о целесообразности применения операции декомпозиции. Пусть запросы к исходной зависимости из табл. 1.6 относятся в основном к ГОДУ, ПОСТУПЛЕНИЯ на первую работу. Тогда держать такую зависи- мость менее экономно, чем зависимость от одного аргумента: ГОД ПЕРВО-  ГО ПОСТУПЛЕНИЯ =F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО), и, следовательно, _  исходную зависимость целесообразно декомпозировать, чтобы выделить ее наиболее часто употребляющуюся часть. Вообще, если в запросах, адресуемых к какой-то зависимости, один из ее аргументов, как правило, задается равным одному значеъшю, а всего значений этого аргумента немного, то имеет смысл декомпозировать зави- симость по этому аргументу. В результате полутштся набор частных зависимостей, которые в совокугптости эквивалентны исходной зависи- мости и одна из которых есть объект наиболее пристального интереса. С нужной частной зависимостью работать эффективнее, чем с исходной, так как она имеет на аргумент меньше, чем исходная зависимость. декомпозиции достугшы зависимости любых типов от произвольного шасла аргументов. Результат декомпозиции — частные зависимости-имеют тот же состав аргументов, что и исходная зависимость, за вычетом аргу- мента декомпозиции. 1.5.2. Указание о декомпозиции задается в таком виде:  F G 9 9 9 9 I (Е, х, ) —>n=D(m/x= Ход n2/x= х“) ‚ ). (1.21) J Указание открывает управляющее слово DEC (от decomposition — декомпо- ЗИЦия) , за которым следует пробел и затшсь декомпозируемой зависимости в том виде, в каком она фигурирует в охшсашш информационного объек- ’ 135  DEC п = 
panorama АЗ:  „Ё ы тягой  чгшюзць 3.6 3:8 umoauxau  заводь»: всыпьте: атомы»: 32.3. издаёт темень ха:  эзшоачшз 250: ФОЕЧФЗ  Sim: ‚ЁООЦ omeomweo ommaamma из: HOE E240  2.2  3.6 ы  эзшоачюз  A32.  momoozu  §m§n.§:.o 3:8 umoauxau  заводам: 32895 вводы»: .:3§ E333 «$5.28:  ‚адвокат: 259: ФОЕЧФЗ  KNEW? .H—>.~.OOfl OHOAOHQ ._HO.H  OQHONEBO та: . Ёдёддд  „Зшоацш: цв»: wmd ы monocau Brmmafiaxfi чага nu: 3o=»:.3 заводь»: Baaos. юты ы 33.8: 23.3 „Западе вы а ы m8§.=8.= aamozuma rum: ы З ы шагаю: «sum: .5300: omeomseo енотам: 52: под ЁЕЗЁО  «Va ы м эзшоачю: Ё: ы .5: из: „ „завез 3. m2§§:€ Зав wk: ы umozmuéo areas»: 88.88. „В: „ 82:3 £33. „Задаёт вы щ ы н юююёьгч: а accrue: „Ё ы ы rum: 3...“ ы ы шьёт: тзщщц ОЩНОЩЫНО -E£.uo= 3._.om<m ЖЕ: ЧОН мы ЗОЩ NSfl.S2<0  =a.=8=29.on 8 „гадаем = :.:.om<._ авизо: .om.8m...8 из: 55:24.9 ш „Ёщшцпъноо: 5: a82_§§m  ‚ю. ы „Звёзд 
та; после сдвоенного символа - > захшсывается формула декомпозиции, в левой части которой фигурирует наименование зависимой переменной, затем знак равенства, буква Вивкруглых скобках —бпоки условий, разде- ляемые запятыми; каждьпй блок условий устроен следующим образом: до косой черты пишется наименование зависимой переменной очередной частной зависимости, после косой черты —- наименование аргумента деком- позиции, знак равенства и взятое в апострофы соответствующее значеъше аргумента декомпозиции. 1.5.3. Преобразование,’ обратное декомпозиции, называется компози- цией фуъщциональных зависимостей. Начнем c примера. Возьмем за исходное три функциональные зависи- мости, представлеъшые во второй, третьей и четвертой табл. 1.6: ГОД ПЕРВОГО ПОСТУПЛЕНИЯ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) ; ГОД ВТОРОГО ПОСТУПЛЕНИЯ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО); ГОД ТРЕТЬЕГО ПОСТУПЛЕНИЯ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО).  Допустим, что тигшчшые запросы, адресуемые к этим трем зависимостям, выглядят так: кто поступал на работу в таком-то году? При этом неваж- но, бьшо пи это первое постуштение,’второе или третье. Требуемые данные получаются в результате трех запросов:  ФАМИЛИЯ ИМЯ ‘ОТЧЕСТВО/Г ОД ПЕРВОГО ПОСТУПЛЕНИЯ = ’ ’; ФАМИЛИЯ ИМЯ ОТЧЕСТВО/ГОД ВТОРОГО ПОСТУПЛЕНИЯ = ’ :.. ’ ; ФАМИЛИЯ ИМЯ ОТЧЕСТВО/Г ОД ТРЕТЬЕГО ПОСТУПЛЕНИЯ = ’ ’  и последующего объединения результатов этих трех запросов. В то же время, если исходить из зависимости  год поступления = F (ФАМИЛИЯ имя отчество, HOMEP PA- БОТЫ) , ` то список ФАМИЛИЙ ИМЕН ОТЧЕСТВ участников ”анкеты”, поступавпшх на новую работу в каком-то году, получается ценой одного запроса:  ФАМИЛИЯ ИМЯ ОТЧЕСТВО/ Г ОД ПОСТУПЛЕНИЯ =  Переход от трех зависимостей, когда они исходные, к одной зависимости достигается преобразованием, называемым композицией. Введем аргу- мент композицтш НОМЕР РАБОТЫ, который принимает значения: 1,2‚3; введем новую зависимую переменную — ГОД ПОСТУПЛЕНИЯ и запишем формулу композиции: ГОД ПОСТУПЛЕНИЯ = С (ГОД ПЕРВОГО ПОСТУПЛЕНИЯ/НОМЕР РАБОТЫ = 1, ГОД ВТОРОГО ПОСТУПЛЕНИЯ/НОМЕР РАБОТЫ = 2, ГОД ТРЕТЬЕГО ПОСТУПЛЕНИЯ/НОМЕР РАБОТЫ = З). Формула композиции порождает новую зависимость, в которой по срав- нению с исходной есть второй аргумент НОМЕР РАБОТЫ и зависимая переменная которой именуется ГОД ПОСТУПЛЕНИЯ . Формула компози- Ции читается так: новая зависимая переменная ГОД ПОСТУПЛЕНИЯ совпа- дает c ГОДОМ ПЕРВОГО ПОСТУПЛЕНИЯ, когда новый аргумент в новой зависимости принимает значение 1; она совпадает c ГОДОМ ВТОРОГО ПОСТУПЛЕНИЯ при НОМЕР РАБОТЫ =2 и совпадает c ГОДОМ ТРЕТЬЕГО ПОСТУПЛЕНИЯ при НОМЕР РАБОТЫ = 3. Отшсанный переход от трех зависимостей к одной зависимости иллю- стрирует все та же табл. 1.6, если ее тштать в таком порядке: сначала три  Hocnemme таблицы, а затем первая. 7 13 
Рассмотрим еще один, может быть, на первый взгляд, неохшданньтй пример применеъшя композиции. Сведем в одну зависимость следующие три: _ ДАТА РОЖДЕНИЯТОД =F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО); ДАТА РОЖДЕНИЯ .ЧИСЛО =F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО); ДАТА РОЖДЕНИЯ.МЕСЯЦ =F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО).  Здесь в качестве аргумента композишиш выберем переменную с наимено- ванием АРГУМЕНТ, принимающую три значения: год, число, месяц, а в качестве сводной зависимой переменной — переменную, именуемую СВОД- НАЯ ПЕРЕМЕННАЯ. Следующая формула композиции устанавливает связь между сводной зависимой переменной и исходными»: зависимыь/ш переменныь/ш: СВОДНАЯ ПЕРЕМЕННАЯ = С (ДАТА РОЖДЕНИЯ.ГОД/АРГУМЕНТ = = ’го ’‚ ДАТА РОЖДЕНИЯ .ЧИСЛО/АРГУМЕНТ = ‘число’, ДАТА РОЖДЕНИЯ. МЕСЯЩАРГУМЕНТ = ’месяц’) . В результате композиции трех исходных зависимостей получается такая новая зависимость:  СВОДНАЯ ПЕРЕМЕННАЯ = F (ФАМИЛИЯ имя отчество, АРГУ- мвнт).  Она выдает значения ДАТЫ РОЖДЕНИЯ .Г ОДА при АРГУМЕНТ = год, значения ДАТЫ РОЖДЕНИЯ.ЧИСЛА при АРГУМЕНТ = число и ДАТЫ РОЖДЕНИЯ .МЕСЯЦА при АРГУМЕНТ = месяц. Если задается значение ФАМИЛИИ ИМЕНИ ОТЧЕСТВА, а значеъше АРГУМЕНТА не задается, то результатом являются сразу три значения: значение ДАТЫ РОЖДЕ- НИЯ.ГОДА‚ значение ДАТЫ РОЖДЕНИЯ МЕСЯЦА, значение ДАТЫ РОЖ- ДЕНИЯ.ЧИСПА, как это и ‘должно быть, когда запрашиваются значения зависшиой переменной многокпючевой функшш и задаются не все значе- ния ее аргументов. Такой же результат получится, если ввести вектор ДАТА РОЖДЕНИЯ и записать его в объект запроса; в ответе на этот запрос будут представлены три упомянутых выше значения. Так что компози- шт зависимостей в одной из своих ролей выступает как средство, кон- курирующее с векторньпии переменными. Обратимся к формальному описанию композиции. Пусть в качестве исходных заданы функции от одного и того же состава аргументов:  F- m;n2;...= ‘,5 (€,tl/,-~)- (1-22) J  Они могут различаться одна от другой по типу зависимости (F, G, I, J), НО должны совпадать по составу аргументов. Введем две новые перемен- ные: сводную зависимую переменную и аргумент композиции. И та и дру- гая могут иметь произвольные наименования (например: СВОДНАЯ ПЕ- РЕМЕННАЯ и АРГУМЕНТ); к тому же произвольными-т могут быть зна- чения аргумента композиции. В последующих формулах сводная зависимая переменная обозначается через п, аргумент композиции — через х, а его  138 
I .-"V  значения — через х“), х“), Значения нового аргумента должны быть различными; их гшсло должно в точности совпадать с гшслом сводных зависимостей. Связь между исходными зависимыми»: переменными т , 112 , и сводной зависимой переменной описывается формулой композиции, напоьишнающей формулу декомпозицша и формулу составной зависимости:  п = С(т/х= ’х‘”’‚ П2/Х = ’x<’>’, т). (1.23)  Результат композиции -— новая зависимость, имеющая на один аргумент х больше, чем исходные зависимости: F - — G г (124) п" I (:X.Wa---)- ° J  Тип сводной зависимости повторяет типы исходных зависимостей, когда эти типы совпадают, или равняется самому сложному типу B-- противном  случае. 1.5.4 . Задание на композицию выдается в следующем виде: F F ” G G COM т= I (Е, Ф, ...); п: = I (т, ...);...—> J J  77 = C(7?1/X = ‚Хау,  772/X=,X(2),, °~¢ ) =S('°' ‘n19 n2 V77“), 17(2)! °°° ,) & х = " =S(...|n,,-n12 |’x(1),x(2), ’). (1-25)  Его открывает специальное слово СОМ (от composition —-. композиция); затем после пробела идут формулы исходных функциональных зависимо- стей; оъш должны выглядеть так же, как в описании информационного объекта; ес„и все эти формулы имеют одинаковые типы зависимостей и, следовательно, одинаковые правые части, то начало записи (1.25) может быть сокращено до вида (1.22); после сдвоенного символа - > тшшется формула композиции, подобная описанной в 1.5.2 формуле декомпози- ции; непосредственно после закрывающей скобки последней записывается знак равенства и правая часть формулы свойств значений новой зависимой переменной; задание на „композицию завершается формулой свойств значений аргумента композиции, которой‘ предшествует объедиъштельный символ & . 1.6. Сцепление аргументов. Это преобразование имеет результатом уменьшение тшсла аргументов зависимости. Преобразование приводит к информационным потерям; оно необратимо. ` 1.6.1. Пусть какие-то два аргумента зависимости во всех запросах либо задаются, либо запрацшваются и не ожидается таких запросов, в которых один из max задается, а другой запрацшвается. Тогда их целесообразно сцепить и тем уменьпшть на единицу число аргументов зависимости. Пусть два сцепляемых аргумента обозначаются буквами х и ф, новый аргумент —  139 
буквой ф, а операция сцепления -— тройным символом ж-ж. Тогда ‹р выража- ется через х и ф следующим образом:  ‹р=х =1:-ax: (1.26)  Значеъшя переменной ер получаются из значеншй исходныхпеременных х и Ф следующими: к первому значению )S через знак ”—” пригшсывается первое подходящее значение Ф: ф 1 = х“ -° Ф“), к первому значеъшю х опять через знак ”—” приписывается второе подходящее значеъше Ф: ф“) = x(1)=\[/(2)14 т.д.; совокупность значений новой переменной до — это всевозможные сочетаемые пары значеъшй х и Ф, в которых на первом месте стоит значение х, вторую позицию занимает символ ”-”‚ а за ним — значеъше Ф. ‘ В табл. 1.7 представлена зависимость ГОДА ПОСТУПЛЕНИЯ от одного аргумента ФИО-М, значения которого являются результатом сцепления  ‘ значений ФАМИЛИИ имвни ОТЧЕСТВА и НОМЕРА РАБОТЫ:  (DI/IO-N =ФАМИПИЯ ИМЯ ОТЧЕСТВО *'* HOMEP РАБОТЫ.  Функциональная зависимость, представленная в табл. 1.7, получается следующим образом из исходной функциональной зависимости, которая показана во второй табл. 1.5: берется первая пара значений аргументов: иванов иван иванович и 1, образуется сцепленное значение: иванов иван иванович-д ему ставится в соответствие то значение зависимой перемен- ной, которое бьшо порождено парой значений исходных аргументов — 1941; аналогичным образом получаются остальные точки графика новой зависимости ГОД ПОСТУПЛЕНИЯ =F (CD1/IO-N) .„  Новая зависимость сохраняет тип исходной зависимости. Новая зависимость не эквивалентна исходной зависимости. Например, по ней невозможно определить все ГОДЫ ПОСТУПЛЕНИЙ на первые ра- боты или невозможно, не зная значений второго аргумента, определить  Таблица 1 .7 Зависимость ГОДА ПОСТУПЛЕНИЯ от сцепленных аргументов ГОД ГОД °"°'N ПОСТУПЛЕНИЯ °"°'N ~ постУплвния иванов 1941 семенова 1 9 76 иван у дина д8дИ0вич-1 -~ — дмигриевна - 1 - иваиов 1949 сидоров 1 935 иван _ петр иванови ч-2 иванович-1 ` лантан еев 1 9 76 сидоров 1 941 дмигрий nezp .u./zbuu-1 ueauoeuu-2 nerpoea 1958 сидоров 1949 надежда пегр петровна-1 иванович-З  140 
I .31.  все значения зависимой переменной для какого-то значения первого аргу- мента. В общем случае преобразование сцепления аргументов выглядит так. Указывается исходная зависимость ° F n= г (£,x,:1«,..- ); ф (1.27) J . указываются два сцепляемых аргумента, скажем х и Ф; назначается наиме- нование нового аргумента ер, который является результатом сцепления х и ф; формула сцепления имеет вид (1.26); после преобразования сцепле- ния аргументов получается следующая зависимость:  F G n = I (Е, ер, ). (1 -28) ...._ J * - А 1.6.2. Формат указания о сцеплении аргументов таков: “ F CON п ‘ Ё (Е, х, Ф, ) —>c.p=xa=-axe ф =s(... I 711,712 I пр“), ф“), J (1.29)  Первым идет слово CON (от c0ncatenatz°on_ — cuennel-me); за ъшм после пробела — формула преобразуемой зависимости в том виде, в каком она дана в огшсании информационного объекта; сдвоенный символ - > отделяет объект преобразования от преобразующих указаний; первое преобразующее указаъше — формула сцепления, определяющая новый аргумент; сразу за формулой сцепления следует знак равенства и правая часть формулы свойств значеъшй новой переменной.  § 2. Преобразования отношений между переменными»:  Огшсания информационных объектов оперируют c <1)opMyJ1aM1»1 фушсцио- нальных зависимостей, с формулами: множественности, векторов, составов составных переменных, формулами свойств значений, а также c вспомога- дельными формуламш подобий и обозначеъшй. Все, что касалось действий Над формулами зависимостей, бьшо рассмотрено в предыдущем параграфе. Здесь сообщаются сведения°о преобразовагшях, которые работают со всеми другими формулами отношений из табл. 6.1. гл. 1. 2.1 . Исключение отношений задается следующим образом:  "п=И’(п' |n1.n2) oz=V(m,n2,n3,-.-)  DEL n=U(e/usz,’u<1>’, 7/um, ат’, ...) . (2.1) 7?=S(... I n1, п, V12“), п“), ...’) a=L(B)  — a =__ 99899, 141 
Сначала должно быть написано условное слово DEL И через пробел — фор- мула исключаемого отношения в том виде, в каком она фигурирует в oun- сании информационного объекта. 2.1.1. Формула множественности сопровождает формулу многозначной зависимости или встречается в сочетании с формулой вектора при отшса- нии множественной векторной переменной. Отсюда следует, что формула множественности исключается либо вместе с формулой многозначной зави- симости, когда уничтожается многозначная зависимость, либо вместе с формулой вектора, когда уъшчтожается множественная векторная пере- менная; формула множественности может исключаться также при измене- нии типа зависимости — многозначной на однозначную. 2.1.2. Формула вектора исключается в двух случаях: либо когда по какой-то притшне исключается компонента вектора и формула вектора тем самым становится недействительной, либо когда теряется необходи- мость в самом векторе. 2.1.3. Если уъшчтожается какая-то компонента составной переменной, то эта составная переменная теряет смысл и формула, отшсывается ее, подлежит исключению. Формула составной переменной исключается еще и в том случае, когда сама составная переменная по какой-либо притшне делается ненужной. Исключение составной переменной не затрагивает ее компонент — формулы компонент и графики их зависимостей остаются в составе объекта, но по отдельности, не объединяемые общей переменной. 2.1.4. Формулу свойств значений элементарной скалярной переменной следует исключать тогда, когда исключаются значения этой переменной из базы значений. А такое бывает при исключении из информационного объекта зависимости или зависимостей, включающих эту переменную. 2.1.5. В одном случае формула подобия исключается из описания инфор- мационного объекта - когда исключается подобная переменная (зани- мающая левую часть формулы подобия). В других случаях формула подо- бия требует замены. 2.1.6. Формула обозначения становится ненужной, когда обозначаемая переменная исключается из информационного объекта. 2.2. Добавление отношений задается формулой следующего вида:  _ I п- W(n |n1.n2) a= V(m,n2,ns, т) 9 п = (Де/ИХ, ’v(l)’, 'y/vi-R2 на)’, ) _ 1 2, n-S(...|n1.n2 |’n‘ Kn‘ ’,...’) a = L (В) L— a Z 73699 ‘J Управляющее слово здесь — ADD, за НИМ через пробел записывается до- бавляемая формула отношения. 2.2.1. Формула множественности добавляется к описанию информа- ционного объекта в трех случаях: 1) когда в объект вводится новая много- значная зависимость (в этом случае формула множественности сопровож-  дает формулу фуъпсциональной зависимости), 2) когда из переменных, уже пребывающих в составе объекта, форь/шруется множественная вектор-  "1  ADD (2 .2)  142  Зять  L3 _....._...:* ъ. 
\ \  \  ная переменная (тогда формула множественности сопровождает формулу. Вектора) и, наконец, 3) когда неуникальная зависимость преобразуется в многозначную (см. раздел 1.2.5) . . 2.2.2. Формула вектора добавляется при необходимости ввести новую векторную переменную в состав информационного объекта. 2.2.3. Добавление новой составной переменной должно происходить после или одновременно c добавлениями ее компонент-переменных и индикаторной переменной. 2.2.4. Введение новой зависимости, следовательно, добавление новых элементарных скалярных переменных требует определения свойств значе- ний этих переменных, 2.3. Изменения отношений. Вообще, этот класс преобразованшй излшцен. ибо. любое изменение отношения достшается двумя уже введенными пре- образованиями: сначала исключением отношения в старом виде и затем добавлением этого отношения в новом виде. Изменения отношеншй вводятся как класс. преобразованшй только для удобства и краткости за- писей. Задания на изменения отношений выглядят следующим образом:  77= W(n'ln1.—n2)->n= W(n |n'1.n2') Ос: V071. TI2. 773, т) ">°‘= V0.71. 132,774. п = U(e/v9t1’v(1)’, 7/12932’ 12(2)’, ...) —'-> n = U(e/v91," 11(1)", ‚‚‚‚ф/иэг‚‚’и(")’‚ ...)  SUB n = S (...In1. иди“), 17"’. ...’)—>n = S(--.|n'1.né I’ п"), (2.4) п“), ...’) a=’L (c)—>a= лаз‘) а = 9:8” ___> а = ив?” ` oc->oz'  j  Управляющим словом здесь является SUB; за ним через пробел следует формула отношения в том виде, какой она имеет в описанша штформа- ционного объекта. затем сдвоенный символ -> и формула отношения в новом виде. В первых шести строках (2.4) показаны форматы заданий на изменения формул описания из табл. 6.1 гл. 1; в последней строке дан формат указания на изменение наименования переменной. В формуле множественности измененшо могут подвергаться числа щ, п, (напомним, что число элементов любого множественного значения п не может быть меньше п1 и больше из). B формуле вектора может меняться порядок записи компонент и может меняться состав компонент: какие-то компоненты могут добавляться, какие-то - исключаться. Преобразование (2.4) по отношению к составным переменным дает возможность вводить следуюцше изменения: исключения компонент, добавления компонент, изменения значений индшсаторной переменной, изменения знаков отно- шений. В формуле свойств значений можно менять формат представления, предельные числа пд, п, и список значений. Во вспомогательных формулах подобия и обозначения преобразование (2.4) позволяет менять правые части: опорную переменную и обозначение. Наконец, обсуждаемое пре- — 143 
образование дает возможность заменить во всех формулах описания объекта одно наименование переменной на другое. Такие преобразования (2.4), как изменения наименованшй перемен- ных, изменения обозначений переменных и замены одних опорных пере- менных на другие. затрагивают только описание шформационного объекта и не затрагивают его базы значеъшй. Введение нового формата представления в формулу свойств значеншй заведомо сказывается на накопленной базе значений. Что _касается прочих модификацшй, то они приводят к таким последствиям. Сужение границ n1, n2 B формуле множественности и в фор- муле свойств значений, а также исключение каких-то значений из полного списка в формуле свойств вызывают перепроверки базы значений и вы- дачу тех значений, которые не удовлетворяют новым условиям. Изменение формулы вектора и формулы составной переменной могут менять накоп- ленную базу значений. но и могут оставлять ее в прежнем состоянии.  § 3. Уничтожению, объединение и разделение штформационньпх объектов  3.1. Команда на уничтожение информационного объекта имеет такой вид:  DEL INF = 12; (3.1)  управляющее слово этого преобразования — DEL, за ним через пробел —- INF, знак равенства и нашиенование информационного объекта. Команда (3.1) стирает описание информационного объекта и базу его значений.  3.2. Команда на объедтшение двух информационных объектов 121 и 122 выглядит следующши образом:  ADD INF = v1&INF = 122 --> INF = 12. (3.2)  После управляющего слова ADD И пробела записывается INF, знак равен- ства и наименование первого из объединяемых объектов — 121; за- тем - объедгшительный символ &‚ INF, знак равенства и наименование второго из объединяемых объектов; следом за этим — сдвоенный символ —>, INF, знак равенства и наименование объедгшенного объекта. В результате преобразования (3.2) объедгшяются описания двух ис- ходных штформационных объектов в одно описание под заголовком INF = = 12 и объединяются базы их значений; общие в двух объектах зависи- мости представляются в объединении однократно, причем графики зави- сшиостей объедштения получаются как результаты теоретико-множествен- ных объединений исходных графиков. 3.3. Команда на разделение ъшформационного объекта 12 на два объекта v, И 122 записывается так:  DIV INF = 12—> INF = 121 & INF = 122. (3,3)  Команда (3.3) отличается от (3.2) управляющим словом: вместо ADD- DIV (от division -—— разделение). а range порядком записи операндов отно- сительно сдвоенного символа —>.  144 I 
'.........."'\._.._.......“*z:=  \  Чтобы выполнялось задание на разделение (3.3) ‚ необходшио наличие информационного объекта и (его описания и базы его значений), а также описаний объектов и, и 1:2. B результате преобразования (3.3) база значе- Hm‘: v разделится на две базы — 121 И и, .  §4. Язык преобразований информационных объектов  В данном параграфе суммируются уже обсуждавшиеся сведения о преобразова- ниях гшформационных объектов, а также дается формальный синтаксис заданий на преобразования. Вообще говоря, синтаксические правила нужны при использовании обсуждаемых языковых средств в составе СУБД. Здесь излагается вариант таких синтаксических правил для того, чтобы иметь возможность построить полные принтеры. 4.1. Формулы преобразований собраны в табл. 4.1. Чтобы сводка формул вы- глядела экономной, приняты такие правила: — относящиеся к одному преобразованшо похожие формулы записываются в од- ну формулу; их повторяющаяся часть представляется в этой одной формуле одно- кратно, а вариантные части надгшсываются одна над другой и заключаются в скобки; — подобные члены в формулах представлены двумя или тремя членами, остальные заменены многоточием; многоточие заменяет также форматы представлений в фор- мулах свойств значений; — если в формуле преобразования какая-то часть используется не всегда, то эта часть подчеркивается волнистой линией; - внутри формул преобразований фшурируют формушя описания; поэтому все соглашения (см. п. 6.1, гл. 1) об их форме записи действуют и здесь. 4.2. Синтаксис преобразования информационных объектов. Этот пункт посвящен формальным правилам записи задания или заданий на преобразование информацион- ного объекта, а также соотношеншо синтаксиса преобразования и синтаксиса описа- ния объектов. 1°. Признак начала задания — слово TRANSFORM, за которым через знак равен- сгва следует наименование преобразуемого объекта или двух информационных объек- тов, когда целью преобразования является объединение этих двух объектов; в по- следнем случае наименование первого объекта отделяется от наименования второго точкой с запятой; заголовок с TRANSFORM отделяется от остального текста точкой с запятой. 2° . Формулы преобразований, если их несколько под одним заголовком TRANSFORM, разделяются точками с запятыми. 3° . После последней формулы преобразования пишется точка с запятой и признак окончания задания — слово FIN. ‚ 4° . Как следует из табл. 4.1, формулы преобразований имеют дело с отдельно взя- тыми формулами описания. В то же время синтаксис языка описания допускает обра- зование цепочек формул ‘описания, (см. п. 6.6 гл. 1). Так что, составляя задания на уничтожение или замену формул описания, нужно эти формулы представить себе вычлененными из их цепочек. ° 5° . В формулах преобразований разрешается пользоваться теми наименованиями и их обозначениями, которые зафиксированы в описании информационного объекта. 4.3. Примеры в этом параграфе отличаются от всех, предшествующих в настоящей главе, завершенностыо: задается искшочение или изменение, или добавление какой-то части информационного объекта и в ответ вьшисывается полный текст задания на языке преобразований.  TRANSFORM = АНКЕТА; DEL ПРАВИТЕПЬСТВЕННЫЕ НАГРАДЫ = J (ФИО); DEL ПРАВИТЕПЬСТВЕННЫЕ НАГРАДЫ = W (ПРАВИТЕЛЬСТВЕННАЯ НАГ РАДА | 1.50); DEL ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА = S (ТЕХТ| 3,501); FIN  Puc. 4.4.1. искшочение зависимости ПРАВИТЕПЬСТВЕННЫХ НАГРАД от ФАМИЛИИ ИМЕНИ ОТЧЕСТВА и сопутствующих отношений  10. Ю.Н. Иванов 145 
4.3.1. Пусть из «анкеты» требуется исключить зависшиостъ ПРАВИТЕЛЬСТВЕН- НЫХ НАГРАД от ФАМИЛИИ ИМЕНИ ОТЧЕСТВА. Полный текст задания на искшоче- ние показан на рис. 4.4.1. В нем первая формула исключает требуемую зависимость, остальные исключают сопутствующие отношения. 4.3.2. Дополнши «анкету» новой зависимостыо ГОД ПОСТУПЛЕНИЯ == 1 (ФИО, НО- МЕР РАБОТЫ). Необходимый на этот случай текст задания показан на рис. 4.4.2. В за- дании две форму 1 преобразования: ‘первая добавляет формулу новой зависимости, вторая — Формулу свойств значений нового аргумента НОМЕР РАБОТЫ.  TRANSFORM = АНКЕТА; ADD Г П = 1 (ФИО, НОМЕР РАБОТЫ) ; ADD HOMEP РАБОТЫ = S (ВЕС! 1,15 |); FIN  Puc. 4.4.2. Дополнение «анкеты» формулой новой зависшиосги и формулой свойств значений нового аргумента  4.3.3. Предыдущая операшая касалась только описания информационного объекта. Допустим, что, помшио введения новой формулы зависшиости в текст описания, вве- ден еще и график зависимости в базу значений. Тогда есть возможность произвести преобразование, именуемое «введение параметра». В зависимости НАИМЕНОВАНИЯ ПРЕДПРИЯТИЯ от ФИО и ГОДА ПОСТУПЛЕНИЯ второй аргумент заменяется его выражением через ФИО и НОМЕР РАБОТЫ. Задание, реализующее такое преобразо- вание, показано на рис. 4.4.3. TRANSFORM = АНКЕТА; INPAR НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = F (ФИО, ГП) & ГП = 1 (ФИО. НОМЕР РАБОТЫ — > НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = 1 (ФИО, НОМЕР РАБОТЫ); DEL НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = F (ФИО, ГП); FIN ‹  Рис. 4.4.3. Введение параметра и исключение исходной зависимости  В отличие от описания «анкеты», данного на рис. -2.1.1 гл. 2, здесь зависшиосгь НАИМЕНОВАНИЯ ПРЕДПРИЯТИЯ от ФИО и ГОДА ПОСТУПЛЕНИЯ считается одно- значной уникальной, а не однозначной неуникальной — так необходимо для обсуждае- мого преобразования. Второе преобразование из текста на рис. 4.4.3 уничтожает исход- ную зависимостъ НАИМЕНОВАНИЯ ПРЕДПРИЯТИЯ от ФИО и ГОДА ПОСТУПЛЕ- НИЯ‚ Теперь она задается двумя зависимостями с параметром НОМЕР РАБОТЫ. 
А... „Х „тю ‚ж. Э... „Х a%% &. A... „х .3 o 83 .<n<.E<: A... я „эк. и m<:=mEb.Em._.:m<.=: а и „Эти... и _.E.<m.A<: m_.EmmmHo.=AmEm<.E ‚Бы нииоо „Аозё Т А... „х .3 ы Еооащоцьоокот: 352 u <ц<ё<щ „Ёшщщщнодщщнзмёщ: А... „х „ш: Ьое щЁпоЁо м: o==2.o=3_o= . AI AOS9w А. н „м А| А... „х .3 D u c. mam , за 2.328% ..o...§8...& n _.=..A<.:<: m_.E:mm.B.Em.Em<.E mom A... „х .3 щ =.so2§_.§ -o= веко: отщогоцщошцо A Aoseo Щ и mmo Al Aoseo ы п щщо щэш ><m~._< „ЕЕ. osmomozns .m A... „Х „те ‚ж. в... „Х „шч ‚ч A... 2.3 o u с nn< isaoe x=.Eo:Am._.o....A= А... „х .3 Щ .оо osmonmaood поднимающие ><mm.<. saoozsosnan б: веко: ощтогоцщотцо Аозео н... smhmm. 0:05: nn.<. - Hmzoo osmonmaoofi .ы Э... „Х „ше ` ' A... „Х „ш? % А... „х .3 о и с. ‚Ед isaoe x=So:Am.8._..A:oo А. . x „Зим o=:o..o=Av_o= uomasmooome „Эти... Ebozsosmam б: нгжог ощтогоцщотщо АОЁЗ A u до: дща ‚ншгоо o::o..o:AxoS A m ч м . ы A 44 uxzawozsafl fiaozsqfi Enafiqofi dam BFAZQOG oszannam oz  ч“. вззчючь  щоьиодюо x..:=3==a2 goes: msmamomamm com: Sizmoe  147  10* 
8:9 „из: .<mom§m9 u u _.E<.E<m m3=mmE.o.Em._.:m§: Al Ssevm u m=m<mom<._mo a. „ода ъ и и 3n<.E<m m_.EmmE.onEE.:m<.E 922.  E.oom=on.89_8=2 „абзацев asmouomm ‚койота от навигации o.:oSorE==§q._ o=mo..o_5.o=  2o§E3..._ SE ‚атом: .m§.§.E:m.E .454: .mo. щи „Виват =_._mo=<m A... ?£u>E.S 53 .38 ф: .mE.m:.E:m.E .£b<=mo .$=\EmEom._ .om.8._m.8 .:m:2. Щ и моипзщ =_._mo:<m xwsewsmzummm m::<momm2:<E а и use дёргать: §m<momm2:<m а 6:8 s u use .w=.E:m.E §m<momm2=<= Al 6.10:9. ы и «вы -§a=nm.E m:m<mo:m2:<m сайт  9:38  =o.8o2=o=man A... ь 9.. A а Q е ь „о а _ H „. ы ы A... дм „Х «WV U пи то Al Щ A . „х 3.1.3 w. медведица? A... .X.ww Ф nu по Огнфннндщйддёйе K о-Ёоцощщ ЭЁ и м „ю ЭФ: ь... «W9 Ё Эх? ь... „же Ё A9 а... „шее З .... „Ё и м А! >5E< emzoo ы. диншогйцы 3 .... „х .... „В ы и с 0M<Nm o=mo..oExo5 b saoozsoaman Щ . оёгпоцпвмоошп  т  ч  ~I.W 3:: есть юзёьачосоцмы  148 
H AOSGV s н д... а: а: „ЕЁ н BANG ssmoiomao u 3m<.E<m m3=:mmeu.Em§m<.E ‚Ед д г. 25.5 а .и с ‚во ...§2.o.5_o= .: ... ь ь ч. а ц н ... Н A gag З ._ к =_ п. н а „_„-„_„х п э Eoozsoxmmn ново: AHXMHV ил ы 232909 вышибает =v82.=._. п 3.H.Om<m mmzom „Ч и 0:9 н 2-о=9 AI I .... „х. ы н с агенты мнмоююо Ёщмоёо ш одьощё A А э 8 о zoo шонщогдцм . usfimonaooau 825 „за: .320: 6:3 щ и §=m5§.6o= цоь zoo ‚щ 2__§=s5 S ea... {Neva .AAwXa_ «Ё. цнЬЗФ-ш. Н X db ... ь N ь н ... In Ill ь nl 35. я =_ „и L „Ёж. в От „ы д. _m.=omem H застав mmzom „ю H x\ „с. Cvx. H x\ .5.UH:A| Aowmfi . „отваге и.“ от п 3.8m§ „азот - ы \S\Em=.§.8o= оьщдьщьь под д... . в .3 ы и „в ofiaxomuo „зева „а, и „льощё ._m2oEw=:mS§.6 o ._.§__§ E8§_2_...§ „магов .o: o.5._oS no.7: u Ъьощё щ < о... .52. msuo азов: Eoozsosn щщёош \w=mm:.=.C.UoE оцощщщ: ём ofimuoxos com E80 „завоз ЦОЬ DH wsmmnnfioon под Al s аза: истцов Essa за. 8:9. ‚щи щзщщдцйшош оьщднщщн ‚А 4.3 ы ..„ 5 zoo ьЁмощ sxoowseazoema заходов Hop £wSmm:.:.C.UO= оьоьоьщ U uoeoozsosmam ЁщмоЁо щ ==:=no=2ov_ once: Щоц „тзшщдЁиноо-‚н оцощщщ: Hon 200 ‚щ- тёямоцгоы .m  m  е  N.» 33:63 m=:m..§.o©om5  150 
ища Ё мамодюо „а п m7: а. ощощшоёёгцоещ:  „а nnmzm Al а и „Ё: >Ё osmonounam щонмоююо Ensues: а и „Ё А! .u2moG== „ока „с и „Ё а. „с и „Ё щщщ „ёощазёо шумовое ощощщоёёгцоещ: а и „Ё: ‚ншд osmovxoerxmz „в Al в mom  . moasfi: fl б AI: 2&2 И б  <щ<щщ<щ А... „дач и в А... ад и в mam <n<.E<m щщщщщщнощцщвзщщщщ щам д... . с . с . zn<.E<: AI . со З . _.E<.E<_.._ m_.Emmm._.o.Em.Em<.E щам _..... .._=_....:. u с AI „яма .83 awe м. и Е AI ю... .5 с .Зс._ „с дсЁм и с mam  гммщ ‚от: izc м. п Вы щам  т . . с ю ы  W» 333.63 uzamfiqocodh . ‚  152 
ГЛАВА 5 ЗАПРОСЫ  О запросах уже шла речь. В § 4 гл. 1 сообщались сведения о запросах, необходимые для обоснования некоторых черт информационных объектов. Запросами же оправдывались в предыдущей главе ряд преобразований информационных объектов. Вообще, информационный объект форь/шруется ради запросов и его облик определяется ожидаемыми: запросами. В запросе выражают- то, что хотят полутшть, и условия, при которых хо- тят получить. Первое составляет объект запроса, и в нем фигурируют толь- ко наименования переменных, второе — условия запроса, и в них могут быть наименоваъшя переменных и значения переменных. Запросы бьши определены в вводной части предыдущей главы как действия над информационным объектом, не приводящие к изменениям описания объекта или его базы значеъшй.  § 1. О языках запросов  Язык запросов должен располагать богатым набором выразительных средств, что- бы обслуживать широкий круг запросов и позволять формулировать их кратко. За-  ПРОСЫ ДОЛЖНЬП Tpaucnnposarbca B ЭКОНОМНУЮ ПОСПСДОВЗТСЛЬНОСТЪ ПОИСКОВЫХ операций.  Языки низкого уровня заведомо не претендуют на краткость, но позволшот вы- ражать любой запрос и добиваться быстроты его реализации. Пользователь, записы- вая свой запрос на каком-нибудь из этих языков, не только указывает ”что” он хо- чет получить, но также определяет последовательность поисковых действий, иными словами, определяет, ”как” он это хочет получить. Языки высокого уровня требу- ют указания “что”, а ”как” выбирается самой СУБД. В настоящем параграфе будут рассмотрены языки запросов, применяемые в СУБД, которые базируются на реляционной, иерархической и сетевой моделях данных. В ка- честве примера будет рассмотрен объект ”анкета”, реляционное, иерархическое и се- тевое описания которого были построены в третьей главе. 1.1. Реляционные языки запросов работают с информационными объектами, пред- ставленными в виде совокупности отношений. Отношения отображаются таблицами. В терминах таблиц реляционные языки запросов должны обеспечивать: 1) извлечение подмножеств столбцов таблицы для создания таблиц меньшей раз- мерности; 2) объединение таблиц для создания таблиц большей размерности; 3) выделение подмножеств строк таблиц. Одна из привлекательных черт реляционного подхода именно в очевидности и простоте этих трех поисковых операций нижнего уровня. Реляционные языки запросов могут быть разделены на четыре класса: - языки реляционной алгебры,  153 
— языка исчисления отношений, — графические языки, — языки отображения. Языки реляционной алгебры относятся к числу языков низкого уровня, а осталь. ные — к языкам высокого уровня. Теоретические основы язьшов первых двух классов были заложены работами Кодда. Языки реляционной алгебры базируются на так называемой алгебре orname- ний [89] , а исчисления отношений—на логике предикатов первого порядка. Примером языка исчисления отношений является язык ALPHA [90] , разработаъшый Коддом. Графические языки предназначены для работы с дисплеем и имеют специализирован- ные синтаксические конструкции. Пользователь такого языка выражает свой запрос специальными терминами непосредственно на экране дисплея. Примером графичес- кого языка является язык QUERY—BY—EXAMPLE [91]. B настоящем пункте вни- мание будет сфокусировано на одном из отображающих языков — язьп‹е SEQUEL [92], используемом в реляционной СУБД R [93] . Основной конструкцией языка SEQUEL является элементарный блок отображения. Он включает три конструкционных слова: SELECT (ИЗВЛЕЧЬ), FROM (ИЗ) и WHERE (ГДЕ). После слова SELECT записываются наименования информационных переменных, значения которых должны бьпъ получены в ответе на запрос. После слова FROM должно быть указано наименование отношения, из которого извлекаются значения переменных. И, наконец, за словом WHERE записываются условия запроса. Например, запрос ”определить пол и год рождения Иванова Ивана Ивановича” на языке SEQUEL выражается следующим образом:  SELECT ПОЛ, ДАТА РОЖДЕНИЯ. ГОД FROM СОТРУДНИКИ ЗТМ WHERE ФАМИЛИЯ ИМЯ ОТЧЕСТВО = ИВАНОВ ИВАН ИВАНОВИЧ (1.1)  В рассматриваемом примере объект запроса содержит наименования двух перемен- ных, разделенных запятой. Условия запроса в общем случае могут включать несколь- ко выражений вида:  НАИМЕНОВАНИЕ ПЕРЕМЕННОЙ - ЗНАЧЕНИЕ ПЕРЕМЕННОЙ, (1.2)  I\/\VV‘R- "  соединенных логическими операторами OR (ИЛИ), AND (И). Вложением одного эле- ментарного блока отображения в другой, использованием встроенных функций SUM, MAX, MIN и прочих на языке SEQUEL могут быть выражены сложные запросы. Рассмотрим такой пример: ”определить годы рождений работников ЗТМ, окон- чивших ЛПИ”. Этот запрос примечателен тем, что его реализация затрагивает два от- ношения: ”вузы” (табл. 2.4,б гл. 3) и ”сотрудники ЗТМ” (табл. 2.1 гл. 3). На языке SEQUEL запрос выражается следующим образом:  SELECT ГОД РОЖДЕНИЯ FROM СОТРУДНИКИ зтм WHERE ФАМИЛИЯ имя ОТЧЕСТВО = SELECT ФАМИЛИЯ ИМЯ ОТЧЕСТВО FROM ВУЗЫ (1.3) WHERE НАИМЕНОВАНИЕ ВУЗА = лпи.  Реализация запроса проходит в два этапа. Сначала выполняется внутренний блок: из отношения ”вузы” извлекаются значения переменной ФАМИЛИЯ ИМЯ ОТЧЕСТ- ВО при условии,:что НАИМЕНОВАНИЕ ВУЗА = лпи. Затем полученные значения ФАМИЛИИ ИМЕНИ ОТЧЕСТВА используются в условиях внешнего запроса. 1.2. Язык запросов DL/1 относится к числу языков нижнего уровня, используемых в иерархической СУБД IMS [82, 94]. Запросы, выраженные на языке DL/1, являются частью прикладной программы пользователя. .. Единицей обмена между рабочими областями прикладной программы и базой дан- ных 1М$ является экземпляр сегмента. С помощью языка DL/1 осуществляется про- смотр дерева экземпляров сверху вниз и слева направо. В результате просмотра  154 
извлекаются запрашиваемые экземпляры сегментов. При написании запросов исполь- зуются следующие типы заказов: _.(;ET UNIQUE (извлечь уникальный) — для выборки названного экземпляра сег- мента из базы; - GET NEXT (извлечь следующий) — для выборки следующего экземпляра из множества экземпляров данного сегмента; ‘ GET NEXT WHITHIN PARENT (извлечь следующий в пределах старшего) — для выборки экземпляра сегмента более низкого уровня иерархии под экземпляром crap- шего сегмента, который определился ранее после удовлетворительного выполнения заказа GET UNIQUE или заказа GET NEXT. Прикладной программе придается спецификаця (PSB), содержащая один или нес- колько управляющих блоков, называемых блоками связи программы с базой данных (PCB). Каждый блок РСВ включает наименование базы данных и наименования сег- ментов из этой базы, с которыми взаимодействует прикладная программа, а также допустимый вид работы: только считывание, только запись и т.д. Блоки РСВ подобны подсхемам базы данных в терминологгш CODASYL. Прикладная программа имеет стандартное оформление. Например, программа, написанная на языке ПЛ/ 1, должна начинаться с процедуры:  DL1PLl: PROCEDURE (PCB1, PCB2, ...) OPTIONS(MAIN), (1.4)  где РСВ 1, РСВ2‚ — наименования блоков связи; заканчивается прикладная программа оператором RETURN, B результате выполнения которого управление передается 1МЗ. Для доступа к базе данных с помощью средств DL/1 используется стандартное предло- жение CALL c именем точки входа и списком параметров. На языке PL/1 вызов ВЫП имеет вид:  CALL PL1TDLl (< счетчик параметров >‚ < функция >‚ < наименование РСВ >‚ < наименование области В/В >‚ SSA1, SSA2, ...), (1.5)  где < счетчик параметров > определяет число последующих параметров‚< функция > указывает тип предложения вызова (GET UNIQUE, GET NEXT или СЕТ NEXT WIT- HIN PARENT). < наименование области в/в > определяет рабочую область ввода и вы- вода, в которую будут помещаться экземпляры извлекаемых сегментов, $$А1‚ 8$А2‚ — аргументы поиска сегмента. Аргумент поиска сегмента задает критерий поиска требуемого сегмента в базе дан- ных, т.е. определяет условие запроса. Он включает наименование сегмента и предло-  жение квалификации. Последнее содержит наименование информационной переменной  (наименование поля сегмента), знак отношения (=‚ ее, >‚ з), <‚ <) и значение инфор- мационной переменной. В одном аргументе поиска сегмента можно задавать до вось- ми предложений квалификации, соединенных логическими операторами OR (ИЛИ), AND (И). _ Например, чтобы определить ОБРАЗОВАНИЕ Иванова Ивана Ивановича, следует в аргументе поиска дать такое предложение квалификации: ФАМИЛИЯ ИМЯ ОТЧЕСТВО = иванов иван иванович. Рассмотрши запрос: ”определить наименования вузов, которые окончили сотрудни- ки ЗТМ”? Ниже приводится фрагмент реализации этого запроса на языке PL/1; IMS — представление объекта ”анкета” — изображено на диаграмме 3.3.4 гл. 3. ВЫ PL : PROCEDURE (АНКЕТА РСВ) OPTIONS (MAIN) — аргумент поиска сегмента СОТРУДНИКИ -  DECLARE 1 СОТРУДНИКИ $8А° STATIC UNALIGNED, 2 SEGMENT NAME CHAR (8) INIT ('СОТРУД')‚ 2 LEFT PARENTHESIS CHAR (1) INIT (‘с’), ZFIELD NAME CHAR (25) INIT (‘ФАМИЛИЯ шия отчество’), 2 CONDITIONAL OPERATOR CHAR (2) 1N1T('=’), 2 sEARCH VALUE CHAR (10) INIT (‘ВЫСШЕЕ’) 2RIGHT 1>ARENTHE_s1s CHAR (1) INIT (')');. — аргумент поиска сегмента ВУЗЫ — DECLARE 1 ВУЗЫ ЗЗА STAT'IC UNALIGED, 2 SEGMENT NAME CHAR (8) шт (‘ВУЗЫ’);  155 
— основная процедура _ CALL PLITDLI (FOUR, GET UNIQUE, АНКЕТА РСВ, СОТРУД 10 AREA, СОТРУДНИКИ SSA); DO WHILE (PCB, STATUS CODE =SUCCESSFUL); CALL PL1TDLl (FOUR, GET NEXT WITHIN PARENT, АНКЕТА РСВ, ВУЗЫ 10 AREA); . DO WHILE (PCB. STATUS CODE = SUCCESSFUL); PUT EDIT (НАИМЕНОВАНИЕ ВУЗА) (А); CALL PLlTDLl (FOUR, GET NEXT WITHIN PARENT , AHKETA PCB, ВУЗЫ, 10 AREA, ВУЗЫ SSA); END; IF PCB. STATUS CODE "|='-RECORD NOT FOUND THEN DO; CALL ERROR (PCB. STATUS CODE);  RETURN; END; ~ . CALL PL1TDLl (F OUR, GET NEXT, АНКЕТА РСВ, СОТРУД 10 AREA, СОТРУДНИКИ SSA); END; "  IF PCB. STATUS CODE‘l=RECORD NOT FOUND THEN DO; CALL ERROR (PCB. STATUS CODE); RETURN; END; END DLlTDL1. (1.6)  Запрос выполняется следующим образом. 1) Определяется экземпляр сегмента СОТРУДНИКИ при условии ОБРАЗОВАНИЕ = высшее. Действие вьшолняется оператором GET UNIQUE. Аргументом поиска ‘BEI- ступает СОТРУДНШСИ SSA. Если не найдено ни одного экземпляра, то обработка за- кончена. 2) Извлекается первый экземпляр сегмента ВУЗЫ (в рассматриваемом примере он единствеъшый) , подчиненный экземпляру сегмента СОТРУДНИКИ, который най- ден на шаге 1). Операция вьшолняется посредством оператора‘ GET NEXT WITHIN PARENT. Аргументом поиска является ВУЗЫ SSA. НАИМЕНОВАНИЕ ВУЗА выда- ется на печать. Если экземпляра сегмента нет, то процедура переходит к шагу 4).  3) Определяются остальные экземпляры сегмента ВУЗЫ под даъшым экземпля- _  ром сегмента СОТРУДНИКИ (в общем случае их может быть несколько, если со- трудник окончил не один институт). Операция вьшолняется повторением операто- ра GET NEXT WITHIN PARENT. Наименования вузов выдаются на печать. 4) Извлекается следующий экземпляр сегмента СОТРУДНИКИ при условии ОБРАЗОВАНИЕ = высшее. Операция выполняется посредством оператора СЕТ NEXT при том же аргументе поиска сегмента, что используется на шаге 1). Если нет экземп- ляра, то обработка заканчивается; в противном случае процесс переводится на шаг 2). Отметим, что в отличие от языка SEQUEL, B котором с помощью элементарного блока запроса можно извлечь произвольное множество кортежей отношений, опера- торы языка DL/1 позволяют выбрать только один экземпляр сегмента. Для того чтобы организовать выборку необходимого множества экземпляров‚используются операторы цикла ВО языка PL/1. 1.3. Язык запросов СУБД DBMS 2000 [95] внешне напоминает реляционный язык SEQUEL и подобно ему принадлежит к языкам верхнего уровня. СУБД DBMS 2000 принадлежит к числу иерархических и для нее, как и для 1М8‚ справедливы понятия сегмента и поля. Запрос на языке запросов DBMS 200 представляется в виде двух частей: объекта запроса и условий запроса. Слово PRINT предшествует объекту запроса, слово WHERE — условшпи запроса. Например, запрос ”определить фамилии имена отчест- ва сотрудников ЗТМ, окончивших ЛПИ” затянется следующим образом:  PRINT’ ФАМИЛИЯ ИМЯ ОТЧЕСТВО WHERE НАИМЕНОВАНИЕ ВУЗА =лпи. (1.7)  В элементарном запросе указываются наименования полей сегментов, обязательно находящихся на одной трассе. При вьшолнении этого требования извлекаются экземп-  156 
пяры сегмента, удовлетворяющие условию запроса, а затем осуществляется переход на старший (ИЛИ МПЩШИЙ) УРОВЭНЪ PIGP3-PXHPI» Где Определяются соответствующие экземпляры старшего (или младшего) сегмента- В примере (1.7) переход соверша- ется снизу вверх. Такой процесс называется нормазшзацией снизу вверх [81], при. мерси запроса с нормализацией сверху вниз может служить такой: ”определить наименование вуза, который окончила Петрова Надежда Петровна”:  PRINT НАИМЕНОВАНИЕ ВУЗА WHERE ФАМИЛИЯ ИМЯ ОТЧЕСТВО= =ПЕТРОВА НАДЕЖДА ПЕТРОВНА. (1.8)  при реализации этого запроса сначала извлекается экземпляр сегмента СОТРУДНИКИ, сдотвд-Ьссгвуюцшй ПЕТРОВОЙ НАДЕЖДЕ ПЕТРОВНЕ, а затем находится экземпляр подчиненного сегмента ВУЗЫ, из которого выбирается требуемое значение НАИМЕНОВАНИЕ ВУЗА. _ Теперь обратимся к такому примеру: ”кто из сотрудников ЗТМ награжден ме- далыо ”За трудовое отличие” и орденом ”Знак почета”. На первый взгляд может по- казаться, что запрос следует выразить следующим образом:  PRINT ФАМИЛИЯ ИМЯ ОТЧЕСТВО WHERE ПРАВИТЕЛЬСТВЕННАЯ НАГРА- ДА = медаль ”3a трудовое отличие” AND ПРАВИТЕЛЬСТВЕННАЯ НА-  ГРАДА = орден ”знак nouera”. (1.9)  Однако в результате вьшолнения этого запроса не получится в ответе Иванов Иван Иванович. Запрос (1.9) реализуется нормализацией снизу вверх: сначала извлекаются экземпляры сегмента ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ, удовлетворяющие условшо запроса, а затем находится экземпляр старшего сегмента. Действие оператора AND B том виде, как он применен в (1.9), приводит к тому, что условшо запроса не удов- летворяет ни один из экземпляров сегмента ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ, поскольку ни один сегмент не может иметь два разных значения одной переменной. Такого действия не будет, если оператор AND будет работать на другом уровне иерархии — старшем по отношению к известным экземплярам. В языке запросов DBMS 2000 имеется оператор HAS, который предназначен именно для того, чтобы переводить действие лошческих операторов на уровень иерархии, старший по отно- шению к уровню, где ведется поиск экземпляров, задаваемых оператором WHERE. Правильная запись запроса (1.9) такова:  PRINT ФАМИЛИЯ ИМЯ ОТЧЕСТВО WHERE ФАМИЛИЯ ИМЯ ОТЧЕСТВО HAS ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА = медаль ”3a трудовое отличие" AND ФАМИЛИЯ ИМЯ ОТЧЕСТВО HAS ПРАВИТЕЛЬСТВЕННАЯ НАГРАДА = орден ”знак nouera”.  (1.10) B (1.10) B отличие от (1.9) указание AND применяется к экземпляру старшего сег- мента СОТРУДНИКИ. Несмотря на то, что язык запросов СУБД DBMS принадлежит к числу языков верхнего уровня, пользователь должен хорошо представлять себе организацшо базы данных, чтобы правильно пользоваться этим языком. 1.4. Язык запросов сетевой базы данных. Для работы с базами данных комите- том КОДАСИП был предложен язык запросов, являющийся расширеъшем языка прог- раммирования КОБОЛ [5, 83, 84]. Чтобы извлечь требуемые данные из базы данных, пользователь должен вставить в свою программу, написанную на языке КОБОЛ, спе- циальные операторы языка запросов. Данные, поступивцше из базы в оперативную па- мять, доступны для обработки обычными операторами КОБОПА. Поскольку данные выступают как операнды в операторах языка КОБОЛ, их определение должно быть согласовано с общими требованиями языка КОБОЛ в части описания данных. Помимо задания структуры базы данных на языке описания данных (см. § 4 гл. 3) требуется еще описание части базы дачных, истюльзуемой в конкретной прикладной программе. Такое описание называется подсхемой (ср. РСВ в языке.запросов IMS) . Операторы обсуждаемого языка запросов по вьшолняемым функциям можно раз- делить на операторы управления (OPEN, CLOSE, FINISH, ...) , операторы поиска дан- нь1х (FIND, GET, ...) И операторы обновления содержимого базы данных (STORE, INSERT, REMOVE, MODIF_Y). Программа поиска данных и их последующей обработки  157  чти-ъ“- 
содержит перечисленные операторы, а также выразительные средства языка КОБОЛ; никаких логических или других операторов не предусмотрено в языке, предложен- ном КОДАСИЛ. Посредством применения различных модификаций оператора FIND И так называемых индикаторов текущего состояния пользователь может устанавзш- вать различные пути доступа к своим данным. Экземпляры записей, являющиеся объектом поиска, передаются в оперативную память при помощи оператора GET. Подчеркнем: язык, предложенный КОДАСИП, принадлежит к числу языков запро- сов нижнего уровня.  § 2. Производные информашюнньте зависимости  Каждьпй запрос, обращенный к информационному объекту, порождает новую зависимость mm новые зависимости, являющиеся производными»: по отношению к исходным зависимостям. ‚Производная зависимость ха- рактеризуется своими переменными, одна из которых выступает в роли зависимой переменной, остальные — в роли аргументов, а также правилом запроса. В этом параграфе рассматриваются запросы, не содержащие теоре- туже-множественных и алгебраических операшай над переменными. 2.1. Одна исходная зависимость. Пусть переменные £1, £2 , £3 , образуют одну функциональную связь, туш функциональной связи (F, G, I или J) не конкретизируется; среди переменных одна — зависимая (здесь она наме- ренно не выделяется), остальные — аргументы. Этот пункт посвящен типам зависимостей, производных от одной исходной зависимости. 2.1.1. Частный вид производной зависимости задается следующей фор- мулои:  _ CONST т ARRAY _ F(§i, ‚ ft, ‚ т) _ _ ‚ ‚ '_ , ‚к, п — G(£i1 ‘ sf: з ...) . _ £1./£k1 - :1 ’ Е“: _ ska ’ 1(g,.1, gig , ...) L_J(£l.1,£l.2,...) _ _  Запись (2.1) представляет собой блок из двух формул. Первая — формула функциональной зависимости (см. (3.12) ИЗ гл. 1); она определяет новую переменную п как фуш<ш4ю аргументов $1.1 , Е‘: ‚ ...; туш функшш ——- один из шести, записанных в фигурных скобках. Вторая — формула запроса (см. § 4 гл. 1); она отождествляет новую переменную п с переменной E]. ИЗ тшсла входящих в исходную зависимость при условиях, захшсанных после косой черты. Напомним, что в формуле запроса до-косой черты запи- сывается переменная или перемеъшые, значения которых представляют ин- терес, иными словами, объект запроса; после косой черты — переменные вместе с их значениями, определяющие условия запроса. Формулой (2.1) перемеъшые исходной функшш разделяются на 4 груп- пы: 1) £1. — одна переменная, отождествляемая с производной перемен- ной п и представляющая собой объект запроса; 2) Е,“ , Ekz , — задавае-  мые переменные, фигурирующие в условиях запроса; 3) г: , Е, , — пере- 2 менные, выступающие в роли аргументов в производной зависимости; 4) остальные переменные.  158 
Производная ФУНКЦИЯ (2-1) СТРОИТСЯ следующим образом. В исходной здвисимости жестко фиксируются переменные Ekl , г,‘ , Выбирается пер- вое допустимое сочетаъше значеншй $1.1 , Ед: ‚ и пере ирадются все допусти- Mme при нем сочетания значений Е. и оставпшхся переменных из 4-й груп- um; получившаяся совокупность значеншй E]. есть первое множественное (или элементарное) значение новой зависимой переменной п при первом  наборе значеъшй аргументов 2,1 , Е‘: , Аналогичным порядком опреде-  ляется второе соответствие между набором значений аргументов Ед ‚ ‘ед: ‚ и значением зависимой переменной п, третье и т.д. Если прибегнуть к геометрическим терьшнам, то производная зависи- мость есть результат двух геометрических операций: операшш сечения графика исходной зависимости плоскостями Etc, = ’$;(,:)’s 51:, = ’$§,:)’ и опера: шли проектирования получившегося графика на пространство г], st.‘ , где ‚ . 2.1.2. Рассмотрим примеры запросов из ”анкеты”‚ раскрывающие содержание по- нятия ”производная зависимость”. В приводимых примерах фигурирует несколько зависимостей из ”анкеты”, но каждый запрос имеет дело с одной исходной зави- симостыо. Какое образование у Иванова Ивана Ивановича? . ОБРАЗОВАНИЕ ИВАНОВА ИВАНА ИВАНОВИЧА = CONST = ОБРАЗОВАНИЕ] ФАМИЛИЯ ИМЯ ОТЧЕСТВО =_ ’иванов иван иванович’. Исходная зависимость в этом’ примере ОБРАЗОВАНИЕ = F (ФАМИЛИЯ ИМЯ ОТ- ЧЕСТВО). Новая переменная названа ОБРАЗОВАНИЕ ИВАНОВА ИВАНА ИВАНОВИ- ЧА. Tun функциональной зависимости выбран минимальный — CONST. Новая пере- менная отождествляется с зависимой переменной из исходной зависимости при усло- вии, что аргумент принимает заданное значение. В § 4 гл. 1 такие запросы называются прямыми. В геометрических терминах ответ на обсуждаемый запрос получается в ре- зультате операции сечения графика исходной зависимости прямой, параллельной оси ординат. Если исходная зависимость неуникальная (см. табл. 3.3 из гл. 1) — ОБРАЗО- ВАНИЕ = 1 (ФАМИЛИЯ ‘имя отчвство), то в зависи запроса меняется тип функ- циональной зависимости: ARRAY вместо CONST. Кто из мужчин работает на ЗТМ? МУЖЧИНЫ ЗТМ = ARRAY = ФАМИЛИЯ ИМЯ ОТЧЕСТВО] ПОЛ=’.муж’.  Исходная зависимость — ПОЛ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО). Ответ есть сово- купность, поэтому тип функциональной зависимости — ARRAY. Новая переменная названа МУЖЧИНЫ ЗТМ. Новая переменная совпадает с аргументом исходной зависи- мости при условии, что зависимая переменная равняется задашюму значению. Тип за- проса по классификации § 4 rn. 1 — обратный. Искомые значения аргумента получаются в результате сечения графика исходной зависимости прямой, параллельной оси абсцисс. Кто награжден орденом ”знак почета”?  ОРДЕНОНОСЦЫ = ARRAY = ФАМИЛИЯ ИМЯ ОТЧЕСТВО / ПРАВИТЕЛЬСТВЕН- НАЯ НАГРАДА =°орден ”знак почета”.  В этом запросе вместе с формулой зависимости ПРАВИТЕЛЬСТВЕННЫЕ НАГРА- ЦЫ = G (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) в качестве исходной должна фигурировать формула множественности ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ = W (ПРАВИТЕЛЬСТ- ВЕННАЯ НАГРАДА), устанавливающая связь между переменной из запроса и пере- менной из зависимости. Ответ есть одно элементарное значение, но поскольку в общем случае данного запроса ответ может содержать не одно, а несколько элементарных “sna- чений, то тип функциональной зависимости избран ARRAY. Этот запрос, как и преды- дущий, относится к числу обратных, и операция, порождающая производную зависи- мость, — сечение. ‚ ь В какие годы рождались сотрудники ЗТМ? ГОДЫ РОЖДЕНИЯ = ARRAY = ДАТА РОЖДЕНИЯ. ГОД.  Исходная зависимость - ДАТА РОЖДЕНИЯ. ГОД = F (ФАМИЛИЯ ИМЯ ОТЧЕСТ- ВО). Ответ на запрос получается.в результате операции проектирования графика ис-  159 
ходной зависимости на ось ординат. По сравнению с общим случаем (2.1) в данном запросе нет переменных, значения которых жестко фиксируются; поэтому в записи запроса отсутствует часть, называемая условием запроса. Запросы такого типа назы- вают безусловными.  КТО РАБОТАЕТ НА ЗТМ?  СПИСОК ФИО = ARRAY = ФАМИЛИЯ ИМЯ ОТЧЕСТВО / ДАТА РОЖДЕНИЯ. ГОД = ‘ALL’ . - Подобно предыдущему этот запрос реализуется операцией проектирования, но не на ось ординат, а на ось абсцисс. Здесь также отсутствуют задаваемые переменные, поэто- му запрос относится к типу безусловных. Однако условие запроса, тем не менее, фигурирует в записи, и это связано со следующим. В качестве исходной избрана зави- симость ДАТА РОЖДЕНИЯ. ГОД = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО). Тот же ответ получился бы, если бы исходной была, например, зависимость ПОЛ = F (ФА- МИЛИЯ ИМЯ ОТЧЕСТВО). Но зависимость НАИМЕНОВАНИЕ ВУЗА = F (ФА- МИЛИЯ ИМЯ ОТЧЕСТВО) привела бы к другому ответу, так как она определена на совокупности значений аргумента, меньшей, чем первые зависимости. Если перемен- ная, список значений которой запрашивается, фигурирует только в одной зависи- мости или фигурирует в нескольких, но с одинаковыми списками значений, то указа- ние конкретной исходной зависимости необязательно, достаточно наименования этой переменной. В противном случае необходимо такое указание и оно дается в условиях запроса: после наименования зависимой переменной на месте значения переменной за- писывается специальное слово ALL, взятое в апострофы. Как соотносятся фамилии, имена, отчества с числами рождения?  ФАМИЛИЯ ИМЯ ОТЧЕСТВО = 1 (ДАТА РОЖДЕНИЯ. ЧИСЛО).  Исходная зависимость - ДАТА РОЖДЕНИЯ. ЧИСЛО = F (ФАМИЛИЯ ИМЯ ОТ- ЧЕСТВО); производная зависимость — обратная к исходной; она ставит в соответст- вие каждому числу рождения свою фамилшо, имя, отчество. Тип производной зави- симости избран 1 — однозначная неуникальная функция. Это значит, что в зависимости допускается повторение значений аргумента. На какое предприятие поступил Пантелеев Дмитрий Ильич в 1976 г.?  РАБОТА ПАНТЕЛЕЕВА 1976 = CONST = НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ [ФАМИЛИЯ ИМЯ ОТЧЕСТВО = ’naureaeee дмигрий ильич’, ГОД ПОСТУПЛЕ- НИЯ = ‘1976’. _ В каком году поступила на ЗТМ Петрова Надежда Петровна? ГОД ПЕТРОВОЙ ЗТМ = CONST = ГОД ПОСТУПЛЕНИЯ [ФАМИЛИЯ ИМЯ  ОТЧЕСТВО = ’петрова надежда петровна’, НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = ‘= зтм’. Каков послужной список Иванова Ивана Ивановича? РАБОТЫ ИВАНОВА = F (ГОД ПОСТУПЛЕНИЯ) = НАИМЕНОВАНИЕ ПРЕД- ПРИЯТИЯ/ ФАМИЛИЯ ИМЯ ОТЧЕСТВО = 'иванов иван ивановичЁ В какие годы поступал на новые предприятия Сидоров Петр Иванович? ГОДЫ ПОСТУПЛЕНИИ СИДОРОВА = ARRAY = ГОД ПОСТУПЛЕНИЯ / ФА- МИЛИЯ ИМЯ ОТЧЕСТВО = ’сидоров nezp иванович’. Какие пседппиятгтя записаны в трудовых книжках сотрудников ЗТМ? ВСЕ ПРЕДПРИЯТИЯ = ARRAY = НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ. В каком соответствии находятся фамилии, имена, отчества и наименования пред- приятий с годами поступления на них? ГОД ПОСТУПЛЕНИЯ = F (ФАМИЛИЯ- ИМЯ ОТЧЕСТВО; `НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ) . Шесть приведенных выше запросов адресуются кзависимости НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ГОД ПОСТУПЛЕНИЯ). Эти при- меры иллюстрируют формулу производной зависимости в том случае, когда исход- ная зависимость двухкпючевая. Первый запрос прямой, второй - обратный, пятый — безусловный. Первый запрос реализуется операцией сечения графика исходной за- висимости двумя плоскостями; результат — одно элементарное зна‘чение. Аналогич- ную геометрическую трактовку имеет второй запрос. В третьем запросе исходный график пересекается одной плоскостью и_ результат — функция одного аргумента. Ответ на четвертый запрос получается сечением графика одной плоскостью и проек-  160 
диви нового производного графика; результат двух операций — совокупное-ш вред пизации пятого запроса участвует одна операция — проекция; результат - совокуп- ность. Наконец, последний — это запрос на построение обратной функции.  2.1.3. Естественное расширение формулы производной зависимости (2.1) состоит в том, что в условиях запроса наряду со знаками равенства допускаются знаки дРУгих отношеъшй:  — CONST ARRAY F (Ёд, ‚ Ед, ‚ ---, §k,, ) '5"; n = G(£i1,£i2,..o,£kr:-.a) .-zgjlgklm. ,ALL,-J, 1(§i, ‚ Ei, ‚ ---‚ Ёщ, -_--) \ _ -“$1, ‚Ед, ‚ ---‚ 51¢,» "Эй Г_ _ 75 ‚Е‘, ‚Е‘ 9 > гк, т _,A"IjL, ,_ am ,AI’1, ,...;(sx = := > (2.2) _< =J  Запись (2.2), как это следует из расцшфровки символа SI, является более общей, нежели (2.1). Отметим, что наименование одной и той же пере- менной может быть представлено в условиях запроса неоднократно; на- пример, первый раз со знаком > и каким-то значением, второй раз — со знаком < и другим значением. ' а Знак равенства или другие знаки отношения служат в условиях запро- са для выделения нужной части графика. Знак равенства в геометричес- ких терь/шнах трактуется как сечеъше графика соответствующей unoc- костью и нужная часть графика — след на этой плоскости исходного гра- фика. Знак неравенства (ф) выделяет как нужную ту часть исходного графика, которая получается исключением следа на соответствующей плоскости, задаваемой равенством (=). Знак больше (>) оставляет в ка- честве объекта интереса часть исходного графика справа от следа соответ- ствующей плоскости. Оставшиеся знаки трактуются аналогигшо. Когда по условиям запроса какая-то перемеъшая исходной зависимости принимает заданное значение (за совпадает со знаком равенства), то в любой производной зависимости эта переменная уже не фигурирует — назначением одного из значений она исключается из рассмотрения. Лю- бой другой знак отношеъшя (ф, >, >=‚ <, < =) переменной со своим значением оставляет эту переменную в зависимости, если только она не исключается операцией проектирования. В (2.2) в качестве такой не- исключаемой переменной выступает Ekr — она фигурирует в условиях  запроса и в составе аргументов производной зависшиости. Возможен и та- кой вариант, не отражеъшый в записи (2.2), когда переменная —— объект за- проса ё 1- — Om-IOBpeMeHl-IO является ограничиваемой каким-то условиями запроса и представлена, такимюбразом, слева и справа от косой черты. В (2.2) учтено еще одно обобщение, о котором упоминалось в преды- дущем разделе: на месте значеъшя может затшсываться специальное сло- во ALL. Переменная, приъшмающая значеъше ALL, идентифицирует функ- циональную зависимость, с которой должен оперировать запрос.  11. Ю.Н. Иванов 161 
2.1.4. Приведем примеры, илшострирующие расцшренную формулу производ- ной зависимости. Кто из сотрудников ЗТМ окончил ВУЗ после 1950 г.? ОКОНЧИВШИЕ ВУЗ ПОСЛЕ 1950 = ARRAY = ФАМИЛИЯ ИМЯ ОТЕЧЕСТВО/ДАТА ОКОНЧАНИЯ ВУЗА. ГОД> 1950. _ Каковы послужные списки соТРУдников ЗТМ до поступления на ЗТМ? ПРЕДЫДУЩИЕ ПРЕДПРИЯТИЯ =F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО, ГОД ПО- СТУПЛЕНИЯ) = НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ / НАИМЕНОВАНИЕ ПРЕД- приятия # ’зтм '. B первом примере из графика зависимости ДАТА ОКОНЧАНИЯ ВУЗА. ГОД = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) сначала выделяется часть, задаваемая неравенством, а затем эта часть графика проектируется на ось ФАМИЛИЯ ИМЯ ОТЧЕСТВО, резуль- тат запроса — совокупность. Во втором примере производная зависимость имеет те же аргументы, что и исходная; график производной зависимости получается из исходного отсечением следа на плоскости НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = =’згм’. 2.2. Несколько исходных зависимостей. Пусть инфо рмационньпй объект содержит переменные ё 1, ...‚ Sn; между ними существует не одна, а несколь- ко функциональных зависимостей; зависимости имеют пересекающиеся составы переменных. В настоящем пункте будут рассматриваться составные запросы. Они имеют дело с несколькими исходными»: зависимостями, притом так, что результат обращения к одной зависимости используется при обращеъши к другой зависимости. Понятие составного запроса было введено в § 4 гл. 1. Там рассматри- вался пример c двумя исходными зависимостям, имеющими в качестве единственного аргумента одну и ту же переменную. В запросе задава- лось значение зависимостей переменной одной зависимости и требовалось найти значение зависимой переменной другой зависимости. Бьшо уста- новлено, что такой составной запрос разложим на два составляющих за- проса,‚ выполняемых в последовательном порядке: первый составляю- щий запрос адресуется к первой зависимости и в нем по заданному зна- чению зависимой переменной определяются соответствующие значеъшя аргумента, второй запрос имеет дело со второй зависимостью и исполь- зует найденные в первом запросе значения аргумента. чтобы вычислить требуемые значеъшя второй зависимой переменной. Две обсуждаемые зависимости можно трактовать как параметрическое представление связи между двумя зависимыми переменными. Если пара- метр — общую переменную — исключить, то связь будет явная и запрос, ранее имевцшй дело с двумя зависимостями, теперь будет адресоваться к одной зависимости. т.е. попадает в разряд уже описанных в предЫдУ' щем пункте. Когда две одноключевые зависимости имеют общую переменную, то она может быть: 1) аргументом в одной и в другой зависимостях, 2) ap- гументом в одной зависимости и зависимой переменной в другой’, 3) за- висимой переменной в обеих зависимостях. Первая возможность была обсуждена вьппе; подобно ей в случаях 2) и 3) составной запрос разло- жим на два составляющих запроса, последовательно обращаемых к одной и затем к другой зависимостям; кроме того, исключением общей пере- менной две зависимости сводимы в одну, и в таком варианте запрос  _ имеет дело не c дВУмя, а с одной исходной зависимостью.  162  -""" “" м": u /.\-smaam  ... шиши ., ‚.  „нажатым  ....мд!фь-_м _..д` -«.4-1;  ч `^-"“"= ~ 
Подчеркнем, что в составном запросе не могут задаваться или запра- цшваться значения общей переменной; чтобы он бьш составным и обра- щадся к двум зависимостям, в нем должны задаваться значения инди- видуальной переменной одной зависимости и запрашиваться значеъшя индивидуальной переменной другой зависимости. В общем случае исходные зависимости могут быть не одноключевьтми, а многоключевьтми; их может быть больше двух, а тшсло общих пере- менных больше одной. Но в любом варианте составной запрос предста- вим в виде нескольких составляющих запросов, последовательно обра- щаемых к разным исходным зависимостям. Второе существетшое обсто- ятельство: составной запрос, обращенный к. нескольким зависимостям, может трактоваться как неразложимый запрос, который адресуется к од- ной зависимости, получаемой из исходных посредством исключения из ьшх общих переменных. Это обстоятельство является основанием для заключения о том, что формула производной зависимости (2.2) пригодна и тогда, когда фигурирующие в ней переменные входят не в одну, а в не- сколько функциональных связей. Действительно, если составой запрос и несколько исходных зависимостей эквивалентны неразложимому запросу и одной исходной зависимости и в последнем случае пригодна запись (2.2) , то она пригодна и в варианте нескольких зависимостей и со- ставного запроса. Форма представления функциональной зависимости воз- действует на оргаъшзацию поисковых действий, но она не меняет форму выражения запроса. Теперь в (2.2) переменные Ёь выступающие как аргументы произ- водной зависимости, могут принадлежать нескольким исходным зави- симостям; переменные Ek, входящие в условия запроса, также могут быть из разных исходных зависимостей; из разных зависимостей могут набираться переменные 4-й группы, по которым происходит проектирова- ние; общие переменные исходных зависимостей, которые исключаются при сведении исходных зависимостей в одну, не могут фигурировать ъш в числе аргументов 2;, ни в числе задаваемых переменных Ek, rm B числе тех переменных, по которым производится проектироватше, они также не могут быть объектом запроса E,-.  Рассмотрим примеры из «анкеты». Каков адрес ППИ? АДРЕС ППИ = ARRAY = АДРЕС ВУЗА [НАИМЕНОВАНИЕ ВУЗА =’лпи’. (2.3) Исходными здесь являются две зависимости: НАИМЕНОВАНИЕ ВУЗА; АДРЕС ВУЗА = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО). Запрос (2.3) представим состоящим из двух следующих запросов: Кто учился в ППИ? УЧИВШИЕСЯ В ППИ = ARRAY = ФАМИЛИЯ ИМЯ ОТЧЕСТВО / НАИМЕНОВАНИЕ ВУЗА =’лпи ’. (2.4) Какой адрес вуза соответствует тем сотрудникам, которые учились в ППИ? АДРЕС ППИ =ARRAY = АДРЕС ВУЗА / ФАМИЛИЯ ИМЯ ОТЧЕСТВО = УЧИВ- ШИЕСЯ В ППИ. (2.5) В условиях запроса (2.5) ‘тспользована новая форма записи, которая будет обсуж- датъся в следующем пункте. ° На каких предприятиях аботали сотрудники ЗТМ, имеющие высшее образование? СПИСОК ПРЕДПРИЯТ = G (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) =НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ / ОБРАЗОВАНИЕ = ‘высшее’. (2,5) Исходные для данного запроса зависимости: ОБРАЗОВАНИЕ =F (ФАМИЛИЯ ИМЯ  11* 163 
ОТЧЕСТВО), НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ .=F (ФАМИЛИЯ ИМЯ ОТЧЕСТВ! ГОД ПОСТУПЛЕНИЯ). Первый составляющий запрос выделяет значения аргумента, отвечающие заданному значеншо зависимой переменной первой зависимости. Во вто- ром запросе определяются множества значений переменной НАИМЕНОВАНИЕ ПРЕД- ПРИЯТИЯ при каждом выделенном значении аргумента ФАМИЛИЯ ИМЯ ОТЧЕСТВО; результат достигается операцией проектирования выделенной части графика второй зависимости на плоскость ФАМИЛИЯ ИМЯ ОТЧЕСТВО, НАИМЕНОВАНИЕ ПРЕД- ПРИЯТИЯ. В связи c этой операцией производная зависимость многозначная.  2.3. Групповые запросы являются средством экономной записи группы подобных запросов. Групповой запрос разложим на группу частных за- просов , каэкцьпй из которых может вьшолняться независимо. Запросы, объединяемые в групповой запрос, во-первых, должны ха- рактеризоваться тем, что порождаемые иьш производные зависимости имеют одинаковьй тип и одинаковьй состав аргументов, и, во-вторых, должны иметь совпадающие условия запроса или/и совпадающие объек- ты запроса. _ 2.3.1. Сначала рассмотрим правила объединен-пая в случае совпадающих условий запроса, но разных объектов запроса. Следующий пример частично обсуждался в § 4 гл. 1. Три исходных запроса: Каков год рождеъшя Пантелеева Дмитрия Ильича? ГОД РОЖДЕНИЯ ПАНТЕЛЕЕВА = CONST = ДАТ-А РОЖДЕНИЯ. ГОД / ФАМИЛИЯ-ИМЯ ОТЧЕСТВО = ’naure(geee дмигрий ильич’; (2.7) Каково число рождения Пантелеева Дмитрия Ильича? ЧИСЛО РОЖДЕНИЯ ПАНТЕЛЕЕВА = CONST = ДАТА РОЖДЕНИЯ. ЧИСЛО / ФАМИЛИЯ ИМЯ ОТЧЕСТВО = ‘пангелеев дмитрийильич’. (2.8) Каков месяц роясдеъшя Пантелеева Дмитрия Ильича? МЕСЯЦ РОЖДЕНИЯ ПАНТЕЛЕЕВА = CONST = ДАТА РОЖДЕНИЯ ME- СЯЦ / ФАМИЛИЯ ИМЯ ОТЧЕСТВО = ’пангелеев дмщрий ильич’. (2.9) Каждая из трех формальных захшсей (2.7), (2.8)‚ (2.9) исчерпывающе отражает свой запрос и не располагает резервами для сокращения. Если требуется узнать, скажем, только год рождения, то ничего иного, как воспользоваться записью (2‚.6)‚ не предлагается. Другое дело, если ин- терес представляют одновременно и год, и число, и месяц рождения; тог- да на выбор могут быть предложены три способа выражбёттёя этих за- просов. Первьй способ —три последовательно идущих записи (2.7) , (2.8)‚ (2.9). Второй способ — групповой запрос: Какова дата рождеъшя Пантелеева Дмитрия Ильича ? ДАТА РОЖДЕНИЯ ПАНТЕЛЕЕВА =CONST = V (ДАТА РОЖДЕНИЯ .ГОД; ДАТА РОЖДЕЪШЯЛИСЛО; ДАТА РОЖЦЕНИЯМЕСЯЦЛ ФАМИЛИЯ ИМЯ ОТЧЕСТВО = ‘naurerzeee дмшрий wzbuu’. (2.10) Новая переменная ДАТА РОЖДЕНИЯ ПАНТЕЛЕЕВА — векторная; она имеет три компоненты: год, за ним число и затем месяц рождения Пан- телеева Дмитрия Ильича, Захшсь (2.10) штформатшоъшо эквивалентна трем затшсям (2.7), ‚(2.8), (2.9) и более экономна, нежели сумма этих трех‘ затшсей. Групповой запрос, объешаняюцшй частные запросы c раз- личающимися объектами запроса, имеет совпадающую c частными запроса- ми загшсь условия запроса и затшсь функциональной зависимости; он имеет новое наименование производной зависимой перемеъшой; объект  164 
запроса в нем есть правая часть формулы вектора с коишонентаиш — объектаьш частных запросов. ‘ Третий способ выражеъшя трех запросов -— групповой запрос с вектор- ной переменной в объекте запроса. Какова дата рождеъшя Пантелеева Дьштрия Ильича? ДАТА РОЖДЕНИЯ ПАНТЕЛЕЕВА = CONST = ДАТА РОЖДЕНИЯ / ФА- МИЛИЯ ИМЯ ОТЧЕСТВО = ’панталеев дмитрий u/zbuu’. (2.11‚) Этот вариант еще экономнее, нежели второй, но он предполагает, что либо в описании информационного объекта, либо рядом с запросом присутст- вует определеъше векторной переменной: ДАТА РОЖДЕНИЯ = V (ГОД, ЧИСЛО, МЕСЯЦ) (см. п. 5.2 из гл. 1). 2.3.2. В подряд идущих запросах должны совпадать формулы функ- циональной зависимости, объекты запроса и все условия запроса, кроме одного, которое должно иметь меняющееся от запроса к запросу значеъше переменной; тогда группа запросов может быть объединена в один груп-  ` повой запрос. Это второй случай образования группового запроса.  Рассмотрим подходящий пример. Три исходных запроса: Когда поступил на ЗТМ Иванов Иван Иванович? ГОД ПОСТУПЛЕНИЯ ИВАНОВА = CONST = ГОД ПОСТУПЛЕНИЯ/НА- ИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = ’зтм’, ФАМИЛИЯ ИМЯ ОТЧЕСТВО = = ’иванов иван иванович’; Когда поступил на ЗТМ Пантелеев Дмитрий Ильич? ГОД ПОСТУПЛЕНИЯ ПАНТЕЛЕЕВА = CONST = ГОД ПОСТУПЛЕ- НИЯ /HA1/_lMEHOBAHI/IE ПРЕДПРИЯТИЯ = ’зтм’, ФАМИЛИЯ ИМЯ ОТ- ЧЕСТВО = ’пантелеев дмитрий ильич’; Когда поступил на ЗТМ Сидоров Петр Иванович? ГОД ПОСТУПЛЕНИЯ СИДОРОВА = CONST = ГОД ПОСТУПЛЕНИЯ/НА- ИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = ’зтм ’‚ ФАМИЛИЯ ИМЯ ОТЧЕСТ- ВО = ’сидоров петр иванович’. _ Эти три частных запроса объединяются в следующий групповой: Когда поступали на ЗТМ мужтшны? ГОД ПОСТУПЛЕНИЯ МУЖЧИНЫ =F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) j= = ГОД ПОСТУПЛЕНИЯ / НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = ’зтм ’, ФАМИЛИЯ I/IMH ОТЧЕСТВО = ’иванов иван иванович, пинта/леев дмит- рий ильич‚ сидоров петр иванович’.  Групповые свойства нового запроса проявляются в последнем условии °  запроса. Там загшсано, что аргумент ФАМИЛИЯ ИМЯ ОТЧЕСТВО после- довательно приъшмает три значения, которые перетшслены через запятую и заключены в апострофы. От каждого из трех частных запросов новый запрос отличается наименованием перемеъшой производной зависимости и, кроме того, еще типом функциональной зависимости. Если результаты частных запросов суть элементарные значения, то при групповом запросе Целесообразно с каждым частным ответом связать порождающее его зна- чение индентифитшрующей переменной. Впрочем, можно обойтись без такой привязки и получить ответ на групповой запрос- в виде совокуп- ности. В таком случае последняя формула заменится на следующую: ГОДЫ ПОСТУПЛЕНИЙ МУЖЧИН = ARRAY = ГОД ПОСТУПЛЕНИЯ / НА- ИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = ’зтм’, ФАМИЛИЯ ИМЯ ОТЧЕСТВО = = ’иванов иван иваношдпантелеев дмитрий ильич, сидоров петр ивановичЁ  165 
До сих пор рассматривался первьпй способ представившая обсуждаемого группового запроса. Второй способ таков. Следующей формулой введем так называемую внешнюю совокупность: МУЖЧИНЫ = ARRAY = ’ueanae иван ивано вич, пантелеев дмшрий ильич, сидоров петр иванович’ = W (МУЖЧИНА). Теперь вместо множественного значения в условиях запроса можно за- гшсать наименование перемеъшой- совокупности, принимающей это мно- жествештое значеъше. ГОД ПОСТУПЛЕНИЯ МУЖЧИНЫ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) = = ГОД ПОСТУПЛЕНИЯ / НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ = ’згм’‚ ФАМИЛИЯ ИМЯ ОТЧЕСТВО = МУЖЧИНЫ. Отметим, что подобная запись уже фигурировала в запросе‘ (2.5); правда, там совокупность бьша не внешней, как здесь, а результатом запроса. 2.3.3. Теперь, с учетом групповых запросов, формула производной за- висимости имеет следующий общий вид:  "соызт ARRAY F($:, д Ёж, э ---‚ «Ёк, ‚д; ‚ «Ёк, ‚ I-45, т) п = G (Ед, ‚ Es, ‚ а, .ui."$k, ‚ ué. т) = [(513 э «Ёг, ‚ -›-› Sic, ‚ I-1'1, Ёк, ‚ I-42' ‚ т) L-7 (Ex, ‚Ед, ,---.21., .114. Ex, ‚ИЗ, ---) _  Sgglz), и. 3` , Ёк, 93 ’ALL’  #2 , ООО ’  а ( (2) э ski): £161 9 '°° ’ALL’  I11 -  = УСЁ}, ;Ej2 З ---)/Etc, д‘  д, =ARRAY=’p$1),p§2), ..."== W(p{). (2.12)  B общем случае объект запроса может содержать не одну, а несколько переменных 5,-1 , {д ,...; к тому же среди них не исключены векторные переменные. Как следствие этого переменная производной зависимос- ти п может быть векторной. По сравнеъшю c (2.2) среди условий запроса (2.12) могут быть групповые условия: на месте значеъшя перемештой записана совокупность либо в явном виде, либо в виде наименования переменной, единственное значение которой есть совокупность. В случае, если совокупность внешняя, формула запроса должна быть дополнена формулой внецшей совокупности, что и сделано в (2.12) по отношению к первой совокупности 1.41. Группове условие запроса может сопровождаться введеъшем в состав аргументов либо переменной (Ед: ‚ ékz ,...), относительно которой saun- сано групповое условие, либо перемеъшой (;.¢'1, M2,...) присоединенной к переменной-совокупности, которая фигурирует в правой части группо- вого условия. Новьпй аргумент является средством идентификации значе- ний результирующей переменной, порождаемых различными значениями из группового условия. Если такой аргумент не вводится, то каждое зна-  чение результирующей переменной — множественное с числом элементов,  равным тшслу значеъшй в групповом условша.  166 
В УСЛОВИИ запроса МОЖЕТ бЫТЬ не ОДНО групповое УСЛОВИЭ, а НВСКОПЬКО,  как это показано в (2.12) . Если при этом не вводятся дополъштельные ‘  аргументы, то число элементов в каждом множествеъшом значешш ре- зудьтирующей переменной равняется произведению чисел значеъшй из  групповых условий. формула производной зависимости (2.12) является общей для того случая, когда выступаюцше в ней переменные — исходные, т.е. фигури- руют в исходных формулах функциональных зависимостеи или форму- пах пиножественности или в формулах внехцних совокупностеи.  § 3. Операции над информационными зависимостями  К числу таких операций относятся теоретико-множественные и алге- браические. Первые действуют над совокупностяыш или над множест- венными значениями: многозначных информационных зависимостей;  объект действия вторых зависит от характера операций. 3.1. Примеры совокупности. Они потребуются, чтобы иллюстрировать теоретико- множественные и некоторые алгебраические операции. Пример нечисловой совокупности:  СПИСОК ФИО ='иванов иван иванович, иванов иван иванович, пантелеев дмитрий ильич, пегрова надежда петровна, семенова аина дмитриевна, сидоров петр ива- нович’. (3-1)  Отметим, что.в составе совокупности (3.1) есть два элемента иванов иван ивано- вич. Совокупность (3.1) получается проектированием на осъ аргумента графика mo- бой из двух неуникальных зависимостей, введенных в п. 3.5 гл. 1. Пример числовой совокупности взят из раздела 2.1.2 предьщущего параграфа:  годы РОЖДЕНИИ =°1927, 1959. 1934, 1950, 1914’; (3.2)  эта совокупность есть множество. Переменная туша совокупность принадлежит к числу множественных и для до- ступа к элементам ее значения должна быть формулой множественности определена присоединенная к ней переменная:  СПИСОК ФИО = ARRAY: СПИСОК ФИО = W (ФИО); ФАМИЛИЯ ИМЯ ОТЧЕСТВО = ”ФИО”; ГОДЫ РОЖДЕНИИ = ARRAY; ГОДЫ рождвний = w (год гождвния). (3.3) Формулы (3 .3) относятся к описанию рассматриваемых переменных типа совокуп- ность: первая и третья формулы объявляют переменные СПИСОК ФИО и ГОДЫ РОЖ- ДЕНИЙ ‘совокупностями; вторая и пятая суть формулы множественности — они вводят присоединенные переменные; третья формула объясняет, что ФИО есть ко- роткое обозначение длинного наименования ФАМИЛИЯ ИМЯ ОТЧЕСТВО. Вообще, независимо от того, является ли совокупность и исходной переменной информационного объекта или она есть результат операций -над исходными зависи- мостями, относительно нее либо в описании, либо рядом с запросами должны быть две формулы: формула типа функциональной зависимости и формула множественнос- T": °B5I3BIBaI0II1a5I ee c присоединенной к ней переменной д’: и = ARRAY = W (n'). (3.4) B (3-4-) две формулы сблокированы в цепочки по правилам п. 6.6 гл. 1.  3.2. Унарные теоретико-множественные операции имеют дело c одной совокупностью.  167 
Пусть исходная совокупность задается парой формул (3. 4). Унарные Ё  операции Над ней записываются следующим образом:  "ORD . w= RED (д); w=ARRAY=W (co'); :MID (ж) МАХ со = MIN (д); со = CONST. . _NUM  K числу унарных отнесены: операция упорядочения (ORD), операция сокращет-шя повторяющихся элементов (RED), операция нахождеъшя сред- них элементов (MID), максимального (МАХ) и минимального (MIN) элементов, а также операция подсчета числа элементов (NUM). Шесть формул унарных операций синтаксически подобны: в левой части записы- вается наименоваъше переменной (со), являющейся результатом операции над исходной совокупностью; в правой части — символ операции (ORD, RED, MID, MAX, MIN, NUM) и наименование исходной совокупности (д), взятое в крутые скобки. В (3. 5) рядом с формулой операшш фигурирует формула функцио- нальной зависимости и для результирующих переменных типа множест- венные — еще формула множественности, вводящая присоединенную пе- ременную. Операции (3. 5) могут применяться не только к совокупностям, но и к многозначным зависимостям. В результате действий над последними получаются либо снова Многозначные зависимости, либо однозначные за- висимости; состав аргументов при этом сохраняется. В следующих пяти разделах сообщаются подробности об операциях (3. 5) и приводятся примеры. ' 3.2.1. Упорядочить совокупность (ORD) — это значит выстроить ее элементы в порядке Boapacrannx, СОЛИ ОНИ числа, ИЛИ ПО ancpamrry, ВОЛИ ОНИ слова, ИЛИ В лекси-  кографическом порядке, если элементы состоят из произвольных символов. Пример: ГОДЫ РОЖДЕНИИ ПО ПОРЯДКУ = ARRAY = ОКБ (ГОДЫРОЖДЕНИЙ) =W(l“OI1  РОЖДЕНИЯ ПО ПОРЯДКУ) (3. 6)  Результирующая совокупность: ’1914‚ 1927, 1934, 1950, 1959’. После применения операции ORD um зависимости не меняется: если исходный объект был совокупностью, то совокупностью и останется. Этот факт отражен в блоке формул (3. б); там же формулой множественности введена присоединенная перемен- ная к новой совокупности. 3.2.2. Операция сокращения повторяющихся элементов (RED) редуцирует сово- купность к множеству. Пример: .  ВИДЫ ФИО =ARRAY = RED (СПИСОК ФИО) = W (ВИД ФИО) (3. 7)  Множество ВИДЫ ФИО имеет такие элементы: ‘иванов иван иванович, пантеле- ев «dmuzpuii ильич; петрова надежда nezpoeua. семенова дина дмитриевна, cubo- poe петр иванович’. Операция RED не меняет порядка следования элементов; она сохраняет тип за- висимости; новая множественная переменная — результат операции требует введения присоединенной к ней переменной (см. (3. 7.)) 3.2.3. Операция нахождения среднего элемента (MID), адресованная числовой со- вокупности, выдает элемент, максимально близкий к среднему арифметическому значению всех чисел совокупности. Таких элементов может быть два: один меньше  168 
среднего арифметического, ДРУГОЙ 5°дШ1° CPO. И Разность МеЖдХ срддним арифме- тическим и первым равняется разности МеЖдУ Вторым и средним арифметиче- ским.  Пример Операции MID‘ СРЕДНИЕ ГОДЫ РОЖДЕНИИ = ARRAY = MID (ГОДЫ РОЖДЕНИИ) =W (СРЕД- ний год РОЖДЕНИЯ). (з. 8) Ответ:'19З4’.  Операция MID, Примененная к нечисловой совокупности, дает серединный эле- мент, число элементов в совокупности нечетное, или два серединных элемента, если это число четное. Причем середина совокупности рассчитывается по исходному ее состоянию без упорядочеъшя в алфавитном или лексикографическом порядке. При- м : ерСРЕДНИЕ ФИО = ARRAY = MID (СПИСОК ФИО) = W (СРЕДНЯЯ ФИО).(3. 9) O'rBe'r:’naureaeee дмитий цльич, nezpoea надежда петровна’. Операция MID только иногда имеет ответом элементарное значение. Гарантирован- ный тип результата — снова совокупность, если исходным объектом является со- вокупность, или многозначная зависимость, если она — операнд операции MID. Следо- вательно, необходима присоединенная переменная к результирующей множественной переменной, что отражено в записях (З. 8), (З. 9) . 3.2.4. Максимальный и минимальный элементы числовой совокупности опреде- ляются операциями МАХ и MIN. Примеры:  МАКС ГОД РОЖДЕНИЯ = СОМЗТ = MAX (ГОДЫ РОЖДЕНИИ); МИН ГОП РОЖДЕНИЯ = СОМЗТ = MIN (ГОДЫ РОЖДЕНИИ). Результаты : ’1 959 ’ и ’1 91 4’. Операции МАХ и MIN, примененные к нечисловым совокупностям, дают последний по списку и первый по списку элементы совокупностей. Примеры: ПОСЛЕДНЯЯ ФИО = СОМЗТ = MAX (СПИСОК ФИО); ПЕРВАЯ ФИО = СОМЗТ = MIN (СПИСОК ФИО) . Результаты: ‘сидоров пегр иванович’ и ‘иванов иван иванович’. Операции МАХ и MIN, перед тем как определить послештий или первый элементы нечисловой сово- купности, не упорядочивают совокупность. Результат каждой из операций — элементарное значение или однозначная функция,  если исходный объект есть совокупность или многозначная функция соответ- ственно.  3.2.5. Чтобы найти число элементов совокупности, необходимо применить к ней операцию МИМ. Пример: ЧИСЛО СОТРУДНИКОВ = СОМЗТ = МИМ (СПИСОК ФИО) . Ответ: ’6’. Еще одна иллюстрация относится не к совокупности, а к многозначной зависимости как к исходному объекту. В примере (2. 6) предыдущего параграфа найдена много- значная функция СПИСОК ПРЕДПРИЯТИЙ = G (ФАМИЛИЯ ИМЯ О’ГЧЕСТВО),опре- деляющая по ФАМИЛИИ ИМЕНИ ОТЧЕСТВУ перечень предприятий, на ко- торые поступал носитель этой ФАМИЛИИ ИМЕНИ ОТЧЕСТВА. Напомним,  что функция задана только для участников анкеты, имеющих высшее обра- зование. `  Операция МИМ, примененная к данной функции, дает число предприятий в зависи- мости от ФАМИЛИИ ИМЕНИ ОТЧЕСТВА:  ЧИСЛО ПРЕДПРИЯТИЙ = F (ФАМИЛИЯ ИМЯ ОТЧЕСТВО) = МИМ (СПИСОК ПРЕДПРИЯТИЙ).  Ответ: ’пе1рова надежда петровна — 1, семенова аниа дмитиевна — 1, садо- ров петр иванович — 3’. . Операция МИМ, примененная к совокупности, дает в результате одно элементарное значение, (тшт СОМЗТ); операция МИМ, примененная к многозначной функции, дает в  результате однозначную ФУНКЦИЮ (тшт F или тип!) с тем же составом аргументов, что и у исходной функции.  3.3. Бинарные теоретико-множественные-оператши: объединение (сим- вол V ), вычисление дополнения (символ \) и пересечение (символ А).  169 
Бинарные операции имеют следующий формат записи: “и V A ‘ и V ’o’ со = ARRAY = u.\ A и \ ’о’ „и ^ H  Исходными для этих операций являются либо две совокупности (д, А), либо одна совокупность (д) и одно элементарное значение (о). Каждая строка (3. 10) — это блок из трех формул: формулы функ- циональной зависимости, формулы бинарной теоретико-множественной операции и формулы множественности. Далее обсуждаются формулы опе- рацшй. В первой строке (3. 10) записано, что результирующая совокупностьсо получается добавлением к совокупности-д всех без исключения элементов совокупности А. Здесь операция объединения определена именно так, и это отличает ее от объединения множеств. Напомним, что при объединении дв.ух множеств элемент второго множества добавляется к элементам первого, если только он не повторяет ни одного элемента первого множества. Вто- рая строка показывает, как следует зашасывать обгъешанеъше совокупности c элементом о. Третья и четвертая строки касаются вычисления дополнеъшя. Эта опера- ция. выглядит следующим образом: из совокупности иисключаются те элементы, которые фигурируют в совокупности А, — так в третьей строке, или, исключается элемент о- так в четвертой строке. В совокупности обязательно должны быть все те элементы, которые составляют сово- купность й (в варианте третьей строки), или должен быть элемент о (в ва- рианте четвертой строки) — в противном случае операция не работает. В пятой строке записан общий вид операшш пересечения двух совокуп- ностей. Результирующая совокупность со составляется из общих элементов совокупностей и и А. Если в совокупности и некий элемент представлен кд-кратно и в совокутшости A он же представлен кд-кратно, то в резуль: тирующей совокупности ш он будет фигурировать Kw раз, где Kw = = min (Кд, кд) . Первый пример. Дополнить совокупность ГОДЫ РОЖДЕНИЙ новым элементом 196Ё, присвоить новой совокупности наименование ДОПОЛНЕННЫЕ ГОДЫ РОЖДЕ- НИ : ., дополнвнныв годы Рождвний = ARRAY = годы РОЖДЕНИИ v ’1962' .=w (ДОЦОЛНЕННЫЙ год РОЖДЕНИЯ). Второй пример. Найти уникальные и повторяющиеся виды фамилий, имен и от- честв в СПИСКЕ ФИО. Сначала определим дополнение множества ВИДЫ ФИО (см. (3.7)) до совокупности СПИСОК ФИО: ПОВТОРЯЮЩИЕСЯ ФИО =СПИСОК ФИО \ ВИДЫ ФИО. (3.11)' B составе последней совокупности присутствуют только повторяющиеся виды 3116' ментов, причем их кратность на единицу меньше, чем в исходной совокупности СПИ- СОК ФИО. Результат операции (3.11): иванов иван иванович. В записи операции (3.11) и в последующих промежуточных записях для краткости не представлены формулы функциональной зависимости и формулы множественности. Второй шаг — редуцирование полученной совокупности (3.11) к множеству: ВИДЫ ПОВТОРЯЮЩИХСЯ ФИО = RED (ПОВТОРЯЮЩИЕСЯ ФИО). 170  =W(oJ'). (3. 10)  (3.12)  - '. ..„. .‚‚ ‹ И - '- д „и 1 .. .. . ‚ф .‚ _‚. .;„..н_._..___‚ 2..,в._„...„..ъ_____ь„.. „._._.__„____ _ I. "' __-д__‘_д___‚_ М‘ __ _ ‹_ ‚ __ 
В результате этой операции получается ответ на вопрос о повторяющихся видах ФАМИЛИЙ ИМЕН ОТЧЕСТВ. Для рассматриваемого примера (3.1) состав множе- ства ВИДЫ, ПОВТОРЯЮЩИХСЯ ФИО и состав совокупности ПОВТОРЯЮЩЙЕСЯ ФИО совпадают: иванов иван иванович. Чтобы получить ответ на вопрос об уникальных фамилиях, именах и отчествах, следует из ВИДОВ ФИО исключить ВИДЫ ПОВТОРЯЮЩИХСЯ ФИО, что дости- гается применением операции вычисления дополнения: ВИДЫ УНИКАЛЬНЫХ ФИО = ВИДЫ ФИО\ ВИДЫ ПОВТОРЯЮЩИХСЯ ФИО. (3.13) К ответу (3.12) ведет Цепочка из трех формул: (3.7), (3.11) , (3.12) , первая из ко- торых выражает операцию над исходной переменной, вторая — над исходной перемен- ной и новой переменной и третья — над второй новой переменной. Такие зацепляю- щиеся одно за другое выражения могут сводиться в одно выражение посредством исключения общих переменных — так, как это обычно делается в алгебре. В слож- ном выражении порядок выполнения операций диктуется скобками; здесь для этой цели используются круглые скобки. Скобочные выражения таковы:  ВИДЫ ПОВТОРЯЮЩИХСЯ ФИО = ARRAY = RED (СПИСОК ФИО\ RED (СПИСОК ФИО)) =,W (ВИД ПОВТОРЯЮЩИХСЯ ФИО); ВИДЫ УНИКАЛЬНЫХ ФИО = RED (СПИСОК ФИО) \ RED (СПИСОК ФИО RED (СПИСОК ФИО)). (3.14)  В (3.14) записаны в скобочном виде ответы на оба вопроса рассматриваемого примера. 3.4.Алгебраические операции. К ним принадлежат унарные алгебраиче- ские операшш, бгшарные алгебраические операции, а также сумь/шрование и вычисление произведения элементов совокупности. Алгебраические операции работают над совокугшостями чисел, а также над множественны- ми значениями многозначных функшай. 3.4.1. К унарным относятся любые алгебраические операции, имеющие дело содной переменной; например, sin pt, cos д, In u и т.д. Переменная может быть типа CONST, типа ARRAY либо может за- висеть по типу F или G, или 1, или J от какого-то набора аргументов. Переменная — результат унарной алгебраической операшш — принаштехшт к тому же самому типу функциональной зависимости, что и исходная переменная. - 3.4.2. Бинарные алгебраические операции действуют с двумя перемен- ными или с одной переменной и одной константой. Сюда относятся опера- Ции слсджеъшя, вытпатания, умножения, деления и возведения в степень: и + A ~ x  u—7\  w= pt: A д ' (3.15)  Lu aux: Ъ’!  Когда любая операция из (3.15) действует с переменной- и и константой о, то результирующая переменная со имеет тот же тип функциональной за-  171  и + ’о’ ‘\ 
висимости, что и д, и зависит от того же состава аргументов, что nu. Операшш с двумя переменныиш определены в следующих трех случаях. 1) Одна переменная зависит произвольным образом (F, G, 1, J, CONST, ARRAY) от произвольного набора аргументов, вторая‘ принадлежит к ти- пу CONST; этой случай эквивалентен операциям с переменной и и кон- стантой о. 2) Одна переменная зависит произвольным образом от произвольного набора аргументов; вторая прштадзтежит к тушу ARRAY. Результат ш есть многозначшая зависимость (G °или J или ARRAY) от того же набора аргументов, что и у первой переменной; результирующая зависимость уъшкальная, если первая зависимость уникальная, и неуникальная, если она неуникальная. Каждое значение первой переменной, если она элемен- тарная скалярная, или каждый элемент значеъшя, если она множествен- ная, действует c каждым элементом ARRAY, И получается множественное значение со при том же наборе значений аргументов, какое было взято при вытшсленгш значения первой переменной. 3) Обе переменные зависят от одного и того же набора аргументов; обе зависимости должны быть определены на одной и той же совокупнос- ти значений аргументов. Результат со есть однозначная зависимость от общего набора аргументов, если обе зависимости однозначные, или много- значная зависимость, если хотя бы одна зависимость многозначная; ‘резуль- тирующая зависимость уникальная, когда обе исходные зависимости уникальные, или неуникальные, когда они неуникальные. Значение со получается по правилу: при одном и том же наборе значений аргументов значение одной исходной переменной действует со значением другой ис- ходной переменной, когда исходные зависимости однозначные, или зна- чение действует c каждым элементом значения, когда одна зависимость однозначная, а другая многозначная, или, наконец, каждьпй элемент зна- чения одной исходной переменной действует с каждым элементом значе- ния другой переменной, когда обе исходные зависимости Многозначные. Пример: t - ВОЗРАСТЫ = ARRAY = '1986’ — ‘ГОДЫ РОЖЦЕНИЙ = W (ВОЗРАСТ).  3.4.3. Сумма и произведение всех элементов совокутшости определяют- ся операцияшт SUM и PROD: -  SUM w = [ PROD 1 т)’  Пример: СУММА ГОДОВ РОЖДЕНИЯ = CONST = SUM (ГОДЫ РОЖДЕНИЙ). ‘  Эта операция действует над оовокуштостями (ARRAY) или над мно- гозначными зависимостями (G или J ); результат — константы (CONST) или однозначные зависимости (F или! ) соответственно. 3.5. Информационные выражения подобны алгебраическим: левую часть равенства занимает наименование переменной-результата или ее обозначение, в правой части присутствует одно или несколько наименова- ний (обозначений) переменных и знаки операцшй. К информационным операциям относятся все алгебраические (сложе- ние, вычитатше, умножение, деление, возведение в степень, вычислетше  172  -J:-‘s. flu  a чёт 
эпементарньтх функций пища sin, cos, In и т.д.) и все теоретгжо-множе- ственные (объедштение; вычисление дополнения, пересечение, упорядо- чение, сокращение повторяющихся элементов, нахождение средних, миъш- мального и максимального элементов, подсчет числа элементов). Информационные выражения имеют следующий обцшй вид:  w=f(u.....-""7-);, ' (3-16) ш — результирующая переменная, и -- одна или несколько исходных перемеъшых, Е — символ операции (+, -—‚ . . . , ORD, RED, . . . , sin,  cos, . . . , SUM, . . .).Формула (3.16) подобна записи функциональной зави- симости за одним исключением: в ней фигурирует символ производимой операшиш. Информационные выражения c ommm символом операции в правой части назовем простыми„а c HCCKOIIBKPIMPI символами операцшй — сложны- ми. Сложные выражения могут быть разложены на цепочку простых введе- нием промежуточных переменных и определением для них соответствую- щих информашюнных выраженшй. Наоборот: два гшформационных выра- жения, в правой части одного из которых фигурирует переменная, опреде- ляемая другим выражением, могут быть преобразованы в одно исклю- чением общей переменной. Подобно алгебраическим правилам в резуль- тирующем информационном выраженша используются скобки для обоз- начения порядка выполнения операций. Пример такого исключения был дан выше. В настоящем параграфе обсуждались виды штформационных выражений.  § 4. Язык запросов  Предлагаемый язык базируется на понятиях штформационной пере- меъшой и гшформашаоъшой функции. Он не требует указаншй о физической организации базы данных и поэтому претендует на предельную лакоьшч- ность. Надо сказать, что тенденция к языкам запросов, свободным от указаний об устройстве базы данных, прослеживается в литературе уже давно, и при- мером тому может служить хотя бы близкий предлагаемому язык SEQUEL. Ha языках обсуждаемого типа легко писать запросы, но для этих языков трудно разрабатывать трансляторы, ибо трансляторы должны извлекать из огшсаъпш базы данных недостающие сведения для вычисле- ния поисковой траекторшдт. 4.1.‚ Запрос‘ общей структуры. Запись (2.12) отражает такие запросы, в которых присутствуют переменные из исходных функшаональных зави- симостей, из исходных формул множественности, а также переменные типа ”внешняя совокупность” и присоединенные к ним переменные. Рас- цшрение структуры (2.12) до общей связано с информационными выра- жениями. Объект запроса и условия запроса могут содержать исходные перемен- ные, но также могут иметь дело c производными переменными — резуль- татами операций над исходными. В этом случае формулы тшта (3.16)‚ выражающие производные переменные через исходные, суть составные части запросов, и они должны присутствовать либо рядом со своими запи-  173 
сями типа (2.12), либо быть зафиксированными в описании информацион- ного объекта. Введение производных переменных в объект запроса и ус- ловия запроса" (2.12) и дополнение (2.12) необходимыми информа- ционньши выражеъшями паша (зле) — ’первое расншреъше структуры запроса (2.12). Производные переменные в запросе могут быть заменены своими ин- формационными выражениями. Тогда в структуре запроса, помимо ис- ходных переменных, будут фигурировать еще сшивольт теоретико-мно- жественных _и алгебраических операций. Включение информационных выражений в запись (2.12) — второе расцшрение структуры (2.12). Запрос общей структуры представлен в (4.1). Он образован введе- нием в структуру (2.12) производных переменных и ъшформационных выраженитй, а также дополнением формулами, выражающими производ- ные переменные через исходные, и, наконец формулами внешних сово- кутшостей:  ” CONST W ARRAY 17 = (шдд,°шдз,.„.)= G I - J - -sou) „т. ‚- 1 ’ 1 ’ ° ° 7-‘fa (C¢J]'1,€Oj2,...,Eo)/f1((;Ok1,0Ok2,...,E1) Ы ’ALL, , д: ’aS‘), 0(3),. . . ’ f2(wk19wk3,9°°°:E2)m ’AI-‘L, s--- I-42  I11 = ARRAY="n<,‘> ‚М? ‚. . . ’= won); pg =.ARRAY =’p(21-), не), . . .5 = W015); . . .  ‘"1’; =.Ё°‚(Ё1›Ё2‚---›д;› u£9°"Ei1);°-9; (L’].1=-I?‘ (£19£29- -'9E]1);" "; wk: =fk1(£1:$2s ° ° -  Здесь приняты обозначения: . E1 , Е; ‚ . . .—= исходные переменные информационного объекта; 1.41, pg, . . . , pt}, :13, . . . — переменные типа внецшшй массив и присое- дгшенные к ним переменные; сад‘, сад, . . . , сад, сад, , . . , wk‘ , wk‘, . . . —'промежуточные пере- менные, определяемые через исходные переменные информационными выражениями;  э ЕЕ, °  at ~—- знак отношения, St =  /\/\VV‘H~ " ll  174  ‘E93435’-#’rr“*‘*  W» x-sd»2¢..n“r '3§£nv$§w4~as.§-z<.~ я ы _._ 
30,13 1, E2, E31,.» . , Eh, .‚ . . ‚ Ezkl, . . . --. знаки алгебраических или теоретико-множественных операции, или символ вектора. _ результирующая переменная п есть функция аргументы,‘ ‚ сад: ‚ . . .`, выражаемых. через, исходные переменные‘ Е, ‚ £2 , . . . И иногда через пере- менные щ ‚ 1.42 ‚р. . . . ‚ присоединенные к переменным-совокупностям, кото- рые фигурируют в групповых условиях запроса. Переменные ш,‘ , co,-2 , „д,  скорее иногда, совпадают c какими-то из переменных £1, £2, . . . , pl, p’, , . . . , но также могут быть результатами теоретико-множественных или алгебраических операций над £1, £2, . . . ,u,,u2, . . .  Объект запроса может быть скаляром или вектором; он выражается через переменные со,‘ , со,‘ ‚ . . .; эти последние связаны с исходными пере- менными Ед, £2, . . . посредством штформационных выражений; символы E0, Ед ‚ Е, д. . . обозначают алгебраические или теореттщо-множественные операции либо являются символами вектора. Условия запроса могут налагаться непосредственно на исходные перемен- ные E1, Ед. . . ‚ могут налагаться на выражения от них или на выражения от промежуточных переменных шк‘ ‚ ~ wk: , . . . , которые определяются через исходные перемеъшые Е, ‚ £2 , . . . ;этот последний’: вариант как самьй общий представлен в табл. 4.1. Промежуточные переменные wk‘ , wk: , ._ . .  Таблица 4.1 . Алгебраические y_-reggermco-Mnoxcecrnernme операции  N° Название формулы Вид формулы Примеры  виды ФИО = ARRAY =RED  1. Унарные теоретико- ORD = множественные w=[‘RED (д) = W (w")3 ФИО) “(ВИД °“°Pa‘1“" MID MAKC гоц РОЖД = МАХ = _CONST = MAX w =[ MIN J (д) (годы вождении) NUM 2. Бинарные теорети- ' д V A ‚._ ПОВТОРЯЮЦШЕСЯ ФИО = комножественные д V ’0’ ' ARRAY = СПИСОК ФИ0\ операции ш = u\ A = W (co) ВИДЫ ФИО=И’(ПОВТО- I n\ ’o’ гяющАяся ФИО) д А A 3. Унарные алгеб- sin раические опе- co§ рации ш = In (д) 4. Бинарные ашчеб- д + A " n : A ВОЗРАСТЫ = ARRAY = раические опе- д + °о’ и 2 ‘О’ = 19359- Рации ” ' 3‘. °°° ‘ "A годы РождЕнии = ш = и - о ' co = д =I= * = ‚а, _ д * д и ‚о, W(BO3PAC'D д * K ’o’ as alt д . д * 909‘ 5. Суммирование н SUM W C3g(4)BI‘EI1§TBO3PACTOB = = (и) Ё = . вычисление произ— со PROD - и ’ = SUM (BUBPACTBD  ЕВДОКИЯ  «Ъ 
связаны с исходными переменными теоретгжо-множественньпии или ал- гебраическими операциями. L Алгебраические и теоретгжо-множественныеоперацшт сведены в табл. 4.1 Там показаны форматы операций и даны примеры. Они не нуждаются в комментариях; так как без изменешитй повторяют формулы из предыду- щего параграфа. Одно замечание. Во всех формулах операцшй отсутствуют указания о типах результирующих зависимостей. Они же опущены и в об- щих формулах § 3. Вместо формальных записей в тексте § 3 даются сло- весные пояснения о соответствиях между типами исходных и результирую-. плих функциональных зависимостей. Эти пояснеъшя следует отнести и ‘к  (4.1). 4.2. Оштаксис запроса — это правила соединения в запросе отдельных формул. Запрос составляют формула производной зависимости и, при необходшиосги, ин- формационные выражения для промежуточных переменных. И первая и вторые об- суждены в предыдущем пункте. 1°. Признак начала запроса — слово QUEST; за ним после знака равенства следу- ют наименование информационного объекта, к которому обращается запрос, и точка с запятой. 2°. Отдельные формулы в запросе разделяются точкой с запятой. 3°. Подобно формулам описания отдельные формулы запроса могут соединяться в блоки по правилам 3° и 4° из п. 6.6. гл. 1. 4°. В формулах запроса разрешается пользоваться теми наименованиями и их обозначениями, которые зафиксированы в описании информационного объекта или введены в запрос для промежуточных переменных. 5°. Признак конца запроса — слово FIN, которому предшествует точка с запятой, замыкающая последнюю формулу запроса. 4.3. Примеры запросов. В гл. 2 даются содержательные и формализованные опи- сания трех информационных объектов ”валовые выпуски”, ‘административно-терри- ториальное деление страны и деление страны на экономические районы”, ”морфлот”. В описаниях этих объектов приведены типовые запросы. Настоящий пункт посвящен записи указанных запросов на предлагаемом языке запросов. 4.3.1. Запросы к ”ва‚повым вьшускам” имеют дело с одной функциональной зави- симостью: ч ВАЛОВЫЙ выпуск =F (МИН, PECII, овл, пр, мвс, вид). Принятые в этой записи сокращения расшифровываются на рис. 2.2.1 гл. 2. 1°.’ Каково плановое задание Пинского завода искусственных кож в марте? QUEST = ВАЛОВЫЕ ВЫПУСКИ; МАРТОВСКИЙ ПЛАН ПЗИК = CONST = ВАЛОВЫЙ ВЬШУСК] МИН ='.Muu.rzea- ‚пром ’‚ РЕСП = ’бсср’‚ ОБЛ = ’пинск’‚ ПР = ’завод искусственных кож’, МЕС = = ’Mapr’, ВИД = ’план'; FIN. Это -- прямой запрос. Аргумент РЕСП в зависимости грутширующий и, вообще гово- ря, может быть опущен, когда задается значение грутшируемого аргумента ОБЛ. 2°. Какие предприятия Минпищепрома БССР не выполнили планового задания в мае? QUEST = ВАЛОВЫЕ ВЬШУСКИ; ПЛАНОВЫЙ BbIl'IYCI("=F (ПР, ОБЛ) = ВАЛОВЫЙ ВЬШУСК / МИН =’миипище- пром’, РЕСП= ’бсср’‚ МЕС = ’Mai1’, ВИД = "n.aau';_ „ФАКТИЧЕСКИЙ ВЬШУСК = = F (ПР, ОБЛ) = ВАЛОВЫЙ ВЬШУСК / МИН _-- ’Muunu:g_e_npoM', РЕСП = ’6ccp’, MEC = ‘ma’, ВИД = ’факт’; отстАющив пгпштгиятия = G(OBJI) = -IIP/ [ПЛАНОВЫЙ ВЬШУСК > ФАКТИЧЕСКИЙ ВЬШУСК; FIN Ответ на этот запрос находиться в три приема: первые два запроса определяют две производные зависимости: плановые и фактические ВАЛОВЫЕ ВЬШУСКИ Мин- пшцепрома БССР в мае; обе зависимости имеют аргументами НАИМЕНОВАНИЕ ПРЕДПРИЯТИЯ и ОБЛАСТЬ ИЛИ ГОРОД; третьим запросом находятся искомые предприятия как функция ОБЛАСТИ ИЛИ ГОРОДА; в третьем запросе опреде-  176  «Ъ  т % 
ляются такие значения общего аргумента двух зависимостей, которые удовлет- воряют заданному отношению зависимых переменных. 3°. Каково отношение факта к плану в Минмясомоппроме во 11 квартале? QUEST = ВАЛОВЫЕ ВЬШУСКИ; ПЛАНОВЫЕ ВЬШУСКИ ВТОРОГО КВАРТАЛА = ARRAY = ВАЛОВЫЙ ВЫ- ПУСК] МИН=Эиинмясомолпром1 МЕС: ’anpe.m., май, июнь’, ВИД ._= ’план’; СУММА ПЛАНОВ = CONST = SUM (ПЛАНОВЫЕ ВЬШУСКИ ВТОРОГО КВАР- ТАЛА); ФАКТИЧЕСКИЕ ВЬШУСКИ ВТОРОГО КВАРТАЛА = ARRAY = ВАЛОВЫЙ ВЫ- ПУСК ] МИН = ’ми_нмяоомолпром’‚ МЕС = ’апрель‚ май,'июиь’‚ ВИД = ’факг’; СУММА ФАКТОВ = CONST = SUM (ФАКТИЧЕСКИЕ ВЬШУСКИ ВТОРОГО КВАРТАЛА); ' ПРОЦЕНТ ВЬШОЛНЕНИЯ = CONST = (СУММА ФАКТОВ: СУММА ПЛАНОВ) =I=’100’; FIN. 4.3.2. Информационный объект ”админис'гративно-территориальное деление стра- ны и деление страны на экономические районы” составляют четыре многозначные зависимостиг РЕСПУБЛИКИ = О- (СТРАНА); КРАЯ, ОБЛАСТИ, АССР ИЛИ КРУПНЫЕ ГОРОДА = G (РЕСПУБЛИКА); ЭКОНОМИЧЕСКИЕ РАЙОНЫ = G (CTPAHA); - ‚ КРАЯ ОБЛАСТИ АССР ИЛИ КРУПНЫЕ ГОРОДА = G (ЭКОНОМИЧЕСКИЙ РАЙОН). В § 3 гл. 2 сформулированы следующие запросы к обсуждаемым зависимостям: . Из каких республик состоит СССР? . Из каких экономических районов состоит СССР? . Входит ли Карело-Финская ССР в состав СССР? . Есть ли в составе экономических районов СССР центральный район? . Из каких краев, областей, АССР или крупных городов состоит Украинская ОС  "бит 03°‘-° o'“<:°‘¢’>”‘¢’>"3  . Из каких краев, областей, АССР или крупных городов состоит Волго-Вятский экономический район? 7°. В какую республику входит Магаданская областъ? 8°. В какой экономический район входит Магаданская область? ‘ 9°. В какие экономические районы входят области, составляющие Украинскую ССР? Ответы на эти запросы собраны под общим заголовком: QUEST = АДМИНИСТРАТИВНО-ТЕРРИТОРИАЛЬНОЕ ДЕЛЕНИЕ СТРАНЫ И ДЕЛЕНИЕ СТРАНЫ НА ЭКОНОМИЧЕСКИЕ РАЙОНЫ; РЕСПУБЛИКАНСКОЕ ДЕЛЕНИЕ = ARRAY = РЕСПУБЛИКИ / СТРАНА = ’ссср’; ЭКОНОМИЧЕСКОЕ ДЕЛЕНИЕ = ARRAY = ЭКОНОМИЧЕСКИЕ РАЙОНЫ [СТРАНА ="cqcp’, СТ РАНА, B КОТОРУЮ КАРЕЛОФИНСКАЯ ССР ВХОДИТ КАК РЕСПУБЛИКА = = CONST = СТРАНА/РЕСПУБЛИКА = ’кареаофинская сер’; СТРАНА, В КОТОРУЮ ВХОДИТ ЦЕНТРАЛЬНЫЙ РАЙОН- КАК ЭКОНОМИЧЕС- кий РАЙОН = CONST = CTPAHA / ЭКОНОМИЧЕСКИЙ РАЙОН = ‘централь- иыиъ ОБЛАСТИ УКРАИНЫ = ARRAY = КРАЯ, ОБЛАСТИ, АССР ИЛИ КРУПНЫЕ ГОРОДА / РЕСПУБЛИКА = [украинская сер’; ДЕЛЕНИЕ ПОВОЛЖЬЯ = ARRAY = КРАЯ, ОБЛАСТИ, АССР ИЛИ КРУПНЫЕ ГОРОДА / ЭКОНОМИЧЕСКИЙ РАЙОН = волга-вятский’; . РЕСПУБЛИКА, В КОТОРУЮ ВХОДИТ МАГАДАНСКАЯ ОБЛАСТЬ = CONST „а = РЕСПУБЛИКА / КРАЙ, ОБЛАСТЬ, АССР ИЛИ КРУПНЫЙ ГОРОД = Магадан- скал”  ЭКОНОМИЧЕСКИЙ РАЙОН, В КОТОРЫЙ ВХОДИТ МАГАДАНСКЯ ОБЛАСТЬ = = ЭКОНОМИЧЕСКИЙ РАЙОН / КРАЙ, ОБЛАСТЬ, АССР ИЛИ КРУПНЫЙ ГО- РОД = магаданская’; ЭКОНОМИЧЕСКИЕ РАЙОНЫ НА ТЕРРИТОРИИ УКРАИНЫ = ARRAY = ЭКО-  12. Ю.Н. Иванов 177 
НОМИЧЕСКИЙ РАЙОН / КРАЙ, ОБЛАСТЬ, АССР ИЛИ КРУПНЫЙ ГОРОД = = ОБЛАСТИ УКРАИНЫ; FIN. Все приведенные формальные записи достаточно буквально следуютих неформаль- ным аналогам, поэтому не требуют комментариев. Следует лишь отметить, что послед- ний запрос здесь групповойи групповое условие задается внутренней совокупностью, которая, в свою очередь, является результатом запроса. ~ 4.3.3. Обсуждаемые запросы к информационному объекту ”морфпот” оперируют почти половиной информационных зависимостей, которые составляют этот объект; для экономит места эти зависимости здесь не приводятся; они собраны в табл. 4.1 гл. 2. ' ’ 1°. Какие суда прибывали в Севастополь 26 ноября`1986 г.?  QUEST = МОРФЛОТ; ОКОНЧИВШИЕ ЗАДАНИЕ = ARRAY = НАИМЕНОВАНИЕ СУДНА / ПОРТ ОКОНЧАНИЯ ЗАДАНИЯ = 'ceaacmno.ab", ДАТА ОКОНЧАНИЯ ЗАДАНИЯ. ГОД = ’1986’, ДАТА ОКОНЧАНИЯ ЗАДАНИЯ. МЕСЯЦ = ’uon6pb’, ДАТА ОКОНЧАНИЯ ЗАДАНИЯ. ЧИСЛО = ‘26’; ЗАШЕДШИЕ = ARRAY = НАИМЕНОВАНИЕ СУДНА / НАИМЕНОВАНИЕ ПОР- ТА ЗАХОДА = ’севастополь’‚ -ДАТА ПРИБЫТИЯ В ПОРТ. ГОД = ’1986’, ДАТА ПРИБЫТИЯ В IIOPT. МЕСЯЦ= ноябрь’, ДАТА ПРИБЫТИЯ В ПОРТ. ЧИСЛО = ‘26’; ~ ОКОНЧИВШИЕ ЗАДАНИЕ ИЛИ ЗАШЕДШИЕ = ARRAY = ОКОНЧИВШИЕ ЗА- ДАНИЕ V ЗАШЕДШИЕ; ПРИБЫВШИЕ СУДА = ARRAY = RED (ОКОНЧИВШИЕ ЗАДАНИЕ ИЛИ ЗА- ШЕДШИЕ); FIN. B порт прибывают суда либо после ремонта в доке этого порта, либо после окон- чания аренды, либо после рейса - одним словом, после окончания задания, а также в ходе рейса. Первым запросом определяются наименования судов, окончивпшах задание в заданном порту, вторым — суда зашедшие в этот порт в ходе рейса. Третья формула нужна для того, чтобы объединить эти две совокупности. При этом те суда, которые оканчивают рейс, окажутся в результирующей совокупности пред- ставленными дважды, ибо они же являются заходящими. Последняя формула исклю- чает повторы в ответе. 2°. Какис грузы подготовлены к отправке в Севастопольском порту 26 ноября 1986 г. и кто владельцы этих грузов? QUEST = МОРФЛОТ; ВЛАДЕЛЬЦЫ `СЕВАСТОПОЛЬСКИХ ГРУЗОВ =F (КОД ГРУЗА) =`ИМЯ ГРУЗО- ВЛАДЕЛЬЦА / ПОРТ ОТПРАВЛЕНИЯ ГРУЗА = ‘севастополь’, ДАТА ГОТОВ- НОСТИ ГРУЗА К ПЕРЕВОЗКЕ.ГОД = ’1986’, ДАТА ГОТОВНОСТИ ГРУЗА К ПЕРЕВОЗКЕМЕСЯЦ = ‘ноябрь’, °ДАТА ГОТОВНОСТИ ГРУЗА К ПЕРЕВОЗ- КЕ.ЧИСЛО =’26’; FIN. B результате запроса получится однозначная и уникальная зависшиостъ; множество значений аргументов этой зависимости есть требуемые коды грузов; совокупность значений зависимой переменной — владельцы; зависимость устанавливает соответ- ствие между кодами грузов и владельцами. 3°. Какой доход получил лихтеровоз ”С1‘ахановец Ермоленко”‚ начиная с 1 ян- варя 1986 г.?  QUEST = МОРФПОТ; ДОХОДЫ = G (ВИД ВАЛЮТЫ) F ДОХОД ЗА ЗАДАНИЕ.СУММА 1 НАИМЕ- НОВАНИЕ СУДНА = ’сгахановец ермдленко’, ДАТА НАЧАЛА ЗАДА- НИЯ.ГОД >=’1986’; СУММАРНЫЙ ДОХОД =F (ВИД ВАЛЮТЫ) °= SUM (ДОХОДЫ); FIN. Запрос имеет дело с тремя зависимостями: ДОХОД ЗА ЗАДАНИЕ.СУММА; ДО- ХОД ЗА ЗАДАНИЕ.ВИД ВАЛЮТЫ =F (НАИМЕНОВАНИЕ СУДНА, ДАТА НАЧА- ЛА ЗАДАНИЯ, ДОХОД ЗА ЗАДАНИЕ. СТАТЬЯ); ‘ДАТА НАЧАЛА ЗАДА- НИЯ.ГОД =F (ДАТА НАЧАЛА ЗАДАНИЯ).  I78  rw-~yV'~I—n-s. 
в запросе жестко фиксируется значение аргумента НАИМЕНОВАНИЕ СУДНА и задается совокупность значений зависимой переменной ДАТА НАЧАЛА ЗАДА. нияшод, чем определяется совокупность значений аргумента ДАТА НАЧАЛА ЗАДАНИЯ. Исключение третьего общего аргумента ДОХОД ЗА ЗАДАНИЕ. СТА. тья из двух первых зависимостей приводит к многозначной зависимости ДОХОДЫ = =G (вид ВАЛЮТЫ). Суммирование ДОХОДОВ в пределах каждого ВИДА ВАЛЮ- ТЫ дает требуемый ответ. 4°. Какие суда оканчивали рейсы 26 ноября 1986 г.? 5°. Какие суда и в каких портах были приняты после аренды 26 ноября 1986 г.? 6!’. Какие суда и в каких портах начнут ремонтироваться- 26 ноября 1986 г.? QUEST = МОРФЛОТ; ОКАНЧИВАЮЩИЕ РЕЙСЫ = ARRAY = НАИМЕНОВАНИЕ СУДНА_/ ДАТА ОКОНЧАНИЯ ЗАДАНИЯ.ГОД = ’1986', ДАТА ОКОНЧАНИЯ ЗАДАНИЯМЕ- СЯЦ = ’ноябрь’‚ ДАТА ОКОНЧАНИЯ ЗАДАНИЯЛИСЛО = ’26’‚ ВИД ЗАДА- НИЯ = ’рейс’; ПОРТ ОКОНЧАНИЯ АРЕНДЫ = F (НАИМЕНОВАНИЕ СУДНА) = ПОРТ ОКОН- ЧАНИЯ ЗАДАНИЯ / ДАТА ОКОНЧАНИЯ ЗАДАНИЯ.ГОД = ‘1986’, ДАТА ОКОНЧАНИЯ ЗАДАНИЯМЕСЯЦ = ‘ноябрь’, ДАТА ОКОНЧАНИЯ ЗАДА- НИЯ.ЧИСЛО = ‘26’, ВИД ЗАДАНИЯ = ’a13eu()a’; -. . ПОРТ НАЧАЛА РЕМОНТА = F (НАИМЕНОВАНИЕ СУДНА) =›‘ ПОРТ НАЧА- ЛА ЗАДАНИЯ] ДАТА НАЧАЛА ЗАДАНИЯ.ГОД ='- ’1986', ДАТА НАЧАЛА ЗАДАНИЯМЕСЯЦ = ‘ноябрь’ ‚ ДАТА НАЧАЛА ЗАДАНИЯЛИСЛО = ’26’, lg!/INJ.'[ ЗАДАНИЯ = ремонт’; 1  Последние три запроса не требуют пояснений. Напомним, что отправные для них зависимости можно найти в табл. 4.1 гл. 2. °  12* 179 
ГЛАВА 6 ДОКУМЕНТЫ  Уже обсуждавшийся в предыдутшах главах информационный объект ”анкета” отображается документом — табл. 1.1 из первой главы. Вообще, документы и, в частности, табл. 1.1 предназначены для того, чтобы отобра- жать информациоштьте объекты, и в этом своем качестве они аналогичны базам данных. Два требоваьшя, обычно предъявляют к организашш документов: 1) значения переменных должны быть расположены в них так, чтобы ответы на наиболее частые. запросы находились проще, чем на редкие; 2) переменные, собранные в один документ, должны быть определены по возможности при ошшх и тех же значениях аргументов, чтобы тшсло пустых окон было бы малым и документ был бы компактным. Можно отметить и еще одно требование, но оно вряд ли формализуемо: поскольку документ готовится для непосредственного использоваЪшя его человеком. то он должен быть наглядным. Чаще всего документ представляет собой одну или несколько прямо- угольных таблиц, дополненных изолированными окнаиш или полями. Какое-то поле, чаще всего самое верхнее, отводится под наименование документа. Еще одно поле может отводиться под номер листа, когда отображение объекта не укладывается на одном листе. Иногда в докумен- те фиксируются дата его составления, а также фамилия лгща, ответствен- ного за составлетше, — для этого также выделяются поля. Часть окон таблицы, как правило, верхние или крайние левые, содер- жат наименования информационных переменных. Оставцшеся окна -— их больцшнство — занимают значешая переменных. То, что такие-то значеъшя пръшадлежат переменной c таким-то наименованием, отражается в докумен- те определештым расположением окон, несущих значения и наименования. Скажем, в табл. 1.1 гл. 1 наименоваъшя переменных занимают верхние ок- на столбцов, а соответствующие значеъшя — все прочие окна под окном cw наименованием. Определенное взаимное расположение окон, занимае- мых значениями, отражает также факт существоваъшя функционального отношения между значениями. В табл. 1.1 функциональными отношениями связаны те значения, которые записаны в окнах, лежащих на одной горизон- татш. . Когда все значеъшя в таблрще — тшсла, то иногда в крайнем правом столбце зашасываются суммы значеъшй в строке, а в ъшжней строке — сум-  180 
:.--‘IA’! t п. ‚п  мы значений в столбце. Эти суммы используются для контроля `правиль- ности ввода таблтщ.  Документы не обязательно имеют табличную форму, хотя табличная  форма наиболее распространенная. Здесь будут рассматриваться документы только таблитшой формы, в которых отражаются только наименования документов, наименования переменных и значетшя переметшых.  § 1. Документы табличной ‘формы  1.1. Документы, отображающие однокшочевые объекты. Зависимости переменных Ф, , Ф2, от единственного и общего для них аргумента Е могут быть однозначными или многозначными, уншсальными или не- унжальньтми. Каждая зависимость характеризуется своей областью опре- делетшя Е, , ‘E12, 1.1.1. Одна одноключевая однозначная уникальная или неут-пшальная зависимость Ф = Р(Е ) или Ф =1(Е), ЕЕ Е, может отображаться докумен- том, показанным на рис. 6.1.1. Перетшслим черты этого документа: 1° . Он представляет собой прямоугольную таблгщу, над которой над- писано наименование (Ю документа. 2°. Переменной Е отведен ошш столбец, переменной Ф — другой.„Верх- ние окна одного и другого столбцов занимают наименоваъшя перемен- ных Е и Ф; верхние окна в совокутшости образуют строку наименоваъшй.  Значения Е“) и Ф О зашитсываются во всех прогщх, кроме верхнего, окнах столбцов. Соответствующие одно другому значения Е ° и Ф и распола- гаются в одной строке. Число строк в табшще не лимитировано; если до- кумент „не помещается на одной страшще, допускается его продолжение на следующих странтщах. ‘ ‚я 3°. В окнах таблицы зашитсано ровно по одному неразложенному значе- ъшю переменной Е 0 или переменной Ф ° .  а!‘ ё 90 £0) фи) Рис. 6.1.1. Документ, отображающий одну одноключевую аса) фа)  ОДНОЗНЗШЁУЮ зависимость  Другой вариант табличного документа, отображающего одинотшую одноключевую однозначную зависимость, показан на рис. 6.1.2. Он полу- чается транспотшроватшем первого: столбец Е становится строкой Е, стол- бец Ф становится строкой Ф. Огшсание второго документа получается из первого описаъшя, если там заменить «верхние окна» на «левые окна», «под своими наименованиями» на «справа от своих наименоваъшй» и т.д.  181 
Вообще, транспонироваъше табличного документа есть формальная опе- рация, что облегчает изложение: из двух типов документов, каждьпй из ко- торых получается транспонированием другого, можно рассматривать толь- ко один тип. Введем два термина. Будем говорить, что документ, изображенный на рис. 6.1.1, есть полная столбцовая таблица, а на рис. 6.1.2 — полная строчная таблица.  91' ё E.“’ 5(2) Puc. 6.1.2. Документ, отображающий одну одноключевую ф ф“) т ‘ однозначную зависимостъ — транспонированный вариант 90  1.1.2. Одна одноключевая ‘многозначная ушшальная или неуникальная зависимость Ф = G(£) или Ф = J(E), E E Е, отображается документом, показанным на рис. 6.1.3. Отличие от документа, отображающего однознач- ную зависимость, только в.том,_что некоторые окна Фи могут быть за- полнены множественными значениями, каковые допускают разложение на  ушформатшонно подобные элементы. Элементы множественных значений  в документе на рис. 6.1.3 обозначены символашт Фид), Фад), , Фа” , Ф (23) , B верхних индексах этих символов фигурируют по два числа: первое тшсло повторяет номер значеъшя аргумента, а второе число есть номер элемента данного множественного значения. Один элемент мно- жественного значеъшя должен отделяться от ‘другого элемента того же тожественного значения каким-то знаком; на рис. 6.1.3 этим знаком является запятая. 1.1.3. Пусть в- составе информационного объекта имеется не одна, а не- сколько зависимых переменных Ф, , Ф: ...‚ зависящих от одного аргумен- та Е; зависимости могут быть однозначные или Многозначные, уншсальные или неуникальные. Их отображение естественно собрать в один документ; это даст экономшо в том, что значения аргумента E в объединенном отобра- жешш будут фигурировать однократно. В ‚таком объединенгш могут быть и другие преимущества в виде быстроты нахождения ответов на запросы. На рис. 6.1.4 показан общий вид документа, отображающего одноклю- чевые зависимости. Этот документ — будем его называть одноключевым документом общего вида — имеет следующие черты.  9/_V' 91' 591 E 992 993 ° ° ° а ф . ф?) EU) г!) фри), ф??? . . . до) . §bE1,1)’ фал), 1(2) Е“? ФЁЁЛ), ф?” о . о am ~.g?(.2,1), фот, Р) го) ¢§3,1)’ фаза) ‚ ‚ ‚  Рис. 6.1.3. Документ, отображающий одну одноключевуюмногозначную зависимость Pu'c. 6.1.4. Общий вид документа, отображающего одноключевые объекты 182 
1° . Документ представляет собой прямоугольную таблтщу, над которой нашасано его наименование ЛЁ 2°. Каждой переменной в таблице отведен один столбец; в его верхнем окне ‘записано наименоваъше переменной, а во всех остальных — значения. Аргумент 2 He обязательно вьшосится в левьпй столбец, как‘это бьшо в ранее рассмотренных примерах. Оргаъшчеъшя на порядок размещения перемештых по столбцам появляются тогда, когда в таблице оказывается необходимым показать векторы. В этом случае компонентам одноговек- тора отводятся подряд идуцше столбцы, чтобы над наименованиями компо- нент можно было нагшсать наименоваъше вектора. Значения зависимых перемешчых И!’ , 11/2°) , 11/3°) , , соответств ющие какому-то значешпо ар- гумента 2 Ё , заъшмазот вместе с этим 2 °’ одну строку. Число строк в табшще не лимитировано. 3°. В каждом окне, принадлежащем аргументу 2, загшсывается ровно одно неразложимое значеъше. Если аргумент 2 — составной, то в окнах, принадлежащих компонентам составного аргумента, должно быть по\ од- ному неразлоясимому значеъшю. Окна, отводимые однозначным зависи- мым переметшым, содержат либо одно неразложимое значение, либо не co.  держат значеъшй. В окнах, принадлежащих штогозначптьтм зависимым переЁ‘  менным, может быть либо одно неразложимое значение, либо шит одного значения, либо значение, разложимое на штформациоъшо подобные tenemen- ТЫ. Притшна появления пустых окон такова. объединяемые в одном доку- менте зависимости могут иметь разные множества (или совокупности) определения. Аргумент в объединенном документе принимает значения из множества, являющегося объединением множеств определения всех входя- щих в документ зависимостей. Возможны два варианта: или переменная, которая определенане при всех значениях аргумента из объединештого мно- жества, как-то доопределяется (например, значением нет) ‚ и это значеъше записывается в окна, соответствующие тем 2, при которых она не бьша первоначально определена; или переменная не доопределяется, и окна, соответствующие 2, при которых она не определена, остаются пустынна. Табл. 1.1 из гл.. 1, отображающая информациоштьпй объект ”анкета”, имеет в своей одноключевой части черты документов общего вида, пере- тшслетшые под рубриками 1°, 2°‚ 3°. Отметим, что эта часть табл. 1.1 из гл. 1, а также документ на рис. 6.1.4 являются полными стопбцовыми таблтщаыш. _ _ ' \ 1.2. Документы, отображающие двухключевые объекты. двухключе- вые объекты включают в себя одноключевые и двухключевые однознач- ные или Многозначные унгжальные или неушжальные зависимости:  F G .... ._ ¢l,i= I (£1): E1 EAII9 1'-1:2: --0; J Ё G ‚_, ._ Ф2‚]= I (E2): £2 e‘:'2j9] — 19 29 -°°; J  183 
F  ¢12,k= Ё (на), заезжего, „неги. (1.1) J  B первой строке (1.1) записаны функциональные зависимости от первого аргумента Е,. Зависимые переменные обозначены через ‘pm ; первьпй штдекс здесь корреспоНдИРУет с индексом аргумента; вторым индексом 1° различаются перемеъшые из набора тех, которые зависят от одного и того же аргумента Е,; Е ,д — множества (совокупности) определения зависимос- тей. Во второй строке (1.1) приводятся функциональные зависимости от аргумента Е,. B третьей строке — от обоих аргументов ‘Е ,‚ Е, ; в обозна- чешш Ф„‚ k первые два индекса указывают на зависимость от аргумен- тов Е, ‚ Е,; третьим индексом отмечается зависимость из набора двухклю- чевых зависимостей; в зависимости I1/12,1, Первый аргумент Е, выбирает- ся из совокупности Е, д, второй- из совокупности 32,, (Е, ) , которая свя- зана не только с номером двухключевой зависимости, но также и с аргу- ментом Е, . ' `  1.2.1. Пусть пока в отображаемом объекте имеются только двухключе- вые зависимости, т.е. те, что записаны в третьей строке (1.1) . Любую дискретную зависимость с двумя аргументами можно предста- вить как набор зависимостей с одним аргументом —- Ha этом известном факте базируется один из вариантов отображения двухключевых зависи- мостей в документе. Делается это так. Берется первое значение одного из аргументов‚напри-  мер Е, = Е?) ‚ и фиксируется во всех двухключевых зависимостях Ф„‚, , Ф„ ‚, , При этом они превращаются в зависимости c одним аргументом: (1) F ~ ` W12,k= G (§fl),§2), k = 1‚2‚ I J  Полученные таким образом одноключевые зависимости могут быть отобра- жены в одноключевой таблице по правилам, изложенным в предыдущем пуъпсте. Над таблгщей выписываются наименование Е, и значение Е 1 ‚ характеризующие отображаемые зависимости. Затем берется второе значение первого аргумента, Е, = ЕР) , и форми- руется вторая табпгща, имеющая аргументом Е, и показывающая зави- симость:  F w‘%%,k = [G (§1(2)»~§2)» k=1,2, J  над второй таблщей выписываются Е, и Е?) . Во второй табшще значения аргумента Е, могут совпадать со значениями Е, из первой табпгщы, но могут частично или полностью расходиться. Та- кие возможности бьши учтены в записи двухключевых зависимостей (1.1) тем, что бьши отмечены влияния аргумента Е, на множества (совокуп- ности) определеъшя Е, : Е, е '.E~Z2k(.§1).  184  ц ._.....-..‚...._.........._.__.___ 
...4w-§______‘ _’_  После второго значеъшя аргумента 51 берется третье, 51 = SP) , форми- руется третья одноключевая таблица с дополнительной парой окон 51 и 5?) И так далее. Описанный документ, отображающий зависимости только от двух аргументов, есть набор одноключевых таблиц c дополнительными ок- нами над ними; общий вид такого документа представлен на рис. 6.15; верхняя часть его относится к 51 = 55‘) ‚ нижняя — к 51 = 5 2); часть, соответствующая 51 = 5 ‚ и другие части не представлены на рисунке. Отметим следующее: обозначения наименований зависимых перемен- ных имеют в позгщии нижнего индекса на две цифры больше по сравнению с рис. 6.1.4; обозначения значений зависимых переменных имеют две до- полнительные цифры в нижнем индексе и одну дополъштельную - в верх- нем; вторая цифра в верхнем индексе повторяет номер значения второго аргумента.’ Документы, отображающие двухключевые зависимости по типу рис. 6.1.5, допускают совмещение с документация, в которых фигури- руют одноключевыевависимости. На рис. 6.1.6 показан вид такого доку- мента. Он состоит из пар прямоугольных таблиц. Верхняя таблица в каж- дой паре имеет, не считая ст оки наименований 51 , фи, 11:13, ...‚ только одну строку значений Sf‘) , x/113, Верхние таблицы, как и нижние, принадлежат к числу столбцовых — в них каждое наименование перемен- ной и ее значения находятся в одном столбце. Чтобы различать их, будем называть верхние таблицы однострочньшш столбцовыми, а нижние —  24" as фал $91.2 ° ° ° Ж 3- 2.‘? s!«.‘,‘.’ ¢$,2 ° ° ° - га фал фал 9912,: ° ° ° E2 фал 9912,; Фи ° ° ° ЕЁ) 5°52? 90121;) ¢«‘§’,§"3 ¢$§','a'°.)- - - а? .‘;::’ ¢.‘4',’z’ фаз”, фаза. ._ а‘? .<;:':° фаз‘: тёса... ( (‘:73 (о 9 7 д ‚ д , ‚ ЕЁ’ 12,1 11,23". §§,§’23-- E‘? 523’ 90.2%’? 50222’? а?’ ¢.<;-,z> $23.12 фазу”... Е Е: фи фал °° ° Е‘? 503,23 д? ° ° ° ° ° Е: фит фил фил ° ° ° Е‘? ФЁЙ’ 53’? 503$") ¢$§'§'” ' ' Q ' , not .¢‘“-2’. .. а‘? 3;? ::::> ¢$§,'§".’ gas;-,.=.~.=2.. ‘3¢"""’--- г: ¢~s:;:> ¢.<.:v.=-'2 ¢.<:;:-32.. O O O  Puc. 6.1.5. двухключевые зависимости Рис. 6.1.6. Одно- и дВУхключевь1е зависимости  185 
полными столбцовымшнижние таблгщы в обеих парах повторяют табли- цы предыдущего рисунка. Назовем внутренним тот аргумент, значениям которого отведены столб- цы в ъшжних таблицах; в рассматриваемом случае им является £2 . Apry- мент £1 тогда естественно назвать внецшим. С двухключевыми зависимо- стями сочетаются в одном документе типа рис. 6.1.6. те одноключевые зависимости, у которых аргументом является внешний для двухключе- вых зависимостей аргумент. одноключевые зависимости с аргументом $2 должны отображаться в отдельных одноключевых документах или в совмещенных документах‚где E2 выступает как внешний для двухключе- вых зависимостей аргумента. Когда двухключевой документ только проектируется, то при назна- ченшит в нем одного аргумента внеппшм, а другого внутренним принимают во внимание следующие обстоятельства. Если £1 B запросах к документу чаще выступает как задаваемый аргумент, чем как разыскиваемый, то его уместно назначить внецшим аргументом. При заданном г, поиск сразу при- водит к полной одноключевой столбцовой таблице, над которой в одно- строчной столбцовой таблице фигурирует это sf‘) . Последующие поиско- вые шаги локализуются в пределах найденной одноключевой таблицы. Если в запросах задается ‚Е, , а £2 не задается и, тем не менее, Е, назначен  ВНВЦШИМ apryMeH'roM, ТО ПОИСК В таком ДОКУМВНТВ вьшивается В ПРОСМОТР.  всех таблиц, а не одной, как в предыдущем случае. Таким образом, первое принимаемое во внимание обстоятельство — это скорость реализации зап- росов: на частые запросы ответы должны находиться быстрее, чем на ред- кие. Второе обстоятельство связано c компактностью. Когда в составе ото- бражаемого объекта имеются одноключевые зависимости c аргументом £1 , a одноключевых зависимостей с 52 нет, то Е, целесообразно назначить внешним аргументом, ибо в таком случае одноключевые зависимости сов- мещаются c двухключевыми в одном документе. Еще порядок аргументов может влиять на заполненность окон полных одноключевых столбцовых таблиц. Если это так, то следует выбрать такой порядок, при котором полу- чается меньшее число пустых окон. Перечисленные обстоятельства могут оказаться противоречащими. Документы, описаъшые в данном разделе, относятся к первому типу. Точнее, речь Luna о столбцовых документах первого типа. Строчньй ва- риант документов первого типа получается транспонированием столбцо- вого. 1.2.2. Двухключевые документы второго типа в столбцовом и строч- ном вариантах показаны на рис. 6.1.7. К столбцовому варианту докумен- тов второго типа принадлежит ”анкета” -—- CM. табл. 1.1 из гл. 1. Второй тип двухключевого документа получается из первого в резуль- тате слияъшя составляющих таблиц. Вслучае столбцовых таблиц это выгля- дит следующим образом. Верхняяоднострочная таблгща (см. рис. 6.1.6) растягивается по верти- кали иприсоединяется слеваксвоей нижней таблице; в совокуштости они образуют блок значений и наименований переменных. В блоке оштостроч- ная (бывшая верхняя) таблица занимает ту же высоту, что полная (быв- шая нижняя), хотя в столбцах однострочной табшщы представлено по  186 
Щ  £1 фи фал 5.2 фил ¢12,2 фр; " ' аз" з: 2:2 as’ 2;? ¢.‘;',‘."’» ¢.‘.',’§”3 . а? ¢.<;:%’ ¢.‘.?;§*'3 ¢.‘;:§"3. .. г‘? 9081?’ ¢.‘;:§"3¢.i‘:§".’_--- а?’ 2:2 ¢.‘§;1’ .o.<:,~;’ 9422."? фазан: а - .- а‘? ¢s';;:> ‘¢.<:;:’ ¢.‘§;§¢.‘§:§"3--- а‘? на? ::;:> ¢.‘§:§".’¢.‘§:§’“3- ..  a). столбцовый вариант  I  cw‘ ) . Е1 Е‘: 5(3) ° ' ° за, sv.‘2.’ $3.’ Фи ¢.‘,‘% 9053.?  an as) ‘а? о а? we-,2) E?) а?) ‚‚‚  (1.1) (и?) (. ) .) ‚ ( . Фщ 30.2,. ..,. ¢..'.,i' $5,.‘ ¢.‘.’,.” вид?’  ф фбд) (291) (292) (293)- 12,2 12,2 12,2 фил 12,2 Ur‘ о‘) (‘до’) (‘до’) (291.1) (2.291) (2,391) so... з 9”zs»:.; на; 22.3.; “е: 2. фен ь 9°22»: 2) ' Sb12,'3v'--- ¢’12I3’s«- ¢12’,3’.... физ?" 12:3;-~ 12:3;-°°  б).строчньпй вариант  Рис. 6.1. 7. Документы, отображающие одноключевые и двухключевые зависимосш (второй mu)  одному значению. Отметим, что однострочная часть блока может быть представлена только одной строкой c одним значением внецшего аргу- мента. Взаимное расположение одноключевых и двухключевых зависимых переменных в блоке произвольное: на рис. 6.1.7 одноключевые столбцы находятся слева от двухключевых, в ”aH1<e're’_’ оъш — и слева и справа от двухключевых. В каждом блоке имеются следующие элементы: одно значение внешнего аргумента; по одному значению одноключевых зависимых переменных (если оъш вообще присутствуют в документе); все значения внутреннего аргумента из ипюжества его определения при данном значенша внешнего  ‘ 187 ' 
аргумента; соответствующие значениям аргументов значения двухклю- чевых зависимых переменных; верхнюю строку каждого блока занимают одни и те же нацменов ания перемеъшых. Второй шаг слияния — присоединеъше одного блока к другому. Блок СО значением BHBIIIHCFO аргумента Ё 1 = йрисоединяется непосредствен.  но снизу к блоку со значетшем Ед = £51? ; к объединеъшю непосредственно  снизу присоединяется блок Е 1 = ЕР’ и т.д.; строка c наименованиями переменных удерживается только над верхним блоком. Так получается самьпй полный двухключевой документ второго типа в столбцовом вари- анте. Строчньпй вариант двухключевого документа второго типа полу- чается аналогичшым путем из строчных таблиц. ‘ Относительно структуры столбцового двухключевого документа. Два столбца аргументов Ед , Е, и столбцы зависимых перемеъшых Фи и 11/12,,‘ имеют в своих верхних окнах наименования переменных,аво всех окнах под ними —- значения. Положения окон в столбцах следующим обра- зом отражают функциональные отношения между пе сменными. Окна со значеъшями одноключевых зависимых переменных ФЕ, имеют ту же высо- ту PI располагаются на той же горизонтали, что и окна c породившим их значеъшем аргумента Е? . Окна со значенияьш двухключевых зависимых переменных Фпд, таким же способом соотносятся c окнами внутреннего аргумента Е, и вместе c ними ‘находятся в горизонтальном слое, принад- лежащем породившему их значеъшю Е?) . Отметим, что в столбце внутреннего аргумента на рис. 6.1.7 значения повторяются, причем одинаковые значения Е ') ._лежат в горизонтальных слоях, принадлежащих разным значеъшям ЕЁ’) . Значеъшя в столбце внецше- го аргумента Е Ё‘) на рис. 6.1.7 не повторяются. Впрочем, вытянутые по вер- тш<али окна внецшего аргумента и одноключевых зависимых перемеъшых можно было бы разделить, продолжив влево горизонтальные границы окон ЕЁ’) . Тогда в левых столбцах образовались бы окна той же высоты‚что и в правых; каждое из ъшх должно быть заполнено значениями, одинаковыми в пределах своего первоначального вытянутого окна. В варианте без разделения значения Е Ё‘) , 11/9, представлены однократ- но; B варианте c разделением они могут повторяться. Реляционные табли- цы (см. § 2 гл. 3). имеют все окна одинаковой высоты и значения внецпшх аргументов в них дублируются [75] . _1.2.3. Двухключевые документы первого и второго типов не содержат повторов значеъшй внутреннего аргумента Ез, если в двухключевых зави- симостях каждому значению внецшего аргумента Е, соответствует свое множество значений внутреннего, иными словами, если внецший аргумент является „групгшрующим по отношеъшю к внутреннему( см. гл. 2). В про- тивоположном случае, когда внутренний аргумент Е2 пробегает одни и те же значения, при каждом значении внешнего аргумента Е, —- или в близ- ких к этому ситуациях более экономным является применение документов третьего типа, а не первого или второго. Обратимся сначала к новому варианту отображения только одной двух- ключевой зависимости. На рис. 6.1.8 показан общий вид нового доку- мента, представляющего зависимость переменной 11:12 от аргументов  £1 9 £2- 188 
l%  г: £2’ г?’ а?  › Эдгп ФЁЁ ФЁЁ) 9043’  (1) (2) (3) (‘Jr 902,2 5b2,‘Z 902,2 2.2 5,6’ ‘-2’ 25:’ а‘? Ем ‘Рт 9% а‘? $3" за 5;» г‘? 5.‘? 4«‘.‘2’ ¢5%"’ ¢5'é” й”  дат ,<§»0 фат 505%” а‘? 96232 из 963"’ Ё” ФЗЁ”  () ) ) (.) (‚ ‚ г?’ 90%" м?” 32"’ г? $3 90532 ‚ё‘ 3:’ $03391  X  Puc. 6.1.8. Документ третьего типа, отображающий одну двухключевую зависимость  Рис: 6.1.9. документ третьего типа, отображающий двухключевую и одноключевые зависимости - ›  Прямоугольную таблицу, в которой значениям аргументов Sf’) , £5‘) отводятся столбец и строка, называют матрицей. Документы третьего ти- па включают в себя матргщы. _. _ B матрице оба аргумента находятся в равном положении — нет аргумента внутреннего и внецшего. Если в запросе задается значение 2}‘) , a 2%‘) не задается, то поиск сначала обращается к левому столбцу, где представлены упорядоченные значения £1, и локахшзуется в пределах строки 5 Ё‘) . Если задается значение ё’ , а sf’ неизвестно, то поиск проходит сначала по верхней строке, а затем локализуется в столбце со значением £2 ' . Отметим следующие два обстоятельства. В матрицах не лимитируется ъш число строк, ни тшсло столбцов. Второе: матричньпй документ удобен тогда, когда нужно отобразить одну, в крайнем случае, две двухключевые зависимости. В последнемслучае каждое окно матрицы делят на две части, скажем, верхнюю и нижнюю, и во все верхние части затшсывают значеъше одной зависимой переменной, а во все ъшжние — другой. Введеъше в каждое окно еще значения третьей переменной сделало бы документ сов сем неудоб- ным для чтеъшя. Матрица совместима c отображениями одноключевых зависимостей. Если первые два типа двухключевых документов могут содержать од- ноключевые зависимости только c одним аргументом, c1<a>1<eM£1 , то матри- ца допускает совмещеъше c orofipaxcemmmn одноключевых зависимостей, имеющих аргумент £1 и имеющих аргумент £2 . Ha рис. 6.1.9 показан вид двухключевого документа третьего типа c Одноключевыми и двухключевой зависимостями. Он имеет три части. Левая часть есть полная столбцовая таблица c аргументом £1. Верхняя часть  189 
отображает одноключевьте зависимости _c аргументом 52; она представляет собой полную строчную таблицу. Правую ъшжнюю часть рис. 6.1.9 заъшмает так .называемое матричное ядро. Это — матргща рис. 6.1.8 без столбца 51 и строки 52. Матричное ядро состоит из окон, заполненных значенияьш зависимой переменной фа) , Отметим еще следующую возможность сочетания отображений} двух. ключевой и одноключевых зависимостей: часть строк и столбцов с одно- ключевыьш переменными можно бьшо бы присоедиъшть съшзу и справа от матричного ядра. Тогда получился бы двухключевой документ третьего типа в максимальной конфигурации. 1.3’. Пример многокшочевого документа. На рис. 6.-1.10 показан доку- мент, отображающий одну уникальную однозначную шестиключевую зависимость ф = Р'(5‚, 52, 53, 54, 55 ‚ 56). Табл. 2.1 из гл. 2 принадлежит к числу шестиключевых документов такого вида. Будем называть прямоугольную таблицу, в которой значениям одной группы аргументов отводятся верхние строки, а значеъшям другой — край- ние левые столбцы, матричной таблицей. Документ, представленный на рис. 6.1.1О‚ имеет вид матричной таблицы. В нем есть столбцовые аргу- менты — 51, 52, 53, 54, наименоваъшя и значеъшякоторых занимают левые столбцы, и строчные аргументы, 55 ‚55, в верхних строках. Двухключевые документы ‚первого и второго типов характеризуются субординацией аргументов: один из них является внешним, или старшим, другой - внутренним, или подчиненным; ‘аргументы в дВУхключевых документах третьего типа — матричных таблтщах — не находятся в отноше- нии ‘подчинения. Аргументам в многоключевых матричных таблгщах прису- щи две субординации: одна -'4 между столбцовыми аргументаьш и вторая — между строчными. В рассматриваемом документе субординации среди шести аргументов таковы: 51 _>_ 52 >_ 53 .> 54 и 553- 56. .  щи‘ Зависимость устанавли- ваемой субординации от as д? а?’ планируемых запросов при as Ш ш ш (а) проектировании документа Е: Е: ‘<23 а, E5 5,5 Ед Ед уже обсуждаласьвпредыду- am Е“, а“, Е“, щем параграфе. Высказан- 1 2 3 4 ‘ . ные по этому поводу реко- 5(3) _ мендации переносятся на ) случай многоключев ых мат- ‘Eff ~ ричньхх таблиц следующим образом. - а?) ES) ‘к (1 1 2 4 2 1) ДОСТУП К КаЖДО OK ‘ф I 9 9 9 9 My ну ‚ 5(3) матричного ядра возможен я’ двумя способами: движени- Eff’ ем вдоль строки, которой am пршташтенсит искомое ок- 4 а‘? а‘? as?’ Puc. 6.1.10. Пример отображе- ния многоключевой зависи-  мести 190 
но, и движением вдоль столбца, которому принадлежитто же окно. Первая `  трасса проходит через значения стол бцовых аргументов°в порядке их субор— динации, вторая — через значения строчных аргументов. Наличие двух путей доступа позволяет ориентироваться не на один круг запросов, а на два: Субординация столбцовых аргументов выбирается c ориентатшей на один круг плаъшруемых запросов, субординация строчных — на другой круг. Рассматриваемая в этом пункте шестиключевая зависимость имеет ком- пактное отображение не при всех, а толькопри специальных условиях на множестве ее определеъшя. Эти условия таковы: значения, которые пробе- гает аргумент 2 6 , должны быть одними»: и теми же при всех значениях 21, 22, 23, 24; значеъшя, которые приъшмает 26, могут зависеть только от аргумента 2 6, принадлежащего, как и 26, к числу строчных аргументов и и являющегося старцшм по отношеъшю к 26; значения самого младшего столбцового аргумента E4 должны быть одними и теми же независимо от значений строчных аргументов 2 3, 26 и могут меняться в зависимости от значеъшй старцшх по отношеъшю к нему столбцовых аргументов 21, 2 3, 23; аналогично значения столбцовых аргументов 21 ‚ 22, 23 могут зависеть только от значений старцшх по отношеъшю к mm столбцовых аргументов. Если эти условия не выполняются, то в матричной таблице появляются окна, соответствующие сочетаниям значеъшй аргументов, при которых зависимость не определена. Искусственное доопределеъше приводит к тому, что часть окон в документе заполняется несодержательными зна- чениями. матричную табшщу, в частности шестиключевую матричную таблицу на рис. 6.1.1О‚ можно считать объединеъшем матричного ядра c четырьмя полными столбцовымиидвумя полными строчными таблицаьш; каждая из ъшх имеет соответствешю один столбец или одну строку c Hanmenonaunem и значеъшями аргумента.  § 2. Элементы табхшчньпх отображений  На рис. 6.2.1 показана схема документа, отображающего следующие зависимости: в  $1 =F(’é1).$1z =F(§1»§2), -$12...n=F'(£_1: £2: "° Ёп): $12...па =F(£19E2: "ч Em Ea): ‘—I(;12...noz{3 =F(E1: £2: -°-9.£n9 £ou.£B)9 ---9 E(’:12...no:B...'y =F(El: £2: "ч En: Ea: EB: по £7): ф12...пр =Р(Ё1›Ё2› "ч En: гр): ‘_1:12...npq =F(€l: £2: "ч Em Ер: Sq): ¢12...npq...r =F(E1:£2:-°°:£n> £p9€q:~-H921‘): ¢=F(£19€29 -'°_s gm год: ЁВ: т: £7: Sp. sq: т: Er (2.1)  Символ Й в записях (2.1) следует восприъшмать как сокращеъшую загшсь набора зависимых переменных, имеющих одинаковый состав аргументов. В ф°РМУПаХ фУНКЦИональных зависимостей (2.1) фигурирует один символ однозначной зависимости F, НО все последующее изложение действительно для всех типов фушсциональной зависимости.  191 
2.1. Типы табшщ. Табличные документы составляются из прямоуголь- ных таблиц пяти типов: 1) однострочная стопбцовая таблица, 2) одностопбцовая строчная таблица, 3) полная стопбцовая таблрща, 4) полная строчная таблица, 5) матричное ядро. Таблицы всехперечшсленных типов, не считая одностолбцовой строчной табшщы, бьши введены в предыдущем параграфе: в схеме на рис. 6.2.1 представлены однострочные столбцовые таблицы с аргументами £1 , £2, ‘ат полные столбцовые таблицы в аргументами Ер, §q. ..., ‘д, полные строчные таблицы c аргументами $0,, Ед, ...‚ Е, и матричное ядро с зависи- мой переменной Ф. Взаимное расположеъше таблиц в документе отражает отношеъше подчи- неъшости между ними: таблица, расположенная вьпце или левее данной, трактуется как старшая по отношению к данной. На рис. 6.2.1 однострочная таблица с аргументом 2 1 старше однострочной таблгщы с аргументом £2, которая, в свою очередь, старше всех других однострочных таблиц, включая последнюю однострочную таблгщу c аргументом £,,; эта последняя  - (1) (2) б: ф‘! Ea ad ado- ё "(О —›(1,1‚...,1‚1) ->(1,1,._..,1,2) 1 “ 12... под "2---rm (1) (2) W £2 {Да гр Ед ' Ер Ч ар ..ь '°(1.1‚.-‚1.1.‘) "(Mr "о 1919” 1919"-91:21‘) ‘Z’ д” фавна/з 9"1z...m,s $"12...nap ¢1z...r'mp I an еды ° ° °  ай? ат  „парту 57 7 y у 7 1,  др ¢12._;p Eu; ¢12...npg' §"12...npa---r (1 (1) --(1,1,_.,1,1,1) *'(1,1,...,1,...,1) арт . £9 ¢12...npq ¢12...npq...r ‘..(‘v‘9---v ` 12...npq... а) -*(1,1, ..,1,1,2) ->(1.1‚...,2‚... <59 5b12...npq ¢12...npq... --u,1....2,.. , Sb12..npq... (з) ->(1,1,.-,1,1,3) . . . ->(1,1,...,3,... Ед ¢1z_,_npq 12...npq...  ¢(1p1y--~9‘o‘93o°°‘!29‘92.I°'°!3) Puc. 6.2.1. Схема документа, отображающего многоключевые зависимости  192  ь " ' к г-иьм‘ шщдёьщ 
старше полной строчной таблицы с аргументом ‘го, ирстарше полной столбцо- вой таблтщы с аргументом гр; полная строчная таблица с аргументомёд, старше таковой же с аргументом 5,3, которая, в свою очередь, старше всех остальных строчных таблиц, включая последнюю из них — `с аргументом 57 -; аналогичное старшинство имеет место среди полных столбцовых таб- лиц: табзшца с аргументом 5,, старше таблгщы с аргументом sq , ..., старше таблицы с аргументом г, ; матричное ядро подчиняется младшей полной стротшой и младшей полной столбцовой таблицам. Подчиненность среди таблиц означает, что зависимые переменные подчи- ненной табпицы, если они есть, зависят помимо своего аргумента от аргу- ментов всех старпшх таблиц. Далее приводится сводка отлитштельных черт всех типов таблиц; кроме того, каждому типу таблтщ ставится в соответствие своя формула описа- ния, которая используется в последующем для краткой записи структур документов. 2.2. Полные столбцовые табшщы расположены в левой нижней части рис. 6.2.1. Первая из них имеет аргумент гд и зависимые переменные  -) . Il!12...np. ВТОРЗЯ -* а, И Ф12..,п‚д‚‚ последняя — Sr И Ф12...пра.„г- 2.2.1. В столбцовои таблице каждой переменнои отводится один столбец.  Верхнее окно столбца занимает наименование переменной, все окна под ним — значеъшя этой переменной. В полной столбцовой таблште может быть более одного значения переменной в ее столбце; в однострочной столбцовой таблице — ровно одно значеъше. Каждая столбцовая таблица должна содержать один аргумент; она может содержать (а может и не содержать) зависимые переменные, зависящие среди протшх от этого аргумента. Полная столбцовая таблица может быть единственной таблицей в доку- менте; тогда этот документ одноключевой, и в нем помимо аргумента должна быть представлена хотя бы одна зависимая переменная. Полных столбцовых таблиц может не быть в документе, но тогда в нем должна быть хотя бы одна полная строчная табшща. Полная столбцовая таблпща может быть подгшнена либо последней однострочной столбцовой таблице, либо последней одностолбцовой строчной таблтще, либо полной столбцовой таблице. Справа от нее может быть другая полная столбцовая таблица, подчиненная ей. К одному окну левой таблицы может примыкать не одно, а несколько окон правой таблицы; этим показывается, что значеъше аргу- мента левой таблрщы распространяет свое влияъше не на одно, а на несколь- ко значений зависимых переменных правой табшщы. Полная столбцовая таблица может замыкать цепочку себе подобных; в этом случае она либо является младшей таблицей документа, либо к ней непосредственно справа присоединяется матричное ядро. Относительно взаимного расположения полных столбцовых таблиц: часть столбцов старшей таблицы может быть слева, а оставцшеся — справа от подчиненной таблицы, как это, например, имеет место в табл. 1.1 гл. 1. Принадлежность столбцов определенной таблице следует из совпадения вертикальных размеров окон. Полную столбцовую таблицу может пере- секать также матричное ядро: столбцы полной столбцовой таблпщы распо- лагаются слева и справа от матричного ядра. Столбцы матричного ядра выделяются тем, что над ними размещается полная строчная таблица. И 13. Ю.Н. Иванов 193 
2.2.2. Для полных столбцовых таблиц примем следующую формулу огшсания: ~ * ’  X=COL((p1,(p2,  где= х — наименование OIII/ICbIBaeMO17I\'I‘a5JIPII.[bI; COL — различительньпй сим- вол таблицы (от COL omn — столбец); 901, «p2, — наименования перемен- ных таблиц, влючая наименоваъше подчиненной таблицы, если она есть. Наименоваъшя даются таблицам, чтобы сделать описание документа более наглядным; возможен вариант, когда наименования таблиц не фигу- рируют в описаъши; об этом будет идти речь при рассмотрении отшсаъшя документа в целом. ' B формуле (2.2) фиксируется порядок следования слева направо перед менных в таблице; разделитель наименований переменных — запятая. Наименоваъше подчиненной таблицы занимает в (2.2) либо крайню правую позицию, если подтшненная таблица примыкает справа к описывае- мой таблице, либо позицию между переменныьш, если подчиненная таблшта расположена между столбцаьш описываемой табшщы. ITO, что данное наименование относится к подчиненной таблице, а не .к переменной, в фор- муле (2.2) не показывается; наименование таблицы тем отличается от наименования переменной, что она фигурирует в левой пасти какой-либо из формул, составляющих огшсаъше документа. Наименоваьшя подчинен- ной таблицы может не быть в (2.2), когда отшсываемая таблица не шиеет подтшненной. B формуле (2.2) аргумент не выделяется из члисла переменных, входя- щих в таблицу; на этапе описаъшя документа в таком выделении нет необ- ходимости. Подчеркнем, что хотя аргумент не отмечается в огшсании, он должен входить в тшсло переменных полной столбцовой таблицы. 2.2.3. В документе на рис. 6.2.1 есть ряд полных столбцовых таблиц с аргументами ‘гр, Sq, ..., Ь. Их описание выглядит следующим образом:  х‚‚=соь‹г,‚‚$„...„‚‚‚ х.‚); х, =coL(s.,,Dfn...,.,,.,, Xr)§  х‚ =соь(г‚ ‚$„...„‚‚.‚...‚‚ х); х=МАТ(Ф)- ‹2.з) Здесь записано, что первая таблица имеет наименование хр и является столбцовой, что она включает переменные гр, „шт, и что ей подчинена таблица xq. Последующие формулы читаются аналогичным образом. 2.3. Полная строчная табшща может быть получена транспонированием подходящей полной столбцовой таблицы. Все, что бьшо сказано вьпце о полных столбцовых таблицах, переносится на полные строчные c формаль- ными коррекциями. — Формула описагшя полных строчных таблиц имеет вид:  X‘-I-IN(‘P1a ‘P2. ---)-  За исключением разлитштельного символа LIN (от LINe '— строка), она тождественна формуле (2.2), огшсываюшей полные столбцовые таблицы, и поэтому не требует комментариев. Полные строчные таблпщы загшмают на рис. 6.2.1 правый верхний угол; их аргументы — Е“, Ед, ..., 57. Описаъше этих.таблиц выглядит следующим  194  (2.4)  а '3~“-"=.--‘:f*29‘~1;4zq 
образом: Ха = LIN («Em $ l2...noz: X13); XB = LIN (£5: $l2...naB, ;  X7 = (£7: $12'...na В...'у› °  отметим, что цепочка полных столбцовых таблиц (2.3) и цепочка полных стротшых таблиц (2.5) приводят к одной и той же таблице с обозначением х; эта последняя является матричным ядром на рис. 6.2.1. 2.4. Однострочные сголбцовые табшщы на рис. 6.2.1 размещаются в левом верхнем углу. 2.4.1. Экземпляр таблгщы этого типа представляет собой одну строку значешш вместе со строкои наименоваъши переменных над нею. Как правило, Однострочная столбцовая таблица в документе выступает не в одном экземпляре, а в нескольких. Каждый экземпляр располагается чаще всего на отдельном листе и несет свое значение аргумента вместе с соответствующими значениями»: зависимых перемеьшых. К каждому экзем- пляру такой таблицы присоединяются экземпляр или экземпляры других таблиц: других однострочных, одностолбцовых, полных столбцовых, полных строчных; эти экземпляры других таблиц соответствуют значеъшю аргумента, затшсанному в данном экземпляре однострочной таблицы. В однострочной таблгще должен быть аргумент и притом’ один; что касается зависимых переменных, то они могут быть в ней, а могут и не быть. Однострочных таблиц может не быть в документе. Однострочная таблица может быть первой, но не может быть, последней или единствен- ной таблицей документа. Относительно субординашш среди однострочных таблиц. Когда в доку- менте присутствует несколько однострочных табппщ и в шах фигурируют только аргументы, то субординация среди этих таблиц может считаться произвольной, если на каждом листе документа вьпшсаны‘ экземпляры всех однострочных таблиц. Субординация среди однострочных таблиц выражается тем, что экземпляр старшей таблицы не повторяется с каждым экземпляром младшей, а загшсывается однократно с первым ее экземпля- ром. При этом зависимые переменные из подчиненных таблиц считаются зависящими от аргумента своей таблицы, а также от аргументов всех старших таблиц. Однострочной таблице может предшествовать по субординации также однострочная таблица или одностолбцовая таблпща. Однострочной таблице могут подчиняться либо однострочная таблица, либо одностолбцовая, либо полная столбцовая табшща, либо полная строчная таблица, либо полная строчная и полная столбцовая одновременно, либо несколько полных строчных и/или полных столбцовых таблиц. 2.4.2. Для однострочных столбцовых табшщ примем следующую форму- лу описатшя:  X: ‘P29 "о: `  где HOR -— символ туша таблицы (от HOR дзота! — горизонтальный). В отличие от (2.2) и (2.4) в правой части (2.6) может быть не одно, а несколько наименований табшщы, когда данной одностр0Чной таблице одновременно подтшняются несколько таблиц.  И 13* 195 
2.4.3. Описание цепотпси однострочных таблпщ, представленных на рис. 6.2.1, выглядит так:  Х1 =НОК(Ё1‚ 351,10); X2 =H0R(§2,$12,...)§ т;  Xn=HOR($ns$12...naXaa Хр):  где ха, хр — наименоваъшя первой полной строчной и первой полной столб- цовых таблиц. 2.5. Одностолбцовых строчных табщщ на рис. 6.2.1 нет. Каждьпй экзем- пляр одностопбцовой таблицы состоит из одного столбца значений пере- менных вместе со столбцом наименоваъшй этих переменных слева от столб- ца значений. Подобно однострочным одностолбцовые таблицы должны содержать один аргумент. Место в документе одностолбцовых таблиц, а также их окружение такие же, как у однострочных. Для охшсаъшя одностолбцовых таблиц принята следующая формула:  x=VER(s01,s02 ---)-  За исключением различительного символа VER (от VER Пса! — ный) она во всем повторяет предыдущую формулу. 2.6. Матричное ядро. 2.6.1. Матрица — это прямоугольная таблица, левый столбец и верхняя строка которой «отведены под значеьшя двух аргументов, а остальные окна — они составляют так называемое матричное ядро - под значеъшя зависимой переменной. Матричная таблица есть обобщение матрицы; в ней может быть более одной строки и более одного столбца, занятых аргументаь/ш; матричная таблица, как и матрица, включает в себя матрич- ное ядро, наполненное значеъшями зависимой переменной. Вообще, матричное ядро выделяется среди других таблиц тем, что в нем фигурируют только значения зависимой перемеъшой, а также тем, что порождающие значения аргументов расположены и слева и сверху от значе- ния зависимой переменной. В столбцовых таблицах соответствие между значениями аргументов и зависимых переменных задается принадлеж- ностью одной строке; в строчных таблицах — принадлежностью одному столбцу; в матричных ядрах соответствующие значения аргументов unra- ются и слева в строке, и сверху в столбце. В столбцовых и строчных табли- цах обязательно присутствуют аргументы и, может быть, зависимые переменные; все аргументы той зависимой переменной, значения которой наполняют матричное ядро, находятся вне матричного ядра и принадлежат столбцовым и строчным таблицам, окружающим матричное ядро. Матрич- ное ядро содержит значения одной или, в крайнем случае, двух зависимых переменных. Матричного ядра может не быть в документе, но когда оно есть, к нему должны примыкать непосредственно слева и сверху полные столбцовая и строчная таблицы, несущие аргументы, от которых зависит зависимая переменная матричного ядра. Матричное ядро не может быть единственной таблицей документа и не может открывать документ. Матричным ядром может оканчиваться документ, но может быть и так, что непосредственно справа и/или снизу. к нему примыкают дополнительные столбцы и/или  196  (2.8)  вертикаль-  .- я» ‚шаг-л gig 
строки. В дополъштельньтх столбцах: может быть продолжение той послед. ней стопбцовой табшщы, которая граъшчит слева c матричным ядром, или новая столбцовая таблица; в дополнительных строках — либо продел- жение полной строчной таблицы, либо новая строчная, таблгща. 2.6.2. Формула отшсания табшщ типа ”матричное ядро” имеет следую- щий вид:  (‘P12 ‘P29 "о: где МАТ — различительньй символ матричного ядра (от MATrix — мат- рица) .  Когда в правой части (2.9) затшсано только одно наименоваъше, то это — наименоваъше единственной зависимой перемеъшой. Например, огшса- ние матричного ядра, представленного на рис. 6.2.1, выглядит так:  х = МАТ (ф). (2.10)  B правой части (2.9) может фигурировать наименоваъше еще одной зависимой переменной, значения которой делят вместе со значеъшями первой окна матричного ядра. Кроме зависимых переменных, в (2.9) записываются наименоваъшя подчиненных полных стопбцовой и/или строч- ных таблиц, когда оъш есть. Отметим, что если матричное ядро располагает- ся между строкаиш полной строчной таблгщы, то наименоваъшя тех строк, которые располагаются ниже матричного ядра, фиксируется не в формуле матричного ядра (2.9), а в формуле окаймляющей строчной таблицы (2.4); аналогично — в случае с полной стопбцовой таблицей.  § 3. Ormcanml документов, структурные диаграммы и макеты документов  Описаъше документа состоит из формул описания тех таблиц, на кото- рые разложим документ. Структурная диаграмма документа представляет собой совокупность верцшн и стрелок; рядом c вершинами тшшутся наименования переменных и наименования таблгщ; стрелки показывают субординацию таблиц и принадлежность переменных таблицам. 3.1. Одноключевые документы. На рис. 6.3.1 показаны два варианта структурных диаграмм и соответственно два варианта огшсания одноклю- чевого документа общего вида. Вариант а) относится к отображеъшю в виде полной стопбцовой таблицы, вариант б) —- B виде полной строчной таблицы. Общий вид одноключевого документа в варианте а) показан на рис. 6.1.4.  ТА БЛ ф‘  5 ТА БЛ ф! а фа фа фг  3 ТАБЛ = LIN (¢,,§,¢,, ¢,,.,.)  a д’ Рис. 6.3.1. Структурные штаграммы и описания одноключевого документа общего Вида: а) в варианте полной столбцов таблтщы, б) в варианте полной строчной таблицы  197  ТАБЛ = 00L(§b,~,<‘i,9b2,9D3,...) 
В левой части формулы описаъшя фигурирует наименоваъше единствен- ной таблицы одноключевого документа; ей дано наименование ТАБЛ. Вообще говоря, в качестве наименования таблицы здесь могло бы быть наименование документа .4’.' B правой части формулы — наименоваъшя столбцов (в варианте а)) или наименоваъшя строк (вариант б)) . Структурные диаграммы на рис. 6.3.1 открываются вершинами — наиме- нованияиш таблиц; из каждой такой вершины исходят стрелки, направлен- ные к наименованиям переменных, представлеъшых в таблице; в варианте полной столбцовой таблицы старшая вершина располагается над младцшьаи, и стрелки направляются сверху Buns; B варианте полной строчной таблицы старшая верцшна помещается левее младпшх, и стрелки направляются слева направо. 3.2. Двухключевые документы. Структурные диаграммы и отшсаъшя двухключевых документов представлены на рис. 6.3.2.  Т1 * т“ т1 = r1oR(z,,, дот , ф,‚2,„.‚т2) 51 фи 951 Ё . . Т2 T2 = COL (£2’¢‘2*‘ ’ фи?’ 56123’ ё?- фщт фал 501223. Е Т1 Ш _ _ _ фаз is $51.1 фиг. . T2 фи фи"  А з?” ‘ г‘  Ею. 5"1z,1 542,2 9912,:  T1 = 951,1 ‚ ф‚‚‹д‚...‚Т2 T2 = co‘-(E: а: ф12‚1›ф12‚2› фильм)  столбцовыи вариант  гм  . т1=ьпм(а‚,ф„‚,ф,д,...‚т2)  T2: N~(E,z,¢’17_’1 , ¢1z,2 ‚ ф42’з‚ооо)  2-5 тцп строчны вариант  жри т1= LIN (амид, ф,‚„...,т12 ); ф“ т2 соь(ё„,ф‚‚‚‚ф2д,...‚ T12); а т12= МАТ(ф,2) W 1  52 992,1 фал ° ° ° 2  Puc. 6.3.2. Структурные диаграммы и описания двухключевых документов: 1-тип — однострочная столбцовая и полная сюлбцовая таблицы; 2-й тип, столбцовый вари-  З-й тип  ‚анг — две полные столбцовые таблицы; 2-й ‘тип, строчный вариант — две полные  строчные таблицы; З-й тип — полная строчная таблица, полная столбцовая таблица и матричное ядро °  198 
J  Е)‘  В соответствии с классификацией п. 1.2 настоящей главы здесь приведе- ны диаграммы и огшсания документов трех типов. Общий вид двухключевого документа первого типа показан на рис. 6.1.6. Он разложим на однострочную и полную стопбцовую таблицы. Первая формула его описания относится к однострочной стопбцовой таблице. Этой таблгще присвоено наименование Т1‚ что отражено в левой части формулы. В правой части формулы записаны наименоваъшя перемеъшых, входящих в однострочную таблицу; последнюю позицию в правой части занимает наименование подчиненной полной стопбцовой таблицы; ей дано наименоваъше Т2. Вторая формула описывает таблицу Т2. B данном случае и во всех других случаях подчиненным таблицам даются наименования, для того чтобы описание документа и его структурная диаграмма стали более наглядными. Можно было бы обойтись без этого; например, в рассматриваемом случае двухключевого документа первого типа: Tl =HOR(€19 ¢1,1> ¢l,2a "ч Ф12‚1з Ф12‚2› Ф12‚3з °°'))° Это описание по содержаъшю тождественно данному на рис. 6.3.2; оно полутшлось из него исключением промежуточной переменной Т2; но оно более громоздкое, чем первое. Далее будет использоваться вариант описа- ния с включением в него наименований подтшненных таблиц и специальных формул для этих таблиц. Однако при том остается возможность огшсания по типу (3.1). Структурная диаграмма двухключевого документа первого типа пост- роена следующим образом: верхнюю вершину занимает наименование таблицы Т1; от нее расходятся стрелки в вершины-переменные, которые входят в состав однострочнойтаблицы; крайняя правая стрелка направле- на в вершину-наименование подчиненной стопбцовой таблицы; то, что старшая таблица принадлежит к типу HOR, отмечено надписью около стрелки, соедъшяющей старшую и подтшненную таблицы; если бы старшей бьша одностолбцовая строчная таблица, то рядом со стрелкой фигурирова- ло бы обозначение VER; нижняя часть диаграммы относится к полной стопбцовой таблице, диаграмма которой рассматривалась в предыдущем разделе. _ Описание двухключевого документа второго типа почти повторяет огшсание документа первого типа, когда они содержат одинаковые зави- симости. Двухключевой документ второго типа имеет в качестве старшей не однострочную или одностолбцовую таблицу, а полную стопбцовую или полную строчную таблгщу; что касается подчиненных таблиц, то у двухключевых документов и первого и второго типов они также либо полные столбцовые, либо полные строчные. В связи с этим огшсание доку- мента второго типа получается из описания документа первого типа заме- ной различительного символа HOR (или VER) Ha символ COL (1«um,LIN). Структурные диаграммы также почти совпадают. Отлитше в том, что во втором случае над стрелкой, содержащей вершины-наименования таблиц, нет надписи HOR (или УЕК);структурная диаграмма строчного варианта представляет собой повернутую на 90° вправо структурную диаграмму столбцового варианта.  199 
Третий тип двухключевого документа разложим на матричное ядро и окаймляющие его полные стопбцовую и строчную таблицы. Описание этого документа на рис. 6.3.2 открывается формулой, относящейся к полной строчной таблице; второй записана формула полной столбцовой таблицы; третьей — формула матричного ядра. Полной строчной таблице присвоено наименование Т1‚ полной столбцовой — Т2‚ матричному яд- ру - Т12. В отличие от первого И второго типов двухключевых документов здесь в роли старших выступают две таблицы — Т1 и Т2. Об этом можно судить по описанию документа: таблицы Т1 и Т2 в правых частях формул не встречаются. Это же обстоятельство отражено и на_ структурной диаграмме: вершины Т1 и Т2 занимают на ней крайние позиции. Относительно диаграм- мы следует еще отметить, что верхъшй горизонтальный луч из T2 И левый вертикальный луч из Т1 соединяются в вершине Т12. Остальные свойства описания и диаграммы двухключевого документа третьего типа обсужда- лись в связи с документами первого и второго типов. 3.3. Матричная таблтща на рис. 6.1.10 изображает одну шестиключевую зависимость. Она разложима на четыре полных столбцовых и две полных строчных таблицы, а также матричное ядро. Каждая из перечисленных таблиц содержит по одной переменной-аргументу. Структурная диаграмма этого документа представляет собой горизон- тальный ряд строчных таблиц и вертикальный ряд столбцовых таблиц,  пересекающихся в вершине — матричном ядре. Из этой последней исходит _  единственный луч к вершине — зависимой переменной документа. Каждая верцшна-таблица помимо луча, соединяющего ее с ее аргументом, имеет исходящий луч к подчиненной таблгще. Описание документа состоит из семи формул, показанных на рис. 6.3.3. Они не требуют комментариев, так как аналогичны тем формулам, ко- торые рассматривались в конце предыдущего раздела. 3.4. Многоключевой документ. На рис. 6.3.4 показаны структурная диаграмма и описание документа, изображенного на рис. 6.2.1. Параграф 2 в части иллюстраций опирался на этот документ, поэтому все формулы описания на рис. 6.3.4 уже обсуждались и не требуют комментариев. Что  T1=coL(5,,T2);  T2. = C0L(§2,T3); T5 ТЗ = T4 = T5 = LIN (E,5,T6); . T6=LIN (Если); T5 as TM= MAT(gb) T1I——»T2 Г тз г——т4 Гтм аб 51 Е; 75.3 E4 ¢123455  Puc. 6.33. Структурная диаграмма и описание шестиключевого документа, изображен- ного на рис. 6.1.1О.  200 
цв  our  г  x1= HOR(E,..€5..x,); 761 x2=:H0R(F,2,$,2,...);  ил; HOR (Elm ¢;2...n2xps ха); Хд= ¢12___np,xq); X4-'-‘. ¢12...npq9--'); же coL<E,.. ~;'5.2...,,,,q...,.,x >3 ‘кг ым‹г„„ед2...„ш хд):  £2 да x’,B=.L'N(Efi95Z12.../rozlcs---)’ ё” ¢12...na,6...}’ax); И Hog х = MAT(</J) Em ‘ 1 “ го, ‚ E ¢12.../I“ 996 див E9312.../7a,G J’ д? ‘ : ¢12...na«,G...7 др 75¢  овод.  гр ¢12...np га 52:2.../zpq Er ¢;;....npq...r' ф  Рис. 6.3.4. Структурная диаграмма и описание документа, изображенного на рис. 6.2.1  касается структурной диаграммы на рис. 6.3.4, то по сравнеъшю c преды- дущими диаграммами она имеет одну новую черту: вершине - последней однострочной таблице — подчинены не одна вершина-таблица, а две: пер- вая полная строчная и первая полная стопбцовая таблицы. 3.5. Макеты документов. 3.5.1. Если в одноключевом стопбцовом документе, изображенном на рис. 6.1.4, вычеркнуть все строки, за исключением строки наименований и верхней строки значений, и в строке значений вместо значений записать условные символы, определяющие форматы значений, а все остальное оставить без изменения, то получится макет одноключевого столбцового документа общего вида. Не изменяются: положение таблгщы на листе, размеры всех окон, наиме- нование документа, помещенное в определенном месте листа, а также до- полнительные сведения типа даты составления документа, фамилии соста- вителя и т.п. - здесь эти сведения не рассматриваются. Система вывода документов, располагая таким макетом и значениями переменных, восстановит породивпшй документ по следующим правилам: макет полностью перейдет в документ за исключением строки форматов,  14. IO.H. Иванов 201 
1% Ё  5&1 Е: ф: фа о 51 фал I $51.2 д го- Ё '3 Б 5,1 I V1.2 I ' а) 5:2 фал феи физ F 2 7'-12,1 52,2 7'-12,3 б) _ °_4" г" ‘Рт фиг 52 I ‘Pm фил 99123 F‘ Рт 5.2 - га | 52,1 52,2 I’-12,3 o) б _.._.i'.£ 9-" 51 F1 Ее F2 н фи Fm фа; F2,1 фал 71,2 ‘P2,2 F2,2 ‘--:—-Ilj ‚ E1 ¢1,1 ф1‚2 52 F2 F1 Fm F1,2 F12 ¢12,1 F12,1 д) фал 52.2 ‘Рад F122,: р г)  Рис. 6.3.5. Схемы макетов одноключевьтх и двухключевых документов: а) одноклю- чевого столбцового, б) двухключевого первого типа, в) двухключевого второго типа — столбцовый вариант и г) — строчный вариант, д) двухключевого третьего типа  которая заполнится первыми значениями вместо форматов; за первой стро- кой значеъшй последуют все остальные строки значений; если документ не поместится на одном листе, то в Korma каждого листа, кроме последнего, будет запись типа ”продопжение следует”, а в начале каждого листа, кроме первого, — запись ”продопжение документа такого-то”. Система вывода может обеспечить подсчет сумм по строкам и/или по столбцам, если на то будет специальное указание. 3.5.2. Вообще, макеты документов используются при выводе докумен- тов, когда к их внешнему виду предъявляются повышенные требования. Макет получается из окончательного документа исключением структур- но подобных частей; он включает в себя требования на формат печати выводимых значений.  202  ‚да 
На рис. 6.3.5 показаны схемы макетов всех одноключевых и двухклю. чевых документов, которые обсуждались в этой главе. Оша дают достаточ- ное представление о соотношентш макета и документа. Буквами F, nomemennbnvm B окна макетов, обозначены форматы выво- димых значений. Формат задает максимальное тшсло позиций по горизонта- ли, которые могут занимать значеъшя в окне; формат определяет место пробелов в окне, когда значения неполностью занимают окно; формат ука- зывает положение в окне десятичной точки и чшсло позиции, отводимых под величину порядка, когда выводимое значеъше есть действительное число, 3.5.3. Макет включает не всю информашао, которая содержится в описа- нии документа: в макете не находят отражения таблтщы, составляющие до- кумент, и не указывается Субординация таблиц. Поэтому для двух- и мно- гоключевых документов макеты документов должны дополняться охшса- ниями этих документов.  § 4. Последовательности значений  На бумаге функциональные зависимости общепринято изображать двумерными документами. Менее наглядный, но также адекватный спо- соб изображения — в виде одномерных последовательностей наименований и значений перемеъшых. E. Обычно ввод документа в ЭВМ предусматривает отдельно ввод описа- mm этого документа и отдельно ввод‘ значений переменных. Значеъшя по  определенному порядку считываются с документа и в памяти ЭВМ органи-  зуются B последовательность значений. Описание документа также представ- ляет собой последовательность, но из наименоваъшй переменных. Такши образом, при вводе документ преобразуется в две последовательности: последовательность наименованшй и последовательность значеъшй. При выводе описание документа и последовательностгзначетшй преоб- разуется в документ. Описание документа определяет составные таблицы и размещение в них переменных; последовательность является источником значений для окон таблиц. Предыдущий параграф касался описаншй документов; здесь речь будет идти о последовательностях значеншй, точнее, о правилах формироваъшя этих последовательностей, обеспечивающих эквивалентность последователь- ности значеншй и порождающего или порождаемого документа. 4.1. Общие правила формирования последовательностей значений. В до- кументах каждое значение характеризуется двумя координатами: номером столбца и номером строки. Последовательность есть одномерное представ- ление, H каждое значение в ней характеризуется своей позицией и/или сопутствующим указанием. Для эквивалентности документа и последова- тельности необходимо, что бы координаты каждого значения из документа взаимно однозначно преобразовывались в характеристики того же значения из последовательности. В этом случае документ и последовательность значе- шип? отображают одъш и те же функциональные зависимости. Общие правила формирования последовательности касаются расположе- ния значений, а также состава служебной информации, используемой в со- путствующих указаниях.  14* ' 203 
4.1.1. Любая таблица может быть считана по столбцам или по строкам. В приъщипе возможны и иные порядки считывания, но именно эти два яв- ляются технологически простыми. Примеъштельно к однострочным и одностолбцовым таблицам оба поряд- ка дают одинаковые расположения значеъшй в последовательности. Полные столбцовые и строчные таблицы, считанные по столбцу, порождают после- довательности, отличные от тех, которые получаются считыватшем по стро- ке. При стштываьши по столбцу полной столбцовой табшщы оказываются собранными: подряд значения каждой переменной, в то время как при чте- нии по строке той же табшщы подряд располагаются значения разных пе- ременных, объединенные соответствием одному PI тому же значению аргу- мента. Стштьтвание полной строчной табшщы располагает подряд значения одной переменной ходом по строке и значения, принадлежащие одной реа- лизации функциональных зависимостей, — ходом по столбцу. Последо- вательности, полученные считыванием матричного ядра по строке и по столбцу, также разнятся. Таким образом, для трех из пяти типов таблиц положение значения в порождаемой последовательности зависит от порядка считывания порож- дающей таблицы. Выбор какого-то одного порядка делает определеъшым правило размещеъшя значеъшй в последовательности. В качестве такого избранного варианта далее будет рассматриваться стштыватше табшщы по строке. При выводе сначала печатается на листе первая строка табшщы, затем вторая и т.д. Построчньй вывод документа обусловливается конструкци- ей печатающего устройства. Это обстоятельство определяет порядок распо- ложения значеншй в подготовлеъшой для вывода последовательности значе- H1071: первый отрезок последовательности должен содержать значения из первой строки порождаемой таблицы, второй отрезок — значения из второй строки и т.д. сказанным вьпце определяется правило расположения значений в после- довательности, эквивалентной порождающей или порождаемой таблгще. 4.1.2. Вторая характеристшса значения в последовательности — сопут- ствующее указатше. Применение тех или иных сопутствующих указаъшй будет обсуждаться ~13 последующих пунктах этого параграфа; в этом разде- ле перечисляются пришитые здесь знаки служебной штформатши, исполь- зуемые в этих указатшях. 1°. Вертикальная черта выступает как разделитель значешитй, принадлежа- щих соседним окнам эквивалентной табшщы; две подряд идущие верти- кальные черты означают, что значение, которое должно быть между ними, отсутствует и в эквивалентной таблгще соответствующее этому значению окно пустое. 2°. Запятая используется как разделитель элементов множествеъшого значения или разделитель значеншй из одного окна матричного ядра. 3°. Число в угловых скобках — номер столбца в эквивалентной таблтще и одновремешю разделитель значений. 4°. Число в квадратных скобках — номер строки в эквивалентной таблгще и одновременно разделитель значешай. Помимо перечисленных символов, в последовательности могут быть только значения. 204  ————\ — _.j..__ ..._....:—-7. ___..—__. 
4.1.3. Последовательность оформляется по следующим прёвилам; — перед последовательностью записывается ключевое слово SEQ (от SEQuence — последовательность) ‚наименование последовательности, совпадающее c наименованием эквивалентной таблицы, и знак pa. венства.; - после знака равенства должно следовать первое значение последо- вательности, занимающее в эквивалентной таблице левое верхнее окно, либо, если первое значение не определено, вертш<альная черта или взятый в угловые скобки номер первого определенного зна- чения; ' — закрывающий символ последовательности — точка сзапятой; этот же символ выступает как разделитель между последовательностями, когда их несколько: 4.2. Полные столбцовые табшщы. В этом и двух последующих пунктах бу- дут рассматриваться способы организации последовательностей, эквива- лентных пяти типам табшщ, после чего речь пойдет о последовательностях, эквивалентных документам. 4.2.1. Изображенная на рис. 6.1.4 полная столбцовая таблица эквивалент-  на описанию (рис. 6.3.1) вместе c последовательностью значений ( рис. 6.411).  Последовательность на рис. 6.4.1 получается считыванием по строке порождающей табшщы (рис. 6.1.4); перед каждым значением запи- сывается взятый в угловые скобки номер столбца, которому принадлежит значение; если значение не определено, то номер опускается; после каждо- го отрезка последовательности, равного строке в порождающей таблице, ставится номер следующей строки, взятьй в квадратные скобки; после последнего такого отрезка ставится точка с запятой. Данная система сопут- ствующих указаний однозначно переводит значеъшя из порождающей табли- uh} B последовательность. . Наоборот: описание — (рис. 6.3.1) вместе c последовательностью (рис.6.4.1) эквивалентны таблице — (рис.6.1.4). Из огшсания следует, что по- рождаемая таблица принадлежит к числу полных столбцовых; верхнюю стро- ку в ней должны занимать наименования переменных, перенесенные без из- менения порядка из описания; следующие строки наполняются значениями из последовательности: первая строка значений в порождаемой таблице соответствует отрезку последовательности до номера 2 в квадратных скоб- ках, вторая строка — отрезку от номера 2 до номера 3 в квадратных скоб- ках и т.д.; значение из последовательности должно попадать в тот столбец, номер которого равен номеру в угловых скобках перед значением. Приня- тая система сопутствующих указаний однозначно определяет каждому значению из последовательности его место в таблице. Обсуждаемый способ оргаъшзации последовательности называется плавающши. Его уместно применять в тех случаях, когда подавляющая  SEQ .«v°= mu» S‘) ‹2› г“) (3)419) <4>w_§1~1), w§1»2),. . . [2] <1>wS2)<2>z(2)<4>w§2»1),wgm), . . . {3} <1>w§3)<2>£(3)<4>w§3»1),w§3»2),.. . ;  Puc. 6.4.1. Последовательность значений излолной столбцовой табшщы, изображенной на рис. 6.1.4 — плавающий способ  205 
часть значений в последовательности не определена, а определенные значе- ния расположены не подряд; эквивалентная таблтща вьцлядит как почти пустая, и определенные значения в ней располагаются изолированно одно от другого. 4.2.2. Позиционный способ предпочтителен при условрш, что неопреде- ленных значеншй в последовательности нет или почти нет и om»: расположе- ны не подряд. При позиционном способе сопутствующие указания — только вертикаль- ные черты; после каждого значения, кроме последнего, ставится раздели- тепь — вертикальная черта; вертикальная черта ставится и в том случае, когда значение не определено, при этом она непосредственно примыкает к предшествующей вертикальной черте. На рис. 6.4.2 изображена организованная по позиционному способу последовательность, эквивалентная в части значений полной столбцовой таблице (рис. 6.1.4). Пусть какое-то избранное значение в таблгще характеризуется номером столбца х и номером строки у; номер N разделителя — вертикальной черты, примьжающей непосредственно справа к тому же значеншо в порождаемой эквивалентной последовательности, определяется по следующей формуле:  N=x+(y— l)X, (4.1)  где Х — тшспо столбцов в таблгще. Формула (4.1) действительна для всех значений, за исключением правого нижнего в таблице, которое в последо- вательности не сопровождается правой векртикальной чертой. Наоборот: если задан номер N разделителя в последовательности, ас- социиров анного c каким-то значеъшем, то координаты х и у этого же значе- ния в порождаемой эквивалентной таблице определяются такими фор- мупами:  y=[N/X], x=N—(y—l)X. (4.2)  B (4.2) величгша Х есть число переменных в описаъши таблицы (что сов- падает c числом столбцов в порождаемой таблтще); операция, изобра- женная квадратными скобками, заменяет число в квадратных скобках на ближайшее старшее целое число. Формулы (4.1) ‚ (4.2) устанавливают взаимно однозначное соответствие таблицы и последовательности значений, когда последняя организована по позиционному способу. 4.2.3. Если длина значения какой-либо перемеъшой строго фиксирована и это отражено в описании штформационного объекта, то в последователь- ности каждое значеъше этой переменной может не разделяться c каждым соседним значением слева или c каждым соседним значением справа. Если  SEQJV°= .p§1): 2(1):¢§1)Iw§1’1),w§"21:..1...Iw§2)Is(2)1Iw§’»‘), ф$2›2)‚...ц... Iw£3)ns(3)u|w§3~1’,w§3-’),...u..  - 3 Puc. 6.4.2. Последовательность значений из полной столбцовой таблицы, изображенной на рис. 6.1.4 — позиционный способ  206  Ё ! ’. 
несколько подряд идущих переменных имеют строго фъжсированные дли- ны значений, которые указаны в описании информационного объекта, то каждый блок этих эначеъшй может не иметь разделителей внутри себя и с одъшм из соседей. Возможность опускать разделители распространима и на тот случай, когда значеъшя не являются элементарными. При этом должны иметь оди- наковые длины все элементы всех шюжественных значений и, кроме того, число элементов в каждом множественном значеъши должно быть постоян- ным. Факт постоянства длины значения элементарной переменной следует из формулы свойств значений, которая должна быть в описании информацион- ного объекта; неизмеъшость числа элементов в значениях множественной переменной также должна следовать из описания информационного объекта.  Обсуждаемый способ организации последовательности называется слитным. Его целесообразно применять к последовательностям, считы- ваемым с вводимых документов; сокращение вводимых вручную знаков (в данном случае разделителей) дает экономшо трудозатрат. Указание о том, что вводимая последовательность оргаъшзована по слит- ному способУ‚ делается в описании таблгщы следующим образом: если в последовательности не разделяются значения соседъшх переменных, то в описатши вместо запятой между наименованиям этих переменных ставит- ся знак "+”; если не разделяются элементы каждого значения тожествен- ной переменной, то в описании таблицы после разделителя — запятой или знака ”+” и непосредственно перед наименованием множественной перемен- ной ставится знак ”V”. Статный способ естественно рассматривать в сочетаъши с плавающим или позитшоъшым, поскольку чаще всего переменные, характеризующиеся посто- янством длины своих значений, сочетаются в таблицах с переменными, та- кими свойствами не обладающими. При слитно-позиционном или слитно- плавающем способах в последовательности вместе со значениями, имею- щшии разделители справа и слева, есть значения, не имеющие одного или сразу двух сопровождающих разделителей. Подряд идущие значения, не разделенные между собой вертикальными чертами или числами в скобках, составляют блок значений. Блок наименований — это совокупность под- ряд идущих в описании таблицы наименований переменных, соединен- ных знаком ”+”. Каждому блоку наименований соответствует столь- ко блоков значений B последовательности, сколько строк в столбцовой таблице. Блоков наименоваъшй может быть не один, а несколько. В блоке все переменные, за исключением, может быть, одной, должны иметь значения фиксированной длины. Место этой одной в блоке — произ- вольное. Соотношение между коордъшатамизначеъшя в таблице и номером разде- лителя, ассоцшароваътного с тем же значением в последовательности, при слитно-позиционном способе выглядит иначе, чем (4.1). Пусть х*, х" — номера столбцов, значения из которых соответственно открывают и замы- кают каждый блок B последовательности; Y— полное число строк в табтш- це; тогда номер N5 разделителя, примыкающего непосредственно справа к одиночному значению или к блоку, следующим образом зависит 207 
от координат х, у.:  Y_1 ан: Ns=N(x.y)- 2 ‘Ё: 6[N(x,y)—z°X-1'1, 1  i=-0 j=x* +  _ О ПРИ Ё< Ёо (0(Ё_Ё0)—{ 1 при где функция N (x, y) дается соотношением (4.1). С каждым разделителем N5 однозначно связан его адрес в последова- тельности, так что положение одиночного значения (х, у) исчерпывающе характеризуется номерами окружающих его разделителей 1\/5(х, y) — 1 и N5(x, y). Что касается значеъшя (х, у) из блока, то его адресА(х, у) в пос- ледовательности определяется следующими формуламш:  А(х.у)= A(x, у) +L(x*) +L(x* + 1) + +L(x— 1), A(x, y) = 74(x, y) —L(x-=-) —L(x** _ 1) _ —L(x). (4.4)  Здесь А (х, у), А(х, у) — адреса левого и правого разделителей, окружаю-  щих блок, в котором содержится значеъше с координатами х, у; эти адреса однозначно определяются номерами N5(x, y) — 1 и N5(x, y); L(x*), L(x* + 1), ..., L(x), ..., L(x**— 1),L(x**) — длины значений; здесь в скоб- ках загшсаны номера столбцов, значения из которых попадают в блоки и характеризуются постоянством длгшы. Верхней формулой надлежит поль- зоваться, когда столбец со значеъшями нефиксированной длины правее х; нижней формулой — когда отмеченный столбец левее х; если в блоке все переменные имеют значения фиксированной длины, то можно пользовать- ся c paBHbIM успехом верхней или ъшэкней формулами. Формулы (4.3)-(4.4) устанавливают связь А(х‚ у) для слитно-позицион- ной оргаъшзацша последовательности. При слитно-плавающем способе положеъше одиночного значения в последовательности однозначно задает- ся сопутствующими: указаниями: перед значением должны быть угловые скобки c числом х — номером столбца, которому принадлежал значение; справа значение ограничивается открывающей угловой или квадратной скобкой; номер строки у, в которой находится значение, записан в бли- жайших слева квадратных скобках. Когда значение (х, у) входит в блок, то его положение задается поло- жением этого блока и местом значения внутри блока. Положение блока определяется аналогично положению одшточного значения; только перед блоком в угловых скобках должно фигурировать число х* — номер столб- ца, значения из которого открывают блоки. Адрес значения А (х‚_у) , в ко- нечном счете, исчисляется по формуле (4.4), в которой А (х, у), А (x, y)- адреса ограничивающих блок левой закрывающей и правой открывающей угловых скобок. Формулы (4.3) и (4.4) устанавливают соответствие между коордшта- тами х, у значения в порождающей таблще и адресом А (х, у) тою же зна- чения в эквивалентной последовательности. Обратное соответствие здесь не обсуждается, потому что, как бьшо сказано в начале данного раз- дела, применеъше слитного способа целесообразно только при вводе таблиц.  208  4--——.. 
4.2.4. Позиционньпй и плавающий или слитно-позиционный и спит. но-плаваюший способы не являются взаимоисключающими и могут одновременно использоваться в пределах одной последователь. ности. Когда несколько подряд Imymnx 3HaueHm71 не определены, а затем нес. колько подряд идущих значеншй определены, то целесообразна следующая организация отрезка последовательности, содержащего эти значения. После того значения, которое непосредственно предшествует серии неопределен- ных значений, пшцется в угловых скобках номер столбца и первое опреде- ленное значение, затем-вертикальная черта-разделитель и второе опреде- ленное значение и т.д. При смешанном способе одновременно достугшы номера в угловых и квадратных скобках, а также вертикальные черты в качестве знаков слу- жебной шформашш. Номер столбца занимает три или больше позиций, поэтому им уместно‘ пользоваться, когда отсутствует не менее двух под- ряд идуцшх значений. Если же не определены одно или два подряд идущих значения, то экономнее показывать это вертикальными чертами, записан- ными подряд. Номер в квадратных скобках как разделитель строк строго нужен только в том случае, когда первое непустое окно в нижней строке оказывается правее последнего непустого окна в верхней строке. Если меж- ду значениями из этих окон стоит только взятый в угловые скобки номер столбца, которому прштадлежит второе значение, то оно припшцется верх- ней строке; если между значениями стоит взятый в квадратные скобки номер нижней строки, а за ним — в угловых скобках номер столбца, то зна- чение прштшцется нижней строке. При смешанном способе жестко не регламентируется выбор между плавающими и позгщиотшыми служебными знаками, и, вообще говоря, любой отрезок последовательности может быть организован любьпи из двух способов. Естественно стремиться к меньшему количеству служеб- ных знаков в вводшиой последовательности, но и такая ориенташая не исключает неоднозначности последовательности. Причиной неопределен- ности является наличие двух грушт выразительных средств, равно адекват- ных и эквивалентных между собой. Примененные по отдельности плаваю- mm? и позгщионньтй способы однозначно преобразуют таблицу в эквивалент- ную последовательность. И часть таблтщы преобразуется в отрезок после- довательности также однозначно, если способ организашш этого отрезка выбран одшт — плаваюцшй или позиционный. Еще следует добавить, что последовательность в целом или любой ее отрезок, организованные по пла- вающему способу, однозначно перестраиваются в позиционно организован- ные последовательность или отрезок; обратная перестройка также однознач- ная. Так что присущая смешанному способу неоднозначность касается толь- ко внеишего вида порождаемой последовательности. 4.3. Полные строчные табшщы. В последовательностях, эквивалентных полным строчным таблгщам, применимы плаваюшшй, позициотшый, слит- ный и смешанный способы организации. Первые два показаны на рис. 6.4.3. Из-за того, что общий вид полной строчной таблтщьт не представлен на пред- шествуюцшх рисунках, источником значеншй для последовательностей на рис. 6.4.3 служит изображенная на рис. 6.1.4 полная столбцовая таблтща, которая в даъшом случае считывается по столбцу.  209 
а) SEQ.~'=<1) W1“) ‹2› wf2’<3>wf3)... [21<1>.s“)<2>2(2)<3>s(3)... [3]<1> 44*)... [4]<1>w,“"), w,“*’)...<2> u«,(2"), w,(2'2), ‹з› w,(3*”,w,(3"),..., б) $Е<М°= ФР’: IlI;(2)l.IlI.(3)l---l£(1)l_£ т: г ‘з’: ...: 44":-11...: ФР” ‚ w.“"’,...a I „Р“. w,"'2’,... I ФР”, ФЁЗ”) I  Puc. 6.4.3. Организованные по плавающему — а) и позиционному — б) способам после- довательности, эквивалентные полному строчному документу  Общий вид описания полной строчной таблицы приведен на рис. 6.3.1, 6. 4.3.1. Верхняя последовательность на рис. 6.4.3 вместе с огшсанием на рис. 6.3.1, б эквивалентны полной строчной таблице, которая получается транспонированием полной столбцовой таблицы, изображенной на рис. 6.1.4, и наоборот: таблъща эквивалентна последовательности вместе с описанием. Доказательства этих фактов проводятся аналогично тому, как это делалось в разделе 4.2.1 предыдущего пункта. ’ Числа в угловых скобках, используемые как служебная информация плавающего способа, — это номера столбцов и одновременно номера пере- менных, когда в роли порождающей выступает полная столбцовая табли- ца. В рассматриваемом случае эти числа — также номера столбцов, но не номера переменных, а номера реализашипй функциональных отношений. 4.3.2. Формулы позиционного способа (4.1)-(4.2), определяющие связь между координатами значения в таблице и номером ассоциированного с нши разделителя, остаются действительными и в том случае, когда табли- ца -— полная строчная. Этим устанавливается факт взашиной однозначности полной строчной таблгщы и эквивалентной последовательности при пози- ционном способе ее организации. 4.3.3. Возможность опускать разделители, рассмотренная в разделе 4.2.3 применительно к полным столбцовым таблицам, реализуема и здесь. Если переменная, которая заншиает в таблице строку у, имеет все значения оди- наковой длгшы L (y), то в последовательности разделители между ншии могут быть опушены. А (х, у) - адрес значения в блоке, составленном толь- ко из значений переменной у, записывается следующим образом (ср. (4.4)):  A(x.y)=.«i(V)+(x—1)fi O’); (4-5)  А (у) —- адрес вертикальной черты или закрывающей угловой скобки, не- посредственно предшествующих блоку значений у. ' Если переменная у имеет все значения одинаковой длины L (у) и следую- шая за ней переметшая у + 1 также имеет все значения одтшаковой длины L (y + 1), то значения переменной у в последовательности могут не разде- ляться между собой, значения переменной у + 1 также могут не разделяться между собой и, кроме того, может быть опущен разделитель между блоком значеншй у и блоком значеншй у + 1. Указание о применентш слитного (слитно-плавающего или слитно-пози- тшонного) способа организации последовательности делается в описании таблицы: если непосредственно перед наименованием переменной стоит знак ” V ”, то ее значения не разделяются; если перед каждым из двух  подряд идущих наименований стоят знаки ” V ” И между наименованием '  первой переменной и вторым знаком ” V ” стоит запятая, то значения обеих 210 
переменных не разделяются внутри блоков, а блоки разделяются; если вместо запятой стоит знак ’.’+”, то и блоки не разделяются между собой, Отметим, что указания о плавающем способе для рассмотренных выше пол- ных столбцовых табшщ делаются ъшаче, Возможность экономят на разделителях распространяется и на множест- венную переменную в составе полной строчной таблицы, когда все значения этой перемеъшой разложимы на одинаковое число элементов и все элемен- ты имеют одинаковую длину. Указание относительно слитного способа делается для множественных переменных так же, как и для элементарных, но в случае множественных переменных это указание отменяет разделители между значениями (вертикальные черты или числа в угловых скобках), а также разделители между элементами значения (запятые). 4.3.4. Смешанный способ организашш последовательности так же upma- НИМ для полных строчных таблтщ, как и для полных столбцовых. На том и на другом объектах правилен его применения и свойства продуцируемых последовательностей одинаковы. 4.4. Односгрочньте столбцовые табшщы, одностолбцовые строчные таб- шщы, матричные ядра. В смысле формированияэквивалентных последова- тельностей первые два типа таблиц, указаьшых в наименовании: пункта, являются частными случаями своих полных типов и поэтому не требуют разбора. ' Матричное ядро в составе двухключевого документа третьего типа изоб- ражено нарис.6.1.8; его описание дано на рис. 6.3.2; последовательности, считаьшые c таблщы и организоваьшые по плавающему и позиционному способам, показаны на рис. 6.4.4; слитный способ здесь также возможен, и указание о его применении делается наподобие полных строчных таблгщ. Последние три тшта таблиц как источники образования последователь- ностей не привносят каких-либо новых требованшй к совокупности выра- зительных средств, используемых при формировании эквивалентных последовательностей. Здесь так же,каки в случае полных столбцовых и строчных таблиц, пршиеншиьт плавающий, позиционный, слитный и смешан- ный способы, и соответствие между порождающей таблицей и порождаемой последовательностью получается взаимно однозначным. 4.5. Двухключевые документы. Преобразования одноключевых до- кументов в эквивалентные последовательности — это преобразоваъшя либо полных столбцовых, либо полных строчных таблиц; оъш уже рассмот- рены в пп. 4.2 и 4.3. Последовательности, эквивалентные многоключевым документам, образуются соединеъшем тех последовательностей, которые порождаются составляющими эти документы таблицами. Здесь речь будет идти о двухключевых документах.  а) SEQT12 = <1>w§‘,")<2>¢§1;”<3> 11:83)... [21<1>xpf§*‘)<2>xp§§”) ‹з› #133) [3] <1>w§3"’<2> w§3”)<3> 4'33) б) SEQT12 = ¢1(:92)| ml w1(3:1)l ‘p1(323)l т | 44391)‘ ф(3э2)| ¢,1(2o3)].";  12  Puc. 6.4.4. Организованныепо плавающему —а) и позиционному — б) способам пос- ледовательности, эквивалентные матричному ядру на рис. 6.1.8  211 
4.5.1. На рис. 6.1.6 изображен общий вид двухключевых документов первого типа в столбцовом_варианте. Рассматриваемый документ представляет собой совокушюсть пар таб- лиц — однострочных столбцовых и полных столбцовых. Последователь- ности, эквивалентные тем и другим, обсуждались в предшествующих пунктах даннрго параграфа. Последовательность значений, эквивалентную документу в целом, естествеъшо образовать как соединение последо- вательностей, получаемых из составляющих таблиц. На рис. 6.4.5 представлена обсуждаемая совокупность последователь- ностей. Открывающая формула включает ключевое слово VAL (от VAL ues — значения), знак равенства и наименование документа; признак окончания — ключевое слово FIN; между открывающей формулой и признаком „окончания находятся последовательности; каждая из них оформлена как отдельная последовательность, эквивалентная своей табли- це; наименования таблиц взяты из огшсания документа, которое` приведе- но на рис. 6.3.2; разделители между всеми формулами — точки с запятыми. Существеъшо, чтобы последовательность из однострочной таблицы непосредственно предшествовала последовательности из той полной табли- цы, значеъшя из которой обусловлены значением аргумента из первой. На рис. 6.4.5 представлены последовательности, оргаъшзоваъшьхе по позиционному способу, но плавающий, смешаъшый и, если это возможно, слитный способ здесь также примеъшмы. 4.5.2. Двухключевой документ второго типа в столбцовом варианте изображен на рис. 6.1.7, а его огшсаъше -— на рис. 6.3.2. Как следует из огшсания, документ такого типа разложим на две полные столбцовые таблицы. . Возможны два варианта образования последовательностей, эквивалент- ных даъшому документу: в виде двух последовательностей, каждая из которых эквивалентна своей таблице, и в виде единой последовательности. В последнем варианте эквивалентная последовательность получается чтением подряд строк документа без выделения значеъшй, принадлежащих одной и другой таблтщам. Таким путем полученная последовательность содержит вперемежку значеъшя одноключевых и двухключевых перемен- ных: сначала группа значеншй одноключевых переменных; затем сколь-  VAL ==4{';  SEQT1= 2f‘)I w,(j,’I ФЕ)!  8Е<т= £.“’I та’! w.‘;::’I ‘быт’. Ф5::;'*’.--г м: z."’I ‘жёг’ I w.‘:::"’. ¢,(;;;'=’, ...I ...I г?’ I жижа) I wf;;§"’. w,‘;;;’=’, ...I SEQT1 = sf’) I ФЕ,’ I w,‘f,’I SEQT2= s,“’Iu«,‘;;;’Iwf:;;’Iwf:;;'*’, fig"), ...I ...l£,(’)lw,(::§)lw,(:::)l FIN Ip,(;;;"), Ipf;;;"), I _...I sf") I чёт) I w,(§;§) I uI»,(§;;'*), lII1(22:’3;2), ...I  Puc. 6.4.5. Организованная по позиционному способу последовательность значений, эквивалентная двухключевому документу первого mna — рис. 6.1.6  212 
ко-то групп значений двухкпючевых переменных, различающихся порож. дающиьиш значеъшями второго аргумента; снова группа значений одноклю- чевых переменных, соответствующих новому значению первого аргумен- та, и т.д. Из-за того, что при каждом значении первого аргумента ъшсло значеъшй второго аргумента, как правило, нефиксировано и наперед неизвестно, невозможно определить границу, где кончаются значения порождеъшые одним значеъшем первого аргумента и начинаются значения, порожденные другим его значением, не имея в‘ последовательности специального указа- теля. Отсюда вытекает, что позиционный способ оргаъшзации последова- тельности с его однотипными разделителями»: недостаточен. Плавающий способ достаточен, ибо среди его сопутствующих указаний фигурируют и те, которые отмечают требуемую границу; но плавающий способ неэко- номен, когда в порождающей `таблгще нет или почти нет пустых окон. На рис. 6.4.6 приведена последовательность, эквивалентная документу на рис. 6.1.7 и организованная по смешанному способу, который является минимальной модификацией позиционного: большая часть разделите- лей — вертикальные черты; разделитель между группаьш, соответствую- щими одному значению старшего аргумента, — номер широкой строки в квадратных скобках. Теперь с каждым значеъшем в последовательности связываются два номера: N — номер вертикальной черты, ближайшей справа к значению, и 17 -» номер цшрокой строки, указанный в ближайпцих слева квадратных скобках. В обсуждаемом документе каждое значеъше характеризуется не двумя, как прежде, а тремя координатаыш: номером столбца х, номером узкой строки у и номером цшрокой строки 17. Для значеъшй двухкпючевых пере- менных такое число характеристик естественно, так как в функциональной связи участвуют три переменные. Что касается одноключевых, то для них достаточно двух номеров: х и 17; третий номер пригшсывается искус- ственно: значение полагается принадлежащим верхней узкой строке у внутри той цшрокой 17, где оно записано. Номер х — сквозной по столбцам, номер у стштается по правому обрезу документа, номер 17 — no левому. Прямое и обратное соответствия между характеристикам значения в последовательности (N, 17) и в документе (х, у, 17) задаются следуюшиьш  VAL =./V; sEQT1._'r2 = 6}) и ф (:3, I up ‘Ё, I... |£(l2)lIlI(1l5}1) I 1118153 I tlI(11§,l§l) ‚ (19172) 2 72 7 7 7 7 4:12’, ....|...1s(,)Iw(1‘2,1’IIw(§:§).¢(§:§) ,...:...| £‘§)Iw“1'§’,’l1Iw(‘1'23,’3‘) ,w(l‘f52) ,...l...|...| ш =<:>w<:>,1 «из: «.~.1s<:>~<:»;,>. «ma,» w<3;3:>»»<:;3:>...~» (292, ( 7 7 ‘Ё 2 "” 124"” 12.2"” 12,31) ' "’122?32)’°°" гетман M323»w<i2:>.w<:;?:>....~...«...= FIN  Puc. 6.4.6. Последовательность, эквивалентная документу.на рис. 6.1.7 и организован- ная по смешанному способу, — вариант единой последовательности  213 
формулами: N= (n—1).(X1 -1) + (у -1>_x2 +x;  = [N-(77-’1)(X1 -1) y’ X x=N"(77—1)(X1 -1)—(J’-'1)X2- (4-5)  Здесь X1, Х; — гшсла столбцов в одноключевой и двухключевой частях до- кумента соответственно; квадратные скобки обозначают ту же операцию, что и в (4.2) . Прямые следствием из формул (4.6) является взаимная однозначность последовательности и документа при том способе организацша последова- тельности, который бьш назван ишъшмальной модификацией позиционного. Такой же вывод действителен и тогда, когда в качестве объекта примене- ния способа фигурирует документ более общего вида — двухключевой столбцовый документ второго паша с одноключевыми переменными: слева и справа от двухключевых, как это имеет место в ”анкете”. До сих ›’пор рассматривался вариант единой последовательности без раз- деления значений, принадлежащих разным таблицам. Оформление этого ва- рианта характеризуется тем, что в позиции наименования последовательнос- ти „фигурируют наименования обеих таблиц, разделенные точкой (см. рис. 6.4.6) . ‚ Вариант двух последовательностей, эквивалентных двум составляющим табшщам Tl и Т2, представлен на рис. 6.4.7. Первая последовательность оргаъшзована позиционным способом, вторая — смешанным. Разделители во второй последовательности — вертикальная черта и взятый в квадратные  скобки номер широкой строки; номер ставится начиная со второй пшро--  кой строки. Две последовательности, соответствующие Т1 и Т2 и организованные указанными способами, могут быть объединены в одну, совпадающую с изображенной на рис. 6.4.6. Объединеъше должно происходить следующим образом: первая последовательность разделяется на отрезки, равные стро- кам в исходнойтаблице Т1; это может быть сделано, так как тшсло значе-  ХЁЁТЁС’ £“1’:w‘1‘,’1 Iw“,22:'...I2"1)Iw‘f,’1Iw‘f,{:...; SEQT2= £(‘2)Iw“;2, Iw"1';,),Iw‘,‘2’f5" ,w‘,‘5f§2) ,...|...I£‘§’I11«‘,‘2’f1’ I nw(1‘5f5‘),w‘f5:,;” ,...I...|£(23)|\#(ll’23:)1I|W(1l§?§l)»IlI(ll§?§2),---' [2] £(12)Iw‘fi’;,)l „мзду; |Ф(Ё5Ё51)‚Ф(ЁЗ”‚‘...|...| ее э шаг: и шаг; в w‘i2§‘,’;’»w‘fa?s” ее и w<‘-;»:3. тег; и шаг” . »»<:;?:> . в в - э о в а FIN  Puc. 6.4.7. Последовательности, эквивалентные двум таблицам, которые составляют документ на рис. 6.1.7  214 
ний в строке Т1 задается описаъшем; первый такой отрезок записывается перед первым значением SEQT2; второй — сразу за указателем [2] ‚ тре- тий — за указателем [3] и т.д.; разделители между последними значе- ниями из каждого отрезка и первыми значениями: после номеров в квад- ратных скобках в SEQT2 - вертикальные черты. Процедура объединеъшя реализуется единственным образом; обратная процедура существует итакже единственна. Из этого вытекает, что последо- вательности на рис. 6.4.6 и рис. 6.4.7 находятся во взаимно однозначном соответствгш, и, значит, последовательность на рис. 6.4.7 и документ на рис. 6.1.7 эквивалентны. 4.5.3. Двухключевой строчный документ второго типа подобно столбцо- вому разложим на две таблицы, и эквивалентные последовательности могут представляться в дв_ух вариантах: в варианте двух последовательностей, од- на из которых эквивалентна одноключевой части документа, а вторая — Двухключевой, и в варианте единой последовательности. Но единая после- довательность в данном случае имеет одну грашщу между значениями од-  НОКЛЮЧСВЫХ И ДВУХКЛЮЧВВЫХ l'I3peMeHHbIX. ПОЭТОМУ ПОСЛЗДОВ ательности)  в первом и втором вариантах разнятся не столько организациями, т.е. сос- таваьш служебной информации, сколько оформлением. Далее будет рас- сматрив аться вариант единой последовательности.  Ha рис. 6.4.8 показаны две последовательности, считанные с документа.  на рис. 6.1.7 и о ргаъшзованные плавающим и смешанным способами. При плавающем способе числа в угловых скобках по-прежнему суть номера столбцов‚но перед значениями: двухключевых переменных om»: сос- тавные: первая цифра указывает номер широкого столбца, иныьш слова- ми, номер значеъшя старшего аргумента; вторая тшфра связана с узким столбцом в пределах широкого и отмечает номер значения младшего ар- гумента, подчиненного значению старшего. ` Как и в предыдуцшх подобных случаях, применеъше плавающего спо- соба обеспечивает эквивалентность последовательности и порождающего документа; но при этом объем служебной информации в таких последо- вательностях оказывается больцшм. В данном случае он может быть сокращен без потери эквивалентности приближением к позиционному спо- со бу. ‚ На рис. 6.4.8, б представлена последовательность тех же значений, кото- рые составляют 6.4.8,а, но оргаьшзованных смешанным способом. При пе- реходе от 6.4.8,а к 6.4.8,б номера в угловых скобках сохранены только перед значениями одноключевых перемеъшых из первого столбца, а также перед значет-шями двухключевых переменных, которые принадлежат пер- вым узким столбцам из каждого широкого столбца; в тех отрезках после- довательности 6.4.8‚а, где номера монотонно нарастают, они заменены на экономные разделители позиционного способа. Правила преобразования 6.4.8, а в 6.4.8, б и наоборот являются однозначными; поэтому вторая пос- ледовательность наравне с первой эквивалентна порождаюшему документу. Следует отметить, что хотя вторая последовательность и имеет меньшее число служебных знаков, чем первая, но правило их расстановки при вводе документа в ЭВМ может показаться более сложным и менее удобным. 4.5.4. Двухключевой документ третьего типа, как следует из его изобра- жения (рис. 6.1.9) и охшсания (рис. 6.3.2) ‚ разложим на три составляющих  215 
а) VAL=.M*; SEQTl.T2= пи?) ‹2›е(?...[21 <1>w“l21 <2>w(f,)1  [3] <1>xp(1l),2<2>.p(i),2... [т] › z“2)< 1.2 > е?) ‹ 1.3 › е‘? ‹ 2.1 › г‘? ‹ 2.2 › г‘? ‹2.з›г(ё)... [т+1] <1.1>w§’2:‘l) <'1.2>.pg:’1) <1.3):p(l12":’l) <2.1>.p(";’;,)l <2.2>.p(i':)l <2.3>.p(i'2*°',)1 [m+2] <1.1>.p“l’;,)2 <2.1>.p‘f2fg <2.2>.p(i22’3)<2.3>.p‘fi*23,)2...  [m+3] <1.1>w(l‘51§‘), ф???) ,...<1.2>¢(1l’§'1),.p(11’§'_,f) < 13 , 4, <1l.2.°»’.1), „,‚ ‹1‚з‚5› ’ ’  12,3 <2.1>w(l25‘5‘), Из?) ,...<2.2>w(‘;§§),.p(if§),... <2.3>.p(=l253_,;1) , .p(l253_,;2),...; FIN 6)VAL =.v°;  SEQT1.T2=<1)£(P|£(E)|...<1)w(11Alwqzl|...<1>xp(B2|.p(fi£|  < 1.1 › 29) Mg): :(";)<2.1>2(;)|s(§)|e(2'°')| . .. (1.1)w(lla2l,)l N,(1.2) I › Ф(2Ь1) |ф(2›2) |Ф(2›3)  12,1 12,1 12,1 12,1 ° ° ° <1.1>w(‘1*;,)2 п <2.1>.p(i*2‘,)2 кий; визг; I... › шага ‚шага . . м мига” ~».<:::»2>. мазал w‘.‘5?5” › - -- › шагах маг . в в - - w<:»:.:;> . . . и ‘нагул w(122’i;f),. . . ;  FIN  Puc. 6.4.8. Последовательности, эквивалентные двухключевому строчному документу второго типа, организованные по а) плавающему и б) смешанному способам  таблицы: полную строчную Т2‚ полную стопбцовую Т1 и матричное ядро Т12. В связи с этим возможны четыре варианта представления резуль- тирующей последовательности, эквивалентной документу в целом: 1) в ви- де трех последовательностей, каждая из которых эквивалентна своей табли- це, 2) в виде двух последовательностей, одна из которых эквивалентна таблице Т2‚ а другая — тштаемым подряд таблицам Т1 и Т12, 3) в виде двух последовательностей, одна из которых эквивалентна таблице T1, а другая —  216 
__.p_  Ё’ _‚__ .. _...ь_—  “ё  паре Т2 и Т12‚ 4) в виде единойпоследовательности без разделеъшя ее на части, соответствуюцше составляющим таблицам. На рис. 6.4.9 показан последний вариант. Здесь последовательность полу- чается считыванием подряд документа по строкам: сначала считываются строки строчной таблицы Т2 с позиционными разделителяиш между значе- ъшями; затем, когда строки Т2 исчерпываются, перед первым значеъшем из крайнего левого столбца документа ставится указание ( 1 ) и стштываются подряд строки Т1 и Т12 c теми же позициоъшьшш разделителями»: между значеъшями. Указанньй порядок стштываъшя документа однозначно определяет пози- цию каждого значения в порождаемой последовательности. Наоборот: ис- пользуемая в последовательности совокупность служебных символов поз- воляет восстановить координаты значеъшя в документе по его позишш в последовательности. Последнее утверждение требует доказательства. Начальньй отрезок последовательности до указаъшя ( 1) организован позиционно, и в нем содержатся значения, места которым в строчной таб- лице Т2. Для ъшх соответствие между позицией и координатами»: определяет- ся формулами (4.2)`. Следует заметить, что в (4.2) фигурирует полное чшсло столбцов, которое для строчной таблицы находится опосредствован- но — как частное от деления полного числа значений на определяемое по отшсанию таблицы полное число строк. Оставшаяся часть последовательнос- ти организована также позициоъшо; значеъшя из нее относятся к объеди- ненной таблице Т1.Т12‚ которая может трактоваться как одна столбцоваяс тшслом столбцов, равным сумме чисел столбцов Т1 и Т2. Формулы (4.2) действительны и для этого отрезка последовательности. Таким образом, взаимно однозначное соответствие между двухключе- вым документом третьего типа и последовательностью обеспечивается смешанным способом оргаъшзашш последовательности c одним раздели-  ТВПВМ плавающего ТИПЗ И ОСТЗПЬНЫМИ — ПОЗИЦИОННОГО mna.H1o6oe OTCTYII-_  леъше от этой организашаи в сторону увеличения удельного веса плавающе- го способа не наруцшт взаимной однозначности соответствия. Сделанные заключения относятся к варианту единой последовательности. В остальных трех вариантах результирующая последовательность представ-  /  ЁЁЁтЁЁЬтп = g(;)|g(§)|g(32)|...ItlI(21|\l1(§?1|\P(32 I w§f%~w‘§?2w§?%I~~~<1>e‘:’w‘:,1Iw£f2»~~- ...|.p(:';)|w(i’§)|w§‘f)I... I=‘3’w‘3,’1w‘f,£I---w‘i’é’w‘i§’wfi”’I а . - ...:s(f)Iw‘f:’, W9; I... :w‘}§’:w"°;’§’Iw‘f;3’I...; FIN  Puc. 6.4.9. Организованная смешанным способом последовательность, эквивалентная документу на рис. 6.1.9  15. ЮЦ. Иванов 217 
ляется в виде объединения двух или трех составляющих последовательнос- тей. В любом варианте любая составляющая последовательность может быть организована по позиционному способу, так как обособление хотя бы однои из трех последовательностей делает возможным определение чисел столбцов во всех исходных таблицах и их сочетаниях, что достаточно для формулы (4.2). 4.6. Пример многокшочевого документа изображен на рис. 6.1.10; его описание дано на рис. 6.3.3. Документ имеет четыре полные столбцовые таблицы Т1‚ Т2, T3, T4, две полные строчные Т5‚ T6, а также матричное ядро ТМ. Каждая из четырех первых табшщ содержит по одному столбцу; каждьпй столбец наполнен значениями одного аргумента. Таблицы Т5 и Т6 имеют по одной строке и в каждой строке записаны значения одного аргу- мента. Если считать столбцы от левого края документа, то первые значеъшя таблицы Т5‚ Тб натшнаются c пятого столбца, точнее, значения из Т5 начи- наются с пятого пшрокого столбца, а значения из T6 - c первого узкого столбца, подчиненного пятому цшрокому. Первое по порядку построч- ного считывания значеъше из матричного ядра TM лежит на пересечении первого узкого столбца из пятого цшрокого и третьей строки, так как в первых двух строках размещаются значения из таблиц Т5 и Тб. Из всех возможных вариантов образования последовательности, экви- валентной документу в целом, детально рассматривается только один — представление в виде единой последовательности (см. рис. 6.4.10) . Значения из первой строки гшдексируются номерами тех широких столбцов, которым оъш принадлежат; перед каждым значением из вто- ‚рой строки записывается составной номер, указывающий номер цшроко- го и узкого столбцов; последующие строки переносятся в последователь- ность не так, как две первые: ставится номер столбца, c которого Harm- нается строка, и после него_— значения, разделяемые вертикальными черта- Mu. Принятая на рис. 6.4.10 совокупность разделителей обеспечивает взаимную однозначность документа и последовательности.  VAL = W; SEQ T5.T6.Tl.T2.T3.T4.TM = <s> 29) (б) :5’) <5.1>s_§1)  панд?) <s.1>g§” ‹в.2› г?) <1>zS"I :9’: 29’: его. .‚‚‹1‚1‚1‚1‚1‚1)‚ ф (1,1,1,1,1,2)д ф (1‚1,1‚1,2,1)д ф(1‚1‚1,1‚2‚2)д _ _ I Юг?) д ф (1‚1,1,2,1‚1)д ф (1,1‚1,2‚1‚2)д ф (1‚1‚1‚2,2,1)д ф (1‚1,1,2,2,2) д ___ (4)43) I ‘I, (‘1,1,1,3,1,1)I ф(1‚1,1,з,1‚2) д ф (1‚1,1,з,2,1) д ф (1,1‚1‚з,2‚2) д _ __ I3, £g2)I I§4)I ф (1,1,2,4,1,1) д ‘I,(1,1,2,4,1,2) I ф (1‚1‚2‚4‚2‚1) д ф (1,1,2,4,2,2) I _ __ (д, Egs) д ф (1,1,2,s,1,1) I ф(1‚1‚2‚5‚1.2)д ф (1‚1‚2‚5,2‚1) д ф (1,1‚2,5‚2‚2) д _ __ I4) Ego) I ‘I, (1,1‚2,6,1,1)д ф (1,1,2,5,1,2) I ‘I,(1,1,2,e,1,2) д ‘I,(1,1,2,5,2,1) д ‘I,(1,1,2,5,2,2) I _ __ I4,5S7)I ‘I,(1,1,2,7,1,1)I ‘I,(1,1,2,7,1,2)I‘I,(1,1,2,7,2,1)I _ ‘I, (1,1,2,7,2,2) I _ __ д, д?) д Е?) д град ‘I,(1,2,3,s,1,1) д ‘I,(1,2,3,s,1,2) I ф (1›2›3›3›2›1) д ф (1,2,з‚з‚2,2) д _ _ _ I . FIN  Puc. 6.4.10. Организованная по смешанному способу единая последовательность, эквивалентная многоключевому документу (рис. 6.1.10)  218 
43  4.7. Об общей структуре последовательностей, 4.7.1. Ha рис. 6.2.1 показана общая схема документа, отражающего многоключе-  вые зависимости; на рис. 6.3.4 приведено его описание; схема эквивалентной после- довательности в одном из вариантов дана на рис. 6.4.11.  ПОСЛВДОВЗТЗЛЬНОСТЪ представлена как СОВОКУПНОСТЬ п '1' 1 cocrannmomnx ПОСПеДО-  вательностей. Первые п из них относятся к однострочным столбцовым таблицам, пос- ледняя — ко всем остальным таблицам; последняя получается считыванием по стро- кам подряд этих таблиц.  В записи последовательности приняты такие сокращения: — переменная со стрелкой наверху ‘обозначает набор переменных, расположенных  подряд в одной строке какой-либо составляющей таблицы; в последовательности между ними достаточны позиционные разделители;  — две стрелки над переменной также обозначают набор переменных, но расположен-  ных подряд в одном столбце; идущие в- последоватезтьности подряд такие наборы принадлежат одной строчной таблице; для их организации достаточен позиционный способ; разметка по столбпамв этой части последовательности задается предшествую- щим отрезком, в котором размещаются значения из первой строки данной строчной таблхщы;  — номера значений ИЗ матричного ядра проставлены не над КЗЖДЬЕМ, а ТОЛЬКО над  первыми в строках значениями; ‘  — s — номер столбца в документе, с которого начинаются строчные таблицы; — т — номер столбца в документе, с которого начинается полная столбцовая таблица х ‚.  VAL=.//‘; sEox.=sf"1 E"; suox2=s§"1¢f‘.’;...: srio>o.=s.‘."1$"”  . . . . . . ш ‹2› 12””; °°‘XIy ха ‘°'х;° X=(S)£a °...  <S>1Iu(§',f_';,';,""’ I 1!/1“2'.f.'.'.""”’<s.1>s§"<s.2 >.:,‘,”<s+ 1.1 >s,‘," . ..  0' ‘О -F -5 (S.l)1l/,(;’_f_’,','¢',,’¢:"")|1!/f;j:'},:,,',:'2)|(S+ 1.1 >¢f;'_f_';,°;;,,"""1...<s1.... 1 >.§§"<.2> з?’ <s.2....1>s§"<.2>g§”<.3>z§”<.s+1.1.....1>z§"<.2>g§3’<.3>2$)...<s.1. ...1>  "5 —* -P -b '*(1,1,...,1,1,...,1) ‘*(1,1,...1,1,...2) **(1.1,...1.1,2,...1) **(1,1,...,1,1,2,...,2) ¢12...no1B...'y 1¢12...nuB...'y '(s'2' ° ° ° ' ›Ф|2...паВ...7 1‘>bl2..‘.no1fi...'y I  w!(l2’.§.I’s'0&gfil.I-‘."y2900133)(S+ lol . . . . I ).¢"(l2I.f.I’°"&9B|.’.2.’7' ‚под,‘ г; 3 - ` .. (1,1,...,l.2,1,...,3) (l,l,...,1,2,1,...,S) (П) (1.1 ,...,l,l) (I) ¢12...nafl...'y 1 Ф1.2...па13...7 I >£p |¢l2...np „за I -+(l,l,...,I,I.l) (I) "(l,l,...,l,l,l,...,l) „‚‚ ‚...‚ ‚ , ‚...‚ Ф.,„‚‚,‚„‚ |.„кг‚ н›.‚...‚‚‚„‚...‚ I11“-*1 ‘-'-‘ "‘ ‘W W‘ И  Ф(...)' Ф(...)| . . , (m жёг)‘ "‘;'(;,.я.;;;ьг‚.1'‚1 ‚...‚2)' Фа ‚: ,1 ‚я ,...,2,1 ,1 .....1)' ¢(,,_,' ¢(,_,)‘  W’! - о - < '2 >19’! ?if§'.T.'.’.',;?..""”I ~ . . 12£"1?i$§:f.:;;;£.:T;""°"’1  О Ф(1 ,1,...,1,1 ,2,...,I ,1 ,1 ,...,1)' ¢(...)l ¢(...)| ¢(...)' . . . ("I › .d:'(;s'f.v'°'-,°’v(;'v.1'v2v--'92).  ¢(1 ,1 ‚...‚! ,1 ,2,...,2,1 ,1 ,...,1)| ¢(...)| ¢(...)' . . . › :5f;v.f.o'-I-l;sq1.:.1rp39°--91) I о о .  д ¢(1,1,...,1,1,3,....1,1,1,...,1)'¢(...)| ¢(...)' ¢(...)W.(...)|_._ („мул  -¢’§;I.f.!"'°,;lq'.:.!":3!°"I2)' w(1,1....u1.1 .3u...;2g1.1y\...1)' ¢(---)| ¢(---)| . . o ("I  E§;:1..;;;;.:1;3o-o-:3)' Ф“ ‚1 ‚...‚! .1 ,3,...,3.l .1 ,...,1)' ¢(...)| _ . .;  6.4. 11. Последовательность, эквивалентная многоключевому документу на рис. 6.2.1 15 * 219 
4.7.2. В предыдущих пунктах подробно излагались способы организации последовательностей, эквивалентных тштам таблгщ, а также одноключевым и двухкпючевым документам. Вместе с рассмотренной общей схемой мно- гоключевого документа они дают достаточные основания для общих заключений относительно структуры последовательностей, эквивалентных порождающим их документам. Первое такое заключение касается способов оргаъшзашш последователь- ностей. Наиболее богатьпй по выразительньпи средствам смешанньпй способ оперирует с номерами сток, номерами столбцов и вертикальными чертами. Эта совокупность заведомо избыточна — любая эквивалентная последова- тельность может быть оргаъшзована только с указателями строк и указа- телями столбцов, некоторые последовательности — только c вертикальны- ми чертами. Состав конкретных разделителей в конкретном случае всегда неединственен, но эта неешшственность, как уже отмечалось, касается внецшего вида последовательности. Выбор того или иного состава разделителей определяется прежде всего условием эквивалентности последовательности и документа и еще сооб- ражениями удобства: в последовательности должно быть, по возможности, меньше служебной информашш и ее расстановка должна быть простой, чтобы облегчить ввод. Второе общее заключение — относительно деления последовательностей. Когда в документе нет однострочньтх или одностолбцовьтх таблиц, то его значения считыванием по строкам подряд могут быть сведены в единую последовательность, что следует из рассмотреъшя общей схемы в предыду- щем разделе. Когда же такие таблгщы присутствуют, что значения из них оргаъшзуются в отдельные последовательности, а оставшаяся часть доку- мента снова может быть сведена в едущую последовательность, что также вытекает из предыдущего раздела. Вместе с тем документы, если они не одноключевые, допускают разде- ление на составляющие таблтщы или объединения таких таблиц. Соответ- ственно последовательность, эквивалентная документу в целом, предста- вима как совокупность составляющих последовательностей, экви- валентных своим таблицам или объединеъшям подряд идущих таблиц. ' Серия полных строчных таблиц может представляться в варианте единой последовательности или в варианте нескольких составляющих последова- тельностей, каждая из которых эквивалентна своей табшще. Эти варианты при построчном считывангш несущественно отличаются один от другого, так как в единой последовательности значения, принадлежащие одной строчной таблице, располагаются подряд и между соседними строчными таблицами имеется только одна грашща. Ряд полных столбцовых таблиц также может быть переведен в ешшую последовательность либо в совокупность последовательностей, эквивалент- ных каждой таблтще последовательности или объединениям соседних таб- лиц. При принятом порядке считывания эти варианты разнятся, и различие связано с тем, что, в единой последовательности значения из одной столбцо- вой таблицы не собраны вместе. По отношению к матричному ядру возможности представлеъшя таковы: либо отдельная последовательность, либо общая со столбцовым рядом  220 - 
L._..  последовательность, либо, наконец, общая со строчной серием последо- вательность. Заключая этот раздел, следует отметить, что, базируясь на представлени- ях о тштах и структуре документов, можно бьшо бы выбрать какой-то один единый способ оргаъшзашш эквивалентных последовательностей.  ‹ Им мог бы быть, например, плавающий способ или смешаъшьй способ,  отличающийся от позиционного лишь настолько, насколько это необходимо для обеспечения эквивалентности. Такой выбор упростил бы программу обработки вводимых последовательностей, но с неизбежностью привел бы и к отръщательным эффектам, которые обсуждались ранее.  § 5. Языки ввода и вывода документов  Рассмотренные в предЫдУЦпШ параграфах формализованные средства описаштя документов могут использоваться в языках ввода в ЭВМ и вывода из ЭВМ доку- ментов. В настоящем параграфе обсуждается один вариант таких языков, не претен- дующий на законченностъ. Стиль изложения здесь позволяет представить в виде системы разрозненные формулы, относящиеся к документам. 5.1. Выразительные средства ввода складываются из формул описания вводимых документов и формул организацгш вводимых последовательностей; они представ- лены в табл. 5.1` и 5.2. 5.1.1. Описание каждого документа открывается ключевьш словом DOC (от DOCument —- документ), знаком равенства и наименованием вводимого документа. Эта формула всегда первая в описании документа. Вторая формула называет инфор- мационный объект, к которому относятся функциональные зависимости, содержащие-  Таблица 5.1 ФОРМУЛЫ описаъшя вводимых документов N° Название формулы Вид формулы Примечание 1.~ Формула наименования DOC =.«v° W’ — наименование докумен- документа та 2. Формула наименования INF = M M — наименование информа- информационного ционного объекта, к объекта которому относится документ 3. Формулы описания COL COL — полная столбцовая таблиц LIN таблица х = HOR (5,915, 91...), LIN — полная строчная -VER таблица МАТ HOR— однострочная столбцо- ‚д вая таблица ф‘ ={ V }, 91={’ l VER— одностолбцовая строч- ‘F "д ная таблица МАТ— матричное ядро V, + — указатели слитного способа х — наименование таблицы ф — наименование перемен- ной или табшшы 4. Признак конца FIN otmcamm  221 
Таблица 5.2 Формулы организации вводимых последовательностей  N° Назвах-ше формулы I Вид формулы Примечание 1. Формуланаименования VAL =.«v° om‘ — одновременно наиме- последовательности нование документа 2. Формула составляю- SEQ x, - ‘x, . . . = х, ‚ х, ‚ - - - ‚ — наименования щей последователь- ( д ) составляющих нести =. .. I X (.) таблиц ’ «p - значение и (п') п — номер столб- ХФ д I on а [т' 1 ц * m — номер строки 3. Признакконца FIN последовательности  ся в документе. Далее располагаются формулы описания составляющих таблиц; они подробно обсуждались в предшествующих параграфах этой главы. Дополнительно- го пояснения здесь требует следующая запись в табл. 5.1: буквой ф там обозначено наименование переменной или таблицы, а в среднем столбце эта буква записана в соче- тании со знаком слитной организащш \/. Следует подчеркунгь, что сочетание этого знака определено только с наименованием переменной, а с наименованием таблицы не определено. Последним в описании должно быть ключевое слово FIN. Все формулы описания разделяются точками c запятыми. 5.1.2. Последовательности, приводимые как примеры в предыдущем параграфе, записаны по всем правштам формального языка. Поэтому табл. 5.2, в которой собра- ны эти правила, не требует комментариев.  DOC = АНКЕТА; INF = АНКЕТА; АНКЕТА= COL ((1)1/IO+l'IOJI+;]ATA РОЖДЕНИЯГОД, ДАТА РОЖДЕНИЯ.ЧИСЛО, ДАТА гождвниямвсяц, OBP, HBY3, ДАТА ОКОНЧАНИЯ ВУЗА.ГОД‚ ДАТА ОКОНЧАНИЯ ВУЗА.ЧИСЛО, ДАТА ОКОНЧАНИЯ ВУЗА.МЕСЯЦ‚‘ АВУЗ, РАБОТЫ, ПРАВИТЕЛЬСТВЕННЫЕ НАГРАДЫ); РАБОТЫ = соь (гп, НАИМЕНОВАНИЕ пгвдпгиятия); FIN  VAL = АНКЕТА; SEQ AHKETA.PABOTbI= ИВАНОВ ИВАН ИВАНОВИЧМУЖ1927 | 27 |ДЕК| СРЕД- НЕЕ< 11 ) 1941 |MB3 I 1949 | ЗТМ | МЕДАЛЬ ”ЗА ТРУДОВОЕ ОТЛИЧИЕ”, ОР- ДЕН ЗНАК ПОЧЕТА [21 ПАНТЕЛЕЕВ ДМИТРИЙ ИЛЬИЧМУЖ1959 | 28 | ФЕВР | НЕЗАКОН ВЫСШЕЕ (11) 1976 I ЗТМ | НЕТ [З] ПЕТРОВА НАДЕЖДА ПЕТРОВНАЖЕН1934 | 15 | МАЙ | ВЫСШЕЕ | МИТХТ | 1958 | 11 | ФЕВР| МОСКВА Г—417 М ПИРОГОВСКАЯ 1 | 1958] ЗТМ | НЕТ [4] СЕМЕНОВА АННА ДМИТ- РИЕВНАЖЕН195О I 21 |АПР | ВЫСШЕЕ | ЛПИ | 1975 |2О | МАЙ| ЛЕНИНГРАД К-251 ПОЛИТЕХНИЧЕСКАЯ 29 | 1976 | ЗТМ | НЕТ [5] СИДОРОВ ПЕТР ИВАНО- ВИЧМУЖ1914 | 17 | ИЮЛЬ | ВЫСШЕЕ | ЛПИ | 1950 | 22 |МАЙ| ЛЕНИНГРАД К-251 ПОЛИТЕХНИЧЕСКАЯ 29 | 1935 |ЛЗММ | 1941 | АРМИЯ | 1950 | ЗТМ |МЕ- ДАЛЬ ”ЗА ОТВАГУ”, ОРДЕН КРАСНОЙ ЗВЕЗДЫ, ОРДЕН КРАСНОГО ЗНАМЕНИ; FIN Puc. 6.5.1. Описание документа АНКЕТА и последовательность значений, эквивалент- ная этому документу. 222 
5.2. Примеры ввода. 5.2.1. На рис. 6.5.1 представлены описание документа АНКЕТА‘ (см. табл. 1.1. из гл. 1) и последовательном значений, считанных с этого документа. В описании зафиксировано, что обсуждаемый документ состоит из двух столбцо- вых таблиц. Старшей из них дано наименование АНКЕТА, подчхтенной — РАБОТЫ. В описании указано, что в последовательности между значениями ФИО и ПОЛ, а-также ПОЛ и ДАТА P0)I(.I.'[EHl/I51-.I‘OI[ не должны стоять разделители. Последовательность на рис. 6.5.1 организована по смешанному способу. В ней фигу- рируют номера в ‚квадратных скобках, ошечаюцше начала цшроких строк, номера в угловых скобках, указывающие после пропусков значений номера столбцов, верти- кальные черты, разделяющие значения, запятые между элементами множественных значений; некоторые значения следуют без разделителей, как это обусловлено опи- санием документа. Организованная таким образом последовательность значений эк- вивалентна порождающему документу, что вытекает из общего заключения, данного в разделе 4.5.2 и касающегося двухключевых документов второго типа. 5.2.2. Второй принтер — документ ВАЛОВЫЕ ВЫПУСКИ, представленный в табл. 2.1 гл. 2. ‘Гип этого шестиключевого документа рассмотрен в пп. 1.3, 3.3 и 4.6 настоящей. главы. Описание документа ”ВАЛОВЫЕ ВЫПУСКИ” и эквивалентная последовательность даны на рис. 6.5.2. Они не требуют комментариев, потому что являются частными случаями рис. 6.3.3 и 6.4.10.  пос: в ВАЛОВЫЕ" вьшуски; INF = ВАЛОВЫЕ выпуски; М =-‘ COL(MI/IH, P); P = COL(PECII, о); о = COL(OBJI,II); П = COL(IIP, BB); E =' LIN (МЕС, в); в = LIN (ВИД, вв); вв. = МАТ (ВАЛОВЫЙ выпуск); FIN VAL = ВАЛОВЫЕ выпуски;  SEQ E.B.M.P.0.II.BB=(5 )MAPT(6)Al'IPEJ'II>(7)MAI7I( 5.1 )ППАН ( 5.2) ФАКТ (6.1 ) ПЛАН ( 6.2 ) ФАКТ (7.1 ) ПЛАН ( 7.2 ) ФАКТ (_1)` МИНПЕГПРОМ | БССР | БОБ- РУЙСК | ФАБРИКА мвховых издвлий | 301013027 I2870I3030|2740I284l ( 3 ) ПИНСК I ЗАВОД ИСКУССТВЕННЫХ КОЖ |2501 | 2553 | 2368 | 2440 | 2323 | 2378 ( 2 > УССР I КИЕВ | ЭКСПЕРИМЕНТАЛЬНАЯ ФАБРИКА УКРНИИКП |59 1 65 I 59 I 61 I57 I57 l(2 ) PC<I>CP-I ЛЕНИНГРАД | ОПЫТНАЯ ФАБРИКА ЛЕН- НИИТР | 45 | 47 I 44 | 45 I44 I45 ( 3 )MOCKBA I ЗАВОД ” КОЖТЕХЗАМЕНИ- ТЕЛЬ” | 884 | 896 | 921 I 972 I 882 I 915 (4) ОПЫТНЫЙ ЗАВОД ИСКУССТВЕН- НЫХ КОЖ | 503 |511 I554 I584 I 554 |556<1) МИНМЯСОМОЛПРОМ | РСФСР I ЛЕНИНГРАД I КЛЕЕВОЙ ЗАВОД] 1095 | 1115 | 1094 | 1136 | 1050 | 1068 (3) МОСКВА! ЗАВОД КОНСЕРВНО-КОЛБАСНЫХ ИЗДЕЛИЙ ВНИИМПА | 105 | 113 I 105 I 118 | 100 I 102 (4) ОПЫТНЫЙ ЗАВОД ВНИХИ | 69 I 72 I 68 I 71 I64! 64 ( 2 ) УССР | КИЕВ | ПРОИЗВОДСТВЕННАЯ ЛАБОРАТОРИЯ БАКЗАКВАСОК| 5 |5 |4 |5 |4 |5 ( 1 )МИНПИЩЕПРОМ |БССР | ГОМЕЛЬ 1 ЖИРОВОЙ КОМБИ- НАТ | 10250 | 10756 | 8600 | 9259 | 8800 | 9003 (3 ) МИНСК | МАРГАРИНОВЫЙ ЗАВОД | 4428 I4528 |4125 |4435 | 3912 |4395 (2 > РСФСР|ЛЕНИНГРАД| МАС- ЛО—ЖИРОВ0Й КОМБИНАТ | 9400 | 9700 | 8900 | 9067 | 8200 | 8280 (4 ) ПАР- ФЮМЕРНАЯ ФАБРИКА ”СЕВЕРНОЕ СИЯНИЕ”|5060 | 5220 |4590|4856|4090| 4199 (3 > МОСКВА | ЖИРОВОЙ КОМБИНАТ | 9175 | 9886 | 8640 I 8836 I 9505 I 9512 ( 2 ) УССР | КИЕВ [МАРГАРИНОВЫЙ ЗАВОД! 3960 I 3370 I 3600 I 3623l 3250 I 326] I FIN Puc. 6.5.2. Описание документа ВАЛОВЫЕ ВЫПУСКИ и эквивалентная ему последо-  вательность значений 223 
5.3. Вывод документа имеет дело с описанием выводимого документа и с макетом этого документа. Описание выводимого документа делается теми же формулами, которые в табл. 5.1 фигурировали как формулы описаъшя вводимых документов. Только для вывода не нужна формула информационного объекта и не нуж- ны указатели слитного способа, так что между наименованиями перемен- ных всегда ставится запятая. Макет документа оформляется по правилам, основные черты которых изложены в п. 3.5 настоящей главы. Система вывода работает непосредственно после реализащш запроса, поэтому примеры вывода естественно бьшо бы выбрать такими, которые продолжали бы примеры запросов. Однако рассмотренные в предыдущей главе, примеры запросов имеют ответом либо одно значение, либо сово- купность значений, либо, самое сложное, одноключевую зависимость. Поэтому здесь в качестве примеров выода избраны документы информа- ционного объекта морфлот. Вся совокупность отправных функциональных зависимостей объекта морфлот может быть отображена четырьмя документами, макеты которых приведены на рис. 6.5.3, 6.5.4, 6.5.5, 6.5.6. 5.3.1. Документы ”Характеристики судов” и ”Характеристики грузов” (см. рис. 6.5.3 и 6.5.4) — одноключевые. Как уже отмечалось в п. 3.5, однокпючевые доку- менты исчерпывающе характеризуются своими макетами H не требуют описаний в духе табл. 5.1. . В макетах на рис. 6.5.3 и 6.5.4 определены положения на листах наименований до- кументов И таблиц, зафиксированы числа ПОЗИЦИЙ, которые ОТВОДЯТСЯ ПОД каждый столбец, И даны форматы печати КаЖДОГО значения. Все текстовые значения В ЭТИХ ДО- кументах будут печататься, начиная с первых позшшй своих столбцов, на что указы- вают буквы F, помещенные В первых ПОЗИЦИЯХ СВОИХ СТОЛОЦОВ; если текстовое зна- чение не помещается на ОДНОЙ строке, ТО ОНО переносится на следующие строки своего столбца. Форматы ЧИСЛОВЫХ значений обозначаются В макете вопросительным знаком И девятками. ЧИСЛО девяток ПЛЮС единица естъ максимальное ЧИСЛО ПОЗИЦИЙ, отводимое ПОД значение; максимальное ПО длине значение может не занимать всех ПОЗИЦИЙ В своем столбце. Когда число не имеет дробной части, то неподвижным в столбце дела-  ХАРАКТЕРИСТИКИ СУДОВ  с  |НАИИЕН0ВАНИЕ cy.n.H§A скорость ХОДА (узлы) грузоподъемность (тыс.тонн)|  I F ‘г 9.9 г эзэ.э I  Puc. 6.5.3. Макет документа ”Характеристики судов”  ХАРАКТЕРИСТИКИ ГРУЗОВ  код ВЕС ИМЯ ДАТА ПОРТ ДАТА порт грузд ГРУЗО- ТОТОВНОСТИ ГРУЗА o_mPAB_ ДОСТАВКИ ГРУЗОВ HA3HA_  ЗА олд- ГРУ “°"""') дыьцд год месяц число ЧАС manna год месяц числоТчАо Hanna  ?9999999 ?9999.9S F ?999 '29 ?9 ?9 F ?999 ?9 ?9 ?3 F  Puc. 6.5.4. Макет документа ”Характеристики грузов” 224 
DOC -ФИНАНСОВЫЙ ОТЧЕТ СУДНА; г, Т1 -HOR (НАИМЕНОВАНИЕ СУ ДНА, Т2); Т2 -HOR (ДАТА НАЧАЛА ЗАДАНИЯГОД, ДАТА НАЧАЛА ЗАДАНИЯМЕСЯЦ, ДАТА НАЧАЛА ЗАДАНИЯ.ЧИСЛО‚ДАТА НАЧАЛА ЗАДАНИЯ.ЧАС‚ПОР'Г НАЧАЛА ЗАДАНИЯ,ДАТА ОКОНЧАНИЯ ЗАДАНИЯ.ГОД‚ДАТА ОКОНЧАНИЯ ЗАДАНИЯ. МЕСЯЦ, ДАТА ОКОНЧАНИЯ 3АДАНИЯ.ЧИСЛО‚ДАТА ОКОНЧА- НИЯ ЗАДАНИЯЛАС, ПОРТ ОКОНЧАНИЯ ЗАДАНИЯ, ВИД ЗАДАНИЯ‚ИМЯ  ДОХОДЫ ЗА ЗАДАНИЕ- COL (CT АТЬЯ,ВИД ВАЛЮТЬЬСУММА);  г АРЕНДАТОРА, ДОХОДЫ ЗА ЗАДАНИЕ, РАСХОДЫ ЗА ЗАДАНИЕ);  РАСХОДЫ ЗА ЗАДАНИЕ-СО]. (СТ АТЬЯ,ВИД ВАЛЮТ Ь1,СУММА) ; FIN  Puc. 6.5. 7. Описание документа ”Финансовый отчет судна”  ется младший разряд; при наличии дробной части неподвижной выбирается десятичная точка.  г Описанные правила записи форматов не являются единственно возможными.  После того как макет будущего документа сформирован возникает проблема его ввода в память ЭВМ. В теоретическом плане эта проблема относится к преобразова- ниям двумерного представления в одномерное, т.е. в последовательность. Практичес- ки здесь важно, чтобы эквивалентная двумерному макету последовательность была, по-возможности экономной по числу несодержателытых символов. Данная проблема  г здесь не рассматривается.  5.3.2. На рис. 6.5.5 и 6.5.6 представлены два макета многоключевых документов, относящихся к объекту ”морфлот”. В первом из них собраны двумерные и трехмерные зависимости. Документ состо- ит из двух однострочттых и двух полных столбцовых таблиц. То обстоятельство, что  между составляющими таблицами должна быть субординация, обусловленная отобра- жаемыми функциональными зависимостями, из макета не следует. Субординация фиксируется в описании документа на рис. 6.5.7. Документ, макет которою представлен на рис.6.5.6‚ отображает трех- и четырех- ключевые зависимости; субординация составляющих его табшщ отражена в отса- нии на рис.6.5.8. 5.4. О системах ввода и вывода. 5.4.1. Первыми системами, ориентированными спешаально на работу с документа- ми, бьпш РПГ - генераторы программ отчетов [98]. Они создавались для того, чтобы перенести на ЭВМ трудоемкую работу по составлению отчетных документов. Вместе с программами формирования выходных документов РПГ включали в себя и програм- мы ввода документов, программы поиска необходимых данных и их обработки. Собственно говоря, с них начинается история СУБД. ‘ Первые разработки систем типа РПГ были выполнены для ЭВМ фирмы IBM; по- добные программные средства разрабатывались для отечественных ЭВМ Минск-32 и вэсм-4 [99-1051. Чтобы применить к своей конкретной задаче любой из перечисленных РПГ, поль- зователь должен настроить программные средства на свои типы входных документов,  ПОС-ОТЧЕТ О ГРУЗОВЫХ ОПЕРАЦИЯХ; Т1 = HOR(HAI/IMEHOBAHI/IE СУДНА, Т2) ; Т2 = HOR (ДАТА НАЧАЛА ЗАДАНИЯ.ГОД, ДАТА НАЧАЛА 3АДАНИЯ.МЕСЯЦ, ДАТА НАЧАЛА ЗАДАНИЯЛИСЛО, ДАТА НАЧАЛА ЗАДАНИЯ.ЧАС‚Т3); Т3 =COL(1IATA ПРИБЫТИЯ В ПОРТ.ГОД. ДАТА ПРИБЫТИЯ В ПОРТ.МЕСЯЦ‚ ДАТА ПРИБЫТИЯ В ПОРТ.ЧИСЛО, ДАТА ПРИБЫТИЯ В ПОРТ. ЧАС, НАИМЕНОВАНИЕ ПОРТА ЗА.ХОДА‚ ДАТА ОТ ПРАВЛЕНИЯ ИЗ ПОРТА. FOR» ДАТА ОТПРАВЛЕНИЯ ИЗ ПОРТА. МЕСЯЦ, ДАТА ОТПРАВЛЕНИЯ ИЗ ПОРТА.ЧИСЛО, ДАТА ОТПРАВЛЕНИЯ ИЗ ПОРТА.ЧАС‚ОПЕРАЦИИ В ПОРТУ) ; ОПЕРАЦИИ В HOPTY=COL (КОД, ГРУЗА, ОПЕРАЦИЯ) ; FIN  Рис. 6.5.8. Описание документа ”Отчет о грузовых операциях” 225 
ФИНАНСОВЫЙ ОТЧЕТ судя-м  | НАИМЕНОВАНИЕ СУДНА |  [г  ДАТА НАЧАЛА ПОРТ ‚ДАТА окончАния поэт В„д_ имя эАдАния зАдАния окончА- АРЕНДАТОРА . НАЧАЛА ния 3^д^” (ЕСЛИ ЗАДА- год|мсояц число ЧАС ЗАДАНИЯ год месяц число чАс ЗАДАНИЯ ния НИЕ-АРЕНДА) 2999 29 29 29 F 2999 29 29 29 F F F доходы ЗА ЗАДАНИЕ РАСХОДЫ ЗА ЗАДАНИЕ I СТАТЬЯ вид ВАЛЮТЫ СУММА | стАтья вид валюты СУММА | |г г 29999.99| F F 29999.99 I  Puc. 6.5.5. Макет документа ‘Финансовый отчет судна”  ДАТА ПРИБЫТИЯ  В ПОРТ  отчет о грузовых опердциях  | IF  ГЦЦ  месяц  ЧИСЛО  ЧАС  НАИМЕНОВАНИЕ СУДНА |  l ДАТА НАЧАЛА ЗАДАНИЯ  I год,  МЕСЯЦ  ЧИСЛО  ЧАС |  |2999  ?9  99  ?9  HAMMEHOBA" НИЕ ПОРТА ЗАХОДА  ДАТА ОТПРАВЛЕНИЯ ИЗ ПОРТА  ОПЕРАЦИИ в порту  год  МЕСЯЦ  ЧИСЛО  ЧАС  код ГРУЗА  ОПЕРАЦИЯ  ? 999  ?9  ?9  ?9  ?999  ?9  ?9  ?9  '29999999  F  Puc. 6.5. 7. Макет документа ”0тчет о грузовых операциях” 
на свои операции над данными и на свои типы выходных документов. Настройка за- давалась через заполнение и ввод спештальньпх бланков. Каждый бланк настройки может трактоваться как совокупность выражений оп- ределенного языка: либо языка описания входных документов, зшбо языка преобра. зования данных, либо языка описания выходных документов. Последовательности выражений в таких языках строго фиксируются, свобош-хьшш являются параметры настройки. К ним, например, относятся максимальная и минимальная длины значений, число значений и тому подобное при вводе. При выводе настраивающимися харак- теристиками могут быть порядок следования переменных в выходном документе, наличие или отсутствие контрольных сумм по строкам шш по столбцам документа, положения заголовков на зшсте и т.д. Языки такого типа уместно назвать параметрическими, чтобы отметить в названии совокушюсгь имеющихся выразительных средств. Они удобны в использовании, ког- да они достаточны. Распространение ЕС ЭВМ дало толчок созданию новых систем ввода и вывода и развитию ориентированнных на эти процессы языковых средств [106-118]. Надо от- мешть, что в основном новые системы были узкоспециатшзированньтш, нацеленными на решение конкретных задач и используемые в них языки были, как правило, пара- NI: mlecxmvm. Наибольшую известность среди систем такого класса получила ТИС 12 .  Однако в этот .же период начала развиваться тео ия документов и появились языки, претендующие на полноту [107, 114, 117,118 . Наибольцшй интерес в этой связи представляют система ”Документ” [110] И система ИНЭС [I14]. 5.4.2. Ошсание входного документа в ИНЭС устанавливает соответствие между окнами документа и наименованиями верцшн в дереве описания данных. Основная формула описал-пая ввода выглядит так: составное имя вершины, знак равенства и номер окна в документе. Данная система работает с иерархической базой данных, поэтому она требует, чтобы между переменными документа была назначена субординация. Это естественно по отношению к документам, которые содержат строчные или столбцовые таблицы. Если же документ имеет в своем составе матричное ядро, то субординация перемен- ных приводит к дублированию значений во вводимой последовательности. Скажем, в матрице с каждым значением старшего аргумента в последовательности должны быть все значения младшего аргумента. Подобная неэкономность характеризует и Кобол, который также требует установ- пения субординатши между переменными при вводе. Система ввода ТИС привлекательна своей простотой в пользовании. Средства ввода ограничиваются шестью ‚бланками: два относятся к огшсатшю вводимого доку- мента и четыре — к контролю вводимых значений. Однако эта простота — только для однокшочевых документов. Уже двухключевые документы требуют дублирования значений во вводимой последовательности. При вводе матрицы, например, необходи- мы такие же повторы, которые отмечались вьшле в связи с ИНЭС. 5.4.3. Система вывода ИНЭС располагает двумя группами средств: для экспресс- вывода и для макетного вывода. Понятие макета уже обсуждалось в этой главе и оно подобно тому, которое принято в ИНЭС. Что касается экспресс-вывода, то в нем задание формы выходного документа недостушю, зато вывод не требует каких-ли- бо отшсаний. Существующие системы вывода в ИНЭС ориентированы в основном на одноклю- чевые столбцовые документы mm двухключевые документы первого типа. Вывод многокшочевых документов доступен в них, только если к набору стандартных средств добавляются спешаализированные блоки пользователя. Дальнейшее развитие теории документов в связи с системой ИНЭС нашло отраже- ниев работе [119].  - ‘I у... awanauuza 4-Ir- . 
СПИСОК ЛИТЕРАТУРЫ  ®`1  10.  12.  13.  14.  15.  16.  17.  18.  228  . Fry J.P., Sibley Е.Н. Evolution of Data Base Management Systems//ACM Computing  Surveys. - 1976. — V. 8,N 1. — Р. 7-42.  . Data-Base Management System Requirements. — A report of the Joint GUIDE-SHARE  Data-Base Requirement Group, Nov. 1971.  . Engles R. W. An Analysis of the April 1971 Data-Base Task Group//Proc. 1972 АСМ  SIGFIDET Workshop on Data Description, Access and Control.  . Информационные системы общего назначения: Аналитический обзор систем  управления базами данных/Отв. ред. Е.Л. Ющенко. — М.: Статистика, 1975. — 471 с.  . Столяров Г.К. Обзор предложений Рабочей группы КОДАСИЛ по базам данных//  Алгоритмы и организация решения экономических задач. — М.: Статистика, 1974. — Вып. 4. — С. 42-77.  . Марти Дж. Организация баз данных в вычислительных системах. — М.: Мир,  1980. — 662 с.  . Дейт К. Введение в системы баз данных. — М.: Наука, 1980. — 464 с. .Codd E.F. А Relational Model of Data for Large Shared Data Banks//Comm. of the  ACM. — 1970. — V. 13, N 6.  . ANSI/X3/SPARG/STADY GROUP on Data Base Management Systems: Intern. reportll  ACM SIGMOD Newsletter. - 1975. — V. 7, N 2. - P. 210. Architecture and Models in Data Base Management Systems/Nijssen G.M. (ed.). —- North Holland Publishing Company, 1977.  . The ANSI/SPARG DBMS Model/D. Jarding (ed.). — North Holland Publishing Company,  1977. Gepner H.L. User Rating of Software Packages// Datamation. - _1976. - V. 22, N 12. — Р. 108—1 18. Брусенков И.В.‚ Михалкии В.Г.‚ Окулов М.С.‚ Пурвин Ю.В. Программная реали- зация системы СИНБАД/[Алгоритмы и организация решения экономических задач. — М.: Статистика, 1976. — Вьш. 7. — С. 59-72. Еиикеева Е.Х.‚ Лебедев ЛБ.‚ Райков Л.Д.‚ Хигорилёили ЛИ Основные концеп- ции системы управления базами данных ОКА//Вопросы создания АСПР. — М.: Госплан СССР, ГВЦ, 1977. — Вып. 12. — С. 34-52. Еникеева Е.Х.‚ Коваль И.Г.‚ Максимов Н.С.‚ Хиюришвили ЛИ. Перспективы развития системы пакетов ОКА и КАМА в ЕС ЭВМ: Вторая Всесоюзная конф. ”Банки данных”, 12-14 окт. 1983 г.‚ Ташкент: Тез. докл. — Ташкент, 1983. Фридлеидер <D.J1, Савинков В.М. Пакет прикладных программ СУБД НАБОБ// Алгоритмы и организация решения экономических задач. — М.: Статистика, 1978.- Вып. 12. — С. 25-40. Дудкина J1B., Сумарокова Т.Н.‚ ЧеркасоваА.С.‚ Шкляева Т.В. Системауправления базой данных БАНК/[Алгоритмы и организация решения экономических задач. — М.: Статистика, 1976. — Вып. 8. — С. 34-52. л Коссо B.17., Кузнецов И.Е.‚ Сумарокова Т.Н. ПАРМА — сетевая СУБД на основе рекомендаций КОДАСИЛ//Прикладная информатика. — М.: Финансы и статис- тика, 1981.  haw.»-n и - 21 
19. 20.  21: 22. 23. 24.  25. .26. 27. 28. 29. 30. 31. 32. 33. 34.  35. 36.  37. 38.  39. 40.  41.  42. 43.  45.  Арлазаров В.Л.‚ Дюкалов А.Н.‚ Иванов Ю.Н.‚ Емельянов H.E., Кочан 10.Я.‚ Тока- рев В.В.‚ Фараждев ИА. Информационная система ИНЭС//Автоматика и телеме- ханика. — 1979. — N9 6. - C. 112-121. Суворов B.II., Флоринский А.Б. Основные .черты автоматизированной информа- ционной системы ЭЛЛИПС//Модели данных и системы баз данных: Доклады советско-американского семинара. — М.: Наука, 1979. — С. 188-199. Глушков В.М., Бакаев А.А.‚ Крамаренко P.II. Система управления базами данных ПАЛЬМА//Управляющие системы и машины. — 1980. — N9 5. Основные характеристики отечественных СУБД и ИПС/Огв. ред. А.А. Стогний. — Киев: ИК АН УССР, 1980. Системы управления базами данных для ЕС ЭВМ: Справочник/Отв. ред. В.М. Са- винков. — М.: Финансы и статистика, 1984. Эпштейн BJI. АРИУС. Автоматизация разработки информационно-управляющих систем: принципы и программы. — М.: Институт автоматики и телемеханики, 1975. Келехсаев АъА.‚ Беляев A.I7. Системы интеграции и обработки данных СИОД 1, СИОД 2. — М.: Статистика, 1977. Гринштейн В.А., Черкесов Ю.М.‚ Яловецкий В.И. Интерпретирующие програм- мные средства обработки информации. — М: Радио и связь, 1984. — 192 с. Криницкий Н.А.‚ Миронов Г.А.‚ Фролов Г.А. Автоматизированные информацион- ные системы. — М.: Наука, 1982. - Кминиченко Л.А. Методы и средства интеграции неоднородных баз данных. - М.: Наука, 1983. Жеребин В.М., Мальцев B.H., Совалов М.С. Экономические информационные системы. — М.: Наука, 1978. . Жеребии В.М., Морозов B.II., Хозии H.II. Проектирование экономических инфор- мационных систем. — М.: Наука, 1983. Марши Дж. Планирование развития автоматизированных систем. — М.: Финансы и статистика, 1984. Ульман Дж. Основы систем баз данных. — М.: Финансы и статистика, 1983. — 334 с. Та.мм Б.Г.‚ Тыугу Э.Х. Введение в банки данных/[Техническая кибернетика: Изв. АН СССР. — 1979. — N9 2. - C. 53-64.  Уэлдои Джъ-Л. ‚Администрирование баз данных. — М.: Финансы и статистика, 1984. Тиори Т.‚ Фрай Дж. Проектирование структур баз данных. — М.: Мир, 1985.  Королев M.A., Клешко I'.H., Мишенин А.И Информационные системы и струк- туры данных. — М.: Статистика, 1977. Мидоу Ч. Анализ информационных систем. — М.: Прогресс, 1977. Флорес И Структура даъшых и управление данными. - М.: Финансы и статистика, 1982. ' Диго C.M., Kneuuco ПИ, Мишении А.И‚ Негров E.A. Сборник задач по курсу ”Информационные системы и структуры данных” — М.: Статистика, 1981. Ясин E.I'. Теоретические проблемы развития информационных систем//Модели данных и системы баз данных: Доклады советско-американского семинара. — М.: Наука, 1979. Савинков В.М., Казаров М.С., Рысевич Ю.К. Использование систем управления базами данных в АСУ// Алгоритмы и организация решения экономических задач. — М.: Статистика, 1979. — Вьш. 13. — С. 29-38. Автоматизированная система информации по науке и технике/Отв. ред. А.К. Алай- мазян. — М.: ВНТИЦ, 1978. Ковальчук Г.Б.‚ Кочан Ю.Я. Методика проектировния баз данных для экономи- ческих задач//Теория и практика создания комплексных автоматизированных систем управления. — М.: МЭСИ, 1983. — С. 61-69.  . Первая 10.А.‚ Шевякова T.I<‘. Динамические информационные системы на пред-  приятгш. — М.: Статистика, 1981.‘ Михиовский С.Д. Автоматизация проектирования баз данных: состояние и орга- низационно-технические аспекты: Первая Всесоюзная конференция ”Банки дан- ных”, Тбилиси, 1980: Тез. докл., секшш 4 ”Проектирование баз данных”. — Капи- нин: НПО Центрпрограммсисгем, 1980. — С. 16-21.  229 
46.  47. 48. 49. 50. 51.  52.  53.  54.  55.  56.  57. 58. 59.  60.  Терешкова В.В.‚ Баграновская I'.H. К вопросу построения логических структур баз данных//Алгоритмы и организация решения экономических задач. — М.: Статистика, 1978. — Вьш. 11. — С. 35-46. Novak D.0., Fry ДР. The State of the Art of Logical Database Desing//Proc. of the Fifth Texas Conference on Computing Systems. — 1976. — Р. 30-38. Vetter M. Principles of Database Systems//International Computing Symposium 1977. — North Holland Publishing Company, 1977. — P. 555-580. Davenport КА. Logical Database Design from Entity Model to DBMS Structure//The Australian Computer Journal. — 1979. — V. 11, N 3. — P. 82-97. ’ McGee W.C. On User Criteria for Data Model Evolution//ACM Transaction on Database Systems. — 1976. — V. 1, N 4. — P. 370-378. Raver N., Hubbart G. Automated Logical Data Base Design: Concept and Applicationsll IBMSyst. J. —1977. — N 3. — P. 287-312.  Кочан Ю.Я.‚ Прошкан СД. Вопросы автоматизации проектирования базы данных// Проблемы автоматизации обработки научно-технической информации. — М.: ВИМИ, 1980. — С. 61-69. Прошкан С.Д. К синтезу логической структуры базы данных // Автоматика и теле- механика, 1981. — N9 6. — C. 115-127. Кочан Ю.А.‚ Прошкан С.Д., Рязанцев А.В. Разработка системы автоматизашаи проектирования логической схемы базы данных (ДЛЯ СУБД ИНЭС) // Опыт исполь- зования баз данных ИНЭС: Материалы семинара МДНТП. — М.: 1983.. — С. 87-90. Саванков B.M., Вейнеров 0.М., Ka3apoe'M.C. Основные концепции автоматизации проектирования баз данных // Прикладная информатика. — М.: Финансы и статис- тика, 1982. - Вып. 1. Biller H., Neuhold ЕДЕ Concepts for the Conceptual Shema // Architecture and Models in Data Base Management Systems. — North Holland Publishing Company, 1977. — P. 1-30. Falkenberg E. Concept for Modeling Information // Modeling in Data Base Management Systems. — North Holland Publishing Company, 1976. — P. 95-109. Weber N. D-graphs: A Conceptual Model for Data Bases // International Computing Symposium 1977. — North Holland Publishing Company, 1977. — P. 497-504. Pirotte A. The Entity — Associations Model: An Information-Oriented Data Base Model // International Computing Symposium 1977. — North Holland Publishing Compa- ny, 1977. —Р.581—597. V Bracchi G., Paolini P., Решит G. Binary Logical Associations in Data Base Systems // Modeling in Data Base Systems. — North Holland Publishing Company, 197 6. — P. 125- 148.  61.Senko M.E'., Altman B.E., Astrahan MM, Fender P.L. Data Base Structures and Acces-  sing in Data Base Systems // IBM Syst. J. — 1973. — V. 12, N 1. - Р. 30-93.  62. Драбас B.lI. Реляционные модели баз данных. — Минск: БГУ им. В.И. Ленина,  63. 64. 65. 66.  67.  68.  230 г.  1982. Цаленко М.Ш. Философия и математика моделирования процессов обработки информации (на примере реляционной модели баз данных) // Семиотика и инфор- матика. — 1979. — Вып. 13. — С. 150-183. ‚ Цаленко М.Ш. Топология и системный анализ информационных систем // Вопросы информационной технологии — М.: ВНИИСИ, 1982. — Вып. 1. — С. 16-25. Иванов 10.Н. О применении информационных систем общего назначения для об- работки научно-технической информации: Всесоюзный научно-технический симпо- зиум ”Диалоговые и фактографические системы информационного обслужива- ния”: Тез. докл. — М.: ВИМИ, 1979. — С. 6-15. Ivanov УЗАМ, Kochin Yu. Ya., Proshkin S.D. Comparison of Data Models // Proc. of the Joint US-USSR Seminar ”Data Models and Database Systems”, USA, Austin, 1979, Texas. — P. 80-122. Иванов 10.Н.‚ Кочан 10.Я.‚ Прошкан C.,1I. Информационные функции: теория и практика: Вторая Всесоюзная конф. ”Банки данных”, 12-14 окт. 1983 г., Таш- кент: Тез, докл. / НПО Центрпрограммсистем. - Калинин: НПО Центрпрограмм- систем, 1983. — С. 7-9. - Иванов Ю.Н.‚ Кочан Ю.Я.‚ Прошкан C.,ZI. Особенности пршиенения аппарата инфор- мационных функций для описания баз данных // Вопросы информационной техно- логии. — М.: ВНИИСИ, 1982. — Вып. 1. — С. 72-75. 
69.  70.  71. 72. 73. 74.  75. 76. 77. 78. 79.  80. 81. 82. 83.  84. 85.  86.  87. 88. 89. 90.  91. 92. 93.  Кочан 10.Я. Построение концептуальной схемы данных и ее использование // Вопросы информационной технологии. — М.: ВНИИСИ, 1982. — Вып. 1. — С. 67 — 72. Иванов 10.Н.‚ Мкртчяи СМ., Усков А.В. Язык преобразования информационных объектов // Вопросы разработки систем управления базами даъшых c проблем- ным окружением. — М.: ВНИИСИ, 1983. — C. 115-133. Иванов 10.Н.‚ Кочан Ю.Я.‚ Прошкии СД. Языковые и алгоритмические аспекты концептуального описания базы данных. — М.: ВНИИСИ, 1983. Иванов 10.Н.‚ Емельянов H.E., Согникова P.A. Документы: тигля, описание. — М.: ВНИИСИ; 1986. — 57 с. McGee МС The information management system IMS/VS. Part II: Data base facilitiesll IBM -Syst. J. — 1977. — V. l6,N 2. Брусенков И.В. и др. Программная система управления базами данных СИНБАЩ/ Алгоритмы и организация решения экономических задач. — М.: Статистика, 1975.- Bun. 6. Codd E'.F. A relational model of data for large shared data banks // Communications of the ACM. — 1970. — V. 13, N 6. Codd ЕЕ Normalized data base structure: a brief tutorial // Proc. ACM — SIGFIDET Workshop on Data Description: Accesses and Control. — 1971 . Codd E.F. Recent investigations in relational data-base systems: Information Proces- sing-74. — North Holland Publishing Company, 1974 Chamberlin D.D. Relational data-base management systems // Computing Surveys. — 1976. — V. 8, N 1. Delobel С, Casey R.G. Decomposition of data base and theory of boolean switching functions // IBM S. Res. and Dev.— 1973. — V. 17. N 5.  Armstrong W. W. Dependency structures of data-base relationship. Information Proces- sing-74 // North Holland Publishing Company. — 1974. — V. 3. Tsichritzis D.C., Lochovsky ЕЕ Hierarchical data-base management: A Survey I / Com- puting Surveys. — 1976. — V. 8, N 1. — Р. 105-123. Будзко B.H., Х иторишвили JLH. IMS / 360 // Алгоритмы и организация решения экономических задач. — М.: Статистика, 1976. — Вып. 8. — С. 52-63. CODASYL Data Base Task Group Report. — October. — 1969. CODASYL Data Base Task Group Report. — April. — 1971. Столяров 1".K. Подмножество языков описания данных и манипулирования ба- зами данных // Алгоритмы и организация решения экономических задач. — М.: Статистика, 1976. Калиничеико Л.А.‚ Прохоров A.H. Эволюция языка описания данных КОДАСИЛ // Алгоритмы и организация решения экономических задач. — М.: Статистика, 1976. — Вып. 7. Niissen G.M. Data structuring in the DDL and relational model: Data Base Management / Klimbie J .W. and Koffeman К]. (eds.). — North Holland Publishing Company, 1974. Nfissen G.M. Set and CODASYL set or coset: Data Base Description / Douque B.C.M. and Nijssen G.M. (eds). — North Holland Publishing Company, 1975. Соаа E’.F. Relational algebra.,Current Computer'Science Symposia 6, Data Base Sys- tems, New York 1971. 1‘ New York: Prentice-Hall, 1971. Codd ЕЕ А Data base sublanguage founded on the relational calculus // Proc. ACM — SIGFIDET Workshop on Data Description: Access and Control., ACM. — New York, 1971. — P. 35-68. Zloof M.M. Query-by-Example: A data-base language // IBM Syst. J. —.l977. — V. 16, N 4. — P. 125-343. _ Chamberlin D.D. et al. SEQVEL 2: A unified approach to data definition, manipula- tion, and control // 1ВМ J. Res. Develop. — 1976. — V. 1l._- P. 56-575. Astrahan ММ and etc. System R: relational approach to data-base management // АСМ Transactions on Database System. — 1976. — V. 1, N 2. — P. 97-137.  94. McGee W.C'. The information management system IMS / VS. Part III: Baten processing  95. 96.  facilities // IBM Syst. J. — 1977. — V. 16. — P. 123-135. MRI Systems Corp. System 2000 general information manual. — Austin, Texas, 1972. Taylor R.W., Hank R.L. GODASYL data-base management systems // Computing Surveys. — 1976. — V. 8, N 1. э- Р. 67—102.  231 
97. Иванов I0.H., Кочан Ю.Я.‚ Прошкин СД Языковые и алгоритмические аспектьг  концептуального описания базы данных. - М.: ВНИИСИ, 1983. - 72 с. 98. Фишер Ф.11‚ Суиндл ДФ. Системы программирования. — М.: Статистика, 197,1. 99. Микли T.H., Симонова Х.Ф.‚ Цунапуу 3.7‘. Ввод данных в информационный банк и язык генератора ввода иерархических данных в ЭВМ ”MnHc1<-32”: C6. Tp. - Таллин: Таллинский политехнический институт, 1975. — М? 386. - C. 3-9. 1»00. Микли T.H., Томбак M.0. О расширенном генераторе отчетов для ЭВМ ”MuHc1<-32”, позволяющем оперировать со структурами, подобными структурам языка ПЛ/ 1: Сб. то. — Таллин: Таллинский политехнический институт. — 1975. — М? 386 - C. 11-16. Виллвмс A.JI., Изотамм A.A. Генератор отчётов VILLIS для ЭВМ ”Минск-32”. — Тарту: ВЦ Тартуского государственного университета, 1976. 4- Bun. 38. — С. 3-6, 102. Павальев B.A., Степанченко ДА. Проблемно-ориентированный язык и система генерирования программ для задач. обработки данных // Цифровая вь1числитель- gas; 61‘e§I;n1<a и программирование. — М.: Советское радио, 1972. — Вып. 7. — 103. Савинков В.М., Соколова P.A. Основные положения языка РПГ-32 // Алгоритмы ё оргаъзизация решения экономических задач. — М.: Статистика, 1973. — Вып. 2. — . 76- 1. 104. Савииков B.M., Теплицкий IZH. Система программ генератора отчетов РПГ-32 // Алгоритмы и организация решения экономических задач. — М.: Статистика, 1974. — Вып. 4. — С. 32-47. 105. Система генератора отчетов для ЭВМ ”Минск-32” / Под ред. В.М. Савинков. — М.: Статистика, 1975. 106. Грииштейн В.А.‚ Яловецкий В.И. Унифицированный пакет программ интерпрети- рующего типа, контроля, корректировки и вывода документов произвольной структуры для ЕС ЭВМ // Программирование. - 1978. — М? 2. — C. 85-87. _ 107. Кострюков A.C., Собельман В.И. Язык для описания таблиц // Цифровая вы- числительная техника и программирование. — М.: Советское радио, 1969. — С. 123-138. 108. Собельман B.H. Входной язык системы ”Счет-Г’ // Вопросы теории и методики программирования. — М., 1974. — С. 9-39. 109. Старчеус Т.М. Средства печатитаблиц системы ”Счет-Г’ // Вопросы теории и ме- тодики программирования. — М., 1974. — С. 40-79. ‚ 110. Система ”Счет ЕС”: Руководство для пользователей. — М.: ГВЦ Госплана СССР, 1978. — 214 с. ‚ 111. Емельянов H.E., Марченко Н.В. Программирование алгоритмов обработки таблич- ной информации: Третья зимняя школа по математическому программированию и смежным вопросам. — М., 1970. — Вып. 2. — С. 300-313. 112. Емельянов Н.Е. Автокод для печати документов. — Киев: Институт кибернетики АН УССР, 1971. 113. Арлазаров B.J7., Емельянов H.E., Иванов I0.H. и др. Информационная система ИНЭС // Автоматика и телемеханика. — М., 1979. — М? 6. 114. Система управления базами данных ИНЕС. — Калинин: НПО Центрпрограммсис- тем, 1984. — 981 с. 115.Арлазаров B.J7., Емельянов H.E. Общее описание системы ИНЕС // Проблемы МСНТИ. — М.: МЦНТИ, 1982. — М? 1. — С. 46-58. 116. Улесов В.Ф. Генератор программ печати для задач АСУП. — Центральный научно- исследовательский институт организации и техники управления. — 1975. — Вып. 3(21) . — С. 56-63. 117. Шедин В.В.‚ Архаров В.М. Об одном подходе к описанию таблиц,‘ НИИ экономи- ки и экономико-математических методов планирования. ВЦ Тадж. CCP._—,- 1975. — ° Вып. 7. — С. 48-50. 118. Коченов A.M. Специализированный алгоритмический язык документирования (САЯД) // Алгоритмы и организация решения экономических задач. — М.: Ста- тистика, 1973. — Вып. 1. — С. 5-49. 119. Емельянов Н.Е. Проблемы автоматизации документирования (единый подход к автоматизации программирования обработки документ9в).— М.: ВНИИСИ, 1986. — 62 с.  101.  232  / ЁЖ‘ {Гц-мать ~ л ..'B|'*~ к р  ‚ ' * ap-.::-us „мята! " _ _ ъ › .„ — .-arm?‘ --' A. ~ IA с _ *~ imp.--z-~” .“‘:""'."er.¢-&'4"".!r";rs.».-.. ‚ - ‚ .&r.~»~ ,_ " W 1'9--‘ u- и -on Рт” ›-П*:"""'\е’›‘ь к