
- •Кременчук 2010 Розповсюдження і тиражування без офіційного дозволу Кременчуцького університету економіки інформаційних технологій і управління та авторів заборонено.
- •1 Мета та завдання дисципліни
- •2 Методичні вказівки до виконання лабораторних робіт
- •3 Завдання до лабораторніх робіт
- •3.1 Лабораторна робота № 1
- •1 Теоретичні відомості
- •2 Хід роботи
- •2.1 Створення бази даних
- •2.2 Реєстрація бази даних
- •2.3 Підключення до бази даних
- •2.4 Видалення бази даних
- •2.5 Отримання метаданих
- •2.6 Резервне копіювання і відновлення
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.2 Лабораторна робота № 2
- •1 Теоретичні відомості
- •1.1 Типи даних InterBase
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.3 Лабораторна робота № 3
- •1 Теоретичні відомості
- •1.1 Таблиці (Tables)
- •1.2 Індекси
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.4 Лабораторна робота № 4
- •1 Теоретичні відомості
- •1.2 Обмеження первинного ключа (Primary key)
- •1.2 Обмеження унікальності (Unique)
- •1.3 Обмеження зовнішнього ключа (Foreign keys)
- •1.4 Контрольні обмеження (Checks)
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.5 Лабораторна робота №5.
- •1 Теоретичні відомості
- •1.1 Генератори (Generators)
- •1.2 Бізнес-правила
- •1.3 Тригери (Triggers)
- •2. Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.6 Лабораторна робота №6
- •1 Теоретичні відомості
- •1.1 Додавання нових даних
- •1.2 Видалення існуючих даних
- •1.3 Оновлення існуючих даних
- •2. Хід роботи
- •3. Завдання
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.7 Лабораторна робота №7
- •1 Теоретичні відомості
- •2. Хід роботи
- •3. Завдання
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.8 Лабораторна робота №8
- •1 Теоретичні відомості
- •1.1 Представлення (Views)
- •1.2 Представлення, що модифікуються
- •2 Хід роботи
- •3 Завдання
- •4 Звіт про виконання роботи
- •5 Контрольні питання
- •3.9 Лабораторна робота №9
- •1 Теоретичні відомості
- •1.1 Процедури, що зберігаються (Procedures)
- •1.2 Види процедур, що зберігаються, в InterBase
- •2 Хід роботи
- •3 Завдання
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.10 Лабораторна робота №10
- •1 Теоретичні відомості
- •2 Компоненти доступу до даних
- •3 Хід роботи
- •4. Звіт про виконання роботи
- •5. Контрольні питання
- •3.11 Лабораторна робота №11
- •1 Теоретичні відомості
- •1.2 Компонент tibsql
- •2. Порядок виконання
- •3. Звіт про виконання роботи
- •4. Контрольні питання
- •Перелік рекомендованої літератури
1 Теоретичні відомості
1.1 Генератори (Generators)
Генератори використовуються для генерації унікальних номерів, використовуваних в ключових полях. Тобто вони реалізують ті ж функціональні можливості в таблицях InterBase, що поля з автоматичним приростом в інших СУБД. Можна вказати, аби числа генерувалися, починаючи із заданого початкового значення.
Приклад створення генератора:
CREATE GENERATOR MyGenerator;
SET GENERATOR MyGenerator TO 1000;
Генератори безпосередньо не прив'язуються до якого-небудь поля. Вони просто дозволяють генерувати унікальні числа. Для цього використовується функція Gen_ID(), вбудована в InterBase, яка генерує цілочисельні значення. Вона бере генератор як перший параметр і значення кроку як другий. Звичайний приріст рівний 1.
Звертатися до генератора можна лише через функцію Gen_ID().
1.2 Бізнес-правила
У реальному житті питання цілісності бази даних пов'язане з правилами, встановленими у користувача інформаційної системи. Наприклад, в компанії можуть бути встановлені такі правила:
• клієнтам не дозволяється розміщувати замовлення на суму, що перевищує їх ліміт кредиту;
• відомості про виконані замовлення зберігаються протягом шести місяців, а потім віддаляються;
• не можна видавати читачеві нових книг, поки він не поверне узятих раніше;
• кожного разу, коли продається який-небудь товар, для службовця, що оформив продаж, і для відділу, в якому цей службовець працює, на вартість проданого товару збільшується значення певного поля, використовуваного для обчислення премії; в разі повернення всього або частини проданого товару, значення цього поля відповідним чином повинне зменшитися;
• кожного разу, коли приходить нове постачання, кількість поставленого товару на складі збільшується на кількість товару в постачанні.
Такі правила називаються бізнес-правилами. У першому стандарті SQL вважалося, що ці правила виходять за рамки відповідальності СУБД і за їх реалізацію відповідає прикладна програма, що здійснює доступ до бази даних. Вперше в 1986 році в СУБД Sybase було введено поняття тригер, що дозволило включити реалізацію бізнес-правив в базу даних.
1.3 Тригери (Triggers)
З будь-якою подією, що викликає зміну вмісту таблиці, можна зв'язати супутню дію (тригер), яку СУБД повинна виконувати при кожному виникненні події. Тригер – це група операторів мови SQL, які автоматично виконується при вставці, модифікації або видаленні запису.
У СУБД InterBase можна створювати тригери, що працюють за наступних шести умов:
• до вставки запису (BEFORE INSERT);
• після вставки запису (AFTER INSERT);
• до видалення запису (BEFORE DELETE);
• після видалення запису (AFTER DELETE);
• до модифікації запису (BEFORE UPDATE);
• після модифікації запису (AFTER UPDATE).
У Firebird 1.5 тригер може спрацьовувати при виникненні однієї з декількох подій. Тригери можуть викликати виконання процедур, що зберігаються, виконувати різні перевірки і генерувати виключення. Зазвичай тригери використовуються для завдання складних правил контролю цілісності бази даних, які неможливо реалізувати за допомогою обмежень.
Недоліком тригерів є їх вплив на продуктивність операцій з базою даних.
Синтаксис оператора створення тригера:
CREATE TRIGGER Ім'я FOR Таблиця
[ACTIVE | INACTIVE]
{BEFORE | AFTER}
<операція> [OR <операція> [OR <операція>]]
[POSITION Номер]
AS [<список змінних>] <блок>;
<операція> = {INSERT | UPDATE | DELETE}
<список змінних> =
DECLARE [VARIABLE] Змінна <тип даних>;
[DECLARE [VARIABLE] Змінна <тип даних>; ...]
<блок> =
BEGIN
<складений оператор>
[<складений оператор>...]
END
<складений оператор> = <блок> | Оператор;
Параметри, що входять в цього оператора, пояснені в таблиці 5.1
Таблиця 5.1 – Опис параметрів оператора створення тригера
Параметр
|
Опис
|
Ім'я |
Унікальна назва тригера. |
ACTIVE | INACTIVE |
Вказує чи працюватиме тригер |
BEFORE | AFTER |
Обов'язковий параметр, що показує коли спрацьовуватиме тригер |
INSERT | UPDATE | DELETE |
Одна з подій, на які спрацьовуватиме тригер |
POSITION Номер |
Визначає порядок спрацьовування тригера, коли є декілька тригерів, що реагують на одну і ту ж подію. Номер – ціле число між 0 і 32767 |
DECLARE [VARIABLE] Змінна <тип даних> |
Опис локальної змінної, яку можна буде використовувати лише в цьому тригері |
Оператор
|
Будь-який одиночний оператор мови процедур, що зберігаються, і тригерів InterBase |
Всередині тіла тригера доступні дві контекстні змінні NEW і OLD, які дозволяють дістати доступ до нових і старих значень полів запису, при зміні якого був викликаний тригер.
Приклад генератора і тригера:
CREATE GENERATOR EMP_NO_GEN;
CREATE TRIGGER SET_EMP_NO FOR EMPLOYEE
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.EMP_NO IS NULL) THEN
NEW.EMP_NO = GEN_ID(EMP_NO_GEN, 1);
END;