У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


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

Передусім зазначимо, що в основному поставлені цілі при розробці System R були досягнуті. Розглянемо тепер, якими Засобами були досягнуті ці цілі, і як більш точно можна інтерпретувати їх в контексті System R.

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

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

Що стосується цілісності баз даних, то в System R під цілісним станом бази даних розуміється стан, що задовольняє набору даних предикатів цілісності, що зберігаються при базі. Ці предикати, звані в System R умовами цілісності (assertions), задаються також Засобами мови SQL. Будь-яка пропозиція мови виконується в межах деякої транзакції - неподільної в значенні стану бази даних послідовності пропозицій мови. Неподільність означає, що всі зміни, вироблені в межах однієї транзакції або цілком відображаються в стані бази даних, або повністю в ньому відсутні. Остання можливість виникає при відкаті транзакції, який може статися з ініціативи користувача (при виконанні відповідного оператора SQL) або з ініціативи системи.

Однієї з причин відкату транзакції з ініціативи системи є якраз порушення цілісності бази даних внаслідок дій даної транзакції (інші можливі умови відкату транзакції з ініціативи системи ми розглянемо пізніше). Мова SQL містить засіб установки так званих точок збереження (savepoint). При відкаті транзакції, що ініціюється користувачем можна указати номер точки збереження, вище за яке відкат не розповсюджується. Відкат транзакції, що Ініціюється системою проводиться до найближчої точки збереження, в якій умова, що викликала відкат, вже відсутній. Зокрема, відкат ініційований внаслідок порушення умови цілісності, проводиться до найближчої точки збереження, в якій умови цілісності додержані. (Помітимо, що засоби установки точок збереження відсутні в комерційних розширеннях System R).

Природно, що для реального виконання відкату транзакції необхідно запам'ятовування деякої інформації про виконання транзакції. У System R для цих і інших цілей використовується спеціальний набір даних - журнал, в який вміщуються записи про всі, що міняють стан бази дані операції всіх транзакцій. При відкаті транзакції відбувається процес зворотного виконання транзакції (undo), в ході якого в зворотному порядку виконуються всі зміни, що записані в журналі.

У мові SQL є засіб визначення так званих умовних впливів (triggers), що дозволяють автоматично підтримувати цілісність бази даних при модифікаціях її об'єктів. Умовний вплив - це каталогізована операція модифікації, для якої задана умова її автоматичного виконання. Особливо істотна наявність такого апарату в зв'язки з наявністю представлень, що розглядаються нижче бази даних, якими може бути обмежений доступ до бази даних для ряду користувачів. Можлива ситуація, коли такі користувачі просто не можуть дотримувати цілісність бази даних без автоматичного виконання умовних впливів, оскільки вони просто "не бачать" всієї бази даних і, зокрема, не можуть представити всіх обмежень її цілісності. Помітимо, що, за винятком ранніх публікацій по System R, реалізація механізму умовних впливів ніде не описувалася, хоч в принципі підходи до реалізації досить зрозумілі. Цей механізм не реалізований в комерційних системах, що виникли на базі System R. Видимо, це пов'язано з виникаючими додатковими непередбачуваними для користувачів накладними витратами при виконанні транзакцій.

Мова SQL містить засоби визначення уявлень. Уявлення - це записаний іменований запит на вибірку даних (з однієї або декількох таблиць). Оскільки SQL - це реляційна мова, то результатом виконання будь-якого запиту на вибірку є таблиця, і тому концептуально можна відноситися до будь-якого уявлення як до таблиці (при визначенні уявлення можна, зокрема, привласнити імена полям цієї таблиці). У мові допускається використання раніше певних уявлень практично скрізь, де допускається використання таблиць (з деякими обмеженнями з приводу можливостей модифікації через уявлення). Наявність можливості визначати уявлення в сукупності з розвиненою системою авторизації дозволяє обмежити доступ деяких користувачів до бази даних виділеним набором уявлень.

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


Сторінки: 1 2 3 4 5 6 7 8 9 10 11 12 13 14