Сайт Информационных Технологий

5.3.2 Организация поиска информации в БД МПИ

Описанный выше вариант информационно – справочной системы хорош лишь для работников отделов снабжения и стандартизации. Но для пользователя, в частности для конструкторов и технологов, которым подчас трудно конкретно ответить на вопрос – что Вы хотите найти в базе данных? – и которые не знают (и не должны, собственно говоря, знать) структуру БД МПИ и структуру полного стандартного наименования МПИ; такая система не может казаться удовлетворительной без соответствующих процедур поиска. Для таких пользователей система предлагает им вместо листания справочников “листание” на экране видеотерминала.

Тем не менее, эта система достаточно хороша, и создавать другую информационно-справочную систему пока нецелесообразно. Нужно лишь создать некоторую “интеллектуальную надстройку” этой системы.

Требования к такой надстройке очевидны: она должна обеспечивать поиск в базе МПИ по произвольным запросам; снабжать пользователя поясняющей информацией, вести семантический контроль вводимой пользователем информации.

Обычно допускается не более трех следующих запросов.

а) Простой запрос, когда определённому атрибуту задаётся конкретное значение, например Размерность = Ом или Климатическое исполнение = А.

б) Запрос по области значений, когда для определённого атрибута задаётся конкретная область значений, например Мощность рассеяния < 0.5, или 10 Ом < Номинальное сопротивление < 100 Ом

в) Булев запрос состоит из запросов двух первых типов, соединенных операциями И, ИЛИ, НЕ; например, (Материал = Металлодиэлектрические) И (±1 < Допуск < ±10) ИЛИ …

Задача разработки эффективных методов поиска достаточно трудна уже для этих трёх типов запросов, поэтому запросы более сложных типов обычно не рассматриваются.

Было выдвинуто не мало хороших идей для решения этой задачи. И выбрать какой либо определённый, основываясь на его быстроте довольно сложно, т.к. каждый из них хорош в определённых ситуациях. Во многих программах поиск требует наибольших временных затрат, так что замена плохого метода поиска на хороший часто ведёт к существенному увеличению скорости работы.

В связи с этим в построенной системе используется три вида поиска, и дело пользователя, в каком случае использовать тот или иной вид.

Рассмотрим принципы поиска.

1) Поиск по одному атрибуту.

Это так называемый мгновенный поиск. Для реализации которого, нужно войти в редактирование того атрибута, по которому будет проходить поиск.

Поисковый образ строится следующим способом:

ШАБЛОН ! ДИАПАЗОН[...УСЛОВИЕ][ СЛОВО1 ЗНАЧЕНИЯ] [СЛОВОn ЗНАЧЕНИЯ]

Где ШАБЛОН, ДИАПАЗОН, СЛОВОn ЗНАЧЕНИЯ см. 2.Поиск по многим атрибутам.

Для поиска нужных сведений в базе данных необязательно указывать полное слово. Достаточно указать шаблон: начало слова и “*” (звёздочка), это будет означать, что пользователя устраивают все значения начинающиеся с указанной строки символов.

Подобный синтаксис позволяет делать произвольные запросы к базе данных по разным разделам классификатора. Например, нас интересуют все резисторы, в базе начинающиеся на букву – М. Для этого мы можем сформировать запрос, поисковый образ которого выглядит так: М… или М*, где “…” или “*” означает, что за буквой М следует произвольное количество символов.

Image58.gif (8783 bytes)

Рис. 5.8

Результат поиска смотрите на рис.5.9.

Image59.gif (8931 bytes)

Рис. 5.9

2) Поиск по многим атрибутам.

В основной таблице внизу есть поле расположенное рядом с кнопкой “Поиск” рис.5.10.

Image510.gif (2640 bytes)

Рис. 5.10

Оно предназначено для ввода поискового образа. Поисковый образ строится следующим способом:

[ПОНЯТИЕ::]ШАБЛОН ! ДИАПАЗОН[...УСЛОВИЕ][[ПОНЯТИЕ::] СЛОВО1_ЗНАЧЕНИЯ] [ [ПОНЯТИЕ::]СЛОВОn_ЗНАЧЕНИЯ]

где:
ПОНЯТИЕ ::= код понятия (атрибута) поиска.
ШАБЛОН ::= СЛОВО ЗНАЧЕНИЯ ! ЗНАКИ ШАБЛОНА
ЗНАКИ_ШАБЛОНА ::= СИМВОЛЫ ! * ! ? {в любом сочетании}
* ::= сколько угодно любых символов
? ::= один любой символ
ДИАПАЗОН ::= [СИМВОЛЫ НАЧАЛА СЛОВА]>>[СИМВОЛЫ НАЧАЛА СЛОВА]
УСЛОВИЕ ::= условие относительно Z, записанное как М-выражение. Предполагается, что Z содержит текущее слово из словаря слов значения (значения атрибута).
СЛОВО1-n ЗНАЧЕНИЯ ::= обязательно включенные в искомое значение слова. Имеет смысл, если значение состоит из нескольких слов.

Может задаваться несколько поисковых образов для поиска по ИЛИ. В этом случае поисковые образы разделяются знаком !!.

Примеры:

Пусть значение некоторого понятия может состоять из нескольких слов, тогда:

sss::АБВ

- найти все записи БД для которых в значении понятия с кодом sss содержится слово АБВ.

АБВ*

- есть слово, начинающееся на АБВ.

*АБВ

- заканчивающееся на АБВ.

А???БВ

- из шести букв.

АБВ ГДЕ

- содержащие два слова вместе.

АБВ!!ГДЕ

- любое из слов.

А*...Z["Б"

- начинающиеся на А и содержащие Б ( аналог А*Б*)

...Z>10&(Z<15)

- больше 10, но меньше 15.

Теперь применим данный поиск к нашему классификатору и посмотрим результат.

Условие поиска: Найти все конденсаторы, начинающиеся на К10 и с допуском ±10%.

Поисковый образ: nMPI::К10* m010103::+-10%

Результат поиска смотрите на рис.5.11.

Image511.gif (16200 bytes)

Рис. 5.11

3) Расширенный фильтр

Выбрав меню “Правка – Найти – Произвольный поиск” Вы войдёте в основное окно Расширенного фильтра, рис.5.12.

Image512.gif (17521 bytes)

Рис. 5.12

Реквизитный состав:

Image513.gif (3859 bytes)

Рис. 5.13

E равно Список значений через " "
S содержит Список значений через " "
Z выражение М-выражение относительно переменной Z
D диапазон Список начальных диапазонов в виде Начальное Значение >> Конечное значение
B начало слов Список начал слов

Рассмотрим пример.

Условие поиска: Найти все резисторы, у которых мощность рассеяния лежит в промежутке от .125 до .25 и с допуском ±20%.

Поисковый образ: рис.5.14

Image514.gif (4308 bytes)

Рис. 5.14

Результат поиска рис.5.15.

Image515.gif (7957 bytes)

Рис. 5.15

Фрагмент программы выполнения произвольного поиска см. прил.6.


Site of Information Technologies
Designed by  inftech@webservis.ru.