Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні ПАІС.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
561.66 Кб
Скачать

4. Обмеження check

Одним з найбільш корисних обмежень в базі даних є обмеження перевірки. Ідея його проста – перевіряти вставлюване в таблицю значення на деяку умову і, в залежності від виконаної умови, вставляти чи не вставляти дані.

Синтаксис цього обмеження: < tconstraint > = [CONSTRAINT constraint] CHECK (<search_condition>) Тут constraint – ім’я обмеження; <search_condition> – умови пошуку, в якому в ролі параметра може приймати участь вставлене/змінене значення. Якщо умови пошуку виконуються, то вставка/зміна цього значення дозволяється, якщо ні – виникає помилка. Самий простий приклад перевірки: CREATE TABLE Checktst (  ID integer CHECK(ID>0));

Ця перевірка встановлює, чи більше нуля вставлюване/змінюване значення поля ID, і в залежності від результату дозволяє вставити/змінити нове значення чи викликати виключення. Поле може мати лише одне обмеження CHECK.

5. Вилучення обмежень.

Часто доводиться вилучати різні обмеження по різним причинам. Щоб вилучити обмеження, слід використати речення ALTER TABLE такого виду: ALTER TABLE Сablename DROP CONSTRAINT constraint_name де constraint_name – ім’я обмеження, яке слід вилучити. Слід відзначити, що вилучати обмеження може лише власник таблиці або системний адміністратор SYSDBA.

З А В Д А Н Н Я

  1. Відкрийте на сервері базу даних Sales, яку ви створили.

  2. За допомогою ISQL додайте до таблиць CUSTOMER, PART, SALES первинні ключі по полям CUSTOMER_ID, PART_NUMBER, SALE_NUMBER відповідно.

  3. За допомогою ISQL додайте до таблиць SALES та ITEMS вторинні ключі по полям CUSTOMER_ID, PART_NUMBER, SALE_NUMBER відповідно.

  4. Перегляньте за допомогою IB Console створені вами елементи бази даних.

  5. Оформіть звіт по роботі.

Контрольні запитання

  1. Які типи обмежень існують?

  2. Яка команда створює обмеження?

  3. Яка команда вилучає обмеження?

  4. Яке обмеження створює первинний ключ?

  5. Як додати обмеження в уже існуючу таблицю?

  6. Що виконує обмеження CHECK? Яка його структура?

  7. Коли доцільно використовувати обмеження DEFAULT?

Лабораторна робота № 4 Тема роботи: Використання генераторів ключів в базах даних в InterBase.

Мета роботи: Навчити створювати генератори ключів та індекси у середовищі сервера InterBase.

ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ

  1. Створення генераторів.

Генератор – це іменований лічильник. Всередині бази даних ми можемо створити лічильник, дати йому унікальне ім’я в межах цієї бази і керувати значеннями цього лічильника. Це і буде генератор. Приклад:

CREATE GENERATOR g1;

SET GENERATOR g1 TO 2445;

В цьому прикладі в першому рядку бази даних створюється генератор з іменем g1, а у другому – цьому генератору присвоюється значення 2445. Щоб одержати і змінювати значення генераторів, існує функція GEN_ID.

Ця функція приймає в ролі параметрів ім’я генератора і величину приросту, яку потрібно надати даному генератору, а повертає цілочисельне значення, що відповідає значенню генератора, одержаному в результаті додавання до нього приросту. Ось кілька прикладів виклику функції GEN_ID:

Current_value = GEN_ID (g1, 0)

Тут current_value – це змінна, g1 – генератор, і 0 – це приріст. В цьому прикладі в змінну current_value попаде значення генератора g1 після додавання до нього приросту 0 – тобто поточне значення генератора.

Для одержання наступного значення генератора слід викликати функцію GEN_ID з ненульовим приростом:

Current_value = GEN_ID (g1, 1)

Приріст може бути не рівним одиниці – він може бути довільним, в тому числі і плаваючим, і навіть від’ємним:

Current_value = GEN_ID (g1, -23)

Генератори – це надійний механізм для формування унікальних первинних ключів.