Są to ustawienia domyślne, przy których blokady są zakładane tylko w przypadku wykonywania poleceń modyfikujących dane (DELETE, UPDATE, INSERT).
Operacja SELECT nie wymaga nakładania blokady na tabeli i rekordzie.
Blokowanie rekordów odbywa się zawsze w trybie EXCLUSIVE (X).
Dwie blokady X nie są ze sobą zgodne.
Blokowanie tabeli odbywa się w trybie RS, RX, S, SRX oraz X gdzie:
• RS ROW SHARE
• RX ROW EXCLUSIVE
• S SHARE
• SRX SHARE ROW EXCLUS1VE
• X EXCLUSIVE
Zgodność blokad tabeli:
Rysunek 21.3.1. Tabela zgodności blokad
21 ■ WSPÓŁBIEŻNOŚĆ W SYSTEMIE ORACLE_-227 -
21.3.2. Jawne założenie blokady na tabeli
Blokady mogą być nałożone na rekordy lub tabele w następujący sposób:
• niejawny - w momencie wykonywania operacji modyfikujących dane,
• jawny - nałożenie blokady następuje po wydaniu polecenia LOCK TABLE.
Do jawnego założenia blokady na tabeli służy następujące polecenie:
SQL> LOCK TABLE nazwa_tabeli IN tryb MODĘ; gdzie:
tryb - oznacza rodzaj blokady, podany pełną nazwą.
21.3.3. Właściwości blokad Właściwości blokady rs (row share)
Zakładana jest w intencji późniejszego zmodyfikowania rekordów', uniemożliwia zmianę zawartości rekordów przez inne transakcje.
Jej założenie następuje automatycznie przy realizacji polecenia:
SQL> SELECT lista_atrybutów FROM nazwa_tabeli
WHERE warunek_selekcji FOR UPDATE [NOWAIT];
Użycie NOWAIT powoduje, że polecenie zostanie automatycznie przerwane, jeżeli nie można założyć blokady RS ze względu na istnienie innej blokady z nią niezgodnej.
Właściwości blokady RX (row exclusive)
Zakładana jest automatycznie w przypadku realizacji poleceń DELETE, INSERT, UPDATE.
Rok akademicki - 2007/2008 - Nolalki do przedmiotu „Administracja bazami danych"