Синтаксис структурированного языка запросов предусматривает возможность формирования уникальных индексов (опция UNIQUE). Созданный с этим ключом индекс запрещает ввод в таблицу повторяющихся данных; при таком вводе выдается сообщение об ошибке.
Некоторые СУБД допускают определение для таблицы одного кластерного индекса (опция CLUSTERED). Это особый вид индекса, который настаивает на том, чтобы СУБД сохраняла данные в порядке, определенном этим индексом. Однако такое требование некоторым образом противоречит логике реляционных БД. Вспомните: в реляционной таблице не существует понятия очередности строк. Кластерный индекс вместо хранения простого ключевого значения, ссылающегося на данные в таблице, хранит целую строку. В результате индекс практически повторяет проиндексированную таблицу.
В кластерный индекс включаются именно те столбцы и именно в таком порядке, который соответствует наиболее часто используемому представлению таблицы. Например, если таблица предназначена для хранения списка студентов, то в кластерный индекс целесообразно включить поля с фамилией, именем и отчеством студента, т. к. именно со списками, упорядоченными в такой последовательности, мы привыкли чаще всего работать. Еще раз повторю, что у одной таблицы может существовать только один-единственный кластерный индекс.
Представление (вид)
В реляционной модели данных под представлением (видом) понимают некое реально не существующее виртуальное отношение, которое создается по требованию пользователя на основе одной или нескольких таблиц. Объединение таблиц в представление производится на основе выборки и соединения данных, другими словами, на основе базовых отношений, существующих между таблицами. Физически представление - это набор инструкций, опи-
сывающий способ вывода информации. Описание осуществляется на языке SQL и начинается с оператора SELECT.
Пользователь воспринимает представление как реальную таблицу и даже не задумывается о том, что это результат выполнения запроса к одной или нескольким таблицам. Благодаря механизму представлений разработчик БД получает возможность, во-первых, организовать доступ к информации в наиболее удобном для пользователя виде, во-вторых, скрыть от пользователя не нужные ему данные и, в-третьих, упростить свою работу, создавая представления для базовых отношений между таблицами и обращаясь к ним по мере необходимости вместо построения одних и тех же запросов.
Если представление построено на основе одной таблицы и не включает операций группировки, то набор представляемых им данных доступен не только для чтения, но и для записи. Такое представление называют обновляемым.