Text
                    Под редакцией профессора М. А. КОРОЛЕВА
2-е издание, переработанное и дополненное
Допущено Министерством высшего
и среднего специального образования СССР
в качестве учебника для студентов вузов,
обучающихся по специальности
?Организация механизированной обработки
экономической информации»
МОСКВА
"ФИНАНСЫ И СТАТИСТИКА"
1984


ББК 65.9(2)21 К68 УДК 330.115 Рецензенты: кафедра экономической информации Вильнюсского госуниверситета им. В. Капсукаса (зав. кафедрой канд. экон. наук JI. Ю. Симанаускас) и д-в (Ьиз.-мат. наук, проф. Ю. Н. Иванов Королев М. А. и др. К68 Теория экономических информационных систем: Учебник / М. А. Королев, А. И. Мишенин, Э, Н. Хо- тяшов; Под ред. проф. М. А. Королева. — 2-е изд., перераб. и доп. — М.: Финансы и статистика, 1984. — 223 с., ил. В пер.: 75 к. 10 ООО экз. В учебнике (1-е изд. «Информационные системы и структуры данных», 1977 г.) рассматриваются фундаментальные свойства эконо¬ мических информационных систем (ЭИС). Вводятся понятия таких компонентов ЭИС, как составные единицы информации, показатели, реквизиты и др. Описываются методы и средства структурирования экономическое! информации. Рассматриваются критерии оценки ЭИС и ее машинная модель. Для студентов вузов, обучающихся по специальности «Организа¬ ция механизированной обработки экономической информации». ББК 65.9(2)2! 6Ф7.3 © Издательство «Статистика», 1977 © Издательство «Финансы и статистика», 1984
ПРЕДИСЛОВИЕ Основными направлениями экономического и социального развития СССР на 1981 —1985 годы и на период до 1990 го¬ да, принятыми XXVI съездом КПСС, предусмотрено «со¬ вершенствование вычислительной техники, ее элементной базы и математического обеспечения, средств и систем сбора, передачи и обработки информации»*. Решение этой задачи в конечном итоге должно привести к повышению эффективно¬ сти и качества разрабатываемых и функционирующих сис¬ тем машинной обработки данных. Вычислительная техника получила широкое применение во всех сферах народного хозяйства нашей страны. Исполь¬ зуемые средства вычислительной техники разнообразны: карманные и настольные калькуляторы, мини-ЭВМ и мощ¬ нейшие многопроцессорные быстродействующие ЭВМ, включающие разветвленную периферийную аппаратуру сбо¬ ра, подготовки, передачи, приема и представления данных, средства связи, хранения, поиска и размножения информа¬ ции. Естественно, что такое разнообразие средств вычисли¬ тельной техники определяет использование различных тех¬ нологических процессов и режимов обработки данных. В этих условиях особенно важен выбор соответствующей организации данных, их наиболее рациональных структур, обеспечивающих эффективное функционирование информа¬ ционных систем. Именно благодаря знанию особенностей информации той или иной системы управления, структуры ее данных, их взаимосвязи в информационной системе стано¬ вится возможным обоснованный выбор наиболее подходя¬ щих технических средств и способов сбора и обработки дан¬ ных, соответствующей технологии и организации работы. Учебный курс «Теория экономических информационных систем» является дальнейшим развитием курса «Информаци¬ онные системы и структуры данных», ориентированного главным образом на описание информационной среды объек¬ та, классификацию систем обработки данных и их отдельных составляющих. * Материалы XXVI съезда КПСС.— М.: Политиздат, 1981, с. 146. 3
Предметом изучения в рассматриваемом курсе является экономическая информация в планировании, учете и анализе. Цель курса — изучение теоретических основ строения ин¬ формации, ее разновидностей, структурной организации данных, методов и средств описания экономических инфор¬ мационных систем (ЭИС) и их подсистем, анализа спосо¬ бов формализованного преобразования описаний экономи¬ ческих информационных систем. Успешное овладение курсом предполагает предваритель¬ ное изучение теории множеств, математической логики, тео¬ рии графов, теории информации и кодирования и предшест¬ вует курсам, посвященным машинной обработке данных и автоматизированным системам управления. Предлагаемый учебник охватывает все разделы курса и полностью соответствует программе курса. Значительное внимание уделено элементам информации, отображающим различные свойства наблюдаемых объектов и явлений, и образуемым из них составным единицам ин¬ формации. Выделены и подробно рассмотрены как особые единицы показатели, имеющие широкое применение в эконо¬ мике. Раздел посвящен взаимосвязям, возникающим между информационными единицами. Рассмотрены основные разно¬ видности структур и моделей данных, встречающихся в прак¬ тике обработки информации, и дан аппарат их оценки, общие свойства структур баз данных и ЭИС, средства описания ЭИС, обладающие свойством конструктивности. При создании учебника большое внимание было уделено выработке терминологии. Основу ее составляют следующие цепочки терминов: реквизит— показатель—составная еди¬ ница информации — база данных, имя (идентификатор) — структура — значение (совокупность значений). Для каж¬ дого термина приведено определение, указаны синонимы, достаточно часто встречающиеся в специальной литературе. Учебник предназначен прежде всего для студентов ву¬ зов, обучающихся по специальности «Организация механизи¬ рованной обработки экономической информации». Им могут также пользоваться и студенты, обучающиеся по специаль¬ ностям «Экономическая кибернетика», «Автоматизированные системы управления» и «Прикладная математика». Авторы надеются, что книга будет также полезна специалистам, работающим в областях машинной обработки данных и создания систем автоматизированного проектирования ЭИС. Главы 1 и 2 написаны М. А. Королевым, глава 4 — А. И. Мишениным, глава 6 — Э. Н. Хотяшовым, главы 3 и 5 — написаны авторами совместно. 4
ГЛАВА 1 ЕДИНИЦЫ ИНФОРМАЦИИ 1.1. ИНФОРМАЦИОННОЕ ПРОСТРАНСТВО Любые процессы жизни человеческого общества — производственные, хозяйственные, научно-исследовательс¬ кие, демографические, общественно-политические и т. п. — находят отображение в информационных процессах. Существующие определения понятия «информация» после тщательного анализа обычно признаются неудовлетвори¬ тельными. Чаще всего они рассматривают информацию в сравнительно узком контексте. Попытки дать более широкое определение содержат элементы неясности. Поэтому вряд ли возможно сформулировать одно точное определение инфор¬ мации. Довольно распространенным является взгляд на информацию как на ресурс, аналогичный материальным, трудовым, денежным и т. п. ресурсам. Эта точка зрения отра¬ жается в следующем определении: информация — это но¬ вые сведения, позволяющие улучшить материальные про¬ цессы, связанные с преобразованием вещества, энергии и самой информации. Информация неотделима от процесса информирования, поэтому необходимо рассматривать источник информации и потребителей информации. Роль потребителей информа¬ ции очерчивается в следующем определении: информация — новые сведения, принятые, понятые и оцененные как полез¬ ные конечным потребителем. Информация на пути от источника к потребителю прохо¬ дит через ряд преобразователей: несколько кодирующих и Декодирующих устройств, переносящих знаки с одного но¬ сителя на другой; ЭВМ, обрабатывающую информацию по определенному алгоритму, и т. д. На промежуточных ста¬ диях преобразования смысловые свойства сообщений от¬ ступают на второй план, поэтому понятие «информация» за¬ меняется на менее ограничительное понятие «данные». Данные представляют собой набор утверждений, фактов и/или цифр, взаимосвязанных между собой. В тех случаях, когда различие между информацией и данными не нужно подчеркивать, они употребляются как синонимы. 5
Под информационным пространством некоторого объекта или множества объектов будем понимать совокупность всех информационных компонентов этого объекта или мно¬ жества объектов независимо от способов и средств отобра¬ жения этих компонентов. Информационное пространство неоднородно. Оно содер¬ жит устные и письменные сообщения, в том числе организа¬ ционно-распорядительскую документацию, отчеты о науч¬ но-исследовательских работах, экономическую, техничес¬ кую и конструкторскую документацию и др., сообщения на машинных носителях (перфокартах, перфолентах, маг¬ нитных лентах, магнитных дисках и др.), а также такие ви¬ ды представления информации, как звуковые, электромаг¬ нитные и др. Одна из важнейших характеристик информационного пространства ■— степень его структурированности. Под структурированностью понимается такое свойство информационного пространства, при котором все содержа¬ ние и особенности этого пространства представляются его компонентами и взаимосвязями между ними, выраженными в явном виде. Между структурированностью информационного прост¬ ранства и энтропией можно провести аналогию. Энтропия — это некоторая мера неупорядоченности в информации; чем больше энтропия, тем меньше упорядоченность информации. В структурированности информационного пространства обратная зависимость — чем больше структурированность информационного пространства, тем больше его упорядо¬ ченность. Тем не менее аналогия между энтропией и струк¬ турированностью информационного пространства доста¬ точно глубока и позволяет переносить некоторые законо¬ мерности определения и изучения энтропии на структури¬ рованность информационного пространства. Обработка информации на электронной вычислительной машине определяет необходимость представления ее в струк¬ турированном виде. Если в качестве меры структурирован¬ ности информационного пространства принять отношение объема структурированной информации к объему всей ин¬ формации в рассматриваемом пространстве, то степень структурированности информации, обрабатываемой на элек¬ тронной вычислительной машине (при условии, что эта ин¬ формация представляет собой рассматриваемое информа¬ ционное пространство), наибольшая. В любой системе машинной обработки экономической 6
информации (СМОЭИ) все входные и выходные документы, все промежуточные и внутримашинные представления ин¬ формации структурированы. Следовательно, для такого ин¬ формационного пространства коэффициент структурирован¬ ности равен или близок к максимальному значению. В зависимости от степени структурированности информа¬ ционного пространства выделим следующие пять его видов. 1. Неструктурированное информационное пространст¬ во (НИИ). Для НИП характерно, что структурированность компонентов информации встречается редко. Примерами НИП являются разговорная речь или информация, ко¬ торой обмениваются между собой дельфины. Некоторые эле¬ менты структурированности в этом подклассе могут присут¬ ствовать. 2. Слабо структурированное информационное пространст¬ во (ССИП)■— полностью структурированы только отдель¬ ные компоненты. Типичным примером ССИП может служить письменный язык. Структурированность основного объе¬ ма информации состоит в выполнении требований неко¬ торого синтаксиса. Как правило, такие требования неодно¬ значны, противоречивы, имеют исключения, сохраняют омонимию и синонимию и т. п. 3. Структурированное информационное пространство (СИП) — характеризуется существенным преобладанием структурированных компонентов. В СИП информация до¬ кументирована, широко используется кодирование для обеспечения однозначности трактовки тех или иных поня¬ тий. Типичный пример СИП—экономическая информаци¬ онная система (ЭИС), представляющая собой часть информа¬ ционного пространства, которая отображает деятельность некоторого экономического объекта. 4. Формализованно структурированное информационное пространство (ФСИП) — для него должно существовать в явном виде такое описание информационных образований, в котором определены не только информационные структуры и связи, но и алгоритмы получения значений любого элемен¬ та данных. Основное назначение формализованного структурирован¬ ного информационного пространства в том, что представлен¬ ные в явном виде описания информационных образований Должны обеспечивать: порождение (на основе формальных правил) не только блоков логико-алгебраических преобразований, но и лю¬ бых операций по управлению данными (сортировка, под¬ борка, вызов, размещение и др.); 7
возможность выбора оптимальной структуры экономи¬ ческой информационной системы в соответствии с выбран¬ ной целевой функцией; возможность реорганизации как структур, так и алго¬ ритмов обработки информации в процессе функционирова¬ ния системы на основе обработки статистических данных и накапливаемых изменений об объекте. 5. Машинно-структурированное информационное про¬ странство (МСИП) ■— формализованно описаны все инфор¬ мационные образования, в том числе формы входных и выходных документов, запросы конечных пользователей. Типичным примером МСИП является база данных в системе машинной обработки экономической информации. Все про¬ цессы преобразования информации в таком пространстве формализованы и представлены в виде машинных программ. Некоторые неструктурированные элементы используются при организации взаимодействия конечных пользователей и вычислительной системы на естественном (или близком к естественному) языке. Изучение закономерностей построения и методов анали¬ за структурированного, в том\ числе формализованно- и машинно-структурированных видов, информационного про¬ странства объектов экономического характера, изучение абстрактно-теоретических положений и средств, обеспе¬ чивающих переход от одного вида информационного прост¬ ранства к другому, и является основой учебного курса «Тео¬ рия экономических информационных систем». Процесс создания проекта системы машинной обработ¬ ки данных для некоторого объекта можно представить в виде последовательного перехода от первичного описания этого объекта (некоторой информационной модели) через про¬ межуточные модели, такие, как машинная и программно-ал¬ горитмическая модели, к проекту системы машинной обра¬ ботки данных (модель обработки данных). Одно из свойств последовательности моделей — соблю¬ дение семантического единства, семантическая совместимость моделей снизу вверх. Предыдущая модель связана с по¬ следующей в смысловом плане. Все сведения, имеющиеся в предыдущей модели, сохраняются в последующей. При этом последующая модель пополняется новыми (производными) сведениями, новыми информационными взаимосвязями, ко¬ торых не было в предыдущей модели, за счет применения но¬ вого уровня обобщения, новых преобразований. Другое свойство этой последовательности моделей — конструктивная полнота, заключающаяся в том, что должна 8
обеспечиваться полнота сведений, достаточная для после¬ дующих формализованных преобразований от первичного описания экономического объекта до модели обработки данных. Переход от предыдущей модели к последующей обеспе¬ чивается применением некоторых преобразователей. Выде¬ лим два типа преобразователей. Одни преобразователи обес¬ печивают собственно переход от одной модели к другой, другие позволяют анализировать синтаксическую и семан¬ тическую непротиворечивость модели, ее полноту, коррект¬ ность и адекватность реальным условиям объекта управле¬ ния. На первом этапе создания последовательности моде¬ лей — информационной модели объекта — используются преобразователи первого типа— организация и корректи¬ ровка информационной модели и второго типа— анализ информационной модели. На втором этапе— создании машинной модели, по су¬ ществу, являющемся машинной интерпретацией информа¬ ционной модели, используются преобразователи первого типа— преобразование информационной модели в машин¬ ную и ведение и корректировка машинной модели и второго типа — синтаксический и семантический анализ машинной модели. Третий этап — программно-алгоритмическая модель, включающая средства управления данными и структуру базы данных. На этом этапе используются преобразова¬ тели первого типа — поеобразование машинной модели в программно-алгоритмическую и второго типа — анализ про- г р а м м н о - а л г о р и т м и ч е с к о й м одел и. На четвертом этапе — создании модели обработки дан¬ ных, по существу, представляющем собой проект системы машинной обработки данных, используются преобразователи первого типа —преобразование программно-алгоритмичес¬ кой модели в модель обработки данных и второго типа — до¬ кументирование модели обработки данных, сопровождение модели обработки данных, модернизация модели обработ¬ ки данных. В различных представлениях информации можно выделить несколько уровней единиц информации. Им соответствуют некоторые последовательности символов, для которых су¬ ществует семантическая интерпретация. Выделяют следую¬ щие единицы информации (в порядке возрастания синтакси¬ ческой сложности): реквизит, показатель, составная еди¬ ница информации, база данных. 9
Реквизит является информационным отображением от¬ дельного свойства объекта или процесса реального мира. Составная единица информации представляет собой ин¬ формационное отображение объекта или процесса в целом или их части. Показатель — это лишь одна из разновид¬ ностей составной единицы информации, минимальная по ин¬ формационному содержанию, но достаточная для образова¬ ния документа. Базой данных называется единица информации, задаю¬ щая информационное отображение множества разнородных взаимодействующих объектов реального мира. Каждая единица информации характеризуется именем, структурой, значением, методами организации значений и допустимыми операциями над именем, структурой и зна¬ чениями. Имя единицы информации — это ее уникальное наиме¬ нование в процессах обработки информации. Под структу¬ рой единицы информации понимается ее реквизитный состав с учетом иерархического вхождения в нее единиц ин¬ формации более низкого уровня. Структурой реквизита счи¬ тается описание формата, т. е. указание множества допусти¬ мых символов в каждой позиции значения. Множество зна¬ чений единицы информации может быть объявлено и орга¬ низовано в памяти ЭВМ различными способами. Точное опи¬ сание множества значений и всех взаимосвязей, которые под¬ держиваются между его элементами, называется методом организации значений. Допустимыми операциями над именем единицы инфор¬ мации являются открытие и закрытие имени, объявление синонимов для данного имени и др. Операции над структу¬ рой единицы информации — композиция и декомпозиция. В процессе композиции различные по структуре единицы ин¬ формации объединяются, получая новое имя, новую струк¬ туру и новое множество значений. Для вычисления струк¬ туры и множества значений результата должен существовать алгоритм, который в качестве входной информации исполь¬ зует структуру и значения исходных единиц информации. Декомпозиция представляет собой операцию разъединения единицы информации на не совпадающие по структуре части. Операции над значениями единиц информации очень раз¬ нообразны и рассматриваются в последующих разделах учебника. Сведения об имени, структуре, множестве значений и допустимых операциях над единицей информации образуют ее модель. Чаще всего речь идет о модели базы данных, на¬ 10
зываемой моделью данных. Единицы информации и их модели представляют собой важный инструмент анализа и про¬ ектирования экономических информационных систем. 1.2. РЕКВИЗИТЫ — ОСНОВНЫЕ ЭЛЕМЕНТЫ ИНФОРМАЦИИ Каждая представляемая информацией сущность (объект, явление) имеет ряд характерных для нее свойств (черт, при¬ знаков, параметров, характеристик, моментов). Например, свойствами материала являются его вес, габариты, сорт, цена, номенклатурный номер и др. Свойствами-признаками, характеризующими такую сущность, как организация-поку¬ патель, представляются его наименование, ведомственная принадлежность, адрес, номер расчетного счета в Госбанке и др. Свойства физической сущности отображаются с по¬ мощью переменных величин, являющихся элементарными единицами информации — реквизитами. Реквизит — это логически неделимый элемент любой сложной информационной совокупности, соотносимый с опре¬ деленным свойством отображаемого информацией объекта или процесса. Из реквизитов компонуются все остальные, более сложные информационные конструкции. Единицы информации любой сложности можно последовательным раз¬ ложением на составляющие компоненты (декомпозицией) расчленить до таких составляющих — переменных вели¬ чин, которые не поддаются дальнейшему логическому раз¬ биению, т. е. реквизитов. Дальнейшее членение реквизита на более мелкие составляющие — символы (символы в свою очередь—на биты, биты — на последовательность электрон¬ ных импульсов и т. д.) разрывает его привязку к определен¬ ному свойству объекта (процесса), нарушает информатив¬ ность. В литературе по машинной обработке данных также часто используются такие синонимы понятия «реквизит», как элемент, поле, терм, признак, атрибут, переменная, эле¬ ментарная единица информации и др. Информация отражает реальный мир с характерной для него взаимосвязью и взаимообусловленностью явлений. Поэ¬ тому одно и то же свойство может наблюдаться у нескольких разных.явлений (сущностей). Например, признак «дата» необ¬ ходим и при фиксации процесса труда, и при передаче све¬ дений о выполнении плана, и при отражении поступления материальных ценностей, и во многих других случаях. Бо¬ лее того, одно и то же значение реквизита может быть прису¬ ще нескольким различным по характеру сообщениям. На¬
пример, признак «склад №3» может фигурировать в сообще¬ ниях о поступлении от поставщиков сырья, передаче полу¬ фабрикатов со склада на склад, сдаче готовой продукции, ремонте помещения, премировании работников и т. д. Для определения понятия каждого из множества окру¬ жающих нас предметов, явлений необходимо найти то осо¬ бенное, что отделяет его от других предметов или -явлений, что выражает его внутреннюю суть. Это «особенное» пред¬ ставляется в виде качественных определенностей, присущих отдельным разновидностям или их группам. Многообразие форм движения материи обусловливает и многообразие форм качественной определенности. Качественная определенность проявляется через сово¬ купность всех присущих понятию свойств, каждое из кото¬ рых конкретно выражает какую-либо его сторону, какой- либо один его момент. Вещи и явления, обладающие различ¬ ными свойствами (признаками), по-разному действуют на органы чувств человека и вызывают различные ощущения, благодаря чему и создается возможность их градации и индивидуализации. Некоторые из свойств (признаков) присущи лишь еди¬ ничным экземплярам и поэтому называются индивидуальны¬ ми. Например, индивидуальными признаками отличаются друг от друга животные одного вида, станки одной модели, товары одного наименования. По словам К. А. Тимирязева, в природе не существует двух форм, вполне тождественных. На факте существования определенных отличительных признаков у отдельных индивидоб основана вся теория Ч. Дарвина о происхождении видов путем естественного отбора. Благодаря индивидуальным признакам, являющим¬ ся таким образом признаками различия, даже две капли воды различаются между собой. Другие свойства (признаки) распространяются на мно¬ гие экземпляры, являются общими для нескольких предме¬ тов, явлений. Например, общие признаки имеются у матери¬ альных ценностей различных наименований, объединенных в одну группу, у сооружений одного назначения. Благодаря им можно найти сходные черты даже в самых различных вещах. «... Различные вещи, — отмечал К. Маркс, — ста¬ новятся количественно сравнимыми лишь после того, как они сведены к одному и тому же единству. Только как выра¬ жения одного и того же единства они являются одноименны¬ ми, а следовательно, соизмеримыми величинами»*. * Маркс Д'., Энгельс Ф. Соч. 2-е изд., т. 23, с. 58—59. 12
Всякое понятие включает в себя общие и индивидуальные свойства. «У двух различных вещей, — писал Ф. Энгельс, — всегда имеются известные общие качества (по крайней мере, свойства телесности), другие качества отличаются между собой по степени, наконец, иные качества могут совершенно отсутствовать у одной из этих вещей» *. Следовательно, главное назначение признаков — ука¬ зание тех особенностей, которыми одно явление отличается от других, т. е. индивидуализация сообщений, устранение возможностей смешения фактов и искажения информации и представление таких свойств, которые могут послужить в последующем основой для обобщения. Реквизит обладает некоторой самостоятельностью и имеет особые, характерные для него черты. Так, он может входить в самые разнообразные составные единицы информации, относящиеся к различным сущностям и имеющие различную сложность, так же, как какое-либо слово может входить в состав самых различных предложений. Это свойство реквизита находит свое отображение в его форме, всесторонне характеризующей реквизит вне зави¬ симости от его конкретного вхождения в ту или иную состав¬ ную единицу информации. Форма реквизита включает его наименование, струк- туру (формат), значение или совокупность значений и неко¬ торые другие свойства. Наименование реквизита (имя) служит для обращения к нему и обычно представляется словом или группой слов (например, «табельный номер рабочего»), названием опре¬ деленной графы (строки) входного или выходного доку¬ мента, номером, условным кодом, адресом на носителе (перфокартах, магнитной ленте, диске) или в памяти ЭВМ. При алгоритмизации и программировании с целью компакт¬ ного написания чаще используют сокращенные имена— идентификаторы. Идентификаторы обычно имеют ограниче¬ ния на длину, используемый алфавит и сферу действия. В некоторых случаях допускается также употребление синони¬ мов наименований реквизита. Целесообразно, чтобы основное имя — идентификатор реквизита—было закреплено за ним вне зависимости от того, используется ли этот реквизит в той или иной составной еди¬ нице информации, в той или другой подсистеме. В этом слу¬ чае обеспечивается ряд-преимуществ при создании баз дан¬ ных и совместимости различных информационных систем. * Маркс Энгельс Ф. Соч. 2-е изд., т. 20, с. 547. 13
Точность же обращения к конкретному реквизиту достига¬ ется применением уточняющих указателей. Каждому реквизиту присуще некоторое множество зна¬ чений в зависимости от характеристик того свойства объекта (явления), которое информационно отображает данный рек¬ визит. Это множество будем называть областью оп¬ ределения реквизита, или классом значений. Область определения, например, для параметра «температу¬ ра больного» одна, для признака «пол больного» — дру¬ гая, для реквизита «код цеха» — третья. Таким образом, значение реквизита является одним из элементов множества значений области определения данного реквизита, отображающей соответствующее состояние (из множества состояний) того свойства объекта (явления), ко¬ торое характеризует реквизит. Так, текущим значением реквизита «температура больного» может быть «37,4е», а реквизита «пол больного» — «мужской». Другими словами, значение реквизита используется для представления зна¬ чения соответствующего свойства сущности. Выбор формы представления значений некоторого свой¬ ства сущности прямо зависит от его природы и по возможно¬ сти должен в максимальной мере способствовать приближе¬ нию информационного отображения к естественной харак¬ теристике свойства. Так, свойству «вес груза» наиболее со¬ ответствует числовое представление определенного рекви¬ зита (в установленных единицах измерения и с заданной точностью), свойству «тип упаковки» — словесное описа¬ ние, а утверждение о предъявлении документов к оплате — логическое значение истинности или ложности. Структурой реквизита называется способ представле¬ ния его значений. В структуре различают длину, тип и фор¬ мат реквизита. Длина реквизита есть число символов, которые образуют его значение. Длина реквизита может быть посто¬ янной или переменной Например, значение реквизита «код цеха», как правило, является двузначным, значение рек¬ визита «количество сданных на склад деталей» может зани¬ мать от одной до семи позиций, значение реквизита «потреб¬ ность некоторого материала на годовую программу пред¬ приятия» может занимать от одной до шести позиций до за¬ пятой, отделяющей дробную часть от целой, и от одной до пяти позиций после запятой, значение реквизита «наимено¬ вание материала» может занимать до 120 позиций. Типы реквизитов зависят от видов значений Наиболее распространены числовой, текстовой и логический типы 14
Реквизиты ч и елового типа характери¬ зуют количественные свойства сущностей, полученные в ре¬ зультате подсчета натуральных единиц, измерения, взвеши¬ вания, вычисления на основе других количественно-сум¬ мовых данных и т. п. Значениями таких реквизитов являются числа. Выделяется несколько типов числовых величин в зави¬ симости от класса чисел, системы счисления, фиксации деся¬ тичной запятой, упаковки и других характеристик; на¬ кладываются ограничения на диапазон чисел, форматы' их представления при вводе-выводе и на различных носителях даже в рамках одной реализации. Реквизиты числового типа активно используются в различных арифметических преобразованиях, а большинство из них создается в резуль¬ тате таких преобразований. Особую роль играют реквизиты числового типа, прини¬ мающие только целочисленные значения. Такие реквизиты могут выступать в качестве реквизитов-признаков. Реквизиты текстового типа выражают, как правило, качественные свойства сущностей и характери¬ зуют обстоятельства, при которых имел место изучаемый про¬ цесс и были получены те или иные числовые значения. Такие реквизиты называются признаками. Реквизиты текстового типа могут использоваться в ка¬ честве операндов в арифметических и логических выражени¬ ях. Более того, значения таких реквизитов могут быть полу¬ чены в результате арифметических или логических пре¬ образований. Специальными свойствами реквизитов являются признаки редактирования и преобразования, замок защиты, индика¬ ция наличия значения или множества значений, даты из¬ менения значений и др. Реквизиты логического типа принима¬ ют только два значения: истинность или ложность. Исполь¬ зуются они в логических выражениях. Будем считать, что над реквизитами определены ариф¬ метические и логические операции, понимаемые в обычном математическом смысле, текстовые операции и операции отношения как операции реляционной алгебры. Значениями реквизитов являются последовательности символов (букв, цифр, различных знаков и специальных обозначений), называемые строками или текстом. Полный набор всевозможных попарно различимых сим¬ волов данной информационной системы составляет ее ал¬ фавит. Состав алфавита зависит от применяемых техничес¬ 15
ких средств обработки данных, особенностей обрабатывае¬ мой информации и других факторов. Причем на различных стадиях обработки и даже в рамках одной вычислительной системы возможно применение различных алфавитов. От размера алфавита (число разнообразных символов, которые могут быть в одном разряде величины) и его состава (набор) зависит решение проблем кодирования и декодирования, ком¬ пактной записи значений единиц информации, эффективного хранения данных, ускорения их поиска, передачи, ввода и вывода из ЭВМ в наиболее удобной для пользования форме, снижения затрат на всевозможные перезаписи. Поэтому вы¬ бору алфавита придается особое значение. В значениях реквизитов текстового типа возможное при¬ менение тех или иных символов ограничено алфавитом, ис¬ пользуемым для данной реализации на заданной стадии об¬ работки. При этом возможно наложение ограничений на об¬ щую длину значения реквизита (строку, текст) и на набор символов для той или иной позиции в строке. Так, допусти¬ мо ограничение текста какого-либо признака или части его символов только цифрами, либо только буквами, либо лишь двоичными цифрами — битами. Чаще всего, однако, допустимо использование в той или иной позиции текста любого символа выбранного алфавита. Всевозможные преобразования значений текстовых еди¬ ниц информации сводятся в большинстве случаев к манипу¬ лированию символами. Изучению аппарата такого мани¬ пулирования придается особое значение. Так, для алго¬ ритмического описания процессов оперирования с символами разработан ряд специализированных алгоритмических язы¬ ков, а каждый из современных развитых алгоритмических языков универсального назначения, как правило, имеет аппарат для оперирования с текстовыми величинами. Тексты представляют собой типичные единицы данных последовательного типа, и для удобства их обработки и обращения к отдельным элементам текста —символам они последовательно нумеруются с 1 по п. Если длина текста фиксирована, то п является константой. Если же длина пе¬ ременна, то п тоже является переменной, а конец текста опре¬ деляется специальным ограничителем. Тем самым создается возможность введения индекса позиций строки и адресации к тем или иным позициям. Ограничения на используемый алфавит в различных по¬ зициях текста достигаются с помощью специальной маски, называемой форматом (иногда — шаблоном) и содержащей информацию о том, для каких позиций применимы те или 16
иные подалфавиты. Например, запись формата А(5)Х(3) 9(2) 1(4) означает, что в первых пяти позициях текста допустимы только буквы, в следующих трех — любые символы, в девятой и десятой позициях —только десятичные цифры и в последних четырех — лишь двоичные цифры (О или 1). Часто значениями признаков может быть текст, выражен¬ ный цифрами. Например, полному наименованию материа¬ ла «пятижильный кабель с сечением жил 2 мм» может соот¬ ветствовать условный сокращенный код — номенклатурный номер «2870520». Применение кодов существенно облегчает машинную обработку данных. Запись кодами быстрее и компактнее, их введение позволяет строго систематизировать и классифицировать объекты планирования, учета и управ¬ ления, устранять омонимию и синонимию. Кодирование об¬ легчает группировку информации в необходимых для сводки разрезах, упрощает поиск данных в больших и сложных массивах. Значения реквизитов числового типа могут быть представ¬ лены в десятичной, шестнадцатеричной, восьмеричной, дво¬ ичной и других системах счисления. Значения реквизитов, отображенные двоичными цифрами (0 и 1), обычно называют битовыми строками, или строками бит. В некоторых алго¬ ритмических языках, например ПЛ/1, введен специаль¬ ный тип данных — битовый. Цифровые коды, представленные целочисленными зна¬ чениями, можно отнести к текстовому типу, т. е. ими можно оперировать, независимо от системы счисления, как с любой строкой символов; обращаться к нужной позиции; удалять некоторые цифры или цифры заданных позиций, заменять их на другие цифры; производить вставки, переиндексацию позиций, обработку строки по позициям по определенному алгоритму и т. д., считая строку одномерным массивом, значением каждой отдельной позиции которого является некоторый символ, в данном случае только из подмножества алфавита — цифрового подалфавита. По своему характеру цифровые коды являются числами (чаще всего целыми) и могут подвергаться арифметической обработке. Поэтому необходимы преобразования типов ве¬ личин — перевод кодов в числа и наоборот (перевод кодов из одной системы счисления в другую и даже перекодировка алфавитных строк в цифровые на основе цифровых эквива¬ лентов (весов), приписанных отдельным символам алфавита, и наоборот). Подобные преобразования выполняются с помощью специальных средств в виде набора операций, функ¬ 17
ций (в том числе библиотечных), подпрограмм и т. п., при этом используются описания реквизитов. В частности, при преобразовании чисел в текст используются форматы, определяющие длину целой и дробной частей числа (его ман¬ тиссы), положение десятичной запятой, размещение опера¬ ционного знака (плюса или минуса), условия гашения и за¬ мены другими обозначениями незначащих нулей и др. С помощью форматов, указателей типов и других средств описания реквизитов ограничивается класс их значений — подмножество значений для возможного присвоения той или иной величине. Для признаков область определения значе¬ ний (подалфавит) может быть, как отмечалось, определена и для любой позиции строки. Кроме того, область определения значений может быть установлена явным перечислением всех конкретных зна¬ чений — строк в одном из нескольких вариантов их возмож¬ ного представления. Так, для признака «месяц» класс зна¬ чений может быть явно ограничен по описанию лишь две¬ надцатью возможными значениями и одним из подходящих конкретных написаний: либо полными названиями месяцев (январь, февраль и т. д.), либо их сокращениями (напри¬ мер, янв., февр. и т. д.), либо римскими цифрами, либо арабскими и т. д. Так как общее количество значений одного реквизита- признака конечно, область определения значений может быть представлена полным перечнем — массивом всех его зна¬ чений, обычно называемым номенклатурой дан¬ ного признака и создаваемым на практике для классифика¬ торов и при кодировании значений признака. Следовательно, значение реквизита-признака есть значение одной из по¬ зиций номенклатуры. Например, признак «категория ка¬ чества изделий» может принимать одно из трех значений, составляющих номенклатуру значений этого признака. Тогда одним из значений этого признака может быть, на¬ пример, «высшая категория качества». Реквизит логического типа (часто именуемый булевым) может принимать одно из двух значений: истинность или ложность. В текстовой интерпретации значению истинности могут соответствовать символы «1», « + », «И», слова «да», «истина» и т. д., значению ложности — символы «О», «—», «Л», слова «нет», «ложь» и т. д. Переменные логического типа используются для ото¬ бражения таких свойств объектов и процессов, которые по своей характеристике можно разделить на две противопо¬ ложные группы, например присутствует какой-то признак 18
или отсутствует, наступил или нет некоторый момент, пере¬ шло или нет явление некоторую грань, выдержано опре¬ деленное условие или нет, положительная величина или отрицательная и т. д. Примерами переменных логического типа могут быть знак величины (плюс или минус), признак избыточности, переполнения, завершения, годности и т. п. Над логическими величинами осуществляются операции математической логики (отрицания, конъюнкции, дизъюнк¬ ции, импликации и др.); они участвуют в логических выра¬ жениях, вычисляемые значения которых (истинность- или ложность) в свою очередь присваиваются реквизитам логи¬ ческого типа. В практике обработки данных часто применяют также ло¬ гические шкалы (векторы)— одномерные массивы логичес¬ кого типа, значением каждой позиции которых является ис¬ тинность или ложность. Так, какому-либо основному мас¬ сиву М длиной Н позиций может быть поставлен в соответ¬ ствие вспомогательный массив логического типа Л той же длины и при изменении данных в i-и позиции массива М за¬ носится 1 в ту же позицию массива Л. Тогда позиции, со¬ ответствующие значению истинности в массиве Л, будут ука¬ зывать на позиции основного массива М, подвергшиеся изме¬ нениям. Этот пример также поясняет суть преобразования логического массива в строку бит и обратного преобразова¬ ния, заключающегося в установлении соответствия между корреспондирующими позициями строки бит и логического массива. В некоторых случаях встречается объявление специаль¬ ных типов данных: географических координат (для выраже¬ ния долготы и широты в градусах, минутах и секундах), времени (часы, минуты, секунды), даты (год, месяц, день) и др. 1.3. СОСТАВНЫЕ ЕДИНИЦЫ ИНФОРМАЦИИ Каждый из наблюдаемых объектов, процессов характери¬ зуется рядом присущих ему свойств. Но точно так же, как взятое в отдельности любое свойство еще не представляет сущность (объект, процесс) в целом, так и изолированно взятый тот или иной реквизит, характеризующий своим значением одно из свойств сущности, не может представлять законченного сообщения о наблюдаемом объекте (процессе). Требуется некоторая взаимосвязанная совокупность рек¬ визитов для того, чтобы воспроизвести некоторое сообщение о сущности, определенную информацию о явлении. 19
Каждое /-е свойство в сообщении Ct представлено значе¬ нием определенного приписанного этому свойству реквизита Rj: Ci — (Rij R2, Rj, Rm)t где реквизиты Rj могут быть и признаками, и числовыми переменными-основаниями. Реквизитом-признаком называется такой реквизит, зна¬ чение которого определяет некоторое обстоятельство дей¬ ствия (место действия, действующих лиц, предметы и про¬ дукты труда, время и др.). Реквизит-основание — это такой реквизит, значение ко¬ торого определяет некоторую меру действия (количество или стоимость предметов и продуктов труда, норму выработки или времени и др.). Чаще реквизит-основание является реквизитом числово¬ го типа (иногда его называют количественным). Каждый реквизит в сообщении имеет лишь одно значе¬ ние (строку или число). Однако поскольку одна и та же сущ¬ ность (допустим, факт отпуска изделий покупателям) фикси¬ руется многократно с возникновением каждый раз нового сообщения, значения любого реквизита Rj меняются в зави¬ симости от обстоятельств. Каждое из сообщений, отображающих какой-либо один хозяйственный факт, глубоко индивидуально, поскольку варьируются значения по составным свойствам сущностей. Так, при отпуске готовых изделий покупателям сообщения могут фиксироваться по каждому из складов, по каждому из наименований продукции, для каждого из покупателей, каждый день и т. д. В связи с меняющимися значениями свойств этой сущности все сообщения будут отличаться друг от друга. Так как каждый нзш реквизитов сообщения С* может при¬ нимать одно из Kj значений, где Kj—длина номенклатуры для реквизита-признака и диапазон значений для реквизита числового типа, то потенциально множество значений co¬ rn общения данного вида равно произведению П/С;-. В дейст- 1=1 вительности, однако, из-за наличия определенной логической взаимосвязи реквизитов, различной вероятности появления отдельных значений реквизита и сочетаний значений разных реквизитов множество значений меньше теоретически воз¬ можного, по тем не менее, как правило, велико. Каждое сообщение в множестве сообщений данного вида отличается от другого значением хотя бы одного из входящих 20
в сообщение реквизитов. Все множество этих сообщений объединяется в один вид благодаря одинаковому составу свойств, отображаемых реквизитами, или структурой сообщения. Структурой сообщения объединяется некоторая сово¬ купность разных реквизитов, т. е. в данном случае некоторое более сложное по структуре информационное образование, состоящее из элементарных единиц информации — рекви¬ зитов. Единицу информации, состоящую из совокупности дру гих единиц информации, ассоциативно связанных между собой некоторыми отношениями, назовем составной единицей информации (СЕИ), или просто составной. Единицу ин¬ формации, входящую в СЕИ, назовем составляющей единицей информации, или просто составляющей. В рас¬ смотренном выше примере в качестве составляющих исполь¬ зовались реквизиты Rl9 R2i ..., Rm. Составляющая единица информации может быть по по¬ ложению в структуре, в свою очередь, составной единицей информации, но более низкого уровня, чем СЕИ, в состав которой входит эта составляющая. Наоборот, СЕИ может быть составляющей, если она находится в структуре не на первом (для СЕИ) уровне, а в составе другой, более укруп¬ ненной СЕИ. Для каждой СЕИ будем различать ее наименование, структуру, значение и некоторые специальные свойства. Наименование СЕИ (или имя) служит для обращения к ней и обычно представляется словом или группой слов, например «движение материалов за месяц». Чаще использу¬ ются сокращенные названия СЕИ — идентификаторы. Для однозначной трактовки возможных употреблений синонимов СЕИ применяется тезаурус СЕИ. Структурой СЕИ называется ее реквизитный состав с учетом иерархического вхождения СЕИ более низкого уровня в состав рассматриваемой СЕИ. Рекурсивность опре¬ деления структуры СЕИ обеспечивает возможность по¬ строения весьма сложных информационных конструкций, вплоть до интегрированных баз данных. Под значением СЕИ понимается некоторая конструкция, в которой каждому реквизиту, входящему в структуру СЕИ, присвоено значение или некоторое множество значений. Для СЕИ могут быть определены арифметические, логи¬ ческие и текстовые операции, а также операции отношения. При арифметических операциях каждый реквизит, входящий в структуру СЕИ, участвует в арифметических операциях 21
над реквизитами, ему может быть присвоено некоторое зна¬ чение или множество значений. При логических операциях СЕИ рассматривается как некоторая переменная булевс¬ кого типа, которой может быть присвоено значение этого же типа. При операциях отношения СЕИ рассматривается как множество значений, над которыми определены операции реляционной алгебры. Естественно, что при выполнении операций СЕИ выступают в качестве операндов соответству¬ ющих выражений. Примером составной единицы информации может быть некоторое множество документированной информации (также относимой к структурированной). Такая информация может быть представлена на любом носителе данных, таком, как магнитная лента, магнитный диск, перфокарты, перфолента, табуляграмма, первичный документ и т. д. Именно анализ такой информации позволяет в определенной мере изучить состав, внутреннее строение и свойства обрабатываемой ин¬ формации и информации, получаемой в результате обработ¬ ки. Поскольку в экономике документ служит основным сред¬ ством регистрации отдельных фактов хозяйственной дея¬ тельности, основным способом определения характера эко¬ номической информации является анализ содержания и структуры документов. В частности, содержание всех документов предприятия в совокупности фактически отображает всю его деятельность в том виде, в каком она была зафиксирована и зарегистри¬ рована управленческим аппаратом, в каком весь трудовой процесс был представлен в результате определенных эконо¬ мических обобщений и оперирования первоначальными дан¬ ными. К. Маркс указывал, в частности, что бухгалтерский учет является средством контроля и мысленного обобще¬ ния процесса производства*. Многочисленные факты и операции хозяйственной жиз¬ ни предприятия отражаются документами. Варианты реги¬ страции могут быть самыми разнообразными в зависимости от объема и характера производства, количества рабочих, производственной структуры предприятия, формы бухгал¬ терского учета и методики планирования, технической осна¬ щенности управленческого аппарата, методов исчисления готовой продукции и т. д. Характер документирования каж¬ дой отдельной хозяйственной операции зависит от конкрет¬ ных особенностей и условий ее осуществления и в связи * См.: Маркс /(., Энгельс Ф. Соч. 2-е изд., т. 24, с. 153. 22
PI P2 Таблица 1.1 P3 P4 C2 !l ПРИКАЗ-НАКЛАДНАЯ НА ОТПУСК I Дата |вИД ОПЕРАЦИИ|сКЛАД \ ГОТОВЫХ ИЗДЕЛИЙ Ко 19 |8.11.84| 51 I 4 022 ПОЛУЧАТЕЛЬ си\ НАИМЕНОВАНИЕ код АДРЕС Завод МЛЗ* 132 г. Москва, ул. 1 Мая, 1 Р5 Р6 Р7 Р8 Р9 С23 С12 С13 ПЛАТЕЖНОЕ ТРЕБОВАНИЕ № 899 ОТ 8 февраля 1984 j С31 1 Р10 ВИД УПАКОВКИ СТАНЦИЯ НАЗНАЧЕНИЯ ОСНОВАНИЕ Ящики г. Москва-То^арная 11 | PH Договор М> 2 0 от 6.01 .84 j Р12 Р13 Р14 Л1-. С32 Q4 Номен¬ Количество Наименование, сорт, размер клатур¬ ный номер Цена по на¬ ряду отпу¬ щено Сумма С12.(1) Подшипники 11250 2-50 100 100 250—00 С12.(2) Кольца СЧ-15 11781 1-25 30 27 33—75 С12.(3) Сепараторы 12261 1—15 180 j 1 180 1 207—00 С12 .(4) '~оГ ~Q3^ С12.(5) С12.(6) Р15 Р16 Р17 Р18 ОТПУСК РАЗРЕШИЛ ВИЗА ГЛАВНОГО БУХГАЛТЕРА ОТПУСТИЛ ПОЛУЧИЛ Ильин Зуев Осин Кузин Название завода и данные о заводе — условные. 23
с этим оформление одной и той же операции не одинаково для разных предприятий и организаций. Поэтому и количество форм документов, в которых регистрируется на предприяти¬ ях даже отнотипное явление (например, расход материалов на производство), имеет много разновидностей. Так, сущест¬ вующие на предприятиях формы лимитной карты отлича¬ ются наличием или отсутствием некоторых реквизитов, их расположением и пр. Форма одного и того же наименования и назначения может быть в одном случае чрезвычайно слож¬ ной, в другом — простой. Рассмотрим в качестве примера информационную сово¬ купность, отражающую информацию, которая содержится в таком распространенном документе, как приказ-наклад¬ ная на отпуск готовых изделий (табл. 1.1). Форму этого документа можно условно разбить на три части: общую, предметную и оформительную (подписи). Следовательно, представленную этим документом СЕИ S соответственно можно разбить на три информационные совокупности — составные единицы информации: СИ (общая часть), С12 (предметная часть) и С13 (оформительная часть), что можно представить записью: S. (СП, С12, С13), где 5— идентифи¬ катор СЕИ S, точка — знак иерархического отношения (подчинения), а (СИ, С12, С13) — составляющие по от¬ ношению к составной S, запятые между ними — знаки от¬ ношения следования в рамках одного уровня. Запись можно прочитать так: «Составная S состоит из составляющих СИ, С12 и С13». Составляющая СИ, представляющая общую часть до¬ кумента, в свою очередь является СЕИ и включает три составляющих: СИ. (C2I, С22, С23). СЕИ С21 также является составной и включает четыре составляющие следующего уровня (Я1 — номер накладной на отпуск готовых изделий, Я2 — дата, Р3 — вид опера¬ ции, Я4 — код склада), причем все они являются реквизи¬ тами-признаками: С21. (Р1, Р2, Р3, Р4). СЕИ С22 (данные о получателе) содержит три элемента (Р5, Р6 и Р7 — наименование, код и адрес получателя), являющихся реквизитами-признаками: С22. (Я5, Я&, Р7). Несколько сложнее структура информационной сово¬ купности С23 из общей части документа: С31 —данные о платежном требовании, Р10 — вид упаковки, ЯП — стан¬ ция назначения и Я12 — основание для сделки. Однако ее составляющий элемент С31 в свою очередь является СЕИ, содержащей два элемента: номер платежного требования — Я8 и дату выписки платежного требования — Я9. Струк¬ 24
тура С23 может быть записана так: С23.(С31 .(Р8, Р9), Р10, ЯП, Я12). Рассмотрим теперь предметную часть документа — СЕИ С12. Это составная единица информации, поскольку содер¬ жит пять элементов: Я13 — наименование, сорт, размер; Я14 — номенклатурный номер; Q1 — цена; С32 — коли¬ чество; Q4 — сумма. С32 состоит из двух элементов: Q2 —■ количество по наряду и Q3 — количество отпущенное. СЕИ С12 можно записать следующим образом: С12. (Я 13, Я14, Q1, С32. (Q2, Q3), Q4). Такая формулировка была бы справедливой, если бы составная С12 представляла лишь одно сообщение. Однако, как видно из табл. 1.1, приводятся три сообщения (значения СЕИ), а может быть дано до шести сообщений (если запол¬ нить все строки). Для указания такой особенности СЕИ используются специальные средства. Единица информации одной формы, представляющая только одно значение в некоторой конструкции, называет¬ ся простой, а представляющая несколько значений в не¬ которой конструкции, — массивом. Составная единица информации только с одним значением в некоторой конст¬ рукции называется простой составной, а СЕИ, имеющая несколько значений в некоторой конструкции, — составной- массивом. В рассматриваемом случае к простым СЕИ относятся, например, составные СИ, С21, С22, С23, С31. Составная С12 является СЕИ-массивом, и в ее описании необходимо объявить длину массива — максимально допустимое чис¬ ло позиций, предназначенных для значений. Как правило, указываются номер позиции (индекса) массива, с которой начинается нумерация (индексация) позиций (в большинстве случаев это 1), и номер его последней позиции, например для нашего случая 1:6, где двоеточие означает последователь¬ ную нумерацию (1, 2, ..., 6). Индекс, с помощью которого осуществляется адресация к той или иной позиции мас¬ сива, может изменяться только в диапазоне этих двух чисел. Эту пару целых чисел обычно называют граничной парой, а сами числа — соответственно нижней и верхней граница¬ ми массива (по данному его измерению; для матрицы, естест¬ венно, требуются две граничные пары). В качестве нижней и верхней границ допускаются и переменные, а во многих алгоритмических языках — и арифметические выражения, вычисляемые к моменту точного определения длины мас¬ сива. Для массивов с переменной длиной используются так¬ же специальные указатели (отметки) конца массива. 25
Примерами описаний массивов* разной размерности могут служить записи: А.{ 1 : N), В.( 1 : ЛГ, 1 : N), С.(1 : 5, 1:8, 1:4), D.(M : N), Е.(К + 1 : К + N). Для составной-массива С12 соответственно следует за¬ писать С12.(1 : 6), и с учетом этого формулировкой СЕИ-мас- сива С12 будет С12.(1:6). (Р13, Р14, Ql, C32.(Q2, Q3),Q4). с УроБни Рис. 1.1. Графическая интерпретация структуры СЕИ- массива S из М позиций Оформительная часть документа С13 состоит из че¬ тырех реквизитов: Р15 — отпуск разрешил, Я16 — виза главного бухгалтера, Р17 — отпустил, Я18—получил: С13.(Я15, Я16, Р17, Я18). В конкретных условиях, например промышленного пред¬ приятия, приказ-накладная на отпуск готовых изделий пред¬ ставляется некоторым множеством документов, отражающим совокупность хозяйственных операций по отпуску готовых изделий. Следовательно, этот документ является массивом. Структура СЕИ-массива S из М позиций может быть пред¬ ставлена следующей записью: 5.(1 : М). (СИ. (С21. (Р1, Р2% РЗ, РА), С22. (Я5, Р6, Р7), * Описание массивов подробно рассматривается в курсе «Основы алгоритмизации и алгоритмические языки». 26
С23. (С31.(Р8, Р9), Р10, ЯП, Я12), С12. (1:6).(Я13, Я14, Q1, С32. (Q2, Q3), Q4), С13. (Я15, Я16, Я17, Я18). Графическая интерпретация структуры этой СЕИ дана на рис. 1:1, где висячие вершины дерева представляют со¬ бой реквизиты, из них реквизиты-признаки имеют иденти¬ фикаторы, начинающиеся буквой Р, а реквизиты-основания а Урод ни. Рис. 1.2. Графическая интерпретация структуры СЕИ с преобра¬ зованной структурой —идентификаторы, начинающиеся буквой Q. Остальные вер¬ шины — это СЕИ, являющиеся промежуточными и состав¬ ляющими по отношению к основной составной 5. Вспомо¬ гательная роль таких промежуточных составных особенно выявляется при перестроении структуры СЕИ, когда каж¬ дая позиция составного массива будет иметь свой самостоя¬ тельный набор значений всех реквизитов, что позволяет обрабатывать этот массив отдельно. В полученной СЕИ будут отсутствовать промежуточные СЕИ-составляющие. Пример составного массива 5 приказов-накладных на от¬ пуск готовых изделий с такой преобразованной структу¬ рой иллюстрирует граф этой структуры (рис. 1.2), на котором число уровней СЕИ сократилось до трех, а длина массива N равна 6/И. Такой структуре соответствуют матричная ин¬ терпретация и формулировка 5.(1 : N).(P 1, Р2, Р3, Р4, Р5, Р6, Р7, Р8, Р9, Р10, Р11, Р12, Я13, Р14, Q1, Q2, Q3, Q4, Р15, Р16, Р17, Р18). Сравнение двух структур одной и той же составной, особенно в их табличной интерпретации, показывает, что вторая более проста, но имеет увеличенный объем данных. 27
CS CO LO CD IN СО ^ Ю CD CN CO Tf Ю CD CO — 03 CO <. 28 Рис. 1.3. Ненормализованная структура СЕИ S
|pi|p2|p3|p4|p5|p6|p7|p8 |р9 |р 1 o|pi 1 |р 12|pi з|р 141<?1 |<?2|(?з|<?4|Р15|Р1б|р17|pi8 I - 1 2 3 4 5 6 1 1 N Рис. 1.4. Нормализованная структура СЕИ 5 Структуру первого типа (рис. 1.3) называют ненормализо¬ ванной, структуру второго типа (рис. 1.4) — нормализо¬ ванной. Введение промежуточных составных позволяет устра¬ нить дублирование данных и создать определенные удобства для групповой адресации. Промежуточные составные назы¬ вают группами, причем состоящие только из реквизитов (например, С21, С22, С31, С32 и С13 в первой структуре) — простыми, а имеющие в своем составе другие составные (группы) — сложными (например, СП, С12, С23). Примерами простых групп могут также служить: адрес, (область, город, улица, дом, квартира) дата, (день, месяц, год) товар.(наименование, номер, сорт, размер) лицо, (фамилия, имя, отчество) книга, (автор, название, том, издательство, год). В качестве примеров сложных групп можно назвать: работа, (цех, дата, лицо, изделие, операция) водитель, (лицо, автомобиль) адресат, (адрес, лицо) товарополучатель, (товар, адресат). В первой группе примеров все составляющие являются реквизитами, во второй большая часть из них — группы. Синонимами термина «группа» также являются термины «сегмент», «агрегат», «набор» и иногда — «запись». Более часто под записью понимают значение одной позиции со- 29
ставиой-массива (см. рис. 1.3), или, другими словами, со¬ общение об одном из состояний наблюдаемого объекта или явления. Сама составная-массив при этом определении — совокупность записей о множестве состояний объекта или множестве объектов наблюдаемого процесса (явления). Запись представляет собой совокупность значений рек¬ визитов, входящих в состав этой СЕИ. Это же справедливо в отношении групп, совокупность значений каждой из ко¬ торых иногда называют статьей. В конечном итоге значение любой составной единицы информации, какой бы сложной она ни была и на каком бы уровне иерархии ни находи¬ лась, есть совокупность строк и чисел — значений составля¬ ющих реквизитов. 1.4. ПОКАЗАТЕЛИ Показатель — составная единица информации, состоя¬ щая из одного реквизита-основания, отражающего тот или иной факт в количественной или качественной оценке, и ряда характеризующих его и связанных с ним логическими отношениями реквизитов-признаков (времени, места, дей¬ ствия, действующих лиц, предметов и продуктов труда и Т. д.). Общий вид показателя может быть представлен следую¬ щим образом: Я. (Pl9 Р2% Рз,..., Рп, Q), где Ръ Р2, Р з, ..., Рп — реквизиты-признаки; Q — реквизит-основание показателя. Для показателя-массива общая формулировка включает указание длины массива (Д): Я. (1 : Д). (Рх, Р2> Р3,..., Pju Q). Одна из причин выделения показателей в особую разно¬ видность составных единиц информации заключается в том, что показатель, по существу, является минимальной по составу информационной совокупностью, сохраняющей ин¬ формативность, и поэтому достаточной для образования са¬ мостоятельного документа, который в дальнейшем может существовать даже изолированно от информационной систе¬ мы, имея свою форму и свой алгоритм получения. Показатели представляются, с одной стороны, простейши¬ ми СЕИ, способными к документообразованию, а с другой — сложными образованиями информации, охватывающими описания многообразных качественных свойств и количест¬ 30
венной характеристики сущности и состоящими в силу этого из совокупности реквизитов. По аналогии с СЕИ для показателя будем различать на- именование (идентификатор) показателя, его структуру или форму, значение и некоторые специальные свойства. Отметим особенности этих понятий. Структурой показателя называется его реквизитный состав. Значение показателя — это некоторая конструкция, в которой каждому реквизиту, входящему в показатель, присвоено конкретное значение из соответствующей об¬ ласти определения. Для показателя определим арифметические, текстовые, логические операции и операции отношения. При арифметических операциях каждый реквизит, вхо¬ дящий в показатель, участвует в арифметических операци¬ ях над реквизитами, при этом ему может быть присвоено конкретное значение из соответствующей области опреде¬ ления. При текстовых операциях реквизиты, входящие в показатель, участвуют в текстовых преобразованиях и им может быть присвоено текстовое значение (строка). Числовое значение реквизита-основания для таких операций предва¬ рительно преобразуется в текст. При логических операциях показатель выступает как некоторая переменная булевского типа, которой может быть присвоено значение этого же типа. При операциях отношения показатель рассматривается как множество значений, над которым определены операции реляционной алгебры. Естественно, что при выполнении операций над показа¬ телями они выступают в качестве операндов соответствую¬ щих выражений. Определим функцию от показателя как некоторое выра¬ жение, включающее арифметические, логические операции и операции отношения, в результате выполнения которого каждому реквизиту, входящему в показатель, будет при¬ своено значение из соответствующей ему области определе¬ ния. Так, Y = Е(/7), где П — показатель n.(Pb Р2, ..., РПУ Q); Y — показатель Y. (Тъ Г2, ..., Tny Z), означает, что заданы такие функции fiy i= \,m и /т+1 над реквизитами, что Ti = fi(Pj), i = 1, m\ j = 1. я; 2 = fm+l(Q)- 31
Я13 PH | ! Q1 1 2 К N Я 2 Р 3 Я4 ЯК.н Р5 | Я6 | Р7 | Р10 | ЯП | Я13 | Я14 | Q2 N I L П к-с Р2 Р 3 Я4 Р 5 Я6 Я 7 Я10 ЯП Я13 Я14 Q3 1 2 N Рис. 1.5. Табличная интерпретация структур показателей Яс Я2 | ЯЗ | Я4 | Я5 | Я6 | Я7 | Я10 | ЯП | Я13 | Я14 | Q4 I I 1 I I 1 I I I 1 I I I I I I I I I 1 I I 1 I 1 I II I I I Для общности можно обозначить Рт+1 = Q, Тп.п = Z. Тогда Ti = i = 1, m + 1; j = 1, n + 1. Аналогично определяется функция от нескольких пока¬ зателей у = /(Яь ..., ЯЛ). Составную единицу информации любой сложности мож¬ но свести в конечном итоге к определенной совокупности различных показателей, каждый из которых будет иметь самостоятельный алгоритм получения. Такой процесс на¬ зывается декомпозицией СЕИ. Это одна из ха¬ рактерных особенностей экономической информации. Обрат¬ 32
ный процесс объединения нескольких показателей в одну СЕИ называется к о м п о з и ц и е й СЕИ. Например, СЕИ приказа-накладной на отпуск готовых изделий (см. табл. 1.1) можно представить как четыре различных по структуре показателя: цена изделия (Яц), количество изделий, зана¬ ряженное на отпуск (Як.„), количество отпущенных со склада изделий (Як.0), сумма отпущенных со склада изде¬ лий (Яс). Формулировка структуры каждого из них (для упрощения опущены номера документов, подписи и т. п.) имеет вид: Яд (1 :К). (Р13,Р14,(?1) Як.и (Р*. РЗ, Р4, Р5, Р6, Р7, Р10, РП, Р13, Р14, Q2) Ян.0 .(1:Я). (Р2, РЗ, Р4, Р5, Р6, Р7, Р10, РП, Р13, Р14, Q3) Яс. (1:Я). (Р2, РЗ, Р4, Р5, Р6, Р7, Р10, Р11, Р13, Р14, Q4). Табличная интерпретация структур этих показателей приведена на рис. 1.5. Заметим, что в обоих случаях массив показателей цен имеет длину К, отличную от длины составного массива приказов-накладных N. Отдельно может существовать (в документе своей формы, на каком-то из носителей информации или в памяти машины) и каждый из остальных показателей. В возможности такого изолированного выделения и обособленного рассмотрения с полным при необходимости абстрагированием от документов или других аналогичных носителей данных заключается одно из важных преимуществ показателей как разновидно¬ сти составных единиц информации. При этом расчленение составной единицы информации на составляющие показатели (декомпозиция) с их обособленным дальнейшим существованием не означает нарушения связи между ними и сохраняет возможность последующего объеди¬ нения (композиции) при необходимости в СЕИ более сложной структуры благодаря наличию в их составах одинаковых по форме признаков (родственности по форме) и, кроме того, некоторых признаков с одинаковыми значениями (родствен¬ ности по значениям). Так, все признаки Як.ш Як.0 и Яс одинаковы по форме, т. е. их признанные части совпадают. Некоторые из признаков (Р2, Р3, Р4, Р5, Р6, Р10 и РП) одинаковы по значению в пределах одной записи СЕИ, а другие совпадают по значениям соответствующих позиций (например, по одним и тем же номенклатурным номерам Р14 из показателей Як.н, Як.0, Яс). Между тем для объе¬ динения двух различных показателей в одну СЕИ в прин¬ ципе достаточно их совпадения (родственности) по форме. 2 зак. 1818 33
Тогда СЕИ с одинаковыми значениями этого признака будут слиты. Так, показатели Я. (1 : N). (а, б, в, г, д, я) и Р.(1 : TV). (к, л, 5, //), где х и у — основания, могут быть объединены в составной массив С.(1 : N).(a} б, в, г, /с, л, и/, б, х, у) при условии, что реквизит-признак д из показателей Я и Р обо¬ значает один и тот же реквизит. При слиянии значений по¬ казателей Я и Р возможны два случая. В первом случае каждому значению признака д из показателя Р соответст¬ вует одно и только одно значение этого признака из показа¬ теля Р. Правила образования составного объединенного показателя С в этом случае очевидны. Во втором случае такое соответствие значений реквизита-/ признака д не выполняется. Если некоторому значению при¬ знака д из показателя Я нет соответствующего значения это¬ го же признака из показателя Р, составной показатель С об¬ разуется следующим образом: значения реквизитов ау б, ву г, ду х берутся из показателя Я, вместо значений рекви¬ зитов к, л, Му у используется символ «пусто». Если некоторому значению д из показателя Р нет соот¬ ветствующего значения из показателя Я, то составной пока¬ затель С образуется аналогично предыдущему при условии, что роли показателей Я и Р изменяются*. Справедливо утверждение, что к любой составной еди¬ нице информации можно применить декомпозицию. В резуль¬ тате подучим некоторую взаимосвязанную совокупность показателей, адекватных исходной СЕИ. Каждый показатель имеет множество значений, и полу¬ чение любого из них осуществляется по алгоритму, свойст¬ венному данному показателю. Поэтому если расчленить информационную систему объекта (организации) на отдель¬ ные показатели и описать для каждого из них алгоритм по¬ лучения, то при соответствующем отображении взаимосвязи между показателями и соблюдении предопределенной по¬ следовательности их образования можно иметь в совокуп¬ ности общий комплексный алгоритм получения информации всей системы. По своему составу (только одно основание и сравнительно небольшое число характеризующих его признаков, как правило, не более 20) показатели сравнительно однотипны, что позволяет эффективно использовать их в качестве еди¬ ниц информации при проектировании информационного и программного обеспечения систем обработки экономической информации. * Подробнее эти вопросы рассматриваются в гл. 2. 34
Показатель можно применять как обобщающую единицу измерения объема данных. В роли измерителей «предметов труда» и «продуктов» обработки данных показатели более эффективны, чем такие единицы измерения, как «документ», « д о к у м е нтостр о к а », «доку м е н то п о з и ц и я », « г р а фо - к л ет к а », «слово», «знак» и др. Применение в качестве единиц измерения графо-клетки, слова, знака, символа, байта и т. п. позволяет довольно точно определить физические объемы данных. Но эти еди¬ ницы измерения информации не обладают информативно¬ стью, поэтому на их базе нельзя получить ряда важных для характеристики информационной системы группировок. На¬ пример, нельзя определить объем данных производной и постоянной информации. Поэтому целесообразно их исполь¬ зовать в сочетании с более укрупненными единицами ин¬ формации, обладающими таким свойством. Измерение объема данных только в составных единицах информации и их позициях (записях) или в документах и документостроках (документопозициях) может дать неточное представление об объеме информации, поскольку существен¬ но варьируются размеры массивов СЕИ. Кроме того, такие измерители не позволяют получить распределение объемов данных по ряду характерных для процессов обработки данных разновидностей информации, поскольку в составе СЕИ могут быть ее составляющие с различной характеристикой (например, исходные и произ¬ водные, входящие и исходящие, постоянные и переменные и т. д.), что связано с разной ролью в преобразованиях входя¬ щих в них реквизитов числового типа. Поскольку у пока¬ зателя только один реквизит такого типа — основание, он не имеет этого недостатка и удобен для определения объе¬ мов информации в самых разнообразных разрезах, выполне¬ ния различных группировок в зависимости от используе¬ мой классификации. В табл. 1.2 для примера приведен удельный вес выраженной в показателях информации тех¬ нико-экономического планирования ряда машиностроитель¬ ных предприятий по разделам техпромфинплана и некото¬ рым разновидностям показателей. Классификация показателей по функциям управления предприятий и организаций, по внутренним разделам этих функций, подсистемам, цехам, отделам и другим подразде¬ лениям, по задачам и т. п. вполне естественна, и измерение объема данных в этом случае более удобно и точно, чем в составных единицах информации, так как входящие в по¬ следние показатели могут возникать в различных подразде- 2* 35
Таблица 1.2 Удельный вес, % о Наименование участка планирования по числу форм показа¬ телей по числу значений показателей о о а 2* л «Я постоян¬ ных нор- мативно- расцено- чных пере¬ мен¬ ных итого постоян¬ ных нор- матив- но-рас- ценочных пере¬ мен¬ ных нт.ого Показател1 сти расчето Планирование произ¬ водства 2,5 35,4 37,9 1,9 11,6 13,5 410 Планирование ис¬ пользования произ¬ водственных мощно¬ стей 0,4 13,8 14,2 0,1 2,9 3,0 240 Планирование техни¬ ческого развития предприятия 1,1 4,0 5,1 0,1 0,0 0,1 15 Планирование труда и заработной платы 0,8 21,5 22,3 1,0 1,0 2,0 90 Планирование пот¬ ребности предприя¬ тия в материалах 1,5 4,2 5,7 4,1 38,0 42,1 7900 Планирование себе¬ стоимости продукции 1,3 9,6 10,9 2,9 5,2 8,1 800 Составление финан¬ сового плана пред¬ приятия Итого 1,0 2,9 3,9 18,2 13,0 31,2 8340 8,6 91,4 100,0 28,3 71,7 100,0 1120 * Среднее число значений на одну форму показателя. лениях, на разных этапах, не в рамках одних подсистем и функций управления и т. д. При классификации показателей выделяются следующие аспекты: объект, состояние которого отображается показателем; состояние объекта; единица измерения основания; стабильность значений показателя. К наиболее общим группировкам по признаку «объект» отнесены показатели, определяющие население, природные ресурсы, общественный продукт, структурные единицы (чис¬ ло предприятий, организаций, учреждений, территориаль¬ ных образований и т. п.), информацию. В этой группе особый интерес представляют показатели со значением основания, равным единице, в которых до 36
процесса обработки наблюдается явление завуалированного основания. Такие показатели будем называть булевскими. Особенностью булевского показателя является альтерна¬ тивность значения его основания, которое сводится к одному из двух значений: единице или нулю. При первом значе¬ нии показатель как бы подлежит регистрации в связи с на¬ личием наблюдаемого объекта и присущих ему признаков. При втором, нулевом, значении как бы устанавливается отсутствие данных признаков, а следовательно, и всей еди¬ ницы наблюдения. Из этого вытекает принципиальная воз¬ можность образования показателя на базе любого характе¬ ризующего объект признака. Основание такого показателя будет указывать на наличие или отсутствие данного признака (симптома), выражая это альтернативно в двоичной системе счисления или в виде булевской переменной. Булевские показатели широко используются в статисти¬ ческой и бухгалтерской практике на этапе первичного учета и переписей. При внешней простоте булевские пока¬ затели дают возможность осуществлять обобщение, агрега¬ цию, в результате которых создаются укрупненные показа¬ тели. Чем более обобщенным, агрегированным становится показатель, тем он менее конкретен, и, наоборот, чем больше показатель отражает условия, в которых он фиксировался, тем менее он обобщался в процессе обработки. Например, первичный показатель бланка переписи населения имеет значительно больше признаков, чем любой сводный пока¬ затель, получаемый при разработке данных переписи насе¬ ления. ’ С видом показателя, регистрируемого в сфере первич¬ ного учета, тесно связаны вопросы углубления и упрощения учета. Для получения наиболее полной информации целе¬ сообразнее производить съем показателей с наибольшим чис¬ лом сопутствующих признаков, т. е. булевских. Но регистра¬ ция булевских показателей ведет к существенному увеличе¬ нию объема информационных работ. Поэтому практически целесообразнее съем показателей со значениями оснований более единицы (показателей счета). При укрупненной реги¬ страции теряется часть признаков и, следовательно, ухуд¬ шаются возможности углубленного анализа, но зато сущест¬ венно сокращаются затраты на первичный учет. Каждое явление обладает достаточно большим числом признаков и с него могут быть сняты самые разнообразные показатели. Однако регистрация всех признаков невозможна и бессмысленна. Для практических целей регистрируются лишь важнейшие признаки качественного и количествен. 37
ного характера. Некоторые из них имеют особое значение, поскольку непосредственно участвуют в последующей обра¬ ботке и выводе обобщающих показателей. Эти количест¬ венные признаки снабжаются другими сопутствующими признаками и вместе с ними образуют такие информацион¬ ные совокупности, которые являются минимальными, но вполне достаточными для поставленных целей учета и отчет¬ ности. Таков процесс превращения количественных призна¬ ков в основания, анализ которого позволяет отметить наибо¬ лее существенные отличия признаков от оснований даже в момент съема показателей. По окончании же съема каждый из зарегистрированных показателей существует в самостоя¬ тельном виде. По признаку «состояние» показатели подразделяют- на статические и динамические. К статическим отнесены показатели, характеризую¬ щие отображаемый объект (их группу) или его свойства на определенный момент времени (например, природные ресур¬ сы, основные производственные фонды предприятий опре¬ деленной отрасли, площадь некоторого цеха, численность работающих, цена продукции, тариф за услуги, себестои¬ мость единицы продукции). Показателями динамики (движения) характеризуются процессы деятельности или изменения состояния отобра¬ жаемого объекта (их группы) в течение определенного пе¬ риода, например: движения населения, включая естественное (рождае¬ мость, смертность) и механическое (въезд, выезд) за полуго¬ дие; движения трудовых ресурсов, повышения квалификации, образования, трудового процесса, баланса рабочего времени за месяц; изменения природных ресурсов, геологоразведочных работ, охраны окружающей среды за пятилетие; движения общественного продукта (производства, обра¬ щения, распределения и перераспределения, использова¬ ния) за год. В литературе одной из наиболее распространенных яв¬ ляется классификация показателей по характеру единиц измерения основания. Как правило, выделяются абсолютные и относительные показатели. Абсолютными называются показатели, основания кото¬ рых получаются прямым счетом, измерением и взвешивани¬ ем, алгебраическим суммированием других абсолютных пока¬ зателей, а также различные средние абсолютные показатели. 38
В число относительных входят показатели, значения оснований которых получены отношением оснований двух других показателей (показатели структуры, характеризую¬ щие удельный вес части в целом; координации как отноше¬ ния двух частей, из которых одна выбрана базой; интенсив¬ ности как соотношения показателей, отображающих разные, но взаимосвязанные объекты и процессы, например фондо¬ отдачи, материалоемкости, производительности труда и т. п.), относительные средние показатели и др. В практике машинной обработки данных по стабильности значений различают показатели переменные и постоянные. Под постоянными понимаются показатели, номенкла¬ тура которых (по объему) в пределах данной формы, а так¬ же значение отдельных показателей номенклатуры остаются относительно стабильными сравнительно длительный пе¬ риод времени. Так, показатель «Розничная цена товара» яв¬ ляется постоянным из-за редкой изменяемости содержимого его основания и стабильности номенклатуры цен, отра¬ женной прейскурантом. Количественным параметром, характеризующим постоян¬ ство показателей, служит коэффициент стабильности S. Опре¬ делим этот коэффициент для любого показателя следующим образом: S&t = где At — некоторый заданный интервал времени (tu t2), при¬ чем At = t2 — ti, V — общее число значений показателя на начало рас¬ сматриваемого интервала времени /х; Vi — число значений показателя, оставшихся неизмен¬ ными на всем временном интервале (/ь /2). К постоянным целесообразно относить такие экономи¬ ческие показатели, у которых Sm ^ 0,8 при А/, равном одному году. Остальные показатели относятся к переменным, напри¬ мер, показатель выработки, поскольку количество его зна¬ чений меняется ежемесячно довольно резко. В группе постоянных показателей выделяют нормативно- расценочные, к которым относятся нормы (нормативы), рас¬ ценки, цены, постоянные коэффициенты и процентные ставки. Иногда выделяют также показатели состава, напри¬ мер вхождения деталей в узлы, другие соединения и изде¬ лия, применяемости материалов и др. 39
Для обеспечения единства понятий, наименований, струк¬ туры и кодов технико-экономических и социальных пока¬ зателей, применяемых в плановых, статистических и других документах, а также для обеспечения возможности эффек¬ тивной организации обработки, хранения и поиска данных с применением современной вычислительной техники раз¬ работан Общесоюзный классификатор технико-экономи¬ ческих и социальных показателей (ОКТЭСП). В ОКТЭСП осуществлена систематизация показателей по основным областям измерений в социалистической эконо¬ мике; выделены типы показателей и признаки, по которым могут осуществляться группировка, сводка и анализ взаи¬ мосвязей показателей при решении задач планирования и статистики; даны средства терминологической нормализа-. ции наименований показателей и система классификацион¬ ного кодирования типов показателей и классификационных группировок. В ОКТЭСП принята следующая структуризация пока¬ зателя: формальная и содержательная характеристика (объ¬ ект), основные классификационные признаки для данного типа показателей, дополнительные признаки показателя, единица измерения. По формальной характеристике различаются: основные формы показателя (в качестве которых приня¬ ты, как правило, абсолютные показатели, а также относи¬ тельные показатели интенсивности и некоторые средние показатели); производные показатели (абсолютные разностные и ито¬ говые показатели, относительные показатели динамики, структуры, выполнения плана, а также средние по времен¬ ным интервалам и средние по однородным хозяйственным объектам). По содержательной (социально-экономической) характе¬ ристике показатели разделяются на следующие типы: чис¬ ленность наличного населения, численность постоянного населения, численность работников, численность рабо¬ чих, основные фонды, ввод в действие основных фондов, капитальные вложения, нормативная чистая продукция и т. п. Для каждого типа показателей в ОКТЭСП даны наборы основных классификационных признаков, конкретизирую¬ щих социально-экономическую характеристику показателей. Например, для показателей типа «основные фонды» выде¬ ляются признаки «виды основных фондов», «виды оценки основных фондов», «возрастные группы» и др.; для показа- 40
телей типа «численность рабочих» — признаки «пол», «воз¬ раст», «образование», «профессия», «тарифные разряды» и т. д. К дополнительным признакам показателей отнесены время, функция управления, хозяйственный объект. При¬ знаку «время» соответствует, например, список, включаю¬ щий такие позиции, как «за отчетный период», «на начало планового периода», «за 1984 г.», «на 1 января 1984 г.» и т. д. Признаку «функция управления» соответствует список, содержащий позиции «план», «фактически», «ожидаемое вы¬ полнение», «норматив» и т. п. Признаку «хозяйственный объект» соответствует ряд классификаторов, характеризую¬ щих территориальные и организационно-хозяйственные еди¬ ницы и их совокупности. Среди них Общесоюзный класси¬ фикатор отраслей народного хозяйства (ОКОНХ), Общесо¬ юзный классификатор предприятий и организаций (ОКПО), система обозначений объектов административно-террито¬ риального деления и населенных пунктов (СОАТО) и др. ОКТЭСП включает следующие компоненты: рубрикатор (общую классификационную схему пока¬ зателей); систематический перечень типов и классификационных группировок показателей (перечень вариантов структуры показателей, упорядоченный в соответствии с рубрикатором); перечень списков, классификаций и номенклатур, вхо¬ дящих в уже разработанные общесоюзные, межведомст¬ венные и ведомственные классификаторы, а также списки, специально разработанные в рамках ОКТЭСП. Рубрикатор ОКТЭСП включает укрупненную класси¬ фикационную схему, содержащую 13 рубрик, и развернутую классификационную схему, включающую дополнительно около 200 подрубрик. Рубрикатор имеет нестрогую иерар¬ хию, т. е. допускается включение отдельных подрубрик более чем в одну рубрику, что позволяет полнее отобразить взаимосвязи показателей и возможности их использования в разных областях плановой и статистической работы. При построении рубрикатора учтены положения марксист¬ ско-ленинской экономической теории, в частности схемы расширенного общественного воспроизводства. В рубрикато¬ ре нашли отражение также наиболее важные деления в уни¬ фицированных системах плановой и статистической докумен¬ тации и в структурах плановых и статистических органов. В частности, рубрикатор построен с учетом структуры госу¬ дарственного плана экономического и социального разви¬ тия и техпромфинплана предприятия (объединения). 41
Систематический перечень типов и классификационных группировок показателей включает более 4 тыс. позиций, распределенных по подрубрикам нижнего уровня. Нормализованное наименование показателя получает¬ ся путем перечисления наименований признаков, взятых из систематического перечня, например «Численность налич¬ ного населения, мужчин, в возрасте 18 лет и старше». Классификационный код показателя записывается' путем указания кодов наименований признаков и кодов значений каждого признака. Рассмотренному выше показателю со¬ ответствует классификационный код 1001.2521 — 1.3000— 104, в котором 1001 — код наименования «Численность на¬ личного населения», 2521 — код наименования «Пол», 1 — код значения «Пол = мужской», 3000 — код наименования «Возраст», 104 — код значения «Возраст» ^ 18. Внедрение наименований и кодов показателей, регла¬ ментированных в ОКТЭСП, позволяет систематизировать и унифицировать обработку экономической и социальной информации. Контрольные вопросы 1. Перечислите основные свойства реквизита. 2. Назовите типы реквизитов. 3. Какие факторы определяют различие между реквизитом-призна¬ ком и реквизитом-основанием в конкретном документе? 4. Для каких целей разработан аппарат составных единиц информа¬ ции (СЕИ)? 5. Как определяется значение СЕИ? 6. Как осуществляется переход к нормализованной СЕИ? 7. Как определяется и описывается структура СЕИ? 8. Укажите взаимосвязь понятий «СЕИ», «группа», «запись». 9. Почему показатель является минимальной единицей информации, способной образовать документ? 10. Охарактеризуйте допустимые операции над показателями. 11. Перечислите аспекты, по которым производится классификация показателей.
ГЛАВА 2 ИНФОРМАЦИОННЫЕ ОТНОШЕНИЯ 2.1. ОСНОВНЫЕ ВИДЫ ОТНОШЕНИЙ Между различными объектами (явлениями), свойствами объектов и объектами и их свойствами существуют всевоз¬ можные объективные, определяемые предметной областью отношения, которые при информационном отображении объектов и присущих им свойств переносятся на отношения между СЕИ и реквизитами, отображающими объекты с раз¬ ных сторон, и реквизитами, отображающими отдельные свойства объектов. Для отображения объективных взаимосвязей между объектами реального мира, свойствами объектов, процесса¬ ми с их участием и т. п. используется аппарат дискретной математики. Существенным понятием при описании отношения явля¬ ется его область определения. В общем случае область опре¬ деления состоит из одного или нескольких множеств. Эле¬ ментами одного множества являются значения единиц ин¬ формации. Введенные множества должны содержать доста¬ точно много элементов (т. е. быть универсальными), чтобы значения любой единицы информации являлись подмно¬ жеством одного из них. Множества, образующие область оп¬ ределения отношения, будем обозначать Хр, Yin Zcни, (/бд с уточнением, если это необходимо, класса единиц ин¬ формации (р — реквизит, п — показатель и т. д.). Отношение с областью определения, включающей два множества, называется бинарным; включающей k множеств /е-арным. Одно и то же множество может входить в область определения несколько раз. Число k называется порядком отношения. Случай k=^\ (унарное отношение) является вы¬ рожденным, такое отношение задает некоторое подмножест¬ во универсального множества. Область значений отношения всегда представляет собой одно множество. Отдельный элемент из области значений называется строкой, или кортежем. Строка /г-арного отно¬ шения состоит из k величин, выбранных по одной из к мно¬ жеств, составляющих область определения. Производимый выбор не является произвольным. Требуется, чтобы сов¬ 43
местное рассмотрение величин, входящих в. строку отно¬ шения, являлось осмысленным с точки зрения конкретной решаемой задачи. Например, в отношении с областью опре¬ деления ФАМИЛИЯ, ДОЛЖНОСТЬ величины «Федоров», «инженер» не образуют строку отношения, если Федоров работает лаборантом. Формально область значения отношения г определяется как подмножество декартова произведения из k множеств: W=Y1xY2x...xYh% где Y х — множества, входя¬ щие в область определения отношений. Таким образом, справедливо включение г ^ W. Символом г обозначается и область значений отношения, и само отношение (идентифи¬ катор отношения). Структура отношения выражается списком имен еди¬ ниц информации Аи Л2, ..., Aht которые принадлежат со¬ ответственно Yu Y2, .Yh. Значениями отношения г служат строки таблицы со следующими свойствами: каждая строка представляет собой набор из k значений, принадлежащих k столбцам таблицы; каждый столбец отношения именуется уникальным иден¬ тификатором, порядок столбцов фиксируется; порядок строк безразличен, и любые две строки разли¬ чаются хотя бы по одному символу; строки и столбцы таблицы могут обрабатываться в лю¬ бой последовательности. Символически отношение записывается в виде г (Ль А 2,..., Ak). Отношения между СЕИ и их составляющими, в том чис¬ ле реквизитами, информационны по своей природе, ото¬ бражая реально существующие взаимосвязи, и многообраз¬ ны но своему характеру, внутреннему механизму, матема¬ тической интерпретации. Даже для простейшего случая г(Л, В), где А и В — простые переменные и г — отношение между ними, это отношение — одно из бесконечного числа возможных отношений, определяемых как типом перемен¬ ных А и В, так и многими другими обстоятельствами, так что для данного случая точнее говорить об отношении г*(Л, В), выбранном из множества возможных отношений: R = = {'"ь гг, .... г, г,}. Среди этих отношений могут быть отношения теорети¬ ко-множественного (принадлежность одному множеству, от¬ ношение включения и др.), логического (предикатные, от¬ ношения операндов логического выражения или аргументов логической функции, отношения предопределения, харак¬ теризуемые причинно-следственной связью, и др.), арифме¬ 44
тического типа (сравнения чисел, упорядоченности и др.), лексикографической упорядоченности и другие отношения с-амого разнообразного типа, природа которых подчас не- формализуема на данном этапе или требует для формализа¬ ции слишком сложный аппарат (алгоритм). Среди множества потенциально возможных отношений существуют и взаимоисключающие, противоречивые и не¬ применимые для данного типа и класса величин. Так что подмножество отношений Rk, применимых к данным пе¬ ременным Л, В, меньше по числу элементов, чем множество отношений R. Однако и это подмножество чрезвычайно ве¬ лико, и для практических целей из него избирается сущест¬ венно меньшее по числу элементов конечное подмножество отношений R]} a Rh. В рассматриваемом случае для пары переменных А и В внимание акцентировано на одном отношении rif являющем¬ ся элементом множества практически применяемых отно¬ шений Rpt или rt £ Rp. Однако для этой пары переменных возможно одновременное использование и нескольких раз¬ личных отношений (например, гс, rd, геУ riy rh) из множест¬ ва Rp: гс (А, В), rd(A, В), ге(А, В), rt(A, В), rh(A, В). Более обобщенная формулировка определения множест¬ ва отношений на заданной области определения имела бы следующий вид: (rc, rd, ге, гь rh) (А, В). Обобщенное описание соответствия применяемых в ин¬ формационной системе отношений гт и используемых в ней реквизитов Рj дается в виде матрицы, где вхождение рекви¬ зита Pj в область определения отношения гт помечено 1: Рг Рг ... Pj ... Ps rx 0 1 ... О ... О V2 0 1 ... 1 ... 1 гт 0 0 ... 1 ... О rt i о У/, i .У.’о Значения бинарных отношений R(AX, Аг) и S(Alt А2) имеют матричную и графическую интерпретацию. Рассмот¬ рим множество X = {х1у х2, х3, х4} и определим R как R с= X х X с элементами (xu хх), (xlt х2), (*2, *i), (х2, х2), (*з, *3), (^4. (х4, л'4). Матрицей значений отношения R 45
*2 •Zj *4. / 1 0 0 ** 1 1 0 0 хз 0 0 1 0 х4 0 1 0 1 а) 9f Уг Уз 8) Xj х3 Х4 2) Рис. 2.1. Графические и матричные интерпретации бинарных отношений служит булевская матрица 4 >< 4. Элемент матрицы atj = = 1, если (xiy Xj) 6 Rj и 0—в противном случае (рис. 2.1,а). Граф отношения R определен на множестве X и содержит дугу XtXjj если (xiy xj) 6 R (рис. 2.1,6). Для отношения S до¬ полнительно введем множество Y — {у1у у2. Уз) и примем SczX X Y с элементами (х1у уг)у (х2у tji), (х3у //,), (х3у у2), (х^у Уз)- В матрице значений отношения S размером 4 X 3 элемент Ьц 1, если (xi} yj) £ S, и 0 — в противном случае (рис. 2.1, б). Граф отношения S определен на мно¬ жестве X U Y и содержит ребро Xityjy если (xiy yj) £ S (рис. 2.1,г). Различаются однородные отношения, об¬ ласть определения которых содержит k одинаковых мно¬ жеств (практически всегда k = 2 ), и неоднородные отношения, область определения которых включает k произвольных множеств. Глава 2 посвящена однородным отношениям (неоднородные отношения рассматриваются в 4.6
гл. 3). Для однородных и неоднородных отношений разра¬ ботаны, по существу, различные теории. Неоднородные отношения тождественны по структуре с нормализованными СЕИ. Примерами элементов однородных отношений могут быть следующие: литейный цех входит в состав цехов основно¬ го производства, сумма к выплате меньше суммы начислен¬ ной, Иванова Ю. В. — жена Иванова Г. Е. На одной и той же области определения может быть зада¬ но несколько однородных отношений, отличающихся как набором элементов, так и смысловым содержанием. Рас¬ смотрим, например, бинарное отношение с областью опре¬ деления на множестве ФАМИЛИЯ- Обозначая элементы множества через а и 6, легко определить ряд отношений — R±: а старше b\ R2: а и Ь работают в одном отделе; R3: а яв¬ ляется подчиненным по отношению к Ь\ R±\ стаж работы у а меньше, чем у 6, и т. д. Однородные отношения R(X, X) являются наиболее простыми. Они широко распространены на практике. Изу¬ чение однородных отношений опирается на ряд свойств, наличие которых в каждом конкретном случае легко про¬ веряется. Эти свойства можно приписывать отношению R либо множеству X, если дополнительно уточнить определен¬ ное для X отношение. Различие связано с тем, что некоторые элементы X могут не встречаться внутри элементов R. Обо¬ значим произвольные элементы X через а, в, с. Введем три группы свойств. 1. Свойство рефлексивности. Множество X обладает свойством рефлексивности, если для каждого эле¬ мента а £ X пара (а, а) является элементом однородного от¬ ношения. Если пара (а, а) никогда не принадлежит отноше¬ нию, то X обладает свойством антирефлексивности. 2. Свойство симметричности. Множество X обладает свойством симметричности, если пары (а, Ь) и (6, а) одновременно принадлежат однородному отношению. Если только одна из них принадлежит R, имеем свойство асимметричности. Если из симметричности множества X следует, что элементы а и Ъ обязательно должны совпадать, то такое свойство называется антисимметричностью. 3. Свойство транзитивности. Множество X обладает свойством транзитивности, если из наличия в однородном отношении элементов (а, Ь) и (6, с) следует наличие элемента (а, с). Если при заданных условиях эле¬ мент (а, с) всегда отсутствует, то X обладает антитранзитив¬ ностью. 47
Таблица 2.1 Класс отношения Рефлексив¬ ность Антирефлек¬ сивность Симметрич¬ ность Асимметрич¬ ность Антисиммет¬ ричность Транзитив¬ ность Эквивалентность + 1. + Толерантность + + Квазипорядок + • + Строгий порядок + + + Нестрогий порядок -L 1 + Конкретное однородное отношение может иметь не более одного свойства из каждой группы. Отдельные классы от¬ ношений определяются перечислением присущих им свойств (табл. 2.1). Однородное отношение называется эквивалент¬ ностью, если соблюдены свойства рефлексивности, сим¬ метричности и транзитивности. Множество X с отношением эквивалентности разделяется на классы Хи Х2, Хп, которые являются подмножествами X и удовлетворяют соотношениям Xt fl Xj = 0 для любых /, / и = Содержательно эквивалентность понимается как одина¬ ковость, взаимозаменяемость и т. п. Эквивалентные между собой элементы входят в один класс, элементы из разных классов заведомо неэквивалентны. Однородное отношение называется толерантно¬ стью, если имеются свойства рефлексивности и симметрич¬ ности. Элемент (а, Ь) присутствует в отношении толерантно-i сти, если а и b похожи, имеют несколько общих характери¬ стик, свойств. Толерантность превращается в эквивалент¬ ность, когда у элементов а и Ъ совпадают все характеристики. Однородное отношение со свойствами рефлексивности и транзитивности называется кваз и порядком, со свой¬ ствами антирефлексивности и транзитивности — строгим п о р я д к о м, со свойствами рефлексивности, антисимметрич¬ ности и транзитивности — нестрогим порядком. Указанные разновидности порядка обычно возникают, когда элементы множества X соотносятся по взаимному старшинст¬ ву, виду важности и т. п. Для порядка характерно наличие транзитивности и отсутствие симметричности. Разделение однородных отношений на эквивалентность, толерантность и несколько разновидностей порядка соответст¬ вует их формальной классификации, поскольку в этом случае 48
не учитывается смысловая сторона формирования отноше¬ ний. Так, ранее рассмотренные отношения (Rx: а старше Ь и R3 : а является подчиненным по отношению к Ь) формально классифицируются как отношение строгого порядка, но они явно различаются по существу. Изучение информационных отношений, их разновидностей и механизма весьма важно для анализа информации. Отно¬ шения выступают в качестве важнейших компонентов описа¬ ния данных. 2.2. МНОЖЕСТВЕННЫЕ ОТНОШЕНИЯ Множественными называются бинарные однородные от¬ ношения, определенные на единицах информации, причем каждый элемент области определения отношения представляет собой все множество значений некоторой единицы информа¬ ции. Для единиц информации с одинаковой структурой воз¬ можны следующие множественные отношения. 1. Равенство. Две СЕИ St и Sj образуют элемент отношения равенства, если множества их значений равны. 2. Включение. Две СЕИ S* и Sj образуют элемент отношения включения, если все значения СЕИ Si содержатся в множестве значений СЕИ Sj. 3. Частичное включение. Две СЕИ St и Sj образуют элемент отношения частичного включения, если множества их значений содержат общие элементы. 4. Непересечение. Две СЕИ St и Sj образуют элемент отношения непересечения, если множества их значе¬ ний не содержат общих элементов. Данные определения переносятся на СЕИ Tt и Tj с несов¬ падающей структурой, если в них содержатся совпадающие по структуре составляющие St и Sj соответственно. В соответствии с формальной классификацией отношение равенства является эквивалентностью, отношение включе¬ ния — квазипорядком, отношение частичного включения — толерантностью, отношение непересечения обладает свойст¬ вами антирефлексивности и симметричности. Отношение частичного включения на множестве СЕИ встре¬ чается более часто. Множественное отношение частичного включения описы¬ вает вхождение реквизитов в СЕИ. Две СЕИ S* и Sj образуют элемент отношения частичного включения, если списки рек¬ визитов в St и Sj содержат хотя бы один общий реквизит, сов¬ падающие значения которого есть и в Siy и в Sj, Введенная 49
таким образом толерантность позволяет определить ряд пара¬ метров, определяющих взаимосвязь СЕИ и реквизитов. Будем считать, что имеется некоторое множество СЕИ S = {ST, S2, Sn}. Предположим, что один и тот же рек¬ визит Pi встречается в нескольких различных СЕИ, напри¬ мер в Sh и Sj. Рис. 2.2, а. Граф и матрица вхождения реквизитов в различные СЕИ Такой реквизит является элементом пересечения для ука- занных СЕИ, или, иначе, СЕИ родственны по этому рекви¬ зиту. Для любой экономической информационной системы можно составить полную номенклатуру (перечень) ее реквизитов. Степень участия каждого реквизита в разных СЕИ является значением параметра встречаемости данного реквизита. Рассмотрим множество СЕИ: Sx — приходный ордер, S2 — накладная на отпуск материалов в производство, S3 — бри¬ гадный наряд. Список реквизитов, входящих в эти СЕИ, со¬ стоит из следующих: Рх — код предприятия, Р2 — дата, Р 3 — код склада, Р4 — код цеха, Ръ — код поставщика, Рб — код материала, Р1 — табельный номер рабочего, Р8 — единица измерения, Р9 — количество принято, Р10 — цена, РХ1 — сумма, Р12— код бригады, Р13—время нормированное. 50
р Si s2 S3 Параметр встречаемости Bi Pi 1 1 1 3 Р 2 1 1 1 3 Р 3 1 1 0 2 Р 4: 1 1 2 Ръ 1 0 0 1 Р 6 1 1 0 2 Р7 0 1 1 Р 8 1 1 1 3 Р 9 1 1 1 3 Рю 1 0 1 2 Р11 1 0 0 1 Pl2 0 0 1 I Pis 0 0 1 1 б) 2£^25 Рис. 2.2, б. Матрица встречаемо¬ сти реквизитов в составных еди¬ ницах информации Sf So л $3 $4 <% S7 Рис. 2.3. Отношение включения на множества СЕИ 5 Для определения значения параметра встречаемости рек¬ визитов на основе графа вхождения (рис. 2.2, а) реквизитов Pi в различные составные Sj надо построить матрицу встре¬ чаемости реквизитов в составных единицах информации (рис. 2.2, б). Параметр встречаемости Bt реквизита Рt равен сумме значений в i-и строке матрицы встречаемости. Анализ данных о встречаемости реквизитов показывает, что общее суммарное количество реквизитов 2В* во всех СЕИ информационной системы в несколько раз больше числа различных реквизитов Я, что объясняется их высокой встре¬ чаемостью и особенно характерно для экономической информа¬ ции. Параметр средней встречаемости В = 2Вг/Я, который усредняет все Bt в рамках ЭИС или ее подсистем, выше по значению, если сложнее структура системы. В рассматривае¬ мом примере (рис. 2.2) 2В* 25, Я 13 и В — 1,92. Суммарная номенклатура реквизитов (число различных реквизитов) всей ЭИС, как правило, меньше суммы номенкла¬ тур ее частных подсистем. Из этого следует, что методы инте¬ грированной обработки информации, основанные на 'созда¬ нии и использовании единой базы данных, позволяют сокра¬ тить затраты на кодирование и алгоритмическое описание од¬ них и тех же реквизитов, встречающихся в разных подсисте¬ мах, уменьшить дублирование данных. С объединением под¬ систем значение параметра встречаемости Bt для отдельных реквизитов возрастает. Возрастанию средней встречаемости способствует унифи¬ кация названий реквизитов. На практике часто встречаются
случаи, когда один и тот же реквизит при разных обстоятель¬ ствах имеет различные наименования (например, табельный номер, номер работающего, код рабочего, личный номер и т. д.). Это вносит излишнюю путаницу, затрудняет подготов¬ ку расчетов к машинному выполнению (алгоритмизацию, про¬ ектирование) и процесс обработки. В тех случаях, когда структура СЕИ S А имеет вид S A.(SU 52, ..., Su), где Si (i — 1, k) представляют собой СЕИ, родственные по общему набору реквизитов, возможно сущест¬ вование Множественного отношения включения, элементами которого являются пары (Sb 5Л). В качестве примера допу¬ стим, что СЕИ содержат следующую информацию: Sx — о юридических лицах, S2 — об организациях, S3 — о научно- исследовательских институтах, S4 — о вузах, S5 — о граж¬ данах, SG — о работающих гражданах, S7 — о вкладчиках сберегательных касс. Отношение включения на множестве СЕИ S = {Sx, S2, 53, S4, S3, Se, S7} показано на рис. 2.3. Пара (Sit Sj) принад¬ лежит отношению (на рис. 2.3 принадлежность показана стрел¬ кой от Si к Sj), если все значения St содержатся среди значе¬ ний Sj. Граф отношения включения может быть не только де¬ ревом (см. рис. 2.3), но и сетью. Множественные информационные отношения позволяют рас¬ смотреть ряд практически важных параметров взаимосвязи и взаимодействия СЕИ в экономической информационной си¬ стеме и могут быть использованы для поддержания достовер¬ ности информации в ЭИС и выбора пути доступа к данным. 2.3. ЛОГИЧЕСКИЕ ОТНОШЕНИЯ Логические отношения объединяют отношение логической эквивалентности, понимаемое как взаимозаменяемость СЕИ, и отношение причинно-следственной связи СЕИ в процессе их обработки. Две СЕИ называются логически эквивалентными, если од¬ на из них может заменить другую в процессах расчета выход¬ ных показателей, причем замена не приведет к потере инфор¬ мации. Рассмотрим структуру составной единицы информации как некоторое множество Ат, элементами которого являются со¬ ставляющие реквизиты ах, а2, ..., ап (at £ Aw). Из этих эле¬ ментов их различными сочетаниями без повторений по 1, 2, ..., п элементам можно образовать некоторые множества Лх, А 2, Ат, в число которых входит и множество Ат.
Пусть объединение (J Аь образует множество X (At £ X). i Произведем разбиение множества X на два подмножества: М и ЛГ = X \ УИ*. Обозначим подмножества Ai £М через Bj и Ai g AT — через Ch : М = U j Bj и М' = U Из k условия следует, что М П М' = 0; М [} ЛГ = X; А т £ М. Задача состоит в том, чтобы для данной совокупности со¬ ставляющих сформулировать такую логическую функцию Ф (aLt a2i ап), которая была бы истинной для множества М и ложной для множества М'. Практически это означает отбор такой совокупности различных СЕИ А и когда каждая будет эквивалентна рассматриваемой СЕИ Лш. Рассмотрим, например, СЕИ приходного ордера и введем следующие обозначения: аг — предприятие; а2 — номер приходного ордера; а3 — дата, число; а4 — дата, месяц; аъ — дата, год; а8 — склад, название; а7 — склад, код; а8 — вид операции; а8— поставщик, название; а10 — поставщик, код; ап — наименование материала, сорт, размер; а12 — номенклатур¬ ный номер; а13 — единица измерения; а14 — количество по документу; fli5 — количество принято; а16 — цена; а17 — сумма; а18 — подписи. Тогда лишь некоторыми из возможных структур СЕИ, эквивалентных приведенной, могут быть, например, следую¬ щие: Вг.(а19 аЬу #3» ^4» а2> ^7» ^8» ^10» Й9> ^12» ^lli ^13» ^15» ^14> ^16» аП* ais)y В2*(^2» «3» ^4» а10> ^12» ^15), В 3.(^2» <2ц, ^i7i CL з, ... , Я10, Л18), В*.(а9, fle. ^2» ^11» а1й9 #14, #15, #17, а з, #4, #5, з, д4, #5, #8, #6, а7, #10, ^ц, ^1з, ^15, ^ю)* Общее количество (hx) различных по структуре СЕИ, эк¬ вивалентных исходной, может быть довольно большим и рав¬ ным числу наборов значений аргументов, для которых функция Ф (аъ а2, ..., а18) вырабатывает значение истинности. В то же время можно указать множество СЕИ, состоящих из тех же элементов, что и структура исходной СЕИ, но не эквивалентных ей, например: Ci.((2ly ci2)> C2.(#i, •••» #10> ^13» •••» ^1в)» С3.(ab а13, ^16» #i7> а18)» C4.(<21, ..., ci$, <зп, ..., а16), ^*5 • (^12> •••» ail)' Общее число (h0) таких СЕИ, не эквивалентных исходной, равно числу наборов значений аргументов, для которых функ¬ * Множество М содержит все СЕИ, эквивалентные исходной СЕИ Ащ* 53
ция Ф {аъ а2у ..., а18) вырабатывает значение ложности. Очевидно, что 218 hx + h0. При известных значениях функции для каждого набора значений аргументов с целью определения функции в виде логического выражения, операндами которого являются аргу¬ менты функции, строится таблица, где построчно записывают¬ ся все наборы значений аргументов и против каждого из на¬ боров указывается соответствующее значение функции. По каждому из наборов, для которых значение функции равно истинности, выписываются конъюнктивные суждения (при¬ чем аргументы, имеющие в данном наборе значение ложности, даются с логическим отрицанием), которые затем связывают дизъюнкцией, задавая функцию выражением в нормальной дизъюнктивной форме. А можно, наоборот, обратить внима¬ ние на те наборы, для которых значение функции ложно, и по ним выписывать дизъюнктивные суждения (с логическим отрицанием аргументов со значением истинности в наборе), связав их конъюнкцией в нормальную конъюнктивную форму. Так, для составной, имеющей реквизиты А, В и С и опре¬ деленную логическую функцию возможного состава других структур аналогичного назначения, таблица для определения функции может быть следующей: Номер набора Значение аргумента Значение функции Ф (А, В, С) Л в с 0 0 0 0 0 1 0 0 1 1 2 0 1 0 0 3 0 1 I 1 4 1 0 0 1 5 1 0 1 1 6 1 1 0 0 7 1 1 1 0 Функция Ф (Л, Ву С) для указанного случая определяет¬ ся логическим выражением А/\В/\С\/А/\В/\С\/А/\В/\С\/А^В/\С ИЛИ MV5VC)AMV5VQAMV5VQAMV5VQ. 54
Первое из них после упрощения преобразуется в выраже¬ ние А Д С V ^ДВ, а второе — в выражение (А V Q Д Д (Л V В). Оба эти выражения эквивалентны, что доказыва¬ ется также тождественными преобразованиями. Метод определения функции через логическое выражение, включающее логические операции, на полном наборе значе¬ ний аргументов практически приемлем лишь при незначи¬ тельном числе аргументов (п ^ 6—7). Однако для случая СЕИ приходного ордера, когда п = 18, применение этого ме¬ тода в таком виде затруднено. На промышленных предприя¬ тиях СЕИ в среднем состоит из 26 реквизитов. Таблица для определения функции логической связи составляющих СЕИ в этом случае будет иметь около 67 млн. строк. В связи с этим наиболее приемлемым представляется та¬ кой подход, при котором все СЕИ разбиваются на небольшие группы с явным наличием некоторой логической связи. С по¬ мощью таблицы наборов значений аргументов или каким-либо другим способом формулируется логическое выражение, свя¬ зывающее члены этой группы. Затем первоначальные группы (Л-группы) аналогичным образом группируются в более ук¬ рупненные группы (В-группы) и для каждой из них определя¬ ется логическая функция. Процесс продолжается до тех пор, пока не будет получена логическая функция для всей СЕИ. Так, СЕИ рассматриваемого приходного ордера при та¬ ком подходе с учетом наличия групповых логических связей реквизитов может быть разбита на следующие группы: Ь1.(а2у я«); Ь2.(аз, of4, а5); &3.(д6, а7); Ь±.(а9, а10); й12у а 13, Мам» як» а,?); М; M&i, Ь2, Ьз, Ь4, й5, 6e); S.(bHy 67). С учетом построенных групп структура СЕИ могла бы быть задана в следующем виде: S.(fc8. (&!- (а2, ag), b2.(a3, а4, а5), b3\aQl а7), fo4.(#9, CL10)y Ьо’(а11> а12у а13> а1в)у ^6-(^14> ^15* ^16» ^17)) fc7.(<2i, а18)). В результате построения таблиц наборов значений аргумен¬ тов и функций для каждой из групп получаем для них следую¬ щие логические выражения: йя
Группа Логическое выражение Ьг а2\/а8 h «з А «4 !\аъ V «з А «4 А аь Ь3 а6\/а7 Ьг c9V«io ^5 «н A ai2 A «« А «16 V А «12 A ai3 А «м V У«пЛ«12Л«1зЛ«1в ^6 «Н А «15 А «16 А «17 V «14 А «15 A «16 A «17 V «14 A «15 A «16 A «17 V «и A «15 A «16 A «17 V «11A «15 A «16 A «17 Ь7 a1Aa18VaiA«i8V«iA«i8V«iA«i8 ь8 ^А^А^зА^А^А^ s b8/\b7\Jbb/\b7 В логических выражениях каждый операнд рассматрива¬ ется как имеющий значение истинности при его наличии в структуре СЕИ или имеющий значение ложности при его от¬ сутствии в структуре. Подстановкой логических выражений групп Ь7 и Ь8 в ло¬ гическое выражение для группы 5 и логических выражений групп Ь6 в логическое выражение для группы bs полу¬ чаем общее логическое выражение взаимосвязи элементов в структуре СЕИ 5: ^ («2 V «в) А («з А «4 А «5 V «з А «4 А «5) А A(«6V«7)A(«9V«lo)A А («и А «12 A «is А «1в V «и А «12 A «is А «16 V У «и А «12 А «1з А «1в) V («и А «и А «16 А «к V «~4 А «и А «16 А «17 V V «и A «is А «16 А «и V V «и А «и А «и А «и V «и А «15 А «1в А «и) • Формулировка взаимосвязи элементов структуры СЕИ в виде логического выражения, задающего функцию этой вза¬ имосвязи Ф (alt ап)у необходима прежде всего в связи с тем, что выведенное логическое выражение может быть определен¬ ным образом преобразовано и упрощено в соответствии с су¬ 56
ществующим аппаратом математической логики. Следова¬ тельно, может быть упрощена и структура СЕИ, отображен¬ ная логическим выражением. При рассмотрении структуры СЕИ как множества А и ана¬ лиза множества М множеств Bj при BjCi А исходным служит предположение, что если логическое выражение L Л, опре¬ деляющее логическую функцию Ф (а19 ..., а71), истинно, то логические выражения Ln для каждого из подмножеств Bj также истинны. Так как каждое Ln выводимо из Ел, то.пра¬ вомерна постановка задачи: из заданного для данной струк¬ туры СЕИ множества Ln найти такое LBji которое имело бы минимальную возможную сложность в отношении суммар¬ ного количества входящих в него операндов. Другими слова¬ ми, требуется минимизировать исходные логическое выраже¬ ние и структуру рассматриваемой СЕИ. После преобразований рассматриваемое логическое выра¬ жение примет следующий вид: Ф - а3ДалДа15Д(а2Vа8)AKV^A(а»V<*10)А А (а11 Vai2)A(ai7 Ha основе этого логического выражения может быть по¬ строена СЕИ приходного ордера со структурой, содержащей восемь реквизитов вместо 18 в первоначальном варианте, т. е. достигнуто существенное упрощение структуры. Учитывая, что код всегда содержит меньше символов, чем полное наименование, следует выбрать а7 вместо а6, а10 вме¬ сто а9, а12 вместо ап. Длина реквизита а8 обычно меньше, чем длина а2, длина а16 меньше, чем длина а17, Поэтому СЕИ, эквивалентная приходному ордеру и имеющая минимальную длину значения, содержит реквизиты: а3 — дата, число; а4 — дата, месяц; а7 — склад, код; а8 — вид операции; а10 — поставщик, код; а12 — номенклатурный номер материала; а1Ъ — количество принято; а1б — цена. Метод отображения структур СЕИ через логические выра¬ жения с их последующим преобразованием и минимизацией является теоретической основой упрощения документов и ми¬ нимизации объема данных на основе упрощения структур. В результате применения этого метода может быть достигнуто значительное сокращение объема первичных данных. Существуют также основанные на этом же принципе мето¬ дики, позволяющие анализировать и упрощать структуры СЕИ с помощью средств вычислительной техники, в том числе с применением ЭВМ. А поскольку принципиально возможно автоматическое определение логической взаимосвязи рекви¬ 57
зитов формы документа на основе машинного анализа факти¬ ческого содержания массива документов заданной формы, то и проектирование минимального состава исходных СЕИ на основе изучения существующей инфомационной системы поддается формализации. Рассмотрение логической взаимосвязи составляющих СЕИ позволяет ввести некоторые новые определения по признанному составу показателей. Пусть даны показатель Пх (qly q2y q3y qly Рг)у где qt — признак, а Рх — основание, и логическая функция Fly зна¬ чение истинности (1) которой соответствует наборам значений аргументов (соответствующих утверждениям о наличии опре¬ деленных реквизитов в форме показателя), обусловливающим возможность существования показателя: Номер набора <7i <72 <7з <74 Pi ^1 Номер набора <7i Яг <7з <74 Рг F 0 0 0 0 0 0 0 16 1 0 0 0 0 0 1 0 0 0 0 1 0 17 1 0 0 0 0 0 2 0 0 0 1 0 0 18 1 0 0 1 0 0 3 0 0 0 1 1 0 19 1 0 0 1 1 0 4 0 0 1 0 0 0 20 1 0 1 0 0 0 5 0 0 1 0 1 0 21 1 0 1 0 1 0 6 0 0 1 1 0 0 22 1 0 1 1 0 0 7 0 0 1 1 1 0 23 1 0 1 1 1 0 8 0 1 0 0 0 0 24 1 1 0 0 0 0 9 0 1 0 0 1 0 25 1 1 0 0 1 0 10 0 1 0 1 0 0 26 1 1 0 1 0 0 11 0 1 0 1 1 0 27 1 1 0 1 1 0 12 0 1 1 0 0 0 28 1 1 1 0 0 0 13 0 1 1 0 1 0 29 1 1 1 0 1 0 14 0 1 1 1 0 0 30 1 1 1 1 0 0 15 0 1 1 1 1 1 31 1 1 1 1 1 1 Для этого примера показатель может существовать лишь в случае, если его форма отвечает комбинациям реквизитов, соответствующим наборам 15 и 31, т.е. функции /^выраженной в форме дизъюнкции: = qx Д Д q3 Д ?4 Д PL V <7i А А Яг А Яг Л <7-1 A pi- В результате преобразования имеем: = Яг Л Яз Л Л Л (<7i V <7i) = Яг Л Яг Л Я* Л Pi- Следовательно, данный показатель может существовать толь¬ ко в случае, если в его структуру будут обязательно входить реквизиты q2y q3y qXy Рх. Реквизиты показателя, связанные конъюнкцией, назовем обязательными. Такие реквизиты образуют так на¬ зываемый реквизитный минимум показателя. Как правилос к числу обязательных реквизитов относится основание (ис¬ ключение составляют лишь основания булевых показателей- 58
единицы). Поэтому для показателей чаще используют обяза¬ тельные признаки и признанный минимум. Минимумом при¬ знаков следует считать такое их число, сокращение которого (хотя бы на один признак) приводит к возможности подмены одного факта другим, к полному искажению показателя. Одно из основных назначений признаков — конкретиза¬ ция изучаемого факта, такая индивидуализация показателя, при которой его нельзя спутать, смешать с другими фактом, подменить другим показателем. Следовательно, индивидуали¬ зация легче достигается при большом числе признаков и‘за¬ трудняется при малом их числе. Другими словами, с уменьше¬ нием числа признаков возрастает энтропия. Минимум призна¬ ков — это предел, после которого наступает относительно пол¬ ная энтропия. .В связи с этим возникает вопрос, следует ли в этих условиях стремиться к минимуму признаков, если воз¬ растает энтропия и ограничиваются возможности анализа изу¬ чаемого явления, поскольку уменьшается информационная ценность показателя. Правильный ответ на этот вопрос можно получить, лишь проанализировав взаимосвязь реквизитов и раскрыв соотношение между механизмами минимизации объе¬ мов информации и восстановления информационной ценности данных. Рассмотрим некоторые примеры взаимосвязи реквизитов. Пусть для показателя Я2-(?i> Яч> 7з* Я^ Pi) возможность существования выражается значениями истинности логиче¬ ской функции F2 при наборах аргументов 11, 13, 15, 27, 29 и 31, т. е. когда функция F2 имеет дизъюнктивную нормаль¬ ную форму: VviA^A^A^A^iV^iA^A^A^A^iV После преобразований F2 — (q1 V 9i) Л ?2 Л (<7з V Яд Л Л Pi ~ Яш Л (Яз V ^4) Л Р1- Здесь возможно превращение показателя Я2 в информационное образование S.(q2, С4. (q3t <74), Р4), в котором все три элемента q2l Съ Рх связаны конъюнк¬ цией и поэтому являются обязательными. Однако признаки q3 и qA в функции F2 связаны дизъюнкцией, что выражает возможность существования в форме показателя Я2 как каж¬ дого из них в отдельности, так и вместе (невозможен лишь слу¬ чай отсутствия в форме сразу и q3 и qA). Отсюда правомерно на¬ личие двух наборов реквизитных минимумов для данного по¬ казателя q2t qZy Pi и q2} q4, Реквизиты такого типа назы¬ 59
ваются тождественными, и при их наличии в форме СЕИ один из них может быть аннулирован с целью достижения реквизит¬ ного минимума. Примерами таких признаков являются наи¬ менование материала и его номенклатурный номер, фамилия рабочего и его табельный номер, номер автомашины и табель¬ ный номер шофера (если машина закреплена постоянно за одним и тем же водителем) и др. Рис. 2.4. Ориентированный граф отношения причинно-след¬ ственной связи для СЕИ, используемых в задачах учета На множестве СЕИ можно определить отношение причинно- следственной связи, которое является строгим порядком. Две СЕИ Sj и Sh образуют элемент отношения, если Sj использу¬ ется при расчете значений Антирефлексивность означает, что Sj не используется при расчете самой себя. Свойство тран¬ зитивности фиксирует, что Sm используется при расчете Sk, если пары (Sm, Sj) и (Sj, Sh) принадлежат отношению. Ориентированный граф отношения причинно-следственной связи для СЕИ, используемых в задачах ежемесячного учета основных фондов на промышленном предприятии, приведен на рис. 2.4. Элемент отношения (SjtSh) обозначается на гра¬ фе стрелкой от Sj к Sh. Вершины графа соответствуют следую¬ щим СЕИ: — инвентарные данные по учету основных средств; S2 — движение готовой продукции; S3 — движение основных средств; S4 — бухгалтерские проводки; S5 — свод¬ 60
ные данные по основным фондам; 5б — ведомость исполь¬ зования основных средств; 57 — данные по амортизационным отчислениям; 58— оборотная ведомость основных средств; 59- движение основных фондов; S10 — отчет по капитальным ре¬ монтам; Sn — использование основных фондов по цехам пред¬ приятия. Взаимосвязь СЕИ в процессе их обработки, представляе¬ мая отношением причинно-следственной связи, характеризу¬ ется рядом параметров. Число дуг, входящих в вершину Sit определяет количе¬ ство СЕИ, участвующих в создании данной СЕИ. Назовем та¬ кое число параметром спроса СЕИ St и обозна¬ чим его через p+(i). Параметр спроса СЕИ характеризуете определенной мере сложность образования СЕИ. Например, на приведенном графе р+ (i) = 3 имеет СЕИ S9, р+ (i) = 2 имеют СЕИ S6, 57, S8, 510, 5П. СЕИ, для которых p+(i) = 0, назовем входящими, по¬ скольку они содержат первичную информацию. На рис. 2.4. входящими СЕИ являются Sx—54. Все СЕИ с р+ (i) > 0 на¬ зываются производными. Число дуг, исходящих из вершин 5*, определяет, сколько раз данная СЕИ участвует в создании других СЕИ, точнее, сколько раз она используется. Назовем такое число пара¬ метром использования СЕИ и обозначим его через р“ (i). Параметр использования СЕИ в известной мере характеризует ее полезность. Например, на приведенном гра¬ фе р~ (i) = 4 имеет СЕИ 55. На практике к СЕИ, имеющим вы¬ сокое значение параметра использования, должны предъяв¬ ляться повышенные требования в отношении достоверности данных и соблюдения сроков их формирования. СЕИ, для которых р- (i) = 0, назовем исходящими (в нашем примере — это СЕИ 50 и 5П). Следует, однако, отметить, что для рассматриваемого гра¬ фа параметры использования являются неполными, посколь¬ ку не отражают всех направлений использования СЕИ за пределами задачи учета основных фондов. Поэтому параметры использования производных СЕИ занижены. Для рассматри¬ ваемого графа также занижены и параметры спроса СЕИ, по¬ скольку каждая из входящих СЕИ может поступать из несколь¬ ких внешних источников. Например, инвентарные данные по учету основных средств (S^ фактически поступают от многих подразделений предприятия в виде отдельных СЕИ. Для получения более точных значений параметров спроса и использования СЕИ необходимо рассматривать каждую за¬ дачу в полном взаимодействии со всей ЭИС, внешними источ¬ 61
никами и потребителями данных ЭИС, со всей внешней сре¬ дой. Введем для СЕИ St параметр полного спроса q+ (i)t рав¬ ный числу СЕИ Sty таких, что на графе существует путь от St к Si. Аналогичный параметр полного использования q- (i) равен числу СЕИ Sp, таких, что на графе существует путь от Si к Sp. Параметры q+ (i) и q~ (i) для всех СЕИ, при¬ веденных на рис. 2.4, даны в табл. 2,2. Таблица 2.2 Имя СЕИ 1 2 3 4 5 б 7 8 9 1 0 11 ?+ 0 0 0 0 1 3 3 3 4 4 8 Q- 7 1 5 2 5 0 2 2 1 1 0 Применение параметра полного использования СЕИ да¬ ет некоторый объективный критерий для установления при¬ оритета тщательности контроля этой СЕИ. Ведь при значении q- (i) п ошибка в значениях СЕИ St отразится на точности п получаемых на ее основе СЕИ. Отношение строгого порядка, подобное рассмотренному вы¬ ше, можно определить и на множестве показателей. Исполь¬ зование показателей вместо СЕИ позволяет дать более точные значения параметров спроса и использования, поскольку в составе СЕИ могут быть показатели с различной характери¬ стикой (например, входящие и производные, постоянные и переменные). 2.4. АРИФМЕТИЧЕСКИЕ ОТНОШЕНИЯ Арифметическим называется бинарное однородное отно¬ шение между двумя отдельными значениями совпадающих по структуре СЕИ и, в частности, одной и той же СЕИ. При изучении отношений информационных единиц на уров¬ не их значений рассматриваемые совокупности чаще высту¬ пают в виде кортежей — специальных конечных множеств, в которых имеет существенное значение порядок элементов и допустимо их повторение. В кортеже (иногда его называют век¬ тором или набором) фиксировано местоположение каждого его компонента, причем четко определено,что компонент at пред¬ шествует компоненту ai+1 или ai+1. Поэтому кортежи <С ау Ь> Ф<С.Ь, а>9 тогда как для множеств {ау Ь) — {&, а). т
Допустимость повторения элементов, в частности, означает, что для кортежей <£> б\>, в то время как для мно¬ жеств {с} — {с, с}. Такой подход позволяет ввести в рассмотрение соответст¬ вие между элементами двух множеств, в том числе взаимно¬ однозначное соответствие, когда каждому элементу множества А поставлен в соответствие один и только один элемент мно¬ жества Bt разным элементам множества А поставлены в соот¬ ветствие разные элементы множества В и каждый элемент мно¬ жества В поставлен в соответствие хотя бы одному элементу множества А. Сформулированные правила находят широкое применение при кодировании. Взаимно-однозначные и многозначные соответствия меж¬ ду элементами множества (множеств) нашли свое выражение в самых разнообразных формах представления и преобразова¬ ния информации: кодировании и декодировании, группиров¬ ках, классификационных построениях, сортировке, выборке, подборке, поиске и др. В практике создания систем машинной обработки данных отношение соответствия элементов в боль¬ шинстве случаев сводится к арифметическому отношению. Для элементов со значениями числового типа арифметиче¬ ские отношения ( - = у =#=,<, вполне естественны вне зависимости от их кодового представления. У элементов тек¬ стового типа старшинство отдельных символов устанавливает¬ ся согласно их взаимному расположению в алфавите либо сим¬ вол кодируется набором цифр из множества {0, 1} и арифме¬ тические отношения между символами отождествляются с от¬ ношениями между их кодами. Для значений, принадлежащих разным реквизитам, мо¬ жет быть определено арифметическое отношение строгого по¬ рядка. Рассмотрим пример. Пусть дан массив сообщений Са.(1:/г). (Н» г2> гз> *4)» такой, что каждому значению реквизита гг соответствует класс значений реквизитов г2, каждому значе¬ нию последнего — класс значений реквизита г3, а каждому значению реквизита гг—класс значений реквизита г4. Эти условия характерны, например, для случая, когда гх — код министерства, г2 — код предприятия, г3 — код цеха, г4 — код бригады. Значения реквизитов гъ г2, г3, гА будем обозна¬ чать г1?1*, r2tjy r3ht r4m. Класс значений, связанных со зна¬ чением rtfS реквизита ги будем обозначать RtfS- Из приведенного на рис. 2.5 примера содержания массива видно, что R 3>1 - {r4>1,r4f2, r4t3}, R3f2 - {r4|4, r4f5}, tf3>3 = ~ {*4,6» **4,7» *4,8» Г4,о}> R 3,4 ~ {*4,10» *4,1.1» **4,12}» R 3,5 ~ ~ {*4,13» **4, 14}» R 3rQ {*4,15» •••}> R2,1 ~ {**3,1» Г3,2}» 63
^2,2 — 3, 3> ^3,4» Г3,б}> ^2,3 ~ {^3,6» •••}> ^1,1 “ {Г2,1> г2,2> ^2, з» •••}• Классы не пересекаются, т. е. R3yi П R3J ::= = 0> 2,г Г) ^2,j ^ 0 Для * =И= /• Это свойство показывает, что, зная’значение реквизита г4>т, можно всегда определить значение реквизита г3у111 по нему — значение реквизита r2j и по последнему — значение реквизита rlyi. Рис. 2.5. Граф арифметического отношения стро¬ гого порядка Такую характеристику имеет массив булевых показателей, в которых основания (со значениями, равными единице) обычно скрыты. Его признаки (в нашем примере — rlt г2, г3 и г4) взаимосвязаны и соподчинены групповым иерархическим отношением, в котором каждая зависимая группа (значений одного признака) связана с одним родителем (одним значе¬ 64
нием другого признака). Соподчиненность строго детермини¬ рована структурой значений массива, благодаря чему име¬ ется определенное старшинство реквизитов (признаков). Так, в рассмотренном примере реквизит гх является самым старшим в группировке, а реквизит г4 — самым младшим (зависимым). Младший признак в таком массиве непосредственно относится к скрытому основанию и поэтому называется основным. Основные признаки булевых показателей относятся к. ин¬ дивидуальным признакам, отображающим свойства, присущие единичнькм значениям показателя (в отличие от общих призна¬ ков, отображающих свойства, присущие совокупности значе¬ ний показателя). Именно поэтому одно подмножество значе¬ ний основного признака не пересекается с другим подмно¬ жеством его значений (например, R зд П ^3,2 = 0)- Благодаря этому при наличии зафиксированной полной но¬ менклатуры значений какого-либо булевого показателя в ос¬ тальных СЕИ в составе обязательных признаков можно остав¬ лять только основные. Для совпадающих по структуре СЕИ можно определить арифметическое отношение толерантности следующим обра¬ зом. Зафиксируем структуру СЕИ S.(Pi, Р2, ..., Рп) и рассмо¬ трим два значения </?и, р21} ..., рп1> и <Pi2, Р22» Рпг>- Они образуют элемент арифметического отношения толерант¬ ности, если найдется хотя бы одно ky при котором pkl — p/i2. Благодаря введению арифметической толерантности появ¬ ляется возможность рассматривать родственность составных единиц информации не только по структуре, но и по значе¬ ниям отдельных совпадающих реквизитов-признаков и на этой основе находить возможности изменения структур дан¬ ных, их минимизации. Если, например, все составные единицы информации некоторой информационной системы (допустим, предприятия) содержат общий реквизит-признак с одним и тем же значением, то такой реквизит может быть выведен во второй уровень информационной структуры и тем самым не присутствовать во всех ее составляющих. Примерами таких реквизитов для системы предприятия могут служить призна¬ ки «наименование предприятия» и «адрес предприятия» (дан¬ ного). Такие реквизиты-признаки, называемые подразу¬ меваем ы м if, пли используемыми по умолчанию, обычно не фиксируются в формах документов. Реквизиты, обладаю¬ щие такими свойствами, становятся для данной системы (подсистемы) подразумеваемыми только в том случае, если имеющие их СЕИ являются для системы внутренними (т. е. не относятся к входящей в систему и исходящей из нее ин¬ формации). 3 Зак. 1818 65
Возможность выделения отдельных реквизитов в структу¬ ре распространима и на составные единицы информации. До¬ пустим, что СЕИ Я имеет следующее содержание: Pii) Я'1'Ъ Рзь Япу Р51’ Ри> Р-21 Pll> Р22) Рз1> ^42» Ро2) Pll» Р'22 Pll) Р22) Рз1) Р4З1 РоЗ) Pll) /;23 ^ ~ Pll’ ?22» РзЪ Pl4) Рб4) Pll) р24 Pll) Р22) Рз2’ Р41) Pol) Plli Р25 Plli Р22’ ?32» Р41) Ро21 Pl2) Р26 Pll’ Р22’ Рз2’ Pll) РоЗ’ Pl3) Р27 Структуру Я выразим в виде Я.(1 :7).(qlf р2, Рз» Ри Ре» jP2)i гДе Рь ^ — имена реквизитов. Значения признаков ^ и </2 одинаковы для всех позиций массива. Тогда эти призна¬ ки можно вынести во второй уровень структуры (рис. 2.6, а, б): Я,(qu Яг.(1 : 7).(</3, </,, </5, Р1в Р2). Пусть —общее количество реквизитов СЕИ Я до пре¬ образования, Rn —число выделяемых во второй уровень рек¬ визитов и п —количество элементов (записей) в массиве (его длина). Если измерять объем данных (Q) в словах, принимая а) в) 66 Рис. 2.6. Пример преобразования структуры зна¬ чений СЕИ
под словом одно значение одного реквизита в элементе масси¬ ва (иногда это называют строко-графой), то объем данных для исходной СЕИ (Q0) можно вычислить по формуле Q0 = Rrt. Для СЕИ с преобразованной структурой объем данных в сло¬ вах (Qx) равен:Qx = RB + (R — RB) п = Rn — RB (п — 1). Очевидно, что Qx меньше Q0 па величину RB (п— 1). Для рассматриваемой СЕИ И имеем R = 7, RB = 2 и п — 7. По¬ этому Q0 = 49 и Qi = 37. Выделив признаки qn и q22t получим следующую струк¬ туру значений СЕИ с объемом данных Qx: Язи Яаъ Яъъ Рп> Рг\ ЯзЪ Яа2у Яъ2у Pity Р22 Яз1у ЯаЗу ЯъЗу Pll> Р23 И =<7п> Я22 Яз\у Яаау Яъау Piv р2± Я32> ^41» Яьъ Р\ъ Ргъ Я 32 > ^41» Яь2 > Pl2> Р2в Яз2> Яаъ Яъзу Рхзу Р\п Выполняя дальнейшие преобразования, получаем: /ЯаЪ Яь\у Р21 <7з„ Pul <752’ Ргг I Я азу Яъзу Ргз И =Япу Я22 Яаау Яьау Рг\ f ЯьЪ Рпу Р2Ъ Яз2у Я АХ I qb2i Р\2> Р26 \Яьзу Рхзу Р27 Для данного случая имеем: Q2 = R X и — RB (п — 1) — — RBl (ttj — 1) + Rп3 (/г2 — 1), где RBt — число выделяе¬ мых во вторую очередь реквизитов первой подгруппы (в приведенном примере RBl = 2, так как выделяются реквизи¬ ты q3 и R\)у Rb2 — то же для второй подгруппы (в примере Ro2 = 2, так как выделяются q^ и ^4), п1 — число позиций пер¬ вой подгруппы (в примере п1 = 4) и п2 — число позиций вто¬ рой подгруппы (п2 = 3). В целом для приведенного примера Qo = 49, Qi = 37 и Q2 = 27. Приведенные соображения хорошо иллюстрируют возмож¬ ность минимизации объемов данных в результате преобразо¬ вания структуры СЕИ, основанного на выделении реквизитов с одинаковыми значениями. 3* 67
Рассмотрим СЕИ со следующим условным содержанием: *7ll, *721, *7з1, *7ll , *7ol’ Plli Р21 *7п, Я21, *7зо *?42, *7г,2’ Pi2’ Р22 Я11’ *721’ *7з2’ *7ll’ *753’ Р13’ P23 *?11’ Я21 ’ *732 ’ Я-12» Я54: Pl4’ P2I *7ii’ Я221 *7зз» *7ii’ Яоо> Pis» Р25 *7ll’ *722’ *7зЗ’ *?42’ *756’ Pl6’ P2G *7ll’ *722’ *7з4’ *741, *757’ Pl7’ Р27 *7ll’ *722’ *7з4’ *742’ *7б8’ Pl8’ Р28 После преобразования этой СЕИ по значениям признаков <7Ь (72, Яз получаем следующую структуру значений (рис. 2.7): Для этой структуры объем данных в словах определяется по формуле Сз ~ Ri + ni (Ri Ь п2 (Rii + n3Ri))y где Ri — количество реквизитов (i + 1)-го уровня, a nt — длина массива составляющей СЕИ (i + 1)-го уровня. Для рас¬ сматриваемой СЕИ Е R = 7, п = 8 и, следовательно, Qo = -- 56. Для преобразованной СЕИ = R2 = 7?з = 1» ^4 = = 4, /zx = п2 = и3 =2, поэтому Q3 = 39. Структура такого типа называется ступенчатой и свойст¬ венна, например, большинству табуляграмм. Общая формула определения объема данных в словах для СЕИ с такой струк¬ турой следующая: Qc = Rl + Н \R 2 + ftiftzR 3 + ft\ft 2 ft' 3R A + ••• + ft \ П 2 ... ••• ft-m-l Rm- С минимизацией объема данных, таким образом, связана задача: на основе структуры СЕИ и ее значений найти опти¬ мальную структуру построения, приводящую к минимальному £=<7П 68
Рис. 2.7. Преобразованная структура значений СЕИ Е объему данных. Заметим, что ступенчатая структура являет¬ ся в этом отношении одной из наиболее подходящих. Ранее была показана возможность преобразования много¬ уровневой структуры в двухуровневую, здесь же рассмотрен обратный процесс — преобразование двухуровневой струк¬ туры (для массива — трехуровневой) в многоуровневую. Сле¬ довательно, процесс преобразования обратим, и это хорошо иллюстрирует возможность формализации построения опти¬ мальных структур СЕИ. Из рассмотренного непосредственно вытекает возможность объединения показателей в сообщения и, наоборот, разбивка сообщений на показатели. Пусть даны два показателя, признан¬ ные части которых толерантны. Другими словами, имеется следующая информационная совокупность: PJ __ / ^1» \Д> Я'1 > <7з. Здесь и далее qi} qij} Рк обозначают различные значения реквизитов. Но эта информационная совокупность может быть преоб¬ разована в следующую: И - qu q2, q3, qA 69
Так как структура ступенчатого типа легко преобразуема в двухуровневую структуру, то из последней конструкции не¬ трудно получить следующую: С — <д/ь q2, q3, qA, Ръ Р2>. Преобразование основано на объединении по толерантным рек¬ визитам, в процессе которого родственные по структуре и зна¬ чению реквизиты сливаются, устраняя дублирование инфор¬ мации. Объединение показателей в сообщение возможно и при родственности не по всем признакам, например {qu q2> q3> qA, Pi) U {<72. <7з. <75. рг} = {<7ь Яг, Яз. <74, <7s, ръ Рг}- Объедине- ние здесь выполняется над множествами значений, а не над кортежами. Минимальным требованием для объединения двух показа¬ телей следует считать родственность по форме и значению хотя бы одного из их признаков. Так, правомерно объединение {qu Однако если в показателях есть совпадающие по имени признаки, которые отличаются по значению, то объединение таких показателей приведет к образованию не сообщения, а более сложного по структуре информационного образования с числом уровней более двух, поскольку указанные признаки не сольются, и для отнесения каждого из них к определенно¬ му показателю нужен будет третий уровень.Так, для показа- телей <qn, Яги Язз. <74, Л> и <Я\г, Ягг, <7зз> Яъ, рг> в случае их объединения по признаку q3:i имеем: На множестве возможных значений некоторого реквизита СЕИ-массива можно определить бинарное отношение порядка или предшествования. Для числовых значений одного рекви¬ зита таким отношением могут служить арифметические от¬ ношения ^ или Для нескольких имен реквизитов или текстовых значений вводится понятие лексикографи¬ ческого порядка. Пусть лд, уь — значения /-го рекви¬ зита или символа и существуют два составных значения X — = <лц, х2, хп> и Y = <//ь у2, ..., */„>, где п ~ число имен реквизитов. Определим, что X < Y, если ад = уъ ..., Xj — tjj и ад+1 С yj+1 для некоторого / < п. Если х и у являются символами, то х <С у означает, что х расположен в алфавите раньше у либо двоичный код х меньше двоичного кода ;/. Взаимный порядок реквизитов в X и У менять нельзя, и реквизит ад называется старшим по отношению к реквизиту xhy если / < к. Яг, Яз, Яъ, Pi) U {<72, <74, Яъ, рг) ^ {<7ь Яг, <7з, <74, Яъ, Яъ, ри Рг}-
Для отношения порядка должны выполняться следующие условия: 1. Для любых двух неодинаковых значении /;х и р2 спра¬ ведливо одно из двух утверждений: «р} предшествует /?2» или «р2 предшествует /;А», по не оба одновременно. 2. Из двух одновременных утверждений «/?, предшествует р2» и «/;2 предшествует рр> следует, что значения р{ и р2 сов¬ падают. 3. Из двух утверждений «рх предшествует /ж» и «р?. пред¬ шествует /?3» следует утверждение «рх предшествует Верно и обратное — наличие указанных трех условий оп¬ ределяет отношение нестрогого порядка. Пусть для СЕИ Pi и pi+1—значения признаков с одинако¬ выми наименованиями. Тогда вупорядоченном мас¬ сиве всегда соблюдается условие — для всех / справедли¬ во отношение pt ^ pi +lt или р} ^ я*-и- Первое отношение определяет массив, упорядоченный по убыванию, второе — массив, упорядоченный по возрастанию. Признаки, значения которых упорядочиваются в пределах некоторого участка массива, называются ключами сор¬ тировки, или ключевыми. Алгоритмы обработки данных, рассчитанные на упорядо¬ ченные по возрастанию массивы, могут работать и с масси¬ вами, упорядоченными по убыванию. Для оценки неупорядоченности некоторого множества зна¬ чений ключевых признаков Р = {р1у ръ ..., рп} использует¬ ся матрица инверсий Z = ||г,-7-|| /, / — 1, и со значениями О и 1. При упорядочении по возрастанию 2 _ ( 0» если Pi ^ Pj ПРИ * ^ /» ИЛИ Pi >Pi ПРИ 1 ^ /’ lJ \ 1—в противном случае. При упорядочении по убыванию принимается 2ц — |1 — — zu| (этот случай далее не рассматривается). Из свойств отношения порядка следуют аналогичные свойства матрицы инверсий 1) Zu = Zji (симметричность); 2) 2ц = 0 (антирефликсивность); 3) для любых i ^ ^ к из равенства ги = zjh следует (транзитивность). В качестве примера рассмотрим матрицу инверсий для де¬ вяти ключевых признаков рх —4, р2 = 2, /?з= 7, рх~ 5, Ръ = 3, ра = 9, Pj = I, /;6 = 8, рп = 6. 71
0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 1 0 Если все множество ключевых признаков удовлетворяет отношению порядка, то в матрице инверсий Z все элементы должны быть нулевыми. Важными частными случаями упоря¬ доченности являются упорядоченность подмножества ключей, взаимная упорядоченность двух подмножеств ключей и внеш¬ няя упорядоченность пбдмножества ключей. Множество ключевых признаков содержит упорядо¬ ченное подмножество piy pi+1, ..., pj (i ^ j ^ /г), если справедлива серия неравенств рг ^ pj. Например, среди ключевых признаков р = {3, 1, 5, 9, 6, 4} существует упорядоченное подмножество р = {1, 5, 9}. В матрице инверсий при наличии упорядоченного под¬ множества ключей можно выделить квадратную нулевую под¬ матрицу (рис. 2.8,а). Элементы нулевой подматрицы на рисун¬ ке заштрихованы, на матрице инверсий показана главная диа¬ гональ. Два непересекающихся подмножества ключей pit pi+ lt •••» Pj и pk9 рк+1, pm (i<j<k<m^n) называются взаимно упорядоченными, если каждый ключ первого подмножества меньше любого ключа из второго под¬ множества и оба подмножества не упорядочены. В множестве ключей Q = {9, 1,3, 4, 2, 8, 5, 7, 6}, например, взаимно упо¬ рядоченными подмножествами являются Q' = {1, 3, 4, 2} и Q" = {8, 5, 7, 6}. Расположение нулевых подматриц в матри¬ це инверсий при наличии взаимной упорядоченности подмно¬ жеств показано на рис. 2.8, б. Подмножество ключей ри pi+1, ..., pj обладает свойст¬ вом внешней упорядоченности, если любой из ключей подмножества не больше ключа р t ^ t ^ i — 1)и не меньше ключа рт (/ + 1 ^ г ^ п). Например, в множестве ключей R = {3, 1,6, 4, 5, 9, 7, 8} можно выделить внешне упорядоченное подмножество R' — {6, 4, 5}. Расположение нулевых подматриц в матрице инверсий для случая внешней упорядоченности показано на рис. 2.8, в. 72
Рис. 2.8. Структура матрицы инверсий: а — при наличии упорядоченного подмножества ключей; б — при взаимной упорядоченности двух подмножеств ключей; в — при внешней упорядоченности Алгоритм, который осуществляет перестановку СЕИ так, чтобы значения некоторого ключевого признака оказались упорядоченными, называется сортировкой. В процес¬ се сортировки осуществляются сравнения пар значений при¬ знаков, минимально возможное число таких сравнений С = = М log2 Му где М — число сортируемых СЕИ. Во многих задачах обработки данных требование упоря¬ доченности множества ключевых признаков может быть заме¬ нено более слабыми условиями упорядоченности подмножест¬ ва, взаимной упорядоченности или внешней упорядоченности. Варианты алгоритмов сортировки, которые обеспечивают эти частные случаи упорядоченности, обычно выполняют значи¬ тельно меньше, чем С = М log2 М сравнений. Контрольные вопросы 1. Какие аспекты классификации используются при классификации информационных отношений? 2. Какие свойства бинарных однородных отношений несовместимы в одном отношении? 3. Охарактеризуйте содержательные формулировки множествен¬ ных отношений на примере аппарата СЕИ. 4. Какие выводы можно сделать на основе анализа значений пара¬ метров встречаемости реквизитов в СЕИ? 5. Как используются методы математической логики при формиро¬ вании СЕИ с минимальным составом реквизитов? 6. Какое практическое значение имеет анализ параметров спроса и использования СЕИ? 7. Какие арифметические отношения обладают свойствами строгого порядка? 73
ГЛАВА 3 МОДЕЛИ ДАННЫХ Моделью данных называется формализованное описание структуры единиц информации и операций над ними в информа¬ ционной системе. Любая модель данных должна обеспечивать представление основных категорий восприятия реального мира — объектов, их свойств, связей и взаимодействий объек¬ тов. Наиболее распространены реляционная, сетевая и иерар¬ хическая модели данных. Основным понятием для этих моделей является отношение, причем реляционная модель данных оперирует отношениями общего вида, а остальные модели — отдельными частными случаями отношений. 3.1. РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ Реляционная модель данных является совокупностью отно¬ шений, из которых образуются новые производные отношения в результате выполнения запросов пользователей информа¬ ционной системы. Множества, образующие область определе¬ ния отношений в реляционной модели данных, могут содер¬ жать только значения реквизитов. Математический аппарат, который позволяет записывать структуру отношений, а также производить преобразования отношений, называется реляционной алгеброй. Структура отношения (СЕИ, фрагмента СЕИ) определяет¬ ся указанием имени отношения R и перечислением в скобках имен реквизитов, связанных с каждым множеством из обла¬ сти определения, например R (Л, В, ..., В), где Л, В, ..., F — имена реквизитов. Иногда структуру отношения называют схемой отношения. Рассмотрим операции, которые могут быть произведены над отношениями. Как правило, в перечень включаются сле¬ дующие операции: объединение, пересечение, вычитание, про¬ екция, произведение, ограничение, соединение, деление и вы¬ борка. Объединение, пересечение и вычитание — бинарные опе¬ рации, они выполняются над двумя отношениями-синонима¬ 74
ми. Синонимами называются отношения Rx и R2 с одинаковым порядком /г, если для реквизита At (i = 1, п) из отношения /?! найдется реквизит Bj (/ = 1, п) из R2, такой, что значения Л; и Bj принадлежат общей области определения. Реквизиты Ai и Bj, обладающие этим свойством, называются рол евы- м и. Результат объединения отношений Rx и R2 является отно¬ шением того же порядка, строки которого принадлежат или Rlt или R2, или им обоим. Пересечение отношений R± и R2 состоит из строк, принадлежащих Rx и R2 одновременно. Если из отношения Rt вычитается отношение R2y то резуль¬ тат содержит строки из Riy отсутствующие в R2. Рассмотрим пример с таблицами значений отношений Rx и R2 следующего вида: *1 Ог 1 1 Р и Ях 2 «1 Яг 6 U о Яз 3 Яг 1 и2 Я4 5 «2 Яз 2 W4 *2 С2 1 Е | 1 </ Яг 6 Иг Я1 2 и4 Яз 7 Их Яз 3 Их В заголовках столбцов показаны имена реквизитов, каж¬ дая строка таблицы представляет собой кортеж, RT и R2 являются синонимами, пары ролевых реквизитов — Gx и G2, Р и Е. Отношения RA = Rx (J R2, Rв =r- Ri П R2, Rc = = Ri \ R2 имеют следующие значения. Реквизиты в R Лу RBy Rc получили новые имена. *А G 1 1 ^ 1 1 Ях 2 Их Яг 6 И 2 Яз 3 Их Яг 1 Иг Я4 5 п2 Яз 2 Их Ях 2 Их Яз 7 Их Rb G 1 1 * и Яг 6 «2 Яз 3 Их Рс G 1 F 1 " Ях 2 Их Яг 1 Из Ях 5 Иг Яз 2 Их 75
Для определения операции проекции рассмотрим отноше¬ ние R порядка п. Реквизиты отношения нумеруются целыми числами от 1 доп. Список из нескольких целых чисел (обозна¬ чим его L) определяет номера реквизитов и их взаимный по¬ рядок в отношении после выполнения проекции. Запись опе¬ рации проекции означает, что реквизиты исходного отношения выбраны и переставлены согласно списку L. Из отношения R [L] исключаются некоторые строки, чтобы соблюдалось ус¬ ловие о несовпадении значений строк. Реквизиты в R [L] мо¬ гут получить новые имена, не совпадающие с их наименова¬ ниями в R. Кроме того, целые числа в L могут повторяться, тогда один и тот же столбец из R несколько раз входит в R [L] под разными именами. Вместо номеров реквизитов могут ука¬ зываться их идентификаторы, например операции Rx [2] и Ri [Р] эквивалентны. В качестве примера построим некоторые проекции отноше¬ ния Rx. Так, Rз Rx [3] имеет значения {и1} и2, w4}. Проек¬ ция Р4 - Pi [1, 3, 31 представлена следующей таблицей: Операция проекции позво¬ ляет получить «вертикальное подмножество» отношения (под¬ множество столбцов). Она при¬ меняется для того, чтобы иск¬ лючить из обработки реквизиты отношений, значения которых не требуются при формировании ответов на запросы. Благодаря операции проекции уменьшается объем промежуточных данных и соответственно время вычис¬ лен 11 я р ез у л ьтатов. С помощью проекции можно получить отношения-синонимы из несовпадающих по структуре исходных отношений. Зна¬ чения этих проекций, вообще говоря, не совпадают, поэтому выбор исходного отношения влияет на правильность резуль¬ тата. Пусть нам необходим список отделов учреждения. В ба¬ зе данных поддерживаются отношения СЛУЖАЩИЙ (ФАМИ¬ ЛИЯ, ОТДЕЛ, ...), ТЕХНОЛОГ (ФАМИЛИЯ, ОТДЕЛ, ...) и РУКОВОДИТЕЛЬ ОТДЕЛА (ФАМИЛИЯ, ОТДЕЛ, ...). Дадим им сокращенные обозначения /?с, RT и Rv соответствен¬ но. Проекции Rc [2J и Rv [2] приводят к формированию пол¬ ного списка отделов учреждения. В то же время проекция R.v [21 может содержать меньше отделов, чем в действитель¬ ности, так как в некоторых отделах не работают технологи. Произведение двух отношений R и 5 в реляционной ал¬ гебре определяется следующим образом. Строки отношения G И Иг <7i «1 Я* «2 «2 Я;< «1 «1 <74 “2 «2 Яз «4 «4 76
Т = R ® S (® — знак произведения) образуются путем сцепления во всех возможных сочетаниях строк первого от¬ ношения rt со строками второго Sj. Сцепление означает, что строка rt из п элементов и строка Sj из m элементов образуют новую строку длиной п + /п, в которой сначала располагают¬ ся элементы из гь а затем — из Sj. Количество строк в R ® 5 равно произведению числа строк в исходных отношениях R и S. Структура отношения Т = R ® 5 получается сцеплением списка реквизитов от¬ ношения R со списком реквизитов отношения 5. Рассмотрим таблицы значений отношений R и S. S Вг 1 1 в2 d 2 d 3 с 4 R Аг А2 А з а 2 / Ь 3 / с 1 f d 2 f Произведение Т = R ® S имеет таблицу: Т Аг А 2 Лз Вг 1 1 в2 а 2 / d 2 а 2 / d 3 а 2 f с 4 Ъ 3 f d 2 Ь 3 i d 3 Ъ 3 f с 4 с 1 f d 2 с 1 f d 3 с 1 f с 4 d 2 f d 2 d 2 f d 3 d 2 f с 4 Операция ограничения определена на одном отношении R. В этом отношении должны быть выделены два непересе- кающихся списка реквизитов одинаковой длины = {Ль Л2, Ah} и М2 = {Вь Въ Вк). Мг и М2 должны быть синонимами. Рассмотрим две таблицы гх и г2, получаемые из отношения R. Таблица гг содержит все столбцы из таблицы значений R, имена которых указаны в Мг. Одинаковые 77
по значению строки вгг не подавляются. Таблица г2 определена аналогично на списке реквизитов М2. Между кортежами этих таблиц устанавливается бинарное отношение 0 одного из сле¬ дующих видов: = , Ф, >, <, Если i-я строка из гх и i-я строка из г2 удовлетворяют отношению 0, то i-я строка отношения г остается в нем после выполнения операции огра¬ ничения. Это условие проверяется для всех строк. Обозначим операцию ограничения следующим образом: V = R [MiOM2l, где V — имя отношения, получаемого в ре¬ зультате ограничения. Если списки Мх и М2 — однореквизитные, то применение любого из отношений 0 не приводит к двусмысленности. Если М± и М2 состоят из нескольких реквизитов, сравнение строк на равенство означает попарное совпадение символов в этих строках, а сравнения <, >, ^ в этом случае неприменимы. Рассмотрим таблицу значений отношения R5: Rb А± 1 1 л2 Л3 ау 2 3 а2 4 2 аз 5 5 а4 7 6 as 9 4 а6 3 6 Ограничение V Rb [А2 < А 31 дает в результате V А[ 1 А2 1 1 Л3 а, 2 3 as 3 6 С помощью операции ограничения выделяется некоторое подмножество строк исходного отношения, для значений эле¬ ментов которых выполняется отношение 0. Операции произведения и ограничения часто встречаются в связке W = (R ® S) Ш^ЛЫ, причем Мг — список рек¬ визитов из /?, а М2—синонимичный список реквизитов из S. Поэтому целесообразно ввести отдельную операцию — со¬ единение отношений R и S, обозначаемую R [AfjGMj S, и определить ее с помощью тождества R [Мх0М2] 5 = (R 0 S) [М^М2]. 78
Для указанных выше таблиц отношений R и S (с. 77) результат операции = R [А 2 = В21 5 характеризуется таблицей Л 1 1 А% | А, В1 1 в2 а 2 / d 2 Ъ 3 f d 3 d 2 f d 2 Соединение W2 = R [Л2< 5г1 5 порождает таблицу At 1 A 2 A3 1 1 Bt I В 2 a 2 / d 3 a 2 / с 4 b 3 f с 4 с 1 f d 2 с 1 f d 3 с 1 f с 4 d 2 f d 3 d 2 f с 4 Операция соединения позволяет совместить информацию из двух отношений в одном отношении. Важный частный случай операции соединения называет¬ ся натуральным соединением (или экви¬ соединением). Для эквисоединения в качестве отноше¬ ния 0 берется только равенство, множества имен реквизитов М± и М2 должны содержать пары ролевых реквизитов, при¬ надлежащие R и S соответственно, в результате эквисоеди¬ нения столбцы с именами из М2 подавляются. Операция экви¬ соединения обозначается Z = Отношение \Vt, полу¬ ченное выше, не является эквисоединением R и 5, поскольку имеются две пары ролевых реквизитов А 2 и В2, Ах и Вх. Поэто¬ му w3 = /?[><]5 описывается таблицей ^3 A i 1 Л2 I 1 d 2 / 79
Если отношения R и S являются синонимами, то эквисо¬ единение определяется как [><]S = Если R и 5 не содержат общих реквизитов, то по определению #[><]S= = R ® 5. Таким образом, эквисоединение может быть выполнено над любыми двумя отношениями. Операция деления рассчитана на получение «горизонталь¬ ного подмножества» отношения. Она рассматривает произволь¬ ное отношение R (делитель) как бинарное. Для этого все рек¬ визиты разделяются на два непересекающихся подмножества М и Мг и рассматриваются две таблицы г (М) и г (ЛГ), состоя¬ щие из соответствующих столбцов таблицы значения R. Для каждой строки rt таблицы г (М) вводится операция «об¬ раз», результатом которой являются строки /у £ г (М')> та¬ кие, что пара (г/, /у) принадлежит отношению г. Операция взятия образа обозначается как im (/у) = {r/ь г/2, ..., rfk). Очевидно, что существуют и образы строк г/, которые яв¬ ляются строками из г (М). Отношение-делитель S должно быть синонимом для г (М). Операция деления сводится к вы¬ числению образов всех строк делителя 5 и формированию пе¬ ресечения этих образов. Результат деления является подмно¬ жеством строк таблицы г (М). Общее обозначение операции де¬ ления г [УИ -г- N] S, где N — список реквизитов отношения 5. Рассмотрим, например, процесс деления отношения R6 на Si с таблицами значений: л и X У 1 Z u *1 Ух zx »x Xl У 2 Z2 u2 х2 Уз ZX Ux Хз Ух zx Ux Х2 Уз Z2 “2 Хз Ух Z2 «2 s Z' U’ *1 «1 Z2 u2 Множество УИ = {Z, U) и множество Ar={Z\ (/'} явля¬ ются синонимами, поскольку Z, Z' и (/, U' — пары ролевых реквизитов. Вычисляем образы строк из S^ im (.?!«,) = {(л-ь //0, (л-2, уя), (а-.,, //,)}; im (z2ti2) = {(лг,, у2), (х2, у я), (а'з, //])}■ Пересечение образов дает множество {(л'?, уя), (л:3, уг)}, т. е. результат деления (обозначим его 7\) сведем в таблицу 80
Т 2 X 1 1 Y Х2 Уъ *3 У\ Отметим, что объединение образов строк из Si в нашем примере вычисляется с помощью эквисоединения и проекции 7,з = (йв><51)[1, 21. В результате получаем отношение Г3, сведенное в таблицу г. 1 X 1 1 Y У\ *1 У 2 Х2 Уг *3 У\ Операция выборки является обобщением операции огра¬ ничения. Для значений реквизитов отношения R формулиру¬ ются условия вида <имя реквизитам 0 Сзначение реквизи¬ там, где 0 = {==, Ф, М, <, Эти условия могут связываться вместе с помощью логических операций Д(и) V (или) в общее условие выборки. Операция выборки обозна¬ чается следующим образом: Q = R [условие выборки!, где Q — имя результата выборки. Отношение Q содержит та¬ кие строки из R, которые удовлетворяют условию выборки. Надо отметить, что все введенные ранее операции использо¬ вали в качестве операндов исключительно отношения, а в ус¬ ловии выборки надо указывать отдельные значения реквизи¬ тов. В качестве примера рассмотрим для таблицы Т (с. 77) оператор Q = ТЦА^Ь) Д (В2 < 4)1. Таблица значений Q содержит строки: Q А As л3 Вх ь 3 f d 2 ь 3 / d 3 81
Корректировка отношения, т. е. добавление в таблицу новых строк (включение) либо изъятие из нее некоторых строк (исключение), производится операторами объединения и вы¬ читания. Например, включим в отношение Т3 две строки {*ъ Уг) и {х3у j/2}- Они должны образовать отдельное отно¬ шение Тв с таблицей: Тв 1 1 *1 Уг *3 Уг Включение реализуется оператором объединения Т3 U 7V Отношение Т4 имеет таблицу: Т, 1 1 *1 Ух *1 Уг *2 Уг Л'з Ух *3 Уг Включение {хи у2) не произошло, поскольку такая стро¬ ка уже имелась в Т3. Допустим, что из Т4 необходимо исключить строки {*3, //х} и {хи у3), составляющие таблицу отношения Ти: 7и - 1 Y *1 Ух Уг Исключение выполняется оператором вычитания Т5 = Т4 \ гм. Получаем таблицу соответствия Ть: 82
Т5 X Y *1 У1 *1 У 2 *2 Уз *3 Уг Строка {л'ь /уо} из Ти не произвела никакого действия, поскольку равной ей по значению строки в Т4 нет. Реализацию конкретных запросов пользователей с помощью операторов реляционной алгебры рассмотрим на примере двух отношений по СЕИ из учета движения материальных ценностей в производстве. 1. Пр иходиый ордер ОРДЕР. (СК, ПОСТ, ИНОМ, КОЛ, Ц). 2. Лимитная карта ЛИМК. (СК, ЦЕХ, ИНОМ, ЛИМ, КОЛ, ДАТА, ОСТ). Список реквизитов: СК — склад; ПОСТ — поставщик; ИНОМ — номенклатурный номер материала; КОЛ — количество материала; Ц — цена; СУМ — сумма; ЛИМ — лимит запаса материала; ОСТ — остаток запаса материала. Значения отношений для СЕИ ОРДЕР и ЛИМК пока¬ заны в табл. 3.1 и 3.2. Сформулируем несколько запросов к этим отношениям. 1. В какие цехи поступают материалы с номенклатурными номе¬ рами 301621, 427211 и 741653 одновременно? Значения реквизитов не могут непосредственно использоваться при формулировке операций реляционной алгебры, поэтому надо создать содержащее их отношение МТ: МТ НМ 301621 427211 741653 83
Таблица 3.1 ОРДЕР СК 1 пост ином | кол 1 ц 01 ПОСТ1 427211 1600 17,6 02 ПОСТ2 741653 940 12,0 04 ПОСТ2 301621 720 19,4. 03 ПОСТЗ 219432 800 15,2 01 ПОСТ4 427211 1260 17,6 02 ПОСТ4 741653 400 12,0 04 ПОСТ4 301621 670 19,4 02 ПОСТ5 177216 900 10,5 Т а б л и ц а 3.2 лимк СК | ЦЕХ | ином | лим | кол | ДАТА | ОСТ 01 01 427211 6000 18 140281 9200 04 02 301621 5400 26 060481 7000 02 02 177216 7600 114 260181 5200 01 02 427211 4200 82 120481 6000 02 02 741653 6500 40 170881 8500 01 03 427211 7000 15 021081 9000 04 03 301621 3800 90 090681 4000 03 03 219432 9100 74 050581 8000 02 03 741653 8300 Ю5 100281 9600 01 04 427211 7900 56 210981 16000 04 04 301621 4800 14 071281 5200 Упомянутые в запросе реквизиты ЦЕХ и ННОМ принадлежат од¬ ному отношению ЛИМК. Поэтому целесообразно выполнить проекцию отношения ЛИМК, чтобы оставить в нем только реквизиты ЦЕХ и ННОМ: ЛИМК1 = ЛИМК 12,3J Номера цехов, в которые поступает материал с данным номенкла¬ турным номером, выделяются операцией взятия образа номенкла¬ турного номера в ЛИМК1. Поскольку в запросе речь идет о цехах, получающих материалы 301621, 427211, 741653 одновременно, тре¬ буется выполнить пересечение образов, т. е. деление: ЦМ = ЛИМК1 [ИНОМ -г НМ] МТ Запрос может быть записан в одну строку ЦМ = ЛИМК [2,3] [ННОМ -f- НМ] МТ Выполнение указанных действий приводит к следующей таблице отношения ЦМ: 84
цм ЦЕХ 02 03 Если бы запрашивались номера цехов, получающие хотя бы один материал из списка, зафиксированного в соответствии МТ, образы но¬ менклатурных номеров в ЛИМК1 пришлось бы объединить, т. е. вы¬ полнить эквисоединение и проекцию: ЦМ1 = (ЛИМК1 >< МТ) [1] Таблица ЦМ1 имеет значения ЦМ1 ЦЕХ 01 02 03 04 2. Какие поставщики поставляют те же материалы, что и постав¬ щик ПОСТ2? Снова необходимо ввести отношение СП П ПОСТ2 Задача должна быть разделена на две части. Сначала получим спи¬ сок материалов, поставляемых ПОСТ2. Реквизиты ПОСТ и ННОМ при¬ надлежат отношению ОРДЕР. Требуемые материалы являются образа¬ ми ПОСТ2. Поэтому список материалов СМ вычисляется с помощью операций проекции и деления: СМ = ОРДЕР [2,3] [ПОСТ -у П] СП Таблица значений СМ содержит строки СМ ННОМ 741653 301621 85
Поставщики, которые удовлетворяют условию запроса, должны по¬ ставлять все материалы, содержащиеся в отношении GM, и, возможно, какие-то материалы сверх этого перечня. Пересечение образов строк из СМ^ взятых из отношения ОРДЕР [2,3], решает поставленную задачу, так как поставщики обязательно поставляют и материал 741653, и ма¬ териал 301621. Поэтому список поставщиков СПИСОК, поставляющих те же материалы, что и ПОСТ2, вычисляется таким образом: СПИСОК = ОРДЕР [2,3] [ИНОМ ~ ННОМ]СМ Запрос может быть переписан в одну строку СПИСОК = ОРДЕР [2,3] [ИНОМ ~ ИНОМ] (ОРДЕР [2,3] [ПОСТ -f- ~ П] СП) Результирующая таблица отношения СПИСОК СПИСОК ПОСТ ПОСТ 2 Г10СТ4 Естественно, что сам ПОСТ2 удовлетворяет требованиям запроса. 3. Материалы каких поставщиков требуются во всех цехах пред¬ приятия? Запрос также состоит из двух частей. Очевидно, что список всех це¬ хов предприятия на основе имеющихся отношений получить невозмож¬ но, поэтому следует ограничиться цехами, получающими материалы со стороны. Нужный список СЦ получается операцией проектирования: СЦ - ЛИМК [2] Поскольку запрос охватывает все цехи из СЦ, далее можно поль¬ зоваться только операцией деления (пересечение образов). Список ма¬ териалов, требуемый во всех цехах из СЦ, это СМ = ЛИМК [2,3] [ЦЕХ ~ ЦЕХ] (ЛИМК [2]) Поставщики, поставляющие весь набор материалов из СМ, опреде¬ ляются путем СПИСОК = ОРДЕР [2,3] [ИНОМ ~ ИНОМ] СМ Запрос также может быть записан в одну строку СПИСОК = ОРДЕР 12,3] [ИНОМ ~ ИНОМ] (ЛИМК [2,3] [ЦЕХ = = ЦЕХ] (ЛИМК [2])) Результирующая таблица имеет вид СПИСОК ПОСТ IIOCT1 Г10СТ4 4. Какие материалы поступают либо в цех 02, либо в цех 03? Реквизиты, которые упоминаются в формулировке запроса (ЦЕХ и ИНОМ), находятся в одном отношении ЛИМК. Для выполнения запро¬ са необходимо отношение СЦ с таблицей 86
си ЦЕХ 02 03 Материалы, поступающие в цех 02, являются образами значения ЦЕХ = 02 в отношении ЛИМК [2,3]. То же самое справедливо для ма¬ териалов, поступающих в цех 03. Поскольку требуются номенклатур¬ ные номера материалов, поступающих либо в цех 02, либо в цех 03, эти образы необходимо объединить, что равносильно выполнению эквисое¬ динения. Окончательно получаем выражение СМАТ = (ЛИМК [2,3] ><3 СЦ) [2] Отношение СМАТ представляет собой список номенклатурных но¬ меров материалов, поступающих либо в цех 02, либо в цех 03, и имеет значение СМАТ ИНОМ 301621 177216 427211 741653 219432 5. По каким номенклатурным номерам имеется достаточный запас материалов? Требуется определить все материалы, по которым лимит не превы¬ шает наличного остатка. Так как реквизиты (ЛИМ и ОСТ) находятся в одном отношении, то достаточно применить операцию ограничения СПМ = ЛИМК [ЛИМ < ОСТ] [3] Тогда таблица СПМ содержит строки СПМ НПО ДА 427211 301621 741653 6. Для каждого поставляемого материала выбрать его номенкла¬ турный номер и список поставщиков. Требуемая информация получателя в результате выполнения проек¬ ции ПОСТМАТ - ОРДЕР [3,2] 87
Отношение ПОСТМАТ для каждого номенклатурного номера мате¬ риала содержит соответствующие имена поставщиков. Однако для удоб¬ ства дальнейшего использования отношение ПОСТМАТ необходимо отсортировать, поэтому окончательный вид запроса следующий: ПОСТМАТ = SORT UP [1, ОРДЕР [3,2]] Значением ПОСТМАТ является таблица ПОСТМАТ ином | пост 177211 ПОСТ 5 219432 ПОСТЗ 301621 ПОСТ 2 301621 ПОСТ 4 427211 ПОСТ 1 427211 ПОСТ 4 741653 ПОСТ 2 741653 ПОСТ 4 Операторы реляционной алгебры могут быть использованы для вы¬ ражения достаточно сложных запросов. В тех случаях, когда средств реляционной алгебры оказывается недостаточно, необходимо изменить структуру отношений в базе данных. 3.2. НОРМАЛИЗАЦИЯ ОТНОШЕНИИ Задача группировки имен реквизитов в отношения, на¬ бор которых заранее не фиксирован, допускает множество различных вариантов решений. Рациональные варианты груп¬ пировки должны учитывать следующие требования: корректировка отношений не должна приводить к двусмыс¬ ленности или потере информации; перестройка набора отношений при введении новых ти¬ пов данных должна быть минимальной. Нормализация представляет собой один из наиболее изу¬ ченных способов преобразования отношений, позволяющих улучшить характеристики СЕИ и базы данных по перечис¬ ленным критериям. Среди зависимостей между реквизитами отношения спе¬ циально выделяются функциональные зависимости. Реквизит В отношения г функционально зависит от реквизита Л, если в каждый момент времени каждому значению А соответствует не более чем одно значение £. В свою очередь А функцио¬ нально определяет В. Иллюстрирует это понятие рис. 3.1; каждое ребро в графе определяет элемент отношения г (Л, В). Функциональная зависимость В от Л соответствует понятию однозначной функции В = f (А). Данное определение легко 88
в 5, 6? б3 5* 6) 6) Рис. 3.1. Зависимости между реквизитами: а — функциональная А-+В\ б — нефункциональная (кортежи <Дз, 0i>, <а2, нарушают свойство функциональности), в — взаим¬ нооднозначная А<—*В распространяется на случай зависимости между группами рек¬ визитов. Группу М составим из реквизитов А1у А2, Ат, группу N — из реквизитов В1у В2, Вл. Кортежи отноше¬ ний г [М\ и rim будем считать значениями групп реквизи¬ тов М и N. С учетом этого к М и N применимо общее опреде¬ ление функциональной зависимости. Наличие функциональной зависимости реквизита В от реквизита А обозначается г. А ->■ г. Ву ее отсутствие — г.А У* 7^ г.В. Если ясно, о каком отношении идет речь, то пишут А В или А -/+ В. Случай А В, В А обозначается А В и называется взаимно-однозначным соответствием (рис. 3.1, б). Очевидно, что в случае А В число элементов в реквизите А больше, чем в реквизите В, а при взаимно¬ однозначном соответствии число элементов одинаково. При обработке отношений очень важно различать корте¬ жи по содержащимся в них значениям реквизитов, а не по вза¬ имному расположению кортежей. С этой целью вводятся по¬ нятия вероятного и первичного ключей. Вероятный ключ К отношения г является ком¬ бинацией из п реквизитов (возможно п= 1), обладающей сле¬ дующими двумя свойствами: уникальностью (значения К (понимаемые как строки проекции г 1X1) и кортежи отноше¬ ния г находятся во взаимнооднозначном соответствии); неиз- быточностью. Набор реквизитов в К нельзя сократить без нарушения первого свойства. Вероятный ключ всегда существует, так как все рекви¬ зиты отношения г заведомо обладают первым свойством. Если в отношении существует несколько вероятных клю¬ чей, то для идентификации кортежей используется один из 39
них, называемый первичным. Реквизиты, не входящие ни в какой ключ, называются неосновными. В ряде случаев удобно ввести искусственный первичный ключ в виде нумерации кортежей отношения. Номер кортежа при этом должен стать одним из реквизитов этого отношения. Найдем, например, ключи в отношении Q (ПРЕДПРИЯ¬ ТИЕ, АДРЕС, ПРОДУКЦИЯ, ВЫПУСК). Различных предприятий, естественно, меньше, чем различ¬ ных кортежей в Q, так как предприятие может выпускать не¬ сколько видов продукции. Аналогично данная продукция мо¬ жет выпускаться несколькими предприятиями. Поэтому ни ПРЕДПРИЯТИЕ, ни ПРОДУКЦИЯ по отдельности вероят¬ ного ключа не образуют. Вместе они составляют вероятный ключ, поскольку ВЫПУСК и АДРЕС ими однозначно опре¬ деляются. Если учесть зависимость ПРЕДПРИЯТИЕ <-> АД¬ РЕС, то появляется еще один вероятный ключ АДРЕС, ПРО¬ ДУКЦИЯ. Легко доказать, что каждый неключевой реквизит из от¬ ношения г функционально зависит от каждого вероятного ключа из г. При предположении обратного возникает проти¬ воречие с понятием вероятного ключа. По той же причине два вероятных ключа всегда находятся во взаимно-однозначном соответствии. Для отношения Q можно теперь вывести зависимости: ПРЕДПРИЯТИЕ, ПРОДУКЦИЯ АДРЕС ПРЕДПРИЯТИЕ, ПРОДУКЦИЯ ВЫПУСК АДРЕС, ПРОДУКЦИЯ ПРЕДПРИЯТИЕ АДРЕС, ПРОДУКЦИЯ + ВЫПУСК ПРЕДПРИЯТИЕ, ПРОДУКЦИЯ <-> АДРЕС, ПРОДУКЦИЯ Важное свойство составного (многореквизитного) вероят¬ ного ключа состоит в том, что никакие два входящих в него реквизита не могут быть связаны функциональной зависимо¬ стью. Рассмотрим отношение R с составным ключом ABC и зависимостью В С. Докажем, что в отношении R\ получен¬ ном из R отбрасыванием реквизита С, столько же кортежей, что и в самом R. Допустим обратное. Тогда в R найдется стро¬ ка ab (а 6- А, b £ В), которой в R соответствуют по крайней мере две строки abct и аЬсг (clt с2 £ С), а это противоречит функциональной зависимости В-+С. Отсюда следует, что ключ ABC является избыточным. Следовательно, в отношении Q ПРЕДПРИЯТИЕ 7^ПРОДУКЦИЯ ПРОДУКЦИЯ т4* ПРЕДПРИЯТИЕ АДРЕС 7^ ПРОДУКЦИЯ ПРОДУКЦИЯ 7^ АДРЕС 90
Следующие три свойства функциональных зависимостей справедливы как для отдельных реквизитов, так и для групп реквизитов. Поэтому условимся, что реквизиты At (i = 1, ni), Bj (/ = U г) и Ск (k = 1, /;) принадлежат одному отношению R. Могут быть сформулированы следующие теоремы, принад¬ лежащие Армстронгу: 1) АХА 2 ... А т A i для i—1, т. 2) АХА2 ... Лт-> ... Вг тогда и только тогда, когда АгА 2 ... Ат->- Bj для любого / = 1, г. 3) Если ЛХЛ 2 ... А т —BXB2 ... Вг и BXB2 ... Вг-± СХС2 ... ... Ср, то Л1Л 2 ... Л m >- СiC2 ... Ср. В отношении Q можно выделить следующие зависимости, вытекающие из теорем Армстронга: ПРЕДПРИЯТИЕ, ПРОДУКЦИЯ ПРЕДПРИЯТИЕ ПРЕДПРИЯТИЕ, ПРОДУКЦИЯ -> ПРОДУКЦИЯ АДРЕС, ПРОДУКЦИЯ АДРЕС АДРЕС, ПРОДУКЦИЯ -* ПРОДУКЦИЯ ПРЕДПРИЯТИЕ, ПРОДУКЦИЯ -*■ АДРЕС, ВЫПУСК АДРЕС, ПРОДУКЦИЯ ПРЕДПРИЯТИЕ, ВЫПУСК Приведенные теоремы о функциональных зависимостях (список их может быть расширен) позволяют формализовать и автоматизировать процесс установления таких зависимостей. Совокупность функциональных зависимостей может быть изображена графически в виде диаграммы*. Вершинами диа¬ граммы функциональных зависимостей являются различные группы имен реквизитов. Дуга от вершины к вершине озна¬ чает наличие функциональной зависимости между соответст¬ вующими группами реквизитов. Зависимости, которые следуют из теорем Армстронга, па диаграмме, как правило, не показы¬ ваются. Диаграмма функциональных зависимостей отношения Q приведена на рис. 3.2. Вероятные ключи на любой диаграм¬ ме функциональных зависимостей соответствуют вершинам,в которые не заходит ни одна дуга. Многореквизитный ключ об¬ водится рамкой. Функциональные зависимости и вероятные ключи отноше¬ ний должны учитываться при выполнении операций реляци¬ онной алгебры. В качестве примера рассмотрим реализацию эквисоединения. Пусть отношение R (Л, В, С) с помощью опе¬ рации проекции разделено на Ri (Л, В) и R2 (Ву С). Таблицы значений отношений R и Т = Ril><]R2 совпадают только тог¬ * Понятие «диаграмма» аналогично понятию «граф взаимосвязи единиц информации» (см. гл. 2) 91
да, когда реквизит В является вероятным ключом в Ri или в R2. А, В и С можно рассматривать и как группы рек¬ визитов. Наличие в отношении достаточно большого числа функцио¬ нальных зависимостей обычно приводит к усложнению процес¬ сов корректировки. Например, исключение или замена одно¬ го значения реквизита, который функционально зависит от многих других реквизитов, требует исключения или замены большого количества строк отношения. Поэтому целесообраз¬ но все отношения трансформировать в отношения более про¬ стой структуры, у которых функциональные зависимости вза¬ имосвязаны простейшим способом. Такой процесс преобразо¬ вания отношений называется нормализацией, а отношения, для которых не допускаются те или иные варианты функциональ¬ ных зависимостей, называются нормальными фор¬ мами. Первая нормальная форма отношения (сокращенно 1НФ) определяется условием — среди значений реквизитов не долж¬ но быть кортежей. Ненормализованные СЕИ не соответст¬ вуют условиям 1НФ, а нормализованные СЕИ находятся в 1НФ. Если предполагается для обработки извлекать только часть реквизита (например, из даты только год), то отношение, содержащее такой реквизит, не находится в 1НФ. Условия, определяющие 1НФ отношения, не содержат ни¬ каких ограничений на возможные варианты функциональных зависимостей. Поэтому создание и корректировка значений в отношении, находящемся в 1НФ, часто бывают затруднены. В рассмотренное ранее отношение Q, в котором соблюдаются условия 1НФ, невозможно включить сведения о предприятии и его адресе, пока предприятие не выпустит какую-то продук¬ цию. Если предприятие, производящее единственный вид про¬ дукции, прекращает его выпуск, то необходимое при этом уда¬ ление кортежа разрушает сведения об адресе предприятия. Далее, одинаковое значение адреса встречается во многих кортежах, если предприятие выпускает большой ассортимент продукции. Любая замена адреса предприятия становится при этом очень трудоемкой операцией. Указанные факты объяс¬ няются функциональной зависимостью адреса от предприя¬ тия. Подобные функциональные зависимости называются н е- п о л н ы м и. Выделим в отношении R два различных подмножества рек¬ визитов F и £, связанных условием F Е. Если Е функцио¬ нально не зависит от любого подмножества Л, то функциональ¬ ная зависимость F £\ называется полной. Если существует 92
группа реквизитов G, такая, что F =э G и G->£, то функцио¬ нальная зависимость называется неполной. Отношение R находится во второй нормальной форме (2НФ), если оно находится в 1НФ и каждый неосновной рек¬ визит функционально полно зависит от каждого вероятного ключа. Если вероятный ключ однореквизитный, то условия 2НФ соблюдаются автоматически. Отсюда, например, следует, что бинарное отношение всегда находится в 2НФ. Для отношения в 2НФ не характерны аномалии про¬ цессов формирования и корректировки, которые были рас¬ смотрены выше на примере отношения Q. Поэтому отношение, не находящееся в 2НФ, целесообразно разделить на части, каждая из которых находится в 2НФ. Выделим в отношении R вероятный ключ F и неключе¬ вые реквизиты А, В, ..., Е. Допустим, что F zd G и G -> Е, следовательно, R находится в 1НФ, но не в 2НФ. С помощью операции проекции создадим два отношения Rx (G, Е) и R2 (F, Л, В, ...), каждое из которых находится в 2НФ. R2 содержит вероятный ключ и те неключевые реквизиты, которые не участвуют в неполной зависимости. Rx содержит неключе¬ вой реквизит, участвующий в неполной зависимости, и под¬ множество вероятного ключа, которое функционально опре¬ деляет этот реквизит. В рассматриваемом примере АДРЕС функционально за¬ висит от части первичного ключа — реквизита ПРЕДПРИЯ¬ ТИЕ. Поэтому отношение Q не удовлетворяет условиям 2НФ. Надо разделить его на две проекции Qx (ПРЕДПРИЯТИЕ, АДРЕС) и Q2 (ПРЕДПРИЯТИЕ, ПРОДУКЦИЯ, ВЫПУСК), каждая из которых находится в 2НФ. При необходимости мож¬ но создать исходное отношение Q с помощью эквисоединения Q — Qi £><4] Фг* Правильность эквисоединения подтверждается тем, что ПРЕДПРИЯТИЕ — вероятный ключ в Qx. В отношении, удовлетворяющем 2НФ, остаются транзи¬ тивные функциональные зависимости между реквизитами. Реквизит А £ U транзитивно зависит от множества реквизи¬ тов X cz Uу если существует группа реквизитов Y a U, та¬ кая, что Х-+ К, Y у» X, Y-+A. Наличие транзитивных зависимостей может создавать не¬ желательные эффекты при корректировке. Например, для ис¬ ключения какого-то значения реквизита А требуется удаление значительного числа строк. Назовем некоторый реквизит (возможно, набор реквизи¬ тов), от которого какой-то другой реквизит функционально 93
(полностью функционально) зависит, детерминантой. Тогда можно определить третью нормальную форму отношения (ЗНФ) условием — каждая детерминанта должна являться вероятным ключом. Если вероятный ключ единственный, то ЗНФ определяется как отношение в 2НФ, в котором каждый неключевой реквизит нетранзитивно зависит от первичного ключа. Сформулированное определение не запрещает транзи¬ тивной зависимости реквизитов, входящих в первичный ПРЕДПРИЯТИЕ; ПРОД УНЦИЯ 1 г ФИО- ДДРЕС ВЫПУСК НС • вк КС Рис. 3.2. Диаграмма функциональ¬ ных зависимостей отношения Q Рис. 3.3. Функциональные зави¬ симости отношения СПИСОК (НС, ФИО, Г, КС, ВК) ключ, от других вероятных ключей, что недопустимо соглас¬ но первому определению. Поэтому первое определение со¬ держи! более сильные условия и соответствующая форма отношения часто называется усиленной ЗНФ. Надо отметить, что бинарное отношение обязательно находится в ЗНФ, по¬ скольку для наличия транзитивной функциональной зависи¬ мости в отношении должны быть минимально три реквизита. Отношение в ЗНФ обладает простейшим набором функцио¬ нальных зависимостей — первичный ключ функционально оп¬ ределяет каждый неключевой реквизит и других функциональ¬ ных зависимостей в отношении нет. Отношение в ЗНФ не со¬ здает аномалий при корректировке, о которых упоминалось выше. Поэтому отношение, находящееся в 2НФ, но не в ЗНФ, целесообразно разделить (с помощью операции проекции) на части, не содержащие транзитивных зависимостей. Рассмотрим отношение СПИСОК (НС, ФИО, Г, КС, ВК), где НС — номер зачетной книжки студента, ФИО — его фа¬ милия, имя, отчество, Г — номер группы, КС — код специаль¬ ности, ВК — выпускающая кафедра. Функциональные за¬ висимости этого отношения приводятся на рис. 3.3. Обоснова¬ ние зависимостей очень простое: каждый студент имеет одну зачетную книжку, учится в одной группе, по одной специаль¬ ности, на одной выпускающей кафедре; студенты каждой груп¬ пы обучаются по одной специальности, на одной выпускающей кафедре. 94
Соответствие СПИСОК находится в 2НФ и содер¬ жит две транзитивные за¬ висимости НС-> Г ->- КС и НС->- Г —>- В К. Разде¬ лить СПИСОК на проек¬ ции, удовлетворяющие ЗНФ, можно несколькими способами. Некоторые из них показаны в табл. 3.3. Имеются две возмож¬ ности при ликвидации це¬ почки зависимостей А -> —>В С. Либо связь принадлежит первой проекции, а связь В С — второй проекции, либо А В относится к пер¬ вой проекции, а А С — ко второй. В последнем случае очень трудно следить за соблюдением соотношения В ->• С, так как реквизиты В и С принадлежат разным отношениям. Поэтому практически ре¬ комендуется первый способ. Нежелательным с этой точки зрения является вариант № 4 (табл. 3.3). Если известна диаграмма функциональных зависимостей отношения, то существует алгоритм получения производных отношений в ЗНФ. На диаграмме выделим вероятные? ключи (вершины, в которые не заходит ни одна дуга,». Каждый вероят¬ ный ключ вместе с реквизитами, которые непосредственно функ¬ ционально зависят от него, образуют отношение в ЗНФ. За¬ тем из диаграммы функциональных зависимостей исключают¬ ся реквизиты, вошедшие в указанные отношения при условии, что от них не зависят функционально оставшиеся реквизиты. В полученной диаграмме снова найдутся вершины, в которые не заходит ни одна дуга, и процесс выделения отношений про¬ должается до исчерпания всех реквизитов. Рассмотрим пример выполнения алгоритма. На рис. 3.4 приведена диаграмма функциональных зависимостей отноше¬ ния с реквизитами СЛУЖ — служащий, ДОЛЖ — долж¬ ность; ОКЛАД, ДАТА изменения должности и/или оклада; ТЕМА, по которой служащий работает в отделе НИИ; ОТДЕЛ, НИИ, ФИН — объем финансирования работ по теме. Зависи¬ мость (СЛУЖ, ДАТА) ->- СЛУЖ и все транзитивные зависи¬ мости следуют из теорем Армстронга. Транзитивные зависи¬ мости из диаграммы удалены. В начальном положении вероят- Т а б л и ц а 3.3 Номер варианта Набор проекции 1 С1 (НС, ФИО, Г) С2 (НС, ВК) СЗ (КС, ВК) С4 (Г, ВК) С5 (НС, КС) 2 С! (НС, ФИО) С2 (НС, Г) СЗ (Г, КС, ВК) 3 С1 (НС, ФИО, Г) С2 (Г, КС, ВК) 4 С1 (НС, ФИО, КС) С2 (Г, КС. ВК) 95
долж НИИ СЛУЖ ДАТА СЛУЖ ОКЛАД ОТДЕЛ ТЕМА ► ФИН Рис. 3.4. Диаграмма функциональных зависимостей отношения RT ным ключом является (СЛУЖ, ДАТА), что позволяет выделить отношение в ЗНФ R1 (СЛУЖ, ДАТА, ДОЛЖ, ОКЛАД) Затем вероятным ключом становится СЛУЖ, что соответст¬ вует отношению R2 (СЛУЖ, ТЕМА) Следующий вероятный ключ — ТЕМА и следующее отношение в ЗНФ И наконец, R3 (ТЕМА, ФИН, ОТДЕЛ) Я4 (ОТДЕЛ, НИИ) Отношение, удовлетворяющее ЗНФ, может содержать еще одно, нежелательное с точки зрения корректировки, свойст¬ во, а именно многозначную зависимость реквизитов. Введем определение такой зависимости. Выделим в отношении R три реквизита X, У, Z. В R име¬ ется многозначная зависимость между X и У (обозначается X -5—>- У), если при наличии в R двух строк со значениями (х19 уи z3) и (ал, уъ z2) обязательно содержатся строки со значения¬ ми (*1, Уи Z2) и (ад, уъ 2j). Здесь xL £ А, уъ у2 £ У, zlf z2 £ Z. При корректировке отношения, содержащего многозначно зависимые реквизиты, изменение значения одного из таких реквизитов приводит к корректировке большого числа корте¬ жей. Поэтому целесообразно иметь дело с отношениями, не содержащими многозначно зависимых реквизитов. Это усло¬ вие фиксируется в определении четвертой нормальной формы (4НФ) отношения. Отношение находится в 4НФ, если при наличии много¬ значной зависимости XУ либо XV содержит все рекви- 96
Л6 Рис. 3.5. Графическая интерпретация отношения R зиты R либо вероятный ключ R содержится в X. Приведе¬ ние отношения R(X, У, Z) к 4НФ (если оно не обладает этим свойством) сводится к его разделению на две проекции /?1 (X, У) и R2(X, Z). На рис. 3.5 и табл. 3.4 представлено отношение/? с реквизитами ЦЕХ, ПРОДУКЦИЯ, СЫРЬЕ, не удовлетворяющее 4НФ из-за многозначной зависимости реквизитов ЦЕХ и ПРОДУКЦИЯ, Таблица 3.4 R ЦЕХ | ПРОДУКЦИЯ I СЫРЬЕ С1 П1 Т1 С1 П2 Т1 С1 ПЗ Т1 С1 П4 Т1 Ci П1 Т2 Cl П2 Т2 CI ПЗ Т2 Cl 114 Т2 C2 П5 ТЗ C2 Г16 ТЗ C2 . П5 Т4 C2 П6 Т4 Проекции R1 и R2 отношения R со свойствами 4НФ со¬ держат с л еду ющ не з н а ч е н и я: 4 Зак. 1818 97
RI ЦЕХ | ПРОДУКЦИЯ С1 П1 С1 П2 С1 ПЗ С1 П4 С2 П5 С2 П6 R2 ЦЕХ | СЫРЬЕ С1 T1 С1 T2 С2 ТЗ С2 T4 Обратное преобразование сводится к выполнению эквисо¬ единения по атрибуту ЦЕХ. При нормализации отношений происходит снижение их порядка. Этот процесс можно искусственно довести до логиче¬ ского конца и получить набор отношений с минимально воз¬ можным порядком — два. Соответствующая модель данных на¬ зывается бинарной реляционной моделью. Если исходное от¬ ношение в реляционной модели данных имеет однореквизит¬ ный первичный ключ (допустим, А) и структуру R (А, В, С, D...), то его бинарные проекции получаются по следующему просто¬ му правилу: R\ (А, В) R2 (Л, С) RS (А, D) Если первичный ключ исходного отношения состоит из не¬ скольких реквизитов,в отношение вводится дополнительный реквизит НОМЕР КОРТЕЖА, значения которого являются порядковыми номерами кортежей (строк) отношения. Значе¬ ния реквизита НОМЕР КОРТЕЖА находятся во взаимно¬ однозначном соответствии со строками отношения, поэтому он может стать первичным ключом отношения. Таким образом, произвольное отношение приводится к частному случаю с одно¬ реквизитным ключом, преобразование которого в набор би¬ нарных отношений уже известно. Возможны и другие вари¬ анты получения бинарных отношений из Парного, однако всегда должна обеспечиваться возможность восстановления исходного отношения по его бинарным проекциям с помощью операции эквисоединения. Имена бинарных отношений обыч¬ но формируются из пары имен реквизитов, входящих в отно¬ шение. 98
Рассмотрим пример преобразования произвольного отно¬ шения в набор бинарных отношений. Отношение РЕЙСЫ описывает морские порты и заходящие в них суда. Диаграмма функциональных зависимостей отношения РЕЙСЫ показана на рис. 3.6. КОД ПОРТА ПРИПИСКИ—^ПАРОХОДСТВО t I КОД СУДНА, КОД ПОРТА НАЗНАЧЕНИЯ 1 ВОДОИЗМЕЩЕНИЕ R1 (КОД СУДНА, КОД ПОРТА НАЗНАЧЕНИЯ) R2 (КОД СУДНА, КОД ПОРТА ПРИПИСКИ) R3 (КОД ПОРТА ПРИПИСКИ, ПАРОХОДСТВО) Я 4 (КОД ПОРТА НАЗНАЧЕНИЯ, ПАРОХОДСТВО) R5 (КОД СУДНА, ВОДОИЗМЕЩЕНИЕ) Рис. 3.6. Переход от диаграммы функциональных зави¬ симостей к бинарным отношениям Значения в бинарной реляционной модели данных груп¬ пируются в триплеты. Триплетом называется набор из имени неключевого реквизита,значения первичного ключа из како¬ го-то кортежа и значения неключевого реквизита из того же кортежа. Например, ВОДОИЗМЕЩЕНИЕ, Лисичанск, 35000 ПАРОХОДСТВО, Баку, Каспийское Обозначим элементы триплета следующим образом: А —■ имя неключевого реквизита, V — одно из его значений, Е — соответствующее значение первичного ключа. Сам триплет по¬ лучит выражение A (E)QV. Через 0 обозначено одно из отно¬ шений = , Ф, <С, >, Один или два компонента триплета в запросах пользователей могут объявляться неизвестными (обозначаются знаком «?»), и поэтому возможны шесть типов запросов (табл. 3.5). Более сложные запросы могут быть образованы за счет логических связок между запросами ти¬ пов 1, 2, 3. Для обработки бинарных отношений используются все операторы реляционной алгебры. К преимуществам бинарной реляционной модели следует отнести хорошую обозримость модели из-за простоты бинарных отношений и соответствие всех отношений ЗНФ и даже 4НФ. Недостаток этой модели заключается в дублировании значе¬ ний первичных ключей, следовательно, бинарная модель дан- 4* 99
Таблица 3.5 Формаль¬ ная запись Действие при обработке запроса Пример А{Е)=? A(?)QV ?(E)QV ?(£) = ? Л(?)=? ?(?>ev Найти значение реквизита Найти объекты с заданным значе¬ нием реквизита Найти все имена реквизитов, име¬ ющие данное значение для кон¬ кретного объекта Найти всю информацию о данном объекте Перечислить значения данного реквизита для каждого объекта Перечислить все реквизиты раз¬ личных объектов, имеющие дан¬ ное значение Каково водоизмеще¬ ние судна «Лиси¬ чанск» Какие суда . имеют водоизмещение выше 10 ООО тонн Какие сведения изве¬ стны о судне «Лиси¬ чанск» Вывести данные о водоизмещении всех судов ных занимает больший объем памяти, чем обычная реляцион¬ ная модель. 3.3. СЕТЕВАЯ И ИЕРАРХИЧЕСКАЯ МОДЕЛИ ДАННЫХ Сетевая модель данных устанавливает два типа взаимо¬ связей: между реквизитами, входящими в СЕИ, и между СЕИ различной структуры. В последнем случае реквизиты нормализованных СЕИ S.(l : ns). (Л, В, ..., В), Г.(1 : /г,), (В, С, ..., /), ..., Q.( 1 : п2). (L, М, ..., Р) служат для создания отношения В.(Л, В, ..., В, В, С, ..., /, ..., В, М, ..., В, X, К, ...). В отношении R значения реквизитов X, Y, ... определяют¬ ся всей совокупностью СЕИ 5, В, ..., Q и не имеют смысла для этих СЕИ, рассматриваемых по отдельности. Определенные таким образом реквизиты называются данными пересечения. Поскольку СЕИ S, В, ...,Q уже хранятся в базе данных и удов¬ летворяют требованиям 1НФ, список реквизитов в R можно сократить, оставив в R первичные ключи каждой СЕИ (Ks> Кт, Kq) и данные пересечения. В специальной литера¬ туре по сетевым моделям данных СЕИ называются основ¬ ными типами данных, а отношения, определен¬ 100
ные на нескольких именах СЕИ, — зависимыми т и-, п а м и данных. В качестве примера рассмотрим СЕИ с данными о постав¬ щиках ПОСТ (1 : пД (КП, АП), с данными о покупателях ПОК.(1 : л2).(КПК, АПК) и о товарах ТОВ.(1 : л3).(КТ, ТУ). В примере используются следующие сокращения: ПОСТ — поставщик, КП — код поставщика, АП — адрес поставщика, ПОК — покупатель, КПК — код покупателя, АПК — адрес покупателя, ТОВ — товар, КТ — код товара, ТУ — технические условия или ГОСТ, регламентирующие качест¬ во товара, пъ п2, п3 — размерности соответствующих СЕИ. Реквизиты КП, КПК, КТ являются первичными ключами в СЕИ ПОСТ, ПОК и ТОВ, поэтому зависимый тип данных — отношение ППТ — в нашем примере может быть определен в виде ППТ (КП, КПК, КТ, КОЛ), где КОЛ (данные пересечения) — количество товара, постав¬ ляемого данным поставщиком какому-то покупателю. Основные и зависимые типы данных называются взаимо¬ связанными, если в их структуре содержатся одинаковые име¬ на реквизитов, а соответствующие множества значений рек¬ визитов пересекаются. В сетевой модели данных формируется ряд требований к допустимым в модели взаимосвязанным ти¬ пам данных: каждая взаимосвязь охватывает два типа данных, причем один из них — основной, а другой — зависимый; один и тот же тип данных не может быть одновременно и основным, и зависимым; основной тип данных может не иметь связей с зависимыми типами; зависимый тип данных должен иметь связь хотя бы с одним основным типом данных. Графическое изображение взаимосвязи между типами дан¬ ных в сетевой модели называется диаграммой вза¬ имосвязей. На диаграмме основные типы данных показы¬ ваются прямоугольниками, зависимые типы—кругами и вза¬ имосвязи — ребрами. Пример диаграммы взаимосвязей, вклю¬ чающей ранее введенные типы данных ПОСТ, ПОК, ТОВ и ППТ, приводится на рис. 3.7. На диаграмме дополнительно указаны СЕИ СКЛАД и отношение ПС, определенное на СЕИ ПОК и СКЛАД. Описанная выше общая схема формирования отношений между СЕИ в сетевой модели данных допускает ряд частных 101
случаев. Отношение между N > 2 различными СЕИ можно трансформировать в отношении между двумя СЕИ, после чего все отношения в сетевой модели данных становятся бинарны¬ ми. Алгоритм преобразования рассмотрим на примере отноше¬ ния ППТ, определенного на трех СЕИ: ПОСТ, ПОК, ТОВ. Введем дополнительную СЕИ 5 со структурой 5.(ПОСТ, ТОВ) и нормализуем ее. Каждое значение 5 представляет собой строку, в которой указан некоторый поставщик й какой-то поставляемый им товар. Теперь ППТ описывает связь между Рис. 3.7. Диаграмма взаимосвязей основных и зависимых типов данных двумя СЕИ: S и ПОК. Указанный переход к бинарным отно¬ шениям не дает возможности, например, извлекать информа¬ цию о товарах, не зная соответствующих поставщиков. Кроме того, структура дополнительной СЕИ определена неоднознач¬ но (допустимы варианты 5.(ПОСТ, ПОК) и S.(nOK, ТОВ)), и выбор варианта пока не формализован. Наличие в сетевой модели данных только бинарных отно¬ шений позволяет хранить и обрабатывать отношения одними и темп же методами. По имени бинарного отношения и имени одной из СЕИ однозначно устанавливается имя второй СЕИ, что упрощает алгоритмы обработки поисковых запросов. Сле¬ дует также отметить, что бинарные отношения между СЕИ встречаются наиболее часто, а отношения между N > 4 раз¬ личными СЕИ практически не встречаются. Рассмотрим важный частный случай бинарного отношения между СЕИ, называемый веерным отношением, или набором. Бинарное отношение между СЕИ S и СЕИ R называется ве¬ ерным, если каждому значению СЕИ R ставится в соответ¬ ствие единственное значение СЕИ S.CEH 5 в веерном отно¬ шении называется владельцем, а СЕИ R — членом отноше¬ ния (набора). Бинарное отношение очень редко обладает свойством веерного отношения. В качестве примера рассмотрим раз¬ биение множества объектов на непересекающиеся классы. Информацию об объектах содержит СЕИ — член набора, ин¬ 102
формацию о классах объектов — СЕИ — владелец набора. Иногда при формировании базы данных вносятся упрощаю¬ щие предположения, равносильные определению веерного со¬ ответствия, которые справедливы для узкого круга решаемых задач, а в общем случае не верны. Например, если в учрежде¬ нии запрещена работа по совместительству, то СЕИ /?.(ФИО, ДОЛЖНОСТЬ) и 5.(КОД ОТДЕЛА, ФИО РУКОВОДИТЕ¬ ЛЯ) связаны веерным отношением W, в котором S — владе¬ лец, a R — член отношения. Структура веерного отношения описывается в следующем виде: Симя отношения^ (Симя СЕИ-владельца> — <имя СЕИ-члена>). Отношение из предыдущего примера имеет описание структуры W (S — R). Компактное представление веерного отношения осущест¬ вляется путем формирования новых информационных элемен¬ тов, называемых веерами. Введем множество значений СЕИ- владельца А — {аь а2, ..., аи} и множество значений СЕИ- члена В = {/;п, b12t • ••» blh b2l, ..., b2s, ..., bnU ..., Зна¬ чения cii, bij могут быть заменены их сокращенными кодами (например, значениями ключей). Веер представляет собой множество вида {а-(, Ьц, bi2, ..., biri}, где at £ Л, bLJ £ В и СЕИ ciL вступает в отношение со всеми bij, указанными вслед за нею. Последовательность вее¬ ров, относящихся к одной и той же паре СЕИ, образует веерное отношение. Веерное отношение может уточняться путем введения свойств «обязательный», «необязательный», «автоматический», «неавтоматический». Свойство «обязательный» означает, что, после того как значение СЕИ включено в отношение, оно ста¬ новится его постоянным членом. Его можно обновлять, но нельзя удалять из отношения. Свойство «необязательный» оз¬ начает, что любое значение СЕИ из отношении можно удалять. Свойство «автоматический» означает, что при появлении нового значения СЕИ-владельца, оно сразу же ставится в па¬ ру с некоторым значением СЕИ-члена и образует новый эле¬ мент веерного отношения. Несоблюдение этого правила харак¬ терно для свойства «неавтоматический». Диаграмма сетевой модели данных, содержащей только бинарные отношения между СЕИ, значительно отличается от ранее рассмотренной диаграммы. Данные пересечения на ней специально не показываются. Факт установления отношения между двумя СЕИ изображается стрелкой, которая соединяет прямоугольники с именами СЕИ. В общем случае стрелка яв¬ ляется двунаправленной, а если отношение—веерное, то стрелка ориентирована от СЕИ-владел ьца к СЕИ-члену. 103
Рис. 3.8. Диаграмма взаимосвязей для бинарных отнсг шений между СЕИ Если введенную диаграмму рассматривать как граф, то он будет обладать свойствами сети. Поэтому соответствующая модель данных называется сетевой. Пример диаграммы сетевой модели данных приводится на рис. 3.8. Бинарные отношения определены на СЕИ ПОСТАВ¬ ЩИК, ИЗДЕЛИЕ, ДОГОВОР, ПАРТИЯ ТОВАРА. При создании сетевой модели сделаны допущения — один дого¬ вор регламентирует действия одного поставщика и одна пар¬ тия товара формируется на основе одного договора (в общем случае эти допущения могут нарушаться). Поэтому отноше¬ ния между СЕИ ПОСТАВЩИК и ДОГОВОР, между СЕИ ДОГОВОР и ПАРТИЯ ТОВАРА в нашем частном случае являются веерными. Между СЕИ ПОСТАВЩИК и ПАР¬ ТИЯ ТОВАРА поддерживаются два отношения С — плани¬ руемые поставки и Д — фактические поставки. Отноше¬ ния С и Д — веерные в силу свойства транзитивности веер¬ ных отношений. Существенным утверждением является возможность пре¬ образования произвольного бинарного отношения на СЕИ R и 5 в два веерных отношения. Один элемент отношения ста¬ вит в соответствие друг другу одно значение СЕИ R и одно значение СЕИ S. Представим бинарное отношение в виде нор¬ мализованной СЕИ RS со структурой RS {R>S). Тогда каждое значение RS связано с единственным значением R и с единст¬ венным значением 5. Первое веерное отношение устанавлива¬ ется между R и RSy а второе — между S и RS. RS является членом в обоих веерных отношениях. Такое преобразование иллюстрирует рис. 3.9. Каждое ребро изображает отдельный элемент отношения, образующие его значения СЕИ показаны на концах ребра. Соответствующие веерные множества имеют вид: {(я3, афо), (а2, афъ аф2), (а3, аф^ аф3, афф, (я4, аф2У аФ$)у (#5> аьЬ*)}' 104
{(bi, аф1У a3b3), (bo, аф2, афг, а4Ь2), (b3, a3b3, a4b3), (b4, a3b4, a5b4)}. a) a1 a2 °3 Os 8j 62 8% 6) a, a2 03 °4 a5 Qj B2 Cl2 61 Q282 O.361 Q363 O364 Q/fB2 0^63 Q5B4 6) Bj 62 63 64 Л A\ A A o26i Q361 0^2 o262 0^62 O363 Q463 Q3B4 Q564 Рис. 3.9. Преобразование бинарного отношения в два веерных Рассмотрим отношение ПТИ, связывающее СЕИ ПАРТИЯ ТОВАРА и ИЗДЕЛИЕ на сетевой модели (см. рис. 3.8). Два веерных отношения, тождественных исходному отношению ПТИ, имеют структуру (ПАРТИЯ ТОВАРА — ПТИ), W2 (ИЗДЕЛИЕ — ПТИ). Введенное преобразование дает возможность все отноше¬ ния в сетевой модели данных выразить в виде веерных отно¬ шений. Отрицательным следствием в этом случае является воз¬ никновение дублирующих значений. Преимущества перехода от произвольных отношений к веерным состоят в следующем. Элементы одного веера не совпадают ни с одним элементом в других веерах, принадлежащих тому же веерному отноше¬ нию, и это позволяет при обработке запросов извлекать из базы данных минимальное число вееров. Данные пересечения в веерном отношении можно просто включить в структуру СЕИ-члена, а не создавать из них самостоятельные информа¬ ционные единицы. И наконец, значения СЕИ-членов в пре¬ 105
делах одного веера можно упорядочить по отдельным рекви¬ зитам и это позволяет ускорить выборку значений СЕИ-чле- нов из веера. Основными операциями над веерными отношениями (на¬ борами) в сетевой базе данных являются IM (образ) и INIM (пересечение образов). Для обработки СЕИ служат SECT (сечение), IN (пересечение), UN (объединение), SUB (вычи¬ тание). Формат оператора IM: Mj --- IM <имя мабора> (<список значений реквизитов» ...) Указанные в IM значения реквизитов должны принадле¬ жать одной и той же СЕИ и однозначно определять одно зна¬ чение этой СЕИ. Знак ... в формате оператора IM, означает, что таким же способом может быть определено произвольное чис¬ ло значений СЕИ. Оператор IM вычисляет образ каждого зна¬ чения СЕИ, т. е. множество значений СЕИ,поставленных в со¬ ответствие данному значению СЕИ, и производит объединение полученных образов. Результат получает имя М,. Формат оператора INIM совпадает с ранее определенным форматом оператора IM. Оператор INIM вычисляет образы значений СЕИ, указанных в описании оператора, и произво¬ дит пересечение полученных образов. Результату вычислений дается имя Mj. Если данная СЕИ образована сочетанием нескольких СЕИ (как, например, ПТИ в наборах W1 и W2), то оператор SECT позволяет извлечь какой-то один компонент. Формат операто¬ ра SECT: М2 = SECT <имя СЕИ> «имя СЕИ» Первая из указанных СЕИ содержит в своей структуре имя СЕИ, приведенное в скобках, значения последней извле¬ каются и получают имя М2. Рассмотрим процесс определения партий товара, в которые входят изделия И4 и И9 (неважно, в какую именно). Для это¬ го необходимо выполнить операторы Mj = IM W2 (114, \ 19) Mo = SECT Ml (ПАРТИЯ ТОВАРА) В Mj получаются значения СЕИ ПТИ.(ПАРТИЯ ТОВАРА, ИЗДЕЛИЕ), в которых код изделия либо И4, либо И9. Опе¬ ратор SECT извлекает из Mj сведения только по партиям то¬ вара. Действие операторов IN, UN, SUB рассмотрено в 3.1. Фор¬ маты этих операторов следующие: 106
М3 = IN <нмя СЕИ>, <имя СЕИ> М3 = UN <имя СЕИ>, <С им я СЕИ> М3 = SUB < имя СЕИ>, <имя СЕИ> СЕИ, входящие в описание одного и того же оператора, должны совпадать по структуре (за исключением размерности). Результат выполнения операторов IN, UN, SUB обозначен через М 3. Если на наборах определена упорядоченность СЕИ-чле- нов, то над СЕИ дополнительно необходимы такие операции: MAX, MIN — выделяют все СЕИ заданного веера с клю¬ чом больше (меньше), чем у заданной СЕИ; FIRST, LAST — определяют для данного веера СЕИ с наибольшим (наименьшим) ключом. Формат оператора МАХ: M.j -■ МАХ <имя набора> (<зиачепие СЕИ-владельца>, <зпачспие СЕИ-члеиа>) В М4 после выполнения оператора МАХ появятся значения СЕИ-членов из веера, определяемого значением СЕИ-вла- дельца, с ключом, большим, чем у СЕИ-члена, указанного в описании оператора. Форматы операторов MIN и МАХ сов¬ падают. Формат оператора FIRST (или LAST): М5 = FIRST < имя набора^ (<значение СЕИ-владельца>) В МГ) после выполнения оператора FIRST появится зна¬ чение СЕИ-члена с наибольшим ключом в веере, определяе¬ мом значением СЕИ-владельца. Список операторов для сетевой модели данных может быть расширен введением операторов, обрабатывающих отдельные реквизиты, операторов корректировки и библиотечных опера¬ торов. Веерное отношение, представленное в виде совокупности вееров, может быть легко преобразовано в отношение со свойст¬ вами 1НФ. Для этого из каждого веера образуем пары <Саг, bii>, <аи 6i2>, ..., <af, bu>, ..., <Zah bin>. Объединение таких пар, полученных из всех вееров веерного отношения, позволяет создать отношение, удовлетворяющее 1Е1Ф, в струк¬ туру которого включены все реквизиты СЕИ-владельца и все реквизиты СЕИ-члена. Сетевая модель данных является универсальной. Сетевая модель предлагает самый естественный способ отображения информационных представлений пользователей. Также надо отметить, что системы управления сетевой базой данных пока являются более эффективными, поскольку обеспечивают 107
меньшее время на обработку запросов, чем соответствующие системы для реляционной базы данных. Принципиальное достоинство сетевой модели данных — наличие аппарата для определения и обработки отношений между различными СЕИ. Такая возможность может быть ре¬ ализована также и в рамках реляционной модели данных, но с менее эффективными методами представления и обработки информации. Сетевая модель данных допускает достаточно эффективный частный ' случай — иерархическую модель. Иерархический подход во многих случаях обеспечивает естественный способ моделирования предметной области. Он особенно эффективен, если структура предметной области хо¬ рошо соответствует условиям задачи классификации. Элементарными компонентами иерархической модели дан¬ ных являются СЕИ, которые в специальной литературе (при¬ менительно к иерархической модели) часто называются с е г- м ента м и. Составные единицы информации могут связы¬ ваться между собой с помощью веерных отношений. СЕИ- владелец в этом случае чаще называется исходной СЕИ, а СЕИ-член — порожденной СЕИ. Если для двух СЕИ S0 и Sn найдутся такие СЕИ Sx, So, ..., и веерные отношения tt7(), Wu Wn-x со структурой Г0 (S0— SO, W1 (S, — S2), ..., U7?,_i (S;i_x — S„), то говорят, что существует путь от S0 к S„. В иерархической модели данных требуется, чтобы путь между любыми двумя СЕИ, если он существует, был единствен¬ ным. Если по аналогии с диаграммой сетевой модели данных интерпретировать имена СЕИ как вершины графа, а веерные отношения — как дуги графа, то иерархической модели дан¬ ных будет соответствовать граф типа дерева. СЕИ, соответст¬ вующая корню такого графа, называется корневой СЕИ. Одно значение корневой СЕИ вместе со всеми значениями других СЕИ, которые достигаются от него по иерархической цепочке согласно веерным отношениям, образуют запись ие¬ рархической базы данных. Число различных записей иерар¬ хической базы данных равно числу различных значений кор¬ невой СЕИ. Набор записей иерархической базы данных, по¬ рожденных одной корневой СЕИ, образует одну иерархиче¬ скую базу данных. Допускается существование в ЭИС многих иерархических баз данных, в том числе пересекающихся. Две базы данных БДХ и БД2 называются пересекающимися, если в БДХ имеет¬ ся СЕИ S, а в БД2 — СЕИ 7\ совпадающие по структуре и пересекающиеся по значениям. Пересекающиеся значения СЕИ хранятся в одной из баз данных (например, в БДХ), а в БД2 108
БД1 БД2 Рис. 3.10. Диаграмма взаимосвязей для иерархических баз данных БД! и БД2 их место занимают адреса хранения соответствующих значений в БДХ. Рассмотрим пример. Данные о движении грузов сгруппи¬ рованы в две пересекающиеся базы данных. Первая состоит из СЕИ СТАНЦИЯ НАЗНАЧЕНИЯ, СОСТАВ и ГРУЗ, СЕИ второй базы данных — СОСТАВ и СТАНЦИЯ ОТПРАВЛЕ¬ НИЯ. Пересекающиеся значения СЕИ СОСТАВ хранятся в БДХ. Диаграмма взаимосвязей БДХ и БД2 приводится на рис. 3.10. Правила построения диаграммы те же, что и для сетевой модели данных. Соединение СЕИ СОСТАВ из разных баз данных показывает, что они совпадают по структуре и пересекаются по значениям. Пример одного значения записи БДХ и связанных с ним значений записей БД, иллюстрирует рис. 3.11. СЕИ СТАНЦИЯ НАЗНАЧЕНИЯ и СТАНЦИЯ ОТ¬ ПРАВЛЕНИЯ содержат только название станции, СЕИ СО¬ СТАВ — реквизиты КОД СОСТАВА и ДАТА ПРИБЫТИЯ, СЕИ ГРУЗ - реквизиты НАЗВАНИЕ ГРУЗА и СПЕЦИФИ¬ КАЦИЯ ГРУЗА. Рассмотрим трансформацию иерархической базы данных в множество отношений. На диаграмме иерархической базы данных выделим все пути от корневой СЕИ до таких порож¬ денных СЕИ, которые не являются исходными ни в одном ве¬ ерном отношении. Для i-го пути зафиксируем кортеж Гiy содержащий все СЕИ, входящие в этот путь. Если два кортежа Гь и Гj имеют общие СЕИ, то любой из них сокращается со стороны корневой СЕИ так, чтобы Гг* и Г j имели ровно одну общую СЕИ. Каждый кортеж Гг* порождает отношение, в структуре которого перечисляются все реквизиты из всех СЕИ, входящих в Г*. 109
Харь нов " 092 12. 01. 82 Контейнер 018634 ДБпрп Цемент 40 т Дбтомобиль ЗИЛ 136 4 шт. Моснва 412 23. 04.82 Уголь 600 т Донецк 738 19. Q4.82 1 лес 200 нуб. м Вологда Гравий 120 т Значение Значение записи БД1 записи БД2 Рис. 3.11. Взаимосвязь значении записей в базах данных БД] и БД2 На диаграмме БДХ, например, всего один путь, поэтому получаем одно отношение R со структурой R (AI, А2, АЗ, А4, А5), где используются следующие имена реквизитов: А1 — назва¬ ние станции назначения, А2 — код состава, АЗ — дата при¬ бытия, А4 — название груза, А5 — спецификация груза. Приведем фрагмент таблицы значений отношения /?, по¬ лучаемый из значения записи БДХ (см. рис. 3.11): R А1 А2 АЗ А4 | А 5 Харьков 092 21.01.82 Контейнер 018634 Харьков 092 12.01.82 Цемент 40 т Харьков 092 12.01.82 Автомобиль ЗИЛ/Зб 4 шт Харьков 412 23.09.82 Уголь 600 т Харьков 738 19.04.82 Лес 200 куб. м Харьков 738 19.04.82 Гравий 120 т 110
В иерархической базе данных операциями выборки являют¬ ся следующие: ПОЛУЧИТЬ УНИКАЛЬНЫЙ, ПОЛУЧИТЬ СЛЕДУЮЩИЙ, ПОЛУЧИТЬ СЛЕДУЮЩИЙ ВНУТРИ. Оператор ПОЛУЧИТЬ УНИКАЛЬНЫЙ выделяет пер¬ вое из значений некоторой СЕИ Sh, удовлетворяющее сформу¬ лированным в описании оператора условиям. Каждое условие относится к одной из СЕИ, лежащих на пути между корневой СЕИ и Sh. В качестве примера рассмотрим путь Sly S2, SJn где — корневая СЕИ. Условие имеет вид (<дшя реквизита СЕИ>> 0 <значение реквизита СЕИ>), где 0 — один из знаков отношения: =, >>, <С, Формат опе¬ ратора ПОЛУЧИТЬ УНИКАЛЬНЫЙ': ПОЛУЧИТЬ УНИКАЛЬНЫЙ <имя СЕИ Si > < условие> <имя СЕИ S2> <условие> Сим я СЕИ SK > <условие> Запрос к рассмотренной выше базе данных о перевозках грузов «Получить первое значение СЕИ СОСТАВ для соста¬ ва с номером 092» представляется в следующем виде: ПОЛУЧИТЬ УНИКАЛЬНЫЙ СТАНЦИЯ НАЗНАЧЕНИЯ СОСТАВ (КОД СОСТАВА—'092') Поскольку конкретное название станции назначения не оговаривается, оператор будет последовательно извлекать все записи иерархической базы данных, начиная с первой.В каждой записи будут проверяться значения реквизита КОД СОСТАВА и СЕИ СОСТАВ и при первом проявлении значе ния 092 в качестве ответа выдается значение всей СЕИ. 092 ЧЧ.ММ.ГГ, где ЧЧ.ММ.ГГ — значение даты прибытия. Оператор ПОЛУЧИТЬ СЛЕДУЮЩИЙ предназначен для выборки значения СЕИ 5hyкоторое непосредственно следует в записи иерархической базы данных за значением СЕИ Sky сформированным ранее оператором ПОЛУЧИТЬ УНИКАЛЬ¬ НЫЙ. Формат оператора ПОЛУЧИТЬ СЛЕДУЮЩИЙ име¬ ет вид: ПОЛУЧИТЬ СЛЕДУЮЩИЙ <имя СЕИ SH > <условие> Оператор ПОЛУЧИТЬ СЛЕДУЮЩИЙ может быть исполь¬ зован в циклических процессах для выборки последователь¬ ности значений S}{, В этом случае оператор сопровождается меткой и используется выражение ЕСЛИ КОНЕЦ СЕИ -■= ’НЕТ' ТО НА <метка> Для удовлетворения запроса «Получить сведения о всех действиях состава 092» необходимо выполнить следующую последовательность операторов: 111
ПОЛУЧИТЬ УНИКАЛЬНЫЙ СТАНЦИЯ НАЗНАЧЕНИЯ СОСТАВ (КОД СОСТАВА='092') М: ПОЛУЧИТЬ СЛЕДУЮЩИЙ СОСТАВ (КОД СОСТАВА = = '092') ЕСЛИ КОНЕЦ СЕИ = 'НЕТ' ТО НА М Список всех станций назначения может быть получен груп¬ пой операторов: ПОЛУЧИТЬ УНИКАЛЬНЫЙ СТАНЦИЯ НАЗНАЧЕНИЯ М: ПОЛУЧИТЬ СЛЕДУЮЩИЙ ЕСЛИ КОНЕЦ СЕИ-= 'НЕТ' ТО НА М Оператор ПОЛУЧИТЬ СЛЕДУЮЩИЙ. ВНУТРИ выводит последовательность значений порожденной СЕИ для одного из значений СЕИ Sk, которое уже- выработано операторами ПОЛУЧИТЬ УНИКАЛЬНЫЙ и ПОЛУЧИТЬ СЛЕДУЮ¬ ЩИЙ. Он обычно используется в циклических процессах. Формат оператора: ПОЛУЧИТЬ СЛЕДУЮЩИЙ ВНУТРИ имя порожденной СЕИ Чтобы выбрать сведения о грузах, доставленных составом 092 в Харьков, требуются следующие действия: ПОЛУЧИТЬ УНИКАЛЬНЫЙ СТАНЦИЯ НАЗНАЧЕНИЯ СТАНЦИЯ = 'ХАРЬКОВ' СОСТАВ (КОД СОСТАВА = '092') М: ПОЛУЧИТЬ СЛЕДУЮЩИЙ ВНУТРИ ГРУЗ ЕСЛИ КОНЕЦ СЕИ = 'НЕТ' ТО НА М Преимущество иерархических баз данных заключается в высоком быстродействии алгоритмов выборки данных для рас¬ смотренных выше операторов выборки,которое обеспечивается расположением необходимых значений СЕИ в одной и той же записи иерархической базы данных. К недостаткам следует отнести большую разницу во вре¬ мени реализации симметричных запросов. Для двух СЕИ St и Sj9 связанных веерным отношением, пара симметричных за¬ просов формулируется в виде «Получить все значения СЕИ Si, соответствующие одному значению Sj» и «Получить все значения СЕИ Sj, соответствующие одному значению S*». В рассматриваемом примере это пара симметричных запро¬ сов — «Получить номера всех составов, разгружающихся в Харькове» и «Получить все станции, на которых разгружает¬ ся состав 092». Второй запрос обрабатывается гораздо медлен¬ нее, поскольку СЕЙ СОСТАВ является порожденной по отно¬ шению к СЕИ СТАНЦИЯ НАЗНАЧЕНИЯ. Проблема, очевид¬ но, усугубляется по мере роста числа уровней в иерархической базе данных. 112
Нежелательные свойства иерархической модели данных проявляются и при корректировке. Так, при включении в ба¬ зу данных кода состава, который пока еще не сделал ни одно¬ го рейса, придется включать еще и фиктивную станцию назна¬ чения как значение корневой СЕИ для этого состава. При за¬ мене каких-то значений внутри некорневых СЕИ необходимо произвести поиск во всех записях базы данных, так как нуж¬ ные для обновления данные могут встретиться несколько раз. МЕСТО tестьнек _ ОБОРУДОВАНИЕ I имеет^ ПРЕДПРИЯТИЕ <™ее1 РАБОЧИЕ ‘ "ожет -РАБОТА естьнек/ \естьнек - СЛУЖАЩИЕ ,жет ЗАВОД ФАБРИКА I ПРОСТАИВАТЬ есть ней BCTh w „ £77/7/07 " МАШИНОСТРОИТЕЛЬНЫЙ |естб РЕНТАБЕЛЬНЫЙ Рис. 3.12. Семантическая сеть для понятия ПРЕДПРИЯТИЕ На сетевом принципе моделирования основана модель семантических сетей, которая предназначена для отображения структуры понятий, сущности событий и действий. Ее отличи¬ тельная особенность — наличие фиксированного списка имен для всех связей между элементами данных. Основой для определения того или иного понятия являет¬ ся множество его отношений с другими понятиями. Обязатель¬ ными отношениями являются класс, к которому принадлежит данное понятие, свойства, выделяющие понятие из всех поня¬ тий этого класса, примеры данного понятия. Поскольку тер¬ мины, использованные в определении понятия, сами служат понятиями, то их определение организуется по той же схеме. В итоге связи понятий образуют структуру, в общем случае сетевую. Перечислим обязательные связи в семантической сети при установлении структуры понятий: связь «естьнек» (от слов «есть некоторый»). Направлена от частного понятия к более общему, и показывает принад¬ лежность элемента к классу;
связь «имеет». Описывает случай, когда свойством является наличие некоторого предмета или владение им; связь «есть». Относится к таким свойствам, которые имеют характер качества; связь «может». Она связывает понятие и действия, которые могут выполняться всеми объектами, образующими понятие. Фрагмент семантической сети для понятия ПРЕДПРИЯ¬ ТИЕ приведен на рис. 3.12. Для предприятия устанавливаются 25. 03.82 ДИРЕКТОР Яг-"?-(~остано5ил ) заменить } место У \ объект | объект „САЛЮТ” ЦЕХ №4 ОБОРУДОВАНИЕ естьнен завод Рис. 3.13. Семантическая сеть для предложения «Директор завода «Салют» остановил 25 марта 1982 г. цех № 4, чтобы заменить оборудование» (пример условным) более общие понятия (в данном случае — ОБЪЕКТ) и произ¬ водные понятия (ЗАВОД, ФАБРИКА), а также конкретный завод — «САЛЮТ». Среди ресурсов, которыми обладает пред¬ приятие, указаны ОБОРУДОВАНИЕ, РАБОЧИЕ и СЛУЖА¬ ЩИЕ и два действия, характерные для этих ресурсов. Рассмотрим теперь представление событий и действий в се¬ мантической сети. Предварительно выделяются простые отно¬ шения, которые характеризуют основные компоненты события. В первую очередь из события выделяется действие, обычно опи¬ сываемое глаголом. Далее необходимо найти объекты, которые действуют, объекты, над которыми это действие производится, и т. д. Все эти отношения предметов, событий и качеств с гла¬ голом называются падежами. Обычно рассматриваются сле¬ дующие падежи: агент — действующее лицо, вызывающее действие; условие — логическая зависимость, существующая между двумя событиями; инструмент — предмет или устройство, вызывающее дей¬ ствие или являющееся орудием его осуществления; место — указание на то, где происходит событие; 114
объект — предмет, подвергающийся действию; цель — указание на цель действия; качество — указание свойства понятия; адресат — лицо, пользующееся результатом действия или испытывающее этот результат; время — указание на то, когда происходит событие. В качестве примера рассмотрим предложение: «Директор за¬ вода «Салют» остановил 25 марта 1982 г. цех № 4, чтобы заме¬ нить оборудование». Структура этого предложения, выражен- ная средствами семантической сети, показана на рис. 3.13. Запросы к семантической сети определяются зафиксирован¬ ными в ней бинарными отношениями. Можно запросить образ объекта, действия, предмета, события; можно запросить об¬ раз элементов, которые получаются в результате обработки другого запроса, и т. п. Уточнение требуемых отношений про¬ изводится путем указания в запросе имени связи. Например, «С какой целыо остановлен цех № 4», «Какие действия могут выполнять объекты, имеющиеся у предприятия». Если обозна¬ чить образ объекта А в отношении г через im (Л, г), то эти за¬ просы выглядят как im (остановил, цель), im (im (предприятие, имеет), может). Аппарат семантических сетей удачно дополняет аппарат СЕИ. СЕИ эффективно описывают структуру документирован¬ ной информации, а семантические сети рассчитаны на ана¬ лиз структуры произвольных текстов. Контрольные вопросы 1. Укажите основные информационные конструкции в реляционной, сетевой и иерархической моделях данных. 2. Какие операции реляционной алгебры являются унарными и би¬ нарными? 3. Перечислите операции, используемые для корректировки отношений в реляционной модели данных. 4. В каких случаях при реализации запроса необходимо использовать операцию проекции, операцию эквисоединения? 5. Назовите теоремы, которые определяют свойства функционально зависимых реквизитов и вероятных ключей отношения. 6. Какую цель имеет преобразование отношения к ЗНФ? 7. Какие существуют различия в определении операции «образ» в реля¬ ционной и сетевой моделях данных, в модели семантических сетей? 8. Каким образом отношение между N СЕИ преобразуется в N веерных отношений?
ГЛАВА 4 МЕТОДЫ ОРГАНИЗАЦИИ ДАННЫХ 4.1. ЛИНЕЙНАЯ ОРГАНИЗАЦИЯ ДАННЫХ Метод организации значений данных в памяти ЭВМ пред¬ ставляет собой аппарат для фиксации однородного бинарного отношения R a D X D, где D представляет собой множество информационных единиц— записей. Записью называется одно значение СЕИ, выбранное из некоторого множества значений, объединенных общим именем. Множество D обычно содержит все значения СЕИ с заданным именем, которые хранятся в данный момент времени в памяти. Отношение R описыва¬ ет связь данной записи с последующей записью либо с после¬ дующей и предыдущей. Отношение R обладает антирефлексив¬ ностью, поскольку практически никогда не требуется поддер¬ живать связь каждой записи с самой собой. В литературе ор¬ ганизация значений данных часто называется структурой дан¬ ных. Организация значений данных (далее называемая просто организацией данных) может быть линейной и нелинейной. При линейной организации данных каждая запись, кроме пер¬ вой и последней, связана с одной предыдущей и одной после¬ дующей записью. У записей, соответствующих нелинейной ор¬ ганизации данных, количество предыдущих и последующих им записей не ограничено. Линейные методы организации данных различаются только способами указания предыдущей и последующей записей по от¬ ношению к данной записи. Но это приводит к тому, что ал¬ горитмы, эффективные для одних методов организации данных, становятся неприемлемыми для других методов. Поэтому обо¬ снованный выбор организации является нетривиальной зада¬ чей. Среди линейных методов выделяются последовательная и строчная организация данных. При последовательной органи¬ зации данных записи располагаются в памяти строго одна за другой согласно заданному логическому порядку. Логический порядок записей определяется последовательностью вызова их на обработку. Последовательная организация данных соот¬ ветствует, как правило, понятию «массив» («файл»). 116
Записи массива могут быть упорядоченными или неупорядо¬ ченными по значениям ключевого реквизита (ключа), имя ко¬ торого одинаково во всех записях. Ключевой реквизит обычно является реквизитом-признаком. Часто требуется поддержи¬ вать упорядоченность записей по нескольким именам ключевых признаков. В этом случае среди признаков устанавливается старшинство и упорядоченность записей определяется как лексикографическая. Понятие «ключ» в данном контексте от¬ личается от ранее введенного понятия «вероятный ключ» тем, что не требуется однозначная идентификация записей массива (по значению ключа получаем доступ к подмножеству запи¬ сей). Записи, составляющие массив с точки зрения способа ука¬ зания их длины, делятся на записи фиксированной, перемен¬ ной и неопределенной длины. Записи фиксированной (посто¬ янной) длины имеют одинаковую, заранее известную длину. Если длины записей неодинаковы, они указываются в самой записи. Такие записи называют записями переменной длины. Вместо явного указания длины записи можно отмечать окон¬ чание записи специальным символом — разделителем, который не должен встречаться среди информационных символов зна¬ чения записи. Записи, заканчивающиеся разделителем, на¬ зываются записями неопределенной длины. Адреса промежуточных записей фиксированной длины в массиве задаются формулой А,- = Аг + (i — П /, где Ах — начальный адрес первой записи; А-г — начальный адрес /-й записи; I — длина одной записи. Для массива записей переменной и неопределенной длины подобной простой формулы не существует. Массив записей не¬ фиксированной длины, как правило, занимает меньший объем памяти. Их обработка, однако, ведется с меньшей скоростью, поскольку затруднено обнаружение начала следующей в ло¬ гическом порядке записи. Основные операции над значениями данных: формирование, поиск и корректировка. Данные обычно возникают в неупорядоченной форме. Перед обработкой, как правило, целесообразно отсортировать их зна¬ чения по ключевым реквизитам, что составляет одну из основ¬ ных работ по формированию (подготовке) данных. Упорядоченные данные эффективны для организации быст¬ рого поиска информации. Выходные документы, выводимые на печать, полученные на основе отсортированных данных, удобны для дальнейшего использования человеком. Многие 117
алгоритмы задач управления вообще рассчитаны на использо¬ вание только упорядоченных данных. Отсортированные дан¬ ные позволяют организовать быструю обработку нескольких массивов. Далее будем считать все массивы упорядоченными по возрастанию значений одного реквизита, когда для ключа /-й записи pL справедливо условие pt ^ pi+1. Поиском называется процедура выделения из некоторого множества записей определенного подмножества, записи кото¬ рого удовлетворяют некоторому заранее поставленному усло¬ вию. Условия поиска часто называют запросом на поиск, или поисковым признаком. Простейшим поисковым признаком мо¬ жет служить значение ключевого реквизита (поиск по совпа¬ дению). Алгоритмы всех разновидностей поиска можно получить из алгоритмов поиска по совпадению, которые рассматриваются в дальнейшем. Базовым методом доступа к массиву является ступе н- чаты й и о и с к. Этот метод предполагает упорядоченность обрабатываемых данных. Рассмотрим сначала двухступенчатый поиск в массиве, со¬ стоящем из М записей. Для определенности будем считать, что массив отсортирован по возрастанию значений ключевого рек¬ визита ph где i = 1, М. Для заданного М выбирается констан¬ та di<Z М, называемая шагом поиска. Если необходимо оты¬ скать запись, ключевой реквизит которой равен величине q, производятся следующие действия. Значение ц последователь¬ но сравнивается с рядом ключей ръ р\ р\ -ьм до тех пор, пока будет впервые достигнуто неравенство pi-L/m/ ^ Q- Здесь заканчивается первый этап (первая ступень) поиска. На втором этапе сравнения производятся между q и ключевыми признаками p\jr{m^\)cii, p2-\-(m-\)di pt-\-{,n — \)dl,-.- до тех пор, пока в процессе сравнений не будут извлечены все требуемые записи с ключом либо будет достиг¬ нут ключ, больший, чем q. В последнем случае поиск заканчи¬ вается безрезультатно. Эффективность поиска измеряется количеством произве¬ денных сравнений. Для двухступенчатого поиска среднее чис¬ ло сравнений примерно составит с = Л*- + А_. 2 dY 2 Параметр d1 — выбираемый, и естественно выбрать dx так, чтобы оно минимизировало С. Заменим dx непрерывной пере¬ менной х и вычислим производную 118
Из условия С' = 0 получаем dx ж \r М. Вторая производ¬ ная С" в точке а*-- ]/"М положительна, следовательно, дости¬ гается минимальное значение С. При /i-ступенчатом поиске заранее выбираются константы п и S. На первом этапе ключевые реквизиты для сравнения с ис¬ комым ключом q выбираются из массива по закону арифметичес¬ кой прогрессии, начиная с рх с тагом dx— LA4/SJ , где скобки I I означают округление числа до целого в меньшую сторо¬ ну. Когда будет достигнут ключ p\+kd ^q, выбирается шаг rf2= \-dJSA и организуются сравнения с этим шагом, начиная с ключа р\ +(/г_ 1 )di-Описанные действия повторяются /? раз, причем для / < // d{~ Lrf,_1/5J и dn = 1. Подобно тому как в двухступенчатом поиске лучшее значе¬ ние S = M!dx = V М, в общем случае лучшее значение S —= = М1/'1 и, кроме того, существует оптимальное п. Среднее чис¬ ло сравнений составляет С = 0,5- /г • /VI1 . Приравняв к нулю производную С по/?, получаем/? ^ in М. Ступенчатый поиск имеет два важных частных варианта — последовательный поиск, когда ri = 1 и d{ = 1, и бинарный (дихотомический) поиск, когда S =- 2. Число сравнений при последовательном поиске в упорядоченном массиве и равнове¬ роятном местонахождении искомой записи определяется выра¬ жением м м п ч$г\ I ^ • h\ 1 С = > г 1-1= > I = . Ad 1 м Ad 2 /= 1 «= i Здесь /у- ~ ММ — вероятность извлечения ?-й записи при по¬ иске. Для бинарного поиска вводится левая граница интервала А и правая граница интервала В. Первоначально интервал охва¬ тывает весь массив, т. е. А = 0, В —М -|- 1. Вычисляется середина интервала i по формуле i — (А Ат В)!2, с округлени¬ ем в меньшую сторону. Ключ /-й записи сравнивается с ис¬ комым значением ц. Пели /;,• = q, то ключи соседних записей проверяются на равенство их ключа с //, все такие записи выво¬ дятся, и поиск заканчивается. В случае pL >> с/ записи с номе¬ рами /4-1, i + 2,..., /VI заведомо не содержат значение q и надо сократить интервал поиска, приняв В — /. Аналогично при pi < q надо взять А — ?. Далее середина интервала вы-
Pi Ри Pi Pi Pi / M Рис. 4.1. График зависимости значений р\ от номера записи i в упорядоченном массиве (1) и его линейная интерполяция (2) числяется заново, и все действия повторяются. Если будет до¬ стигнут нулевой интервал, то требуемой записи в массиве нет. Среднее число сравнений при бинарном поиске С = log2 М — 1. Все рассмотренные выше методы поиска основывались на проведении сравнений пар ключевых признаков. Принципиаль¬ но иную возможность поиска представляет собой вычисление номера записи с искомым ключом q. Соответствующий метод поиска в упорядоченном массиве называется интерполяцион¬ ным. Зависимость ключевого признака pt от номера записи i в упорядоченном массиве является монотонно возрастающей функцией (рис. 4.1). Значения pt для 1 < i < М будем при¬ ближенно интерполировать с помощью линейной функции, которую построим по двум точкам (1, р±) и (М, рм). Для произ¬ вольной точки pi, которая является приближенным значением для Pi, в соответствии с линейной интерполяцией справедливо выражение При вычислении номера записи с ключевым признаком q значение q подставляется вместо р\ и вычисляется соответст¬ вующий номер записи Pm—Pi 1 P'i — Pi 1 120
который округляется до ближайшего целого значения. Затем из массива извлекается i-я запись с ключом pt. Поскольку ис¬ пользуется приближенная формула, возможны следующие со¬ отношения pt = <7, pi > <7, < q. Поэтому после интерполя¬ ционного поиска требуется провести последовательный по¬ иск значения q, начиная с i-й записи. Корректировка значений массива может касаться одной его записи или группы записей. В последнем случае она называет¬ ся групповой. Также рассматривается включение новой запи¬ си, исключение ненужной записи, замена значений реквизитов в записи. В любом случае перед непосредственно корректиров¬ кой выполняется поиск местонахождения корректируемой записи. Массив записей, подвергающихся изменениям, называется основным. Любое отдельное изменение данных основного массива касается одной его записи. Изменения, которые необходимо внести в основной массив, накапливаются в специальном упорядоченном массиве изме¬ нений, рассчитанном на 1 ^ Mo ^ М записей. Обычно Мо составляет несколько процентов от М. При необходимости об¬ работки основного массива он объединяется с массивом изме¬ нений. При объединении основного массива с массивом изменений выполняются следующие операции: ключ очередной записи основного массива сравнивается с ключом очередной записи массива изменений, и запись с мень¬ шим значением ключа переписывается на другой участок па¬ мяти, в котором формируется новое состояние основного масси¬ ва (результат объединения); когда все записи одного из массивов будут перезаписаны, оставшиеся записи другого массива перезаписываются без срав¬ нений и объединение заканчивается; если ключи записей при сравнении совпадут и запись мас¬ сива изменений помечена как исключаемая, то ни одна из за¬ писей не записывается в результат объединения. При равенст¬ ве значений ключей происходит и замена значений реквизитов в записи основного массива. Один из методов, применяемых для ускорения доступа к данным, первоначально хранящимся в последовательной фор¬ ме. состоит в образовании на его основе вспомогательного инвертированного массива данных. Инвертированный массив позволяет по известному значению ключевого признака определить адреса всех записей, которые его содержат. 1Л
0100) 0140) 0220) 0240) АСЕ D В А Е С Запись I Запись 2 Запись 3 Запись 4 А 0140 0220 В 0100 0220 С 0140 0240 D 0220 Е 0100 0140 0240 Группа 1 . Группа 2 Группа 3 Группа 4 Группа 5 Основной массив Инвертированный массив Рис. 4.2. Основной массив записей и его инвертированный массив Элементы, составляющие инвертированный массив, называ¬ ются группами. Число групп равно числу различных ключе¬ вых реквизитов в записях исходного массива. Каждая группа содержит ключевой реквизит, имеющийся в массиве, в качест¬ ве своего собственного ключа и набор адресов записей, содер¬ жащих в своем составе этот ключ. Адреса записей в группе должны быть упорядочены. Массив групп, упорядоченный по значениям ключа, и есть инвертированный массив. Группы имеют неопределенную длину. Структуры основного массива и инвертированного массива показаны на рис. 4.2. Прописны¬ ми латинскими буквами обозначены значения ключа. Струк¬ тура варианта инвертированного массива показана также в табл. 4.1. Основной эффект инвертированного массива проявляется при поиске данных по нескольким условиям. Пусть дан за¬ прос «найти все записи, содержащие ключи Л и С». Система об- 122
Основной массив Таблица 4.1 Инверти рованный массив для ключа 1 Адрес записи Имена ключей А | В значения ключей Неключевые реквизиты 400 «1 *1 *1 У\ 500 а 2 *i *2 У 2 600 аг в, *з Уз 700 ая 0! *4 У\ 800 «2 в3 *5 УЪ 900 а1 в:> *6 У в Инвертированный массив для ключа В а1 400 900 Г руппа 1 ei 400 500 700 а.» 500 600 800 Г р уппа 2 6 О 600 й|! 700 Гр уппа 3 в> 800 900 Группа 1 Группа 2 Группа 3 ратится к инвертированному массиву н найдет группы ключей А и С. Совпадающие значения адресов в А и С укажут в на¬ шем примере на искомую запись с адресом 0140. Этот пример поясняет и общее правило. Таким же способом, например, мо¬ жет быть установлено отсутствие записей, удовлетворяющих запросу «найти все записи, содержащие ключи В и С». Логические связки в запросах могут быть любыми, и с ма¬ тематической точки зрения требуемые поисковые операции есть операции пересечения, объединения, вычитания и т. п. подмно¬ жеством адресов, которые хранятся в группах, названных в запросе. Так, при обработке запроса «найти все записи, содержа¬ щие ключи Е или С, кроме /1», которому в терминах теории множеств соответствует запись (Е (J С)\А, производится после¬ довательное вычисление ({0100, 0140, 0240} U {0140, 0240})\{0140, 0220} = {0100, 0240}. 123
Результат означает, что запросу удовлетворяют записи с адресами 0100 и 0240. Следует отметить, что поиск по ин¬ вертированному массиву обнаруживает только адреса записей и плохо приспо¬ соблен для указания всех ключей, свя¬ занных с найденной записью. Между тем эта информация часто запрашивается. В одном из наших примеров запись с адресом 0140 была найдена по значе¬ ниям ключей А и С очень быстро, но оп¬ ределить, есть ли в этой записи третий ключ £, используя только инвертиро¬ ванный массив, невозможно. Корректировка основного массива вызывает очевидные изменения в инвер¬ тированном массиве. Алгоритмы внесе¬ ния изменений в обоих случаях одина¬ ковы. Как правило, одно изменение в основном массиве (включение, исключе¬ ние) приводит к корректировке несколь¬ ких групп в инвертированном массиве. Отсюда можно сделать вывод, что кор¬ ректировка данных в инвертированном массиве является достаточно трудоем¬ ким процессом. К достоинствам инвертированного массива следует отнести широкий диапазон запросов, которые могут быть обработаны по единому алгоритму, а также небольшой его объем, что по¬ зволяет быстро извлекать данные при поиске. Решение целого ряда задач обработки данных требует при¬ менения таких методов организации данных, которые позво¬ лили бы связать физически разнесенные в памяти данные в ло¬ гическую последовательность. Простейшим методом, применя¬ емым для этих целей, является строчная организация данных. Строчная организация — это линейная организация данных, в которой логическая последовательность записей обеспечивается с помощью специальных указателей (адресов • связи). В адресе связи указывается адрес хранения записи, следующей за данной записью в логической последовательно¬ сти. Для строчной организации данных используются понятия- синонимы «строка» и «цепь». В строке выделяются собствен¬ ная информация, т. е. записи, используемые в прикладных рас¬ четах, и ассоциативная информация — все адреса связи. Запись о) ЗВено сбязи Запись ЗВено сВязи Запись Рис. 4.3. Совместное (а) и раздельное (б) хранение ассоциатив¬ ной и собственной ин¬ формации в строке 124
Возможны два способа хранения строки — совместное раз¬ мещение собственной и ассоциативной информации, когда за¬ пись и ее адрес связи располагаются в памяти вплотную (рис. 4.3, а), и раздельное (рис. 4.3, б). В последнем случае ассоциа¬ тивная информация, относящаяся к каждой записи, образует звено связи. На графических иллюстрациях адрес сеязи изоб¬ ражается прямоугольником со стрелкой; стрелка указывает на элемент данных, адрес хранения которого содержится в адресе связи. а) Рис. 4.4. Однонаправленная строка с совместным (а) и раз¬ дельным (6) хранением ассоциативной и собственной инфор¬ мации Раздельное размещение собственной и ассоциативной инфор¬ мации оправдано, если имеется возможность разместить звенья связи на запоминающем устройстве с более высоким быстродей¬ ствием. Основные возможности строчной организации данных обес¬ печивает так называемая однонаправленная строка (или пря¬ мая), в которой реализуется взаимосвязь между записями типа «следующий». Каждая запись однонаправленной строки долж¬ на иметь адрес связи, содержащий адрес расположения следу¬ ющей записи. Если следующая запись отсутствует, то вместо адреса связи в указатель помещается специальный знак, кото¬ рый называется признаком конца списка, или терминатором, и условно обозначается КС или 0. На графических иллюстра¬ циях адрес связи, соответствующий концу строки, перечер¬ кивается. 125
Строка начинается с указателя строки (УС), в котором для однонаправленной строки адресуется первая ее запись. Место расположения в памяти первой, согласно логической последо¬ вательности, записи строки может быть задано и другими сред¬ ствами. Однонаправленная строка с последовательностью за¬ писей а, 6*, с, в показана на рис. 4.4. УС I" п 1 1 * 12 46 31 , 14 1 52 i Ф 24 27 40 а) УС 12 46 31 14 ffPiT I 52 0 24 I 27 Я) 40 ГГГ 35 Рис. 4.5. Формирование упорядоченной строки из неупорядо¬ ченных записей (а) и корректировка этой строки (б) Строчная организация данных удобна, если по некоторым причинам нецелесообразно перезаписывать поступающие дан¬ ные. Для обработки данных в упорядоченной последователь¬ ности все записи снабжаются адресами связи и с их помощью определяется цепочка записей, в которой значения ключевых реквизитов возрастают. В качестве примера рассмотрим последовательность запи¬ сей с ключами 12, 46, 31, 14, 52, 24, 27, 40. Структуру записей, соединенных в цепь, иллюстрирует рис. 4.5, а. На обработку эти записи поступят в порядке, заданном адресами связи 12, 14, 24, 27, 31, 40, 46, 52. При поступлении новой записи с клю¬ чом 35 находится ее место в цепочке и производится замена ад¬ ресов связи с целью включения ее в цепочку. Измененные ад¬ реса показаны на рис. 4.5, б пунктиром. Недостатком такого преобразования данных является замедление поиска в строке по сравнению с массивом. Для поиска данных в однонаправленной строке использу¬ ется единственный метод— последовательный поиск. Ключе¬ вой реквизит первой записи (ее адрес извлекается из УС) срав- 126
нивается с искомым значением q, затем такое же сравнение вы¬ полняется для ключа второй записи, которая извлекается по ад¬ ресу связи первой записи, и т. д. В процессе сравнений из всех записей, у которых ключ совпал со значением q, выбирается информация, необходимая для ответа на запрос. Простейшее усовершенствование однонаправленной стро¬ ки состоит в организации второго входа в строку через допол¬ нительный указатель. Этот указатель может адресовать фикси¬ рованную запись строки либо адрес связи в указателе будет переменной величиной. В последнем случае указатель адресует запись, к которой произошло последнее обращение, и называ¬ ется указателем текущего значения (УТЗ). Оценим число сравнений при поиске с использованием УТЗ. Если УТЗ адресует i-ю запись, а поиск заканчивается на /-й записи, то среднее число сравнений 1 1 M — i .0 с(0 = 1 + J-V/ + -L у /~^i ' M*d M^d м 2 /--= 1 /=1 где М — число записей в строке. Одно сравнение при поиске тратится на выбор указателя: УС — если qC.fi, и УТЗ, если pt<iq. Первая сумма в С (i) оценивает возможную продолжительность поиска, начиная с УС, вторая — ту же величину при поиске через УТЗ. Полу¬ ченные С (i) следует еще раз усреднить. Тогда Сср =— у С(0 « —. ср м jLd 3 /—1 Следовательно, использование строки с дополнительным УТЗ сокращает время поиска на одну треть (для последователь¬ ного поиска в строке Сср « М/2). Рассмотрим строку с фиксированным указателем. Если обра¬ щение к каждой записи равновероятно, то в указателе необхо¬ димо адресовать среднюю запись с номером М/2. При поиске первое сравнение q и рм/2 расходуется на выбор указателя для входа в строку, как и в предыдущем случае с УТЗ. После этого получаются два равноценных последовательных поиска над 0,5/И записями каждый. Поэтому среднее число сравнений со¬ ставит г 0, 5М + 1 , ! _ М ср“ 2 + ~ 4 ’ что доказывает преимущество фиксированного указателя над УТЗ. 127
Дальнейшая модернизация однонаправленной строки со¬ стоит в выделении t >> 1 фиксированных указателей. Доказа¬ но, что наилучшее распределение фиксированных указателей при равновероятном местонахождении искомой записи — рав¬ номерное с обязательной адресацией первой записи. Если каж¬ дый указатель будет содержать и адрес, и ключевой реквизит соответствующей записи, что позволяет не тратить время на извлечение записи, то получаем так называемые /(-индексы. Индексом называется набор адресов и ключей записей, ко¬ торые выбираются из линейно-организованных данных (мас¬ сива или строки) по определенному закону. Отдельный эле¬ мент набора индексов также называется индексом. Имеются три практически важные разновидности индексов: каждый элемент индекса описывает одну запись массива или строки (сплошная индексация). Набор индексов в этом случае совпадает в основном с введенным ранее инвертированным мас¬ сивом; номера записей, информация о которых выносится в индекс, образуют арифметическую прогрессию с шагом d, причем пер¬ вый индекс адресует первую запись. Индексы такого типа на¬ зываются K-w и д е к с а м и; ключи записей, информация о которых выносится в индекс, приближенно образуют арифметическую прогрессию, причем первый индекс адресует первую запись. Индексы такого типа называются ^-индексами. Точное описание Л-индексов состоит в следующем. Л-индекс с номером i хранит адрес записи, ключевой реквизит которой равен или непосредственно больше значения рх + z (i—1), где z — константа, рг — ключ первой записи. В качестве примера в табл. 4.2 приведены К- и Л-индексы для массива и строки. Шаг арифметической прогрессии для /(-индексов равен 5, для Л-индексов е = 15. В Л-индексе можно не хранить значение ключа адресуемой записи. У запи¬ сей массива и строки приводятся только значения ключевых признаков. Строка в данном примере занимает сплошной учас¬ ток памяти, но порядок записей не совпадает с последова¬ тельностью их обработки, которая задается с помощью адресов связи. Такой способ хранения строки называется цепным каталогом. Если строка или массив снабжена /(-индексом, то поиск ве¬ дется в две стадии: в массиве индексов, который отсортирован в силу упорядоченности исходной строки (массива); среди за¬ писей, расположенных между двумя соседними индексами, най¬ денными на первой стадии. 128
Таблица 4.2 Адрес Значение ключа Адрес Значение ключа Адрес связи 0100 6 0107 УС 0101 10 К-индексы 0100 25 0116 К-индексы 0102 16 6 I 0100 0101 50 0119 6 0107 0103 17 25 | 0105 0102 71 0115 25 0100 0104 22 46 | ОНО 0103 16 0109 46 0105 0105 25 65 | 0115 0104 36 0117 65 0108 0106 31 0105 46 0101 0107 36 Л-индексы 0106 61 0108 А-индексы 0108 40 0100 0107 6 0112 0107 0109 43 0104 0108 65 0102 0118 ОНО 46 0107 0109 17 0118 0104 0111 50 0112 0110 85 0114 0119 0112 52 0116 0111 43 0105 0102 0113 53 0118 0112 10 0103 ОНО 0114 61 0113 53 0106 0115 65 0114 89 КС 0116 71 0115 77 оно 0117 77 0116 31 0104 0118 85 0117 40 0111 0119 89 0118 22 0100 0119 52 0113 а) Массив б) Строка При поиске записи с ключом q сначала находится индекс /(,-, такой, что Ki<q< Ki+i (i — номер индекса в массиве индексов). Далее поиск продолжается, начиная с адреса, оп¬ ределенного в индексе Ki. Требуемое число сравнений для стро¬ ки составляет Ccp=log2\^ + 1^-t где М — число записей в строке (массиве); Wjс — число /(-индексов. 5 Зак. 1818 129
Первое слагаемое описывает бинарный поиск среди Wк индексов, а второе — последовательный поиск на выбранном участке строки. Если /^-индексы созданы для массива, то ^ср =1°ё2 + log2‘ м = log2 М. Последняя формула показывает, что использование /С-цн- дексов для массива не приводит к ускорению поиска. Рассмотрим поиске использованием Л-индексов. На первом этапе номер требуемого далее Л-индекса определяется по фор¬ муле P—Pi + 1» где q — искомое значение; z — разность значений ключей для Л-индексов; LXJ — функция округления числа X до целого в меньшую сторону; рг — ключ первой записи. Интервал записей на втором этапе поиска определяется но¬ мерами (адресами) записей, указанными в i-м и (/ + 1)-м Л- индексе. Поиск в этом интервале ведется бинарным методом, если записи организованы в массив, и последовательным мето¬ дом, если — в строку. На вычисление величины i сравнения не тратятся, поэтому эффективность поиска с применением А-ин- дексов в случае массива оценивается Сср = log2 (M/WA) и в случае строки (Wл — количество Л-индексов) — Г - М иср " 2WA * Сравнение формул показывает, что поиск в массиве с Л- индексами осуществляется быстрее, чем в строке. Время поис¬ ка быстро уменьшается с ростом W;ь что соответствует умень¬ шению г. Однако при выборе малых значений г возможны слу¬ чаи, когда соседние Л-индексы относятся к одной и той же записи (разность ключей соседних записей намного больше г) и увеличение числа индексов Wа не сопровождается даль¬ нейшим сокращением времени поиска. Выбор шага d для /С-индексов в строке основан на соответ¬ ствии применяемого в этом случае алгоритма поиска и двухсту¬ пенчатого поиска, рассмотренного ранее. Поэтому оптималь¬ ное d ж УМ. 130
Индексы обоих типов используют дополнительную память сверх объема, занятого собственно данными, причем Л-индексы несколько меньше. При корректировке записей индексы также должны изме¬ няться: всегда изменяются /(-индексы и значительно реже — Л-индексы. При включении новой записи с ключом q определяется /(-ин¬ декс Ki> такой, что Ki-i^q <Ki, где i — номер /(-индекса. Затем все /(-индексы с номером i и больше принимают значе¬ ния ключей и адресов тех записей, которые непосредственно предшествуют ранее зафиксированным в этих индексах запи¬ сям. Аналогично при удалении записи с ключом q все /(-индек¬ сы с номером i и больше принимают значения ключей и адре¬ сов тех записей, которые непосредственно следуют за ранее указанными в этих индексах записями. Рассмотрим корректировку строки, снабженной Л-индекса- ми. Пусть в строке (аи ат) в индексе Л г- была адресована запись ак с ключом рк. Тогда при вставке в строку записи b с ключевым реквизитом q индекс Л,- будет адресовать запись Ь лишь тогда, когда рх + 2 (i — 1) ^ (/</?,„ и не изменится в остальных случаях. Только при исключении записи ак Л- индекс с номером i изменится, он будет адресовать ак+г. Одна¬ ко при корректировке изменяется только одно значение Л-ин- декса, а не несколько, как это характерно для /(-индексов. Таким образом можно сделать вывод, что Л-индексы целе¬ сообразнее /(-индексов — они характеризуются меньшим объ¬ емом памяти, необходимым для их размещения, значительно меньшей трудоемкостью корректировки, а также более быстрым поиском при достаточно большом М. Возможность определения места хранения данных, реали¬ зованная в Л-индексах, используется также при размещении данных согласно адресной функции. Упорядоченность записей по значениям ключа в этом случае, вообще говоря, не соблю¬ дается. Адресной функцией называется зависимость * = f (р). где i — номер (адрес) записи; р — значение ключевого реквизита в записи. Адресная функция может вырабатывать одинаковое значе¬ ние i для значений ключей, принадлежащих разным записям, которые в этом случае называются синонимами. К функции / предъявляются следующие требования: 5* Г31
она должна быть задана аналитически и вычислиться дос¬ таточно быстро; ключевые реквизиты, подчиняющиеся произвольному рас¬ пределению, функция должна переработать в равномерно рас¬ пределенные номера записей. Это условие обычно соблюдается приближенно; число записей-синонимов должно составлять 10—20% об¬ щего числа записей. Известно достаточно много адресных функций, хорошо со¬ ответствующих этим требованиям. Простейшая адресная функ¬ ция имеет вид i ~ р — я, где а — константа. Пусть известны минимальное значение ключа рмпп и мак¬ симальное рмакс- Тогда а = рмин — 1. Необходимый участок памяти для данных оценивается в рмакс — Рмин + 1 запись. Записи-синонимы связываются в цепочки с помощью адресов связи, они занимают дополнительную (резервную) память. Пример размещения записей с ключами 13, 11, 14, 11, 15, 18, 14, 16 согласно адресной функции i = р — а показан на рис. 4.6. При доступе к записи с ключом q вычисляется i = / (q) и производится обращение к i-й записи. При необходимости с помощью адресов связи извлекаются все синонимы. Недостаток адресной функции вида i = р — а — большой объем неиспользуемой памяти, если /?макС — Рмпп много боль¬ ше, чем количество записей М. Указанного недостатка лишена функция вида i — ОСТ (р/т). Здесь пг — целое число; ОСТ — остаток от деления р на т. Значение т принимается равным простому числу, которое непосредственно больше либо меньше числа записей /14. Выделяются две зоны памяти — основная и резервная. Ос¬ новная зона содержит т записей. Резервная зона предназна¬ чена для размещения записей-синонимов. При формировании данных согласно адресной функции сна¬ чала производится заполнение основной зоны. Если при этом позиция основной зоны, полученная при вычислении, уже за¬ нята, то текущая запись помещается в резервную зону и адре¬ суется из позиции основной зоны. В дальнейшем при такой ситуации наращивается цепочка записей в резервной зоне. Например, для массива ключей со значениями 15, 10,20, 16, 132
25, 8, 13, 6, 12, 9, 28, 10, 17, 6, 23, 16, 18, 8 необходимо вы¬ брать т = 17, поскольку УИ=18 (возможно также т = 19). Содержимое основной и резервной зон иллюстрирует рис. 4.7. Резервная зона заполняется последовательно. При поиске зна¬ чения, например q — 8, вычисляется i =ОСТ (8/17) = 8 и далее последовательно сравниваются 25 и q, 8 и q, 8 и q. Для обнаружения искомого ключа потребовались одно деление и три сравнения, поскольку всегда необходимо просматривать цепочку в резервной зоне до конца. В рассматриваемом приме¬ ре число записей синонимов составляет 6/18, или 33%. Рис. 4.6. Размещение записей в соответствии с адресной функцией i=p—а При корректировке записей в строке вновь поступающая за' пись с помещается в любом незанятом участке памяти. Пусть ее ключевой реквизит равен q. Затем среди записей строки {ah\ k = 1, М} отыскиваются такие записи аь и ai+1, что pt ^ ^ ц < Pi+i- Адрес связи в с заменяется на адрес связи а*, адрес связи в at заменяется на начальный адрес записи с. При исключении записи ап из строки ее адрес связи при¬ сваивается адресу связи в ап-г. После этого запись ап стано¬ вится недоступной. Для быстрого выполнения корректировки необходимо вести учет свободных участков памяти, фактически они организуют¬ ся в строку. Обработка этой строки свободной памяти может вы¬ полняться двумя путями. Либо позиция каждой исключенной записи сцепляется со строкой свободной памяти, либо исклю¬ ченная запись помечается специальным образом; после ис¬ черпания строки свободных участков памяти помеченные ра¬ нее участки образуют новую строку. Рассмотрим включение новой записи в строку, организован¬ ную в виде цепного каталога. Новая запись размещается в пер* вой из свободных позиций каталога, адрес которой хранится в указателе свободной памяти УСП. После этого в УСП пере¬ носится адрес связи, хранящийся в этой свободной позиции. 133
Строка свободных позиций сокращается на одну. Дей¬ ствия по включению в ка¬ талог нового звена связи совпадают с операциями, описанными выше для строк со свободной уклад¬ кой. При этом изменяют¬ ся адреса связи в новом звене и звене записи at. Исключение записи из цепного каталога также аналогично действиям, опи¬ санным для строк со сво¬ бодной укладкой. Освобо¬ дившееся звено связи мо¬ жет стать первым или по¬ следним в списке свобод¬ ных строк. Обычно оно становится первым, что позволяет унифицировать алгоритмы вставки и исключения звеньев связи. Теперь при любой корректировке изменяются значения трех адресов связи в каталоге: УСП, включаемого (удаляемого) звена, и звена, предшествующего ему в цепи. Вставку записи d6l и удаление записи d30 в цепном каталоге иллюстрирует рис. 4.8. Запись d6\ помещается между записями d 60 и d 70. Цифры обозначают значения ключа. Стрелками отмечены зве¬ нья, адреса связи которых изменяются. Для обмена адресов необходимо специальное поле обмена. Дополнительными возможностями по сравнению с однона¬ правленными строчными структурами обладают двунаправлен¬ ная и кольцевая строки. Двунаправленные строки рассчитаны на обработ¬ ку записей в двух направлениях — прямом и обратном. Для этого в звеньях связи вводится новый адрес связи, который реализует связь с предыдущей записью. Для обратного на¬ правления в строке требуется второй адрес в указателе строки. Двунаправленный эквивалент строки, показанной на рис. 4.4, представлен на рис. 4.9. Кольцевая строка получается из однонаправленной заменой признака конца строки на адрес связи с первой за¬ писью строки (рис. 4.10). Естественно, можно преобразовать в кольцо и двунаправленную строку. Рис. 4.7. Размещение записей в соот¬ ветствии с адресной функцией /= = ОСТ (р/т). Остатки от деления р= на 17 показаны слева 134
а+ 0) «+ 1) а+ 2) а+ 3) «+ 4> а+ 5) <7+ 6) а+ 7) «+ 8) в+9) «+Ю) а+П) Рис. 4.8. Процесс корректировки записей в цепном каталоге С помощью кольцевой строки можно, зная одну из запи¬ сей строки, быстро извлечь все ее записи. Двунаправленная строка дает возможность обрабатывать записи как в порядке возрастания ключей, так и в порядке их убывания. Набор строк, организованных на общем множестве записей, называется мультисписком. Мультисписок предназ- Рис. 4.9. Двунаправленная строка (а, в, с, в) УСП a+ 4 yen а +11 УСП <2+ 9 УС a+ 7 У с <z+ 7 УС <2-|- 7 </50 a-b 6 </50 а-|- 6 </50 <2+ 6 d20 <2+ 9 </20 <i+ 9 </20 а+ 5 a-\-11 </61 а+10 </61 <2+Ю </40 <2+ 2 </40 <2+ 2 </40 <2+ 2 d 60 <2+10 </60 а+ 4 </60 <2+ 4 </10 a+ 3 </10 <г+ 3 </10 <2+ 3 КС КС КС </30 <2+ 5 </30 а+ 5 —> <2-1- 1 1 d 70 КС </70 КС </70 КС a-b 8 <2+ 8 <2+ 8 Вставка записи </61 Исключение записи </30 Рис. 4.10. Кольцевая строка (а, в, с, в) 135
качен для обработки записей по нескольким ключевым рекви¬ зитам, Рассмотрим построение мультисписка, предназначен¬ ного для быстрого поиска записей по заданному набору клю¬ чей. Если система рассчитана на обработку d ключей, то созда¬ ется d строк. Каждый из них определяет цепочку записей, упо¬ рядоченных по одному из d ключей. Длина каждой строки в мультисписке равна числу исходных записей. Результат фор¬ мирования мультисписка для записей из табл. 4.3 — следую¬ щие четыре строки: (iс, а, /, d, Ь, Л, е) (Ь, Л, а, /, с, d, с) (/, а, с, d, ft, ft, е) (Л, г, е, а, /, d, ft) Таблица 4.3 Признаки Идентификатор записи ' 1 2 1 3 1 4 10 30 16 15 а 36 2 60 60 в 4 88 32 11 с 30 70 42 58 d 75 62 87 13 с 11 43 2 25 / 42 22 59 7 л Простейший запрос, который обрабатывается с помощью мультисписка, имеет вид <U = //> Д <К - и> Д ... /\ с Z = 2>, где U, К,..., Z— некоторые имена признаков; //, и,..., 2—некоторые значения признаков. Для начала поиска можно выбрать любую из строк муль¬ тисписка, признак которой встречается в запросе, например U. В этой строке отыскиваются все записи, удовлетворяющие условию U -- й. Они затем проверяются на наличие значений и,..., 2, и окончательно отобранные записи составляют резуль¬ тат поиска. Естественно выбрать для начала поиска наиболее короткую строку из набора {У, V\..., Z. Этот способ может быть использован и в инвертированном массиве. 136
4.2. НЕЛИНЕЙНАЯ ОРГАНИЗАЦИЯ ДАННЫХ Нелинейная организация данных — множество записей, каждая из которых связана с произвольным количеством пред¬ шествующих и последующих записей. Важнейшими варианта¬ ми нелинейной организации данных являются деревья, спис¬ ки и решетки. Древовидной организацией данных (деревом) называется мно¬ жество записей, расположенных по уровням следующим обра¬ зом: на 1-м уровне расположена только одна запись (корень дерева), к любой записи /-го ^ уровня ведет адрес связи только от одной записи (i — 1)-го уро¬ вня. В данном определении поня¬ тия «дерево» и «уровень» вводят¬ ся одновременно. Если записи получат номера уровней, соот¬ ветствующие определению, то _ ,,, „ J г Рис. 4.11. Древовидная ор- они получат и древовидную ор- ганизация данных ганизацию. Количество уровней в дереве называется рангом. Записи де¬ рева, которые адресуются от общей записи (/ — 1)-го уровня, образуют группу. Максимальное число элементов в группе на¬ зывается порядком дерева. В дереве (рис. 4.11) группами явля¬ ются множества записей {£, С, D}, {£, £}, {G}; порядок этого дерева равен 3, ранг 3. Деревья обычно формируются двунаправленными, адрес от записи / + 1-го уровня к записи /-го уровня называется обрат¬ ным. При размещении древовидной структуры в памяти каждая запись может занимать произвольное место. Назовем звеном связи набор адресов связи, принадлежащих одной записи. Если порядок дерева равен р, то все звенья свя¬ зи состоят из /;+1 адреса (один адрес — обратный). Корень дерева адресуется из специального указателя дерева. Незаня¬ тые адреса связи содержат признак конца списка КС. В качест¬ ве примера размещения дерева в памяти ЭВМ на рис. 4.12 по¬ казан один из возможных вариантов представления дерева (см. рис. 4.11). Рассмотрим деревья порядка 2 (бинарные). Они интересны тем, что составляющие их записи могут быть упорядочены. Для этого один из признаков записи должен быть объявлен ключе¬ вым. 137
Чтобы определить понятие упорядоченности бинарных де¬ ревьев, требуется ввести ряд вводных понятий. В качестве при¬ мера рассмотрим упорядоченное бинарное дерево (рис. 4.13, в скобках указано значение ключа). Запись а — корень дерева. Записи, у которых заполнены два адреса связи, называются полными, записи с одним заполненным адресом— неполными, записи с двумя незаполненными адресами — концевыми. На рис. 4.13 записи а, в,е, f — полные, с — неполная, dt /г, if /, k— Рис. 4.12. Размещение в памяти дерева (см. рис. 4.11) концевые. Адреса связи делятся на левые и правые. Так, ад¬ рес от е к h — левый, от е к i — правый. Каждая запись имеет левую и правую ветви. Правую (левую) ветвь записи образует поддерево, адресованное из этой записи через правый (левый) адрес связи. У записи с (см. рис. 4.13) правая ветвь состоит из записей /, /, к, левая ветвь — пустая. В упорядоченном бинарном дереве значение ключа каждой записи должно быть больше, чем значение ключа у любой за¬ писи на его левой ветви, и не меньше, чем ключ любой записи на его правой ветви. Упорядоченное бинарное дерево формируется из неупорядо¬ ченного массива записей по следующему алгоритму. Первая запись массива с ключом рх становится корнем дерева. Значе¬ ние ключа второй записи р2 сравниваем с находящимся в корне дерева. Если р2 <С р1у то помещаем вторую запись на ле¬ вой от корня ветви, в противном случае — на правой ветви. Выбор места i-и записи массива в дереве производится следую¬ щим образом. Ключ pi сравнивается с корневым значением и выполняется переход по левому адресу, если рх> Ри а при 138
Pi ^ Pi — no правому адресу. Ключ, записанный по этому адресу, также сравнивается с pt и снова организуется переход по левому или правому адресу и т. д. Если требуемый адрес не заполнен, то он должен адресовать теперь запись с ключом pi. Итак, алгоритм строит упорядоченное бинарное дерево из .одной записи, затем из первых двух, первых трех и т.д. На¬ пример, дерево на рис. 4.13 получается из массива с ключевыми признаками 23, 10, 18, 27, 15, 32, 8, 30, 32, 21. При формировании упорядоченного бинарного дерева в среднем производится С - 1,39 М log2 М сравнений пар признаков, где М — число записей, для кото¬ рых строится дерево. Рис. 4.13. Упорядоченное бинарное дерево В процессе поиска данных по совпадению в упорядоченном бинарном дереве просматривается некоторый путь по дереву, начинающийся всегда в его корне. Искомое значение q срав¬ нивается со значением корня рг. Если они равны, то запись, соответствующая корню, помещается в поле результата и производится сравнение q и значения ключа вершины, лежащей справа от корня. Это необходимо для того, что¬ бы обнаружить в бинарном дереве другие вершины с ключом, равным q. Если /;х > qy то просмотр дерева продолжается по левой дуге корня, если рг < q, то — по правой. Для произволь¬ ной вершины дерева pt результаты сравнения означают: Pi — q— запись, соответствующая i-й вершине, помещает¬ ся в поле результата, и путь продолжается по правой дуге Pi\ Pi > q — производится сравнение q с вершиной, лежащей на левой дуге /;*•; Pi < Ц — производится сравнение q с вершиной, лежащей на правой дуге рг. 139
Поиск заканчивается, когда в какой-либо вершине pt от¬ сутствует дуга, необходимая для дальнейшего просмотра дере¬ ва. Для алгоритма поиска по совпадению в произвольном би¬ нарном дереве среднее число сравнений равно: Сср = 1,39 log2M. Включение новой записи при корректировке бинарного де¬ рева, по существу, означает отработку одного этапа алгоритма формирования дерева с включаемой записью на входе. Сложность исключения зависит от того, какая запись ис¬ ключается — концевая, неполная или полная. Первые два случая аналогичны корректировке строки. Адрес связи на ис¬ ключаемую концевую запись заменяется на символ КС (конец списка), адрес связи на исключаемую неполную запись заме¬ няется на ее собственный адрес связи. При исключении полной записи решается задача о подста¬ новке на ее место другой записи, такой, что ее ключ не нару¬ шает общей упорядоченности бинарного дерева — такие за¬ писи называются соседними. Способ нахождения соседней за¬ писи очень простой. Если исключаемая запись имеет ключ q, то от нее производится переход по левой или правой ветви (что безразлично) и поиск q. Запись, на которой остановится поиск, будет соседней. Она пересылается на место исключае¬ мой записи, а сама соседняя запись исключается. Это уже про¬ стая задача, так как соседняя запись не может быть полной. Ранг упорядоченного бинарного дерева можно сократить путем специальных преобразований; преобразованное дерево называется подравненным. Назовем длиной ветви де¬ рева разность между максимальным уровнем записей этой вет¬ ви и уровнем записи, определяющей ветвь. Так, на рис. 4.13 у записи с длина левой ветви — 0, длина правой ветви —2. Бинарное дерево является подравненным, если для каждой его записи длины ее ветвей различаются не более чем на 1. Поэтому дерево на рис. 4.13 не является подравненным. Что¬ бы перейти к подравненному дереву, надо найти запись, соседнюю справа к с, поместить ее на место с, а запись с зано¬ во включить в дерево. После таких преобразований разность длин ветвей сократится. Эти действия проводятся со всеми записями, нарушающими подравненность. Лучшая последова¬ тельность преобразования ветвей — от корня в соответствии с возрастанием номеров уровней. Среднее число сравнений при поиске в подравненном дере¬ ве сокращается до Сср = 1,04 Iog2 М по сравнению с 1,39 log 2 М в произвольном бинарном упорядоченном дереве. 140
Таблица 4.4 Критерии сравнения Массив Строка Бинарное дерево Примечание Время форми¬ Сортировка Сортировка Формиро¬ ki^ki^ki рования /и М log2М t21 М log2 М вание максималь¬ максималь¬ /31 М log2 М но но в среднем Время поиска В среднем В среднем В среднем *32<^12 ^12 0°&2 М -1) /22 М12 t\3 2 1°&г М Максималь¬ Максималь¬ Максималь¬ но но но кг log2M t22M кгМ Время коррек¬ Сдвиг 0,5Л4 Замена Замена Предвари¬ тировки записей 3—4 адре¬ 3—4 адре¬ тельно вы¬ сов сов полняется поиск Объем допол¬ 0 2М адре¬ 3М адре¬ нительной па¬ сов связи сов связи мяти Максимальное число сравнений ограничивается Смакс = 1,44 log 2М. Однако для подравненного дерева характерны нару¬ шения условий подравненности после включения-исключения некоторых записей. Последовательная, строчная и бинарная древовидная организации данных предназначены для решения общей зада¬ чи — обработки записей с одним ключевым признаком. По¬ скольку они взаимозаменяемы, имеет смысл задача выбора луч¬ шей структуры данных. Обозначим через П — последователь¬ ную, С — строчную и Д — бинарную древовидную организа¬ цию данных, а через > — знак «лучше». Сравним методы ор¬ ганизации данных по следующим критериям: время формирования С > П > Д\ время поиска П > Д > С; время корректировки Д> С > П\ объем дополнительной памяти П > С > Д. Обоснование этих неравенств содержится в табл. 4.4. Че¬ рез tij обозначены константы с размерностью времени. Абсолютно лучшего метода организации данных не сущест¬ вует. Однако массив и строка допускают использование А- индексов, в этом случае при поиске и корректировке строка предпочтительнее бинарного дерева и может быть признана лучшей по всей совокупности критериев. Ключевой признак в задачах обработки данных часто удоб¬ но представлять разделенным на отдельные символы. Древо¬ 141
видная организация данных, ориентированная на посимволь¬ ное хранение ключевых признаков, называется позицион¬ ным деревом. Каждый символ ключа соответствует вер¬ шине дерева: первый — вершине первого уровня, второй —■ вершине второго уровня и т. д. Каждый путь на дереве соответ¬ ствует цепочке символов, образующих какой-то ключ. Если у некоторых ключей несколько начальных символов совпадает, Рис. 4.14. Два позиционных дерева для признаков ФАМИЛИЯ и ГОД РОЖДЕНИЯ то они имеют общие вершины в дереве. Вершина, относящаяся к последнему символу ключа, содержит специальный разде¬ литель (например, «*») и адрес связи на запись с соответствую¬ щим ключом. В памяти строится столько деревьев, сколько различных первых символов есть в значениях ключевых при¬ знаков. На рис. 4.14 показаны два позиционных дерева для доступа к данным, приведенным в табл. 4.5. Для сокращения объема дерева и времени поиска в нем не учитываются те символы ключей, которые не влияют на одно¬ значное отличие записей. Так, в дереве для ключей-фамилий у значения БОБРОВ (см. рис. 4.14) первые две буквы опреде¬ ляют ветвь, ведущую только к одной записи, поэтому осталь¬ ные символы фамилии хранятся вне дерева. Разумеется, корректировка (например, включение фамилии БОКОВ) по¬ требует переноса части этих символов в дерево. 142
Таблица 4.5 ФАМИЛИЯ ГОД РОЖДЕНИЯ Белов 1946 Батов 1939 Бобров 1950 Басов 1935 Белкин 1942 В древовидной организации данных связь какой-то записи с N записями, составляющими ее группу, реализуется с помощью N адресов связи. Возможно, однако, связать все записи груп¬ пы в цепочку и адресовать с предшествующего уровня первую запись группы. Таким образом получается новая нелинейная организация данных — список. Список является множеством элементов, каждый из которых может быть либо записью, либо списком. Структуру списка вы¬ ражают формулой, в которой записи помечаются буквами, а списки заключаются в круглые скобки. Список, включенный в другой список, называется подсписком. Перечисление всех списков из записей Аъ А2,..., Л71, образующих множество L0, сводится к следующему. Обозначим через L/< множество всех кортежей с элементами из Lh. Введем последовательность мно¬ жеств = £о U U L2 — U L3= L% U L2\ со Все списки содержатся в множестве L — U Lt. Пусть LQ={A,B)\ Lx = {(А, В), (Л), (Б), Л, Б}; L2 = {((Л, Б), (Л), (Б), Л, Б), ((Л, Б), (Л), (В), Л,...)} и т. д. Введенный аппарат списков намного шире, чем требуется для представления деревьев. Он используется самостоятельно также в задачах искусственного интеллекта и анализа тексто¬ вой информации. Записи, входящие в список, могут занимать произвольные участки в памяти ЭВМ. Адреса связи, принадлежащие каждой записи, образуют звено связи. Список, как и строка, может быть однонаправленным, двунаправленным и кольцевым. По- 143
Звено связи УС подсписка / Звено связи Звено связи элемента в подсписка 2 Звено связи элемента а Звено связи элемента в Звено связи подсписка 3 Звено связи элемента Звено связи элемента С УС Звено связи подсписка / о) Звено связи Звено связи элемента в подсписка 2 Звено связи Звено связи элемента а элемента в Звено связи Звено связи подсписка 3 элемента с Звено связи элемента с Рис. 4.15. Однонаправленный (а) и двунаправленный (б) список ((а, в), в((с), с)) 144
Г Wj I Рис. 4.16. Пример решетки для трех ключевых признаков следний вариант на практике встречается редко. В звене связи однонаправленного списка—два адреса: первый указывает на следующий элемент списка, второй — на подсписок или запись. В звене связи двунаправленного списка — четыре ад¬ реса: два из них обеспечивают прямое и обратное направление в списке, третий и четвертый адресуют начало и конец подспис¬ ка. Однонаправленный и двунаправленный варианты списка ((а, в), в, ((б), б)) показаны на рис. 4.15. Обозначение конца списка совпадает с обозначением конца строки. Дерево тоже имеет формулу, так как существует эквивалент¬ ный ему список. Формула дерева, приведенного на рис. 4.11: (Л, (Ву (Еу F)y Су (G), D)). Решетки предназначены для представления записей с не¬ сколькими ключевыми признаками. Рассмотрим случай трех ключевых признаков Л, В, С с возможными значениями Ах<. <СА2у Вх < В2 < В Зу Сх <С С2. 12 записей содержат все комби¬ нации этих значений. Запись X с набором значений ключей Att Bty Ct имеет в решетке адрес связи на запись Y с ключами A Bjy Cjy если у X и Y любые две пары ключей равны, а для одной пары ключ из Y непосредственно больше ключа из X. Пример решетки показан на рис. 4.16. Входом в решетку служит за¬ пись с ключами <.А1У Blt Сх >. 145
В общем случае записи, содержащие N ключевых призна¬ ков А 1 (со значениями ап < а12 <С ... <С а1р), А2 (а2а22< С ... a2g), ..., AN (aNlaN2 ... aN t), образуют структуру решетки, если существует путь из адресов связи от записи X со значениями ключей < ali% a2jt ..., аык > к записи У < alh а2т, ..., аХп >, когда для некоторого t ^. N atsC <«/r(a/s € я*г С У), а остальные пары значений ключей из X и У совпадают. Решетки удобно создавать в тех случаях, когда в записях содержатся почти все возможные комбинации значений ключа. При уменьшении числа записей возможно появление нескольких входов в решетку или разделе¬ ние ее на несвязные компоненты. Преимуществом решеток является небольшое число срав¬ нений при поиске (в рассматриваемом примере пять сравнений максимально при обработке запроса <ZA = ah> Д <.В — = bn>/\<ZС — cm>). Та же задача для мультисписка требует максимально шесть сравнений. Характеристики решетки мож¬ но улучшить почти вдвое, сделав ее двунаправленной. Еще одно положительное свойство решеток состоит в том, что записи с постоянным значением какого-то ключа образуют подрешетку. Например, подрешетка получается для А — а2 (на рис. 4.16 она выделена пунктирными стрелками). Имеются подрешетки и для записей с постоянными значениями двух признаков. Решетка, мультисписок и N инвертированных массивов (ко¬ торые в этом случае превращаются в N массивов из М индек¬ сов каждый) позволяют решать одну и ту же задачу — обра¬ ботку М записей по N ключевым признакам. Мультисписок имеет преимущество перед системой инвертированных мас¬ сивов по объему занимаемой памяти. Мультисписок и решетка занимают примерно равную память, но в решетке обеспечива¬ ется более быстрый поиск, так как из-за ветвления адресов свя¬ зи в подрешетках не надо просматривать их полностью. В муль¬ тисписке каждой подрешетке соответствует отдельный список, просматриваемый последовательно, до конца. 4.3. СТРАНИЧНАЯ ОРГАНИЗАЦИЯ ДАННЫХ Объемы данных, хранимых в экономических информаци¬ онных системах, как правило, очень велики и часто достигают 107—108 символов. Обследование ряда ЭИС показало, что одна составная единица информации содержит от 2500 до 150000 значений (в среднем, 22000 значений) и число символов в значе¬ нии колеблется от 12 до 120 (в среднем 40 символов). Для хра- 146
/(-индексы Номер Записи массива (представлены своими страниц страницы ключами) 24 1 09 11 15 18 20 24 37 2 26 29 30 32 35 37 51 3 38 41 44 45 48 51 61 4 52 54 55 58 60 61 73 5 63 66 67 69 72 73 84 6 75 76 78 81 83 84 Резервная память Рис. 4.17. Размещение записей массива в страничной памяти нения таких объемов информации необходимо использовать за¬ поминающие устройства большой емкости. Память запоминающего устройства подразделяется на страницы. Страницей называется такой участок памяти, ин¬ формация из которого может быть считана или записана с по¬ мощью одного оператора, а при извлечении необходимых для обработки данных требуется считать всю страницу, на которой они располагаются. Страницы памяти группируются в тома памяти, связанные, как правило, с одним механизмом дос¬ тупа. Когда данные располагаются в страничной памяти, к изве¬ стным уже критериям выбора метода организации данных (время формирования, поиска и корректировки, объем допол¬ нительной памяти) добавляются новые критерии и появляются новые факторы, влияющие на эти критерии. Рассмотрим особенности представления массива на стра¬ ницах внешнего запоминающего устройства. Записи массива должны быть упорядочены по значениям некоторого ключевого признака. На каждой странице располагается часть записей массива (блок записей) при условии, что записи одного блока упорядочены и упорядоченность не нарушается при переходе от страницы к странице. Страница обычно не заполняется пол¬ ностью, т. е. в ней оставляется резервная память (обычно 10— 15% размера страницы). Если этого не делать, то включение новых записей потребует создания для них новых страниц при каждой корректировке. Эти страницы будут содержать доста¬ точно мало записей, отчего резко возрастет объем дополни¬ 147
тельной памяти, необходимый для массива. Ключ последней записи в каждой странице выносится в массив /(-индексов. При¬ мер размещения отсортированного массива на страницах внеш¬ него запоминающего устройства приводится на рис. 4.17. При обработке массива значительное время (до 95%) рас¬ ходуется на извлечение страниц из внешней памяти. Поэтому при расчете времени формирования, поиска и корректировки данных в массиве обычно учитывается только время выборки страниц, на которое оказывают влияние два специфических фактора — вероятности обращения к каждой странице, назы¬ ваемые активностями страниц, и взаимное расположение стра¬ ниц на внешнем запоминающем устройстве. Возможны два режима извлечения страниц из отдельного тома памяти: доступ от начальной точки и блуждающий до¬ ступ. Доступ от начальной точки предпола¬ гает, что после обработки i-й страницы механизм доступа от¬ водится в стандартное положение (начальную точку) и извле¬ чение (/ + 1)-й страницы происходит от начальной точки, за¬ тем механизм доступа снова возвращается в нее. Обработка следующей страницы при блуждающем доступе начинается от места чтения-записи предыдущей страницы. Рассмотрим оптимизацию введенных режимов доступа — нахождение оптимальной начальной точки для первого случая и нахождение оптимального взаимного расположения стра¬ ниц для второго. Критерием оптимальности служит минимум среднего времени доступа. Известны вероятности обращения к страницам (активности) г* i — 1, N и время доступа от i-Pi страницы к у-й, которое обычно описывается линейной функцией с константами а, b: tij = а + b \i — /|. В случае когда i = у, время доступа всегда меньше, чем tu = Qy однако эта разница при анализе обычно не учитывает¬ ся. Коэффициент b всегда положителен. Чем ниже величина Ьу тем выше быстродействие запоминающего устройства. У ре¬ альных запоминающих устройств указанная формула для tij соблюдается обычно приближенно. Для запоминающих уст¬ ройств с параметром b = 0 (память равного времени доступа) различное взаимное расположение страниц не оказывает вли¬ яния па время доступа к данным. Время доступа от «средней» точки х к произвольной стра¬ нице i составляет ТМ = 2ri txi ='2in(a + bx — bi) + /=I i=i 148
N + 2 r^a— i=x+1 Будем считать i изменяющимся непрерывно и введем две X х функции F (х) = \ г (у) dy и Ф (х) =--= f уг (у) dy. Тогда по- о о лучим Т (х) = а — 2ЬФ (х) + 2bxF (х) — Ьх + ЬФ (N). Точка х, доставляющая минимум времени доступа Т (х), должна удовлетворять уравнению Т' (х) = 0, т. е. — 2ЬФ'(х) + 2bF{x) + 2 bxF' (х) — Ь = 0. Если учесть очевидное равенство Ф' (л:) =■- xF' (х), то ре¬ шением этого уравнения является F {х) — 0,5, откуда может быть определено х. Возвращаясь к дискретному распределению г,*, можно установить, что для оптимального .т величина Rx~ х = 2ri Должна как можно меньше отличаться от 0,5. /= 1 В качестве примера рассмотрим том запоминающего устройства, состоящий из N = 7 страниц с активностями стра¬ ниц гх = 0,27; г2 = 0,16; г3 = 0,10; г4 = 0,24; гъ = 0,08; гв = 0,09; г7 = 0,06. Вычисляем /^=0,27; /?2=0,43; Я3 = =■ 0,53; = 0,77. Поэтому средняя точка в нашем приме¬ ре соответствует третьей странице. Целевая функция в задаче оптимального блуждающего доступа соответствует минимуму времени доступа Т от одной произвольной страницы к другой произвольной странице: N N N N ^=2 2/"г'г'==а+6 2 21 '> /=1 /=i /=1 y=i Укажем без доказательства, что минимум Т достигается, если соблюдается одно из двух неравенств П ^ rN ^ л2 ^ гы-\ ^ ... Гы < П < Гдг__ 1 < Го < ... Оптимальная перестановка страниц получается в резуль¬ тате следующей процедуры. Отсортируем страницы по убыва¬ нию г,- и полученную последовательность обозначим перемен¬ ной у. После этого /-я страница должна получить в своем томе номер У? (у), определяемый по формуле Я (у) = L jV/2J + 1 - (- 1)/ L//2J , где LzJ — целая часть г. 149
В условиях предыдущего примера отсортированная после¬ довательность rt имеет вид 0,27; 0,24; 0,16; 0,10; 0,09; 0,08; 0,06. Оптимальное размещение страниц показано на рис. 4.18. График приблизительно симметричен относительно R (у) = - [_N/2A + Г Применение блуждающего доступа ограничено, поскольку требуемая упорядоченность по активности страниц часто раз¬ рушает важную упорядоченность страниц по ключу.’ Рис. 4.18. Активности для оптимального размеще¬ ния страниц при блуждающем доступе к ним При включении или исключении записи с ключом q коррек¬ тировка производится только в пределах i-й страницы, где i определяется по условию Ki-i <Z q ^ Ki Ki — К-ин- дексы для массива). Внутри страницы алгоритм корректировки производит сдвиги хранящихся там записей (см. 4.1). Включе¬ ние и исключение записей в отдельных страницах могут про¬ исходить неравномерно. Когда резервная память страницы будет исчерпана и в нее потребуется включить новую запись, наступает переполнение страницы. Частота переполнений описывается формулой где К —ожидаемое число корректирующих обращений к про¬ извольной странице до наступления ее переполнения; V — объем свободной памяти в странице, выраженной в количестве записей; г > 0,5 — вероятность того, что корректирующее обраще¬ ние является включением. Величина 1 —г описывает вероятность исключения запи¬ си, замены значений реквизитов не учитываются. В случае ^0,5 страница, если ее рассматривать в среднем, никогда не переполняется. 150
Когда /-я страница будет переполнена, необходимо создать новую страницу, перезаписать в нее часть записей из i-й стра¬ ницы, добавить один /(-индекс для новой страницы и скоррек¬ тировать значения /(-индексов. Рассмотрим задачу оптимального распределения массивов между томами запоминающих устройств. Введем матрицы В = — ||6/7*|| и X = \\Xjh\\, где i = 1,7— номер запроса пользо¬ вателя, у — 1, N — номер массива, k = 1, р — номер тома запоминающего устройства: 1, если обработка /-го запроса включает обращения к -му массиву; Ьц = 1 О — в противном случае. ( 1, если у-й массив размещен на &-м томе; *jh { ~ 10 — в противном случае. Предполагается, что при Ьц == bij2 = ...= bijti = 1 мае сивы Д, у2>..., js обрабатываются совместно. Введем выражение Jh • Eih равно числу массивов, хранящихся в k-м томе памяти и необходимых при обработке /-го запроса. Если значение Eik ^ 2 для некоторых /, &, то время обработки /-го запроса будет достаточно большим из-за перемещений механизма до¬ ступа от одного массива к другому (эти перемещения отсутст¬ вуют при Eiu = 0 и Eih = 1). Поэтому целевой функцией в за¬ даче распределения массивов, которую необходимо минимизи¬ ровать, является Е Ец{ = ^ij iU i,k,j Среди ограничений задачи выделим условия к=~Р’ / где Vj — число символов в у'-м массиве; Wh — число символов в k-м томе. Приведенные условия характеризуют ограниченную ем¬ кость томов памяти. Условия = 1 разрешают хранить каждый массив толь- k ко в одном томе. 151
Таблица 4.6 ФАМИЛИЯ ПРОФЕССИЯ слесарь | токарь | штампотцнк электрик Бардии /1(1) Л (2) Басов Л(3) Л (4) Л (5) Батов л (6) Л (7) Белов Л (8) /1(9) Иванов Л (10) /1(11) Исаев /1(12) Л (13) /1(14) Задача с целевой функцией F является известной задачей линейного программирования с булевскими переменными xJh. Размещение записей упорядоченной строки на страницах запоминающего устройства в основном производится так же, как и для массива. Однако каждая страница представляет со¬ бой цепной каталог, в котором размещается часть записей стро¬ ки, связанная в упорядоченную цепь. Для строк также спра¬ ведливы выводы об оптимальном доступе и переполнении стра¬ ниц, сформулированные выше. Рассмотрим особенности страничной организации мульти¬ списков, которые предназначены для обработки записей по не¬ скольким ключевым признакам. В качестве примера в табл. 4.6. показаны 14 записей с ключевыми признаками ФАМИЛИЯ и ПРОФЕССИЯ (остальные реквизиты в данном случае несуще¬ ственны). На пересечении строки с некоторой фамилией и столбца с некоторой профессией указан номер записи, которая содержит именно эти значения в качестве ключей. В простейшем случае мультисписок будет содержать две строки — с указателем ФАМИЛИЯ —- (А (1), А (2), А (3),..., А (13), А (14)) и с указателем ПРОФЕССИЯ — (А (3), А (6), А (12), Л (1), А (7), Л (10), Л (13), Л (2), Л (4), Л (8), Л (14), Л(5), Л (9), Л (11)). При размещении мультисписка в страничной памяти необ¬ ходимо размещать каждую строку в небольшом числе рядом расположенных страниц, что позволит уменьшить время до¬ ступа к записям. Эффективная организация мультисписка предполагает выполнение следующих условий: число записей в каждой строке должно быть небольшим; адреса хранения за¬ писей строки должны монотонно возрастать либо монотонно убывать; строка должна размещаться по возможности в одной странице. Для сокращения длины строк в мультисписке необходимо детализировать содержимое указателей. Например, указатель 152
ФАМИЛИЯ = 'Ба' определяет строку (Л (1), Л(2), Л(3), Л(4), А (5)), указатель ФАМИЛИЯ ='Бе' — строку (Л (6), Л (7), Л (8), Л (9)), указатель ФАМИЛИЯ = 'И' — строку (Л (10), Л (11), Л (12), Л (13), Л (14)). Поскольку реквизит ПРОФЕССИЯ содержит четыре значе¬ ния, возможно существование следующих четырех строк: (Л (3), Л (6), Л (12)), (Л (1), Л (7), Л (10), Л (13)), (Л (2), Л (4), Л (8), Л (14)), (Л (5), Л (9), Л (11)). При поиске в «сокращенных» строках необходимо сначала проанализировать все указатели, чтобы выбрать одну строку, заведомо содержащую требуемую информацию. Рассмотрим, например, запрос НАЙТИ ФАМИЛИЯ ==• 'Иванов' Д ПРОФЕССИЯ = 'Электрик' Мультисписок содержит три строки для реквизита ФАМИ¬ ЛИЯ и четыре — для реквизита ПРОФЕССИЯ, приведенные выше. Следовательно, потребуются три обращения к памяти для выбора строки (Л (10), А (11), А (12), А (13), А (14)) и четыре, обращения для выбора строки (Л (5), Л (9), Л (11)). Последняя строка короче, поэтому она просматривается полностью до извлечения нужной записи Л (11), т. е. необхо¬ димы три обращения к памяти. Общее число обращений в рас¬ сматриваемом примере—10. Однако указатели всех строк за¬ нимают, как правило, одну страницу, как и сами строки, ко¬ торые разделены на достаточно короткие участки. Поиск так¬ же ускоряется оттого, что в каждом указателе хранится инфор¬ мация о числе записей в строке. При размещении дерева в страницах внешней памяти необ¬ ходимо, чтобы связи записей в каждой странице имели свойства дерева, в том числе единственную корневую запись. Доступ к записям страницы может производиться только через корне¬ вую запись. Пример распределения записей дерева но страни¬ цам внешней памяти показан на рис. 4.19. Если объем данных очень большой и индексы к ним занимают несколько страниц, то приходится создавать индексы для этих индексов. Полу¬ чаемая структура называется В-деревом (рис. 4.20). Нижний уровень В-дерева образуют страницы, заполненные /(-индек¬ сами. Обычно в каждой странице оставляется свободная память в расчете на расширение числа индексов. Последний индекс каждой страницы поступает на страницу предпоследнего уров¬ ня В-дерева. Когда она будет почти заполнена индексами, по¬ следний из них поступит в страницу более высокого уровня и т. д. Поиск данных (например, значения q) начинается с корня В-дерева, который обычно имеет два разветвления. Предпо¬ ложим, что К8 < Я < /(17. 153
В этом случае выполняется переход по правой ветви на вто¬ рой уровень и поиск в соответствующей странице. Будем счи¬ тать, что К10< q <С /Ci з- Следовательно, надо спуститься на третий уровень по адресу, записанному в /(13. Третий уровень последний, и поиск в нем происходит как в обычном /(-индек¬ се. Достоинство В-дерева состоит в его простом расширении. Рис. 4.19. Размещение записей дерева в страничной памя ти. Пунктиром обведены записи, образующие страницу При переполнении какой-либо страницы половина ее содержи¬ мого переходит в новую страницу, а на вышестоящем уровне появляется новый индекс. В рассматриваемом примере это произойдет при добавлении /(18 > /(17. Состояние изменив¬ шихся страниц показано на рис. 4.20, б. Чтобы эффективно использовать высокоразвитый аппарат представления и обработки данных, реализованный в реля¬ ционной, сетевой, иерархической и бинарной моделях дан¬ ных, необходимо выбрать метод организации данных для пред¬ ставления /г-арных отношений, отношений между N СЕИ, веер¬ ных отношений и записей иерархической базы данных. Пред¬ полагается, что данные должны располагаться на внешних запоминающих устройствах со страничной организацией па¬ мяти. В качестве критериев выбора используются среднее вре- 154
«9 Кю Nil к,г N13 Till Адреса данных N;o N13 *16 *» ,Л. % Njg К,А К,5 Чщ Рис. 4.20. Формирование (а) и корректировка (б) В-дсрева мя поиска при обработке запроса и среднее время реализации корректировки при ограничении на общий объем памяти, тре¬ буемой для представления данных. В большинстве случаев за¬ ранее неизвестно взаимное расположение страниц, на которых располагается необходимая информация, и вместо расчета среднего времени приходится ограничиваться расчетом числа страниц, считываемых при поиске и корректировке одного зна¬ чения. В качестве вариантов представления я-арных отношений не¬ обходимо анализировать те структуры данных и их модифика¬ ции, которые предназначены для обработки данных по несколь¬ ким ключевым признакам. Среди них основной массив с инвертированным массивом к нему (см. табл. 4.1); 155
мультисписок (см. табл. 4.3); последовательная структура данных с п общими деревьями для доступа по п ключам (см. рис. 4.14 для п = 2). Одна запись массива или мультисписка соответствует стро¬ ке отношения. Эффективность указанных структур данных оценивается на примере реализации оператора выборки с формальной за¬ писью R [(.4i = а,) Д (Л? = а2) Л ...Д (Ат = ят)1, где R — имя отношения; Ai — имя реквизита, входящего в структуру отношения R; аь — значение реквизита At\ т ^ п — число реквизитов, для которых сформулированы ус¬ ловия выборки. Если отношение реализовано с использованием инвертиро¬ ванного массива, выполнение оператора выборки потребует т обращений к инвертированному массиву, поскольку в условии оператора указаны имена т реквизитов. После обработки ад¬ ресов, извлеченных из инвертированного массива, становятся известны адреса d записей из основного массива, удовлетво¬ ряющих условиям оператора выборки. Некоторые из этих за¬ писей могут располагаться на одних и тех же страницах, по¬ этому в среднем потребуется С = D (1 — e~~d/D) обращений к основному массиву, где е » 2,73; D — число страниц в основ¬ ном массиве. Полученные d записей трансформируются в d строк отношения, которое является результатом выборки. Суммарное число обращений к внешней памяти составит C1 = m + C = m + D(l— e~d'D). Если для представления отношения используется мульти¬ список, то сначала по известным длинам списков определяется самый короткий из списков, необходимых для реализации вы¬ борки (что требует чтения одной страницы). Пусть самый ко¬ роткий список содержит / записей, тогда по аналогии с преды¬ дущим выражением суммарное число обращений к внешней па¬ мяти равно: С2= 1 + D (1 — е-"'■>). В третьем варианте представления отношения общие дере¬ вья требуют для своего размещения больше страниц, чем ин¬ вертированный массив, так как для организации разветвлений в дереве необходимы дополнительные адреса связи. Поэтому для обращения к т общим деревьям расходуется то > т чте- 156
ний страниц. В остальном алгоритмы третьего и пер¬ вого вариантов аналогич¬ ны, и общее число чтений составит С9 = m0 + D (1—e~d/D). Сравнение значений Сг и С3 показывает, что Cj ^ ^ С3 и первый вариант всегда не хуже третьего. Сравнить так же просто Сг и С2 не удается, поскольку зависимость между / и d обыч¬ но неизвестна. Однако если условие оператора выборки опре¬ деляет значения небольшого числа реквизитов (т невелико), то первый вариант представления отношения лучше, чем вто¬ рой, по критерию минимального числа обращений к внешней памяти. ДИСЦ Таблица 4.7 ПРЕП дисц ТРУП п, Д. г2 п, Д2 Г1 п2 Д. Гх П2 Дз г2 П3 Д2 Г3 Пз Д2 Г. Рис. 4.21. Организация данных для представления в памяти отноше¬ ния между СЕИ ПРЕП, ДИСЦ, ТРУП 157
Выбор наилучшего представления отношения для реализа¬ ции других операторов реляционной алгебры изучен пока не¬ достаточно. При выборе метода организации данных для отношения меж¬ ду N СЕИ и веерного отношения предпочтение обычно отдается различным модификациям строки главным образом потому, что число взаимосвязей данного значения СЕИ с остальными силь¬ но меняется от значения к значению и заранее неизвестно.Ор¬ ганизация данных для отношения между тремя СЁИ, связи которых зафиксированы в табл. 4.7 вместе с данными пересе- Рис. 4.22. Организация данных для представле¬ ния в памяти веерного отношения чения xif определяющими фрагмент расписания занятий в вузе, приведена на*рис. 4.21. Значения СЕИ ПРЕП содержат инфор¬ мацию об отдельных преподавателях, значения СЕИ ДИСЦ— об учебных дисциплинах и значения СЕИ ТРУП — о сту¬ денческих группах. Данные пересечения (обозначены xt) уточняют время и место проведения занятий. Для каждого зна¬ чения каждой СЕИ организуется кольцевая строка. В кольцо связываются те элементы данных пересечения, которые имеют одинаковое значение одной из трех СЕИ. Число кольцевых строк равно суммарному числу значений во всех составных единицах информации. При определении структуры данных для веерного отноше¬ ния остановимся сначала на размещении в памяти одного вее¬ ра, например {яь Ь1Ъ bl2, bl:l). Указанные в веере значения свя¬ зываются в двунаправленную кольцевую строку, и дополни¬ тельно значения bn, Ь12, 613 содержат адрес связи на aL (рис. 4.22). При такой организации адресов связи каждому опе¬ ратору, манипулирующему с веером, соответствует цепочка адресов связи, специально предназначенная для его быстрой реализации. Вееры, образующие веерное отношение, могут 158
объединяться в массивы с записями переменной длины (одна за¬ пись хранит информацию из одного веера) либо эти записи мож¬ но разместить в памяти с помощью адресной функции. Если при вычислениях из веерного отношения извлекается до 5% ве¬ еров, то второй способ предпочтительнее, поскольку обеспёчи- . вает минимальное время поиска вееров. Этот последний вывод .справедлив и для организации записей иерархической базы 1 данных в памяти ЭВМ. В последнее время при реализации систем машинной обра* ботки информации чаще используются простые методы органи¬ зации данных, например линейные методы для обрабатывае¬ мых данных выбираются чаще, чем нелинейные. Надо также от¬ метить, что разработка любого нового класса запоминающих устройств вносит значительные коррективы в систему критери¬ ев методов организации данных, в алгоритмы формирования и обработки данных. Контрольные вопросы 1. Перечислите свойства последовательной организации данных. 2. В чем суть операций формирования, поиска и корректировки данных? 3. Перечислите разновидности условий поиска. 4. Дайте сравнительную оценку методов поиска и корректировки дан¬ ных в массивах. 5. Что представляет собой инвертированный массив и в каких случаях его применение наиболее эффективно? 6. Дайте определение строчной организации данных. 7. Какие методы можно использовать для поиска в строках? 8. Применение каких методов позволяет ускорить поиск в строке? 9. Что называется индексом и каковы его разновидности? 10. Почему индексы позволяют ускорить поиск в массиве и строке? 11. Охарактеризуйте преимущества и недостатки размещения данных в соответствии с адресной функцией. 12. Что представляет собой мультисписок, в каких случаях он применя¬ ется? 13. Перечислите свойства древовидной организации данных. 14. Дайте определение упорядоченного бинарного дерева. 15. Охарактеризуйте алгоритмы формирования, поиска и коррек¬ тировки бинарных деревьев. 16. Какие критерии используются для сравнения массивов, строк, упо¬ рядоченных бинарных деревьев? 159
ГЛАВА 5 СТРУКТУРА ЭКОНОМИЧЕСКИХ ИНФОРМАЦИОННЫХ СИСТЕМ 5.1. ИНФОРМАЦИОННЫЕ ВЗАИМОСВЯЗИ В ЭКОНОМИЧЕСКИХ ИНФОРМАЦИОННЫХ СИСТЕМАХ При изучении структуры экономических информационных систем (ЭИС) рассматриваются ее элементы, информационные взаимосвязи между ними, а также взаимосвязи между ЭИС в целом, объектом управления, для которого она создана, и внешней средой. Между ЭИС объекта, объектом и внешним миром существу¬ ют определенные информационные связи. Информацию дан¬ ной ЭИС будем рассматривать некоторым множеством — информационной совокупностью и считать ее внутренней, ин¬ формацию внешнего мира — внешней. Информация, поступающая в ЭИС,— входящая (//+), а информация, выходящая из нее,— исходящая (И~). Входящая информация может быть разделена на входящую внешнюю (#+в), поступающую из внешнего мира (для предприятия — из министерства, других предприятий и организаций и т. д.), и входящую внутреннюю Ивн, получаемую от управляемого объекта. Последняя отражает обратную связь объекта с управ¬ ляющим органом, поскольку она содержит сведения о состоя¬ нии объекта. Эту информацию чаще называют первичной (иног¬ да — регистрируемой), так как она возникает в результате первичного учета. Первичная информация (Ип) имеет важ¬ ное значение для функционирования информационной сис¬ темы объекта и управления им. От полноты, достоверности и своевременности первичных данных зависит качество после¬ дующего преобразования информации. Для Ив и Ип у как правило, характерно, что их пересече¬ ние соответствует пустому подмножеству: Ив П #п = 0. Исходящую информацию (И~) также можно подразделить на две группы: потребляемую внешним миром (исходящую внешнюю (Иё) и предназначаемую непосредственно для управ¬ ляемого объекта (исходящую внутреннюю Ип). Последняя является информацией управления, воздействия на управ¬ ляемый объект. В выработке исходящей информации заклю¬ чается основная цель функционирования ЭИС. 160
Для исходящей информации имеет место неравенство Яг П П Ип Ф 0, что связано с необходимостью использова¬ ния одной и той же информации разными объектами. Очевидно, что для ЭИС имеем объединение подмножеств информации на входе ИХ (J ИХ — Я+ и на выходе Я в (J U Ий - я- Рассмотрим связи блока, реализующего преобразование экономической информации (рис. 5.1). В ЭИС часть информации — необрабатываемая (Ип) не подвергается каким-либо преобразованиям. К ней относятся часть ИХ и часть ИХ- Обозначим первую ИХ.н и вторую — ИХ.н- Выходящая из ЭИС необработанная информация ИХ состоит частично из ИХ (обозначим Ив.и) и частично из Яп (обозначим Яп.н). Другая часть информации ЭИС — обрабатываемая (Яоб) подвергается преобразованиям. Для Яоб справедливо отноше¬ ние разности множеств: Яо5 = Я+\ЯН+ = Я+\(Яв+.„ U #п+.н). Результатом обработки является вновь созданная производ¬ ная информация (Я'). Часть И' образует вместе с Я« исхо¬ дящую информацию: я- = Яр и Ип = Яр и (Яв.н и Яп.н). Здесь Яр — та часть производной информации, которая, яв¬ ляясь продуктом обработки, берется из ЭИС и используется для нужд объекта управления. Такая информация называется результатной, и в ее получении заключена основная цель обработки экономической информации. Другая часть И' вновь поступает на обработку, поэтому яв¬ ляется промежуточной информацией (Я'пр). Таким образом, Я' — объединение Яр и И'ир, т. е. Я' = Яр (J Я'пр. Объединение промежуточной информации (ЯпР) вместе с входящей обрабатываемой информацией (Яоб) образует исход¬ ную для обработки информацию (Я0): яи = яоб и япр = и+\{И1 „ и ЯпМ) и япр. При отсутствии необрабатываемой информации (когда ИХ = - 0) Яо = я+ и япр. Обработка информации представляется некоторой функци¬ ей: И' — 9 (Я0) = 0 (Яоб и Япр) = 0 (Я+\(Яв+.н и Яп+н) и Япр). Так как Я' Яр U Я'пр, то яР и я;,р = 0 (я+\(яв+и и яп+ „) и япр). 6 Зак. 1818 1Ь>
Т а б л и и, а 5.1 11анмсповамис составных массипов "в < и+ "н Ип "об ЯПР Ио И' "пр ЯР и~ "п "в" Счета-фактуры X X X X X X X X X Распоряжения X X X X X X X X X на доставку материалов Приходные X X X X X X X X ордера Данные о фак¬ X X X X тическом при¬ еме материалов Приемные акты X X X X X X X X X X X Накладные X X X X X X X X X X X Данные о фак¬ X X X X тической выда¬ че материалов Счета X X X X X X X X Лимитные кар¬ X X X X X X X X X X X ты Требования на X X X X X X X X X X X отпуск мате¬ риалов Сопроводитель¬ X X X X ный реестр сда¬ чи документов Карточка X X X X складского уче¬ та Инвентарные X X X X X X ярлыки Инвентариза¬ X X X X X X X ционные описи Инструкции, X X X X X X X приказы Письма, заяв¬ X X X X ления, доклад¬ ные Из этого соотношения виден динамический характер про¬ цесса обработки экономической информации: промежуточная информация до шага обработки (#„р) не совпадает с проме¬ жуточной информацией после этого шага (Я'пр). Другими сло¬ вами, Я'цр каждого i-го шага обработки информации является исходной (Иjip) для последующего (i + 1)-го шага. Объединение информационных связей между ЭИС объекта, объектом и внешним миром и связей блока обработки инфор¬ мации приводит к общей схеме информационной взаимосвязи объекта управления, его ЭИС и внешнего мира (рис. 5.1). 162
Ив Г' I ЭИС объекта Ий 1 Iй; И(ИГ Ч 1 L. ''Пр И'= в(Ив) и' И'пс Объект управления .J Рис. 5.1. Общая схема информационных взаимосвязей в ЭИС В качестве примера рассмотрим ЭИС, которая обслуживает склады промышленного предприятия (табл. 5.1). Анализ табл. 5.1 показывает, что СЕИ проходят, как правило, через все стадии обработки информации. Тот факт, что информаци¬ онные потоки Hi у И+ у #об, И о, И'у Яр, И~у Ийу Ип охваты¬ вают почти все СЕИ, показывает высокую степень взаимосвязи СЕИ в ЭИС складов промышленного предприятия. Общий анализ ЭИС, основанный на учете информационных взаимосвязей, позволяет выделить в обороте информации три стадии. Первая стадия — наблюдение изучаемых явлений (про¬ цессов производства и обращения, находящих отражение в разнообразных хозяйственных операциях), регистрация пер¬ вичных данных, сбор информации внешнего мира. Эта стадия является как бы этапом получения первичных данных о на¬ блюдаемых явлениях, этапом сбора данных из различных ис¬ точников по определенной программе и обеспечения ЭИС входящей информацией (ИЛ'). С другой точки зрения, объект управления может заключать в себе некоторую информацион- но-преобразующую систему S, вырабатывающую для рассмат¬ риваемой ЭИС входящую внутреннюю информацию Ип . . Основное назначение второй стадии — техническая обра¬ ботка зарегистрированных исходных данных с целью изготов¬ ления сводной, обобщенной информации, характеризующей не отдельные явления и факты, а их совокупность в наиболее удобном для следующего использования виде. Исходные дан¬ ные здесь выступают (по аналогии с материальным производ¬ ством) как предметы труда, а подготовленная на их основе производная информация (в частности, результатная)—как продукты труда. Именно на этой стадии внедряется автомати¬ зированная обработка информации. 6* 163
На третьей стадии полученная результатная информация (исходящая для ЭИС) анализируется if изучается. На ее осно¬ ве делаются выводы об исследуемых явлениях, вырабатывают¬ ся управляющие решения и осуществляется непосредственное воздействие на управляемые процессы. Эта стадия является как бы этапом потребления исходящей информации ЭИС: Р117 поступает на вход информационной системы S. Рассмотрим для примера подсистему ЭИС, обеспечивающую учет брака. Приемщик ОТК изучает сдаваемую продукцию, оп¬ ределяет ее качество и при обнаружении брака регистрирует в «Извещении о браке» первичные данные (количество забра¬ кованных изделий, их Еес, операцию, на которой возник брак, вид и причину брака и т. п.). Это первая, стадия оборота ин¬ формации. Затем первичные данные, отражающие все случаи брака и собранные за определенный период времени, группируются в соответствии с экономически обусловленной классификацией; их количественно-суммовые данные подсчитываются по опре¬ деленным группам этой классификации (например, виновни¬ кам брака, цехам и т. п.) и результаты обработки (например, количество деталей с браком на i-й операции обработки, число случаев окончательного брака по /-му цеху и т. п.) записыва¬ ются в форму отчетных сводок. На третьей стадии результат¬ ная информация, зафиксированная в отчетных сводках, изу¬ чается, анализируется и на основе полученных данных де¬ лаются выводы (например, в третьей декаде месяца случаи бра¬ ка наиболее часты, что является следствием неритмичности работы; основная причина брака— плохая техническая доку¬ ментация и т. п.) и принимаются конкретные меры (взыскание за брак с определенного виновника, упорядочение снабжения инструментами, недостатки которого привели к появлению брака, предъявление претензий за поставку недоброкачест¬ венного материала, изменение методики оперативного плани¬ рования и т. д.). Все эти стадии диалектически взаимосвязаны, и поэтому на практике возможны случаи, когда выводы о хозяйственных явлениях делаются по результатам наблюдения без их регист¬ рации и обобщения или по зарегистрированным, но необрабо¬ танным данным, и случаи, когда сводные показатели анали¬ зируются и изучаются работниками не данной, а вышестоящей контрольно-ревизионной организации. На второй стадии, кроме первичных данных, в обработке участвуют и ранее све¬ денные и обобщенные показатели (//пР); после анализа ре¬ зультатная информация часто вновь становится предметом об¬ работки и т. д. Однако такие отклонения принципиально не 104
нарушают общей схемы; схема справедлива для управления в большинстве случаев. Для машинной обработки экономической информации схе¬ матическое рассмотрение ЭИС и ее основных стадий имеет особое значение: только при подходе к функциям управления как к процессу познания хозяйственных явлений через син¬ тез первоначально учитываемых данных с последующим изу¬ чающим анализом обобщенной информации можно правильно осуществлять проектирование машинной обработки, цель ко¬ торого — нахождение наиболее верных технических путей такого синтеза с помощью вычислительной техники, опреде¬ ление места автоматизированной обработки информации в об¬ щей системе управления предприятием, установление ее гра¬ ниц, определение направлений ее дальнейшего развития. Элементы, образующие ЭИС, в ряде случаев целесообразно агрегировать, сгруппировать в промежуточные компоненты, называемые подсистемами. Подсистема представляет собой часть системы, выделенной из нее по какому-либо признаку, обладающему определенной самостоятельностью, и имеющую основные свойства системы. Необходимость выделения подсистем может быть вызвана следующими причинами: большим объемом информации в системе, когда техничес¬ кие средства не обеспечивают эффективное выполнение запро¬ сов всех потребителей информации; удобством группировки источников и потребителей ин¬ формации, что позволяет использовать более рациональную технологию обработки информации. В качестве классификационного признака, согласно кото¬ рому производится закрепление ЭИС за подсистемами, может использоваться производственное (функциональное) распре¬ деление, существующее на рассматриваемом объекте управле¬ ния. Такой классификационный признак используется на практике наиболее часто. С точки зрения рационального построения системы обра¬ ботки экономической информации, в частности оптимального структурирования данных, эффективным классификационным признаком является степень информационной близости между подсистемами. Степень информационной близости между дву¬ мя подсистемами определяется следующим образом: г— ПСХ-+У + ПСи->х, где ПСХ_>У — число различных (по имени) показателей, по¬ рождаемых подсистемой ПСХ и используемых подсистемой ПС у\ 165
Таблица 5.2 Подсистемы, использующие показатели Подсистемы, формирующие показатели ТЭУ ОУОП УМТС I УООП | БУ УРС I УТПП НХ ТЭУ 76 10 9 2 15 18 42 ОУОП 11 52 13 16 5 2 22 36 УМТС 12 6 81 4 12 6 18 28 УООП 2 5 3 32 5 — 6 27 БУ 2 9 8 2 74 12 — 12 УРС 4 — 4 — 20 85 — 24 УТПП 2 — 1 4 — — 52 10 НХ 1 7 84 ПСу^х — число различных (по имени) показателей, по- рождаемых подсистемой ПСУ и используемых подсистемой ПС х. Значения ПСХ_+У и ПСУ^Х для важнейших подсистем АСУ (данные условные) приведены в табл. 5.2. В таблице приняты следующие сокращения: ТЭУ — технико-экономическое уп¬ равление; ОУОП — оперативное управление основным про¬ изводством; УМТС — управление материально-техническим снабжением; УООП — управление обслуживанием основного производства; БУ — бухгалтерский учет; УРС— управление реализацией и сбытом продукции; УТПП — управление тех¬ нической подготовкой производства; НХ—нормативное хо¬ зяйство. Отметим, что в табл. 5.2 по диагонали приведены данные о количестве показателей ПСх в соответствующей под¬ системе. Степень информационной близости г между различными под¬ системами изменяется от 2 = 0 для подсистем ТЭУ и УООП до г = 42 для подсистем ТЭУ и НХ. Введем коэффициент информационной взаимосвязи а меж¬ ду двумя подсистемами х и у следующим образом: нсх_>и+псу^х псх+лсу Для рассматриваемого варианта коэффициенты а приведе¬ ны в табл. 5.3. Бели информационная взаимосвязь между двумя подсис¬ темами односторонняя либо отсутствует совсем, параметры z и а считаются неопределенными. Данные табл. 5.3 показывают, что подсистемам с экстре¬ мальным значением z соответствует также экстремальное зна¬ чение а, хотя в общем случае такая зависимость не обязатель¬ на 166
Таблица 5.3 Подсистемы, ис¬ пользующие показатели Системы, формирующие показатели ТЭУ ОУОП УМТС ) УООП | ЬУ I УРС I УТПП | их ТЭУ 1 0,16 0,13 0,04 0,11 0,16 0,27 ОУОП 0,16 1 0,14 0,25 0,11 — — — УМТС 0,13 0,14 1 0,07 0,13 0,06 0,14 • — УООП 0,04 0,25 0,07 1 0,07 — 0.12 —. БУ 0,11 0,11 0,13 0,07 1 0,20 — — У PC — — 0,06 — 0,20 1 — — УТПП 0,16 — 0, 14 0,12 — — 1 0,12 нх 0,27 0,12 1 Пусть имеются два компонента объекта управления л* и у, отображаемые соответственно подсистемами ПСх и Г1СУ в рам¬ ках ЭИС с информационными совокупностями соответственно Их и И,п объединение которых совпадает с информационной совокупностью ЭИС: Их [J Иу — ИС. Рассмотрим структуру возможных связей между подсистемами ПСх и ПС у (рис. 5.2). Для приведенной схемы справедливы следующие отноше¬ ния: И ИЛ- и И — И ; И1;х\)И+„*=И+\ И nx и И щ, = И i7; И НА' U ИII// = И п . Между подсистемами ПСх и ПС,, возможны информацион¬ ные связи, информацию И -лу и И []х которых условно можно на¬ звать заимствуемой. По своей природе эта информация явля¬ ется частью промежуточной, выступающей для передающего блока в качестве исходящей информации, а для принимающе¬ го блока — в качестве входящей информации. Отсюда для ПСх справедливы отношения Hi = Mtx и Htx и Щ И И- = Яи ИпХ и и,х, а также аналогичные соотношения для ПСУ. Рассмотрение этой общей схемы позволяет сделать некото¬ рые выводы.. Так, вполне возможно, что И^х П И*у Ф 0 и Ипх П ИпдФ 0- Это практически означает наличие дубли¬ рования информации, получаемой ПСХ и ПСУ. Аналогично возможно дублирование и результатной информации, выраба¬ тываемой блоками ПСх и ПСу. Наличие дублирования заим¬ ствуемой информации (Ии Изу) при разделении подсистем ПСХ и ПСУ означает дополнительные затраты на передачу 16?
данных, их перезапись с одних накопителей на другие, необ¬ ходимость в промежуточном хранении и согласовании режимов обработки и, как правило, общую задержку в обработке. Одновременно расчленение па подсистемы делает возможным параллельную обработку, что существенно улучшает загрузку ЭВМ и ускоряет выполнение расчетов в целом. Рис. 5.2. Информационные взаимосвязи в ЭИС объекта при выделении двух подсистем ПСХ н J1CV Пусть И .лу = 0. В этом случае ПС х независима от ПСЬ (т. е. ПСУ не оказывает непосредственного воздействия на /7СЛ.), но I1Cу зависима от ПСх (т. е. /7СЛ. оказывает непосред¬ ственное воздействие на ПСи). Равным образом можно пред¬ положить и обратное (И :]х = 0); в этом случае направление воздействия меняется. Подсистему, не получающую И-л от другой внутренней под¬ системы, можно назвать независимой, а подсистему, получаю¬ щую И з от другой ПС,—зависимой. Подсистему, выраба¬ тывающую и посылающую И .л другой подсистеме, можно на¬ звать влияющей (воздействующей), а подсистему, которая не передает И3 другой подсистеме, — невлияющей (невоздейст¬ вующей). При И лх = 0 и И .Лу = 0 оказывается, что обе рассматриваемые подсистемы не воздействуют друг на друга и взаимно независимы (изолированы). 168
Вариант такого разбиения ЭИС на две подсистемы, когда каждая из них сохраняет основные свойства ЭИС (относится к определенному объекту управления и имеет с ним прямую и обратную связи, получает информацию из внешнего мира и передает ему информацию, имеет функцию преобразования данных и динамический характер), приведен на рис. 5.2. Од¬ нако благодаря наличию информационных связей между под¬ системами возможны и такие построения структур связей, Рис. 5.3. Примеры взаимосвязи подсистем при отдаленных воз действиях между ними при которых одна из подсистем имеет с внешней средой или объектом управления лишь связь отдаленного воздействия через другую подсистему. Некоторые варианты таких постро¬ ений иллюстрирует рис. 5.3 (где ОУ — объекты управления, цифры 1 и 2 — подсистемы, дуги — ориентированная инфор¬ мационная связь и ребра — двусторонняя информационная связь): подсистемы изолированы одна от другой, но имеют пря¬ мую связь с внешним миром и объектом управления (рис. 5.3, я); одна из подсистем получает внешнюю информа¬ цию не прямо, а через другую подсистему (рис. 5.3, б—з)\ одна из подсистем передает информацию во внешний мир лишь косвенно через другую подсистему (рис. 5.3, б, ж); одна из подсистем не имеет прямой связи с объектом управления — но имеет косвенную связь через другую подсистему (рис. 5.3, г—з). На рис. 5.3, с первая подсистема передает информацию объек¬ ту управления непосредственно, а получает ее от него через IG9
другую подсистему, тогда как вторая, получая информацию непосредственно от объекта управления, передает ее объекту управления отдаленным воздействием через первую подсис¬ тему. Важно, чтобы структура связей не приводила к потере свойств ЭИС и ее подсистем, которые пусть даже с помощью отдаленных связей должны взаимодействовать с внешним миром и объектом управления. 5.2. БАЗА ДАННЫХ Под базой данных (БД) будем понимать именованную сово¬ купность данных, отображающую состояние объектов и их отношений в рассматриваемой предметной области. Предмет¬ ная область представляет собой часть информационного про¬ странства, отображающую потребности некоторого ограни¬ ченного круга пользователей базы данных. База данных должна удовлетворять требованиям контро¬ лируемой избыточности, независимости и целостности данных, а также учитывать информационные потребности ее пользова¬ телей. Под избыточностью информации понимается наличие в со¬ общении таких сведений, которые превосходят некоторый ми¬ нимум, необходимый для представления или передачи сооб¬ щения. Позитивная сторона избыточности определяется воз¬ можностью быстрого восстановления данных при сбое вычис¬ лений и существованием нескольких способов обработки запро¬ са на основе избыточных данных, когда практически реали¬ зуется наиболее эффективный способ, требующий минимально¬ го машинного времени. К недостаткам следует отнести повы¬ шенный расход памяти для хранения избыточных данных и высокую трудоемкость одновременного внесения изменений во все копни данных. Контролируемая избыточность означает избирательное сокращение избыточности данных таким обра¬ зом, чтобы остающиеся избыточные сведения можно было ис¬ пользовать для ускорения выборки информации. Независимость данных означает возможность изменения структуры базы данных без изменения алгоритмов обработки данных. Под структурой базы данных понимается множество единиц информации, отображающих функционирование эконо¬ мического объекта, и множество отношений, определенных на этих единицах информации. Наиболее частые изменения струк¬ туры представляют собой создание новых единиц информации и новых отношений, преобразование единиц информации из одного формата в другой, изменение способов представления данных в памяти ЭВМ. При изменениях структуры должна 170
сохраняться последовательность операций над данными, од¬ нако способ реализации отдельных операций может изменить¬ ся. Важность свойства независимости данных объясняется тем, что практически все действующие ЭИС подвергаются усо¬ вершенствованию в процессе эксплуатации. Свойство независимости базы данных обеспечивается толь¬ ко в том случае, если существующий способ организации базы данных заменяется на эквивалентный. Эквивалентность пред¬ ставлений требует, чтобы в обоих случаях можно было выра¬ зить все необходимые пользователям взаимосвязи между дан¬ ными и формально перейти от одной структуры к другой. В предыдущих разделах учебника, по существу, была обо¬ снована эквивалентность следующих представлений: системы отношений в 1НФ и системы отношений в 4НФ (3.2); реляционной и бинарной реляционной моделей данных (3.2); отношений между СЕИ и веерных отношений в сетевой мо¬ дели данных (3.3); последовательной, строчной и бинарной древовидной орга¬ низации данных при доступе по одному ключу (4.2). Для обеспечения высокой степени независимости описания данные не должны содержать указаний на способ их представ¬ ления в памяти ЭВМ и применяемые методы доступа. Поддержание целостности базы данных рассматривается как защита данных от внесения ошибочных изменений или разру¬ шений. Причины нарушений целостности достаточно много¬ численны, поэтому даже в надежных информационных систе¬ мах возможна потеря целостности данных. Поддержание це¬ лостности включает не только контроль соответствия данных, поступающих с объекта, и хранимых в ЭИС данных, но и контроль соблюдения многочисленных отношений, сущест¬ вующих между значениями данных Целостность данных не¬ обходимо проверять после введения сведении о новых объек¬ тах и взаимосвязях и после каждой корректировки информа¬ ции. Условия, которые необходимо проверить в процессе под¬ держания целостности данных, называются ограничениями целостности. Рассмотрим типичные ограничения целостности: целостность отношения в реляционной модели данных считается не нарушенной (после корректировки), если сохра¬ няются множества реквизитов, образующих в нем пефвичиый и вероятные ключи, а также функциональные зависимости. Поэтому свойства реквизита быть ключом и вступать в функ¬ циональную зависимость являются ограничениями целост¬ ности; 171
ограничение целостности в веерном отношении состоит в том, что множества значений ключей СЕИ-владельцев и СЕИ- членов, входящих в различные вееры, не должны пересекать¬ ся; значения некоторых реквизитов должны находиться в оп¬ ределенном интервале (О <С ВОЗРАСТ С 160) либо множест¬ во допустимых значений невелико (напримео, у реквизита СЕМЕЙНОЕ ПОЛОЖЕНИЕ); ограничениями целостности могут служить любые множе¬ ственные и арифметические отношения — упорядоченность реквизитов, неравенство значений реквизитов (СУММА НА¬ ЧИСЛЕНО ^ СУММА ВЫДАНО), наличие всех значений одного реквизита в множестве значений другого реквизита и т. п.; динамические ограничения целостности, которые опреде¬ ляют соотношение между прежними значениями реквизита и его новым (скорректированным) значением. Например, выра¬ ботка продукции в расчете на одного работающего за год не должна уменьшаться с течением времени; отложенные ограничения целостности, которые могут не соблюдаться в процессе вычислений, но обязаны выполняться по окончании вычислений. Так при отражении хозяйственных операций в счетах бухгалтерского учета баланс денежных средств в пассиве и активе должен проверяться после выпол¬ нения всех бухгалтерских проводок. Совместное использование данных многими пользователями значительно усложняет разработку и эксплуатацию базы дан¬ ных. Каждый потребитель может по-своему интерпретировать и обрабатывать доступные ему данные. Поэтому сведения, хранимые в базе данных, должны быть значимыми для всех- и допускать необходимые пользователям представления. Об¬ работка и корректировка информации разными пользователя¬ ми по различным алгоритмам способны создать большое число противоречивых ситуаций, например потерю обновления дан¬ ных и зависимость от незавершенных корректировок. Потеря обновления данных возникает, если двум или не¬ скольким пользователям разрешена корректировка одного и того же отношения. Изменения, которые производятся поз¬ же, способны разрушить результаты предыдущих корректиро¬ вок. Обычное решение этой проблемы состоит в том, что пользователь, выполняющий корректировку отношения, по¬ лучает на некоторое время монопольное проведение любых операций над отношением (захват отношения). Захват отно¬ шения вторым пользователем может произойти только по окон¬ чании работы первого пользователя и не помешает выполие- 172
нию его запросов. Однако способ захвата данных может при¬ вести к тупиковой ситуации, когда пользователь А захватывает отношение R; пользователь В захватывает отношение S; для продолжения корректировки пользователю А требу¬ ется отношение 5 и он попадает в состояние ожидания; для продолжения корректировки пользователю В требу¬ ется отношение R и он попадает в состояние ожидания. В результате ни один из них не может продолжить свою работу. Поэтому система поддержки захвата должна содер¬ жать средства обнаружения и преодоления тупиковых ситуа¬ ций. До выполнения запроса пользователя и после его выполне¬ ния база данных, естественно, должна находиться в состоянии целостности. Однако возможно отсутствие целостности в пе¬ риод выполнения запроса. Следовательно, необходимо, чтобы любые изменения в базе данных, происходящие при выпол¬ нении одного запроса, не оказывали влияния на реализацию одновременно поступающих запросов, иначе их результат будет зависеть от незавершенной корректировки (и вообще любой операции по изменению значений данных). Большую сложность в условиях интенсивного потока запросов представ¬ ляет возврат базы данных в непротиворечивое состояние, если обнаружится, что выполнение одного из запросов привело к нарушению целостности данных. Для отображения структуры базы данных используются модели данных, рассмотренные в гл. 3. Для обеспечения высокой независимости данных и учета требований многих пользователей разработана трехуровневая иерархия моделей базы данных (рис. 5.4). Внутренняя модель данных наиболее тесно связана со способом физического пред¬ ставления данных, внешняя модель определяет требования пользователя к необходимым ему данным, концептуальная модель занимает промежуточное положение. Концептуальная модель является формали¬ зованным описанием полного информационного содержания базы данных. Внешняя модель может пользоваться любым аппаратом понятий для формализации и описания информационного пространства пользователя. Единственное требование состоит в возможности взаимно-однозначного преобразования внеш¬ ней модели в концептуальную. Состав единиц информации и отношений в каждой внешней модели определяется потребно¬ стями пользователей. В концептуальной модели эти структур¬ ные зависимости могут быть изменены. 173
Цель концептуальной модели —создать такое формальное представление о базе данных, чтобы любая внешняя модель являлась подмножеством этого представления. В процессе интеграции внешних моделей устраняются двусмысленности и противоречия в представлении данных различными поль¬ зователями. Допускаются много внешних моделей, каждая из которых содержит сведения о некоторой части базы данных, и единственная концептуальная модель, определяющая абстракт¬ ное представление всей базы данных. Рис. 5.4. Взаимосвязь моделей базы данных Минимальный состав концептуальной модели должен вклю¬ чать описания экономических объектов, сведения о которых со¬ держатся в ЭИС, отношений между этими объектами и опера¬ ций формирования производной информации. Дополнитель¬ но могут указываться средства обеспечения целостности дан¬ ных и некоторые другие. К концептуальной модели предъявляется требование ус¬ тойчивости. Это означает, что изменения в модели допускаются только тогда, когда произошли существенные изменения в со¬ ответствующей предметной области. Наиболее важный тип изменений в концептуальной модели — это ее расширение, когда появляется информация о новых объектах либо новые сведения об уже имеющихся объектах. Концептуальная модель должна быть достаточно абстракт¬ ной, т. е. не содержать ограничений, вытекающих из прог¬ раммной реализации требуемых методов обработки данных. 174
Одним из существенных требований к концептуальной модели является ее конструктивность, которая означает, что информации, зафиксированной в ней, должно быть достаточ¬ но для последовательного формализованного перехода от кон¬ цептуальной модели к действующей системе машинной обра¬ ботки данных. В качестве основы концептуальной модели может служить реляционная, сетевая, иерархическая и бинарная модели данных. Для представления данных в реляционной модели исполь¬ зуется лишь одна конструкция — отношение. В сетевой мо¬ дели минимальным набором необходимых конструкций яв¬ ляются СЕИ, веерное отношение и упорядоченность. Следо¬ вательно, описание данных в модели организовано сложнее, так как использует более обширный набор конструкций (по¬ нятий). Операндами в реляционной алгебре служат отношения, а у сетевых операторов (в большинстве реализованных систем) — отдельные значения СЕИ или кортежи отношений. Поэтому один реляционный оператор эквивалентен некоторой под¬ программе, состоящей из сетевых операторов, и с этой точки зрения реляционный язык манипулирования данными явля¬ ется более мощным, чем сетевой. Расширение сетевой концептуальной модели в ряде слу¬ чаев значительно затруднено. Рассмотрим сетевую базу дан¬ ных о станциях метрополитена. Допустим, что взаимный по¬ рядок станций на линии метрополитена совпадает с последо¬ вательностью записей СЕИ (каждая запись описывает одну станцию). Если требуется дополнить модель сведениями о рас¬ стояниях между соседними станциями, то возможны два реше¬ ния. Первое — добавить в СЕИ новый реквизит РАССТОЯ¬ НИЕ ДО СЛЕДУЮЩЕЙ СТАНЦИИ. Тогда при вычислении расстояния между станциями надо предварительно найти ранее расположенную станцию и сформировать пары станций с ука¬ занием расстояния между ними, что создаст избыточную ин¬ формацию по отношению к уже имеющейся СЕИ. В реляцион¬ ной модели, не содержащей понятия упорядоченности, тре¬ буемая информация выражается только указанием пар сосед¬ них станций, и добавление расстояний между ними являет¬ ся очень простой операцией, сводящейся к включению в струк¬ туру отношения нового реквизита. Выполнение запросов к сетевой концептуальной модели в реализованных системах обычно занимает меньше времени по сравнению с реляцион¬ ной моделью. Совершенствование структур данных и методов доступа к ним может изменить это соотношение. 175
Рассмотрим формирование концептуальной модели из двух заранее известных внешних моделей А и В, структура которых показана на рис. 5.5 (используются следующие обо¬ значения: КЗ — код заказа; КИ— код изделия; КП—код поставщика; ИП — имя поставщика; АП — адрес поставщи¬ ка; НАИ — наименование изделия; К — количество изделий на складе; ЗК — заказанное количество изделий; Ц — цена изделия по данному заказу; ДЗ — дата заказа; ДП — дата поставки; И — итоговая сумма заказа). из, ии 1\ из НИ зи ц /1^4 I ИП ДЗ ДП И НЙИ / \ ИП ЯП Внешняя модель й из, ИИ /т\ из ИИ зн /1\ Л ИП ДЗ ДП НЙИ и Внешняя модель В Рис. 5.5. Диаграмма функциональных зависимо¬ стей для внешних моделей данных А и В Пользователи, работающие с внешней моделью А, в основ¬ ном извлекают из базы данных информацию о получении от¬ дельных заказов на изделия. Модель В используется другой группой пользователей для получения информации о выдаче изделий со склада. Совмещение внешних моделей А и В основано на включении в модель А реквизитов и функциональных зависимостей, имеющихся в В и отсутствующих вЛ. В рассматриваемом случае — это реквизит К. Отсутствие в модели В реквизита КП не приводит к появлению новых функциональных зависи¬ мостей и в получаемой концептуальной модели, так как связь КЗ —ИП присутствует в модели А согласно теоремам Арм¬ стронга. Результат совмещения моделей А и В показан на рис. 5.6 сплошными стрелками. Пунктирные стрелки показы¬ вают расширение концептуальной модели дополнительными сведениями, которые могут потребоваться для новых внешних моделей (СП — спецификация поставщика; СИ — специфика¬ ция изделия; СО — сумма оплаты изделий поставщикам). 176
J КП, НИ I ! г—1 КЗ, ни со нп дз дп и няи си н ИП йП СП Рис. 5.6. Диаграмма функциональных зависимо¬ стей концептуальной модели данных, объединяю¬ щей представления внешних моделей А и В Окончательный вид концептуальной модели для рассмат¬ риваемого примера приведен на рис. 5.6. Реляционное пред¬ ставление модели содержит следующие отношения в ЗНФ: Переход к внутренней модели данных —это переход от аб¬ страктного концептуального описания к указанию структуры данных и методов доступа к данным. Применяемые в этом слу¬ чае решения рассматриваются в 4.3. Проектирование базы данных в соответствии с трехуров¬ невой системой моделей данных включает ряд крупных эта¬ пов, которые описаны выше. Только один из этих этапов — согласование внешних моделей в единую модель — достаточно полно формализован и существуют машинные методы его реа¬ лизации. Получаемая единая модель не является концепту¬ альной в полном смысле, поскольку обычно не удовлетворяет требованию устойчивости и не содержит средств для поддер¬ жания целостности и безопасности данных. Поэтому необхо¬ димы обширные исследования, которые должны привести к созданию систем автоматизированного проектирования кон¬ цептуальных и внутренних моделей реальных баз данных. R1 (КЗ, КИ, ЗК, Ц); R2 (КП, КИ, СО); R3 (КЗ, КП, ДЗ, ДП, И); Я4 (КП, ИП, АП, СП); R5 (КИ, НАИ, СИ, К). 177
5.3. РАСПРЕДЕЛЕННЫЕ ЭИС И БАЗЫ ДАННЫХ Распределенная информационная система представляет со¬ бой объединение информационных систем, выполняющих соб¬ ственные, независимые друг от друга функции, с целью кол¬ лективного использования информационных фондов и вычис¬ лительных ресурсов этих систем. Отдельные информацион¬ ные системы (называемые локальными), как правило, терри¬ ториально удалены друг от друга и взаимодействие между ними производится по каналам связи. а) Рис. 5.7. Варианты структуры распределенной ЭИС: а) иерархические взаимосвязи; б) горизон¬ тальные взаимосвязи Наиболее распространенными типами взаимосвязи между локальными ЭИС являются иерархическая и горизонтальная. В первом случае ЭИС распределяются по уровням, и любая локальная ЭИС i-го уровня соединена каналом связи только с одной локальной ЭИС только предыдущего уровня. На пер> вом уровне может располагаться только одна центральная ЭИС. Пример иерархической взаимосвязи пяти локальных ЭИС показан на рис. 5.7, а. Действия каждой ЭИС сущест¬ венно контролируются со стороны ЭИС более высокого уров¬ ня. Так, взаимодействие между ЭИС2 и ЭИС3, между ЭИС3 и ЭИС5 происходит под контролем ЭИСЬ взаимодействие ЭИС4 и ЭИС5 контролируется со стороны ЭИС2. В случае горизонтальных взаимосвязей (рис. 5.7, 6) ло¬ кальные ЭИС, совместно реализующие обработку того или ино¬ го класса запросов, соединяются двусторонними каналами свя¬ зи в одноуровневую кольцевую структуру. Контроль за обра¬ боткой запроса производит локальная ЭИС, через которую запрос был передан для выполнения. 178
Распределенной базой данных называется такая организа¬ ция хранения и обработки данных, при которой существует фиксированное закрепление единиц информации и отношений за конкретными локальными ЭИС и каждая локальная ЭИС имеет доступ к любой единице информации и отношению в пре¬ делах всей распределенной экономической информационной системы. Объединение локальных ЭИС в распределенную ЭИС с еди¬ ной распределенной базой данных имеет и позитивные, и не¬ гативные стороны. Распределенная база данных имеет ряд преимуществ перед централизованной базой данных, охватывающей такой же диапазон прикладных задач. Для распределенной базы дан¬ ных характерно ускорение обращения к данным за счет их размещения в тех локальных ЭИС, где они чаще запрашива¬ ются. Организация, реорганизация и ведение небольших по объему компонентов распределенной базы данных значительно проще, чем в централизованной базе данных. Недостатки, характерные для распределенной базы дан¬ ных, могут проявляться и в локальных ЭИС, но в распреде¬ ленной базе данных их усиливают проблемы организации свя¬ зи между ЭИС и часто несогласованные действия пользовате¬ лей. Так, в процессе функционирования распределенной ба¬ зы данных возможно появление конкурирующих запросов и вычислительных процессов, которые производят практически одновременные взаимозависимые действия над общими эле¬ ментами данных. Например, результаты корректировки дан¬ ных, произведенные одним пользователем, могут быть наруше¬ ны в ходе корректирующего обращения другого пользователя. Поэтому необходимы меры по предотвращению сбойных си¬ туаций при выполнении конкурирующих запросов. Другой недостаток связан со сложными алгоритмами кор¬ ректировки и поддержания целостности в распределенной базе данных. Будем считать, например, что в распределенной базе данных используется сетевая концептуальная модель с име¬ нами СЕИ /1, В, С, D и веерными отношениями Wt (А — В), W2 (А — С), Wи (D — С). Возможны три варианта отобра¬ жения концептуальной модели в локальных ЭИС (рис. 5.8). Отображение называется реплицированным, если концепту¬ альная модель вчцелом поддерживается только одной локаль¬ ной ЭИС (обычно это центральная ЭИС при иерархической взаимосвязи между ЭИС), а остальные локальные ЭИС под¬ держивают лишь часть веерных отношений. В реплицирован¬ ном отображении (см. рис. 5.8,а) ЭИСх поддерживает отношени я Wu W2, W3, ЭИС2 поддерживает Wl9 W2 и ЭИС3 — W9. Ото¬ 179
бражение называется расчлененным по значениям, если сос¬ тав и структура веерных отношений во всех локальных ЭИС одинаковы, а значения элементов данных в распределенной базе данных получаются путем объединения соответствующих множеств значений из локальных баз данных (см. рис. 5.8, б) Существует также расчлененное по структуре отображе ние, при котором локальные ЭИС имеют в своем составе оди наковые по структуре и значениям отношения, и если сущест вует путь доступа между двумя СЕИ в распределенной базе данных, то его можно реконструировать на основе информации из локальных ЭИС. На рис. 5.8,я таким «элементом пересече¬ ния» является отношение 1^2- Ж3 Рис. 5.8. Отображение концептуаль¬ ной модели данных в локальных ЭИС: а) реплицированное; б) расчле¬ ненное по значениям; в) расчленен¬ ное по структуре Сложность корректировки и поддержания целостности объясняется тем, что при реплицированном и при расчленен¬ ном по структуре отображениях существует дублирование значений данных, а для отображения, расчлененного по зна¬ чениям, вопрос о месте хранения вновь поступающих данных, вообще говоря, решается неоднозначно. 180
Служебная информация распределенной базы данных со¬ держит иерархически соподчиненные каталоги. Среди них выделяются центральный каталог, каталоги локальных ЭИС, каталоги областей задач. Зоны их влияния в распределенной базе данных показаны на рис. 5.9. Рис. 5.9. Взаимосвязь каталогов в распределен ной базе данных Центральный каталог содержит полную информацию о структуре информационных фондов локальных ЭИС, имена и состав локальных баз данных, границы областей задач. Этот каталог может частично дублироваться в остальных ка¬ талогах. Каталог локальной ЭИС описывает принадлежащий ей информационный фонд. Каталог области задачи охватывает совокупность данных, составляющих информационную базу отдельной задачи, дан¬ ные для которой распределены между несколькими локальны¬ ми ЭИС. При выборе модели данных для распределенной базы дан¬ ных возможны следующие конфигурации ■— гомогенная, ког¬ да все локальные ЭИС рассчитаны на одну и ту же модель дан¬ ных, гетерогенная, допускающая различные модели, и конфи¬ гурация с канонической моделью данных, соответствующая 181
ранее рассмотренной трехуровневой архитектуре базы дан¬ ных. Гомогенная конфигурация позволяет получить высокие эксплуатационные характеристики распределенной базы дан¬ ных, но ограничивает возможности пользователей, разрешая им единственный способ описания предметной области. В ге¬ терогенной базе данных при передаче данных между локаль¬ ными ЭИС часто необходимо их преобразование в форматы, характерные для другой модели данных. Цена преобразова¬ ния может быть высокой и, вероятно, неприемлемой, посколь¬ ку между моделями данных сохраняются элементы несовмес¬ тимости. Идентификация записей, оптимизация доступа, под¬ держание целостности и безопасности в гетерогенной базе данных усложняются. Конфигурация с канонической моделью данных на этапе реализации запроса действует как гомоген¬ ная конфигурация, поскольку внутренняя модель данных яв¬ ляется общей для всех локальных ЭИС. Для пользователей в этом случае предоставляется достаточно широкий диапазон внешних моделей данных. Любые указания пользователя по методу доступа к данным выполняются беспрепятственно, од¬ нако пользователь лишен возможности влиять на способ хра¬ нения данных. В качестве концептуальной модели данных для распреде¬ ленной базы данных целесообразно использовать реляционную модель. Ее решающее преимущество состоит в том, что запрос, записанный с использованием операторов реляционной алгеб¬ ры, часто допускает разделение на несколько производных запросов, каждый из которых может быть реализован в одной локальной ЭИС. Представим запрос в виде Q (хь х2, х»,), где Q — идентификатор запроса, х< (/ = 1, к)— имена рекви¬ зитов, на которых определены условия запроса. Разделение запроса Q на производные запросы Qx, 02, Qt получается в том случае, если выполнение О приводит к такому же резуль¬ тату, что и выполнение Д Q2 А ••• A Qt• Порядок реали¬ зации запросов Qu Q2j Qt безразличен. Две простейшие разновидности запросов Qj — это запрос Qj (х), условие кото¬ рого определено для одного реквизита х, и приводимый за¬ прос Qj (хь х2, ..., х/(), который можно заменить на два запро¬ са Qj (хш, ..., хр) и Q'j (Xj, ..., Xm), где значения реквизита х'т получаются в результате выполнения запроса Q/. Для прове¬ дения взаимно-однозначного преобразования Q в Qt Д 02 Д А Сз ••• A Qt разработан специальный алгоритм, однако не все запросы допускают такое преобразование. В то же время раз¬ деление на части запросов в иерархической и сетевой моде¬ лях— задача более сложная, а иногда и невозможная. Преи- 182
мущества распределенной обработки данных в этом случае проявляются слабее. Центральным вопросом при проектировании распределен¬ ной базы данных является определение состава информацион¬ ного фонда каждой локальной ЭИС. Пользователи не должны влиять на процесс распределения информации между локаль¬ ными ЭИС и при формулировке запросов не должны указывать место нахождения требуемых им данных. Распределение информации между N локальными ЭИС -в простейшем случае сводится к их разбиению на /V групп так, чтобы в одну группу попали данные, которые возникли и кор¬ ректируются в зоне действия одной локальной ЭИС. Обработ¬ ка запроса производится топ локальной ЭИС, которая являет¬ ся «владельцем» требуемых данных. Однако в общем случае данные могут корректироваться многими территориально уда¬ ленными пользователями, и обработка запроса может предпо¬ лагать извлечение данных из нескольких локальных ЭИС сразу. Взаимосвязь информации, хранящейся в локальных ЭИС, необходимая для существования распределенной базы данных как единого целого, обеспечивается наличием некото¬ рого подмножества центрального каталога в каждой локаль¬ ной ЭИС. Параметры модели оптимального распределения данных между локальными ЭИС: Cj — максимальный объем пространства памяти в у-й ло¬ кальной ЭИС, у — 1, /V; 5/ —длина i-и единицы информации, i = 1, /И; fhj —частота запросов к-го типа (к — 1, Г) к /-й локаль¬ ной ЭИС; n}li — число поисковых обращений к i-п единице информа¬ ции пргг обработке к-го тина запросов; fnhi — число корректирующих обращений к i-и единице информации при обработке к-го типа запросов; t.4—среднее время одного обращения в пределах одной, локальной ЭИС; /р — среднее время одного обращения к произвольной ло¬ кальной ЭИС. Свободными переменными в этой модели служат (1, если i-я единица информации размещена в /-й Хц = \локальной ЭИС, (О—в противном случае; 1, если Xij — О, ч0, если Xij = 1. 183
Целевая функция модели оптимального распределения данных между локальными ЭИС минимизирует время обра¬ щений к единицам информации: min t — /л 2 хи^(пН1 + тк1) + /. к i. /. li Должны также соблюдаться ограничения на объем па¬ мяти в локальных ЭИС 2 Xij Si ^ с j. i Если допускается дублирование информации в локальных ЭИС, то справедливы ограничения 2 хи > 1 / для всех I, в противном случае необходимо принять 2-vu = i. / Величины л',;, минимизирующие время обращений к еди¬ ницам информации, рассчитываются с помощью методов ди¬ намического и эвристического программирования. Контрольные вопросы 1. Какие информационные взаимосвязи существуют в ЭИС и какие со¬ отношения характерны для них? 2. Перечислите основные свойства ЭИС. 3. Какие факторы учитываются при выделении функциональных под¬ систем ЭИС? 4. Как влияют меры по повышению независимости, целостности и безо¬ пасности данных в базе данных ЭИС на ее эксплуатационные харак¬ теристики? 5. В чем заключаются преимущества трехуровневой архитектуры базы данных? 6. Как конструируется концептуальная модель данных на основе ди¬ аграмм функциональных зависимостей? 7. Какие проблемы организации распределенных ЭИС обусловлены не¬ обходимостью раздельного хранения данных?
ГЛАВА 6 МОДЕЛЬ ЭКОНОМИЧЕСКОЙ ИНФОРМАЦИОННОЙ СИСТЕМЫ ОБЪЕКТА 6.1. НАЗНАЧЕНИЕ И СТРУКТУРА МОДЕЛИ Моделью ЭИС будем называть некоторое отображение ее свойств и отношении, заданное в явном виде. Модель являет¬ ся способом описания формализованно структурированного информационного пространства. Очевидно, что вариантов представления модели может быть много. Определим основную цель, которая может быть достигнута при построении рассматриваемой модели. Модель конкретно¬ го объекта должна обеспечивать машинный переход к соответ¬ ствующей системе обработки экономической информации, учитывающей и активно использующей характеристики ЭИС объекта. Уточним сформулированную цель в виде следующих тре¬ бований, которым должна удовлетворять модель ЭИС. 1. Фор мал изованн ость. Требование заклю¬ чается в том, что описание компонентов модели, их взаимосвя¬ зи, правила композиции и декомпозиции структур модели должны быть понятны и человеку, и ЭВМ. 2. Структурированность. Структура всех информационных образований, начиная с реквизитов и кон¬ чая СЕИ любого уровня, должна быть или задана в явном ви¬ де или получена путем использования некоторых заданных алгоритмов. 3. Информационная и алгоритмичес¬ кая полнота. Представленных в модели описаний долж¬ но быть достаточно для машинного определения параметров информационных потоков, получения алгоритмов преобразо¬ вания информации, выбора структуры базы данных, органи¬ зации и ведения базы данных, управления вычислительным процессом и составления технической документации. 4. Машинная н е з а в и с и м о с т ь. Модель долж¬ на отображать взаимодействие информационных образований, не затрагивая вопросов управления данными. Особенности внутримашинного представления модели не должны сколько- нибудь существенно влиять на описание модели. 185
5. Адаптивность. Модель некоторого реального объекта должна сохранять адекватность этому объекту в про¬ цессе его функционирования на достаточно большом времен¬ ном интервале. В процессе функционирования любого объек¬ та меняется, модернизируется его информационная система: вводятся новые формы документов, изменяются или отменя¬ ются старые формы документов, меняются методики расчета тех или других показателей, меняется организационная стру¬ ктура управления и т. п. Использование специальной систе¬ мы организации корректировки и ведения архивов этой мо¬ дели позволяет адекватно отображать в модели все эти изме¬ нения. Перечисленные требования предопределяют состав описа¬ телей ЭИС, включаемых в модель. Под описателями ЭИС бу¬ дем понимать характеристики ЭИС, сохраняющие свои посто¬ янные значения в условиях заданного объекта на некотором интервале времени. При моделировании однородных объектов значения характеризующих их описателей могут частично или полностью совпадать. Всю совокупность описателей ЭИС можно рассматривать как объединение подмножеств первичных и производных опи¬ сателей. Первое подмножество включает следующие основные груп¬ пы описателей: совокупность исходных и формируемых СЕИ и показате¬ лей с указанием их взаимосвязи (в соответствии с требования¬ ми 1, 2); совокупность реквизитов с указанием их использования и роли в составных единицах информации (в соответствии с тре¬ бованиями 1, 2); характеристики реквизитов — наименование, область оп¬ ределения, структура (формат) и т. д. (в соответствии с тре¬ бованиями 2, 3); характеристики СЕИ и показателей, такие, как наимено¬ вание, структура, непроцедурное описание процесса форми¬ рования, периодичность, количество значений и т. д. (в соот¬ ветствии с требованиями 3, 4). Кроме основных, в первое подмножество входит группа вспомогательных описателей, характеризующих состав и со¬ держание необходимой справочной информации, а также фор¬ мализованных текстов, используемых для оформления ре¬ зультатной информации и технической документации (в соответствии с требованием 3). Данный состав описателей является основой для формиро¬ вания подмножества производных описателей ЭИС, таких, 186
Раздел IV Раздел I П4 ПЗ П2 П1 1 1 1 Адрес текстово¬ го опи¬ сания ЭФГ Адрес наимено¬ вания Перио¬ дичность получе¬ ния Опи¬ сание ЭФГ Пока - затели Я/ П2 ПЗ П4 П1 П2 ПЗ П4 Адрес полного перечня значения Контроль кода Адрес наимено¬ вания Экстре¬ мальные значения Фор¬ мат Рек - визи - ты Раздел III Р1 Р2 РЗ Р4 Р5 1111 1 1 1 1 1 1 1 1 1 Раздел II Рис. 6.1. Матричная модель ЭИС как объемы входной, промежуточной и используемой инфор¬ мации, показатели активности СЕИ, показатели массовости расчетов. Производные описатели ЭИС дают, как правило, количественные оценки ряда параметров, характеризующих соответствующую ЭИС. Поэтому в дальнейшем будем называть их параметрами. Учитывая, что производные параметры являются функ¬ циями основных и вспомогательных описателей и, следова¬ тельно, могут быть получены автоматически по заранее задан¬ ным алгоритмам, в модель ЭИС достаточно включать лишь пер¬ вичное п о дм н ожеств о о п и с ате л е й. Абстрагируясь от специфики отображения описателей в машинной интерпретации, представим модель ЭИС в виде ма¬ трицы (рис. 6.1), состоящей из четырех основных разделов (для отображения первичных основных описателей) и вспо¬ могательных таблиц и описаний (для отображения первичных вспомогательных описателей). Первый раздел матрицы открыт справа и сверху, второй —справа и снизу, третий — слева и снизу, четвертый —слева и сверху. Это позволяет сравни¬ тельно просто вносить изменения в состав и содержание опи¬ 178
Рис. 6.2. Элементарный фрагмент Рис. 6.3. Элементарный фрагмент гра¬ фа с петлей сателей модели. Этим потенциально обеспечивается выполне¬ ние требования 5. Первый раздел является матрицей смежности ориентиро¬ ванного графа информационно-алгоритмической взаимосвязи показателей или СЕИ. Модель ЭИС в данном случае рассмат¬ ривается как ориентированный граф М9 вершины которого П соответствуют показателям или СЕИ, а дуги Д — участию одних показателей или СЕИ в получении значений других показателей или СЕИ: М = G (Я, Д). Как отмечалось, показатель является частным случаем СЕИ. Более того, любая СЕИ может быть представлена в виде совокупности показателей (такое преобразование называется декомпозицией). В свою очередь некоторая совокупность по¬ казателей может быть преобразована в СЕИ (это композиция). Представление модели ЭИС, когда в качестве вершин гра¬ фа используются только показатели, будем называть канони¬ ческим. Справедливо утверждение, что любая ЭИС может быть представлена в виде одной и только одной канонической модели, адекватно отображающей все особенности рассматри¬ ваемой ЭИС. Выделим в таком графе понятие элементарного фрагмента графа (ЭФГ), включающего любую вершину, все непосредст¬ венно входящие в эту вершину дуги и вершины (рис. 6.2), и обозначим его Г, тогда F = G (Я*, Д,), где t = 1, N + 1; / = 1, Я; N — число исходных показателей в рассматривае¬ мом фрагменте. ЭФГ играет существенную роль при определении правил создания модели, ее ведения, реорганизации и использования как для анализа модели некоторого объекта, так и при созда¬ нии системы машинной обработки информации, адекватной данной модели. Справедливо утверждение, что каждая вершина графа М образует элементарный фрагмент графа. При этом в выраже- 188
нии F --- G (Пi, Л;-)» где i =--= 1, .V + 1; / = 1, Я, N может равняться нулю. Тогда такой элементарный фрагмент графа вырождается в одну вершину-показатель, являющуюся вход¬ ной по отношению ко всей модели. Отметим еще одну особенность ЭФГ рассматриваемой мо¬ дели — ЭФГ может содержать замкнутый контур (рис. 6.3). Одна из интерпретаций этого графа состоит в том, что зна¬ чения показателя Я1, полученные, например, ранее, исполь¬ зуются при определении новых значений этого показателя. В первом разделе модели сим¬ волом «1» будем отмечать тот факт, что для определения значений некоторого показателя Я, указан¬ ного на горизонтальной оси, долж¬ ны быть использованы значения показателей Я, приведенных на вертикальной оси. Представленный на рис. 6.1 в первом разделе граф приведен на рис. 6.4, где показа¬ тели Я1 и Я3 являются исходны¬ ми, а Я2 и Я4 — выходными. Каждый столбец, представ¬ ленный в матрице смежности, является ЭФГ. Каждая строка в этой матрице иллюстрирует активность использования значений соответствующего пока¬ зателя при определении значений других показателей. Второй раздел показывает реквизитный состав каждого из показателей. Это зафиксировано в столбцах прямоугольной матрицы реквизитного состава показателей. В приведенном на рис. 6.1 примере показатель Я1 состоит из реквизитов Р\, Р2, Р3, РЪ\ показатель Я2 — из реквизитов Р1, Р3, Р4, Р5; показатель Я3 — из реквизитов Р1, Р5; показатель Я4 — из реквизитов Р1, Р3, Р4. Строки этой матрицы иллюстрируют, в какие показатели, входит соответствующий реквизит. Третий раздел включает характеристики каждого из ис¬ пользуемых реквизитов. К таким характеристикам относятся: формат реквизита, экстремальное (минимальное и максималь¬ ное) значение соответствующего реквизита, адрес наименова¬ ния соответствующего реквизита, контроль кода реквизита, адрес полного перечня возможных значений реквизита. Формат задает структуру соответствующего реквизита. Формат реквизита используется при расчете объемов инфор- 189 Рис. 6.4. Граф к первому разделу матричной модели ЭИС, показанной на рис. 6.1
мации, определении необходимого места в памяти ЭВМ для хранения значений этого реквизита, при контроле значений реквизита и др. Минимальное и максимальное значения реквизита задают¬ ся в соответствии с его форматом и используются, как правило, при контроле реквизита. Адрес наименования реквизита указывает, где располо¬ жено полное наименование реквизита. Это наименование ис¬ пользуется при образовании форм входных и выходных доку¬ ментов и при машинном формировании технической докумен¬ тации проектируемой системы. Контроль кода реквизита указывает наличие контроля по модулю и значение этого модуля. Используется при контроле реквизита. Адрес полного перечня возможных значений реквизита указывает, где расположен соответствующий перечень. Такой перечень используется при контроле реквизита и при постро¬ ении некоторых алгоритмов преобразования информации. Четвертый раздел включает характеристики каждого из используемых показателей. К таким характеристикам отно¬ сятся: адрес размещения в памяти ЭВМ формализованного непроцедурного описания элементарного фрагмента графа (адрес формализованного описания ЭФГ), периодичность по¬ лучения значений соответствующего показателя, адрес наи¬ менования соответствующего показателя, адрес текстового опи¬ сания ЭФГ. Рассмотрим назначение этих характеристик. Для каждого ЭФГ можно определить правила получения значений реквизитов выходного показателя через значения реквизитов входных показателей и задать условия, при кото¬ рых эти правила должны срабатывать. Все это будем называть описанием ЭФГ (ОЭФГ). ОЭФГ должно содержать: условия, определяющие подмножества значений всех вход¬ ных показателей, над реквизитами которых необходимо осу¬ ществить операции преобразования, включая операции при¬ сваивания- правила получения значений реквизитов-признаков выход¬ ного показателя в соответствии с выделенными подмножества¬ ми значений входных показателей; формулы расчета значений реквизита-основания выходно¬ го показателя в соответствии с выделенными подмножества¬ ми значений входных показателей. Периодичность получения значений показателя указывает, как часто должно выпол¬ няться соответствующее ОЭФГ. 190
/74 1 ПЗ 1 1 П2 1 П 1 1 Идентификатор Ф1 Ф2 ФЗ . .. показателя Идентификатор формы документа Рис. 6.5. Матрица взаимосвязи показателей и форм документов Адрес наименования показателя указывает, где приведено полное наименование соответствующего показателя. Эти наи¬ менования используются при формировании входных и выход¬ ных документов и машинном оформлении технической докумен¬ тации проектируемой системы обработки экономической ин¬ формации. Адрес текстового описания ЭФГ указывает, где приведено неформализованное его описание, используемое при машинном формировании технической документации проектируемой сис¬ темы. Для удобства использования модели ЭИС, как правило, имеется дополнительная информация, носящая справочный характер: каталог реквизитов, каталог показателей, каталог текстовых описаний ЭФГ, матрица взаимосвязи показателей с формами входных и выходных документов, каталог форм входных и выходных документов. Каталог реквизитов состоит из идентификатора реквизита, адреса наименования этого реквизита и самого наименования реквизита. Каталог показателей включает идентификатор по¬ казателя, адреса наименования этого показателя и самого наименования показателя. Каталог текстовых описаний ЭФГ содержит идентификатор ОЭФГ, адрес текстового описания ЭФГ и собственно текст описания ЭФГ. Структура матрицы взаимосвязи показателей с формами входных и выходных документов приведена на рис. 6.5. Она представляет собой матрицу смежности соответствующего гра¬ фа взаимосвязи. Форма входного или выходного документа содержит один или несколько показателей. Так форма Ф1 включает показатели П1 и П3, форма Ф2 — показатель П2, форма ФЗ — показатель ПЗ и /74 (см. рис. 6.4). 191
Каталог форм входных и выходных документов включает код формы соответствующего документа, структуру (бланк) формы документа и описание формы этого документа. Среди множества возможных преобразований экономичес¬ кой информации можно выделить ряд преобразований, обла¬ дающих достаточно высокой алгоритмической сложностью и в то же время достаточно хорошо формализованных и апроби¬ рованных, так что для их реализации уже существуют готовые проектные решения. К таким преобразованиям, например, относятся методы дискретно¬ го программирования, кор¬ реляционного анализа,, ре¬ шения дифференциальных уравнений и др. Проектные решения таких преобразова¬ ний представляются в виде пакетов прикладных прог¬ рамм с возможностью пара¬ метрической настраиваемое™ к конкретным условиям рас¬ сматриваемой ЭИС. Отметим, что такие преобразования могут быть представлены в каноническом виде. Однако осуществлять такое представление нерационально, так как более эффектив¬ но использование уже готового пакета прикладных программ. Таким образом, можно сделать вывод о том, что в канони¬ ческом представлении модели целесообразно иметь возмож¬ ность выделять отдельные фрагменты графа информационной взаимосвязи показателей и представлять их в виде автономных преобразователей, имеющих на входе и выходе некоторые со¬ вокупности показателей. Определим операцию стягивания вершин графа (СВГ) как операцию уменьшения числа вершин и дуг графа за счет обра¬ зования новой вершины не информационного, а процедурно¬ го типа — вершины-преобразователя. Вершина-преобразователь представляет в абстрактном ви¬ де процедуры преобразования значений входных показателей или СЕИ в выходные и является структурным эквивалентом некоторого фрагмента графа. После операции СВГ из некоторого фрагмента графа полу¬ чаем П-конструкцию (рис. 6.6). На П-конструкции круги обозначают показатели (входные или выходные), прямоуголь¬ ник — алгоритм (формализованный или машинный) преобра¬ зования значений входного показателя (ВП) в значения вы¬ ходного (ВЫП). В П-конструкции наряду с показателями (входными и выходными) могут использоваться и СЕИ (ВС —- 192
Рис. 6.7. СЕИ-конструкция входные, ВЫС — выходные). Графически такие СЕИ можно изобразить в виде, представленном на рис. 6.7. Тогда получим С Е И-к о н с т.р у к ц и ю. Нужно помнить, что показатель является частным случаем СЕИ. Однако алгоритмы дальней¬ ших преобразований над моделью ЭИС построены исходя из канонического представления модели, т. е. такого, когда в качестве вершин графа используются только показатели. Следует отметить, что П-конструкцпя и СЕИ-конструкция могут быть всегда представлены из ЭФ Г. Существует еще одно важное свойство П-конструкций и СЕИ-конструкций — их рекурсией ость, заключающаяся в том, что любые совокупности входных или выходных показа¬ телей или СЕИ могут быть представлены в виде промежуточ¬ ных П-конструкций или СЕИ-конструкций. Отсюда следует вывод, что в операции СВГ в качестве ис¬ ходных могут использоваться ЭФГ, П-конструкции и СЕИ- конструкции. Структура П-конструкции представлена на рис. 6.8. П-конструкцию можно интерпретировать как сово¬ купность ЭФГ (рис. 6.9). Структура СЕИ-конструкции представлена на рис. 6.10. СЕИ-конструкция может быть преобразована в П-конструк¬ цию, поскольку СЕИ всегда может быть разделена на показа¬ тели (см. гл. 1). Как было показано, П-конструкция достаточно просто представляется некоторым набором ЭФГ. Однако для более Входные показатели Преобразобагель Выходные показатели < Зпк. (818 Рис. 6.8. II-конструкция 193
Рис. 6.9. Представление П-конструкции в виде совокупности ЭФГ Входные показатели и СЕИ Преобразодатель Выходные показатели и СЕИ Рис. 6.10. СЕИ-конструкция рационального отображения П-конструкций и СЕИ-конструк- ций, используемых специальными функциями реализации за¬ данных экономико-математических методов, модель должна содержать наряду с ОЭФГ необходимую совокупность описа¬ телей стянутых вершин графа (ОСВГ). Самыми сложными компонентами модели, определяющими возможность автоматизированной ее интерпретации с целью получения соответствующей СОЭИ, являются описатели эле¬ ментарных фрагментов графа. В общем случае ЭФГ могут быть описаны с использованием традиционных процедурных алгоритмических языков. Однако, учитывая требования, ко¬ торым должна удовлетворять модель, и в первую очередь ее машинную независимость, ЭФГ более рационально описывать на основе реляционного исчисления отношений. Реляционное исчисление представляет собой набор пра¬ вил для записи выражения, определяющего некоторое новое отношение в терминах заданной совокупности отношений. В данном случае множество составных единиц информации ЭИС рассматривается как совокупность состояний специальным образом заданных отношений. Над значениями можно про¬ изводить алгебраические операции (выборку, проекцию, сое- 6.2. СРЕДСТВА ОПИСАНИЯ МОДЕЛИ 194
динение и т. д.), с помощью которых осуществляются поиск, расчет и выдача затребованной информации. Однако в отличие от рассмотренной в предыдущих разделах реляционной ал¬ гебры реляционное исчисление устанавливает, каким будет результат, но не указывает, как его получить. Таким образом, определение СЕИ с использованием реляционного исчисления полностью непроцедурно, что в наибольшей степени соответ¬ ствует требованиям, предъявляемым к модели ЭИС. Абстрагируясь от специфики синтаксиса конкретных язы¬ ков, основанных на реляционном исчислении, рассмотрим сущ¬ ность использования реляционного исчисления при модели¬ ровании ЭИС. Определение в реляционном исчислении формируемой СЕИ в общем виде может быть представлено следующим образом: { (n.Ki : — Я1./С1, п.Кь = R ьКi,n.Ki+v = = /1, Я./C/^s- /.<?)•£}» где я — имя результатного отношения; Ru ..., Ri — имена отношений; /Ci, Ki — имена реквизитов; /ъ •••> fs — указатели функции; е — логическое выражение (предикат). Фигурные скобки {} указывают, что данное выражение яв¬ ляется определением некоторого множества (отношения); сим¬ вол «:=» означает операцию присваивания; двоеточие «:» — «такое, что» или «где»; терм, предшествующий двоеточию, опи¬ сывает состав кортежа множества, а терм, следующий за двоеточием, является условием, описывающим определяющее свойство множества. Каждый указатель функции ft имеет вид fi = Fi (t\, F, .... fm.), где Ft — идентификатор функции; t[ tm. — идентификаторы ее аргументов. Аргументами функции могут быть имена исходных отно¬ шений и реквизитов. В некоторых случаях выражение, ука¬ занное в скобках, кроме аргументов может содержать знаки арифметических операций, скобки и константы. В качестве примера рассмотрим функции суммирования значений реквизита заданного имени (2!) и вычисления зна¬ чений реквизитов, находящихся в одной строке таблицы, за¬ дающей отношение (ВС). Если я и R—имена результатного и исходного отношений, а /Сг, Ki+m — имена реквизитов-оснований, то функция 7* 195
л .к, ~ S ( (Я.Кг, .... R.K,) (R.K; + 1, .... /?/С,+т)) подсчитывает сумму всех чисел, стоящих в данный момент в столбцах с именами Ki + ii Ki + m таблицы, которая зада¬ ет отношение R. Причем суммируются значения реквизитов- оснований, имеющих одинаковые значения рек визитов-при¬ знаков в столбцах R.K1э ...,R.Ki. Полученный результат является очередным значением реквизита /С* в отношении я при значениях реквизитов-признаков Ки Функция ВС в общем случае имеет следующий вид: л .К i — ВС (Ri.Ki © R 2'^2 ® ••• © RbKi), где ВС — идентификатор функции; © —знак арифметической операции ( |-, —, X, /'). Следует отметить, что, учитывая частую употребляемость данной функции, ее идентификатор и внешние скобки в кон¬ кретных реализациях языка рационально определить не яв¬ но, а по умолчанию. В этом случае функция ВС будет иметь следующий вид: Ti.Ki i==: R\K\ © RоК2 ® ••• © R i-К /• При описании ЭФГ, основанном на реляционном исчисле¬ нии, в качестве имен отношений будем использовать иденти¬ фикаторы показателей из первого раздела модели. Второй раз¬ дел модели определяет состав столбцов таблицы, задающей отношение, соответствующее рассматриваемому показателю. Пример таблицы, задающей отношение, соответствующее показателю «План выпуска продукции производственными единицами объединений» (идентификатор показателя — В), иллюстрирует табл. 6.1. Таблица G. 1 в OB (код OP (код производ¬ HZ Z111 (план выпуска объединения) ственной единицы) (код изделия) изделий) 10 11 1358 5 10 11 1359 4 10 11 1360 100 10 12 1470 20 10 12 1480 10 20 21 1358 8 20 21 1359 5 196
Формульная запись данного отношения имеет вид: В.ОВ, OP, HZ, ZH1. Учитывая отмеченные в предыдущих разделах моменты ненормализованного представления отношений, рассматри¬ ваемое отношение В целесообразно расчленить на два отно¬ шения: ВИ. OP, HZ, ZH1 и R.OB, ОР. Сформированные в результате нормализации всех показателей дополнительные отношения, содержащие информацию справочного характера типа сведений о подчиненности объектов, региональной при¬ надлежности и т. д., должны быть включены во вспомогатель¬ ную часть модели ЭИС, что обеспечит возможность их исполь¬ зования при описании ЭФГ. В описании ОЭФГ, основанном на реляционном исчисле¬ нии, отношениям могут соответствовать показатели и СЕИ, содержащие сведения справочного характера. Полученные ОЭФГ фиксируются в четвертом разделе модели ЭИС. В качестве примера рассмотрим ОЭФГ, соответствующее исчислению показателя «Потребность предприятия в мате¬ риалах в разрезе изделий» (МИ): { (МИ.ОР: ~ ВИ.ОР,МИ.Иг: - BH.HZ,MH.MA: = - ни.мА,ми.гн - hh.zhi х ви.гн2, ви.иг: - ни.иг} Как видно из ОЭФГ, соответствующего показателю МИ, его реализация предполагает использование ранее рассмот¬ ренного отношения ВИ и отношения НИ (табл. 6.2). Таблица 6.2 ни ОР (код производствен¬ ной единицы) МА (код материала) HZ (код изделия) ZI12 (норма расхода материала на изделие) 11 15007 1358 10 11 15007 1359 100 11 15008 1358 15 11 15008 1360 7 12 15007 1470 10 12 15008 1480 10 21 15007 1358 10 21 15007 1359 80 21 15008 1358 15 197
Таблица 6.3 СОЕДИНИТЬ ВИ И НИ ПО И Z, ОР ПОЛУЧАЯ П01* noi ОР мл HZ | ZII1 | ZH2 11 15007 1358 5 10 11 15007 1359 2 100 11 15008 1358 5 15 11 15008 1360 100 7 12 15007 1470 20 10 12 15008 1480 10 10 12 15007 1358 8 10 21 15007 1359 5 80 21 15008 1358 8 15 * Здесь и далее служебные слона п описаниях операции подчеркнуты. На основании ОЭФГ может быть автоматически сформиро¬ вана соответствующая ему совокупность операции над отно¬ шениями. Для рассматриваемого случая это операции соеди¬ нения, расчета, проекции, вспомогательная операция переи¬ менования реквизитов. Первая операция соединяет отноше¬ ния BH.OP,HZ,ZHl и HH.OP,MA,HZ,ZH2 по совпадающим значениям реквизита TIZ с получением промежуточного отно¬ шения 1I01.0P, МА, HZ, ZH1, ZH2. Пример описания операции и получаемый результат пред¬ ставлены в табл. 6.3. Все строки полученной таблицы, задающей промежуточное отношение 1101, обрабатываются в соответствии с описанием (табл. 6И). Описание и результат операции проецирования приведе¬ ны в табл. 6.5. Последняя операция заключается в присвоении новых имен столбцам таблицы, задающей результатное отношение П02: МИ: = ПОЗ; МИ.ОР: - ПОЗ.ОР; МИ.МА: = ПОЗ.МА; MH.HZ: - ri03.HZ; MH.ZH3: - H03.ZH3. Фрагмент модели ЭИС, отображающий упрощенный вари¬ ант задачи «Расчет потребности в материальных ресурсах 198
Т а б л II ц а 6.4 вычислить в отношении not zm = zv\\yam получая пог ПО 2 ОР мл HZ | ZH 1 | ZH2 | ZH3 11 15007 1358 5 10 50 11 15007 1359 4 100 400 11 15008 1358 5 15 75 11 15008 1360 100 7 700 12 15007 1470 20 10 200 12 15008 1480 10 10 100 12 15007 1358 8 10 80 21 15007 1359 5 80 400 21 15008 1358 8 15 120 предприятий и объединений», приведен на рис. 6.11*, где ис¬ пользуются следующие обозначения: Al, А2 — адрес описа¬ ния в концептуальной схеме соответственно отношений ВИ и НИ; АЗ, А4, А5 —* адреса определения в реляционном ис¬ числении формируемых СЕИ с именами соответственно МИ, МО и MB* Описания этих СЕИ такие: { (MH.HZ: « BH.HZ, МИ.ОР: - ВИ.ОР, МИ.МА: = НИ.МА, MH.ZH: — HH.ZH X BH.ZH) : BH.HZ ~ = НИ.HZ А ВИ.ОР = НИ.ОР}, { (МО.МА: = МИ.МА, МО.ОР: =■ МИ.ОР, MO.ZH: = ~ Z ( (МИ.ОР, МИ.МА) (MH.ZH))}, Т а б л и ца 6.5 ПРОЕКЦИЯ П02 НА ОР. МЛ. \\Z. 7М3 ПОЛУЧАЯ ПОЗ поз ОР 1 ' мл I их | Z1! 3 11 15007 1358 50 11 15007 1359 400 И 15008 1358 75 11 15008 1360 700 12 15007 1470 200 12 15008 1480 100 12 15007 1358 80 21 15007 1359 400 21 15008 1358 120 * Рис. 6.11 конкретизирует рис.6.1. 199
Раздел IV Раздел со О £ < S го < S X со < о < 05 < 00 < < СО С CQ £ "о" S X X X CQ S CQ = А -е* £гг> о go Р s о ^ 1-1 R W О < 2 ж «3 , о 1 Р 2 3 к Я < аз CD ас ж sU S ge ь °(T) up qj Um « сх о я к a s -5" O 03 < h и и 03 я Я я * m •& Я и 5 0.0 н к- Я ж Ж го и СХ я О S н H О § ё s & н ч ж Л О) Си г* О S ь о 2 к ^ s S' s к < га о Я &3 Ь о о * Я ’ я « = is f- <D 2 2 * Я ГО ж *Я я _ ж £Х « си СО ос 03 ж СХ о П 3 о я ^ ж ж я £ си Я ч: к со сх СО с См «3 о О. С VO »Я О Я сх ж о ж с я fc* о Н (Q pvS Я Я ь* О к ГО S S — гз ПД сх - е я О) Я ~ СО СО со СХ г; 200
{ (МВ.МА: - МО.МА, МВ.ОВ: - КВ.КО, MB.ZH - - 2 ( (МО.МА) (МО.гЮ) : МО.ОР КВ.ОР}. Здесь Аб, А10 — адреса соответственно следующих текстовых констант (наименований показателей): «план вы¬ пуска изделий», «норма расхода материала на изделие», «по¬ требность предприятия в материале в разрезе изделий», «об¬ щая потребность предприятия в материале», «потребность объединения в материале»; All, А15 — адреса соответст¬ венно текстовых констант — наименований реквизитов: «ос¬ нование», «код материала», «код изделия», «код предприятия», «код объединения». Исходными данными для проведения расчета являются показатели, характеризующие план выпуска изделий (ВИ) и нормы расхода материалов на изделия (НИ). Отметим, что нормы расхода материалов на одноименные изделия на разных предприятиях могут быть разными. Реализация расчета пред¬ полагает умножение планов выпуска изделия на соответст¬ вующие нормы с получением показателей потребности пред¬ приятия в материалах в разрезе изделий (МИ). Общая по¬ требность предприятий в материалах (МО) определяется пу¬ тем суммирования данных потребности в одноименных мате¬ риалах, идущих на изготовление разных видов изделий. Рас¬ чет потребности определяется суммированием значений рекви¬ зитов оснований соответствующих показателей в разрезе кодов материалов по всем входящим в объединение предприятиям. Граф взаимосвязи показателей приведен на рис. 6.12. Вспомогательная часть модели должна включать в данном случае следующее отношение: КВ.КО, ОР, где КВ — имя отношения, характеризующего подчинен¬ ность предприятий объединения; КО—код объединения; ОР — код предприятия. Здесь же приводятся все необходимые характеристики вхо¬ дящих в отношения атрибутов (формат, экстремальные зна¬ чения, описания форм выходных документов и т. д.). Рассмотрим процесс использования фрагмента модели при создании СОЭИ, обеспечивающей решение приведенной в ка¬ честве примера задачи. При этом будем исходить из предполо¬ жения о наличии лингвистических и программных средств, обеспечивающих интерпретацию сведений, содержащихся в модели, и выполнение ее предписаний: системы ввода и конт¬ роля информации (СВК); системы управления базой данных (СУБД); редуктора ОЭФГ (РОЭФГ), обеспечивающего приве¬ 201
дение описателей к виду, необхо¬ димому для функционирования СУБД; блока реализации расчетов (БРР); системы отображения ре¬ зультатной информации (СОРИ). Ввод исходной информации, в частном случае показателей НИ и ВИ, осуществляет СВК, которая интерпретирует сведения о коор¬ динатах реквизитов этих показате¬ лей во входных файлах (четвер¬ тый раздел модели) и подготав¬ ливает информацию к вводу в базу данных. Загрузку информации в базу производит система управления ба¬ зой данных с учетом требований описания ее структуры и характери¬ стик запросов, которые могут быть определены на основании ОЭФГ. Описание схемы базы данных формируется автоматически на основании сведений из второго (состав реквизитов каждого показателя) и третьего (форматы реквизитов) разделов основ¬ ной части модели и аналогичных характеристик справочных отношений, содержащихся во вспомогательной части модели. Так, для рассматриваемого случая фрагмент концептуальной схемы предполагает объявление пяти реквизитов и шести отношений: DOMAIN ZHD FIX DEC (11,2), DOMAIN MAD CHAR (10), DOMAIN HZD CHAR (10), DOMAIN OPD CHAR (7), DOMAIN OBD CHAR (7). RELATION В И (ZH DO AAA IN ZHD, HZ DOMAIN HZD, OP DOAAAIN OPD) KEY (OP, HZ). RELATION НИ (ZH DOMAIN ZHD, MA DOMAIN MAD, HZ DOMAIN HZD, OP DOMAIN OPD) KEY (OP, HZ, MA). RELATION МИ (ZH DOMAIN ZHD, MA DOAIAIN MAD, HZ DOMAIN HZD, OP DOMAIN OPD) KEY (OP, HZ, MA) RELATION MO (ZH DOMAIN ZHD, MA DOMAIN MAD, OP DOMAIN OPD) KEY (OP, MA). Рис. 6.12. Граф взаимосвя¬ зи показателей
RELATION KB (КО DOMAIN OBD, OP DOMAIN OPD) KEY (OP). RELATION MB (ZH DOMAIN ZHD, MA DOMAIN MAD, OB DOMAIN OBD) KEY (OP). Расчет показателей осуществляют РОЭФГ и БРР, обеспе¬ чивающие формирование запросов к СУБД и реализацию ло¬ гических и арифметических операций над показателями и реквизитами. При расчете показателей, характеризующих потребность в материалах в разрезе изделий, происходит об¬ ращение к отношениям НИ и ВИ, результат образует отно¬ шение МИ. Расчет общей потребности каждого предприятия в материалах предполагает обращение к отношению МИ. Рас¬ чет потребности объединений осуществляется с использова¬ нием отношений МО и КВ. Последнее отношение исполь¬ зуется, так как отношение МО не содержит сведений о при¬ надлежности предприятий к объединениям. Полученные ре¬ зультаты с помощью СУБД записываются в базу данных (отношение MB). Затем система отображения результатной информации выдает пользователю информацию в соответствии с требованиями к формам выходных документов, содержа¬ щимся во вспомогательной части модели ЭИС. Особым случаем работы с отношениями являются операции над стянутыми вершинами графа (см. 6.1). Отличительной чер¬ той описателей стянутых вершин графа (ОСВГ) является то, что они предусматривают формирование не одного, а несколь¬ ких результатных отношений. ОСВГ строится в соответствии с рассмотренными выше правилами, но помещается во вспомо¬ гательную часть модели. Результатные же отношения долж¬ ны быть описаны как обычные показатели в основной части модели, что обеспечит возможность их последующего исполь¬ зования как в ОЭФГ, так и в ОСВГ. 6.3. ПРИМЕНЕНИЕ МОДЕЛИ ПРИ ПРОЕКТИРОВАНИИ И ФУНКЦИОНИРОВАНИИ СИСТЕМ ОБРАБОТКИ ИНФОРМАЦИИ Понятие «модель ЭИС» можно разделить на два понятия: модель ЭИС конкретного объекта управления (МО) и модель ЭИС гипотетического (обобщенного) объекта (или класса объектов) управления, будем ее называть гипотетической мо¬ делью (ГМ). Использование гипотетической модели по¬ зволяет осуществлять: накопление, обобщение и хранение сведений об экономичес¬ 203
кой информационной системе некоторого класса объектов уп¬ равления; системный анализ данных об ЭИС объектов управления с точностью до реквизитов и показателей, действующих в сис¬ теме, и взаимосвязей между ними; автоматизированное создание модели ЭИС конкретного объекта, используемой для автоматизированной генерации системы обработки экономической информации для соответст¬ вующего объекта, включая выбор состава и структуры базы данных и получение программно-алгоритмической части сис¬ темы. Гипотетическая модель представляем собой некоторое ста¬ тическое отображение ЭИС некоторого класса объектов. Гипотетическая модель является информационной базой системы машинного проектирования систем обработки эконо¬ мической информации (СОЭИ) и служит накопителем проект¬ ных решений для некоторого класса объектов. Она в конеч¬ ном итоге обеспечивает машинное создание модели конкрет¬ ного объекта, относящегося к соответствующему классу. Одно из перспективных направлений совершенствования средств и методов проектирования СОЭИ — использование параметрического описания предметной области, являющейся некоторым множеством функций управления, с последующим автоматизированным переходом описания к адекватной СОЭИ. В этом случае гипотетическая модель выступает в качестве посредника между параметрическим описанием и моделью объекта. В процессе функционирования СОЭИ должна развиваться, модернизироваться, совершенствоваться в соответствии с из¬ менениями ЭИС объекта. Использование гипотетической мо¬ дели и модели объекта позволяет сравнительно просто решить эту проблему. В результате получается следующая последо¬ вательность при проектировании СОЭИ для некоторого объ¬ екта. На основании параметрического описания предметной области выбранного объекта из гипотетической модели строим модель объекта, которая может быть дополнена и откорректи¬ рована с целью обеспечения адекватности полученной модели конкретным условиям объекта. В свою очередь модель объекта используется для машинного создания СОЭИ этого объекта. Более того, эта модель может быть использована для модер¬ низации функционирующей СОЭИ. Рассмотрим более подробно основные операции создания СОЭИ с использованием гипотетической модели. Создание СОЭИ может быть представлено как последова¬ тельная многоуровневая параметризация ЭИС. На верхнем 204
уровне устанавливаются самые общие параметры, которые затем конкретизируются Глубина детализации параметров зависит от мощности используемых средств их интерпретации, которыми могут быть трансляторы с алгоритмических языков, адаптируемые программные средства, индивидуальные про¬ граммные средства. Первые и последние являются вырожден¬ ными случаями, не удовлетворяющими динамическому харак¬ теру параметров ЭИС (первый случай сопряжен с большой тру¬ доемкостью, другой не обеспечивает необходимой надежности функционирования СОЭИ). С учетом этого обстоятельства использование модели пред¬ полагает наличие совокупности адаптируемых программных средств, использующих соответствующие им подмножества параметров Р ^ / U /?, где / — исходные, a R — производ¬ ные параметры модели. Функционирование этих средств в са¬ мом общем виде можно представить следующим образом: Как отмечалось, состав данных программных средств дол¬ жен включать: средства проверки корректности модели (П1), блок выбора комплекса технических средств (П2), средства структурирования базы данных (ПЗ), средства создания сис¬ темы ввода и контроля исходных данных (П4), средства гене¬ рирования программ обработки данных (П5), средства созда¬ ния отображения информации (П6). В этом случае процесс создания СОЭИ сводится к опреде¬ лению значений подмножества производных параметров R, формированию подмножеств параметров Ph для каждого к-го преобразователя и его выполнению. В самом общем виде опи¬ сатель преобразователя можно представить следующим об¬ разом: ПЛ (»<*>, *<*>, .... £<*», г<*>, .... гЩК /<*>, /<Ч с<*>, ..., с}*>): ек, *k h h h где Uk — идентификатор /е-го преобразователя; *■«/>. ...i'i'sr. 205
r[k)r..., Гщ] k R — совокупность ранее вычисленных производ¬ ных параметров; f[k)> • ••> fn^ — указатели функций, обеспечивающих форми¬ рование производных параметров; c(i*\ •••> — текстовые константы; е}> — условие отбора параметров. II реобразователь П1. Вследствие большого ко¬ личества параметров модели и многообразия их взаимосвязей между собой преобразователь П1 предполагает использование набора описателей, каждый из которых имеет следующий вид: ;( I) /(1) ,,(1) ,,(1) r(l)\ . 0 Ц1 > ^2 » •••> llx у С1 у С2 , Ctl ) . el9 где ei — условие выдачи сообщения, состав которого указан в скобках перед двоеточием. Значения выходных параметров проверяются преобразо¬ вателем на корректность и случае наличия ошибочных зна¬ чений выдаются соответствующие диагностические сообщения. Преобразователь П2. где /ii2), ..., flu — указатели функций, обеспечивающих рас¬ чет производных количественных параметров ЭИС (расчетные параметры информационных потоков — объемы, интенсив¬ ность, пиковые нагрузки и т. д.); i\2\ i{22\ •••» — ограничения на ресурсы, описания входных и выходных документов и т. д. На основании информации, задаваемой параметрами /(i2), ..., i\\\ данный преобразователь производит выбор струк¬ туры комплекса технических средств (КТС), СМОД (состав, схема функциональных связей, технология сбора и обработки информации и т. д.) и описывает выбранный вариант КТС про¬ изводными параметрами Л3), Гтл\ Одновременно подготав¬ ливается документированное текстовое описание КТС. Преобразователь ПЗ. Ш/ / ( 3 ) /(3) Г(‘Л) *. ( 3) f(3) f ( з ) (3) гп(3М (М , •••» Чл > Г\ » •••> ГШа » /I » •••» hh * ф! ’ •••» Ts )> где г\3), ..., rmj — параметры комплекса технических средств, сформированные преобразователем П2; /Vм, • fhV — указатели функций, обеспечивающих авто¬ матическое построение реляционной модели данных; i{i3\ */33)—описания входных и выходных доку¬ ментов; ф\3\ ф£3) — указатели функций преобразования одних моделей данных в другие. 206
Последняя группа параметров введена, поскольку реля¬ ционная модель полностью свободна не только от особенно¬ стей представления данных в физической памяти ЭВМ, но и от любых других аспектов, связанных с организацией доступа к данным. В реальных СУБД такая абстрактная модель должна быть отображена на память конкретных устройств. Это отображение в общем случае является многоуровневым и имеет вид ^ Л* фз д я <Рз фЗ-1 фв 0 D—>МХ —>УИ2—►... —> Ms_!—>5, где D — реляционная модель; Mi — другие модели данных; S — физическая память; фг- — функция отображения. Отметим, что преобразователь ПЗ должен обеспечить так¬ же и обратное отображение cpf1. На основании значений параметров i\3\ ..., i)3) и Л3\ rj3} преобразователем П5 формируется описание кон¬ цептуальной схемы БД и описание ее реализации конкретной СУБД в виде некоторых производных параметров. Кроме то¬ го, получается текстовое описание БД и подготавливается с помощью функции фя на магнитном носителе описание БД на языке описания данных выбранной СУБД. Преобразователь П4 предполагает использова¬ ние описателей двух типов — описателей ввода и описателей контроля. Описатель ввода имеет вид П4 (гИ), где i(\\ ..., г(/4) — параметры, характеризующие реквизиты показателей и их координаты во входных документах, методы контроля и т. д.; г(14\ rlri} — производные параметры, характеризующие технические средства и структуру базы данных; Фь •••» Фь— указатели функций связи прикладных про¬ грамм с конкретными СУБД; в4 — условие, обеспечивающее отбор входных показателей (строка матрицы смежности не содержит ненулевых элементов). Описатель контроля аналогичен описателю преобразова¬ теля ГП. На основании описания входных документов, задания ме¬ тодов контроля и производных параметров описания КТС, структуры БД преобразователь П4 выбирает и распечатывает технологический процесс обработки информации на ЭВМ, ге¬ нерирует программы соответственно подготовки входных фай¬ лов для загрузки БД и самой загрузки ее. При этом функции 207
4'i» --Hi'п используются для указания методов и правил ис¬ пользования модулей конкретной СУБД в программах поль¬ зователя. Преобразователь Г15 состоит из совокупности описателей расчета показателей и описателей контроля рас¬ четной информации. Описатель расчета показателей имеет вид П5(ЛМ а:\гг, где i\b\ ..., ^55) — выходные документы, методы контроля расчетной информации; Л5\ AmV — параметры комплекса технических средств, структура базы данных; Фъ — содержание такое же, как в преобразователе П4. Описатель контроля расчетной информации по форме соот¬ ветствует П1. Результатом работы этого преобразователя являются сге¬ нерированные на конкретном языке программирования про¬ граммы расчета показателей и их описание (тексты, инструк¬ ции, наборы управляющих перфокарт и т. д.). Преобразователь П6. Ш//(6) ;(6) r<6) -<6> I, -(G) /><6)4 (М , •••, lie у О , •••» у ф1, ...» Фа» С\ , ..., Cte ), где ii6), ..., i/e6) — параметры модели (каталог форм выходных документов, наименование реквизитов и показателей, формат реквизитов и т. д.); Лб), ..., г ml — параметры комплекса технических средств и структуры базы данных; с'i6), ..., сЦу —текстовые константы, задающие заглавия документов, страниц, отдельных строк. Преобразователь Пб создает программы печати выходных документов и их описание. Рассмотренная совокупность преобразователей исполь¬ зуется как при подготовке гипотетической модели, так и при создании модели реального объекта. Для обеспечения модернизации функционирующей ЭИС должна применяться система проектирования СОЭИ с исполь¬ зованием модели (рис. 6.13) при условии, что все изменения будуз включены в модель объекта, а значения параметров, описывающих объект, будут исправлены. В результате будут получены новая структура базы данных, новые программы СОЭИ и новая документация СОЭИ. Таким образом будет ре¬ шена проблема получения нового проекта СОЭИ. Существенно важным является использование находящейся в системе ин¬ 208
Модель объекта (МО)^ Изменения МО Старая структура БД Новая структура БД Старая БД Рис. 6.13. Использование системы проектирования СОЭИ для модерни¬ зации функционирующей ЭИС формации. Для обеспечения использования имеющейся в базе данных информации служит блок (см. рис. 6.13) реоргани¬ зации базы данных. В этом блоке на основании старой струк¬ туры базы данных, старой базы данных и новой структуры ба¬ зы данных получается новая база данных. Решение этой, вто¬ рой, проблемы обеспечивает возможность перехода на функ¬ ционирование нового модернизированного варианта СОЭИ. Для реализации блока реорганизации базы данных введем преобразователь П7, который предполагает исполь¬ зование описателей двух типов — описателей реорганизации и контроля. Описатель реорганизации имеет вид П70’(7) .47) г(7> »-<7> ,*(7) г< 7) 1 1 ' у [ * • • •» I /7 > ^ 1 у • • • у Гт7 » ^/;г7 1 > • • • > ? -\-пу Гт, п -|- I * • • • г},?7'+п+к):е-, где (У\ .... ({77) — параметры, характеризующие реквизиты дополнительно вводимых в новую БД показателей и их коор¬ динаты во входных документах; Л7\ гт7 — производные параметры, характеризующие комплекс технических средств и структуру старой БД; гtn7С I, ..., Гт\п — производные параметры, характери¬ зующие комплекс технических средств и структуру новой БД; ..., .n+k—- производные параметры, харак¬ теризующие реквизиты показателей старой БД и их коорди¬ наты в файлах старой БД; с1 — условие, обеспечивающее отбор показателей как до¬ полнительно вводимых, так и хранящихся в старой БД. Описатель контроля по форме соответствует преобразо¬ вателю П1 и указывает применяемые при реорганизации базы данных методы контроля данных. /*.(7) 209
Таким образом, показано, что модель ЭИС объекта обеспе¬ чивает возможность машинного проектирования СОЭИ и ее модернизацию в процессе функционирования. В качестве примера применения введенных преобразо¬ вателей рассмотрим процесс машинного создания СОЭИ упро¬ щенного варианта задачи «Расчет потребности в материальных ресурсах предприятий и объединений», описанной в 6.2. Вве¬ дем ряд допущений: для создания системы обработки, экономической информа¬ ции указанной задачи используем модель ЭИС объединения, фрагмент которой описан в 6.2 (см. рис. 6.11 и 6.12); множество значений параметров описания конкретного предприятия есть подмножество значений параметров модели, т. е. предварительная корректировка модели не требуется (это означает, что формы входных и выходных документов задачи, форматы реквизитов, наименования показателей и реквизитов совпадают с указанными в модели); концептуальная модель данных информационной базы раз¬ рабатываемого варианта задачи совпадает с описанной в 6.2; для реализации реляционной модели БД используется СУБД. Как отмечалось, для машинного создания СОЭИ данной задачи с использованием модели необходимо определить мно¬ жество входных (/) и производных (R) параметров. Абстраги¬ руясь от конкретного вида задания параметров, / и R можно определить в виде /-{ОЬ я НМ ('-"Тв; k - - Гб), где С, ь — списки кодов форм соответственно входных и вы¬ ходных документов задачи (из каталога форм документов мо- дели); — параметр описания интенсивности потоков до к у мен- тов (среднее, максимальное и минимальное число строк в до¬ кументе, среднее, максимальное и минимальное число доку¬ ментов в сутки); /4 — параметр описания выбора структуры КТС (средства сбора, регистрации, обработки и отображения информации, условия взаимосвязи различных компонентов КТС, взаимо¬ заменяемость одних устройств другими, особые условия ис¬ пользования отдельных устройств); /5 — ограничения на ресурсы (количество устройств каж¬ дого типа, общий объем ОП, ограничения на стоимость КТС, общий объем памяти на МД); С, i1 — идентификаторы методов контроля соответственно входной и расчетной информации;
iH — параметр задания имен языков программирования (все программы обработки информации генерируются на ука¬ занных языках программирования); i\ — параметр описания выбранной структуры КТС (ко¬ личество устройств каждого типа, взаимосвязи между компо¬ нентами КТС, условия взаимозаменяемости устройств, ус¬ ловия использования отдельных устройств); /*2 — определение концептуальной схемы реляционной БД задачи; гя — параметр описания структуры информационной базы задачи (разбиение ее на физические и логические БД СУБД, распределение типов сегментов по физическим БД, взаимо¬ связь между физическими БД); /*4 — параметр описания структура каждой физической БД (взаимозаменяемость сегментов, их подчиненность, длина логической записи, коэффициент блокирования, метод орга¬ низации и доступа, правила включения, удаления и замены сегментов, разбиение физической БД на наборы данных ОС ЕС ЭВМ, размещение наборов данных на МД, резервирование памяти); /*5 —- параметр описания структуры и состава сегментов (список реквизитов и последовательность их размещения в каждом типе сегмента, ключи упорядочения); г() — параметр описания реквизитов (формат, применяемые методы контроля). Пусть /ь /2, f:i — указатели функций расчета количествен¬ ных параметров ЭИС объединения (соответственно объемы и интенсивность информационных потоков, пиковые нагрузки); /4 — указатель функции построения реляционной модели БД задачи; (Pi — указатель функции отображения реляционной мо¬ дели данных в иерархическую модель СУБД; (р2 — указатель функции отображения иерархической мо¬ дели данных СУБД на физическую память, которая опре¬ деляет на языке описания данных этой СУБД описание каждой физической БД; Ф1 — указатель функции связи прикладных программ с СУБД, которая задает правила и методы использования модулей и операторов языка манипулирования данными за¬ данной СУБД в программах пользователя. Тогда процесс машинного создания СОЭИ этой задачи с ис¬ пользованием модели можно представить в виде последователь¬ ности следующих этапов. На первом этапе выполняется преоб¬ разователь П1 проверки модели на корректность. Из всего многообразия возможных проверок значений параметров ог¬ 211
раничимся только проверкой на возможность определения вы¬ ходных показателей через входные и на достаточность памяти для хранения данных. В таком случае преобразователь П1 будет иметь вид: © где Сь С2, С3 — следующие текстовые константы: «ОТСУТСТ¬ ВУЮТ ДОКУМЕНТЫ имя-1 ... имя-/!», «НЕДОСТАТОЧНО ПАМЯТИ», «НЕТ ОЭФГ имя-1 ... имя-/!» (здесь имя-1, имя-/! указывают идентификаторы отсутствующих в моде¬ ли документов и ОЭФГ); £1, £2, Е3 — условия, которые можно записать в таком виде: з/7о 6 Д„ U Д,,ых. что Vп 6 Np0 ф п (условие Е1 означает задание в ix или i2 кода документа, кото¬ рого нет в каталоге модели); Г пп ^ Умд "1" Гмб Н“ Гм л (условие Е2); 3s0 £ S, что yru 6 M .So ф т (условие ЕЗ предполагает отсутствие некоторого формализованного ОЭФГ в модели за¬ дачи). При записи условий £1, £2, £3 использовались следующие обозначения: М — множество идентификаторов ОЭФГ в модели; S —множество идентификаторов ОЭФГ, необходимых для определения задаваемых i2 выходных показателей; Л' — множество кодов документов в каталоге форм доку¬ ментов модели; in, s — идентификаторы ОЭФГ; Г„„ — суммарный объем информации (в байтах), хранимой в базе данных задачи; Гмд, Гмь, Гмл — объем памяти, предоставляемый для хранения данных на МД, МБ и МЛ; Двх, ДПых — множество кодов соответственно выходных и входных документов, задаваемых параметрами С и /2; poy п — коды документов: 3» V — логические кванторы существования и общности. После исправления ошибочных значений параметров на втором этапе работает преобразователь П2: /7/ (I,, 1г, С,) ■ £7 /7/ (ifl i2, i3, i5, C!):£2 П1 (i2, C3) :E3 Диагностические сообщения 212
П2 (iu i2> t5,ц, is>fpf2>/з) <Sr Описание к тс Описание КТС должно содержать текстовое описание структуры КТС АСУ (состав, схема функциональных связей устройств, основные решения по технологии сбора, регистра¬ ции и обработки данных, функционирование ВЦ в нормаль¬ ном и аварийном режимах и т. д.), расчетные количествен¬ ные характеристики ЭИС и т. д. На третьем этапе выполняется следующий преобразователь Сформулированная ПЗ концептуальная схема БД — это описание реляционной модели информационной базы задачи (соответствует описанной в 6.2). Описание БД — это записан¬ ная на магнитном носителе совокупность блоков описания базы данных СУБД, реализующих концептуальную схему БД. Текстовое описание БД содержит изложение основных решений по организации информационной базы задачи (описание состава и структуры БД, распределение информа¬ ции на машинных носителях, тексты блоков и т. д.). После этого необходимо создать систему ввода и контроля информации. Допустим, что при вводе данных в ЭВМ значе¬ ния реквизитов «код объединения» (ОВ) и «код предприятия» (ОР) контролируются на принадлежность множеству допус¬ тимых значений с помощью преобразователя П4: ПЗ: Концептуальная схема БД Описание БД СУБД Текстобое описание БД 213
1 Описание техноло* гического процесса □ Программы подготов¬ ки входных файлов U I Программыг Xх 1 загрузки БД I 1 Тексты программ. Описание технологического процесса содержит изложение технологического процесса обработки данных на КТС (макеты перфорации, инструкции, порядок загрузки БД и т. д.). Программы подготовки входных файлов — это сгенерирован¬ ные П4 программы контроля входной информации и компонов¬ ки из нее входных файлов, требуемой СУБД структуры. Усло¬ вие Е4 — условие отбора входных показателей (выбирают¬ ся только те показатели из iu строки матрицы смежности которых содержат только нулевые элементы). Условие £5 можно записать так: (я I/O, что V У € YlJ Ф уо) V (Я zo- что V 2 6 2 Zo ф Z) (здесь У, Z — множество допустимых значений реквизитов соответственно ОВ и ОР, которые задаются полным перечнем значений ОВ и ОР в модели; //о, 2о — конкретные значения ОВ и ОР); С4 — текстовая константа «ОШИБОЧНОЕ ЗНАЧЕНИЕ РЕКВИЗИТА имя = значение». На пятом этапе выполняется преобразователь П5, который генерирует программы расчета показателей. Пусть при рас¬ чете показателей МИ, МО и MB нужно контролировать зна¬ чение реквизита ZH на возможность переполнения, т. е. по¬ лучения значения С длиной больше чем 11 десятичных цифр. В этом случае преобразователь П5 имеет вид: I 1 Описание программ I 1 Программы 1 расчета показателей П5 (i2) i7) Lq, ти г2л /у, r4 r5f rc, Yi) П5 (l2t i7, C$) : E6 M(h, Le, h, ru r2, гз, r*. r5, rs, 4>i ) :£4 /74 (if, 1^, C4) ■ E5 где C5 — текстовая константа «ПЕРЕПОЛНЕНИЕ». 214
Условие Е6 такое: ZH ^ 1012. Описание программ расчета показателей содержит тексты программ на одном из задаваемых /8 языке программирования, инструкции по их использованию, наборы управляющих опе¬ раторов. На последнем этапе преобразователем П6 создаются программы печати выходных документов. Так как по условию примера формы выходных документов соответствуют докумен¬ там, описанным в модели, то текстовые константы, задающие заглавия документов, страниц и т. д., в описателе Пб можно опустить. Тогда Г16 имеет вид: П6 (> LQ7 р1> Г2> Г3; r4> r5> r6) tyt ) , Программы | печати документоб 1 Описание программ Смысл выходной информации такой же, как в предыдущем преобразователе. Таким образом, в результате выполнения рассмотренной последовательности преобразователей получаем описание тех¬ нологического процесса решения задачи: описание на языке описания данных СУБД информацион¬ ной базы задачи; сгенерированные на указанном языке программирования программы подготовки входных файлов для загрузки БД, рас¬ чета показателей и печати документов; программы (модули) загрузки БД; тексты соответствующих программ. После выполнения ряда операций по трансляции, сборке, комплексной стыковке, отладке программ получаем рабочий проект рассматриваемой задачи. Контрольные вопросы 1. Каким требованиям должна удовлетворять модель ЭИС объекта? 2. Какие параметры объекта должны быть формализовано описаны? 3. Сравните возможности аппаратов реляционной алгебры и реляцион¬ ного исчисления при записи алгоритмов вычислений. 4. Охарактеризуйте роль модели при сопровождении и модификации ЭИС. 215
ЛИТЕРАТУРА 1. Бусленко И. П. Моделирование сложных систем. 3-е изд., пере- раб. — М.: Наука, 1978. 399 с. 2. Дейт К. Введение в системы баз данных / Пер. с англ. В. С. Ми¬ наева, И. А. Маслаковой. — М.: Наука, 1980. 463 с. 3. Дрибас В. П. Реляционные модели баз данных. — Минск: БГУ им. В. И. Ленина, 1982. 192 с. 4. Жеребин В. М., Мальцев В. Н.. Совалов М. С. Экономические информационные системы. — М.: Наука, 1978. 200 с. 5. Королев М. А., Клешко Г. И., Мииленин А. И. Информационные системы и структуры данных / Под ред. М. А. Королева. — М.: Статистика, 1977. 183 с. 6. Кузин Л. Т. Основы кибернетики. Т. 2. — М.: Энергия, 1979. 584 с. 7. Мартин Дж. Организация баз данных в вычислительных системах / Пер. с англ. Под. ред. А. А. Стогния. — М.: Наука, 1980. 662 с. 8. Мидоу Ч. Анализ информационных систем / Пер. с англ. Под ред. В. М. Савинкова. — М.: Прогресс, 1977. 400 с. 9. Первин Ю. А., Шевякова Т. К. Динамические информационные си¬ стемы на предприятии-. — М.: Статистика, 1975. 10. Сборник задач по курсу «Информационные системы и структуры данных» / С. М. Диго, Г. Н. Клешко, А. И. Мишенин. Е. А. Пет¬ ров. — М.: Статистика, 1981. 144 с. 11. Ульман Дж. Основы системы баз данных. — М.: Финансы и стати¬ стика, 1983. 334 с. 12. Флорес И. Структура данных и управление данными / Пер. с англ. В. И. Будзко. — М.: Финансы и статистика, 1982. 319 с. 13. Экономическая информация / А. И. Толстиков и др. — М.: Стати¬ стика, 1974. 239 с.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Агрегат 29 Адаптивность 186 Адрес: записи 122, 128, 137 связи 124—126, 132—133, 138— 140 хранения 109 Адресация 25, 191 Адресная функция 131, 159 Активность страницы памяти 148, 150 Алгоритм 17, 34 — выборки данных 112 — корректировки 124, 150 — обработки поисковых запро¬ сов 102 — поиска 118, 140 — получения производных от¬ ношений 95 — преобразования отношений 102 — формирования упорядочен¬ ного бинарного дерева 138—139 Алгоритмический язык 17 Алфавит 15—16 Антирефлексивность 47, 60, 116 Антисимметричность 47 Антитранзитивность 47 Асимметричность 47 Атрибут 11 База данных 8—10, 100, 170, 202 — иерархическая 108, 154 — распределенная 179 гетерогенная 182 гомогенная 182 с канонической моделью дан¬ ных 182 Байт 35 Бит 11, 16 Блок: записи 147 обработки 162, 167 реорганизации базы данных 209 связи 161 Взаимосвязь СЕИ 59, 60 Взаимосвязь ЭИС: горизонтальная 178 иерархическая 178 Веер 103 Вектор 19, 62 Вес символа 17 Вершина графа 108, 192 Включение 49, 52. 82 — частичное 49 Владелец отношения 102 Время доступа 148 Встречаемость реквизита 50, 51 Выборка данных 63, 81, 111 —112, 157 Вычитание массивов 74, 82, 106, 123 Граница массива 25 — верхняя 25 — нижняя 25 Граничная пара 25 Г раф: взаимосвязи разновидностей ин¬ формации 163 взаимосвязи показателей 201 — 202 вхождения реквизитов в СЕИ 27, 51 информационных связей подси¬ стем 166—169 отношения 52, 46, 60—61 структуры СЕИ 27 ЭИС 188 Группа 29, 122, 137 — простая 29 — сложная 29 Группировка 88 Данные 5 — пересечения 100 Декомпозиция 10—11, 32—34, 188 Деление отношений 74, 80 Дерево (древовидная организация данных) 137 217
— fi-дсрсво 153—154 — бинарное 138, 140 — подравненное 140 — позиционное 142 Детерминанта 94 Диаграмма функциональных зависимостей 99, 176—177. взаимосвязей 101 —104 сетевой модели данных 103— 104 Дизъюнкция 54, 59 Длина • записи 1I7 — неопределенная 117 — переменная 117 — фиксированная 117 массива 25, 33 номенклатуры 20 реквизита 14 строки 16 текста 16 Документ 22, 117 Доступ: блуждающий 148, 150 от начальной точки 148 Дублирование информации 167 Дуга графа 108 Единица: измерения объема данных 35 информации 9—10 — составляющая 21, 24, 27 — составная (СЕИ) 21, 24, 27 простая 25 массив 25 Зависимость: многозначная 96 функциональная 92—95 — неполная 92—93 — полная 92 — транзитивная 93—95 Запись 29—30, 116 — иерархической базы данных 108 — концевая 138 — корневая 153 — неполная 138 — полная 138 — синоним 131 —132 — соседняя 140 Запрос 118, 124, 151 Захват отношения 172 Звено связи 125, 137, 143 Знак 19, 35 Значение 10 — единицы информации 10 — индекса 131 — ключей 1 19 — логическое 18 — отношения 44 — показателя 31 — реквизита 14—15, 118 — СЕИ 21 — текстовое 17 —. числовое 17 Зона памяти: основная 132 резервная 132 Идентификатор 13, 21, 31, 44, 76, 103, 191, 196 Избыточность информации 170 Имя: единицы информации 10, 13, 21, 116 отношения 74 показателя 31 реквизита 13, 74 СЕИ 21 Индекс 25, 128 — А-индекс 128—130 — /(-индекс 128—130, 151 Интегрированная обработка ин¬ формации 51 Информация 5, 1 1 — ассоциативная 124, 125 — внешняя 160 — внутренняя 160 — входящая 35, 160 — заимствуемая 167 — исходная 35, 161 — исходящая 35, 160, 164 — необрабатываемая 161 — обрабатываемая 161 — первичная 160 — переменная 35 — постоянная 35 — производная 161, 163 — промежуточная 161 — результатная 161, 164 — сводная 163 — собственная 124—125 — экономическая 51, 162, 165 Информационное пространство 6 — машинно-структурированное 8 — неструктурированное 7 — слабо структурированное 7 — структурированное 7 — формализованно структури¬ рованное 7 218
Информационная модель объекта 9 Исключение 82 Каталог 128 — локальной ЭИС 181 — областей задачи 181 — показателей 191 — реквизитов 191 — текстовых описаний ЭФГ 191 — форм входных и выходных документов 192 — центральный 181 — цепной 128, 133, 152 Квазипорядок 48—49 Ключ 117 — вероятный 89, 91—93, 96, 171 — записи 121 — первичный 90, 93—94, 99, 101, 171 — сортировки 71 Код 17, 63 Композиция 10, 32—33, 188 Константа 16 Конструктивность концептуаль¬ ной модели 175 Конструкция 175 Конъюнкция 54, 59 Корень дерева 138 Корректировка 92, 93, 113, 131 — бинарного дерева 140 — данных 124, 113 — записи 131 — массива 121, 124 — отношения 82, 92—93, 96 — страницы 150—151 — строки 131, 133—134 Кортеж 43, 62, 75, 78, 96, 99, 109 Коэффициент: информационный взаимосвязи 166 структурированности 7 Массив 25, 26, 116, 151 — записей 121, 147 — изменений 121 — инвертированный 121 —124, 136, 155—156 — индексов 148 — исходный 122 — основной 121- 122, 155—156 — упорядоченный 71, 120 Матрица: взаимосвязи показателей и форм документов 191 встречаемости реквизитов в СЕИ 51 инверсий 71—72 модели ЭИС 187 отношения 45 Метод организации значений 10 Модель: 9, 10 машинная 9 программно-алгоритмическая 9 обработки данных 9 Модель данных 10—11, 74, 173 — внешняя 173 — внутренняя 173, 177 — иерархическая 108, 154 — концептуальная . 173—175, 210 — реляционная 74, 154, 182, 210 бинарная 98—99, 154 — семантических связей 113 — сетевая 100, 104, 108, 154 Модель ЭИС 185 — гипотетическая 188, 193 — каноническая 188, 193 — объекта 204 Модуль 190, 215 Мультисписок 135, 146, 152—153, 156 Набор значений 29, 54, 62, 99, 102 Независимость данных 170—171 Наименование реквизита 13 Непересечение 49 Номенклатура признака 18 Номер позиции 25 Нор мализация: отношений 88, 92 СЕИ 29 Нормальная форма отношения 92 — первая 92 — вторая 93 — третья 94 — четвертая 96 Нормальная форма: дизъюнктивная 54, 59 конъюнктивная 54, 59 Объединение 70, 74—75, 82, 123, 106 Объем данных 66—68 Область определения: реквизита 14 отношения 43 Ограничение: отношения 77—78 целостности данных 171 219
Ограничитель 16 Операнд 54 Операции: арифметическая 21—22 логическая 22, 31 над значением единицы инфор¬ мации 10 над именем единицы информа¬ ции 10 над структурой единицы ин¬ формации 10 отношения 22, 31 текстовая 22, 31 Описание: базы данных 213 реквизита 18 ЭФГ (элементарного фрагмен¬ та графа) 190—191 Описатель: ЭИС 186 ЭФГ 194, 203 Организация значений данных 116 — линейная 116 — нелинейная 137 — последовательная 116, 141 — строчная 124, 125, 126, 141 Основание показателя 30, 35—38, 58, 64 Отношение 43, 175 — арифметическое 62 — бинарное 43, 70, 94, 98, 102, 104 — веерное 102, 105, 107, 154, 158, 175 — включения 49 — вырожденное 43 — групповое иерархическое 64 — квазипорядка 49 — логическое 52 — множественное 49 — неоднородное 46—47 — непересечення 49 — нестрогого порядка 71 — однородное 46—47 — производное 95 — произвольное 98, 105 — равенства 49 — синонимии 74—76 — строгого порядка 63 — толерантности 65 — унарное 43 — частичного включения 49 — эквивалентности 48 Отображение концептуальной мо¬ дели 179—180 расчлененное 180 по значениям 180 по структуре 180 реплицированное 179 Память 132, 147 Параметр 187 — встречаемости 50—51 — входной 210 — использования СЕИ 61—62 — производный 210 • — полного использования — полного спроса — спроса СЕИ 61 Переменная 11, 16, 18 — логического типа 18 Пересечение 74—75, 105, 108, 123 Поддерево 138 Подмножество: взаимно упорядоченное 72 упорядоченное 72 Подрешетка 146 Подсистема 165 — АСУ 166 — - влияющая 168 — зависимая 168 — изолированная 168 — невлияющая 168 — независимая 168 — ЭИС 164—165 Подсписок 143 Поиск 118, 123, 130, 153 — интерполяционный 120—121 — методом адресной функции 131 — 132 — по дереву 140, 142, 153 — по инвертированному мас¬ сиву 124, 136 — последовательный 119, 126 — по совпадению 139, 140 — ступенчатый 118—119 бинарный 119—120, 130 последовательный 119, 126, 130 Показатель 9, 30 — абсолютный 38 — абстрактный 10 — булевский 37 — выходной 189 — динамический 38 — единица информации 34 — исходный 189 — нормативно-расценочный 39 — обобщающий 38 — относительный 39 — переменный 39 — постоянный 39 220
— производный 40 — состава 39 — статический 38 Поле 11 — результата 139 Порядок: дерева 137 лексикографический 70 нестрогий 48 отношения 43, 48 строгий 48 Предметная область 170 Преобразователь 206—208 Признак 11 — 12, 15, 18 — индивидуальный 12 — классификационный 165 — ключевой 71—72, 121, 137, 139, 141, 155 — конца списка 137 — общин 12 — основной 65 — поисковый 118 Проекция отношения 76, 91—94 Произведение отношений 76—78 Равенство 49 Разделитель 117 Ранг дерева 137 Распределенная информационная система 178 Реквизит 9—11, 13, 21, 189 — ключевой 117, 119, 122 — логического типа 15, 18 — иеключевон 93—94, 99 — неосновной 90 — обязательный 53, 58 — основание 20, 58, 195, 207 — подразумеваемый 65 — признак 12—13, 18, 20, 27, 117, 196 — ролевой 75, 80 — текстового типа 15 — тождественный 60 — числового типа 15 Реквизитный минимум показате¬ ля 58 Рекурсивность 21, 193 Реляционная алгебра 74, 195 Реляционное исчисление отноше¬ ний 194 Решетка 145 Родственность: по значениям 33 по форме 33 Сеть 52 Символ 11, 16, 35, 141 Симметричность 47, 49 Синоним 131 — 132 Система обработки экономиче¬ ской информации 204, 208, 210— 215 Система управления базой дан¬ ных (СУБД) 202, 210-211 Слово 35, 67 Соединение отношений 78—79 Сообщение 70 Сортировка 73 Составная единица информации (СЕИ) 9, 10, 21, 24, 27, 194 — владелец набора 102—103, 107-108 — внутренняя 65 — входящая 35, 60 — исходная 35, 53, 58, 108— 109, 186 — исходящая 35, 61 — корневая 108—109 — массив 25, 30 — ненормализованная 92 — нормализованная 92, 100, 104 — порожденная 108—109 — производная 35, 61 — промежуточная 27, 29 — член набора 102—103, 107 — 108 — эквивалентная 52—53 Список 77, 143 — двунаправленный 143, 145 — кольцевой 143 — однонаправленный 143, 145 Среда внешняя 160—162, 169 Статья 30 Страница памяти 147 Строка 15, 43, 124 — бит 17 — двунаправленная 134 — исходная 128 — кольцевая 134, 158 — однонаправленная 125 — отношения 156 — упорядоченная 126 Структура данных (см. организа¬ ция значений данных) 116 Структура 10 — базы данных 170 — единицы информации 10 — отношения 44, 74 — показателя 31 понятия 113 221
— П-конструкции 193 — реквизита 14 — СЕИ 27 — — ненормализованная 29 — — нормализованная 29 —— оптимальная 69 = — ступенчатая 68 — С ЕИ-конструкции 193 “ сообщения 21 Структурированность 6, 185 Стягивание вершин графа 192 Схема отношения 74 Сцепление 77 Тезаурус 21 Текст 15—17 Терм I I, 195 Терминатор 125 Тип данных: битовый 17 взаимосвязанный 101 зависимый 101 основной 100 специальный 19 Тип реквизита 14 — логический 15 — текстовой 15 — числовой 15 Толерантность 48—50, 69 Том памяти 147, 151 Транзитивность 47, 60, 104 Триплет 99 Указатель 25, 124 —- дерева 137 — дополнительный 127 — конца массива 25 — свободной памяти 133 — списка 153 — строки 126 = текущего значения 127 — типа 18 — фиксированный 127—128 Унификация 51 Упорядоченность 117 — бинарного дерева 138—140 — взаимная 72 — внешняя 72 — лексикографическая 117 — массива 117- 118 — по возрастанию 71 — по убыванию 71 — подмножества 72 — страниц 150 Уровень 137 — дерева 147 — информационной системы 178, 204 — структуры СЕИ 27 Устойчивость концептуальной мо¬ дели 174 Файл 116, 214 Форма реквизита 13 Формализованность 185 Формат 13, 16, 18 Формирование данных 117 Функция от показателя 31 Целостность базы данных 171 Цепь 124, 152 Числа 15 Член отношения 102 Шаг поиска 118 Шкала логическая 19 Эквивалентность 48—49 Эквисоединение 79—81, 91, 93, 98 Экономическая информационная система (ЭИС) 8, 160 -—локальная 178 — распределенная 178 Элемент 11 Элементарная единица информа¬ ции 1 1 Элементарный фрагмент графа <ЭФГ) 188, 190, 197, 203 Энтропия 6 Язык манипулирования данными 175
ОГЛАВЛЕНИЕ Предисловие 3 Глава 1. ЕДИНИЦЫ ИНФОРМАЦИИ 5 1.1. Информационное пространство 5 1.2. Реквизиты — основные элементы информации . . 11 1.3. Составные единицы информации 19 1.4. Показатели 30 Глава 2. ИНФОРМАЦИОННЫЕ ОТНОШЕНИЯ 43 2.1. Основные виды отношении 43 2.2. Множественные отношения 49 2.3. Логические отношения 52 2.4. Арифметические отношения 02 Глава 3. МОДЕЛИ ДАННЫХ 74 3.1. Реляционная модель данных 74 3.2. Нормализация отношений 88 3.3. Сетевая и иерархическая модели данных 100 Глава 4. МЕТОДЫ ОРГАНИЗАЦИИ ДАННЫХ 11G 4.1. Линейная организация данных 11G 4.2. Нелинейная организация данных 137 4.3. Страничная организация данных 146 Глава 5. СТРУКТУРА ЭКОНОМИЧЕСКИХ ИНФОРМАЦИОННЫХ СИСТЕМ .... 160 5.1. Информационные взаимосвязи в экономических информационных системах 160 5.2. База данных 170 5.3. Распределенные Э11C и базы данных 178 Глава 6. МОДЕЛЬ ЭКОНОМИЧЕСКОЙ ИНФОРМАЦИОННОЙ СИ¬ СТЕМЫ ОБЪЕКТА 185 6.1. Назначение и структура модели 185 6.2. Средства описания модели 194 6.3. Применение модели при проектировании и функцио¬ нировании систем обработки информации 203 Литература 216 Предметный указатель 217
МИХАИЛ АНТОНОВИЧ КОРОЛЕВ, АЛЕКСАНДР ИВАНОВИЧ МИШЕНИН, ЭРНСТ НИКИФОРОВИЧ хотяшов ТЕОРИЯ ЭКОНОМИЧЕСКИХ ИНФОРМАЦИОННЫХ СИСТЕМ Зав. редакцией И. Г. Дмитриева. Редактор Г. А. Клебче Мл. редакторы Л. В. Речицкая, Е. С. Уварова Техн. редакторы К. К. Букалова и И. В. Завгородняя Корректоры Г. В. Хлопцева, Н. П. Сперанская Худож. редактор Е. К. Самойлов Переплет художника Л. К. Малкина И Б № 1485 Сдано в набор 10.10.83. Подписано в печать 30.05.84. А-01046 Формат 84X1 08'/з2- Бум. кн.-жури. Гарнитура «Литературная». Печать высокая Уел. п. л. 11,76. Уел. кр.-отт. 11,76. Уч.-изд. л. 12,29. Тираж 10 ООО экз. Заказ 1818 Цена 75 коп. Издательство «Финансы и статистика», 101000, Москва, ул. Чернышевского. 7 Московская типография № 4 Союзполнграфпрома пои Государственном комитете СССР но делам издательств, полиграфии и книжной торговли .Москва. 129041. Б. Переяславская, дом 46.