Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мишенин ТЭИС.doc
Скачиваний:
6
Добавлен:
20.04.2019
Размер:
2.28 Mб
Скачать

2.4 Модель инвертированных файлов и информационно-поисковые системы

Модель инвертированных файлов можно рассматривать как частный случай сетевой двухуровневой модели данных. Произведенные упрощения двухуровневой сети позволили создать еще более понятную прикладным программистам и пользователям модель данных.

Основными информационными конструкциями в модели инвертированных файлов являются основной файл, который соответствует ранее введенному понятию "отношения", "инвертированный файл" и "список связи".

Множество основных файлов базы данных обозначим через {Fl,F2,...,Fn}. Все записи файлов Fl...Fn получают в пределах базы данных единую нумерацию. В основном файле Fi разрешается выделить один или несколько атрибутов, по значениям которых затем будут формироваться инвертированные файлы и списки связи. С точки зрения ранее рассмотренной реляционной модели данных выделяемый атрибут может быть как первичным, так и вторичным ключом в основном файле Fi.

Естественно, что выделенный атрибут (обозначим его А) может принимать в Fi несколько различных значений {a(l),a(2),...,a(k)}.

Поставим в соответствие каждому значению a(j) множество номеров записей файла Fi, в которых это значение связано с именем атрибута А.

{a(l),n(t),n(p),..} {a(2),n(g),n(h),..} ………. {a(j),n(x),n(y),...} ……….

Через n с соответствующим индексом обозначены номера записей из Fi.

Определенная таким образом последовательность значений атрибута А и номеров записей основного файла Fi является инвертированным файлом, который далее будем обозначать через A(Fi).

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

Рассмотрим два файла Fi и Fm, в структуре которых имеется общий атрибут А. В этой ситуации существуют два списка связи (Fi,Fm) и (Fm,Fi). В списке (Fi,Fm) для каждого номера записи из файла Fi указываются номера записей из файла Fm, имеющие то же самое значение атрибута А. Аналогично определяется содержимое списка связи (Fm,Fi).

Аналогия с двухуровневой сетью заключается в следующем. Связь инвертированного файла A(Fi) и файла Fi соответствует типу "основной - зависимый". Отличия сводятся к тому, что атрибут А не имеет никакого отношения к первичному ключу Fi (в двухуровневой сети он должен быть частью первичного ключа), и, кроме того, вместе с атрибутом А в инвертированном файле запрещено хранить значения других атрибутов.

Пример

База данных содержит основные файлы Сотрудники и Зарплата, показанные на рис.2.7. Естественно, что списки связи установлены по атрибуту Фамилия, а инвертированных списков в нашем примере максимально может быть пять (по числу атрибутов в основных файлах).

Сотрудники

Фамилия

Должность

01 Котов 02 Яшина 03 Седов 04 Рогов

инженер технолог технолог инженер


Зарплата

Фамилия

Дата

Зарплата

05 Яшина

10.01.98

500

06 Седов

20.03.98

400

07 Яшина

20.03.98

500

08 Котов

20.03.98

600

09 Рогов

10.04.98

400

10 Котов

10.04.98

300

11 Яшина

10.05.98

400


Инвертированный список Должность (Сотрудники)

Список связи (Зарплата, Сотрудники)

инженер - 01, 04

0

Рис. 2.7. База данных

5—02

технолог - 02, 03

06—03

Список связи (Сотрудники, Зарплата)

07—02

01—08,10

08—01

02—05,07,11

09—04

03—06

10—01

04—09

11—02

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

В информационно-поисковых системах ключевые атрибуты соответствуют ключевым словам, определяющим тематику документа. Количество ключевых слов для документа может быть любым. Связь основного и инвертированного файла в этом случае выглядит иначе и показана на рис.2.8.

Пусть дан запрос: найти все документы, содержащие ключевые слова А и С. Система обратится к инвертированному файлу и найдет группы ключей А и С. Совпадающие значения номеров укажут в нашем примере на искомую запись с номером 140.

Ключевые слова А,B,C,D,E

A 140 220

100

BE

В 100 220

140

АСЕ

С 140 240

220

DBA

D 220

240

ЕС

Е 100 140 240

Основной файл

Инвертированный файл

Рис.2.8. Связь основного и инвертированного файла

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

Так, при обработке запроса - найти все записи, содержащие ключи Е или С, кроме А, которому в терминах теории множеств соответствует запись (ЕUC)\А, производится последовательное вычисление

({100,140,240}U{140,240})\{140,220}={100,240}.

