- •Лекція 2. Середовище бази даних
- •Структура цієї лекції
- •2.1. Трьохрівнева архітектура ansi-sparc
- •2.1.1. Зовнішній рівень Зовнішній рівень - Представлення бази даних з погляду користувачів. Цей рівень описує ту частину бази даних, що відноситься до кожного користувача.
- •2.1.2. Концептуальний рівень Концептуальний рівень - узагальнююче представлення бази даних. Цей рівень описує, які дані зберігаються в базі даних, а також зв'язку, що існують між ними.
- •2.1.3. Внутрішній рівень Внутрішній рівень Фізичне представлення бази даних у комп'ютері. Цей рівень описує, як інформація зберігається в базі даних.
- •2.1.4. Схеми, відображення й екземпляри
- •2.1.5. Незалежність від даних
- •2.2. Мови баз даних
- •2.2.1. Мова визначення даних - ddl Мова ddl - описова мова, що дозволяє абд чи користувачу описати і поіменувати сутності, необхідні для роботи деякої програми, а також зв'язку між різними сутностями.
- •2.2.2. Мова керування даними - dml Мова dml - мова, що містить набір операторів для підтримки основних операцій маніпулювання даними, що містилися в базі.
- •Процедурні мови dml Процедурна мова dml - мова, що дозволяє повідомити системі про те, які дані необхідні, і точно вказати, як їх можна витягти.
- •Не процедурні мови dml Не процедурна мова dml - мова, що дозволяє вказати лише те, які дані вимагаються, але не те, як їх варто витягати.
- •2.2.3. Мови 4gl
- •Генератори форм
- •Генератори звітів
- •Генератори графічного представлення даних
- •Генератори програм
- •2.3. Моделі даних і концептуальне моделювання
- •Модель даних - Інтегрований набір понять для опису даних, зв'язків між ними й обмежень, що накладаються на дані в деякій організації.
- •2.3.1. Об'єктні моделі даних
- •2.3.2. Моделі даних на основі записів
- •Реляційна модель даних
- •Мережна модель даних
- •Ієрархічна модель даних
- •2.3.3. Фізичні моделі даних
- •2.3.4. Концептуальне моделювання
- •2.4. Функції скбд
- •2.4.1. Збереження, витяг і відновлення даних
- •2.4.2. Каталог, доступний кінцевим користувачам
- •2.4.3. Підтримка транзакцій
- •2.4.4. Сервисы керування паралельністю
- •2.4.5. Сервіси відновлення
- •2.4.6. Сервіси контролю доступу до даних
- •2.4.7. Підтримка обміну даними
- •2.4.8. Служби підтримки цілісності даних
- •2.4.9. Служби підтримки незалежності від даних
- •2.4.10. Допоміжні служби
- •2.5. Компоненти скбд
- •2.6. Архітектура багатокористувачевих скбд
- •2.6.1. Телеобробка
- •2.6.2. Файловий сервер
- •2.6.3. Технологія „клиент/сервер"
- •2.7. Системні каталоги
- •Системний каталог - сховище даних, що описують інформацію, що зберігається в базі даних, тобто мета-дані, чи "дані про дані".
- •2.7.1. Служба irds
2.4.3. Підтримка транзакцій
СКБД повинна мати механізм, що гарантує виконання або всіх операцій відновлення даної транзакції, або жодної з них.
Транзакція являє собою набір дій, виконуваних окремим користувачем чи прикладною програмою з метою доступу чи зміни вмісту бази даних. Прикладами простих транзакцій у проекті DreamHome може служити додавання в базу даних зведень про нового співробітника, відновлення зведень про зарплату деякого співробітника чи видалення зведень про деякий об'єкт нерухомості. Прикладом більш складної транзакціи може бути видалення зведень про співробітника з бази даних і передача відповідальності за всі об'єкти нерухомості, які їм керуються, іншому співробітнику. У цьому випадку в базу даних буде потрібно внести відразу декілька змін. Якщо під час виконання транзакції відбудеться збій, наприклад через вихід з ладу комп'ютера, база даних попадає в суперечливий стан, оскільки деякі зміни вже будуть внесені, а інші - ще ні. Тому всі часткові зміни повинні бути скасовані для повернення бази даних у колишній, несуперечливий стан.
2.4.4. Сервисы керування паралельністю
СКБД повинна мати механізм, що гарантує коректне відновлення бази даних при рівнобіжному виконанні операцій відновлення багатьма користувачами.
Одна з основних цілей створення і використання СКБД полягає в тім, щоб безліч користувачів могло здійснювати рівнобіжний доступ до спільно оброблюваних даних. Рівнобіжний доступ порівняно просто організувати, якщо всі користувачі виконують тільки читання даних, оскільки в цьому випадку вони: не можуть перешкодити один одному. Однак, коли два чи більше користувачі од. почасово одержують доступ до бази даних, конфлікт із небажаними наслідками легко; може виникнути, наприклад, якщо хоча б один з них спробує обновити дані. Розглянемо паралельно виконувані транзакції Т1 і Т2 послідовність виконання яких представлена в табл. 2.3.
У транзакції T1 10 фунтів стерлінгів знімається з рахунка, баланс якого зберігається в стовпці Bal, а в транзакції Т2 100 фунтів стерлінгів міститься на цей же рахунок. Якби транзакції виконувалися послідовно, тобто одна за іншою, без чергування окремих операцій, то в остаточному підсумку баланс дорівнював би 190 фунтам стерлінгів, незалежно від порядку виконання транзакції. У противному випадку може виникнути наступна ситуація. Припустимо, що транзакції T1 і Т2 стартували практично одночасно і прочитали вихідне значення балансу, рівним 100 фунтам стерлінгів. Потім транзакція Т2 збільшує це значення на 100 фунтів стерлінгів (до 200 фунтів стерлінгів) і зберігає отримане значення в базі даних. Негайно після цього транзакція Т1 зменшує свою копію ліченого вихідного значення на 10 фунтів стерлінгів (до 90 фунтів стерлінгів) і зберігає отримане значення в базі даних замість тільки що записаного результату попереднього відновлення, унаслідок чого виникає ефект "утрати" 100 фунтів стерлінгів.
С КБД повинна гарантувати, що при одночасному доступі до бази даних багатьох користувачів подібних конфліктів не відбудеться.
2.4.5. Сервіси відновлення
СКБД повинна надавати кошти відновлення бази даних на випадок якого-небудь її чи ушкодження руйнування.
Під час обговорення підтримки транзакцій згадувалося, що при збої транзакції база даних повинна бути повернута в несуперечливий стан. Подібний збій може відбутися в результаті виходу з ладу системи чи запам'ятовуючого пристрою, помилки апаратного чи програмного забезпечення, що можуть привести до зупинки СКБД. Крім того, користувач може знайти помилку під час виконання транзакції і зажадати її скасування. В усіх цих випадках СКБД повинна надати механізм відновлення бази даних і повернення її до несуперечливого стану. .