Czy ktoś może podać proste (ale nie prostsze niż to możliwe) wyjaśnienie transakcji w odniesieniu do informatyki (nawet jeśli zostało skopiowane z Wikipedii)?
Czy ktoś może podać proste (ale nie prostsze niż to możliwe) wyjaśnienie transakcji w odniesieniu do informatyki (nawet jeśli zostało skopiowane z Wikipedii)?
Odpowiedzi:
Transakcja to jednostka pracy, którą chcesz traktować jako „całość”. Musi się to wydarzyć w całości lub wcale.
Klasycznym przykładem jest przelewanie pieniędzy z jednego konta bankowego na drugie. Aby to zrobić, musisz najpierw wypłacić kwotę z konta źródłowego, a następnie przelać ją na konto docelowe. Operacja musi zakończyć się pełnym sukcesem. Jeśli zatrzymasz się w połowie drogi, pieniądze zostaną utracone, a to jest bardzo złe.
W nowoczesnych bazach danych transakcje robią również inne rzeczy - na przykład zapewniają, że nie masz dostępu do danych, które inna osoba zapisała w połowie drogi. Ale podstawowa idea jest taka sama - transakcje mają na celu zapewnienie, że niezależnie od tego, co się stanie, dane, z którymi pracujesz, będą w rozsądnym stanie . Gwarantują, że NIE dojdzie do sytuacji, w której pieniądze zostaną pobrane z jednego konta, ale nie zostaną wpłacone na inne.
Transakcja to sposób przedstawienia zmiany stanu. Transakcje idealnie mają cztery właściwości, powszechnie znane jako ACID:
Aby uzyskać więcej informacji, zobacz wpis Wikipedii ACID .
Chociaż jest to zwykle stosowane do baz danych, nie musi tak być. (W szczególności zobacz Pamięć transakcyjna oprogramowania ).
Oto proste wyjaśnienie. Musisz przelać 100 dolców z konta A na konto B.Możesz zrobić:
accountA -= 100;
accountB += 100;
lub
accountB += 100;
accountA -= 100;
Jeśli coś pójdzie nie tak między pierwszą a drugą operacją w parze, masz problem - albo zniknęło 100 dolców, albo pojawiły się znikąd.
Transakcja to mechanizm, który pozwala oznaczyć grupę operacji i wykonać je w taki sposób, że albo wszystkie wykonają (zatwierdzenie), albo stan systemu będzie wyglądał tak, jakby w ogóle nie rozpoczęły wykonywania (wycofanie).
beginTransaction;
accountB += 100;
accountA -= 100;
commitTransaction;
prześle 100 dolców lub pozostawi oba konta w stanie początkowym.
„Seria instrukcji dotyczących manipulacji danymi, które muszą albo całkowicie zakończyć się, albo całkowicie zakończyć się niepowodzeniem, pozostawiając bazę danych w stanie spójności”
Transakcja to sekwencja jednej lub więcej operacji SQL, które są traktowane jako jednostka.
W szczególności wydaje się, że każda transakcja przebiega w izolacji, a ponadto, jeśli system zawiedzie, każda transakcja jest wykonywana w całości lub nie w całości.
Koncepcja transakcji jest motywowana dwoma całkowicie niezależnymi koncernami. Jeden dotyczy jednoczesnego dostępu do bazy danych przez wielu klientów, a drugi dotyczy posiadania systemu odpornego na awarie systemu.
Transakcja obsługuje tak zwane właściwości ACID:
http://en.wikipedia.org/wiki/Database_transaction
http://en.wikipedia.org/wiki/ACID
= kwas tomicity, C GODNOŚĆ, że solation, D urability
Jeśli chcesz, aby wiele zasobów transakcyjnych było zaangażowanych w pojedynczą transakcję, będziesz musiał użyć czegoś w rodzaju rozwiązania do zatwierdzania dwufazowego . XA jest dość szeroko obsługiwany.
Sugerowałbym, że definicja „przetwarzania transakcji” byłaby bardziej użyteczna, ponieważ obejmuje transakcje jako pojęcie w informatyce.
Z Wikipedii:
W informatyce przetwarzanie transakcji to przetwarzanie informacji podzielone na indywidualne, niepodzielne operacje, zwane transakcjami. Każda transakcja musi zakończyć się sukcesem lub niepowodzeniem jako całość; nie może pozostać w stanie pośrednim.
http://en.wikipedia.org/wiki/Transaction_processing#Implementations
Oprócz powyższych odpowiedzi należy zauważyć, że przynajmniej w teorii nie ma żadnych ograniczeń co do tego, jakie zasoby są zaangażowane w transakcję.
W większości przypadków jest to tylko baza danych lub wiele odrębnych baz danych, ale można również sobie wyobrazić, że drukarka bierze udział w transakcji i może spowodować, że transakcja się nie powiedzie, na przykład w przypadku zacięcia papieru.
Transakcję można zdefiniować jako zbiór zadań, które są uważane za minimalną jednostkę przetwarzania. Żadnej minimalnej jednostki przetwarzania nie można dalej podzielić.
Główne operacje transakcji to odczyt i zapis.
Wszystkie transakcje muszą zawierać cztery właściwości, które są powszechnie znane jako właściwości ACID w celu zapewnienia dokładności, kompletności i integralności danych.
Myślę, że transakcja jest akcją atomową w odniesieniu do DBMS.
to znaczy, że nie można go oddzielić. tak, w transakcji może istnieć kilka instrukcji do wykonania przez system. ale są związani razem, aby wykonać jedno podstawowe zadanie.
na przykład. musisz przejść przez most (potraktujmy to jako transakcja), a żeby to zrobić, powiedzmy, potrzebujesz 100 kroków. ogólnie rzecz biorąc, tych kroków nie można oddzielić. kiedy wykonasz połowę z nich, masz tylko dwa wyjścia: kontynuuj je wszystkie i wróć do punktu początkowego. wygląda jak wynik transakcji: sukces (zatwierdzenie) i niepowodzenie (wycofanie)
Transakcja jest niepodzielną jednostką przetwarzania danych - Wszystkie transakcje muszą mieć właściwości ACID:
czyli: atomowość, spójność, izolacja i trwała transakcja to wszystko albo nic, ale nie pośrednie (oznacza to, że jeśli przelejesz pieniądze z jednego konta na inne, jedno konto musi tyle stracić, a drugie zyskać tę kwotę, ale jeśli przelewasz pieniądze z jednego konta, a inne jest nadal puste, co nie będzie transakcją)