Transakcje grupują zestaw zadań w jedną jednostkę wykonawczą. Każda transakcja rozpoczyna się od określonego zadania i kończy się, gdy wszystkie zadania w grupie zostaną pomyślnie zakończone. Jeśli którekolwiek z zadań zakończy się niepowodzeniem, transakcja zakończy się niepowodzeniem. Dlatego transakcja ma tylko dwa wyniki: powodzenie Lub awaria .
Przykład transakcji przelewu 150 dolarów z konta A na konto B:
1. read(A) 2. A:= A – 150 3. write(A) 4. read(B) 5. B:= B + 150 6. write(B)>
Niekompletne kroki skutkują niepowodzeniem transakcji. Transakcja bazy danych z definicji musi być niepodzielna, spójna, izolowana i trwała.
Są to powszechnie znane tzw KWAS nieruchomości. Te właściwości mogą zapewnić równoczesne wykonanie wielu transakcji bez konfliktów.
Właściwości transakcji
- Atomowość: Wynik transakcji może zakończyć się całkowitym sukcesem lub całkowitym niepowodzeniem. Cała transakcja musi zostać wycofana, jeśli jedna jej część zakończy się niepowodzeniem.
- Konsystencja: Transakcje zachowują ograniczenia integralności, przenosząc bazę danych z jednego prawidłowego stanu do drugiego.
- Izolacja: Jednoczesne transakcje są od siebie izolowane, co zapewnia dokładność danych.
- Trwałość: Po zatwierdzeniu transakcji jej modyfikacje obowiązują nawet w przypadku awarii systemu.
Jak zaimplementować polecenie kontroli transakcji przy użyciu SQL?
Poniższe polecenia służą do kontrolowania transakcji. Należy zauważyć, że tych instrukcji nie można używać podczas tworzenia tabel i są one używane wyłącznie z poleceniami DML, takimi jak: WSTAWIĆ , AKTUALIZACJA , I USUWAĆ .
ROZPOCZNIJ TRANSAKCJĘ Polecenie
Wskazuje punkt początkowy transakcji jawnej lub lokalnej.
Składnia:
ROZPOCZNIJ TRANSAKCJĘ nazwa_transakcji ;
USTAW TRANSAKCJĘ Polecenie
Wartości właściwości bieżącej transakcji, takie jak poziom izolacji transakcji i tryb dostępu, ustawia się za pomocą instrukcji SET TRANSACTION w MySQL.
Składnia:
USTAW TRANSAKCJĘ [ CZYTAJ ZAPISZ | TYLKO CZYTAĆ ];
Polecenie ZATWIERDŹ
Jeśli wszystko jest w porządku ze wszystkimi wyciągami w ramach jednej transakcji, wszystkie zmiany są rejestrowane łącznie w bazie danych tzw zaangażowany . Polecenie COMMIT zapisuje w bazie danych wszystkie transakcje od ostatniego polecenia COMMIT lub ROLLBACK.
tablice Java
Składnia:
POPEŁNIAĆ;
Przykład:
Przykładowa tabela 1

wyjście
Poniżej znajduje się przykład, który usuwałby z tabeli te rekordy, które mają wiek = 20, a następnie zatwierdzał zmiany w bazie danych.
Zapytanie
DELETE FROM Student WHERE AGE = 20; COMMIT;>
Wyjście
Zatem dwa wiersze z tabeli zostaną usunięte, a instrukcja SELECT będzie wyglądać następująco:
wyjątek rzuca java

wyjście
POWRÓT, polecenie
Jeśli wystąpi jakikolwiek błąd w którejkolwiek z grupowanych instrukcji SQL, należy przerwać wszystkie zmiany. Proces odwracania zmian nazywa się wycofanie . Tego polecenia można użyć tylko do cofnięcia transakcji od chwili wydania ostatniego polecenia COMMIT lub ROLLBACK.
Składnia polecenia ROLLBACK:
WYCOFANIE;
Przykład:
Z powyższego przykładu Przykładowa tabela 1 ,
Usuń te rekordy z tabeli, które mają wiek = 20, a następnie COFNIJ zmiany w bazie danych.
Zapytanie
DELETE FROM Student WHERE AGE = 20; ROLLBACK;>
Wyjście

wyjście
Polecenie ZAPISZPUNKT
PUNKT ZAPISU tworzy punkty w obrębie grup transakcji, w których należy WYCOFAĆ.
SAVEPOINT to punkt transakcji, w którym można cofnąć transakcję do określonego punktu bez wycofywania całej transakcji.
Składnia polecenia Zapisz punkt:
PUNKT ZAPISU NAZWA PUNKTU ZAPISU;
To polecenie jest używane tylko przy tworzeniu SAVEPOINT wśród wszystkich transakcji.
Ogólnie rzecz biorąc, ROLLBACK służy do cofania grupy transakcji.
Składnia przywracania polecenia Savepoint:
POWRÓT DO SAVEPOINT_NAME;
zastąpienie metody Java
w dowolnym momencie możesz WYCOFĄĆ się do dowolnego PUNKTU ZAPISU, aby przywrócić odpowiednie dane do pierwotnego stanu.
Przykład:
Z powyższego przykładu Przykładowa tabela 1 , Usuń te rekordy z tabeli, które mają wiek = 20, a następnie COFNIJ zmiany w bazie danych, zachowując punkty zapisu.
Zapytanie
SAVEPOINT SP1; //Savepoint created. DELETE FROM Student WHERE AGE = 20; //deleted SAVEPOINT SP2; //Savepoint created.>
Tutaj SP1 jest pierwszym SAVEPOINT utworzonym przed usunięciem. W tym przykładzie miało miejsce jedno usunięcie.
Po usunięciu ponownie tworzony jest SAVEPOINT SP2.
Wyjście

wyjście
Nastąpiło usunięcie, załóżmy, że zmieniłeś zdanie i zdecydowałeś się WYCOFAĆ do punktu SAVEPOINT, który zidentyfikowałeś jako SP1, który jest przed usunięciem.
usunięcie jest cofane przez to oświadczenie.
Zapytanie
ROLLBACK TO SP1; //Rollback completed>
Wyjście

wyjście
ZWOLNIJ PUNKT ZAPISANIA Polecenie
To polecenie służy do usuwania utworzonego punktu SAVEPOINT.
Składnia:
ZWOLNIJ PUNKT SAVEPOINT SAVEPOINT_NAME
Po zwolnieniu SAVEPOINT nie można już używać polecenia ROLLBACK do cofania transakcji wykonanych od ostatniego SAVEPOINT.
Służy do inicjowania transakcji w bazie danych i służy do określenia charakterystyki następującej po niej transakcji.
Wniosek
- Instrukcje SQL są grupowane za pomocą transakcji.
- Obiecują, że albo zostaną wprowadzone wszystkie zmiany, albo żadne.
- Niezawodność zapewniają cechy ACID, takie jak atomowość, konsystencja, izolacja i trwałość.
- Rozpocznij transakcję za pomocą BEGIN TRANSACTION i zakończ ją za pomocą COMMIT lub ROLLBACK, aby zakończyć lub cofnąć zmiany.