Transakcja (informatyka): Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
źródła/przypisy, drobne redakcyjne
Linia 1:
== Transakcje w bazach danych ==
{{Dopracować|transakcje w systemach plikowych}}
'''Transakcja''' - zbiór operacji na [[baza danych|bazie danych]], które stanowią w istocie pewną całość i jako takie powinny być wykonane wszystkie lub żadna z nich<ref>{{Cytuj stronę | url = http://www.itil-officialsite.com/nmsruntime/saveasdialog.aspx?lID=1289&sID=242 | tytuł = Glosariusz ITIL wraz ze skrótami | opublikowany = | strony = 142 | data dostępu = 2014-09-13}}</ref>. Warunki jakie powinny spełniać transakcje bardziej szczegółowo opisują zasady '''[[ACID]]''' (''Atomicity'', ''Consistency'', ''Isolation'', ''Durability'' - Atomowość, Spójność, Izolacja, [[trwałość (bazy danych)|Trwałość]]).
==Transakcje w bazach danych==
'''Transakcja''' - zbiór operacji na [[baza danych|bazie danych]], które stanowią w istocie pewną całość i jako takie powinny być wykonane wszystkie lub żadna z nich. Warunki jakie powinny spełniać transakcje bardziej szczegółowo opisują zasady '''[[ACID]]''' (Atomicity, Consistency, Isolation, Durability - Atomowość, Spójność, Izolacja, [[trwałość (bazy danych)|Trwałość]]).
 
Przykładem transakcji może być transakcja bankowa jaką jest przelew. Muszą tu zostać dokonane 2 operacje - zabranie pieniędzy z jednego konta oraz dopisanie ich do drugiego. W przypadku niepowodzenia żadna z tych operacji nie powinna być zatwierdzona, gdyż zajście tylko jednej powodowałoby nieprawidłowości w bazie danych (pojawienie się lub zniknięcie pieniędzy).
 
Transakcja składa się zawsze z 3 etapów:
Linia 14 ⟶ 13:
Część systemów baz danych umożliwia używanie '''punktów pośrednich''' (ang. ''save point''), są to zapamiętane w systemie etapy transakcji, do których w razie wystąpienia błędu można się wycofać, bez konieczności anulowania wszystkich wykonanych działań.
 
=== Transakcje w SQL ===
 
W systemach baz danych realizujących standard [[SQL]] następujące polecenia dotyczą transakcji:
 
* <tt>BEGIN</tt> lub <tt>BEGIN WORK</tt> - rozpoczęcie transakcji;
* <tt>COMMIT</tt> - zatwierdzenie zmian wykonanych w obrębie transakcji;
* <tt>ROLLBACK</tt> - odrzucenie zmian wykonanych w obrębie transakcji;
 
* <tt>SAVEPOINT ''nazwa''</tt> - zdefiniowanie punktu pośredniego o określonej nazwie;
* <tt>RELEASE SAVEPOINT ''nazwa''</tt> - skasowanie punktu pośredniego (nie wpływa w żaden sposób na stan transakcji);
* <tt>ROLLBACK TO SAVEPOINT ''nazwa''</tt> - wycofanie transakcji do stanu zapamiętanego w podanym punkcie pośrednim;.
 
== Transakcje w systemach plików ==
W przypadku [[system plików|systemu plików]] (który też jest pewnego rodzaju bazą danych) transakcje mogą być realizowane poprzez wbudowany w system obsługi [[plik|plików]]ów mechanizm [[Księgowanie (informatyka)|księgowania]], który gwarantuje stabilność struktury plików, nawet w sytuacji zawieszenia całego [[system operacyjny|systemu operacyjnego]]. Sam zapis do plików nie jest najczęściej wykonywany transakcyjnie, gdyż byłoby to zbyt kosztowne rozwiązanie. Istnieją jednak metody transakcyjnego zapisu danych do systemu plików.
 
Przykład prostej procedury transakcyjnej w systemach plikowych:
Linia 35 ⟶ 33:
Wynika z tego, że aby końcowy efekt był poprawny, transakcja musi wykonać się w całości albo wcale.
 
== Zobacz też ==
* [[operacja atomowa]]
 
{{Przypisy}}
 
[[Kategoria:Bazy danych]]