Навігація
Головна
 
Головна arrow Інформатика arrow Бази даних
< Попередня   ЗМІСТ   Наступна >

Функціонування БД

Розглядаючи процес функціонування БД, забезпечуваний, як правило, СУБД, слід сказати про синхронізацію роботи окремих блоків, безпеки (цілісності і захисті) даних, відновленні даних БД після збою.

Синхронізація має місце як при однокористувацькому, так і при многопользовательском режимах. Спочатку поговоримо про режимі одного, яке забезпечується транзакціями.

Під транзакцією розуміється:

  • • вхідний повідомлення, передане в систему і відбиває деяке реальне подія в комп'ютері (БД);
  • • процес зміни в БД, викликаний передачею одного вхідного повідомлення.

До транзакції пред'являються наступні основні вимоги:

  • • вона виконується повністю або не виконується зовсім;
  • • транзакція повинна мати можливість повернення, при цьому незалежний повернення в початковий стан до моменту зміни стану всіх об'єктів;
  • • транзакція повинна бути відтворена: при відтворенні блокування необхідно здійснювати до моменту перегляду всіх об'єктів.

Можлива двофазна і трифазна схема транзакції. Остання більш складна і застосовується в обмеженому обсязі (наприклад, в системі управління розподіленої БД SDD-1). Поговоримо про широко застосовуваної двофазної схемою транзакції.

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

Друга фаза по системному журналу транзакцій відбувається виконання або повернення в попереднє положення (відкат) в точки фіксації (точки контролю) (рис. 4.10).

Дія транзакції

Рис. 4.10. Дія транзакції

Повернення (відновлення) має бути оперативним, проміжним, тривалим. Для двох перших встановлюється попередній стан (точки фіксації), для останнього - контрольні точки. Контрольні точки призначені для процедури відновлення БД після серйозного збою і встановлюються періодично (наприклад, з інтервалом 2-3 секунди). Інтервал визначається при налаштуванні БД або комп'ютера.

Перейдемо до многопользовательском режимі (рис. 4.11). Тут завдання синхронізації процесів ускладнюється за рахунок взаємодії декількох користувачів.

Багатокористувацький режим

Рис. 4.11. Багатокористувацький режим

Для будь-якої транзакції ТР можливі дві групи дій:

  • • зміна стану (запис) - W;
  • • зчитування (читання) стану - R.

Для двох взаємодіючих транзакцій ТР1 і ТР2 можливі наступні випадки.

  • 1. Одночасна зміна ТР1 і ТР2, при цьому можливі накладення даних (втрата поновлення) або помилка в першій транзакції (взаємозалежність відновлення).
  • 2. Зміна R1 і зчитування W2 з двома можливими наслідками:
    • а) зміна за допомогою ТР1 значення, зчитуваного ТР2 (відтворюваність зчитування);
    • б) відкат перед закінченням роботи ТР, (оскільки немає змін у ТР2) і повернення ТР, в попередній стан.
  • 3. Читання ТР, і зміна ТР1 (немає гарантії відтворюваності).

Для усунення цих небажаних явищ можливі такі способи управління:

  • • блокування монопольна або узгоджена;
  • • відкладені зміни;
  • • прив'язка по мітках часу роботи комп'ютера (часова прив'язка).

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

Блокування виконується тільки для однієї транзакції і одного об'єкта.

При послідовному (у часі) виконанні транзакцій порушень цілісності немає, але таке виконання вимагає багато часу. У зв'язку з цим використовують так званий паралельний режим (паралелізм). Вводиться поняття "правильно оформлена транзакція" [4].

  • 1. Перед обробкою об'єкта повинна бути виконана його блокування.
  • 2. Після обробки об'єкт має бути розблокований.
  • 3. Перед розблокуванням не повинна виконуватися повторна блокування.
  • 4. неблокірованние об'єкт не повинен звільнятися.

Для паралельного виконання транзакцій складається розклад (визначає порядок їх взаємодії). Оскільки послідовне розклад забезпечує цілісність, "паралельне" розклад роблять еквівалентним послідовному (послідовних-подібні або серіальні розкладу).

Очевидно, що в монопольній блокуванню можливі очікування і рестарту (перезапуски чекаючих транзакцій). При цьому можливі тупики (рис. 4.12, а): один транзакція блокує іншу і процедура виконання транзакцій "зависає". Для виявлення таких тупиків транзакції відображають графічно (рис. 4.12, б).

Для виходу з тупиків при монопольній блокуванню можливі наступні варіанти:

  • а) будь-яка транзакція одноразово запрошувати всі потрібні блокування на початковій стадії свого виконання;
  • б) відкат і рестарт, якщо час очікування більше встановленого порогового значення;
  • в) рестарту з пріоритетом за часом.

При використанні узгоджених блокувань можливо:

  • • попередження про блокування для всієї області;
  • • блокування частини області, пов'язаної з даною транзакцією.

Можливі й інші види блокувань (голосування по більшості, метод попереднього аналізу конфліктів), що розглядаються далі стосовно до розподілених баз даних.

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

Обмеження цілісності. Виділяють дві групи обмежень.

Монопольна блокування (тупик)

Рис. 4.12. Монопольна блокування (тупик)

I. У процесі проектування: 1) при отриманні достовірних даних з джерел; 2) при побудові структури; 3) при заповненні БД даними (у тому числі посилальна цілісність).

II. При експлуатації: 1) машинні збої; 2) помилки оператора.

Оскільки обмеження групи II характеризують більше СУБД, ніж БД, вони розглянуті в гл. 5.

При побудові структури та заповненні її даними має місце цілісність окремих таблиць і посилальна цілісність (тригери). Реалізація тригерних умов на основі реляційної алгебри здійснюється програмним шляхом, наприклад, в Access.

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

Захист. Управління доступом протидіє несанкціонованого доступу в ланцюжку "суб'єкт - дані - процедури".

Найпростішим способом є введення системи паролів, т. Е. Ідентифікації користувачів. Зазвичай вони використовуються в мережевому режимі при вході в мережу. Цей спосіб простий, але для БД недостатньо зручний, оскільки паролі все ж можна і дізнатися.

Надалі використовували таблиці і список управління доступом. Цей метод теж недостатньо гнучкий.

Останнім часом, особливо після появи мови SQL, стали широко використовувати гнучку систему дозволів і заборон доступу до даних. Для обмеження доступу можливо використовувати і види, описані в гл. 5.

 
Якщо Ви помітили помилку в тексті позначте слово та натисніть Shift + Enter
< Попередня   ЗМІСТ   Наступна >
 
Дисципліни
Агропромисловість
Аудит та Бухоблік
Банківська справа
БЖД
Географія
Документознавство
Екологія
Економіка
Етика та Естетика
Журналістика
Інвестування
Інформатика
Історія
Культурологія
Література
Логіка
Логістика
Маркетинг
Медицина
Нерухомість
Менеджмент
Педагогіка
Політологія
Політекономія
Право
Природознавство
Психологія
Релігієзнавство
Риторика
Соціологія
Статистика
Техніка
Страхова справа
Товарознавство
Туризм
Філософія
Фінанси
Пошук