From Wikipedia, the free encyclopedia
Трансакција над базом података се састоји од јединице рада извршене у оквиру система за управљање базама података (или сличног система), такве да се третира на кохерентан и поуздан начин, независна од других трансакција. Трансакције над базама података имају две главне сврхе:
Трансакција над базом података по дефиницији мора да буде атомична (енгл. ), конзистентна (енгл. ), изолована (енгл. ) и трајна (енгл. ).[1] Скраћеница која означава овај скуп особина је (од почетних слова енглеских речи за ове четири особине).
Трансакције функционишу по принципу све или ништа, што значи да ће се јединица рада која чини трансакцију или у потпуности извршити над базом података или неће имати никаквог ефекта. Штавише, систем мора да изолује сваку трансакцију од осталих трансакција, резултати морају да буду у складу са постојећим ограничењима у бази података, и трансакције које су успешно извршене морају да буду забележене у трајној складишној меморији.
Базе података и други системи за складиштење података код којих је интегритет података императив често имају могућности да раде са трансакцијама како би очували тај интегритет. Појединачна трансакција се састоји од једне или више независних јединица рада, од којих свака чита и(ли) записује податке у или из базе података (или неко друго складиште података). Када се ово дешава, обично је важно да сва обрада података остави складиште података у конзистентном стању.
Пример који илуструје коришћење трансакција је пренос новца са једног банковног рачуна на други. Приликом преноса новца долази до две одвојене акције:
Уколико се догоди да услед неке грешке у систему (прекид везе, софтверска грешка, нестанак струје...) буде извршена само једна од ове две акције, долази до неприхватљиве ситуације. Или ће новац бити уклоњен са првог рачуна а неће лећи на други рачун (клијент на губитку), или ће новац лећи на други рачун а неће бити уклоњен са првог рачуна (банка на губитку). Да би се овакве нежељене ситуације избегле, користи се трансакциони систем који ће се постарати да или обе акције успеју или да ниједна не буде извршена.
Већина модерних система за управљање релационим базама података спада у категорију база података које подржавају трансакције: трансакционе базе података.
У систему базе података, трансакција може да се састоји од једног или више исказа за манипулацију подацима или упита, од којих сваки чита и(ли) пише у базу података. Корисницима система је конзистентност и интегритет података од изузетног значаја. Једноставна трансакција се обично задаје систему терминима језика као што је обавијеним у трансакцију, по шаблону који наликује следећем:
Ако није дошло до грешака у току извршавања трансакције онда систем комитује трансакцију. Операција комитовања трансакције примењује све промене извршене на подацима у току трајања трансакције, и промене чини трајним у бази података. Ако је дошло до грешке приликом извршавања трансакције, или ако корисник захтева операцију ролбековања, све измене на подацима до којих је дошло у току трајања трансакције се поништавају. Није могуће да се трансакција делимично комитује, јер би то оставило систем у неконзистентном стању.
Интерно, вишекорисничке базе података складиште и процесирају трансакције, често користећи идентификатор трансакције ().
је инхерентно трансакцион, и нова трансакција аутоматски започиње чим се претходна оконча. Неки системи база података проширују наредбом START TRANSACTION
који означава почетак трансакције и деактивира опцију аутоматског комитовања.
Резултат је да ће свака измена начињена након ове команде остати невидљива осталим корисницима базе података све до извршавања наредбе COMMIT
. Може да буде извршена и наредба ROLLBACK
, која ће поништити све измене начињене након завршетка претходне трансакције. И COMMIT
и ROLLBACK
окончавају трансакцију и започињу нову. Ако аутомаатско комитовање буде онемогућено коришћењем наредбе START TRANSACTION
, оно ће често бити поново омогућено након завршетка трансакције.
Неки системи база података дозвољавају синониме BEGIN
, BEGIN WORK
и BEGIN TRANSACTION
, и могу да имају и друге доступне опције.
Системи база података имплементирају дистрибуиране трансакције као трансакције над више апликација или рачунара. Дистрибуирана трансакција осигурава својства над више система или складишта података и може да укључује системе као што су базе података, фајлсистеме, системе за слање порука и друге апликације. У дистрибуираној трансакцији се сервис координације стара да сви делови трансакције буду извршени над свим потребним системима. Као и код трансакције над базом података, ако било који од делова трансакције не буде извршен, цела трансакција се поништава на свим системима.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.