Трансакција (базе података)Трансакција над базом података се састоји од јединице рада извршене у оквиру система за управљање базама података (или сличног система), такве да се третира на кохерентан и поуздан начин, независна од других трансакција. Трансакције над базама података имају две главне сврхе:
Трансакција над базом података по дефиницији мора да буде атомична (енгл. atomic), конзистентна (енгл. consistent), изолована (енгл. isolated) и трајна (енгл. durable).[1] Скраћеница која означава овај скуп особина је ACID (од почетних слова енглеских речи за ове четири особине). Трансакције функционишу по принципу све или ништа, што значи да ће се јединица рада која чини трансакцију или у потпуности извршити над базом података или неће имати никаквог ефекта. Штавише, систем мора да изолује сваку трансакцију од осталих трансакција, резултати морају да буду у складу са постојећим ограничењима у бази података, и трансакције које су успешно извршене морају да буду забележене у трајној складишној меморији. СврхаБазе података и други системи за складиштење података код којих је интегритет података императив често имају могућности да раде са трансакцијама како би очували тај интегритет. Појединачна трансакција се састоји од једне или више независних јединица рада, од којих свака чита и(ли) записује податке у или из базе података (или неко друго складиште података). Када се ово дешава, обично је важно да сва обрада података остави складиште података у конзистентном стању. Пример који илуструје коришћење трансакција је пренос новца са једног банковног рачуна на други. Приликом преноса новца долази до две одвојене акције:
Уколико се догоди да услед неке грешке у систему (прекид везе, софтверска грешка, нестанак струје...) буде извршена само једна од ове две акције, долази до неприхватљиве ситуације. Или ће новац бити уклоњен са првог рачуна а неће лећи на други рачун (клијент на губитку), или ће новац лећи на други рачун а неће бити уклоњен са првог рачуна (банка на губитку). Да би се овакве нежељене ситуације избегле, користи се трансакциони систем који ће се постарати да или обе акције успеју или да ниједна не буде извршена. Трансакционе базе податакаВећина модерних система за управљање релационим базама података спада у категорију база података које подржавају трансакције: трансакционе базе података. У систему базе података, трансакција може да се састоји од једног или више исказа за манипулацију подацима или упита, од којих сваки чита и(ли) пише у базу података. Корисницима система је конзистентност и интегритет података од изузетног значаја. Једноставна трансакција се обично задаје систему терминима језика као што је SQL обавијеним у трансакцију, по шаблону који наликује следећем:
Ако није дошло до грешака у току извршавања трансакције онда систем комитује трансакцију. Операција комитовања трансакције примењује све промене извршене на подацима у току трајања трансакције, и промене чини трајним у бази података. Ако је дошло до грешке приликом извршавања трансакције, или ако корисник захтева операцију ролбековања, све измене на подацима до којих је дошло у току трајања трансакције се поништавају. Није могуће да се трансакција делимично комитује, јер би то оставило систем у неконзистентном стању. Интерно, вишекорисничке базе података складиште и процесирају трансакције, често користећи идентификатор трансакције (XID). SQLSQL је инхерентно трансакцион, и нова трансакција аутоматски започиње чим се претходна оконча. Неки системи база података проширују SQL наредбом Резултат је да ће свака измена начињена након ове команде остати невидљива осталим корисницима базе података све до извршавања наредбе Неки системи база података дозвољавају синониме Дистрибуиране трансакцијеСистеми база података имплементирају дистрибуиране трансакције као трансакције над више апликација или рачунара. Дистрибуирана трансакција осигурава ACID својства над више система или складишта података и може да укључује системе као што су базе података, фајлсистеме, системе за слање порука и друге апликације. У дистрибуираној трансакцији се сервис координације стара да сви делови трансакције буду извршени над свим потребним системима. Као и код трансакције над базом података, ако било који од делова трансакције не буде извршен, цела трансакција се поништава на свим системима. Референце
Даља литература
|
Portal di Ensiklopedia Dunia