В качестве примера использования БНД для хранения фактографических данных в САПР рассмотрим СУБД «СЕТОР».
Из важных прикладных особенностей СУБД «СЕТОР» следует отметить малый объем занимаемой ОП и возможность работы в режиме мультидоступа к единой интегрированной БД. Доступ к данным осуществляется через прикладные программы, написанные на одном из стандартных языков программирования (ПЛ/1, РПГ, КОБОЛ, ФОРТРАН, ассемблера), расширенном языком манипулирования данных. Выполнение запроса к БД требует вызова одной из прикладных программ, причем вызов возможен как через общий входной поток операционной системы (вариант пакетной обработки), так и с использованием телемонитора (расширение СУБД «СЕТОР» средствами телеобработки).
Поставляются версии СУБД, предназначенные для установки на ЭВМ серии ЕС, на мини-ЭВМ типа СМ-4, СМ 1420, а также на микро-ЭВМ семейства «Электроника», причем возможен перенос БД под управлением СУБД «СЕТОР» с микро- и мини-ЭВМ на основные модели машин серии ЕС ЭВМ. Поэтому СУБД «СЕТОР» использовать удобно в САПР различного назначения.
СУБД «СЕТОР» не изолированный пакет прикладных программ (ППП) и, следовательно, может предоставлять пользователю дополнительные
Рис. 3.1.
возможности в результате работы совместно с другими ППП. Возможное окружение СУБД «СЕТОР» представлено на рис. 3.1, где ССД — словарь-справочник данных; ГВВ — генератор ввода — вывода.
Пакет прикладных программ «Генератор ввода — вывода» через ППП «Доступ» обеспечивает автоматизированный ввод информации в БД с указанием, каким образом вводимая с документа информация распределяется в структуре БД.
Пакет прикладных программ «ИНТЕРСЕТОР» совместно с ППП «Кама» позволяет работать с БД в режиме теледоступа.
Пакет прикладных программ «Телесправка» предназначен для взаимодействия с БД пользователей, практически не знакомых с программированием. Запросы в БД состоят из фраз, построенных на ограниченном естественном языке, и могут вводиться как непосредственно с перфоносителей, так и через экран дисплея с использованием ППП «Кама» и «ИНТЕРСЕТОР». Результат запроса может выдаваться либо на экран дисплея, либо на печатающее устройство.
Ксредствам обеспечения целостности данных относится «Словарь-справочник данных»,
являющийся дополнением к встроенным в СУБД «СЕТОР» средствам поддержки целостности БД, таким, как программа ведения системного журнала и программа восстановления БД.
Система управления базой данных «СЕТОР» обеспечивает независимость данных от программ не только на уровне записей, но и на уровне элементов. Это означает, что без изменения имеющихся ППП можно модифицировать структуру БД вплоть до отдельных элементов записей. Все это позволяет в определенных пределах менять логическую схему БД.
Важная особенность СУБД «СЕТОР» — возможность работать в многозадачном режиме. Этот режим возможен как при пакетной обработке, так и при использовании средств теледоступа и означает, что с одними и теми же данными возможна работа нескольких программ. Возникающая при этом проблема синхронизации решается в СУБД «СЕТОР» следующим образом: на время обновления записи данной программой блокируется доступ из любой другой проблемной программы. По окончании обновления блокировка снимается.
Возможны следующие основные режимы работы СУБД «СЕТОР»:
1) однозадачный [в разделе памяти каждой программы находятся копия ядра СУБД п блок описания схемы. Синхронизация при обращении к БД из разных разделов в этом случае на обеспечивается (рис. 3.2)];
2) мультизадачный в одном разделе [все прикладные программы являются для СУБД подпрограммами и находятся в одном разделе ОП; в этом же разделе помещаются копия ядра системы и блока описания схемы (рис. 3.3)];
3) мультизадачный в разных разделах [ядро системы и блок описания схемы находятся в отдельном разделе, каждая прикладная программа вместе со своей подсхемой также находится в отдельном разделе ОП (рис. 3.4)].
Система управления базой данных «СЕТОР» ориентирована на поддержку сетевых структур данных, создаваемых из двух типов записей: 1) основных; 2) зависимых. Каждой записи основного типа может соответствовать совокупность записей зависимого типа, а каждая запись зависимого типа может находиться в отношении подчинения к разным записям основного типа. По данным правилам можно строить сетевые структуры любой
Рис. 3.2. Схема связи СУБД «СЕТОР» с пользователем при однозадачном режиме:
сложности, но при этом нужно учитывать следующие ограничения:
1) доступ к записи возможен только через данные основного типа;
2) данные зависимого типа должны быть связаны хотя бы с одним данным основным;
3) данные одинакового типа не могут быть связаны между собой непосредственно.
Так как сетевые структуры более универсальны, чем иерархические, то иерархические структуры специально СУБД «СЕТОР» не поддерживаются, а имитируются с помощью сетевых структур.
Языковые средства СУБД «СЕТОР» включают в себя язык описания данных (ЯОД) и язык манипулирования данными (ЯМД). Язык описания данных СУБД «СЕТОР» представляет собой совокупность директив, предназначенных для описания файлов, записей, полей, определения ключей и связей между файлами, задания объемов файлов, определения типов устройств ввода — вывода, размеров буферов в ОП для обмена с БД.
Рис. 3.4. Схема связи СУБД «СЕТОР» с пользователем при мультизадачном режиме в разных разделах оперативной памяти:
ПСх1 ПСх4 — подсхемы прикладных программ ПП1, ... , ПП4; Сх — схема БД; ФЗ — файл задач синхронизации
Язык манипулирования данными СУБД «СЕТОР» реализован по способу включающего языка программирования. Этот язык предоставляет все стандартные операции манипулирования данными: включение, удаление, изменение, извлечение записей БД. Имеются и специфические для СУБД «СЕТОР» дополнительные команды манипулирования: поиск в физической последовательности, установка указателя текущей записи на начало файла, модификация связей записи и др. Функции манипулирования данными активизируются операторами CALL — включающего языка программирования.
Пример простой БД, содержащей информацию о имеющихся в наличии типовых элементах замены (ТЭЗ) и отдельных микросхемах. Связи от ТЭЗов к микросхемам участвуют в ответе на запрос: «Какие микросхемы включены в состав данного ТЭЗ?», связи же от микросхем к ТЭЗам соответствуют запросу: «В какие ТЭЗ входит данная микросхема?». Логическая схема базы данных приведена на рис. 3.5. Здесь же показана структура записей каждого файла (связь с файлом дана штриховыми линиями) с указанием имени каждого элемента данных и его длины в байтах. В скобках приводятся наименования всех компонентов схемы. Описание указанной базы данных на ЯОД «СЕТОР» приведено ниже:
Рис. 3.5. Пример логической схемы базы данных для СУБД «СЕТОР»
Команды группы 1 открывают описание Данных. Команды группы 2 описывают связи основного файла с именем UNIT. В примере файл UNIT соединен связью LKUD лишь с зависимым файлом DFLK.
Команды группы 3 описывают структуру записи основного, файла UNIT. В этом описании перед именем поля ставится имя файла. Первое поле, кроме того, является ключом при поиске. Команды группы 4 и 6 содержат указание по размещению записей на физических носителях: указывается объем буфера (FILE — SIZE) и число записей в блоке (RECORDS — IN— BLOCK).
Команды группы 5 описывают связи и структуру записи основного файла CHIP аналогично тому, как это было сделано для файла UNIT.
Команды группы 7 описывают зависимый файл по тем же правилам, что и основной файл. Однако в записях этого файла присутствуют два ключа, что необходимо для обеспечения ответа на запросы обоих типов.
Пусть обращение к описанной выше БД выполняется из программы, составленной на языке ПЛ/1. В качестве ЯМД «СЕТОР» выступает оператор CALL SETOR (...), записываемый по правилам языка ПЛ/1. Тогда фрагмент программы, содержащей обращение к БД, будет выглядеть следующим образом:
J
Группа 1 операторов содержит описание переменных, используемых при обращении к БД. В примере все переменные — символьные строки. В операторе CALL SETOR первый параметр определяет команду ЯМД. Так, значение первого параметра OPENM соответствует команде открытия файла, OBTNM — команде поиска в основном файле, OBTNF — команде поиска в зависимом файле и т. д. Остальные параметры соответствуют семантике каждой команды ЯМД. Так, операторы группы 2 открывают файл UNIT (аналогично должны быть открыты и оставшиеся два файла). Группа 3 операторов осуществляет поиск микросхемы К155ЛАЗ в файле CHIP и размещает сведения о ней в поле DAREA. Перечень имен полей записи, содержимое которых необходимо выбрать, указывается в параметре DLIST. Группа 4 операторов предназначена обеспечить ответ на запрос: «В какой ТЭЗ и в каком количестве входит микросхема К133РУ» Запрос строится от файла CHIP через связь LKCD к файлу DFLK, что и указывается в параметре QUAL2. Семантика остальных параметров такая же, как и в предыдущей группе.