close

KWAS

Skocz do nawigacji Skocz do wyszukiwania

W kontekście baz danych ACID wywodzi się od angielskiego akronimu Atomicity , Consistency , Isolation i Durability ( A tomicity , Consistency , I solamento and Durability ) i wskazuje logiczne właściwości, które muszą mieć transakcje .

Opis

Aby transakcje działały poprawnie na danych, mechanizmy je implementujące muszą spełniać te cztery właściwości:

  • Atomowy : proces musi być podzielny na skończoną liczbę niepodzielnych jednostek, zwanych transakcjami . Wykonanie transakcji musi zatem z definicji być całkowite lub zerowe, a częściowe egzekucje nie są dozwolone; z drugiej strony proces, nawet częściowy, ponieważ zbiór transakcji może nie być elementarny.
  • Spójny : baza danych przestrzega ograniczeń integralności , zarówno na początku, jak i na końcu transakcji. Nie może być żadnych sprzeczności ( niespójności danych ) między danymi przechowywanymi w DB;
  • Izolowana : każda transakcja musi być wykonywana w sposób odizolowany i niezależny od innych transakcji, ewentualna awaria jednej transakcji nie może kolidować z innymi trwającymi transakcjami;
  • Durable : zwana także trwałością , odnosi się do faktu, że gdy transakcja zażąda wykonania pracy związanej z zatwierdzeniem , wprowadzone zmiany nigdy nie mogą zostać utracone. Aby uniknąć utraty danych w wyniku awarii w czasie pomiędzy momentem, w którym baza danych podejmuje się zapisania zmian, a momentem, w którym faktycznie je zapisuje, prowadzone są zapisy logów, w których odnotowywane są wszystkie operacje na DB.

W systemach DBMS transakcje są przetwarzane przez przetwarzanie transakcyjne . Zapytanie (tj. zapytanie do bazy danych) i inne akcje są pogrupowane w transakcję, która musi być wykonana niepodzielnie , w oderwaniu od innych i ewentualnie obejmująca trwałą modyfikację bazy danych. Takie zachowanie zapewnia

  • Concurrency Control Manager lub Private WorkSpace gwarantujący atomowość i izolację
  • Logowanie / Recovery Manager , który zapewnia trwałość i spójność.

Izolacja

Istnieją cztery poziomy izolacji:

  1. przeczytaj bez zobowiązań :
    • umożliwia transakcje tylko do odczytu, bez blokowania danych do odczytu
    • transakcja może odczytać brudne dane , ponieważ może zniknąć, jeśli transakcja, która ją wygenerowała, zostanie przerwana
    Przykłady:
    T1 aktualizuje wiersz r1
    * T2 uzyskuje dostęp do r1
    * T1 kończy się wycofaniem
    * T2 uzyskał dostęp do danych, które nigdy nie istniały
  2. przeczytaj popełnione:
    • przewiduje natychmiastowe udostępnienie danych w czytaniu, opóźniając te w formie pisemnej
    • niepowtarzalne odczyty w ramach tej samej transakcji
  3. powtarzalny odczyt:
    • zarówno odczyt, jak i zapis danych są blokowane, ale tylko w krotkach z danej tabeli
    • generuje zjawisko duchów (fantomów)
  4. serializowalny:
    Mogłoby to zagwarantować rzeczywistą serializację kodu poprzez zablokowanie dostępu do danych tabel, jednak są to rozwiązania zbyt nieefektywne do zastosowania w krytycznych aplikacjach, w rzeczywistości tryb serializacji ogranicza się do unikania zjawisk badanych dla najniższych poziomów izolacji.

Menedżer kontroli współbieżności lub Private WorkSpace

Transakcja wprowadza zmiany w kopii zasobu bazy danych. Jeśli nie zakończy się pomyślnie, kopia zostanie zniszczona, w przeciwnym razie zmiany wprowadzone na kopii są trwałe poprzez operację zatwierdzenia. System gwarantuje w ten sposób swoją atomowość . Transakcje muszą być wykonywane w oderwaniu od siebie, ale często wiele transakcji jest wykonywanych jednocześnie w tym samym systemie. Menedżer kontroli współbieżności upewnia się, że poszczególne działania różnych transakcji są wykonywane w kolejności, która nie koliduje ze sobą ( izolacja ). Menedżer kontroli współbieżności realizowany jest za pomocą dwóch prymitywnych instrukcji:

  • lock , instrukcja, za pomocą której stwierdza się, że zasób jest blokowany przez określoną transakcję;
  • unlock , instrukcja, za pomocą której stwierdza się, że zasób został zwolniony przez określoną transakcję.

Seria blokad jest przechowywana w tabeli blokad (specyficzna sekcja DBMS). Menedżer kontroli współbieżności ma również za zadanie rozwiązywanie zakleszczeń spowodowanych blokadami poprzez przerwanie jednej lub więcej transakcji. Aby zapobiec blokadom i lepiej zarządzać transakcjami, wprowadzono koncepcję harmonogramu. Scheduler ma za zadanie zagwarantować izolację, akceptację transakcji i nadanie jej unikalnego identyfikatora, prosząc menedżera bufora DBMS o odczyt/zapis do bazy danych zgodnie z określoną sekwencją.

Logowanie / Recovery Manager

Aby zapewnić trwałość danych bazy danych nawet w przypadku awarii (np. zablokowania transakcyjnego dostępu do zasobu), każda modyfikacja bazy danych jest osobno zapisywana na dysku. Menedżer dziennika rejestruje te zmiany, aby umożliwić menedżerowi odzyskiwania w dowolnym momencie przywrócenie bazy danych do spójnego stanu (po awarii). Menedżer dziennika zapisuje swoje dane za pośrednictwem Menedżera buforów, ale przed kontynuowaniem upewnia się, że zostały one faktycznie zapisane na dysku. Znakowanie czasem wiąże każdą transakcję i każdy zasób ze znacznikiem czasu, za pomocą którego umożliwia i kontroluje dostęp transakcji do zasobów bazy danych.

Bibliografia

  • ACID ( Atomity , Consistency, Isolation, and Durability.) , W słowniku e-biznesu , Hoboken, Wiley, 2003.
  • ( EN ) ACID (Atomity, Consistency, Isolation, and Durability) , w Słowniku aplikacji multimedialnych i internetowych: przewodnik dla programistów i użytkowników , Hoboken, Wiley, 1999.

Inne projekty