- •Глава 5. Организация интерфейса пользователя в информационных системах 72
- •Глава 1. Производство. Информация. Общество
- •1.1. Информатизация общества
- •1.2. Информационный характер процесса управления производством
- •1.3. Элементы субъекта управления и функции управления
- •1.4. Уровни управления и информация
- •1.5. Превращение информации в ресурс общества
- •Глава 2. Понятие информационной системы
- •2.1. Общая характеристика информационной системы
- •2.2. Классификация информационных систем
- •2.3. Хранение данных как важнейшая общая задача ис
- •Глава 3. Фактографические информационные системы
- •3.1. Основные понятия
- •3.2. Проектирование структуры данных3
- •3.3. Логическое проектирование структур данных
- •3.4. Физическое проектирование структур данных
- •3.4.1. Методы физического проектирования для реляционных моделей
- •3.4.1.1. Последовательная организация
- •3.4.1.2. Индексно-последовательная организация
- •3.4.1.3. Индексно-произвольная организация
- •3.4.1.4. Рандомизация
- •3.4.1.5. Цепь подобных записей
- •3.4.1.6. Инвертированные файлы
- •3.4.2. Методы физического проектирования для иерархических моделей
- •3.4.2.1. Множественные ссылки на порожденные записи
- •3.4.2.2. Ссылки на подобные и порожденные записи
- •3.4.2.3. Кольцевые структуры
- •3.4.2.4. Справочники
- •3.4.2.5. Битовые отображения
- •3.4.3. Методы физического проектирования для сетевых моделей
- •3.4.3.1. Множественные ссылки на порожденные записи
- •Кафедра должность
- •3.4.3.2. Ссылки на подобные и порожденные записи
- •3.4.3.3. Кольцевые структуры
- •Выполнение поисковых задач осуществляется аналогично иерархическим структурам.
- •3.4.3.5. Справочники
- •3.4.3.6. Битовые отображения
- •Глава 4. Документальные информационные системы
- •4.1. Методы организации хранения неструктурированных данных
- •4.1.1. Последовательные файлы
- •4.1.2. Цепочечные файлы
- •4.1.3. Инвертированные файлы
- •4.1.4. Кластерные файлы
- •4.2. Методы индексирования
- •4.2.1. Позиционные методы назначения весов
- •4.2.2. Статистические методы назначения весов
- •4.2.2.1. Частотные модели
- •4.2.2.2. Модель, учитывающая различительную силу термина
- •4.2.3. Динамический метод назначения весов
- •4.3. Кластеризация текстов
- •4.4. Поиск релевантных текстов
- •4.4.1. Поиск в инвертированных файлах
- •4.5.2. Поиск при кластерной организации хранения
- •4.5. Методы расширенного поиска
- •4.5.1. Построение словаря синонимов
- •4.5.2. Ассоциативное индексирование терминов
- •4.5.3. Вероятностное индексирование терминов
- •Глава 5. Организация интерфейса пользователя в информационных системах
- •5.1. Типы диалогов
- •5.2. Эргономичность интерфейса
- •Индивидуальные задания Реляционные модели
- •Деревья
- •Литература
3.4.1.5. Цепь подобных записей
К исходному файлу не предъявляется никаких требований. К нему достраиваются дополнительные файлы – индексы - в количестве, соответствующем числу вторичных ключей. Записи таких файлов имеют два поля: первое – значение вторичного ключа из основного файла, второе – ссылка на первую запись в основном файле с таким же значением вторичного ключа (в качестве ссылки используется порядковый номер записи в файле). Сами записи файла также модифицируются: они дополняются полями в количестве, соответствующем числу вторичных ключей. Каждое поле служит для организации цепочек записей с одним и тем же значением вторичного ключа.
Пусть основной файл имеет вид:
сотрудник
№ п/п |
ФИО |
ученая степень |
научное звание |
контактные данные |
название (кафедры) |
название (должности) |
1 |
Иванов И.И. |
к.т.н. |
доцент |
234567 |
СУиВТ |
доцент |
2 |
Петров П.П. |
к.т.н. |
нет |
456789 |
ТАМ |
доцент |
3 |
Сидоров С.С. |
нет |
нет |
123456 |
СУиВТ |
ассистент |
4 |
Яковлев Я.Я. |
д.т.н. |
профессор |
345678 |
ТАМ |
профессор |
Вторичными ключами являются ученая степень, научное звание, название (кафедры), название (должности). Построим индексы для этих ключей:
ученая степень |
ссылки |
|
научное звание |
ссылки |
|
название (кафедры) |
ссылки |
|
название (должности) |
ссылки |
д.т.н. |
4 |
|
доцент |
1 |
|
СУиВТ |
1 |
|
ассистент |
3 |
к.т.н. |
1 |
|
нет |
2 |
|
ТАМ |
2 |
|
доцент |
1 |
нет |
3 |
|
профессор |
4 |
|
|
|
|
профессор |
4 |
Как видно из таблиц, каждый индекс содержит поле со всеми значениями соответствующего вторичного ключа из основного файла и поле (озаглавлено ссылки), в котором указывается номер записи основного файла, где впервые встречается соответствующее значение вторичного ключа. Значения вторичных ключей в индексах упорядочены по возрастанию, так что с индексами можно работать как с упорядоченными файлами (в роли первичных ключей таких файлов выступают вторичные ключи основных файлов).
Модифицируем также и основной файл. Для удобства поместим дополнительные поля (они выделены заливкой) справа от соответствующего вторичного ключа. Получим таблицу:
сотрудник
№ п/п |
ФИО |
ученая степень |
№ п/п |
научное звание |
№ п/п |
контактные данные |
название (кафедры) |
№ п/п |
название (должности) |
№ п/п |
1 |
Иванов И.И. |
к.т.н. |
2 |
доцент |
- |
234567 |
СУиВТ |
3 |
доцент |
2 |
2 |
Петров П.П. |
к.т.н. |
- |
нет |
3 |
456789 |
ТАМ |
4 |
доцент |
- |
3 |
Сидоров С.С. |
нет |
- |
нет |
- |
123456 |
СУиВТ |
- |
ассистент |
- |
4 |
Яковлев Я.Я. |
д.т.н. |
- |
профессор |
- |
345678 |
ТАМ |
- |
профессор |
- |
Рассмотрим, как выполняется задача поиска нужной записи.
Пусть надо найти фамилии и инициалы всех сотрудников, работающих в должности ассистента. Очевидно, Кдоступ=<название (должности)=ассистент>. Поиск осуществляется последовательным выполнением шагов:
по индексу для ключа название (должности) определяется запись со значением первого поля, равным ассистент (поскольку индекс – это упорядоченный файл, к нему применяются рассмотренные ранее методы, например, метод последовательного сканирования, анализ работы которых в данном случае не приводится). Это первая запись индекса;
по полю ссылки выясняется номер записи основного файла с искомым ключом доступа – это запись с номером 3;
в основном файле выбирается третья запись. Выводится фамилия и инициалы сотрудника – это Сидоров С.С.;
в соответствии со значением поля № п/п для поля название (должности) в основном файле определяется номер следующей записи основного файла с аналогичным значением вторичного ключа – поскольку данное поле не содержит ссылки, это означает, что цепочка записей закончилась, следовательно, список сотрудников сформирован; алгоритм заканчивает работу.
Если доступ планируется одновременно по нескольким вторичным ключам, можно оптимизировать эту процедуру. Оптимизация состоит в том, что каждый индекс дополняется полем, в котором указывается число записей в цепочке, и тогда вначале обращение осуществляется к тому индексу, в котором длина цепочки минимальна.
Например, основной список представлен таблицей:
сотрудник
№ п/п |
ФИО |
ученая степень |
№ п/п |
научное звание |
№ п/п |
контактные данные |
название (кафедры) |
№ п/п |
название (должности) |
№ п/п |
1 |
Иванов И.И. |
к.т.н. |
2 |
доцент |
- |
234567 |
СУиВТ |
3 |
доцент |
2 |
2 |
Петров П.П. |
к.т.н. |
- |
нет |
3 |
456789 |
ТАМ |
4 |
доцент |
- |
3 |
Сидоров С.С. |
нет |
- |
нет |
- |
123456 |
СУиВТ |
- |
ассистент |
- |
4 |
Яковлев Я.Я. |
д.т.н. |
- |
профессор |
- |
345678 |
ТАМ |
- |
профессор |
- |
Индексы модифицированы и показаны в таблицах (дополнительные поля показаны заливкой):
ученая степень |
ссылки |
длина цепочки |
|
научное звание |
ссылки |
длина цепочки |
|
название (кафедры) |
ссылки |
длина цепочки |
|
название (должности) |
ссылки |
длина цепочки |
д.т.н. |
4 |
1 |
|
доцент |
1 |
1 |
|
СУиВТ |
1 |
2 |
|
ассистент |
3 |
1 |
к.т.н. |
1 |
2 |
|
нет |
2 |
2 |
|
ТАМ |
2 |
2 |
|
доцент |
1 |
2 |
нет |
3 |
1 |
|
профессор |
4 |
1 |
|
|
|
|
|
профессор |
4 |
1 |
Значения полей длина цепочки – это количество записей основного файла с соответствующим значением вторичного ключа.
Пусть надо определить, какие сотрудники работают в должности доцентов и не имеют ученой степени. Очевидно, Кдоступ=<название (должности)=доцент, ученая степень=нет). Задача решается следующим образом:
в индексах для вторичных ключей название (должности) и ученая степень ищутся записи со значениями полей доцент и нет: это, соответственно, записи с номерами 2 и 3;
анализируется, для какого индекса поле длина цепочки имеет минимальное значение: очевидно, длина цепочки для ключа со значением нет короче, чем для ключа со значением доцент, поэтому для поиска в основном файле определяется ключ ученая степень со значением нет;
в соответствии со значением поля ссылки выбранного ключа осуществляется обращение к элементу с номером 3 основного файла;
у выбранного элемента анализируется поле название (должности): его значение равно ассистент: данная запись не удовлетворяет условиям поиска, а потому никакого вывода данных пользователю не происходит;
в соответствии со значением поля ссылки для поля ученая степень определяется номер следующей записи основного файла с аналогичным значением вторичного ключа. Поскольку это поле не содержит ссылки, это означает, что цепочка записей закончилась, следовательно, список сотрудников сформирован (он пуст); алгоритм заканчивает работу.