Transakcja (informatyka)


Transakcja – zbiór operacji na bazie danych, które stanowią w istocie pewną całość i jako takie powinny być wykonane wszystkie lub żadna z nich[1]. Warunki jakie powinny spełniać transakcje bardziej szczegółowo opisują zasady ACID (atomicity, consistency, isolation, durability – niepodzielność[a], spójność, izolacja, 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:

W systemach bazodanowych istotne jest, aby transakcja trwała jak najkrócej, ponieważ równolegle może być dokonywanych wiele transakcji i część operacji musi zostać wykonana w pewnej kolejności. Każdy etap transakcji jest logowany, dzięki czemu w razie awarii systemu (dzięki zawartości logów) można odtworzyć stan bazy danych sprzed transakcji, która nie została zamknięta.

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:

Transakcje w systemach plików


W przypadku systemu plików (który też jest pewnego rodzaju bazą danych) transakcje mogą być realizowane poprzez wbudowany w system obsługi plików mechanizm księgowania, który gwarantuje stabilność struktury plików, nawet w sytuacji zawieszenia całego 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:

  1. Zapis pliku tymczasowego, w którym znajdują się nowe dane. W przypadku zawieszenia systemu operacyjnego w tej fazie pozostaje nienaruszony stary plik.
  2. Skasowanie starego pliku. W przypadku zawieszenia systemu przed skasowaniem pozostają oba pliki. W przypadku zawieszenia po kasowaniu pozostaje plik tymczasowy z nowymi danymi, które można zapisać we właściwym miejscu po odzyskaniu kontroli nad systemem.
  3. Zmiana nazwy pliku tymczasowego na plik właściwy, która kończy transakcję.

Wynika z tego, że aby końcowy efekt był poprawny, transakcja musi wykonać się w całości albo wcale.

Zobacz też


Uwagi


  1. Niekiedy spotyka się kalkowe tłumaczenie z języka angielskiego: „atomowość” (rzadziej: „atomiczność”).

Przypisy


  1. Glosariusz ITIL wraz ze skrótami . s. 142. [dostęp 2014-09-13].









Kategorie: Bazy danych




Informacje na dzień: 22.12.2020 10:53:01 CET

Źródło: Wikipedia (Autorzy [Historia])    Licencja: CC-BY-SA-3.0

Zmiany: Wszystkie zdjęcia i większość powiązanych z nimi elementów projektu zostały usunięte. Niektóre ikony zostały zastąpione przez FontAwesome-Icons. Niektóre szablony zostały usunięte (np. „Artykuł wymaga rozszerzenia) lub przypisane (np.„ Przypisy ”). Klasy CSS zostały usunięte lub zharmonizowane.
Usunięto linki do Wikipedii, które nie prowadzą do artykułu lub kategorii (takie jak „Redlinki”, „linki do strony edycji”, „linki do portali”). Każde łącze zewnętrzne ma dodatkową ikonę FontAwesome. Oprócz drobnych zmian w projekcie usunięto kontener multimediów, mapy, pola nawigacji, wersje mówione i geomikroformaty.

Proszę zanotować: Ponieważ podana treść jest automatycznie pobierana z Wikipedii w danym momencie, ręczna weryfikacja była i nie jest możliwa. Dlatego LinkFang.org nie gwarantuje dokładności i aktualności pozyskanych treści. Jeśli istnieją informacje, które są obecnie niepoprawne lub mają niedokładny wygląd, prosimy o Skontaktuj się z nami: e-mail.
Zobacz też: Znak firmowy wydawcy & Polityka prywatności.