Раздели факултета на два... в действителност включва две операции (INSERT, UPDATE). БД не е консистентна между двете операции 20 служители са преминали в новия факултет, а не са отписани от стария. Една логическа операция (транзакция) не е необходима, ако се извършва единична операция т.е. когато базата данни директно преминава от едно консистентно състояние в друго консистентно състояние.
При обработка на транзакции промени, при които възникват грешки, се анулират преди транзакцията да достигне естествения си край; Следователно, една транзакция се изпълнява изцяло или се анулира напълно. Системният компонент, който реализира този механизъм се нарича transaction manager
13.4. Оператори: BEGIN TRANSACTION – поставя начало на транзакция; COMMIT TRANSACTION сигнализира за успешен край на транзакцията, при което TM прави всички промени постоянни. Това е допустимо, понеже се знае, че БД се намира в ново консистентно състояние; ROLLBACK TRANSACTION сигнализира за неуспешен край на транзакцията. TM знае, че БД се намира в неконсистентно състояние. Всички промени, направени междувременно, се анулират. Така БД се връща в изходното консистентно състояние.
Един реалистичен TM изпраща също така съобщения на потребителя за изхода на операцията. Например, Факултетът е разделен или Факултетът не може да бъде разделен по следните причини: ....
13.5 .Реализация на транзакциите СУБД води журнал (log) за всички детайли на извършващите се промени върху лента или дисково устройство. Също така и за стойностите преди и след промените; при анулиране системата търси съответната входна точка в журнала и възстановява предишното състояние; СУБД трябва също така да гарантира, че отделните оператори са атомарни. Например, при грешка по време на INSERT системата не променя БД.
13.5. Типична структура на програма, използваща транзакции 1ва транзакция2ра транзакция (canceled)3та транзакцияBEGIN TRANSACTION BEGIN TRANSACTION BEGIN TRANSACTION COMMIT COMMIT ROLLBACK Край на програма
13.6. Свойства на транзакциите атомарност (атомичност) транзакциите се разглеждат като неразложими; консистентност (съгласуваност) трансформират БД от едно консистентно състояние в ново консистентно състояние; изолираност отделните транзакции са изолирани една от друга; трайност щом като една транзакция веднъж успее, направените от нея промени се запазват, дори ако има последващ срив в системата.
13.7. Конкурентност Възстановяването и конкурентността са тясно свързани и са част от общата тема за обработка на транзакциите. Конкурентност: СУБД обикновено разрешава едновременен достъп на повече транзакции към едни и същи данни.
13.8. Възстановяване на системата Системата трябва да бъде подготвена не само за възстановяване при локални, но и при глобални пропадания: ◦ Локални – засягат само транзакция, в която са възникнали; ◦ Глобални – засягат всички активни в момента транзакции и се разделят на две категории: ◦ Системни Наричат се soft crash ◦ Медийни Наричат се hard crash.
При системните откази се губи съдържанието на оперативната памет (буферите на БД). Две възможности: Ø Кандидати за undo: o Не е ясно състоянието им в момента на пропадането; o Такива транзакции не могат да бъдат завършени успешно; o При рестарт на системата трябва да бъдат отменени.
Ø Кандидати за redo: o В момента на пропадането транзакциите са завършили успешно; o Резултатите се намират в буферите, но не са направени перманентни – т.е. записани върху дисковите устройства; o При рестарт системата ги изпълнява автоматично.
13.9. Възстановяване на медията Този вид възстановяване обикновено включва възстановяване на БД от архив; Задължително водене на архивни копия на БД.
БЛАГОДАРЯ ЗА ВНИМАНИЕТО! Изготвил: Теодора Некезова фак.номер: 1101181015
Сподели с приятели: |