Zarządzanie transakcjami w DBMS: Jakie są właściwości ACID?

Co to jest transakcja bazy danych?

A Transakcja w bazie danych jest logiczną jednostką przetwarzania w systemie DBMS, która obejmuje jedną lub więcej operacji dostępu do bazy danych. W skrócie, transakcje bazy danych reprezentują rzeczywiste zdarzenia dowolnego przedsiębiorstwa.

Wszystkie typy operacji dostępu do bazy danych, które są przeprowadzane pomiędzy początkowymi i końcowymi poleceniami transakcji, są uważane za pojedynczą logiczną transakcję w DBMS. Podczas transakcji baza danych jest niespójna. Dopiero po zatwierdzeniu bazy danych stan zmienia się z jednego spójnego stanu na inny.

Transakcja w bazie danych
Transakcja w bazie danych

Fakty o transakcjach w bazie danych

  • Transakcja to jednostka programowa, której wykonanie może, ale nie musi, zmienić zawartość bazy danych.
  • Koncepcja transakcji w systemie DBMS jest realizowana jako pojedyncza jednostka.
  • Jeśli operacje na bazie danych nie powodują jej aktualizacji, a jedynie pobierają dane, ten typ transakcji nazywa się transakcją tylko do odczytu.
  • Pomyślna transakcja może zmienić bazę danych z jednego STANU SPÓJNEGO na inny
  • Transakcje DBMS muszą być atomowe, spójne, odizolowane i trwałe
  • Jeśli baza danych była w niespójnym stanie przed transakcją, pozostanie w niespójnym stanie po transakcji.

Dlaczego potrzebujesz współbieżności w transakcjach?

Baza danych jest współdzielonym zasobem, do którego można uzyskać dostęp. Jest używany przez wielu użytkowników i wielu procesów jednocześnie. Na przykład system bankowy, systemy rezerwacji kolejowej i lotniczej, monitorowanie giełdy, zapasy supermarketów i kasy itp.

Brak zarządzania współbieżnym dostępem może powodować problemy takie jak:

  • Awaria sprzętu i awarie systemu
  • Jednoczesna realizacja tej samej transakcji, impaslub niska wydajność

Stany transakcji

Poniżej wymieniono różne stany koncepcji transakcji w systemie DBMS:

Miasto Typy transakcji
Stan aktywny Transakcja wchodzi w stan aktywny, gdy rozpoczyna się proces wykonywania. Podczas tego stanu można wykonywać operacje odczytu lub zapisu.
Częściowo zaangażowany Po zakończeniu transakcji transakcja przechodzi w stan częściowo zatwierdzony.
Stan zaangażowany Kiedy transakcja jest zatwierdzona, oznacza to, że została już pomyślnie zakończona. Co więcej, wszystkie jego zmiany są trwale rejestrowane w bazie danych.
Upadły stan Transakcję uznaje się za nieudaną, jeśli którakolwiek z kontroli zakończy się niepowodzeniem lub jeśli transakcja zostanie przerwana, gdy jest w stanie aktywnym.
Stan zakończony Stan transakcji osiąga stan zakończony, gdy pewne transakcje opuszczające system nie mogą zostać ponownie uruchomione.
Schemat przejścia między stanami
Diagram przejścia stanu dla transakcji bazy danych

Przestudiujmy A diagram przejść stanów który podkreśla, w jaki sposób transakcja przemieszcza się pomiędzy tymi różnymi stanami.

  1. Gdy transakcja stwierdzi wykonanie, staje się aktywna. Może wydać operację READ lub WRITE.
  2. Po zakończeniu operacji ODCZYTU i ZAPISU transakcja przechodzi w stan częściowo zatwierdzony.
  3. Następnie niektóre protokoły odzyskiwania muszą zapewniać, że awaria systemu nie spowoduje braku możliwości trwałego zarejestrowania zmian w transakcji. Jeśli ta kontrola zakończy się sukcesem, transakcja zostaje zatwierdzona i przechodzi w stan zatwierdzony.
  4. Jeśli czek zakończy się niepowodzeniem, transakcja przechodzi do stanu Niepowodzenie.
  5. Jeśli transakcja zostanie przerwana, gdy jest w stanie aktywnym, przechodzi do stanu nieudanego. Transakcja powinna zostać wycofana, aby cofnąć efekt operacji zapisu w bazie danych.
  6. Stan zakończony oznacza, że ​​transakcja opuszcza system.

Jakie są właściwości kwasu?

Właściwości kwasu służą do utrzymania integralności bazy danych podczas przetwarzania transakcji. ACID w DBMS oznacza Atomiczność, Cciągłość, Isolacja i Dtrwałość.

  • AtomLodowość: Transakcja jest pojedynczą jednostką operacji. Albo wykonujesz ją w całości, albo wcale. Nie może być częściowego wykonania.
  • Konsystencja: Po wykonaniu transakcji powinna ona przejść z jednego spójnego stanu do drugiego.
  • Izolacja: Transakcja powinna być wykonywana w izolacji od innych transakcji (bez blokad). Podczas jednoczesnego wykonywania transakcji, pośrednie wyniki transakcji z jednocześnie wykonywanych transakcji nie powinny być udostępniane sobie nawzajem. (Poziom 0,1,2,3)
  • Trwałość:· Po pomyślnym zakończeniu transakcji zmiany w bazie danych powinny się utrwalić. Nawet w przypadku awarii systemu.

