Udostępnij przez


Transakcje ODBC

Transakcja to jednostka pracy wykonywana jako pojedyncza, atomowa operacja; oznacza to, że operacja kończy się powodzeniem lub niepowodzeniem jako całością. Rozważ na przykład przeniesienie pieniędzy z jednego konta bankowego na inne. Obejmuje to dwa kroki: wycofanie pieniędzy z pierwszego konta i złożenie go w drugim. Ważne jest, aby oba kroki zakończyły się powodzeniem; nie jest dopuszczalne, aby jeden krok zakończył się powodzeniem, a drugi zakończył się niepowodzeniem. Baza danych, która obsługuje transakcje, może to zagwarantować.

Transakcje można wykonać przez zatwierdzanie lub wycofywanie. Po zatwierdzeniu transakcji zmiany wprowadzone w tej transakcji są trwałe. Gdy transakcja zostanie wycofana, wiersze, których dotyczy transakcja, zostaną zwrócone do stanu, w którym były przed rozpoczęciem transakcji. Aby rozszerzyć przykład transferu konta, aplikacja wykonuje jedną instrukcję SQL, aby obciążyć pierwsze konto, i inną instrukcję SQL, aby uznać drugie konto. Jeśli obie instrukcje zakończą się pomyślnie, aplikacja zatwierdzi transakcję. Jeśli jednak żadna z instrukcji nie powiedzie się z jakiegokolwiek powodu, aplikacja wycofa transakcję. W obu przypadkach aplikacja gwarantuje spójny stan na końcu transakcji.

Pojedyncza transakcja może obejmować wiele operacji bazy danych, które występują w różnym czasie. Jeśli inne transakcje miały pełny dostęp do wyników pośrednich, transakcje mogą ingerować między sobą. Załóżmy na przykład, że jedna transakcja wstawia wiersz, druga transakcja odczytuje ten wiersz, a pierwsza transakcja zostaje wycofana. Druga transakcja zawiera teraz dane dla wiersza, który nie istnieje.

Aby rozwiązać ten problem, istnieją różne schematy izolowania transakcji od siebie. Izolacja transakcji jest zwykle implementowana przez blokowanie wierszy, co uniemożliwia użycie więcej niż jednej transakcji w tym samym czasie. W niektórych bazach danych blokowanie wiersza może również blokować inne wiersze.

Dzięki zwiększonej izolacji transakcji zmniejsza się współbieżność lub możliwość używania tych samych danych w tym samym czasie przez dwie transakcje. Aby uzyskać więcej informacji, zobacz Ustawianie poziomu izolacji transakcji.

Ta sekcja zawiera następujące tematy.