Наиболее высокой формой организации информационного обеспечения для больших систем являются банки данных. Банк данных является проблемно-ориентированной информационно-справочной системой, которая обеспечивает ввод необходимой информации, автономное от конкретных задач ведение и сохранение информационных массивов и, наконец, выдачу необходимой информации по запросу пользователя или программы.
Банк данных может быть определен как система программных, языковых, организационных и технических средств, предназначенных для хранения и многоцелевого использования информации.
Банки данных должны обеспечивать: сокращение времени поиска данных; многократность использования данных; простоту и удобство обращения к данным со стороны пользователей; достоверность хранения данных.
Основными частями банка данных является база данных (БД), представляющая собой систематизированные взаимосвязанные совокупности данных, и система управления базами данных (СУБД), обеспечивающая необходимые манипуляции с информационными массивами.
Проблемный модуль, входящий в состав САПР, при своей работе обращается за необходимой информацией не к какому-то массиву информации, как это имело место в автономных программах, а к СУБД. Последняя организует поиск необходимой информации в сложной информационной структуре — базе данных, упорядочивание и представление этой информации в необходимом объеме соответствующему модулю.
Рациональная организация и функционирование банка данных возможны лишь при максимальном учете специфики информации, заносимой в базу данных. Если специфические особенности этой информации не учитываются, то это приводит к значительному перерасходу памяти и увеличивает затраты времени на обработку данных.
БД организуется на основе принципов системного подхода, при этом предполагаются неизбыточность данных; независимость данных от программ решения задач; выбор структур данных, ориентированных на все задачи, решаемые системой; возможность дополнения, развития и обновления данных; типизация алгоритмов обработки данных.
Организация, структура и состав БД зависят от информационных моделей проектируемых объектов, от методов получения проектных решений, наконец, от используемых в САПР технических и программных средств. С другой стороны, все перечисленные факторы зависят от структуры базы данных. Основной особенностью базы данных по сравнению с массивами записей является наличие связей между структурными единицами данных.
Базу данных иногда определяют как неизбыточную совокупность элементов данных, однако в действительности для уменьшения времени доступа к данным во многих БД избыточность в незначительной степени присутствует. Некоторые записи повторяются для того, чтобы обеспечить возможность восстановления данных при их случайной потере. В этом случае говорят о минимальной избыточности БД.
Таким образом, БД можно определить как совокупность взаимосвязанных, совместно хранящихся данных при наличии такой минимальной избыточности, при которой допускается их использование оптимальным образом для одного или нескольких приложений. Для этого данные запоминаются так, чтобы они были независимы от прикладных программ, использующих эти данные. Для добавления новых или модификации существующих данных, а также для поиска данных в БД применяется стандартный набор управляющих алгоритмов.
БД представляет собой постоянно развивающийся объект: к ней добавляются новые записи, а в существующие записи включаются новые элементы данных. С целью повышения эффективности функционирования БД изменяется и ее структура.
Используемые на практике способы построения БД реализуются в виде иерархических (древовидных), сетевых или реляционных моделей (моделей отношений) данных.
Наиболее широко распространенная модель — это представление данных в виде определенной иерархии. Наиболее универсальной моделью является представление данных в виде отношений или реляций. Сетевая модель занимает промежуточное положение между иерархической и реляционной моделями данных. В ней, с одной стороны, применяется достаточно универсальное представление данных, имеющее широкое применение, а с другой — учитывается возможность прямого доступа к данным. Рассмотрим особенности построения различных моделей БД.
Иерархическая модель всегда начинается с корневых элементов, которые в этой модели называются узлами. На последующих уровнях могут добавляться зависимые элементы, которые имеют только одну точку входа (рис. 3.17). Узел и его зависимые элементы называются группой. Наименование корневого узла служит названием группы. Группа называется простой, если ни один из зависимых элементов не имеет своих зависимых элементов, в противном случае группа называется составной. Группа, являющаяся элементом составной группы и имеющая более одной реализации, называется повторяющейся.
Рис. 3.17. Пример иерархической модели данных
Недостатки иерархической модели БД заключаются в следующем:
невозможно получить данные об элементе В без осуществления доступа к данным об элементе А (рис. 3.17); если два узла содержат одинаковые элементы, эти элементы в БД повторяются (например, C1=D1), т. е. имеет место избыточность данных;
если нужно изменить значение узла С1, то необходимо осуществить доступ к узлам А—С и А—D;
если стираются данные об узле В, то стираются данные об узлах В1 и В2;
легко получить ответ на вопрос: «Какие элементы входят в узел В?», но трудно получить ответ на вопрос «Какие узлы содержат одинаковые элементы?».
Достоинства иерархической модели проявляются в ее простоте и наглядности.
Сетевая модель может быть описана в виде графа (рис. 3.18). Она представляет совокупность взаимосвязанных элементов и не имеет элементов со специальными функциями, подобно корневым узлам в иерархической модели. Сетевая структура может быть получена из иерархической структуры путем добавления понятия ссылки, которое может быть определено как логический указатель. Так можно связать две древовидные структуры без установления между ними иерархических отношений. Сетевая модель не имеет перечисленных выше недостатков иерархической модели. Связи в ней могут быть устранены без стирания всей группы, на которую указывает ссылка. Однако эта модель не обеспечивает независимость данных [55, 56]. Полной независимостью данных и операций над ними от физического представления и возможностью формального подхода к данным и операциям обладает реляционная модель.
Реляционный подход к построению моделей данных основывается на использовании для их описания произвольных (m-местных) отношений. Любое подобное отношение может быть представлено двумерной таблицей (табл. 3.6) [14].
Таблица 3.7. Отношение „Обмотка трансформатора"
Наименование элемента | Материал | Масса, | Стоимость, |
Проводник | Медь | 120 | 160 |
Изоляция | Бумага | 10 | 6,3 |
Прокладки | Электрокартон | 30 | 15,7 |
Рейки | Дерево | 45 | 10,5 |
Бандаж | Лавсановая ткань | 0,5 | 3,7 |
Таблица 3.6. Отношение А
На этой таблице представлено отношение с именем А над элементарными данными с именами а, b, с, х. Каждая строка таблицы представляет набор значений этих данных, находящихся между собой в данном отношении. Строки таблицы обычно называют кортежами, а столбцы — доменами. Если количество столбцов равно т, то говорят, что отношение А является m-местным отношением.
В качестве примера в табл. 3.7 представлено отношение «обмотка трансформатора», которое показывает, какие материалы и в каком количестве необходимы для изготовления этой обмотки.
Считая кортежи отдельными записями, легко представить такое отношение (таблицу) в виде простейшего последовательного файла.
Рис. 3.19. Нормализация иерархической структуры
Главная идея реляционного подхода состоит в том, чтобы представлять произвольные структуры данных в виде совокупностей описанных таблиц. Процесс такого представления называется нормализацией, а само представление—реляционной структурой. В качестве примера на рис. 3.19 приведена нормализация иерархической модели данных.
Рис. 3.20. Переход от сетевой структуры к иерархической
Путем «размножения» узлов иерархической модели она представляется в виде таблицы, которой достаточно лишь присвоить имя корневого узла соответствующей иерархической модели и, кроме того, пронумеровать домены. В случае сетевых структур тем же приемом «размножения» узлов они приводятся сначала к иерархической, а затем и к реляционной форме (рис. 3.20).
В настоящее время известно около двух десятков языков, основанных на реляционном представлении данных (АЛЬФА, ПАСКАЛЬ и др.).
Работая с реляционной моделью, пользователь не интересуется точной, физической структурой данных, что является важным достоинством реляционного подхода. Кроме того, здесь обеспечивается простота понимания структуры БД, поскольку многие пользователи имеют практику работы с двумерными таблицами. Наконец, реляционную БД проще развивать и дополнять.
Другой важнейшей частью банка данных является СУБД, которая регулирует с помощью программных средств доступ к данным (запись, изменение, стирание, выдачу) с учетом поступающих запросов. СУБД содержит манипулятор, интерпретаторы с языков запросов, а также набор сервисных программ. В состав СУБД входит также администратор (системный программист).
Манипулятор является ядром СУБД. В его функции входит управление компонентами системы, организация их взаимодействия и осуществление связи с операционной системой ЭВМ и администратором банка данных, выполнение основных операций над БД, контроль и защита целостности и секретности данных, редактирование вывода, кодирование (декодирование) и сжатие (расширение) данных, сбор статистики, ведение протокола.
Администратор банка данных осуществляет внешнюю координацию всей работы банка данных и выполняет действия, пока не поддающиеся формализации. В его функции входит создание баз данных, согласование требований пользователей, управление загрузкой баз, распределение паролей; общее управление работой банка данных (наблюдение за ходом работы, подключение новых пользователей, управление восстановлением при сбоях, принятие решений в случае нарушений секретности, анализ статистики, оценка и обеспечение эффективности работы БД); реорганизация БД (изменение схем, реорганизация баз); генерация и развитие СУБД.
Администратор и манипулятор выполняют свои функции, взаимодействуя с сервисными программами. Ряд сервисных программ допускает двойной запуск: автоматически со стороны манипулятора БД и вручную со стороны администратора. Другие сервисные программы запускаются только администратором БД (например, программы моделирования БД). Администратор БД может пополнять набор новыми сервисными программами (контроля данных, измерения производительности и т. д.).
Сервисные программы осуществляют основные операции над базами данных, в частности сортировку, выборку данных, слияние, дополнение и изменение баз данных, редактирование ответов.
При функционировании банка данных различают следующие основные виды запросов к банку со стороны пользователей:
на выдачу справок в виде показателей и документов для пользователей системы;
на формирование и выдачу рабочих массивов для прикладных программ САПР;
на выдачу рабочих массивов со стороны других банков данных;
на пополнение или изменение баз данных;
на ввод входных массивов.
Поступивший в банк данных запрос проходит этап предварительной обработки, на котором осуществляется синтаксический и логический контроль, включающий проверку пароля абонентов, недопустимых сочетаний признаков и т. д. При обнаружении ошибок запросов к дальнейшей обработке не принимается, а на печать выдается информация об ошибках.
Следующий этап — интерпретация запроса состоит в распознавании вида запроса: на выдачу показателя и документов; на формирование рабочих массивов; на изменение или пополнение базы данных.
На этом этапе запрос с языка запросов переводится на язык манипулирования данными (ЯМД).
В соответствии с поисковым предписанием происходят обращение к рабочей области в памяти и выборка искомых данных или корректировка данных в базе. Найденные в БД данные тщательно контролируются и анализируются, а затем редактируются, а на печать выдается информация об ошибках.
Разработка банков данных и его основного инвариантного компонента, т. е. СУБД, представляет собой сложную задачу, требующую значительных затрат времени и предполагающую высокую квалификацию в области системного программирования.
Поэтому эта задача выходит за пределы целесообразного и возможного при разработке САПР конкретных технических объектов. В связи с этим при построении информационного обеспечения САПР на основе банков данных необходимо сделать анализ существующих банков данных и принять для САПР один из уже разработанных. Однако и в этом случае необходимость использования такого сложного компонента, каким является банк данных, должна быть всесторонне обоснована. Следует иметь в виду, что информационное обеспечение САПР может быть организовано и на основе более простой, но специально разработанной информационной структуры, учитывающей специфику проектируемых технических объектов. Подобные ориентированные информационные структуры при относительной простоте и невысоких требованиях к конфигурации технических средств могут реализовать набор необходимых функций по обработке данных, для чего должно быть разработано необходимое программное обеспечение.
Такая альтернатива к использованию банков данных объясняется тем, что универсальные информационные системы в виде банков данных рассчитаны на решение задач с большей номенклатурой различных параметров и характеристик объектов. Поэтому применение их при создании САПР с относительно небольшой номенклатурой данных, а также ориентированных на ЕС ЭВМ младших моделей с небольшим объемом оперативной памяти оказывается просто нецелесообразным, а иногда и невозможным.
Рассмотрим самые общие принципы выбора универсальной СУБД (рис. 3.21). В нашей стране и за рубежом создан и функционирует ряд СУБД, позволяющих создавать базы данных широкого назначения со значительными функциональными возможностями. Однако разработанные в настоящее время программные средства в виде СУБД, как правило, ориентированы на АСУ и не всегда по своим структурам и управляющим функциям соответствуют задачам САПР.
Рассмотрим характеристики некоторых универсальных СУБД.
Рис. 3.21. Схема оценки применимости СУБД
К числу наиболее распространенных СУБД можно отнести следующие системы: ОКА, ИНЕС, СЕДАН, СЕТОР, СИНБАД, БАНК ОС — системы универсального применения с различными структурами для ЕС ЭВМ; ДИАМС — система иерархической структуры для СМ ЭВМ и многие другие.
Одной из важнейших характеристик СУБД является модель данных, которая поддерживается СУБД. Как отмечалось, существуют три модели данных: иерархическая, сетевая и реляционная. Выбор той или иной модели данных для построения информационного обеспечения САПР зависит от требований, которые предъявляются к информационной базе создаваемой САПР.
Большое значение при выборе СУБД имеют средства взаимодействия пользователей с базой данных. Пользователи системы делятся на две большие группы: программисты и непрограммисты. Программисты в процессе работы используют для доступа к БД языки программирования. В этом случае СУБД САПР должна обеспечивать возможность доступа прикладных программ к данным на алгоритмических языках ПЛ/1, ФОРТРАН-4, АССЕМБЛЕР. Непрограммисты взаимодействуют с базой данных с помощью языков манипулирования данными с использованием средств телеобработки. Тогда СУБД САПР должна включать Язык манипулирования данными, доступный непрограммисту, и средства доступа к данным через терминал.
Кроме того, при выборе для САПР той или иной СУБД следует учитывать следующие требования: возможность обеспечения мультипрограммного режима; независимость данных от конкретных пакетов программ; наличие средств, позволяющих сократить дублирование данных в информационной базе; возможность восстановления БД; совместимость СУБД с операционной системой ЭВМ и т. д.
Получившая широкое применение в АСУ СУБД ОКА предназначена для [57] следующих целей:
создания, взаимосвязывания и ведения больших БД и для использования этих баз в разнообразных областях применения;
обеспечения средствами поддержания и обслуживания БД в режиме пакетной обработки;
обеспечения возможности удобного перехода от пакетного режима работы с БД к телеобработке или к режиму передачи данных;
обеспечения эффективной подсистемы телесвязи для создания системы с большим объемом обрабатываемой информации и малым временем ответа.
Из-за высоких требований к оперативной памяти ЭВМ, сложности изучения и манипулирования СУБД ОКА при решении задач САПР широкого распространения пока не получила.
СУБД ИНЕС представляет собой информационную систему нового типа [58—60]. При создании ИНЕС в нее были заложены принципы универсализации и специализации. Система удовлетворяет всем основным требованиям, предъявляемым обычно к банкам данных широкого назначения, которые обеспечивают интегрированное хранение и дифференцированное использование данных. В основу ИНЕС положен модульный принцип построения программного обеспечения, что позволяет формировать требуемые конфигурации системы путем создания определенных наборов параметров.
Система ИНЕС имеет следующие достоинства:
- Возможность построения произвольных моделей данных, а именно иерархических структур со ссылками (за счет ссылок обеспечивается представление произвольных сетевых структур, например структур, содержащих циклы).
- Открытость системы на всех уровнях иерархии и простота адаптации системы к конкретным применениям. Имеется возможность реструктуризации БД.
- Наличие широкого набора средств, обеспечивающих работу пользователя (средства загрузки и корректировки, манипулирования, вывода данных, обеспечения работы с БД с терминалов и т. д.). Возможен доступ к данным на языках ПЛ/1, ФОРТРАН, АССЕМБЛЕР.
- Независимость процедур и программ пользователя от структур данных при использовании любых системных средств высокого уровня.
- Наличие многотерминального монитора, обеспечивающего работу как локальных, так и удаленных терминалов в режиме мультидоступа.
- Наличие комплекса средств для организации диалога пользователя с задачами, включающими язык описания сценария диалога, соответствующий транслятор и интерпретатор, средства просмотра и корректировки баз данных.
- Наличие средств поддержки баз данных (распечатка, перенос с одного носителя на другой, уплотнение, восстановление, ведение библиотек).
Если рассматривать, иерархические связи между информационными объектами в СУБД ИНЕС, то информацию, содержащуюся в БД, можно изобразить в виде дерева, терминальные вершины которого являются элементарными данными (как правило, числа и тексты), корень — всей базой данных, а прочие вершины— структурными информационными объектами различной сложности. Такое дерево называется деревом базы данных (ДБД). Каждое элементарное данное изображается в ДБД отдельной терминальной вершиной; нетерминальным вершинам непосредственно не соответствуют реальные данные — эти вершины изображают структурные информационные объекты, содержащие данные, соответствующие подчиненным вершинам. Однако реальные данные всегда содержат наборы однотипных информационных объектов, и такое представление информации было бы весьма неэкономичным из-за значительной избыточности. В системе ИНЕС принят подход, при котором значительная часть информации о структуре данных и имена информационных объектов, известные заранее, должны быть зафиксированы в момент создания БД. Эта информация задается пользователем в виде дерева описания данных (ДОД), которое определяет структуру информации в создаваемой базе данных. ДОД очень похоже на ДБД, отличие Состоит в том, что в ДОД не повторяются поддеревья, описывающие однотипные объекты, и отсутствуют реальные данные. Собственно значения данных содержатся в дереве данных (ДД). Для доступа к данным в ИНЕС разработан специальный «древовидный» базовый метод доступа.
Для описания информационных объектов в ИНЕС имеется язык описания данных (ЯОД). Информационный объект может состоять из объектов трех типов: элементарных, структурных и ссылочных данных. Элементарные данные определяются типом и размером. Структурный информационный объект имеет два основных типа представления: «структура» и «массив». Структура объединяет фиксированный набор данных, которые имеют разные типы и в пределах одной структуры различаются именами, а массив объединяет неопределенное количество однородных данных.
Наиболее мощным средством организации массивов информации являются ключевые массивы, в этом случае элементом массива является структура, один из элементов которой объявлен ключом.
Терминальные вершины ДБД могут изображать не только элементарные, но и ссылочные данные, которые обеспечивают возможность введения дополнительных ссылочных связей между информационными объектами.
Система макетного ввода ИНЕС предназначена для массового ввода данных в базу и корректировки хранящихся в базе данных. Ввод и корректировка производятся одними и теми же средствами. Вводимая информация состоит из частей документов, которые обычно являются образами реально существующих документов на машинном носителе. Ввод документов производится в три этапа: ввод документа с внешнего носителя в оперативную память; контроль документа;
запись информации из оперативной памяти в базу данных. Языком высокого уровня для манипулирования данными в ИНЕС является язык запросов (ЯЗ)—универсальный язык программирования, ориентированный на доступ к иерархически структурированным данным и их обработку. Специфика ЯЗ состоит в том, что в программе на этом языке доступ к данным в большой степени определяет ход выполнения самой программы. Это связано с особенностями объекта ЯЗ — базы данных, поэтому в нем основную роль играют средства доступа. Язык прост и доступен пользователю-непрограммисту.
Таблица 3.8. Функциональные характеристики СУБД
Система вывода данных ИНЕС включает: экспресс-вывод на алфавитно-цифровое печатающее устройство всей БД или ее заданных частей (используется в основном для отладки описания данных и наполнения базы);
экспресс-вывод значений переменных с их наименованиями в виде описаний и таблиц; формат вывода при этом генерируется
автоматически (применяется для получения справок из базы данных);
вывод значений переменных рабочей области запросной системы в последовательный набор данных (используется для получения из базы данных в нужных форматах, например, для расчетных задач или последующих распечаток);
макетный вывод документов (используется для получения документа строго заданной формы).
В основу системы СУБД СЕДАН положен способ прямой организации данных системы ОС ЕС. База данных имеет сетевую структуру и представляет собой совокупность файлов с прямой организацией, между которыми в соответствии с требованиями пользователя СЕДАН устанавливает и поддерживает логические связи [61].
Логическая структура данных простым и естественным образом отображается на физическую организацию данных. Каждый тип данных логической структуры является файлом на физическом уровне. Каждому конкретному экземпляру данных логической структуры соответствует запись файла.
Таким образом, пользователь, имеющий опыт работы непосредственно с набором данных, используя традиционные способы обработки, сможет легко воспринять принципы проектирования баз данных с использованием СУБД и методы работы с ними в СЕДАН.
С другой стороны, применение СУБД освобождает пользователя от необходимости самому производить организацию и обслуживание файлов и связей между ними, что дает ему возможность сконцентрировать свои усилия непосредственно на обработке данных.
Такой подход существенно уменьшает трудозатраты программиста за счет удаления из программ некоторых функций описания и управления данными, а также значительно облегчает сопровождение и развитие системы, поскольку появление новых связей и новых элементов данных не отражается на старых программах. Это справедливо и при введении новых элементов данных в записи, обрабатываемые ранее созданными программами.
СУБД СЕДАН выполняет следующие основные функции:
служит основой информационного обеспечения при создании баз данных для широкого класса применений;
обеспечивает работу в пакетном режиме;
поддерживает работоспособность системы при сбоях аппаратуры, неверном алгоритме проблемной программы или неустойчивой работе операционной системы благодаря ведению журнала и восстановлению с его помощью разрушенных баз данных;
допускает написание программ для работы с базами данных на любом языке программирования, используемом в ОС ЕС и включающем оператор CALL;
создает с помощью проблемных программ пользователя базы данных сетевой структуры;
обеспечивает актуализацию баз данных;
осуществляет эффективный доступ к базам данных;
обеспечивает интеграцию данных, т. е. отдельные элементы данных могут добавляться или исключаться из записей без какого-либо изменения программ, не работающих с этими элементами;
сводит к минимуму избыточность данных;
обеспечивает многоаспектный доступ к данным.
Дальнейшим развитием СУБД СЕДАН является СУБД СЕТОР (62), которая также ориентируется на массового пользователя, имеющего в своем распоряжении малые и средние модели ЕС ЭВМ.
В табл. 3.8 приведены основные характеристики некоторых универсальных СУБД. Эти характеристики в определенной степени облегчают выбор конкретной СУБД при создании САПР.