- •Історія розвитку баз даних
- •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
2. Заборона значення null за допомогою обмеження not null
Від здатності стовпця приймати значення null залежить, чи можуть рядки містити NULL, тобто чи обов'язково вводити значення в цих рядках чи ні.
Коротко:
значення null є маркером, який повідомляє, що значення не було введено;
значення null відображає значення, якого немає, яке невідомо або яке непридатний. Значення null в стовпці price свідчить про те, що ціна невідома або не була вказана, а не про те, що товар не має ціни або що ціна рівна нулю;
значення null - не те ж саме, що (0), порожнє поле або пропуск (' ');
значення null не відноситься ні до одного типу даних і може бути вставлене в будь-який стовпець, який це допускає;
в командах SQL слово NULL указує на значення null.
При установці обмеження на значення null слід ураховувати наступні чинники:
• обмеження на значення null завжди є обмеженням стовпця, а не таблиці
• ви задаєте обмеження на значення null за допомогою ключових слів NULL або NOT
NULL в позначенні стовпця в команді CREATE TABLE;
• бажано уникати дозволу значення null, оскільки це ускладнює запити;
• заборона значення null в стовпці може допомогти зберегти цілісність даних, оскільки при їх введенні обов'язково вказувати значення. СУБД не буде вставляти або змінювати рядок, якщо стовпець (для якого заборонено значення null) містить NULL;
• деякі обмеження (наприклад, PRIMARY KEY) не можуть використовуватися в стовпцях, для яких дозволено значення null;
• значення null впливає на обмеження повторних ключів за допомогою обмеження FOREIGN KEY;
• якщо ви додали рядок за допомогою команди INSERT, але не вказали значення стовпця, який допускає значення null, ваша СУБД вставить NULL (за умови, що немає обмеження DEFAULT).
• ви можете ввести NULL безпосередньо в стовпці, для якого дозволено значення null, причому незалежно від того, який тип даних або значення за умовчанням вказаний для цього стовпця;
• якщо ви не вкажете NULL або NOT NULL, no умовчанню значення null буде дозволено.
Властивість identity оператора create table
Створює в таблиці стовпець ідентифікаторів. Ця властивість вказується в інструкціях мови Transact-SQL CREATE TABLE і ALTER TABLE.
Властивість IDENTITY відрізняється від властивості Identity розподілених об'єктів управління (SQL-DMO), що забезпечує доступ до ідентифікаторів рядків у стовпцях.
Синтаксис: IDENTITY [(seed, increment)]
Аргументи: seed - значення, що привласнюється самої першому рядку, що завантажується в таблицю. increment - значення прирощення, яке додається до значення ідентифікатора попередньої завантаженої рядки.
Необхідно вказувати або обидва аргументи (і seed, і increment), або не вказувати ні один з них.
Стовпці ідентифікаторів можна використовувати для формування значень ключів. Властивість ідентифікаторів стовпця гарантує: Кожне нове значення буде сформовано на основі поточних аргументів seed і increment. Кожне нове значення для певної транзакції буде відмінно від інших паралельних транзакцій для таблиці.
Властивість ідентифікаторів стовпця не гарантує: Унікальність значення - унікальність слід забезпечувати за допомогою обмеження PRIMARY KEY або UNIQUE або індексу UNIQUE. Послідовні значення в межах транзакції - при вставці транзакцією декількох рядків не гарантується, що для них будуть призначені послідовні значення. Це пов'язано з тим, що в таблиці можуть виконуватися інші паралельні операції вставки. Якщо значення повинні бути послідовними, то транзакція повинна використовувати монопольну блокування для таблиці або використовувати рівень ізоляції SERIALIZABLE. Послідовні значення після перезапуску сервера або інших помилок - SQL Server може зберігати значення ідентифікаторів в кеші для забезпечення високої продуктивності, і деякі з привласнених значень можуть бути втрачені при збої бази даних або перезавантаженні сервера. Це може викликати пропуски в значеннях ідентифікатора при вставці. Якщо присутність пропусків неприйнятно, то для формування значень ключів додаток повинен використовувати генератор послідовності з параметром NOCACHE або власний механізм. Повторне використання значень - властивості ідентифікаторів, створені конкретним властивістю ідентифікатора із заданими аргументами seed і increment, не використовуються повторно підсистемою. Якщо певна інструкція вставки завершується з помилкою або проводиться її відкат, використані значення ідентифікаторів не будуть створені повторно. Це може призвести до появи пропусків при створенні наступних значень ідентифікаторів.
Ці обмеження були створені навмисно і призначені для підвищення продуктивності, оскільки вони є допустимими у багатьох типових ситуаціях. Якщо через ці обмеження неможливо використовувати значення ідентифікаторів, рекомендується створити окрему таблицю, що містить поточне значення, управління доступом якої і призначення чисел буде виконуватися додатком.
Якщо таблиця зі стовпцем ідентифікаторів опублікована для реплікації, цей стовпець повинен обслуговуватися відповідно до типу реплікації.
