Для хранения данных документального типа в САПР используют СУБД типа ИПС.Характерным представителем СУБД такого типа является СУБД «ПОИСК».
Система управления базой данных «ПОИСК» предоставляет пользователям следующие возможности:
1) ввод данных с экрана дисплея или в пакетном режиме;
2) корректировку и добавление новых данных;
3) доступ к БД в интерактивном режиме посредством языка запросов;
4) обеспечение секретности информации с помощью паролей пользователей.
Организация базы данных.База данных для СУБД «ПОИСК» есть упорядоченное множество информационных записей. Каждая из записей состоит из полей, соответствующих частям документа, и представляет собой символьные строки.
Например, для приложений САПР записям будут соответствовать тексты проектов, ТЗ, руководящих материалов, стандартов и т. д. Поля же будут соответствовать разделам документов, таким, как название метода, дата разработки, программная реализация, состав ППП и др.
В СУБД «ПОИСК» может существовать неограниченное количество БД «ПОИСК», каждая включает в себя однородные записи.
Каждая запись состоит из пронумерованных полей фиксированной или переменной длины. Поля фиксированной длины применяются для хранения данных, содержащих заранее определенное и постоянное количество символов, например год издания, код ГОСТа, порядковый номер документа, тип ЭВМ. Поля переменной длины предназначены для хранения таких данных, как название документа, краткая аннотация, организация-разработчик, текст самого документа.
■ Примечание. В СУБД «ПОИСК» термин «поле» соответствует введенному ранее термину «элемент данных».
Поля нумеруются по порядку, каждому полю ставится в соответствие двухбайтовая метка. Пользователь может обращаться к содержимому поля, указывая его порядковый номер.
Допускается выделение подполей. Подполя внутри поля выделяются с помощью специальных двухбайтовых разделителей: состоящих из знака логического отрицания « » и буквы или цифры.
■ Примеры обращения к полям и подполям записей. Примерами таких обращений могут служить:
TEXT 16 — к полю 16
TEXT 19 ( 5) — к подполю 5 поля 19
TEXT 19 ( A) — к подполю А поля 19
Каждая база данных состоит из нескольких машинных файлов на устройствах прямого доступа (НМД). Эти файлы логически связаны между собой. Основной файл MAIN FILE является файлом прямого доступа и
содержит полный набор записей в специальном внутреннем формате хранения. Доступ к записям в подобных файлах осуществляется передачей процедуры доступа физического адреса записи на НМД. Для экономии места на диске записи располагаются на нем одна за другой. Поскольку записи могут иметь разную длину (из-за наличия полей переменной длины), вычислить каким-либо образом физический адрес записи, исходя, например, из ее порядкового номер, нельзя. Поэтому адрес каждой записи хранится в специальном файле, получившем название файла перекрестных ссылок, CROSS — PEFFERENCE. Файл обеспечивает связь порядкового номера записи с физическим адресом этой записи на диске. Использование этого файла позволяет перейти к доступу к записям по их порядковым номерам.
Файл транзакций TRANSACTION используется для хранения вновь поступивших записей перед их включением в основной файл. Новые записи хранятся в этом файле до тех пор, пока специальные программные средства не проверят соответствие новой записи существующим описаниям. Кроме того, в файле транзакций копируются записи, подлежащие модификации. Модифицированная запись также подвергается проверке на соответствие описанию. В случае отсутствия ошибок новая или модифицированная запись включается в основной файл. Подобная организация обеспечивает более высокую степень целостности БД.
Описание структуры каждой записи хранится в таблице FDT определения полей, где указаны номер каждого поля, его длина и кратность. Для поля могут быть определены также правила проверки соответствующего данного при вводе и формат для вывода на печать или дисплей.
Поиск документов. В состав записей могут входить ключевые слова или фразы, используемые для поиска соответствующего документа. Для выделения в тексте этих элементов-дескрипторов используют соответствующие управляющие символы. Поиск документов в СУБД «ПОИСК» осуществляется указанием дескрипторов или их связанной совокупности.
По значениям дескрипторов в СУБД «ПОИСК» строятся инвертированные файлы. Запись инвертированного файла состоит из значения дескриптора и списка номеров записей, соответствующих этому значению. Пусть в записях основного файла с порядковыми номерами 18,
204, 766 и 1039 содержится ключевая фраза «ИО САПР», Тогда запись инвертированного файла содержит фразу «ИО САПР» и цепочку из указанных номеров документов. Поскольку для другого слова цепочка номеров может оказаться более длинной или более короткой, записи инвертированного файла имеют переменную длину.
В СУБД «ПОИСК» существует возможность автоматического контроля вводимых в инвертированный файл дескрипторов с целью исключения из него слов, бессмысленных с точки зрения доступа, например предлогов. Программа, осуществляющая подобный контроль, может также анализировать формы одного и того же слова, приводя их к одному виду с целью исключения дублирования записей в инвертированном списке. В некоторых случаях возникает необходимость группирования отдельных дескрипторов. Например, понятие «ЕСПД» объединяет совокупность ГОСТов по программной документации. Для дескриптора ЕСПД в инвертированный файл новая запись не будет вводиться, чтобы избежать дублирования. Для хранения обозначений подобного рода ведется файл группировки ANY — FILE. Если в этом файле точка входа найдена, тогда соответствующие элементам данной группы списки номеров объединяются.
Язык запросов СУБД «ПОИСК» основан на булевой алгебре, используемой для описания логических операций над множествами записей, определяемыми значениями дескрипторов. Ниже приведен состав логических операций:
OR — логическое ИЛИ. Операция определяет объединение нескольких классов, обозначается символом «*». Если двум дескрипторам А и В соответствуют два класса документов, то результатом операции А*В будет класс, состоящий из документов, содержащих дескриптор А, или дескриптор В, или оба дескриптора. Данная операция расширяет область поиска и соответственно число документов, получаемых на выходе.
AND— логическое И. Операция осуществляет пересечения двух классов, обозначается символом « + ». Так, результатом операции А + В будет класс документов, одновременно содержащих оба дескриптора. Например, запрос на поиск документов об операционных системах коллективного доступа можно написать так:
ОПЕРАЦИОННЫЕ СИСТЕМЫ + КОЛЛЕКТИВНЫЙ ДОСТУП
NOT— логическое отрицание. Операция обозначается символом « ». В результате выполнения операций А В будет получен класс документов, включающих дескриптор А, но не включающих дескриптор В.
Для описания сложных последовательностей логических операций используются скобки по правилам алгебры.
В результате исполнения запроса пользователь первоначально получает в виде ответа последовательность номеров записей основного файла, удовлетворяющих его поисковому предписанию. Если число номеров слишком мало или велико с точки зрения пользователя, то он, модифицируя свой запрос, может увеличить или соответственно уменьшить область поиска. По окончании всех итераций пользователь имеет возможность считать с экрана дисплея или выдать на печать интересующие его записи. В дополнение к существующим конструкциям языка запросов в СУБД «ПОИСК» существуют возможности для анализа текста документов, уже отобранных в результате выполнения запроса.
Существуют три оператора анализа текста:
1) логический оператор (позволяет отобрать документы, содержащие заданный текст в заданном поле), например
TEXT 24 «АССОЦИАТИВНЫЙ».
В результате выполнения оператора будут отобраны документы, содержащие слово АССОЦИАТИВНЫЙ в 24-м поле;
2) арифметический оператор (позволяет отобрать документы, в которых содержимое определенных позиций удовлетворяет заданным арифметическим условиям), например
TEXT 00 + 6 > «1975»
Будут отобраны документы, в которых данное, расположенное начиная с седьмой позиции поля 00, удовлетворяет условию «данное > 1975»;
3) оператор наличия или отсутствия поля, например:
TEXT 20P
(отбираются документы, где есть данное в поле 20; Р — PRESENCE — присутствие),
TEXT 10A
(отбираются документы, где отсутствует поле 10; А — ABSENCE — отсутствие).
При работе с СУБД «ПОИСК» пользователь формирует запрос с помощью вышеописанных операторов. В общем случае запрос состоит из двух частей: в первой части перечисляются значения дескрипторов, соединенных знаками операций булевой алгебры; во второй части содержатся спецификации, определяющие порядок и форму отображения записей на дисплей пли печать. СУБД осуществляет поиск каждого из дескрипторов в инвертированном файле с целью определения множеств номеров записей. В соответствии с запросом выполняются операции над множествами записей, в результате которых формируется результирующий список номеров записей, удовлетворяющих запросу. Поиск физических адресов происходит по номерам записей в файле перекрестных ссылок. Затем информация, считанная из основного файла, преобразуется в соответствии со спецификациями второй части запроса в вид, необходимый для выдачи либо на экран дисплея, либо на печать.