21. WSPÓŁBIEŻNOŚĆ W SYSTEMIE ORACLE_-222-
21. Współbieżność w systemie Oracle
Wszystkie operacje wykonywane w Oracle odbywają się w trybie transakcyjnym.
Transakcja może być realizowana w jednym z trzech trybów.
• Tryb READ COMMITTED,
• Tryb READ ONLY,
• Tryb SERIALIZABLE.
Z transakcjami wiąże się ściśle zjawisko blokowania danych.
Blokowanie danych ma na celu zapewnienie synchronizacji zapisów.
Z pracą bazy danych wiąże się pojęcie transakcji (transaction).
Własności transakcji w Systemie Oracle:
• Alomowość - wszystkie operacje wykonywane w ramach transakcji muszą zakończyć się pomyślnie, niepowodzenie jednej z nich powoduje wycofanie całej transakcji.
• Spójność - w wyniku realizacji transakcji otrzymujemy spójny stan bazy danych, w którym żadne z ograniczeń integralnościowych nie jest naruszone.
• Izolacja - zmiany wprowadzone przez transakcję są widoczne dla innych użytkowników dopiero w momencie jej zatwierdzenia.
• Trwałość - po zatwierdzeniu transakcji zmiany są zapisywane na trwałe do bazy.
Zatwierdzenie lub wycofanie aktualnej transakcji jest początkiem następnej.
21. Współbieżność w systemie Oracle_-223 -
Polecenia z grupy DDL (np. Create, Alter, Drop Table) oraz polecenia z grupy DCL (Grant, Revoke) kończą się niejawnym zatwierdzeniem transakcji.
Transakcje mogą być prowadzone w jednym z trzech trybów: Read Committed, Read Only lub Serializable.
Do ustawiania trybu pracy transakcji służy polecenie:
SQL> SET TRANSACTION
{ READ ONLY| ISOLATION LEVEL (SERIALIZABLE | READ COMMITTED}
NAME nazwa;
21.2.1. Tryb READ COMMITTED
• Wszystkie transakcje w Systemie Oracle wykonywane są domyślnie w tym trybie.
• Transakcja Ti widzi dane zmodyfikowane przez transakcję T2 dopiero po jej zatwierdzeniu poleceniem COMMIT.
Polecenie umożliwiające przestawienie pojedynczej transakcji w tryb Read Commited:
SET TRANSACTION ISOLATION LEVEL Read Committed;
Uwaga. Polecenie należy wykonać jako pierwsze w ramach transakcji.
Polecenie umożliwiające ustawienie trybu Read Commited dla wszystkich transakcji realizowanych w ramach danej sesji:
SQL> ALTER SESSION SET ISOLATION_LEVEL=Read Committed;
Rok akademicki - 2007/2008 - Notatki do przedmiotu „Administracja bazami danych"