- •Тема 10. Структури баз даних
- •Основні поняття бази даних Категорії „Дані“ та „Модель даних“ є однією з базових концепцій Баз даних
- •Багаторівневий підхід до реалізації баз даних
- •Реляційна модель баз даних
- •Реляційні операції
- •Реляційна модель бд – реляційне проектування
- •Мова sql
- •Об'єктно-орієнтовані бази даних
- •Забезпечення цілісності бд - протокол фіксації / відкоту змін в бд
- •Вплив технологій баз даних на суспільство
Забезпечення цілісності бд - протокол фіксації / відкоту змін в бд
Поняття транзакції має безпосередній зв'язок з поняттям цілісності БД. Дуже часто БД може мати такі обмеження цілісності, які просто неможливо не порушити, виконуючи лише один оператор зміни БД. Наприклад, нехай в базі даних є дві таблиці ПРАЦІВНИКИ і ВІДДІЛИ. Природним обмеженням цілісності є збіг значення атрибуту ВІТД_РОЗМІР в рядку таблиці ВІДДІЛИ, що описує даний відділ, з числом рядків таблиці СПІВРОБІТНИКИ даного відділу. Як в цьому випадку прийняти на роботу у відділ нового співробітника? Незалежно від того, яка операція буде виконана першою (вставка нового рядку у таблицю СПІВРОБІТНИКИ або модифікація існуючого рядку таблиці ВІДДІЛИ) після виконання операції база даних залишиться в нецілісному стані.
Тому для підтримки подібних обмежень цілісності допускається їх порушення в транзакції з тією умовою, щоб до моменту завершення транзакції умови цілісності були дотримані. У системах з розвиненими засобами обмеження та контролю цілісності кожна транзакція починається при цілісному стані БД і повинна залишити цей стан цілісними після свого завершення. Недотримання цієї умови призводить до того, що замість фіксації результатів транзакції відбувається її відкат (тобто замість оператора COMMIT виконується оператор ROLLBACK), і БД залишається в такому стані, в якому перебувала до моменту початку транзакції, тобто в цілісному стані.
Для уникнення таких аномалій(СКБД може ставити транзакції в чергу, внаслідок чого. вони будуть виконуватися послідовно), планувальник СКБД використовує механізм, який називається протоколом блокування.
Існує два типи блокувань:
спільне
виняткове
Ці типи співвідносяться з типами доступу до даних, які необхідні транзакціям. Якщо в процесі виконання транзакції елемент не буде змінюватися — відбувається спільний доступ. Якщо ж елемент буде змінюватися — доступ стає винятковим
На початку запиту, кожна транзакція повинна вказати необхідний тип доступу до даних.
10. В минулому, набори даних розглядались як щось нерухоме та пасивне.
Наприклад - система видачі книг, при якій в кожну книжку вкладалась картка з іменем людини, яка взяла дану книгу. Для того, щоб отримати перелік всіх книг читача слід переглянути всі книги бібліотеки. Однак на сьогодні, автоматизація процесу реєстрації значно полегшує це завдання. Тому бібліотеки можуть надавати таку інформацію про клієнта маркетинговим компаніям, юридичним фірмам, політичним партіям, працедавцям та приватним особам. Наслідки таких дій складно оцінити адекватно.
На сьогодні збір даних відбувається у величезних масштабах
В одних випадках він є відкритим
В інших — прихованим
Відкритий збір полягає у зверненні за інформацією до об’єкта зацікавлення
однак такий збір може бути і примусовим
Прихований збір полягає у уникненні контактів з об’єктом зацікавлення
Наприклад. компанії, які здійснюють збір інформації про клієнта на основі кредитних карток, організації, які збирають дані про відвідувачів їхніх веб-сторінок, працівники правоохоронних органів при виконанні обов’язків
Інтерес до збору інформації викликаний тією значимістю даних, яку отримали останні внаслідок бурхливого розвитку баз даних.
Для уникнення таких аномалій(СКБД може ставити транзакції в чергу, внаслідок чого. вони будуть виконуватися послідовно), планувальник СКБД використовує механізм, який називається протоколом блокування.
Існує два типи блокувань:
спільне
виняткове
Ці типи співвідносяться з типами доступу до даних, які необхідні транзакціям. Якщо в процесі виконання транзакції елемент не буде змінюватися — відбувається спільний доступ. Якщо ж елемент буде змінюватися — доступ стає винятковим
На початку запиту, кожна транзакція повинна вказати необхідний тип доступу до даних.
