Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Обмеження FOREIGN KEY




Створення обмежень UNIQUE

Обмеження UNIQUE

Обмеження UNIQUE дозволяє заборонити уведення повторюваних значень у деякі стовпці, що не беруть участь у формуванні первинного ключа. Незважаючи на те, що унікальність забезпечують обидва обмеження - і UNIQUE, і PRIMARY KEY, у деяких ситуаціях замість обмеження PRIMARY KEY варто використовувати обмеження UNIQUE. Так поводяться, якщо:

  • стовпець (або комбінація стовпців) не є первинним ключем. Для таблиці можна визначити кілька обмежень UNIQUE і лише одне обмеження PRIMARY KEY;
  • стовпець допускає порожні значення. Обмеження UNIQUE дозволяється визначати для стовпців, які допускають порожні значення, у той час як обмеження PRIMARY KEY можна визначити тільки для стовпців, які не допускають порожніх значень. Обмеження FOREIGN KEY також може посилатися на обмеження UNIQUE.

Обмеження UNIQUE створюється так само, як PRIMARY KEY:

  • при створенні таблиці (у складі визначення таблиці);
  • шляхом додавання до існуючої таблиці за умовою, що стовпці, що становлять обмеження UNIQUE, містять тільки порожні й унікальні значення. У таблиці може бути кілька обмежень UNIQUE.

Для створення обмеження UNIQUE призначені ті ж оператори Transact-SQL, що і для створення обмеження PRIMARY KEY. Просто замініть слова PRIMARY KEY словом UNIQUE. Як і у випадку з PRIMARY KEY, визначення обмеження UNIQUE дозволяється модифікувати або видаляти. Коли обмеження UNIQUE додається до існуючого стовпця (або стовпців), у якому є повторювані або порожні значення, SQL Server 2000 перевіряє (за замовчуванням) наявні в стовпцях дані, щоб гарантувати унікальність всіх значень, крім порожніх. Якщо обмеження UNIQUE додається до стовпця, у якому є повторювані значення, SQL Server повертає помилку і не додає обмеження. SQL Server автоматично створює індекс UNIQUE, щоб забезпечити відповідність вимозі унікальності, що висуває обмеження UNIQUE. Тому при спробі вставити повторюваний рядок SQL Server повертає повідомлення про помилку, у якому говориться, що порушено обмеження UNIQUE, і не додає рядок у таблицю.

Зовнішній ключ - це стовпець або комбінація стовпців, що використовуються для встановлення і забезпечення зв'язку між даними двох таблиць. Зв'язок між двома таблицями встановлюється шляхом додавання до однієї з таблиць стовпця (стовпців) і визначення для нього обмеження FOREIGN KEY. Цей стовпець містить значення первинного ключа із іншої таблиці. У таблиці може бути кілька обмежень FOREIGN KEY. Наприклад, у таблиці Titles з бази даних Pubs є зв'язок з таблицею Publishers, оскільки існує логічний зв'язок між книгами й видавництвами. Стовпець pub_id у таблиці Titles відповідає стовпцю з первинним ключем таблиці Publishers. Стовпець pub_id у таблиці Titles - це зовнішній ключ для таблиці Publishers.

Можна створити зовнішній ключ, визначивши обмеження FOREIGN KEY під час створення або зміни таблиці. На додаток до PRIMARY KEY, обмеження FOREIGN KEY також може посилатися на стовпці обмеження UNIQUE в інших таблицях. Обмеження FOREIGN KEY може містити порожні значення. Однак якщо кожний із стовпців складеного обмеження FOREIGN KEY містить порожні значення, перевірка цього обмеження не виконується.

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

Хоча основне призначення обмеження FOREIGN KEY — контроль даних, які можуть бути збережені в таблиці із зовнішнім ключем, воно також виявляє зміну даних у таблиці з первинним ключем. Наприклад, якщо з таблиці Publishers видалити рядок з відомостями про видавництво, у той час як ідентифікатор цього видавництва використовується для книг у таблиці Titles, посилальна цілісність між цими двома таблицями порушиться. Книги, які випущені вилученим видавництвом, “зависнуть” у таблиці Titles без посилання на дані таблиці Publishers. Обмеження FOREIGN KEY не допускає подібної ситуації. Це обмеження забезпечує посилальну цілісність, гарантуючи, що в таблицю з первинним ключем неможливо внести такі зміни, які зроблять недійсними посилання на дані таблиці із зовнішнім ключем. Спроба видалення рядка з таблиці з первинним ключем або зміни значення первинного ключа закінчиться невдачею, якщо значення первинного ключа, яке видаляється або змінюються відповідає значенню обмеження FOREIGN KEY іншої таблиці. Щоб успішно змінити або видалити рядок, спочатку необхідно видалити або змінити дані зовнішнього ключа з таблиці із зовнішнім ключем, у результаті чого зовнішній ключ буде пов'язаний з іншими даними первинного ключа.




Поделиться с друзьями:


Дата добавления: 2015-06-29; Просмотров: 603; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.