Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
доп.docx
Скачиваний:
37
Добавлен:
26.03.2016
Размер:
115.88 Кб
Скачать

2.4 Индексы.

2.4.1 Простой индекс.

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

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

Ключ представляет собой значение столбца или конкатенацию (соединение) значений нескольких столбцов.

Система управления базой данных (Компонент Microsoft SQL Server 2005 Database Engine) использует индекс для поиска отдельного значения и последующего перемещения или возврата указателя на строку, содержащую это значение.

Индексы делятся на две категории:

- индексы, допускающие повторение ключей, называемые просто индексами;

- индексы, не допускающие повторение ключей, называемые уникальными.

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

2.4.2 Уникальный индекс.

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

2.4.3 Первичный ключ.

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

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

Неопределённое значение есть отсутствие какого-либо значения. Этот факт обозначается значением NULL.

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

2.4.4 Уточнение определения индексов для ms sql Server.

В MS SQL Server индекс является структурой на диске, которая связана с таблицей или представлением и ускоряет получение строк из таблицы или представения.

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

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

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

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

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

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

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

- Указатель из строки индекса в некластеризованном индексе, который указывает на строку данных, называется указателем строки. Структура указателя строки зависит от того, хранятся ли страницы данных в куче или в кластеризованной таблице. Для кучи указатель строки является указателем на строку. Для кластеризованной таблицы указатель строки данных является ключом кластеризованного индекса.