Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БДЗиЭС / Базы данных, знаний и экспертные системы. Часть 1 (теория).pdf
Скачиваний:
162
Добавлен:
11.05.2015
Размер:
8.54 Mб
Скачать

86

7.4.1 АРГУМЕНТ

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

Аргументом может быть комбинация значений атрибутов. Например, однозначным идентификатором записи можно выбрать такую комбинацию: ИМЯ-ПАССАЖИРА+НОМЕР-РЕЙСА+ДАТА: Входом могут быть иерархически связанные поля: НОМЕР-ОТДЕЛА и ИМЯ-СЛУЖАЩЕГО. Вход вторичного индекса тоже может быть комбинацией значений некоторых атрибутов, например ТИП-ИЗДЕЛИЯ и РАЗМЕР. Индекс, аргументом которого является комбинация значений атрибутов, иногда называют составным индексом.

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

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

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

Аргумент индекса может определяться специфическими значения. ми отдельных величин; аргумент = х и аргумент != х; аргумент может относиться к некоторой области значений, например аргумент < х, аргумент <= х, аргумент > х или аргумент > x1 и (одновременно) аргумент < x2. Индекс такого вида называется интервальным индексом.

7.5 КАКИЕ АТРИБУТЫ СЛЕДУЕТ ИНДЕКСИРОВАТЬ?

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

87

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

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

Несколько примеров индексов приведено на рис. 7.1.

7.6СЖАТИЕ КЛЮЧА

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

Рис.7.1