русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Основные положения индексации


Дата добавления: 2014-10-07; просмотров: 810; Нарушение авторских прав


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

 

Рисунок 1 – Открытие индексированного файла

 

Индексы уже давно служат удобным инструментом для эффективного доступа к файлам, хранящимся на запоминающем устройстве, в связи с чем была создана файловая структура, известная как индексированный файл (indexed file). Индекс обычно хранится в отдельном файле на том же запоминающем устройстве, что и сам индексированный файл. Во время открытия файла индекс передается в оперативную память, чтобы к нему можно было легко обратиться, когда потребуется доступ к индексированному файлу (рис. 1).

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

Используется огромное количество вариаций основной концепции индексов. Одна из них — использование нескольких индексов. Например, в случае с записями сотрудников нам может понадобиться поиск записей, как по идентификационному номеру, так и по номеру социального обеспечения. Эту проблему можно решить, создав индекс и по номерам социального обеспечения, и по идентификационным номерам (рис. 2). Затем независимо от того, какой номер у нас есть, желаемую запись можно быстро найти, прочитав соответствующий индекс. (Иногда такие файлы называют инвертированными, или обращенными.)



Рисунок 2 – Инвертированный файл

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

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

Рисунок 3 – Файл с частичным индексом

 

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

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



<== предыдущая лекция | следующая лекция ==>
Применить процедуру ReadFile для получения Age из файла KeyBoard | Вопросы программирования


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.113 сек.