Створення вторинного ключа або індексу таблиці

(UNIQUE KEY / INDEX).

Під вторинним (альтернативним) ключем мають на увазі так зване обмеження UNIQUE, яке забезпечує унікальність даних. По суті це обмеження майже повністю відповідає обмеженню первинного ключа, оскільки вимагає наявності унікальних значень у всьому вказа­ному у ньому стовпці (чи комбінації стовпців) таблиці. При додаванні стрічки з дублюючим значенням для стовпця, для якого встановлено обмеження UNIQUE, SQL Server автоматично згенерує помилку та відхилить спро­бу введення такої стрічки.

Примітка: при створенні вторинного ключа, аналогічно як і для первинного ключа, SQL Server автома­тично створює унікальний некластерний індекс.

З іншого боку, створення вручну окремого унікального індексу теж забезпечує унікальність даних для визначеного стовпця (стовпців) таблиці. Фактично, для забезпечення унікальності даних немає різниці між створенням обмеження UNIQUE та створенням унікального індек­су. Ця відмінність полягає лише в їхній семантиці: унікальний ключ призначений для забезпечення обмежень на дані, а індекси призначені для прискорення доступу до даних.

Основною суттєвою відмінністю унікального ключа від унікаль­ного індексу є те, що він усе таки ключ, і на нього можуть посилатися зовнішні ключі (FOREIGN KEY) для забезпечення цілісності даних. Особливістю ж індексів є те, що вони можуть бути як унікальними, так і не уні­кальними.

п.1
п.2
а)


п.3
б)

Рис. 2.8. Створення унікального ключа чи індексу таблиці

Створення унікального КЛЮЧА чи індексу:

1. Для визначеної таблиці зайти в режим конструктора таб­лиці; для цього в панелі Object Explorer (оглядач об’єктів) для вибраної таблиці бази даних розкрити вузли як на рис. 2.7а, та в контекстно­му меню вузла цієї таблиці вибра­ти команду Design (проект).

2. На панелі інструментів натиснути по іконці Manage Indexes and Keys (керування індексами та ключами).

3. У діалоговому вікні Indexes/Keys (індекси та ключі), у лівій частині вікна (рис. 2.8б), натиснути кнопку Add (добавити).

4. Для новоствореного ключа/індексу у полі Columns (стовп­ці) задати стовпець (стовпці) та їхній порядок сорту­вання; для цього слід натиснути кнопку із трикрапкою, розташова­ну справа від поля (рис. 2.9а); у результаті чого відобразить-

п.11
п.5
п.10
п.9
п.8
п.7
п.6
п.4
>
а)

б)

Рис. 2.9. Задання параметрів унікального ключа чи індексу таблиці

ся діалогове вікно Index Columns (стовпці індексу). У лівій частині вікна (рис. 2.9б) за допомогою випадаючих списків поля Column Name (ім’я стовпця) слід задати кількість, вид та порядок входжен­ня стовпців у ключ/індекс. Для кожного стовпця справа від нього в полі Sort Order (порядок сорту­вання) можна задати порядок сортування як Ascending (по зростанню), або як Descending (по спаданню).

5. У полі Type (тип) вибрати (рис. 2.9а), що необхідно створи­ти: Unique key (унікальний ключ) чи Index (індекс).

6. (лише для індексу) У полі Is Unique (є унікальним) визначити чи індекс буде унікальним, чи ні.

7. У полі (Name) [(ім’я)] скорегувати назву ключа/індексу в більш зрозумілий контекст, наприклад, IX_First_id2.

8. (лише для унікального індексу) У полі Ignore Duplicate Keys (ігнорувати повторювані ключі) задати режим генерації повідомлення помилки, у випадку додавання повторювано­го значення ключа *.

9. У полі Create As Clustered (створити як кластерний), якщо ще не створений для таблиці кластерний індекс, то можна встановити цей ключ/індекс як кластерний.

10. У полі Fill Factor (фактор заповнення) при необхідності можна задати значення параметру заповнення (детальніше див. стр. 21).

11. У полі Filegroup or Partition Scheme (ім’я групи файлів чи схеми розділів) вибрати групу файлів, у якій буде зберіга­тися ключ/індекс.

12. Закрити діалогове вікно та зберегти зміни в таблиці.

* Параметр цього поля визначає дії сервера при операціях додавання даних, що намагаються додати декілька стрічок, у тому числі й із повторюваними значеннями. При значенні Yes (так), стрічки, що не вносять у таблицю повторюваних значень, будуть додані, а дублюючі стрічки будуть відкинуті, і транзакція загалом закінчиться успішно; при значенні No (ні) виводиться повідомлення про помилку та виконується відкіт усього пакету даних.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: