Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга САПР 3.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
731 Кб
Скачать

§ 2.4. Инвертированные базы данных

Ознакомление с различными моделями данных показало, что поиск необходимой ин­формации требует значительных затрат времени даже для иерархических СУБД,

77

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

Инвертированный список представляет собой табли­цу, в левом столбце которой помещены значения данно­го признака, а в правом — указатели на соответствую­щие записи. Допустим, в примере базы данных, приве­денной в табл. 2.2... 2.4, в записях об узлах требуется выявить узлы, имеющие одинаковую разрядность. Тогда все записи об узлах могут быть скомпонованы плотно в памяти друг за другом и иметь порядковые номера, со­ответствующие их последовательности в таблице ОУЗ. Наряду с этим создается инвертированный список в та­ком виде:

Разрядность ………… 8 10 16 32

Список указателей…… У7 У2, У4 У1, У6, У8 УЗ, У5

Обозначение YN представляет собой изображение указателя на Nзапись. Таким образом, инвертирован­ный список как бы заранее хранит ответ на запрос «На­звать характеристики узлов, имеющих заданную разряд­ность». В примере разрядность выступает в качестве при­знака в запросе. Конечно, можно выделить и другие признаки, например в каком устройстве применяется узел, каков тип узла. Для каждого признака должен быть построен свой инвертированный список.

Наличие нескольких инвертированных списков позво­ляет строить запрос в виде некоторой логической функ­ции от совокупности признаков. Наиболее распространен случай построения запроса, когда используются опера­ции дизъюнкции и конъюнкции.

Для поиска необходимой записи должны быть выпол­нены следующие действия:

  1. выделить в запросе признаки поиска;

  2. определить вид логической функции между запра­шиваемыми признаками;

  3. для каждого признака в нужном инвертированном списке найти множество указателей на записи;

  4. в соответствии с видом логической функции произ­вести операции над множествами указателей.

78

Соответствие операций над множествами указателей виду логической функции должно быть принято из разде­лов по реляционной модели данных. Так, логической функции дизъюнкции ставится в соответствие операция объединения множеств, коньюнкции — операция пересе­чения множеств, отрицанию — операция дополнения и т. д. Для запроса «Какие узлы имеют разрядность 16 и используются в устройстве АКЮ?» в ходе поиска будут построены следующие результаты:

  1. в запросе два признака: разрядность и объект при­менения;

  2. вид логической функции в запросе — конъюнкция;

  3. для признака «разрядность» в инвертированном списке значению 16 будет соответствовать множество указателей {У1, У6, У8}; признаку «применение» в соот­ветствующем инвертированном списке для значения АКЮ — множество указателей {У1, УЗ, У6};

  4. над найденными двумя множествами указателей производится операция пересечения. В итоге получается искомый результат: {У1, У6}. По этим номерам в файле записей будут найдены записи об узлах Р1 и СМ5.

Если для всех записей, хранящихся в базе данных, созданы инвертированные списки для возможных вари­антов запросов, то такая база данных называется ин­вертированной. Инвертированные БД широко использу­ются в информационно-поисковых системах (ИПС), предназначенных в основном для хранения текстовых документов. Признаки, по которым отыскивается необ­ходимый документ в ИПС, называются дескрипторами. Для каждого дескриптора в ИПС строится инвертированный список, содержащий все возможные значения дес­криптора и соответствующие им множества указателей на документы. Запрос в ИПС имеет вид логического вы­сказывания относительно значений дескрипторов и их взаимосвязи. Так, если в качестве документов выступа­ют ГОСТы по проектированию, то дескрипторами могут быть такие понятия, как год издания, объект проектиро­вания, вид обеспечения, объем печатного материала и др. Запрос мог бы выглядеть, например, так: « Найти ГОСТы, изданные не позднее 1981 г., посвященные про­ектированию АСУ, для информационного и программно­го обеспечений ».

■ Примечание. Вид логической функции, соответствующий этому запросу, предоставляем определить самому читателю на основе предыдущих примеров.

79

Проектная документация, как уже указывалось, слабоструктурирована. Однако любой проектный документ может быть охарактеризован некоторой совокупностью признаков. Так, техническое задание на проектирование, абонентской сети на базе персональных ЭВМ описывает­ся дескрипторами: техзадание, абонентская сеть, проект­ная документация, персональные ЭВМ. Для хранения те­кущих проектных документов необходимо заранее заго­товить совокупность дескрипторов, которые наряду с со­держанием отражали бы и поэтапность составления со­ответствующих документов. Например, могут быть ука­заны этапы, стадии, шаги процесса проектирования, а также номера вариантов.