Właściwość ACID w DBMS na przykładzie

Poniżej znajduje się przykład właściwości ACID w DBMS:

Transaction 1: Begin X=X+50, Y = Y-50 END
Transaction 2: Begin X=1.1*X, Y=1.1*Y END

Transakcja 1 polega na przeniesieniu 50 USD z konta X na konto Y.

Transakcja 2 polega na zasileniu każdego rachunku odsetkami w wysokości 10%.

Jeżeli obie transakcje zostaną złożone łącznie, nie ma gwarancji, że Transakcja 1 zostanie zrealizowana przed Transakcją 2 i odwrotnie. Niezależnie od kolejności, wynik musi być taki, jak gdyby transakcje odbywały się sekwencyjnie, jedna po drugiej.

Rodzaje transakcji

W oparciu o obszary zastosowań

  • Niedystrybuowane vs. dystrybuowane
  • Transakcje kompensacyjne
  • Termin transakcji
  • On-line vs. wsadowo

Na podstawie działań

  • Dwustopniowy
  • ograniczony
  • Model działania

Oparty na strukturze

  • Transakcje płaskie lub proste: składają się z sekwencji operacji pierwotnych wykonywanych pomiędzy operacją początkową i końcową.
  • Transakcje zagnieżdżone: transakcja zawierająca inne transakcje.
  • Workflow

Co to jest harmonogram?

Harmonogram to proces tworzący pojedynczą grupę wielu równoległych transakcji i wykonujący je jedna po drugiej. Powinien zachować kolejność, w jakiej instrukcje pojawiają się w każdej transakcji. Jeżeli dwie transakcje są wykonywane w tym samym czasie, wynik jednej transakcji może mieć wpływ na wynik drugiej.

Przykład

Initial Product Quantity is 10
Transaction 1: Update Product Quantity to 50
Transaction 2: Read Product Quantity

Jeżeli Transakcja 2 zostanie wykonana przed Transakcją 1, odczytana zostanie nieaktualna informacja o ilości towaru. Dlatego potrzebne są harmonogramy.

Równoległe wykonywanie w bazie danych jest nieuniknione. Jednak równoległe wykonywanie jest dozwolone, gdy istnieje relacja równoważności pomiędzy jednocześnie wykonywanymi transakcjami. Ta równoważność jest 3 typów.

RÓWNOWAŻNOŚĆ WYNIKÓW:

Jeśli dwa harmonogramy wyświetlają ten sam wynik po wykonaniu, nazywa się to harmonogramem równoważnym wynikowi. Mogą one oferować ten sam wynik dla pewnej wartości i różne wyniki dla innego zestawu wartości. Na przykład jedna transakcja aktualizuje ilość produktu, podczas gdy inna aktualizuje dane klienta.

Wyświetl równoważność

Równoważność widoku występuje, gdy transakcja w obu harmonogramach wykonuje podobną akcję. Na przykład jedna transakcja wstawia szczegóły produktu do tabeli produktu, podczas gdy inna transakcja wstawia szczegóły produktu do tabeli archiwum. Transakcja jest taka sama, ale tabele są różne.

KONFLIKT Równoważność

W tym przypadku dwie transakcje aktualizują/wyświetlają ten sam zestaw danych. Występuje konflikt między transakcjami, ponieważ kolejność wykonania będzie miała wpływ na wynik.

Co to jest serializowalność?

Serializowalność to proces wyszukiwania współbieżnego harmonogramu, którego dane wyjściowe są równe harmonogramowi szeregowemu, w którym transakcje są wykonywane jedna po drugiej. W zależności od rodzaju harmonogramów istnieją dwa typy serializacji:

  • Konflikt
  • Zobacz

Podsumowanie

  • Zarządzanie transakcjami to logiczna jednostka przetwarzania w systemie DBMS obejmująca jedną lub więcej operacji dostępu do bazy danych
  • Jest to transakcja będąca jednostką programu, której wykonanie może, ale nie musi, zmienić zawartość bazy danych.
  • Brak zarządzania współbieżnym dostępem może powodować problemy, takie jak awaria sprzętu i awarie systemu.
  • Aktywne, Częściowo zaangażowane, Zakończone, Nieudane i Zakończone to ważne stany transakcji.
  • Pełna forma ACID Properties w DBMS is AtomIlność, spójność, izolacja i trwałość
  • Trzy typy transakcji DBMS to Baza na obszarach zastosowań, działaniu i strukturze.
  • Harmonogram to proces tworzący pojedynczą grupę wielu równoległych transakcji i wykonujący je jedna po drugiej.
  • Serializowalność to proces wyszukiwania współbieżnego harmonogramu, którego wynik jest równy harmonogramowi szeregowemu, w którym transakcje są wykonywane jedna po drugiej.