что такое индекс и может ли некластеризованный индекс быть неуникальным?

Подвопрос к моему вопросу [1]:

Все определения (MS SQL Server) индекс (который я смог найти) неоднозначен, и все основанные на нем объяснения рассказывают что-то с использованием неопределенных или неоднозначно определенных терминов.
Что такое определение индекса?

Например, наиболее распространенное определение индекса из вики ( http://en.wikipedia.org/wiki/Index_ (база данных) ):

  • 1) «Индекс базы данных - это структура данных, которая увеличивает скорость операций извлечения данных в таблице базы данных за счет более медленной записи и увеличения объема памяти. Индексы могут быть созданы с использованием одного или нескольких столбцов таблицы базы данных ... "
  • 2)" SQL сервер создает кластеризованный индекс по первичному ключу по умолчанию [1]. Данные представлены в случайном порядке, но логический порядок определяется индексом. Строки данных могут быть случайным образом распределены по таблице. Дерево некластеризованных индексов содержит ключи индекса в отсортированном порядке, причем конечный уровень индекса содержит указатель на страницу и номер строки на странице данных »

Ну, это неоднозначно. Под индексом можно понять:

  • 1) упорядоченную структуру данных, дерево, содержащее промежуточные и листовые узлы;
  • 2) данные конечного узла, содержащие значения из индексированных столбцов + «указатель на страницу и номер строки на странице данных»

Может ли некластеризованный индекс быть неуникальным, учитывая 2)? или даже 1)?
Мне так не кажется ...

Но подразумевает ли TSQL наличие неуникального некластеризованного индекса?

Если да, то что понимается под некластеризованным индексом в «CREATE INDEX (Transact-SQL)» [2] и к чему там применяется аргумент UNIQUE?

Это:

  • 3) данные конечного узла, содержащие значения из индексированных столбцов? т.е. как в 2) но без указателя + номер строки)?

Если это 3), то снова возникает вопрос 1) - зачем применять ограничения на копирование реальных данных в «индекс», а не на реальные данные на месте?


Обновление:
Разве закладка (указатель + номер строки) на строку реальных данных не уникальна (однозначно идентифицирует строку)?
Разве эта закладка не является частью индекса и тем самым делает его уникальным?
Вы можете дать мне определение индекса вместо того, чтобы объяснять, как его использовать НЕОПРЕДЕЛЕННО? Последнюю часть я уже знаю (или могу прочитать сам).


[1]
«УНИКАЛЬНЫЙ аргумент для создания ИНДЕКСА - для чего?»
УНИКАЛЬНЫЙ аргумент для создания ИНДЕКСА - для чего?

[2]
[СОЗДАТЬ ИНДЕКС (Transact-SQL)]
http://msdn.microsoft.com/en-us/library/ms188783.aspx

9
задан Community 23 May 2017 в 12:19
поделиться