- •Історія розвитку баз даних
- •2.Перспективи розвитку систем управління базами даних.
- •Перспективи розвитку систем управління базами даних
- •Основні поняття та визначення бд
- •Архітектура бази даних. Фізична та логічна незалежність
- •5. Поняття інформаційно-логічної моделі
- •Етапи життєвого циклу бази даних
- •Основні функції субд
- •Типова організація сучасної субд
- •Класифікація моделей даних
- •11.Ієрархічна модель даних.
- •12.Моделі засновані на інвертованих списках.
- •13.Реляційні бази даних.
- •14.Основні оператори реляційної алгебри.
- •15. Основні елементи er-моделі
- •16. Основні етапи побудови логічної моделі
- •17. Таблиці, унікальність і ключі
- •18. Зовнішні ключі і домени
- •1. Цілісність сутностей
- •2. Цілісність значень
- •21. Перша нормальна форма
- •22. Друга нормальна форма
- •23. Третя нормальна форма
- •Четверта нормальна форма
- •Нормальна форма Бойса-Кодда (нфбк)
- •П’ята нормальна форма
- •Кодування та набори сортування в sql
- •Тема 3. Створення таблиць
- •1. Команда створення таблиці.
- •2. Заборона значення null за допомогою обмеження not null
- •Властивість identity оператора create table
- •Обмеження primary key оператора create table
- •Обмеження foreign key оператора create table
- •Обмеження unique оператора create table
- •Обмеження check оператора create table
- •Обмеження default оператора create table
- •Вказівка стовпців в операторі select
- •42.Використання арифметичних операторів в запиті на вибірку даних
- •43.Використання директиви group by
- •44.Об'єднання результатів запиту за допомогою директиви union
- •45.Використання строкових функцій
- •46.Використання числових функцій
- •47.Додавання даних до таблиці за допомогою оператора insert
- •48.Використання та синтаксис оператора replace
- •49.Використання оператора update
- •50.Видалення даних в sql
Обмеження primary key оператора create table
PRIMARY KEY - це обмеження дозволяє однозначно ідентифікувати кожний запис у таблиці. Первинний ключ повинен містити унікальні значення. Первинний ключ не може містити NULL значень. Кожна таблиця повинна мати первинний ключ, і кожна таблиця може мати тільки один первинний ключ. Можна розподілити обмежувач PRIMARY KEY на декілька стовпців Зауваження: Якщо ви використовуєте запит ALTER TABLE щоб додати первинний ключ, стовпець для первинного ключа повинен не містити NULL значення
Обмеження foreign key оператора create table
Зовнішній ключ (FK) - це стовпець або поєднання стовпців, яке застосовується для примусового встановлення зв'язку між даними в двох таблицях. Зовнішній ключ можна створити, визначивши обмеження FOREIGN KEY при створенні або зміні таблиці.
Якщо один або декілька стовпців, в яких знаходиться первинний ключ для однієї таблиці, згадується в одному або декількох стовпцях іншої таблиці, то в посиланні зовнішнього ключа створюється зв'язок між двома таблицями. Цей стовпець стає зовнішнім ключем у другій таблиці.
Обмеження FOREIGN KEY не обов'язково має бути пов'язане з обмеженням PRIMARY KEY в іншій таблиці. Крім того, за допомогою цього обмеження можуть зазначатися стовпці обмеження UNIQUE в іншій таблиці. Обмеження FOREIGN KEY може містити значення NULL. Втім, якщо будь-який з стовпців складного обмеження FOREIGN KEY містить значення NULL, то при перевірці будуть пропущені всі значення, складові обмеження FOREIGN KEY. Щоб перевірялися всі значення складного обмеження FOREIGN KEY, вкажіть для всіх що беруть участь стовпців параметр NOT NULL.
Примітка: Обмеження FOREIGN KEY може посилатися на стовпці в таблицях цієї ж бази даних або стовпці цієї ж самої таблиці. Такі таблиці називаються посилаються на себе.
Ссилочна цілісність: Хоча головне завдання обмеження FOREIGN KEY - управління даними, які можуть бути збережені в таблиці зовнішнього ключа, це обмеження також контролює зміна даних у таблиці первинного ключа. Наприклад, при видаленні рядка для менеджера з продажу з таблиці Sales.SalesPerson, ідентифікатор якого використовується в замовленнях на продаж в таблиці Sales.SalesOrderHeader, посилальна цілісність двох таблиць буде порушена. Замовлення на продаж віддаленого менеджера в таблиці SalesOrderHeader стануть недійсними без зв'язку з даними в таблиці SalesPerson.
Обмеження FOREIGN KEY запобігає виникненню цієї ситуації. Обмеження забезпечує цілісність посилань таким чином: воно забороняє зміну даних у таблиці первинного ключа, якщо такі зміни зроблять неприпустимою посилання в таблиці зовнішнього ключа. Якщо при спробі видалити рядок у таблиці первинного ключа або змінити значення цього ключа виявиться, що видалення або зміни значенню первинного ключа відповідає значення в обмеженні FOREIGN KEY в іншій таблиці, то дія виконана не буде. Для успішної зміни або видалення рядка з обмеженням FOREIGN KEY необхідно спочатку видалити дані зовнішнього ключа у відповідній таблиці або змінити дані в таблиці зовнішнього ключа, які пов'язують зовнішній ключ з даними іншого первинного ключа.
Індексування обмежень FOREIGN KEY. Необхідність створити індекс зовнішніх ключів часто виникає з наступних причин: За допомогою обмежень FOREIGN KEY в зв'язаних таблицях перевіряються зміни обмежень PRIMARY KEY. Стовпці зовнішніх ключів часто використовуються для об'єднання критеріїв при з'єднанні даних із зв'язаних таблиць у запитах. Це робиться шляхом зіставлення стовпця або стовпців в обмеженні FOREIGN KEY в одній таблиці з одним або декількома стовпцями первинного або унікального ключів в іншій таблиці. Індекс дозволяє компоненту Database Engine швидко знаходити пов'язані дані в таблиці зовнішніх ключів. Втім, створення індексу не є обов'язковим. Дані з двох зв'язаних таблиць можна об'єднувати, навіть якщо в таблицях немає відповідних обмежень PRIMARY KEY або FOREIGN KEY, проте зв'язок зовнішніх ключів між двома таблицями означає, що ці дві таблиці оптимізовані для з'єднання в запиті, де ключі використовуються в якості критеріїв.
У SQL Server не передбачено ні максимальну кількість обмежень FOREIGN KEY в одній таблиці (з посиланнями на інші таблиці), ні максимальне число обмежень FOREIGN KEY з інших таблиць, що посилаються на одну таблицю. Тим не менш фактичне максимальне число обмежень FOREIGN KEY обмежена конфігурацією обладнання і структури бази даних і додатки. Рекомендується, щоб таблиця містила не більше 253 обмежень FOREIGN KEY, а також щоб на неї посилалося не більше 253 обмежень FOREIGN KEY. При розробці бази даних і додатків слід враховувати вартість примусових обмежень FOREIGN KEY.
