Безпосереднє управління даними в зовнішній пам'яті



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

Управління буферами оперативної пам'яті

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

Існує окремий напрямок СУБД, що орієнтований на постійну присутність в оперативній пам'яті всієї БД. Цей напрямок ґрунтується на припущенні, що в майбутньому обсяг оперативної пам'яті комп'ютерів буде настільки великий, що дозволить не турбуватися про буферизацію. Поки ці роботи знаходяться в стадії досліджень.

Управління транзакціями

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

Та властивість, що кожна транзакція починається при цілісному стані БД і залишає цей стан цілісним після свого завершення, робить дуже зручним використання поняття транзакції як одиниці активності користувача стосовно БД. При відповідному керуванні з боку СУБД кожний з користувачів може в принципі відчувати себе єдиним користувачем СУБД.

Журналізація

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

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

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

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

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

Підтримка мов БД

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

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

Перелічимо основні функції СУБД, підтримувані на "мовному" рівні (тобто функції, підтримувані при реалізації інтерфейсу SQL).

Насамперед, мова SQL сполучить засобу SDL і DML, тобто дозволяє визначати схему БД і маніпулювати даними.

Мова SQL містить спеціальні засоби визначення обмежень цілісності БД.

Нарешті, авторизація доступу до об'єктів БД проводиться на основі спеціального набору операторів SQL. Ідея полягає в тому, що для виконання операторів різного виду користувач повинний мати різні повноваження.

 


Дата добавления: 2018-04-15; просмотров: 431; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!