Результат означает, что запросу удовлетворяют записи с номерами 100 и 240.

Следует отметить, что поиск по инвертированному файлу обнаруживает только номера записей и плохо приспособлен для указания всех ключей, связанных с найденной записью. Между тем эта информация часто запрашивается. В одном из наших примеров запись с адресом 140 была найдена по значениям ключей А и С очень быстро, но определить, есть ли в этой записи третий ключ Е, используя только инвертированный файл, очень трудно.

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

С учетом реляционного подхода одна база данных в таком случае соответствует одному отношению. Однако компоненты этого отношения имеют ряд важных особенностей.

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

2. Документ может сопровождаться графической иллюстрацией, и в таком случае ее предоставление определяется средствами компьютерной графики. Изображение не является значением какого-то атрибута в общепринятом смысле слова, поскольку как значение не может участвовать в операциях выборки.

Из всего многообразия реализации информационно-поисковых языков модели инвертированных файлов соответствуют дескрипторные языки.

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

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

В каждой информационно-поисковой системе должна присутствовать административная подсистема и поисковая подсистема.

Административная подсистема предназначена для организации новых баз данных, определения структуры вводимых в них записей, ввода подготовленных документов в базы данных в соответствии с определенными структурами, а также для создания главного инвертированного файла - основного средства ускорения поиска требуемой информации в ИПС с помощью ключевых слов.

Рассмотрим пример базы данных ИПС с инвертированным файлом для поиска сведений об экспонатах выставок. Документы, хранящиеся в базе данных, представляют собой описания выставочных экспонатов. Среди атрибутов документа источниками дескрипторов могут быть следующие: Название экспоната, Описание экспоната, Ключевые слова. Разработчик экспоната.

Атрибуты Название экспоната, Описание экспоната. Разработчик экспоната являются текстовыми величинами, содержащими произвольное количество строк и слов. Наиболее информативными с точки зрения выделения дескрипторов являются Название экспоната и Разработчик экспоната. При автоматическом получении множества дескрипторов слова, содержащиеся в атрибуте Описание экспоната, содержат слишком много слов из общей лексики языка, и наличие их в инвертированном файле терминов создаст файл слишком большого размера, в котором значительная доля слов не характеризует выставочные экспонаты и является информационным шумом. Надо отметить, что содержимое главного инвертированного файла предоставляется пользователю при работе с информационно-поисковой системой на экране дисплея, чтобы выбрать конкретные значения дескрипторов для команд выборки. С этой точки зрения администратор информационно-поисковой системы должен отбирать для автоматического индексирования те атрибуты, в которых содержится мало слов, составляющих информационный шум, а Описание экспоната этим требованиям не удовлетворяет.

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

Если дескриптор содержит несколько слов, которые нельзя разделять при автоматическом индексировании, то в этой группе слов вместо пробелов должны использоваться знаки подчеркивания.

Процесс создания базы данных информационно-поисковой системы завершается формированием главного инвертированного файла, в котором для каждого значения дескриптора, полученного при автоматическом индексировании, указываются номера записей, среди значений атрибутов которых есть слова или словосочетания, совпадающие с этим дескриптором. Списки связи в этом случае не требуются, поскольку отдельные базы данных представляют собой тематически различные множества документов и не имеют общих дескрипторов. Кроме того, возможно формирование дополнительных инвертированных файлов по значениям тех атрибутов, которые не подключались к процессу автоматического индексирования.

Команда поиска Найти может использовать в качестве условий выборки значения из главного инвертированного файла, а также из дополнительных инвертированных файлов. Кроме того, пользователь может набрать условие выборки на клавиатуре.

Рассмотрим основные возможности реализации поиска, характерные для большинства информационно-поисковых систем, на простых примерах.

Пример 1

Поиск записей, содержащих слово подшипник. При поиске используется главный инвертированный файл.

Текст команды и ответ информационно-поисковой системы приводятся ниже.

>Найти подшипник 1 27 Найти подшипник,

где 1 - порядковый номер запроса, 27 - количество найденных записей.

Найти подшипник - текст команды запроса, который система воспроизводит заново после окончания поиска.

Теперь найденные записи (документы) доступны для просмотра, они полностью или частично могут быть напечатаны, перенесены во внешнюю память компьютера. С найденным множеством записей могут производиться и другие операции по формированию производной информации. Следует отметить, что слово подшипник в этом примере найдено с помощью главного инвертированного файла во всех атрибутах 27 записей, подключенных к процессу автоматического индексирования (в нашем примере - это атрибуты Название экспоната. Ключевые слова. Разработчик экспоната).

