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

Як вже говорилося у вступі до цієї частини, ця і наступна глави присвячені відновленню і паралельності Дані поняття дуже тісно повязані і складають частини більш загальної теми управління транзакціямиАле з методичної точки зору бажано розглядати ці теми по можливості окремо, тому дана глава в основному присвячена темі відновлення, а паралельність буде розглянута в розділі 16 (однак питання паралельності час від часу розглядаються і в даній главі, особливо в розділі 154)

Відновленняв системі баз даних означає, в першу чергу,

відновлення самої бази даних, тобто повернення бази даних в певний стан, який вважається правильним, після деякого збою, в результаті

якого поточний стан стає неправильним або, принаймні,

досить невизначеним (поняття правильного стану бази даних буде точно сформульовано в наступному розділі) Основний принцип, на якому

будується подібне відновлення, досить простий і може бути виражений одним словом –надмірність(Ця надмірність передбачається на

фізичному рівні З причин, докладно описаним в інших розділах даної книги, таку надмірність, природно, не слід передбачати на логічному

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

Перш ніж перейти до подальшого викладу, необхідно підкреслити, що принципи відновлення (а насправді, і принципи обробки транзакцій в цілому) значною мірою не залежать від того, якою є базова система: реляційної або який-небудь ще (З іншого боку, історично склалася така ситуація, що більша частина теоретичних досліджень в області обробки транзакцій була виконана і продовжує виконуватися саме в реляційному контексті) Потрібно також відзначити, що це вельми обширна область, і ми зможемо познайомити читача тільки з найбільш важливими і основоположними принципами Для більш поглибленого вивчення цієї теми можна звернутися до джерел, зазначеним у списку літератури в кінці цієї глави (зокрема, заслуговує на особливу увагу [1512])

План цієї глави виглядає наступним чином Після короткого введення в розділах 152 і 153 описуються фундаментальні поняття транзакції івідновлення транзакції (Тобто відновлення бази даних після невдалого завершення якої-небудь транзакції) Потім у розділі 154 більш глибоко обговорюється проблема відновлення системи (Після одночасного порушення процесів виконання всіх поточних транзакцій, викликаного аварійним остановом системи) Після цього в розділі 155 коротко розглядається відновленняносіїв(Після якого фізичного відмови зовнішнього пристрою, на якому зберігається база даних, наприклад, через поломку головок дискового накопичувача) Далі в розділі 156 описується винятково важлива проблема двухфазной фіксації транзакцій, а в розділі 157 розглядаються точки збереження У розділі 158 описані відповідні засоби мови SQL Нарешті, в розділі 159 наводяться коротке резюме і кілька заключних зауважень

Ще одне, останнє попереднє зауваження: у всій цій главі передбачається, що мова йде про великої (Що розділяється, багатокористувацької) середовищі бази даних В невеликих (Неподілюваний, однопользовательских) СУБД підтримка відновлення звичайно розвинена слабо або взагалі не передбачена замість цього завдання відновлення в такій системі, як правило, покладається на самого користувача Під цим мається на увазі, що користувач повинен періодично створювати резервні копії бази даних, а в разі відмови повторно вносити необхідні зміни вручну

Джерело: Дейт К Дж, Введення в системи баз даних, 8-е видання: Пер з англ – М: Видавничий дім «Вільямс», 2005 – 1328 с: Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*