Створення та використання зображень засобами SQL

Зображення (VIEW) є віртуальною таблицею, вміст якої визначається SQL запитом. Для користувача бази даних зображення виглядає як реальна таблиця, що складається з рядків і стовпців. Однак, на відміну від таблиці, зображення як сукупність значень в базі даних реально не існує. Рядки та стовпці даних, які користувач бачить з допомогою зображення, є результатами запиту, що лежить в його основі. SQL створює ілюзію зображення, привласнюючи йому ім'я, як таблиці, і зберігає його визначення в базі даних.

Коли СУБД зустрічає в інструкції SQL запиту, звернення до зображення, вона відшукує його визначення, збережене в базі даних. Потім СУБД перетворює запит, який посилається на зображення, в еквівалентний йому запит, який в свою чергу звертається до вихідних таблиць зображення і виконує його. Таким чином, СУБД створює ілюзію існування зображення у вигляді окремої таблиці і в той же час зберігає цілісність вихідних таблиць.

Якщо визначення зображення просте, то СУБД формує кожен рядок результуючої віртуальної таблиці при кожному зверненні до зображення, витягуючи дані з вихідних таблиць. Якщо ж визначення складне, СУБД виконує запит, що визначає зображення, і зберігає його результати в тимчасовій таблиці. З неї СУБД бере дані для формування результатів, при зверненні до даного зображення. Коли тимчасова таблиця стає непотрібною, СУБД видаляє її. Але незалежно від того, як саме СУБД виконує інрукцію, що є визначенням зображення, для користувача результат буде одним і тим же. SQL запит на вибірку даних із зображення здійснюється так само, як і на вибірку даних з реальної таблиці.

Читати повністю

Тригери в SQL

Часто виникає необхідність автоматично виконувати деякі типові процедури обробки даних при настанні деякої події в  базі даних. Для цього в СУБД Intebase передбачений механізм тригерів. По суті справи, тригери — це збережені процедури, які автоматично запускаються при настанні однієї з нижче перерахованих подій:

  1. BEFORE INSERT  - подія, яка виникає перед добпвлення нового запису до таблиці БД.
  2. BEFORE DELETE - подія, яка виникає перед видаленням запису з таблиці БД.
  3. BEFORE UPDATE - подія, яка виникає перед редагуванням запису в таблиці БД.
  4. AFTER INSERT - подія, яка виникає після добпвлення нового запису до таблиці БД.
  5. AFTER DELETE - подія, яка виникає після видаленням запису з таблиці БД.
  6. AFTER UPDATE - подія, яка виникає після редагуванням запису в таблиці БД.

На відміну від збережуваних процедур, тригер завжди прив'язаний до деякої таблиці БД. Тригер не має вхідних або вихідних параметрів.

Приклад: для таблиці Cars створимо тригер tcar_id, за допомогою якого в поле Kod вставляється значення генератора car_id.

Читати повністю