Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.Б.Д / лекции / 10БД.doc
Скачиваний:
42
Добавлен:
30.05.2020
Размер:
62.98 Кб
Скачать

2 Оновлення даних в уявленнях

Не всі уявлення в SQL можуть бути модифіковані. Уявлення, що модифікується, визначається наступними критеріями:

  • грунтується тільки на одній базовій таблиці;

  • містить первинний ключ цієї таблиці;

  • не містить DISTINCT в своєму визначенні;

  • не використовує GROUP або HAVING в своєму визначенні;

  • по можливості не застосовує в своєму визначенні підзапити;

  • не використовує константи або виразу значень серед вибраних полів виводу;

  • в уявлення повинен бути включений кожний стовпець таблиці, що має атрибут NOT NULL ;

  • оператор SELECT уявлення не використовує агрегуючі (підсумкові) функції, з'єднання таблиць, збережені процедури і функції, визначені користувачем;

  • грунтується на одиночному запиті, тому об'єднання UNION не дозволено.

Якщо уявлення задовольняє цим умовам, до нього можуть застосовуватися оператори INSERT, UPDATE, DELETE. Відмінності між уявленнями, що модифікуються і уявленнями, призначеними тільки для читання, не випадкові. Цілі, для яких їх використовують, різні.

З уявленнями, що модифікуються, в основному обходяться точно так, як і з базовими таблицями. Фактично, користувачі не можуть навіть усвідомити, чи є об'єкт, який вони запрошують, базовою таблицею або уявленням, тобто перш за все це засіб захисту для приховання конфіденційних або таких, що не відносяться до потреб даного користувача частин таблиці.

Уявлення в режимі <тільки для читання> дозволяють одержувати і форматувати дані більш раціонально. Вони створюють цілий арсенал складних запитів, які можна виконати і повторити знову, зберігаючи одержану інформацію. Результати цих запитів можуть потім використовуватися в інших запитах, що дозволить уникнути складних предикатів і понизити вірогідність помилкових дій.

CREATE VIEW view2 AS

SELECT Клієнт.Прізвище, Клієнт.Фірма, Операція.Кількість

FROM Клієнт INNER JOIN Операція ON Клиент.КодКлієнта=Операція.КодКлієнта

Приклад 10.3. уявлення, що не модифікується, з даними з різних таблиць.

CREATE VIEW view3(Тип, Заг_залишок) AS

SELECT Тип, Sum(Залишок)

FROM Товар

GROUP Тип

Приклад 10.4. уявлення, що не модифікується, з угрупуванням і підсумковими функціями.

Звичайно в уявленнях використовуються імена, одержані безпосередньо з імен полів основної таблиці. Проте іноді необхідно дати стовпцям нові імена, наприклад, у разі підсумкових функцій або обчислюваних стовпців.

CREATE VIEW view4(Код, Назва, Тип, Ціна, Податок) AS

SELECT КодТовара, Назва, Тип, Ціна, Цена*0.05 FROM Товар

Приклад 10.5. Уявлення, що модифікується, з обчисленнями.

Переваги і недоліки уявлень

Механізм уявлення - могутній засіб СУБД, що дозволяє приховати реальну структуру БД від деяких користувачів за рахунок визначення уявлень. Будь-яка реалізація уявлення повинна гарантувати, що стан відношення, що представляється, точно відповідає стану даних, на яких визначено це уявлення. Звичайно обчислення уявлення проводиться кожного разу при його використовуванні. Коли уявлення створюється, інформація про нього записується в каталог БД під власним ім'ям. Будь-які зміни в даних адекватно відобразяться в уявленні - в цьому його відмінність від дуже схожого на нього запиту до БД. В той же час запит є як би <миттєвою фотографією> даних і при зміні останніх запит до БД необхідно повторити. Наявність уявлень в БД необхідна для забезпечення логічної незалежності даних. Якщо система забезпечує фізичну незалежність даних, то зміни у фізичній структурі БД не впливають на роботу призначених для користувача програм. Логічна незалежність має на увазі той факт, що при зміні логічної структури даних вплив на призначені для користувача програми також не виявляється, а значить, система повинна уміти вирішувати проблеми, пов'язані із зростанням і реструктуризацією БД. Очевидно, що із збільшенням кількості даних, бережених в БД, виникає необхідність її розширення за рахунок додавання нових атрибутів або відносин - це називається зростанням БД. Реструктуризація даних має на увазі збереження тієї ж самої інформації, але змінюється той, що її розташовує, наприклад, за рахунок перегруповування атрибутів у відносинах. Припустимо, деяке відношення через які-небудь причини необхідно розділити на два. З'єднання одержаних відносин в уявленні відтворює початкове відношення, а у користувача складається враження, що ніякій реструктуризації не проводилося. Крім рішення проблеми реструктуризації уявлення можна застосовувати для проглядання одних і тих же даних різними користувачами і в різних варіантах. За допомогою уявлень користувач має нагоду обмежити об'єм даних для зручності роботи. Нарешті, механізм уявлень дозволяє приховати службові дані, не цікаві користувачам.

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

Соседние файлы в папке лекции