- •Кафедра экономической информатики
- •Глава 1 основные понятия экономических информационных систем
- •1.1 Информационная система в общем виде
- •1.2 Компоненты экономических информационных систем
- •1.3 Классификация и основные свойства единиц информации
- •1.4 Жизненный цикл экономической информационной системы
- •1. Атрибуты документа "Карточка водителя":
- •2. Атрибуты документа "Кассовый отчет кинотеатра":
- •3. Атрибуты документа "Акт о ликвидации основных средств":
- •Глава 2 модели данных
- •2.1 Реляционная модель данных
- •2.2 Нормализация отношений
- •2.2.1 Функциональные зависимости и ключи
- •Доказательство
- •2.2.2 Вторая и третья нормальные формы отношений
- •2.2.3 Ациклические базы данных
- •2.2.4 Доступ к реляционной базе данных
- •2.3 Сетевая и иерархическая модели данных
- •2.4 Модель инвертированных файлов и информационно-поисковые системы
- •Глава 3 методы организации данных
- •3.1 Анализ алгоритмов и структур данных
- •3.2 Методы ускорения доступа к данным
- •3.3 Организация данных во внешней памяти эвм
- •Глава4 моделирование предметных областей в экономике
- •4.1 Семантические модели данных
- •4.2 Базы знаний
- •4.3 Тезаурусы экономической информации
- •Глава 5 моделирование вычислительных процессов в экономических информационных системах
- •5.1 Параметризация экономических информационных систем
- •5.2 Формализация процессов
- •5.3 Моделирование вычислительной системы
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. База данных |
технолог - 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.
Найдите фамилии преподавателей, ведущих занятия в группах 305 и 307 одновременно.
Какие оценки получил студент Федоров?
У каких студентов преподает Иванов?
Какие студенты сдали те же экзамены, что и Федоров?
Какие преподаватели работают 10.10.98?
Какие преподаватели ведут занятия в тех же группах, что и Иванов?
По каким предметам сдается зачет, а не экзамен?
Какие студенты изучают дисциплину ВМ 10.10.98?
Какие дисциплины преподаются на кафедре ВМ?
Какие преподаватели преподают дисциплину ВМ?
Какие преподаватели поставили удовлетворительные оценки в группе 305?
Какие экзамены сданы у всех студентов группы 305?
Какие кафедры ведут занятия в группе 305?
Какие преподаватели работают в те же дни, что и Иванов?
Какие преподаватели поставили отличные оценки студенту Федорову?
По каким дисциплинам студент Федоров получил отличные оценки?
Какие студенты учатся в той же группе, что и Федоров?
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. Из каких атрибутов состоит первичный ключ отношения, в котором нет справедливых функциональных зависимостей?