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

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

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

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

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

Введення обмежень в базах даних

В базі даних існують такі види обмежень:

  1. Первинний ключ — PRIMARY KEY.
  2. Унікальний ключ — UNIQUE KEY.
  3. Зовнішній ключ — FOREIGN KEY — може включати автоматичні тригери ON UPDATE і ON DELETE; перевірки — CHECK.

Обмеження бази даних бувають двох типів — на основі одного поля і на основі декількох полів таблиці. Давайте розглянемо створення обмежень детальніше. Першим в описі загального синтаксису обмежень йде ключове слово[CONSTRAINT <Ім'я обмеження>]. Тут CONSTRAINT означає обмеження. Як бачите, все це взяте в квадратні дужки і, значить, необов’язкове. В базі даних не може бути два обмеження з однаковими іменами.

За допомогою ключового слова CONSTRAINT можна задавати ім’я створюваному обмеженню і у випадку використання синтаксису обмежень на основі одного поля, і у випадку обмежень на основі декількох полів.

Якщо не вказати ім’я для обмеження, СУБД автоматично згенерує його. Однак краще все ж явно назначити ім’я, щоб покращити читабельність схеми бази даних і мати можливість, в подальшому, видалити його.

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