Новости
- зміст 1. Які основні функції СУБД?
- 2. Що означає безпосереднє управління даними у зовнішній пам'яті?
- 3. Що означає управління буфером оперативної пам'яті?
- 4. Що називається транзакцією? В чому полягає суть управління транзакціями?
- 5. Для чого потрібно управління транзакціями в базі даних?
- 6. Що таке сериализация і серійний план транзакцій?
- 7. Що відбувається, якщо дві транзакції хочуть мати доступ до одного і того ж об'єкту бази даних?
- 8. Що таке журнализация або ведення протоколу в базі даних?
- 9. Які вимоги до збереження журналу змін бази даних?
- 10. Що таке стратегія «упреждающей» записи при веденні журналу змін?
- 11. Що таке локальний журнал транзакцій? Яка відмінність локального журналу транзакцій від загальносистемного?...
- 12. Які основні кроки виконуються СУБД для відновлення бази даних при «м'якому» збої?
- 13. Які основні кроки виконуються при «жорсткому» збої для відновлення бази даних?
- 14. Що таке надмірність даних в базі даних?
- 15. Що собою представляє функція підтримки мов баз даних?
- пов'язані теми
зміст 1. Які основні функції СУБД?
До основних функцій, які виконуються системами управління базами даних відносяться:
- безпосереднє управління даними у зовнішній пам'яті;
- управління буферами оперативної пам'яті;
- управління транзакціями;
- ведення журналу або протоколу виконаних операцій в базі даних;
- підтримка мов баз даних.
⇑
2. Що означає безпосереднє управління даними у зовнішній пам'яті?
Як відомо, для збереження даних і роботи з ними, в базі даних потрібно мати в наявності постійні запам'ятовуючі пристрої (носії інформації), наприклад магнітні диски (жорсткі диски).
Носії інформації потрібні в двох випадках:
- для збереження безпосередніх даних самій базі даних;
- для службових цілей. Наприклад, для забезпечення швидкого доступу до даних за допомогою індексів.
Як правило, система управління базами даних використовує власний механізм роботи з пристроями зовнішньої пам'яті (зовнішніми пристроями, що запам'ятовують). Для будь-якої СУБД важлива робота з файловою системою деякого пристрою зовнішньої пам'яті. Користувач не повинен замислюватися над особливостями роботи СУБД на нижньому рівні.
Для забезпечення безпосереднього управління даними у зовнішній пам'яті сучасні СУБД:
- мають власну систему найменування об'єктів;
- можуть скористатися наявними можливостями існуючих файлових систем (запам'ятовуючих пристроїв);
- можуть використовувати низькорівневі операції при роботі з зовнішніми пристроями, що запам'ятовують.
⇑
3. Що означає управління буфером оперативної пам'яті?
Однією з важливих характеристик системи управління базами даних є швидкість обробки інформації в базі даних. Швидкість обробки інформації істотно залежить від розміру бази даних.
Щоб підвищити швидкість взаємодії користувача з базою даних, використовується так звана буферизация даних в оперативній пам'яті. Для цього в оперативній пам'яті створюється буфер (кеш) з даними, які на даний момент використовуються. І обмін інформацією здійснюється через цей буфер. Оскільки, швидкість читання з оперативної пам'яті значно вище швидкості читання з зовнішніх запам'ятовуючих пристроїв, то таким чином забезпечується прискорення роботи з базою даних.
⇑
4. Що називається транзакцією? В чому полягає суть управління транзакціями?
При роботі з будь-якою базою даних виконується нескінченна послідовність операцій. Якщо послідовність операцій об'єднана в єдине ціле (з точки зору СУБД), то ця послідовність називається транзакцією.
У цьому випадку важливо успішне виконання транзакції. Якщо транзакція виконується успішно, то система управління базами даних фіксує всі зміни даних за допомогою інструкції COMMIT. Зміни заносяться в зовнішню пам'ять.
Якщо хоча б одна з операцій транзакції закінчується невдало, то транзакція вважається невиконаним. В цьому випадку відбувається відкат транзакції (ROLLBACK). При відкат транзакції база даних повертається в стан, який був до початку виконання транзакції.
⇑
5. Для чого потрібно управління транзакціями в базі даних?
Підтримка транзакцій є важливою умовою для логічної цілісності бази даних. Це стосується як одного користувача так і розрахованих на багато користувачів СУБД.
Завдання механізму транзакцій - вплинути на користувача таким чином, щоб він відчував себе єдиним користувачем СУБД. Навіть в разі, якщо з СУБД паралельно працює велика кількість користувачів. Фактично, транзакція є одиницею активності користувача по відношенню до бази даних.
⇑
6. Що таке сериализация і серійний план транзакцій?
Серіалізация транзакцій необхідна при паралельному виконанні транзакцій. Вона використовується в багатокористувацьких базах даних. Серіалізация транзакцій це: планування роботи паралельних транзакцій таким чином, щоб при паралельному обігу ці транзакції виконувалися послідовно одна за одною.
Для забезпечення сериализации транзакцій будується якийсь серійний план транзакцій. В ідеальному випадку, при хорошому серійному плані транзакцій, користувач не відчує присутність інших транзакцій в базі даних. Можливо тільки невелике уповільнення роботи бази даних.
Мал. 1. Приклад сериализации транзакцій в разі трьох користувачів
⇑
7. Що відбувається, якщо дві транзакції хочуть мати доступ до одного і того ж об'єкту бази даних?
Така ситуація є конфліктною і може виникнути в багатокористувацької базі даних. В цьому випадку відбувається відкат (ROLLBACK) однієї з транзакцій. Це необхідно для забезпечення сериализации в базі даних.
⇑
8. Що таке журнализация або ведення протоколу в базі даних?
Журналізація або ведення протоколу виконаних команд необхідна для відновлення останнього узгодженого стану бази даних після апаратного або програмного збою.
Журналізація необхідна для забезпечення надійності збереження даних у зовнішній пам'яті (на носіях інформації).
Апаратні збої виникають внаслідок:
- миттєвої зупинки комп'ютера (наприклад, відключення живлення, «зависання» операційної системи). Такий апаратний збій ще називають «м'який» збій;
- втратою інформації на носіях зовнішньої пам'яті. Такий вид збою називається «жорсткий збій».
Програмні збої - це, як правило, помилки в самих програмах. Програмні збої можуть виникати як в призначених для користувача програмах, так і в самій СУБД.
Журналізація служить додатковою інформацією, яка полегшує відновлення інформації в базі даних. У базі даних ведеться журнал змін.
⇑
9. Які вимоги до збереження журналу змін бази даних?
Журнал змін в базі даних ведеться особливо надійно. Журнал змін є недоступний для користувачів СУБД. Часто ведуться дві копії журналу змін, які розміщуються на різних носіях.
⇑
10. Що таке стратегія «упреждающей» записи при веденні журналу змін?
Стратегія упреждающей записи (Write Ahead Log - WAL) є своєрідним протоколом, який працює за наступним принципом: перш ніж змінити об'єкт бази даних, попередньо в журналі треба сформувати запис про зміну даного об'єкта.
Якщо дотримуватися цієї стратегії, то після будь-якого збою можна відновити базу даних за допомогою журналу, оскільки запис про зміни в БД буде сформована до початку зміни об'єкта.
⇑
11. Що таке локальний журнал транзакцій? Яка відмінність локального журналу транзакцій від загальносистемного?
Локальний журнал транзакцій відображає операції модифікації бази даних, виконаних в даній (конкретній) транзакції. Ведення такого журналу є найпростішим випадком для відновлення БД у разі збоїв. Щоб відновити БД після збою досить здійснити відкат транзакції шляхом виконання операцій транзакції в зворотному порядку (з початку до кінця), які записані в локальному журналі.
Ведення локального журналу транзакцій підтримується в деяких СУБД.
Загальносистемний журнал відрізняється від локального журналу транзакцій тим, що в ньому описуються операції, виконані усіма транзакціями, а не тільки конкретної транзакцією. У загальносистемному журналі записи, які відповідають одній транзакції, пов'язані між собою за допомогою списку. При виникненні збою, відбувається відновлення всіх операцій заданої транзакції в зворотному порядку (від кінця до початку).
⇑
12. Які основні кроки виконуються СУБД для відновлення бази даних при «м'якому» збої?
«М'який збій» - це випадок, коли сталася миттєва зупинка роботи комп'ютера. Приклади «м'яких» збоїв:
- відключення живлення комп'ютера (апаратний збій);
- «Зависання» операційної системи;
- помилки програмування програм, які взаємодіють з базою даних.
При «м'якому» збої можуть бути відсутніми:
- об'єкти, які були модифіковані транзакціями, але ці транзакції ще не завершилися на момент збою (змінені об'єкти незавершених транзакцій);
- об'єкти, які на момент збою розміщувалися в буфері оперативної пам'яті і які були модифіковані завершеними транзакціями. Але ці об'єкти, в результаті збою, ще не встигли зберегтися на зовнішніх носіях, і все одно зникли безслідно. Як відомо, інформація з оперативної пам'яті при виключенні живлення зникає безслідно.
Після м'якого збою СУБД виконує такі основні кроки:
- відкат незавершених транзакцій;
- відтворюються операції завершених транзакцій, які ще не встигли зафіксуватися у зовнішній пам'яті (зникли безслідно з буфера оперативної пам'яті).
⇑
13. Які основні кроки виконуються при «жорсткому» збої для відновлення бази даних?
Жорсткий збій характеризується втратою інформації на носіях зовнішньої пам'яті.
В цьому випадку, для відновлення бази даних використовують:
- журнал операцій;
- архівну копію бази даних. Архівна копія бази даних - це повна копія бази даних, яка була зроблена на деякий момент ведення журналу. Якщо вдало створюється архівна копія бази даних, то на даний момент, попередні операції в журналі фіксуються і новий облік в журналі починається з цієї позиції.
Важливим тут є наявність самого журналу.
⇑
14. Що таке надмірність даних в базі даних?
Надмірність даних в базі даних - це коли крім самих даних в базі даних зберігається ще й інша необхідна інформація. Ця інформація використовується системою управління базами даних.
Наприклад. Для забезпечення надійності в базі даних, ведеться журнал змін бази даних. Для збереження самого журналу потрібно також місце на зовнішніх носіях. Таким чином, база даних, крім самих даних зберігає ще й іншу інформацію (журнал, зв'язку між таблицями, індексування і т.п.). Це і є надмірність даних.
⇑
15. Що собою представляє функція підтримки мов баз даних?
Будь-яка СУБД повинна підтримувати мови баз даних. Це означає, що для роботи з даними в базі даних, повинні використовуватися спеціальні мови. Ці мови називаються мовами баз даних (наприклад, SQL, MDX, SPARQL, FoxPro, PL / Perl і т.д.).
Для сучасних баз даних в основному виділяються дві мови:
- мова визначення схем даних (Schema Definition Language, SDL). Ця мова використовується для визначення логічної структури бази даних;
- мова маніпулювання даними (Data Manipulation Language, DML). Така мова містить набір операторів маніпулювання даними (додавання, видалення і зміна даних) і вибірки даних з бази даних.
Для сучасних реляційних баз даних стандартною мовою використання є мова SQL (Stuctured Query Language). Ця мова дозволяє визначати схему даних і маніпулювати цими даними.
⇑
пов'язані теми
⇑
1. Які основні функції СУБД?2. Що означає безпосереднє управління даними у зовнішній пам'яті?
3. Що означає управління буфером оперативної пам'яті?
4. Що називається транзакцією?
В чому полягає суть управління транзакціями?
5. Для чого потрібно управління транзакціями в базі даних?
6. Що таке сериализация і серійний план транзакцій?
7. Що відбувається, якщо дві транзакції хочуть мати доступ до одного і того ж об'єкту бази даних?
8. Що таке журнализация або ведення протоколу в базі даних?
9. Які вимоги до збереження журналу змін бази даних?