Для того чтобы найти записи, содержащие слово подшипник как значение конкретного атрибута (например. Название экспоната), надо использовать дополнение названия атрибута к искомому слову.

Пример 2

Поиск записей, содержащих в атрибуте Название экспоната слово подшипник.

>Найти подшипник/Название

2 19 Найти подшипник/Название

Для просмотра предоставляются 19 записей, в которых слово подшипник встречается в значениях атрибута Название экспоната.

В большинстве поисковых систем реализованы три логические операции: И (конъюнкция), ИЛИ (дизъюнкция), НЕ (конъюнкция плюс отрицание).

Пример 3

>Найти подшипник НЕ роликовый

3 10 Найти подшипник НЕ роликовый

Каждая из 10 записей, выбранных по этому запросу, содержит термин подшипник, но не содержит термин роликовый.

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

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

Пример 4

Использование скобок. Команда

> Найти подшипник ИЛИ ротор И электродвигатель

аналогична команде

>Найти (подшипник ИЛИ ротор) И электродвигатель

Измененный порядок скобок приведет к другой команде поиска с другим результатом.

Если необходимо найти записи, в которых есть термины, начинающиеся с одинаковой последовательности букв, следует использовать усеченные термины. Для указания усеченных терминов служит вопросительный знак "?", расположенный в конце поискового термина-корня. После вопросительного знака может непосредственно следовать число, обозначающее максимальное количество усекаемых знаков.

Для указания произвольного символа в поисковом термине используется восклицательный знак "!". Этот знак не может замещать первый символ термина.

>Найти т!л

проводится поиск терминов типа тол, тыл и так далее. >Найти маши?

проводится поиск терминов типа машина, машинный, машиностроение и так далее.

Возможности информационно-поисковых систем по обработке множества отобранных в результате выполнения запроса документов здесь не рассматриваются.

Кроме поисковых операций, для современных информационных систем очень важна реализация возможности "движения" по базе данных "вверх-вниз-направо-налево" и переход к смежным разделам базы данных. В этих случаях указание условий поиска необязательно, и решение о переходе в ту или иную область базы данных принимает пользователь.

Общеупотребительной в таких случаях является иерархическая модель данных с наличием ссылок на тематически смежные записи данных в тех случаях, когда это необходимо.

Пример

Рассмотрим структуру ВУЗа. Из всех видов деятельности ВУЗа рассматривается только научно-исследовательская работа (рис. 2.9).

На первом уровне иерархической структуры должны располагаться:

  • главная запись (сведения о руководстве ВУЗа);

  • отношение Person с данными о преподавателях. Сведения о преподавателях нумеруются - Person(l), Person(2), Person(3) и т.д. Сведения о факультетах являются самостоятельными иерархическими базами данных. Их количество равно числу факультетов.

На первом уровне базы данных о факультете располагаются две главные записи:

  • сведения о руководстве факультета;

  • список преподавателей факультета.

Рис. 2.9. Логическая структура информационно-поисковой системы вуза

Затем представлены иерархические базы данных о каждой кафедре факультета. В базе данных о кафедре есть главная запись (руководство кафедры) и отношение Research, в котором отдельные темы исследований занумерованы как Research(l), Research(2), Research(3) и т. д.

Ссылки на другие разделы базы данных реализуются через номера строк в отношении Person.

Например, содержимое главной записи о ВУЗе:

<Н2> Руководство </Н2>

<DL>

<DT><B>Ректор</B><DD>Person(1)

<DT><B> Проректор по учебной pa6oте</B><DD>Person(2)

<DТ><В>Проректор по научной pa6oте</B><DD>Person(3)

<DT><B>Проректор no социально-экономическим вопросам </B><DD>Person(4)

<DT><B> Проректор по административно-хозяйственной ра6oтe</B><DD>Person(5)

<DТ><В>Ученый секретарь Совета</B><DD>Person(6)

</DL>

Список преподавателей факультета 01.

Person(1)

Person(4)

Person(2011)

Person(1001)

Person(1002) …….

Person(1043) Запись Research(3):

Name(Региональные проблемы рыночной экономики)

Chief(1001)

BEGIN

Исследованы проблемы развития производительных сил России до 2000 года. Рассмотрены вопросы региональной экономической политики, и сформулированы основные направления развития отраслей и народнохозяйственных комплексов.

END

