Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Відповіді теоретичні.doc
Скачиваний:
1
Добавлен:
14.09.2019
Размер:
150.02 Кб
Скачать
  1. Властивості модифікованих представлень

Розглянемо ряд правил, визначальних, чи є представлення модифікується. Даний момент є найбільш важким і неоднозначним у використовуванні уявлень.

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

При цьому може виникнути ряд неоднозначних ситуацій. Пригадаємо розглянуте вище представлення, що виводить прізвище студента, найменування предмета і оцінку. Припустимо, що це представлення є модифікується і необхідно з нього видалити рядок. Якщо яким-небудь спеціальним чином не обумовити правила видалення, то неясне - видалення рядка з представлення спричинить за собою видалення оцінки з таблиці успішності USP. студента з таблиці STUDENTS, предмета з PREDMET або якоїсь комбінації цих записів.

Отже, якщо команди модифікації можуть виконуватися в уявленні, то воно вважається модифікується; інакше воно призначене тільки для читання при запиті. Основна відмінність між ними полягає в тому. що представлення, що модифікується, - це представлення, в якому команда модифікації може виконатися так. щоб змінити тільки один запис основної таблиці в кожний момент часу, не впливаючи на інші рядки будь-якої таблиці. Використовування цього принципу на практиці, проте, утруднено. Крім того, деякі представлення, які є модифікуються в теорії, насправді не є модифікуються в SQL.

Критерії, по яких визначають, чи є представлення модифікується в SQL. наступні:

  1. • представлення повинне ґрунтуватися тільки на одній базовій таблиці;

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

  3. • воно не повинне не мати ніяких полів, які б були агрегатними функціями;

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

  5. • представлення не повинне використати GROUP BY або HAVING в своєму визначенні.

  6. • бажано, щоб воно не використало в своєму визначенні підзапити;

  7. • воно може бути використане в іншому уявленні, але це представлення повинне також бути модифікується;

  8. • воно не повинне використати константи, рядка або виразу значень серед вибраних полів висновку; • для команди INSERT воно може містити будь-які поля основної таблиці, які мають обмеження NOT NULL, якщо інше обмеження за умовчанням не визначене.

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

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