Bazy danych

Transkrypt

Bazy danych
Bazy danych
Transakcje
Bazy danych
Transakcje
Wst p
Poj cia podstawowe:
Transakcja - sekwencja (uporz dkowany zbiór) logicznie powi zanych operacji na bazie danych, która
przeprowadza baz danych z jednego stanu spójnego w inny stan spójny.
spójny.
W!a"no"ci transakcji:
Atomowo"& - (ang. atomicity)
atomicity) zbiór operacji wchodz cych w sk!ad transakcji jest niepodzielny;
niepodzielny; albo
zostan wykonane wszystkie operacje transakcji albo (adna.
Spójno"& (ang. consistency)
consistency) - transakcja pozostawia baz danych w stanie spójnym.
spójnym.
Izolacja (ang. isolation)
isolation) - transakcje s od siebie logicznie odseparowane. Mog
oddzia!ywa& na siebie w taki sposób jak gdyby by!y wykonywane sekwencyjnie.
sekwencyjnie.
wzajemnie
Trwa!o"& (ang. durability)
durability) - wyniki zatwierdzonych transakcji nie mog zosta& utracone,
utracone, niezale(nie od
awarii systemu.
2
Bazy danych
Transakcje
Wst p
Z danej bazy danych korzysta wielu u(ytkowników.
u(ytkowników. Ze wzgl du na wydajno"& systemu jest wa(ne, aby
kilka transakcji by!o wykorzystanych wspó!bie(nie.
wspó!bie(nie. System zarz dzania bazy danych musi wi c
sprawowa& kontrol nad przebiegiem transakcji, nie dopuszczaj c do wzajemnej blokady
poszczególnych transakcji lub do stanu niezgodnego.
niezgodnego.
Ka(dy z programów u(ytkowych wykonuje operacj odczytu,
odczytu, zapisuj c w odpowiednich obszarach
pami ci operacyjnej warto"ci pobrane z bazy danych.
W przypadku operacji zapisu okre"lona warto"& z pami ci operacyjnej jest przepisywana do bazy
bazy
danych, w miejsce nieaktualnej warto"ci.
Sytuacje konfliktowe pojawiaj si , kiedy dwie transakcje T1 i T2,
T2, aby dokona& operacji zapisu b d
dokonywa!y operacji na tym samym elemencie bazy danych.
3
Bazy danych
Transakcje
Wst p
Zako czenie transakcji:
•
Zatwierdzenie – sprawdzenie ogranicze3, zwolnienie blokad, zapisanie wszystkich zmian.
•
Wycofanie – porzucenie zmian, zwolnienie blokad.
Zatwierdzenie:
COMMIT
Punkt bezpiecze3stwa:
SAVEPOINT nazwa_punktu
Wycofanie:
Wycofanie:
ROLLBACK [ WORK ] [TO [ SAVEPOINT ] nazwa_punktu ]
4
Bazy danych
Transakcje
Wst p
Spójno bazy danych:
Baza danych jest spójna je(eli jej stan jest zgodny ze mo(liwym stanem reprezentowanego przez ni
fragmentu "wiata rzeczywistego. Baza danych jest spójna je"li spe!nione
spe!nione s wszystkie
ograniczenia referencyjne i integralno"ciowe.
integralno"ciowe.
Zagro enia spójno ci bazy danych:
•
awarie sprz tu komputerowego i oprogramowania,
•
utrata danych w wyniku uszkodzenia pami ci masowej,
•
u(ytkownicy,
•
wspó!bie(ny dost p do danych.
5
Bazy danych
Transakcje
Konflikty
zapiszapis-zapis -> Utrata aktualizacji (lost update)
update)
Sytuacja taka zdarza si , gdy transakcja T2 zapisuje
warto"& zmienion przez transakcj T1 ignoruj c
modyfikacje dokonane przez ni .
6
Bazy danych
Transakcje
Konflikty
zapiszapis-odczyt -> Brudny odczyt (dirty read)
read)
Sytuacja taka zdarza si , gdy transakcja T2 odczytuje
warto"& zmienion przez transakcj T1,
T1, po czym
transakcja zostaje anulowana z dowolnego powodu.
Transakcja T2 odczyta!a warto"& niew!a"ciw ,
niepotwierdzon , wszystkie modyfikacje dokonane
przez transakcje T1 b d
bowiem anulowane.
Wcze"niej jednak transakcja T2 dokona!a odczytu
warto"ci x zmienionej przez T1.
T1.
7
Bazy danych
Transakcje
Konflikty
zapiszapis-odczyt -> Niepowtarzalny odczyt (fuzzy read)
read)
Sytuacja taka zdarza si , gdy transakcja T1 odczytuje
warto"& x,, nast pnie transakcja T2 zmienia t
warto"&, a T1 ponownie odczytuje j .
8
Bazy danych
Transakcje
Konflikty
zapiszapis-odczyt -> Fantomy (phantom read)
read)
Sytuacja taka zdarza si , gdy transakcja T1 odczytuje
warto"& x,, nast pnie transakcja T2 dodaje now
krotk , a T1 ponownie odczytuje zawarto"& bazy
danych.
9
Bazy danych
Transakcje
Metody unikania konfliktów
Poziomy izolacji.
READ UNCOMMITED – najni(szy poziom, zezwala si na czytanie niepotwierdzonych danych.
danych.
READ COMMITED – aplikacja mo(e odczytywa& tylko potwierdzone dane. W!a"ciwy poziom
poziom izolacji
np. dla procedur raportuj cych, dla których istotnych jest chwilowy
chwilowy stan bazy danych.
REAPEATABLE READ – blokuje dost p do wszystkich odczytywanych danych. W!a"ciwy poziom
poziom
izolacji dla procedur odczytu i aktualizacji danych.
SERIALIZABLE – blokuje dost p do tabeli.
aktualizacji danych.
W!a"ciwy poziom izolacji dla procedur odczytu i
10
Bazy danych
Transakcje
Metody unikania konfliktów
Poziomy izolacji.
Dirty read
Fuzzy read
Phantom
read
READ
UNCOMMITED
Mo liwy
mo liwy
mo liwy
READ
COMMITED
nie wyst puje
mo liwy
mo liwy
REPEATABLE
READ
nie wyst puje
nie wyst puje
mo liwy
SERIALIZABLE
nie wyst puje
nie wyst puje
nie wyst puje
11
Bazy danych
Transakcje
Metody unikania konfliktów
Tryby dost pu transakcji.
READ ONLY - transakcja nie zawiera (adnych polece3 modyfikuj cych stan bazy danych.
SET TRANSACTION READ ONLY
READ WRITE - transakcja mo(e zawiera& polecenia modyfikuj ce stan bazy danych.
danych.
SET TRANSACTION READ WRITE
12
Bazy danych
Transakcje
Metody unikania konfliktów
W89czanie poziomów izolacji:
READ COMMITED (poziom domy"lny)
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
ALTER SESSION SET ISOLATION LEVEL = READ COMMITTED
SERIALIZABLE
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
ALTER SESSION SET ISOLATION LEVEL = SERIALIZABLE
w pliku inicjalizacyjnym:
inicjalizacyjnym:
SERIALIZABLE = true
13
Bazy danych
Transakcje
Metody unikania konfliktów
Rodzaje blokad na poziomie tabeli:
RS
-
Intencjonalna wspó!dzielona,
wspó!dzielonym.
wspó!dzielonym.
odpowiada
zablokowaniu
wybranych
krotek
w
trybie
SELECT ... FOR UPDATE
RX - Intencjonalna wy! czna, odpowiada zablokowaniu wybranych krotek w trybie wy! cznym.
cznym.
INSERT, UPDATE, DELETE
S - Wspó!dzielona,, odpowiada zablokowaniu wszystkich krotek w trybie wspó!dzielonym.
wspó!dzielonym.
LOCK TABLE ... IN SHARE MODE
SRX - Wspó!dzielona,, odpowiada zablokowaniu wszystkich krotek w trybie wspó!dzielonym i
wybranych krotek w trybie wy! cznym
LOCK TABLE ... IN SHARE ROW EXCLUSIVE MODE
X - Wy! czna,, odpowiada zablokowaniu wszystkich krotek w trybie wy! cznym.
LOCK TABLE ... IN EXCLUSIVE MODE
14
Bazy danych
Transakcje
Metody unikania konfliktów
Wzajemne wykluczanie:
wykluczanie: przyznawanie prawa wy! czno"ci do danego obiektu okre"lonej transakcji.
Ka(da z transakcji mo(e uzyska& prawo wy! czno"ci do danego obiektu,
obiektu, ( daj c blokady tego
obiektu.
Je"li dany obiekt jest zablokowany przez pewn transakcj to (adna
(adna inna transakcja nie uzyska
dost pu do tego obiektu do chwili odblokowania obiektu. Odblokowanie obiektu jest
równoznaczne z utrat wy! czno"ci dost pu do tego obiektu. Transakcje oczekuj ce na dost p
do zablokowanego obiektu mo(na umieszcza& w kolejce transakcji obs!ugiwanych zgodnie z
kolejk zg!osze3. Dzi ki temu rozwi zaniu mo(na unikn & utraty aktualizacji,
aktualizacji, ale czasami
prowadzi do zjawiska impasu.
impasu.
15
Bazy danych
Transakcje
Metody unikania konfliktów
Impas – zjawisko, które czasami mo(e powsta& w wyniku dzielenia danych zgodnie z zasad
wzajemnego wykluczania
Przyk!ad:
T1
T2
1
Zablokuj (A)
-
2
-
Zablokuj (B)
3
Zablokuj (B)
-
4
Oczekiwanie
Zablokuj (A)
5
-
Oczekiwanie
6
-
16
Bazy danych
Transakcje
Metody unikania konfliktów
Metody rozwi9zywania problemu impasu:
Zapobieganie powstawania impasów - kiedy ( danie przyznania blokady nie mo(e by& spe!nione,
system wykonuje pewien test dotycz cy dwóch transakcji.
Wykrywanie powsta!ych impasów - dopuszcza si , by transakcje oczekiwa!y na odblokowanie
interesuj cych je danych. Pewn transakcj anuluje si dopiero wtedy,
wtedy, gdy wyst pi impas.
17
Bazy danych
Transakcje
Metody unikania konfliktów
Zapobieganie powstawania impasów – unika si impasu poprzez wykonanie testu dotycz cy dwóch
transakcji: tej, która ( da blokady (T2
). Je(eli
(T2)) i tej która dysponuje blokad w danej chwili (T1
(T1).
wynik testu jest pozytywny, zezwala si transakcji T2 oczekiwa& na odblokowanie
interesuj cego j obiektu, w przeciwnym przypadku jedna z dwóch transakcji jest anulowana,
jej wykonanie zostaje powtórne rozpocz te. Transakcja taka nie jest usuwana z systemu
zarz dzania baz danych, lecz jest jedynie cofana ( anulowanie transakcji oznacza usuni cie
zmian wprowadzonych przez ni bez usuni cia jej z systemu).
Test: ka(dej transakcji przyporz dkowuje si okre"lony priorytet, warto"&
warto"& t zapisujemy w postaci
priorytetu (T1
). Transakcja T2 mo(e oczekiwa& na odwo!anie blokady przez transakcj T1
(T1).
wtedy i tylko wtedy gdy priorytet T2 < priorytetu T1.
T1.
Stosuj c t metod mo(na spowodowa&, (e pewna transakcja jest anulowana wielokrotnie,
wielokrotnie, jej
wykonanie system odk!ada ci gle na póAniej. Aby unikn & tej sytuacji
sytuacji stosuje si metod
znaczników transakcji.
transakcji.
18
Bazy danych
Transakcje
Metody unikania konfliktów
Metoda znaczników transakcji:
transakcji: w chwili pojawienia si danej transakcji przypisuje si jej pewien
pewien
unikalny numer porz dkowy - znacznik. Mo(e to by& np. warto"& z zegara systemowego. Chodzi
o to, aby transakcje wcze"niejsze mia!y pierwsze3stwo przed transakcjami
transakcjami póAniejszymi. Wraz z
metod znaczników mo(emy stosowa& równocze"nie technik wyw!aszczania lub technik bez
wyw!aszczania:
wyw!aszczania:
Technika bez wyw!aszczenia:
wyw!aszczenia: kiedy transakcja T2 ( da blokady obiektu zablokowanego przez T1 (T1
by!a wcze"niej), to T2 mo(e czeka& na odblokowanie obiektu, w przeciwnym przypadku T2 jest
anulowana (jej znacznik nie zmienia si ).
Technika wyw!aszczania:
wyw!aszczania: je"li T2 jest póAniejsza ni( T1,
T1, to oczekuje na odblokowanie obiektu, je"li nie
to T2 jest anulowana.
19
Bazy danych
Transakcje
Metody unikania konfliktów
Wykrywanie powsta!ych impasów - dopuszcza si , by transakcje oczekiwa!y na odblokowanie
interesuj cych je danych. Pewn transakcj anuluje si dopiero wtedy,
wtedy, gdy wyst pi impas.
impas.
Przewa(nie anuluje si transakcj , która rozpocz !a si najpóAniej.
najpóAniej. Zjawisko impasu wyst puje
bardzo rzadko (1 na 1000 transakcji), dlatego bardziej ekonomiczne
ekonomiczne jest stosowanie
wykrywania impasów.
20
Bazy danych
Transakcje
Metody unikania konfliktów
Blokowanie dwufazowe - blokada wy! czno"ci nie jest konieczna w przypadku kilku równoczesnych
równoczesnych
operacji odczytu. Blokowanie dwufazowe jest wersj operacji blokowania
blokowania umo(liwiaj c
synchronizacj operacji odczytu i zapisu. W przypadku ka(dej transakcji,
transakcji, wszystkie operacje
( dania blokad powinny poprzedza& wszystkie operacje odwo!ania blokad.
blokad. Wewn trz transakcji
mo(na wyró(ni& faz uzyskiwania i odwo!ywania blokad. Metoda ta nie wykrywa pojawienia si
impasu. Metoda ta opiera si na dwóch blokadach: dzielonej - umo(liwiaj cej równoczesny
odczyt danych i blokady wy! czno"ci.
czno"ci.
•
zanim transakcja dokona odczytu warto"ci x, musi uzyska& blokad dzielon x
•
zanim transakcja dokona zapisu warto"ci x, musi uzyska& blokad wy! czno"ci x
•
po zako3czeniu transakcji (aden z elementów nie zostaje zablokowany
zablokowany
Transakcja dwufazowa:
dwufazowa:
Faza rozwijania:
rozwijania: transakcja ( da poszczególnych blokad, które s jej potrzebne, wykonuje pewne
obliczenia, modyfikuje dane z bazy, po czym rozpoczyna si faza zwalniania.
Faza zwalniania:
zwalniania: transakcja odwo!uje poszczególne blokady.
21

Podobne dokumenty