Ссылка Chief(1001) означает, что научным руководителем темы является преподаватель, информация о котором хранится как Person(l00l). Этот преподаватель работает на факультете 01. Структура базы данных разрешает фиксировать сведения о преподавателях, не работающих ни на одном факультете или работающих на нескольких факультетах.

ВОПРОСЫ И ЗАДАНИЯ

1. Сведения об учебном процессе зафиксированы в четырех отношениях:

Студ(Гр,Зач,ФИО)

Оценка(Гр,Зач,Дисц,Дата,Пр,Оц)

Расп(Дата,Гр,Дисц,Пр)

Преп(Дисц,Пр,Каф)

В задании используются следующие обозначения:

Студ - студент

Гр - номер группы

Зач - номер зачетной книжки

ФИО - фамилия студента

Дисц - дисциплина

Пр - фамилия преподавателя

Оц - оценка

Расп - расписание

Преп - преподаватель

Каф - название кафедры

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

    1. Найдите фамилии преподавателей, ведущих занятия в группах 305 и 307 одновременно.

    2. Какие оценки получил студент Федоров?

    3. У каких студентов преподает Иванов?

    4. Какие студенты сдали те же экзамены, что и Федоров?

    5. Какие преподаватели работают 10.10.98?

    6. Какие преподаватели ведут занятия в тех же группах, что и Иванов?

    7. По каким предметам сдается зачет, а не экзамен?

    8. Какие студенты изучают дисциплину ВМ 10.10.98?

    9. Какие дисциплины преподаются на кафедре ВМ?

    10. Какие преподаватели преподают дисциплину ВМ?

    11. Какие преподаватели поставили удовлетворительные оценки в группе 305?

    12. Какие экзамены сданы у всех студентов группы 305?

    13. Какие кафедры ведут занятия в группе 305?

    14. Какие преподаватели работают в те же дни, что и Иванов?

    15. Какие преподаватели поставили отличные оценки студенту Федорову?

    16. По каким дисциплинам студент Федоров получил отличные оценки?

    17. Какие студенты учатся в той же группе, что и Федоров?

2. Разработайте программы реализации операций вычитания и деления отношений для СУБД семейства dBASE. Требуемые имена файлов и атрибутов передавайте как параметры.

3. В п.2.2.1 приведен метод поиска вероятного ключа отношения (если он единственный). Из полного списка атрибутов отношения вычеркните те, которые встречаются в правых частях функциональных зависимостей. Оставшиеся атрибуты образуют вероятный ключ. Докажите корректность этого метода. Какое множество функциональных зависимостей необходимо использовать?

4. Какой нормальной форме соответствует база данных, приведенная в задании 1?

5. Определите отношения в 3НФ для известного списка атрибутов БД и функциональных зависимостей.

Табельный номер (таб. N)

Фамилия рабочего (ФИО)

Цех

Участок

Дата

Сумма зарплаты (сумма)

УчастокЦех

Таб. NЦех

Таб. NУчасток

Таб. N, ДатаСумма

Таб: NФИО

Таб. NФИО, Участок

6. Определите отношения в 3НФ для известного списка атрибутов БД и функциональных зависимостей.

ФИО служащего (ФИО) ФИО, ДатаДолжность Должность ФИОДолжность Дата ФИО, ДатаЗарплата Зарплата ФИО, Имя_ребенкаВозраст Имя_ребенка Возраст ребенка

7. Разработайте структуру двухуровневой сетевой базы данных для заданного множества атрибутов и отношений.

ФИО студента W(ФИО, Группа) Группа S(Преподаватель, Кафедра) Дисциплина Z(ФИО, Дисциплина, Преподаватель, Оценка) Преподаватель Y(Группа, Преподаватель, Дисциплина, День занятий) Кафедра Оценка экзамена F(Дисциплина, Кафедра)

День занятий

Студенты и преподаватели-однофамильцы отсутствуют.

8. Найдите все вероятные ключи в отношении ТЗ из п. 2.2.1.

9. Для приведенной ниже иерархической структуры базы данных укажите минимально возможный набор атрибутов в отношениях:

Атрибуты: Музей, Город, Экспонат, Год, Выставка, ФИО реставратора.

Отношения: W(Музей, Город), С(Экспонат, Год поступления), Т(Экспонат, Год реставрации, ФИО), S(Выставка, Экспонат, Год выставки).

Веерные отношения: (W,C), (С, S), (С, Т).

Названия музеев и выставок не повторяются.

10. Для баз данных в 3НФ из заданий 5 и 6 проверьте их ацикличность.

11. Из каких атрибутов состоит первичный ключ отношения, в котором нет справедливых функциональных зависимостей?