Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
на айфон. ответа по бд.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
972.8 Кб
Скачать

32) Индексы. Виды индексов ms sql Server.

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

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

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

Составной индекс строится на основе значений двух или более полей таблицы.

Индекс – это объект, который существует только в пределах инфраструктуры конкретной таблицы или представления.

Индексы, применяемые в СУБД SQL Server

Формально считается, что в СУБД SQL Server предусмотрены два типа индексов (кластеризованный и некластеризованный), но по своему внутреннему устройству индексы SQL Server подразделяются на три типа, указанных ниже.

Кластеризованные индексы.

Некластеризованные индексы, которые подразделяются на следующие типы:

□ некластеризованные индексы, заданные на неупорядоченной таблице;

□ некластеризованные индексы, заданные на кластеризованном индексе.

В кластеризованных и некластеризованных индексах применяются разные способы физического хранения данных. Кроме того, все три типа индексов отличаются друг от друга тем, что в них СУБД SQL Server по-разному осуществляет переход по В дереву для достижения конечных данных.

Кластеризованный индекс

На каждой таблице может быть задан только один кластеризованный индекс. Если на таблице задан кластеризованный индекс, это означает, что строки таблицы с кластеризованным индексом отсортированы физически в соответствии с ним.

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

Некластеризованный индекс

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

33)В-деревья. Примеры.

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

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

Формирование В-дерева начинается с образования корневого узла.

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

Рис.2.Структура индекса, состоящего из одного корневого узла.

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

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