Функції систем керування базами даних

Функції систем керування базами даних (СКБД)


Зміст



1. Які існують основні функції СКБД

До основних функцій, що виконуються системами керування базами даних відносяться:

  • безпосереднє керування даними у зовнішній пам‘яті;
  • керування буферами оперативної пам‘яті;
  • керування транзакціями;
  • ведення журналу або протоколу виконаних операцій в базі даних;
  • підтримка мов баз даних.

2. У чому полягає суть безпосереднього керування даними у зовнішній пам‘яті?

Як відомо, для збереження даних та роботи з ними, у базі даних потрібно мати в наявності постійні запам‘ятовуючі пристрої (носії інформації), наприклад магнітні диски (жорсткі диски).

Носії інформації потрібні у 2-х випадках:

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

Як правило, система керування базами даних використовує власний механізм роботи з пристроями зовнішньої пам‘яті (зовнішніми запам‘ятовуючими пристроями). Для кожної СКБД характерною є робота з файловою системою того чи іншого пристрою зовнішньої пам‘яті. Користувач не повинен задумуватись над особливостями роботи СКБД на нижньому рівні.

Для забезпечення безпосереднього керування даними у зовнішній пам‘яті сучасні СКБД:

  • мають власну систему найменування об‘єктів;
  • можуть використовувати можливості існуючих файлових систем (запам‘ятовуючих пристроїв);
  • можуть використовувати низькорівневі операції при роботі з зовнішніми запам‘ятовуючими пристроями.

3. Що означає керування буферами оперативної пам‘яті?

Однією з важливих характеристик системи керування базами даних є швидкість обробки інформації в базі даних. Швидкість обробки інформації суттєво залежить від розміру бази даних.

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

4. Що називається транзакцією? У чому полягає суть керування транзакціями?

При роботі з будь-якою базою даних виконується нескінчена послідовність операцій. Якщо послідовність операцій об‘єднана в єдине ціле (з точки зору СКБД), то ця послідовність називається транзакцією.

У цьому випадку важливим є успішне виконання транзакції. Якщо транзакція виконується успішно, то система керування базами даних фіксує всі зміни даних з допомогою інструкції COMMIT. Зміни заносяться у зовнішню пам‘ять.

Якщо хоча б одна з операцій транзакції закінчується невдало, то транзакція вважається невиконаною. У цьому випадку відбувається відкіт транзакції, який ще називається ROLLBACK. При відкоті транзакції база даних повертається у стан, що був до початку виконання транзакції.

5. Для чого потрібне керування транзакціями в базі даних?

Підтримка транзакцій є важливою умовою для логічної цілісності бази даних. Це стосується як однокористувацьких і багатокористувацьких СКБД.

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

6. Що таке серіалізація транзакцій і серійний план транзакцій?

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

Для забезпечення серіалізації транзакцій будується серійний план транзакцій. В ідеальному випадку, при доброму серійному плані транзакцій, користувач не відчує присутність інших транзакцій в базі даних. Можливе тільки невелике уповільнення роботи з базою даних.

транзакція база даних рисунок

Рис. 1. Приклад серіалізації транзакцій у випадку 3-х користувачів

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). Ця мова дозволяє визначати схему даних та маніпулювати цими даними.


Зв’язані теми