Anda di halaman 1dari 140

Transaction Management

Session 15 - 16
Course Name : Database System
Year : 2012
3
Chapter 22
Transaction Management
Pearson Education 2009
4
Chapter 22 - Objectives
Function and importance of transactions.
Properties of transactions.
Concurrency Control
Meaning of serializability.
How locking can ensure serializability.
Deadlock and how it can be resolved.
How timestamping can ensure serializability.
Optimistic concurrency control.
Granularity of locking.
Pearson Education 2009
5
Chapter 22 - Objectives
Recovery Control
Some causes of database failure.
Purpose of transaction log file.
Purpose of checkpointing.
How to recover following database failure.
Alternative models for long duration transactions.
Pearson Education 2009
6
Transaction Support
Transaction
Sebuah aksi atau serangkaian aksi, yang dilakukan oleh
user atau aplikasi yang mengakses atau mengubah isi dari
database.
Atau dapat juga dikatakan sebagai unit kerja logical (Logical
unit of work) dari suatu database
Program aplikasi merupakan serangkaian transaksi tanpa
pengolahan database didalamnya.
Transaksi selalu merubah database dari satu stata konsisten
ke stata lainnya, walaupun konsistensi data dapat terganggu
selama transaksi berjalan.
Pearson Education 2009
7
Example Transaction
Pearson Education 2009
8
Example Transaction
Contoh implementasi transaksi, misalkan transaksi
transfer uang sebesar $50 dari rekening A ke rekening
B, maka transaksi tersebut dapat didefinisikan sebagai
berikut :

1. read(A)
2. A := A 50
3. write(A)
4. read(B)
5. B := B + 50
6. write(B)

Pearson Education 2009
9
Transaction Support
Akan mempunyai dua outcomes:
Sukses transaksi dikatakan commited dan database
mencapai stata baru/stata berikutnya.
Gagal transaksi dikatakan aborted, dan database
harus dikembalikan ke stata tetap sebelum
dilakukannya transaksi.
Transaksi seperti ini disebut roll back atau undone
Transaksi yang committed tidak dapat digagalkan.
Transaksi yang digagalkan akan dilakukan rollback
yang dapat diproses ulang (restarted) diwaktu
mendatang
Pearson Education 2009
10
State Transition Diagram for Transaction
Pearson Education 2009
11
Properties of Transactions
4 sifat dasar dari transaksi (ACID, Haerder and Reuter, 1983) :

Atomicity(keutuhan)
Transaksi merupakan unit yang tidak terlihat yang harus dilakukan
secara keseluruhan atau tidak sama sekali.
Consistency (Ketetapan)
Transaksi harus mengubah database dari satu stata konsisten ke stata
lainnya/ berikutnya.
Isolation (Pemisahan)
Transaksi dieksekusi secara terpisah dari yang satu
dengan yang lainnya.
Durability (Daya tahan)
Secara permanen direkam kedalam database dan tidak
akan hilang dikarenakan kegagalan berikutnya.
Pearson Education 2009
12
DBMS Transaction Subsystem
Pearson Education 2009
13
Concurrency Control
Process of managing simultaneous operations on the
database without having them interfere with one
another.
Merupakan proses pengaturan operasi yang simultan
pada database tanpa menyebabkan saling
mempengaruhi antara satu dengan yang lain.
Akses konkuren tidak akan bermasalah jika user hanya
melakukan pembacaan data saja, gangguan akan terjadi
jika dua atau lebih user mengakses database secara
simultan dan sedikitnya melakukan satu perubahan
(update), maka dapat menyebabkan ketidak-konsistenan
(inconsistencies)
Pearson Education 2009
14
Need for Concurrency Control
Terdapat 3 Masalah akibat concurrency :

Masalah kehilangan modifikasi (Lost Updates
Problem)
Masalah modifikasi sementara (Uncommitted
Dependency Problem)
Masalah analisa yang tidak konsisten (Inconsistent
Analysis Problem)
Pearson Education 2009
15
Lost Update Problem
Update yang dilakukan oleh user pertama diubah oleh user
yang lain.






Contoh diatas menerangkan hilangnya modifikasi yang
dilakukan oleh T2. Kehilangan modifikasi ini dapat diatasi
dengan mencegah T1 melakukan pembacaan data sebelum
perubahan T2 selesai dilaksanakan.
Pearson Education 2009
16
Lost Update Problem
Successfully completed update is overridden by
another user.
T
1
withdrawing 10 from an account with bal
x
,
initially 100.
T
2
depositing 100 into same account.
Serially, final balance would be 190.
Pearson Education 2009
17
Lost Update Problem
Loss of T
2
s update avoided by preventing T
1

from reading bal
x
until after update.
Pearson Education 2009
18
Uncommitted Dependency Problem
Masalah modifikasi sementara terjadi jika
satu transaksi (transaksi pertama) membaca
hasil dari transaksi lainnya (transaksi kedua)
sebelum transaksi kedua dinyatakan
committed.
Biasa dikenal dengan dirty read problem.
Pearson Education 2009
19
Uncommitted Dependency Problem
Contoh transaksi T4 merubah balx menjadi 200 tetapi
digagalkan, sehingga balx harus dikembalikan ke nilai awal
sebelum transaksi yaitu 100. Sedangkan transaksi T3 membaca
nilai hasil modifikasi tadi yaitu, balx (200) dan menguranginya
dengan 10, sehingga memperoleh nilai akhir 190, yang
seharusnya 90.
Masalah tersebut dapat dihindari Problem dengan mencegah T3
membaca balx sebelum T4 dinyatakan committed atau abort.

20
Uncommitted Dependency Problem
Occurs when one transaction can see
intermediate results of another transaction
before it has committed.
T
4
updates bal
x
to 200 but it aborts, so bal
x

should be back at original value of 100.
T
3
has read new value of bal
x
(200) and uses
value as basis of 10 reduction, giving a new
balance of 190, instead of 90.
Pearson Education 2009
21
Uncommitted Dependency Problem
Problem avoided by preventing T
3
from
reading bal
x
until after T
4
commits or aborts.
Pearson Education 2009
22
Inconsistent Analysis Problem
Terjadi ketika transaksi pertama membaca beberapa
nilai tetapi transaksi kedua melakukan perubahan
terhadap nilai tersebut selama eksekusi transaksi
pertama berlangsung.
Contoh transaksi T6 menjumlahkan variable balx (100),
baly (50), dan balz (25). Pada saat yang hampir
bersamaan transaksi T5 memindahkan 10 dari balx ke
balz, sehingga transaksi T6 mendapatkan hasil akhir yang
salah (yaitu kelebihan 10).
Hal ini disebut dengan nonrepeatable ( or fuzzy)
read.

Pearson Education 2009
23
Inconsistent Analysis Problem
Masalah tersebut dapat dihindari dengan mencegah transaksi
T6 membaca balx dan balz sebelum transaksi T5 lengkap di-
update.

Pearson Education 2009
24
Inconsistent Analysis Problem
Occurs when transaction reads several values
but second transaction updates some of them
during execution of first.
Sometimes referred to as dirty read or
unrepeatable read.
T
6
is totaling balances of account x (100),
account y (50), and account z (25).
Meantime, T
5
has transferred 10 from bal
x
to
bal
z
, so T
6
now has wrong result (10 too high).
Pearson Education 2009
25
Inconsistent Analysis Problem
Problem avoided by preventing T
6
from reading
bal
x
and bal
z
until after T
5
completed updates.
Pearson Education 2009
26
Serializability
Sistem basis data harus dapat mengontrol eksekusi konkurensi dari suatu
transaksi untuk memastikan database tetap terjaga konsistensinya.

Asumsi dasar, bahwa setiap transaksi harus tetap menjaga konsistensi database.

Eksekusi secara serial pada suatu transaksi dapat menjaga database tetap
konsisten.

Sebuah jadwal (yang mungkin konkuren), serializable jika setara dengan
penjadwalan secara serial. Pada bagian ini ada dua bentuk ekivalensi
penjadwalan (Schedule Equivalence) : Conflict dan View Serializability.

Pada serializability kita abaikan operasi selain dari instruksi read dan write,
serta diasumsikan bahwa transaksi dapat melakukan perhitungan terhadap data
di dalam buffer lokal diantara instruksi read dan write.

Pearson Education 2009
27
Serializability
Schedule
adalah sebuah urutan dari operasi-operasi oleh satu set transaksi yang
jalan bersamaan yang menjaga urutan operasi pada setiap transaksi
individual ( Connolly, 2005, p580 ).

Sebuah transaksi mencakup sebuah urutan operasi yang terdiri dari
tindakan baca dan/atau tulis pada database, diikuti oleh sebuah
tindakan commit atau abort.
Serial Schedule
Serial Schedule adalah sebuah schedule di mana operasi dari setiap
transaksi dijalankan secara berurutan tanpa adanya tarnsaksi yang
mengganggu transaksi lainnya (Connolly, 2005, p580).

No guarantee that results of all serial executions of a given set of
transactions will be identical.
Pearson Education 2009
28
Serializability
Serial schedule: Skedul yang tidak meng-interleave
tindakan-tindakan dari Xacts yang berbeda.
Equivalent schedules: Untuk sembarang keadaan
database, pengaruh (pada satu set objek dalam database)
eksekusi skedul pertama identik dengan pengaruh
eksekusi skedul kedua.
Serializable schedule: Skedul yang ekivalen dengan
beberapa eksekusi Xacts secara serial .
(Catatan: Jika setiap transaksi mempertahankan
konsistensi, maka setiap serializable schedule juga
dijamin akan mempertahankan konsistensi. )

Pearson Education 2009
29
Nonserial Schedule
NonSerial Schedule adalah sebuah schedule di mana
operasi-operasi dari satu set concurrent transactions
mengalami interleaved (Connolly, 2005, p580).
Tujuan serializibility adalah untuk menemukan non
serial schedule yang mengijinkan transaksi untuk
berjalan secara bersamaan tanpa mengganggu satu sama
lain, dan kemudian memproduksi sebuah state database
yang dapat diproduksi oleh sebuah eksekusi serial
Jika sebuah set transaksi berjalan secara bersamaan, bisa
dikatakan bahwa schedule (nonserial) adalah benar jika
memproduksi hasil yang sama seperti beberapa eksekusi
serial lainnya. Schedule seperti itu disebut serializable.
Pearson Education 2009
30
Serializability
Untuk mencegah inkonsistensi dari transaksi yang mengganggu satu
sama lain, penting untuk menjamin serializability dari transaksi yang
jalan bersamaan. Pada serializability, urutan operasi baca dan tulis
itu penting. Berikut ini hal hal yang perlu diperhatikan:

Jika dua transaksi hanya membaca satu item data yang sama, dua
transaksi tersebut tidak mengalami konflik dan urutan menjadi tidak
penting.
Jika dua transaksi melakukan operasi membaca ataupun menulis pada
item data yang berbeda, dua transaksi tersebut tidak mengalami konflik dan
urutan menjadi tidak penting.
Jika satu transaksi menulis sebuah item data dan transaksi lain baik
membaca ataupun menulis pada item data yang sama, maka urutan eksekusi
itu menjadi penting.

31
Example of Conflict Serializability
Pearson Education 2009
32
Conflict Serializability
Conflict serializable schedule orders any
conflicting operations in same way as some serial
execution.
Under constrained write rule (transaction
updates data item based on its old value, which is
first read), use precedence graph to test for
serializability.
Pearson Education 2009
33
Precedence Graph
Create:
node for each transaction;
a directed edge T
i
T
j
, if T
j
reads the value
of an item written by T
I
;
a directed edge T
i
T
j
, if T
j
writes a value
into an item after it has been read by T
i
.
If precedence graph contains cycle schedule is
not conflict serializable.
Pearson Education 2009
34
Conflict Serializability
Instruksi I
i
dan I
j
masing masing dari transaksi T
i
dan T
j
, konflik jika dan
hanya jika ada beberapa item data yang sama (Q) diakses secara bersama
sama baik oleh I
i
dan I
j
, serta setidaknya salah satu dari instruksi melakukan
operasi write (Q).
1. Jika I
i
= read(Q) dan I
j
= read(Q), maka I
i
dan I
j
tidak konflik
2. Jika I
i
= read(Q) dan I
j
= write(Q), maka I
i
dan I
j
konflik
3. Jika I
i
= write(Q) dan I
j
= read(Q), maka I
i
dan I
j
konflik
4. Jika I
i
= write(Q) dan I
j
= write(Q), maka I
i
dan I
j
konflik

Secara intuitif, konflik diantara I
i
dan I
j
memaksakan perintah logika temporal
diantara keduanya.

Jika I
i
dan I
j
merupakan instruksi dari transaksi berbeda dan tidak konflik, maka
urutan instruksi I
i
dan I
j
dapat ditukar sehingga menghasilkan jadwal baru
dengan hasil yang tetap sama.

Pearson Education 2009
35
Conflict Serializability
Jika jadwal S dapat ditransformasikan menjadi jadwalan Soleh
serangkaian pertukaran instruksi yang non-konflik, maka bisa dikatakan
S dan S adalah conflict equivalent.

Bisa dikatakan bahwa jadwal S adalah conflict serializable jika conflict
equivalent terhadap penjadwalan serial.

Contoh penjadwalan yang tidak conflict serializable
T
3
T
4

read(Q)
write(Q)
write(Q)


Pearson Education 2009
36
Conflict Serializability
Penjadwalan 3 di bawah bisa ditransformasikan ke penjadwalan 1,
penjadwalan serial dimana T
2
diikuti T
1
, dengan serangkaian penukaran
instruksi yang tidak konflik. Oleh karena itu penjadwalan di bawah ini
conflict serializability

Pearson Education 2009
37
Example - Non-conflict serializable schedule
T
9
is transferring 100 from one account with
balance bal
x
to another account with balance
bal
y
.
T
10
is increasing balance of these two accounts by
10%.
Precedence graph has a cycle and so is not
serializable.
Pearson Education 2009
38
Example - Non-conflict serializable schedule

Pearson Education 2009
39
View Serializability
Offers less stringent definition of schedule
equivalence than conflict serializability.
Two schedules S
1
and S
2
are view equivalent if:
For each data item x, if T
i
reads initial value of x
in S
1
, T
i
must also read initial value of x in S
2
.
For each read on x by T
i
in S
1
, if value read by x is
written by T
j
, T
i
must also read value of x
produced by T
j
in S
2
.
For each data item x, if last write on x performed
by T
i
in S
1
, same transaction must perform final
write on x in S
2
.
Pearson Education 2009
40
View Serializability
Schedule is view serializable if it is view
equivalent to a serial schedule.
Every conflict serializable schedule is view
serializable, although converse is not true.
It can be shown that any view serializable
schedule that is not conflict serializable contains
one or more blind writes.
In general, testing whether schedule is
serializable is NP-complete.
Pearson Education 2009
41
Example - View Serializable schedule
Pearson Education 2009
42
View Serializability
Misalkan S dan S adalah dua jadwal dengan serangkaian transaksi yang sama. S
dan S adalah view equivalent.

S dan S adalah view equivalent jika memenuhi kondisi sebagai berikut :
1. Untuk masing masing data item Q , jika transaksi T
i
membaca
inisialisasi nilai pada Q di dalam jadwal S, maka transaksi T
i
yang ada di
jadwal S juga harus membaca inisialisasi nilai pada Q.
2. Untuk masing masing data item Q, jika transaksi T
i
mengeksekusi
read(Q) di dalam jadwal S, dan jika nilai yang dihasilkan oleh operasi
write(Q) dieksekusi oleh transaksi T
j
, maka operasi read(Q) pada
transaksi T
i
yang harus ada di jadwal S juga membaca nilai Q yang
dihasilkan oleh operasi write(Q) yang sama pada transaksi T
j

3. Untuk masing masing data item Q, transaksi yang sampai ke tahap
akhir operasi write(Q) di dalam jadwal S

Seperti yang terlihat, view serializability juga dilihat berdasarkan pada operasi
read dan write saja

43
View Serializability
Sebuah jadwal S adalah view seralizable , setara dengan penjadwalan serial.

Setiap penjadwalan conflict serializable juga view serializable

Penjadwalan di bawah ini adalah penjadwalan yang view serializable tapi tidak
conflict serializable

44
View Serializability
Penjadwalan di bawah menghasilkan outcome yang
sama sebagai jadwal serial (T
1
, T
2
)

45
Recoverability
Serializability identifies schedules that maintain
database consistency, assuming no transaction
fails.
Could also examine recoverability of
transactions within schedule.
If transaction fails, atomicity requires effects of
transaction to be undone.
Durability states that once transaction commits,
its changes cannot be undone (without running
another, compensating, transaction).
Pearson Education 2009
46
Recoverable Schedule
Recoverable Schedule Jika transaksi T
j
membaca sebuah item
data yang sebelumnya ditulis oleh transaksi T
i
, maka operasi
commit T
i
muncul sebelum operasi commit T
j
.

Jadwal berikut tidak recoverable jika T
9
commit segera setelah
read





Jika T
8
dibatalkan, maka T
9
bisa jadi akan membaca state
database inkonsisten. Maka dengan demikian database harus
memastikan bahwa jadwal dapat dipulihkan jika terjadi sesuatu
hal.

Pearson Education 2009
47
Recoverable Schedule
Cascading Rollback kesalahan pada satu transaksi yang yang
dapat berpengaruh pada serangkaian transaksi lainnya sehingga
keseluruhan transaksi akan di-rollback.

Misalkan pada penjadwalan berikut dimana belum ada transaksi
yang di-commit, sehingga jika terjadi masalah bisa dipulihkan






Jika T
10
transaksinya fail, maka T
11
dan T
12
juga harus di
rollback. Jika tidak demikian, maka akan menyebabkan
banyaknya pekerjaan yang tidak akan terselesaikan.


48
Recoverable Schedule
Cascadeless Schedule cascading rollback tidak
dapat terjadi, untuk setiap pasang transaksi T
i
dan
T
j
dimana T
j
membaca sebuah item data yang
sebelumnya ditulis oleh T
i
dan operasi commit
pada T
i
muncul sebelum operasi read pada T
j
.

Setiap cascadeless schedule juga dapat dipulihkan
(recoverable);



49
Concurrency Control Techniques
Terdapat dua teknik kontrol konkurensi yang
memungkinkan transaksi untuk mengeksekusi
dengan aman dalam subjek paralel untuk batasan
tertentu :
Metode Locking dan
Metode Timestamp

Locking dan timestamping pada dasarnya
merupakan pendekatan konservatif (pesimistik)
yang dapat menyebabkan penundaan transaksi jika
terjadi konflik dengan transaksi lainnya pada waktu
yang sama.

Pearson Education 2009
50
Locking
Locking adalah sebuah prosedur yang digunakan
untuk mengendalikan akses bersamaan ke data.
Ketika sebuah transaksi sedang mengakses database,
sebuah lock mungkin menolak akses ke transaksi lain
untuk mencegah hasil yang salah ( Connolly, 2005,
p587 ).
Locking merupakan suatu prosedure untuk
mengontrol akses konkuren terhadap data.
Secara umum, transaksi harus menegaskan
penguncian (lock) shared (read) atau exclusive
(write) terhadap data item sebelum pembacaan (read)
atau penulisan (write).

Pearson Education 2009
51
Locking - Basic Rules
Shared Lock, jika transaksi memiliki shared lock
pada suatu data item, maka transaksi tersebut dapat
melakukan pembacaan tetapi tidak melakukan
perubahan.
Exclusive Lock, Jika transaksi memiliki exclusive
lock pada suatu data item, maka transaksi tersebut
dapat melakukan pembacaan dan perubahan terhadap
data item tersebut.
Pearson Education 2009
52
Penggunaan kunci (lock) :
Setiap transaksi yang membutuhkan
akses data item harus terlebih dahulu
mengunci item, permintaan shared lock
untuk akses pembacaan atau exclusive
lock untuk pembacaan dan perubahan.

Jika item belum dikunci oleh transaksi
lainnya, maka kunci dapat diberikan.
Pearson Education 2009
53
Penggunaan kunci (lock) :
Jika item tersebut telah dikunci, DBMS menentukan
apakah permintaan sesuai dengan penguncian yang
ada. Jika yang digunakan adalah shared lock maka
permintaan akan diberikan, jika bukan (exclusive
lock) maka transaksi harus menunggu kunci tersebut
dilepaskan.
Transaksi melanjutkan menyimpan kunci sampai
secara tegas/eksplisit dilepaskan baik selama
eksekusi berlangsung atau ketika selesai (commit
atau abort). Ketika exclusive lock dilepaskan maka
akibat dari operasi penulisan akan dapat dilihat oleh
transaksi yang lain.

Pearson Education 2009
54
Example - Incorrect Locking Schedule
S = {write_lock(T9, balx),
read(T9, balx), write(T9,
balx), unlock(T9, balx),
write_lock(T10, balx),
read(T10, balx), write(T10,
balx), unlock(T10, balx),
write_lock(T10, baly),
read(T10, baly), write(T10,
baly), unlock(T10,
baly),commit(T10),
write_lock(T9, baly),
read(T9, baly), write(T9,
baly),unlock(T9, baly),
commit(T9) }

Pearson Education 2009
55
Example - Incorrect Locking Schedule
Jika dimulai dari balx = 100, baly = 400,
maka hasilnya harus : balx = 220, baly = 330,
jika T9 dieksekusi sebelum T10, atau balx =
210, baly = 340, jika T10 dieksekusi sebelum
T9.
Tetapi hasil yang didapat balx = 220 dan baly
= 340, maka S bukan serializable schedule.
Masalah yang terjadi adalah transaksi
melepaskan kunci terlalu cepat, menghasilkan
kehilangan isolasi total dan atomicity.

56
Example - Incorrect Locking Schedule
Problem is that transactions release locks too
soon, resulting in loss of total isolation and
atomicity.
To guarantee serializability, need an additional
protocol concerning the positioning of lock and
unlock operations in every transaction.
Pearson Education 2009
57
Two-Phase Locking (2PL)
Suatu transaksi menggunakan protokol 2PL jika
seluruh operasi penguncian (locking)
mendahului operasi pelepasan kunci (unlock)
dalam transaksi. Terdapat dua fase untuk
transaksi, yaitu :
Growing phase mendapatkan seluruh kunci
tetapi tidak dapat melepaskan kunci.
Shrinking phase melepaskan kunci tetapi
tidak mendapatkan kunci baru.

Pearson Education 2009
58
Aturan dasar 2PL
Satu transaksi harus meminta sebuah kunci untuk
suatu iter sebelum melaksanakan operasi pada
item tersebut. Kunci yang diminta dapat berupa
write lock maupun read lock , tergantung
kebutuhan
Sekali transaksi melepaskan kunci, maka
transaksi tersebut tidak dapat meminta kunci
yang baru.

Pearson Education 2009
59
Preventing Lost Update Problem using 2PL
Pearson Education 2009
60
Preventing Uncommitted Dependency Problem
using 2PL
Pearson Education 2009
61
Preventing Inconsistent Analysis Problem using
2PL
Pearson Education 2009
62
Cascading Rollback
If every transaction in a schedule follows 2PL,
schedule is serializable.
However, problems can occur with
interpretation of when locks can be released.
Pearson Education 2009
63
Cascading Rollback
Pearson Education 2009
64
Cascading Rollback
Transactions conform to 2PL.
T
14
aborts.
Since T
15
is dependent on T
14
, T
15
must also be
rolled back. Since T
16
is dependent on T
15
, it too
must be rolled back.
This is called cascading rollback.
To prevent this with 2PL, leave release of all
locks until end of transaction.
Pearson Education 2009
65
Concurrency Control with Index Structures
Could treat each page of index as a data item and
apply 2PL.
However, as indexes will be frequently accessed,
particularly higher levels, this may lead to high
lock contention.
Can make two observations about index
traversal:
Search path starts from root and moves down to leaf
nodes but search never moves back up tree. Thus, once
a lower-level node has been accessed, higher-level
nodes in that path will not be used again.
Pearson Education 2009
66
Concurrency Control with Index Structures
When new index value (key and pointer) is being
inserted into a leaf node, then if node is not full,
insertion will not cause changes to higher-level
nodes.
Suggests only have to exclusively lock leaf node
in such a case, and only exclusively lock higher-
level nodes if node is full and has to be split.
Pearson Education 2009
67
Concurrency Control with Index Structures
Thus, can derive following locking strategy:
For searches, obtain shared locks on nodes starting at root
and proceeding downwards along required path. Release
lock on node once lock has been obtained on the child node.
For insertions, conservative approach would be to obtain
exclusive locks on all nodes as we descend tree to the leaf
node to be modified.
For more optimistic approach, obtain shared locks on all
nodes as we descend to leaf node to be modified, where
obtain exclusive lock. If leaf node has to split, upgrade
shared lock on parent to exclusive lock. If this node also has
to split, continue to upgrade locks at next higher level.
Pearson Education 2009
68
Deadlock
An impasse that may result when two (or more)
transactions are each waiting for locks held by the
other to be released.
Pearson Education 2009
69
Deadlock
Deadlock merupakan kebuntuan (impasse) yang
mungkin dihasilkan ketika dua atau lebih transaksi
saling menunggu kunci yang disimpan oleh
transaksi lain agar dilepaskan.
Tiga teknik yang umum dilakukan untuk mengatasi
deadlock :
Timeout
Deadlock prevention
Deadlock detection and recovery
Pearson Education 2009
70
Timeouts
Dengan pendekatan timeout, suatu transaksi
yang meminta kunci hanya akan menunggu
sistem mendefinisikan periode waktu.
Jika kunci belum diberikan dalam periode ini,
maka permintaan kunci kehabisan waktu
(times out).
Dalam kasus ini, DBMS mengasumsikan
transaksi terjadi deadlocked, walaupun
mungkin tidak terjadi, dan transaksi tersebut
digagalkan dan secara otomatis mengulang
dari awal transaksi yang bersangkutan.

71
Deadlock Prevention
Pendekatan lain yang mungkin dilakukan
untuk menghindari deadlock adalah
memerintahkan transaksi menggunakan
transaksi timestamps :
Wait-Die memungkinkan hanya transaksi
lama menunggu transaksi baru, selain itu
transaksi digagalkan (dies) dan diulang
dengan timestamps yang sama.
Pearson Education 2009
72
Deadlock Prevention
Wound-Wait hanya transaksi baru yang
menunggu transaksi lama. Jika transaksi lama
meminta kunci yang dimiliki oleh transaksi baru,
maka transaksi baru akan digagalkan (wounded).
Pearson Education 2009
73
Deadlock Detection and Recovery
Pendeteksian deadlock biasanya ditangani dengan
membuat konstruksi Wait For Graph (WFG) yang
memperlihatkan ketergantungan transaksi, yaitu
transaksi Ti bergantung pada Tj jika transaksi Tj
memegang kunci untuk data item yang ditunggu
olah Ti.
WFG merupakan graf berarah (directed graph) G
=(N, E), yang dapat debentuk dengan cara :
Buatlah Node untuk setiap transaksi
Buatlah edge berarah Ti -> Tj, jika Ti menunggu kunci
untuk item yang sedang dikunci oleh Tj.
Deadlock terjadi jika dan hanya jika WFG
mengandung siklus.

Pearson Education 2009
74
Example - Wait-For-Graph (WFG)
Pearson Education 2009
75
Recovery from Deadlock Detection
Several issues:
choice of deadlock victim;
how far to roll a transaction back;
avoiding starvation.
Pearson Education 2009
76
Timestamping
Timestamp adalah identifier unik yang dibuat oleh
DBMS untuk mengindikasikan waktu mulai relatif
dari suatu transaksi. Dapat dibangun dengan
menggunakan waktu sistem pada saat transaksi
dimulai, atau dengan penambahan counter logical
setiap saat transaksi baru dilaksanakan.

Timestamping adalah protokol kontrol konkuren
yang memerintahkan transaksi dalam suatu cara
dimana transaksi lama dan transaksi dengan
timestamp yang lebih kecil mendapatkan prioritas
jika terjadi konflik.

Pearson Education 2009
77
Timestamping
Timestamp
A unique identifier created by DBMS that
indicates relative starting time of a
transaction.
Can be generated by using system clock at time
transaction started, or by incrementing a logical
counter every time a new transaction starts.
Pearson Education 2009
78
Timestamping
Read/write proceeds only if last update on that
data item was carried out by an older transaction.
Otherwise, transaction requesting read/write is
restarted and given a new timestamp.
Also timestamps for data items:
read-timestamp - timestamp of last transaction
to read item;
write-timestamp - timestamp of last
transaction to write item.
Pearson Education 2009
79
Timestamping - Read(x)
Transaksi T membaca item x yang telah
diubah oleh transaksi baru (younger), yaitu
ts(T) < write_timestamp(x). Berarti transaksi
lama mencoba untuk membaca nilai suatu
item yang telah diubah oleh transaksi baru.
Dalam hal ini transaksi T harus digagalkan
dan diulangi dengan timestamp yang baru.
ts(T) >= read_timestamp(x) , dan operasi
pembacaan dapat diproses. Ditetapkan
read_timestamp(x) = max(ts(T),
read_timestamp(x)

80
Timestamping - Read(x)
ts(T) < read_timestamp(x)

x already read by younger transaction.
Roll back transaction and restart it using a
later timestamp.
Pearson Education 2009
81
Timestamping - Write(x)
ts(T) < read_timestamp(x), hal ini terjadi ketika
transaksi lama telat melakukan penulisan sehingga
transaksi baru membaca nilai yang salah. Dalam hal ini
harus dilakukan rolled-back transaksi T dan
mengulanginya dengan timestamp berikutnya.
ts(T) < write_timestamp(x), dimana x telah dituliskan
oleh transaksi baru. Ini berarti transaksi T berusaha
untuk menuliskan nilai obsolete dari data item x. Maka
transaksi T harus di-rolled back dan diulangi dengan
menggunakan timestamp berikutnya.
Selain itu, dapat ditetap write_stimestamp(x) =
ts(T),operasi dapat diterima dan dieksekusi.

Pearson Education 2009
82
Example Basic Timestamp Ordering


Pearson Education
2009
83
Comparison of Methods


Pearson Education 2009
84
Multiversion Timestamp Ordering
Versioning of data can be used to increase
concurrency.
Basic timestamp ordering protocol assumes only
one version of data item exists, and so only one
transaction can access data item at a time.
Can allow multiple transactions to read and
write different versions of same data item, and
ensure each transaction sees consistent set of
versions for all data items it accesses.
Pearson Education 2009
85
Multiversion Timestamp Ordering
In multiversion concurrency control, each write
operation creates new version of data item while
retaining old version.
When transaction attempts to read data item,
system selects one version that ensures
serializability.
Versions can be deleted once they are no longer
required.
Pearson Education 2009
86
Optimistic Techniques
Based on assumption that conflict is rare and more efficient to let
transactions proceed without delays to ensure serializability.
At commit, check is made to determine whether conflict has
occurred.
If there is a conflict, transaction must be rolled back and restarted.
Potentially allows greater concurrency than traditional protocols.

Metode optimistik, didasarkan pada premis bahwa konflik itu jarang
ditemui, jadi mereka mengijinkan transaksi untuk lanjut tidak
tersinkronisasi dan hanya mengecek konflik di bagian akhir, ketika
transaksi melakukan operasi commit.
Pearson Education 2009
87
Optimistic Techniques
Three phases:
Read
Validation
Write
Pearson Education 2009
88
Optimistic Techniques - Read Phase
Extends from start until immediately before
commit.

Transaction reads values from database and
stores them in local variables. Updates are
applied to a local copy of the data.
Pearson Education 2009
89
Optimistic Techniques - Validation Phase
Follows the read phase.
For read-only transaction, checks that data read
are still current values. If no interference,
transaction is committed, else aborted and
restarted.
For update transaction, checks transaction
leaves database in a consistent state, with
serializability maintained.
Pearson Education 2009
90
Optimistic Techniques - Write Phase
Follows successful validation phase for update
transactions.

Updates made to local copy are applied to the
database.
Pearson Education 2009
91
Granularity of Data Items
Ukuran item data terpilih sebagai unit
perlindungan dengan protokol kontrol
konkurensi.
Ranging from coarse to fine:
The entire database.
A file.
A page (or area or database spaced).
A record.
A field value of a record.
Pearson Education 2009
92
Granularity of Data Items
Tradeoff:
coarser, the lower the degree of concurrency;
finer, more locking information that is needed
to be stored.
Best item size depends on the types of
transactions.
Pearson Education 2009
93
Hierarchy of Granularity
Could represent granularity of locks in a
hierarchical structure.
Root node represents entire database, level 1s
represent files, etc.
When node is locked, all its descendants are
also locked.
DBMS should check hierarchical path before
granting lock.
Pearson Education 2009
94
Hierarchy of Granularity
I ntention lock could be used to lock all
ancestors of a locked node.
Intention locks can be read or write. Applied
top-down, released bottom-up.
Pearson Education 2009
95
Levels of Locking
Pearson Education 2009
96
Database Recovery
Database Recovery merupakan suatu proses
penyimpanan/pengembalian database ke state yang benar pada saat
terjadi kerusakan. Kebutuhan atas kontrol recovery disebabkan karena
penyimpanan data pada umumnya menggunakan empat jenis media
penyimpanan berdasarkan tingkat reliabilitas/tahan uji-nya.

Terdapat 2 jenis penyimpanan :
Volotile storage, biasanya tidak bertahan jika terjadi kerusakan sistem (system
crash). contohnya : main memory
Nonvolotile storage, magnetic disk merupakan online nonvolatile storage dan
magnetic tape merupakan offline nonvolatile storage. lebih reliable dan lebig murah.
Stable storage, merepresentasikan informasi yang telah direplika kedalam beberapa
media penyimpanan non-volotile (biasanya disk) dengan jenis kerusakan yang
terpisah.

Pearson Education 2009
97
Types of Failures
System Crashes, menyebabkan hilangnya data dari main memory.
Media Failures, menyebabkan hilangnya sebagian data dari
media penyimpanan secondary.
Application Software errors, misalnya logical erroryang terdapat
dalam program yang mengakses database sehingga menyebabkan
satu atau lebih transaksi mengalami kegagalan.
Natural physical disaster, bencana alam/musibah seperti
:kebakaran, banjir, gempa bumi, kerusakan listrik.
Carelessness, kecerobohan atau tindakan tidak sengaja yang
menyebabkan kerusakan data, yang dilakukan oleh operator atau
user.
Sabotage, sabotase atau tindakan sengaja merusak atau mencuri
data, fasilitas harware maupun software.
Pearson Education 2009
98
Transactions and Recovery
Transaksi merepresentasikan unit dasar dari recovery dalam
sistem database.
Recovery manager bertanggung jawab atas atomicity dan
durability. Jika kesalahan terjadi antara penulisan ke buffer
dan mengirimkan buffer database ke penyimpanan sekunder
maka recovery manager harus menetapkan status dari
transaksi yang melakukan penulisan pada saat terjadi
kerusakan.
Jika transaksi dinyatakan commit, maka untuk memastikan
durability, recovery manager harus melakukan redo
(rollforward) terhadap perubahan transaksi.
Pearson Education 2009
99
Transactions and Recovery
Jika transaksi belum committed pada saat terjadi
kerusakan, recovery manager harus melakukan
undo (rollback) segala akibat dari transaksi tersebut
untuk menjamin atomicity transaksi.
Partial undo - Jika hanya terdapat satu transaksi
yang tidak diselesaikan.
Global undo - jika seluruh transaksi tidak
terselesaikan.
Pearson Education 2009
100
Example
DBMS Mulai pada saat t
0
, tetapi gagal pada saat t
f
. Diasumsikan
data untuk transaksi T
2
dan T
3
telah dituliskan ke penyimpanan
sekunder sebelum terjadi kegagalan. T
1
dan T
6
dipastikan belum
comitted,maka ketika restart recovery manager harus meng-undo
T
1
dan T
6
. Untuk transaksi T
4
dan T
5
disimpan pada media
penyimpanan non-volotile, oleh karena itu recovery manager harus
melakukan redo transaksi T
2
, T
3
, T
4
, dan T
5
.

Pearson Education 2009
101
Recovery Facilities
DBMS harus menyediakan fasilitas berikut untuk
mendukung recovery :
Mekanisme Backup, yang akan mebuat salinan dari database secara
periodik.
Fasilitas Logging (pencatatan), yang menyimpan catatan dari stata
transaksi dan perubahan database.
Fasilitas Checkpoint, yang memungkinkan merubah database yang
sedang dalam pengembangan menjadi permanen.
Recovery manager, yang mengizinkan DBMS untuk menyimpan
database pada stata konsisten jika terjadi kerusakan/kesalahan.

Pearson Education 2009
102
Log File
Contains information about all updates to
database:
Transaction records.
Checkpoint records.
Often used for other purposes (for example,
auditing).
Untuk menyimpan catatan dari transaksi
database, DBMS memiliki file khusus yang
disebut log file, yang berisi informasi tentang
semua perubahan terhadap database.
Pearson Education 2009
103
Log File
Transaction records contain:
Identifier transaksi
Tipe dari record catatan (transaksi start, insert, update, delete,
abort, commit)
Identifier dari data item yang diakibatkan oleh aksi database
(operasi insert, delete dan update)
before-image dari data item, yaitu nilai sebelum dilakukan
perubahan (hanya operasi update dan delete)
after-image dari data item, yaaitu nilai sesudah perubahan
(hanya operasi insert dan update)
Informasi manajemen catatan, seperti pointer ke record catatan
sebelum (previous) dan sesudah (next) untuk transaksi tersebut
(seluruh operasi)
104
Sample Log File
Pearson Education 2009
105
Log File
Log file dapat dibuat duplexed atau triplexed (yaitu
dibuat dua atau tiga salinan terpisah), sehingga bila
yang satu rusak masih terdapat yang lain.
Terkadang Log file dipisahkan menjadi dua file
random-access yang terpisah.
Potensial terjadi bottleneck, dimana kecepatan
penulisan kedalam log file dapat menjadi kritis
dalam menentukan keseluruhan performa sistem
database.
Pearson Education 2009
106
Checkpointing
Checkpoint
Point of synchronization between database
and log file. All buffers are force-written to
secondary storage.

Checkpoint record is created containing
identifiers of all active transactions.
When failure occurs, redo all transactions that
committed since the checkpoint and undo all
transactions active at time of crash.
Pearson Education 2009
107
Checkpointing
Checkpoint adalah titik dari penyelarasan
(synchronization) antara database dan log file.
Checkpoint dijadwalkan saat penetapan sebelum
interval dan menyertakan operasi berikut:

Menuliskan seluruh record log dalam main memory kedalam
penyimpanan sekunder.
Menuliskan blok perubahan dalam buffer database ke
penyimpanan sekunder.
Menuliskan record checkpoint kedalam log file. record ini
berisikan identifier dari seluruh transaksi aktif pada saat
checkpoint.
Pearson Education 2009
108
Checkpointing
Jika kerusakan terjadi, akan melaksanakan redo
seluruh transaksi yang committed sejak check point
dan melaksanakan undo seluruh transaksi aktif pada
saat gagal (crash) . Pada contoh yang lalu dengan
checkpoint pada saat t
c
, perubahan yang dibuat oleh
T
2
dan T
3
telah dituliskan kedalam penyimpanan
sekunder, karena itu yang dilakukan :
T
4
dan T
5

undo transaksi T
1
dan T6.

Pearson Education 2009
109
Recovery Techniques
Jika database mengalami kerusakan seperti :

Jika database mengalami kerusakan secara luas, misalnya kerusakan
disk head dan kerusakan database, maka perlu dikembalikan ke back-
up/salinan terakhir dari database dan diaplikasikan ulang operasi update
dari transaksi yang committed dengan menggunakan log file.

Jika database hanya mengalami ketidak-konsistenan (inconsistent),
maka harus melakukan undo perubahan-perubahan yang menyebabkan
tidak konsisten. Juga perlu melakukan redo terhadap beberapa transaksi
untuk menjamin perubahan yang dilakukan telah disimpan ke
penyimpanan sekunder. Tidak memerlukan back-up salinan dari
database tetapi dapat mengembalikan database ke stata konsisten
dengan menggunakan before dan after image yang ada dalam log file.

110
Recovery Techniques
If database has been damaged:
Need to restore last backup copy of database and
reapply updates of committed transactions using
log file.
If database is only inconsistent:
Need to undo changes that caused inconsistency.
May also need to redo some transactions to ensure
updates reach secondary storage.
Do not need backup, but can restore database
using before- and after-images in the log file.
Pearson Education 2009
111
Main Recovery Techniques
Three main recovery techniques:

Deferred Update
Immediate Update
Shadow Paging
Pearson Education 2009
112
Deferred Update
Dengan menggunakan protocol recovery deferred
update, update tidak dituliskan kedalam database
sampai dengan transaksi mencapai titik commit.
Jika transaksi gagal sebelum commit, maka update
tersebut tidak akan merubah database dan tidak perlu
melakukan undo perubahan.
Tetapi mungkin perlu melakukan redo update dari
transaksi yang committed sebagai akibat tidak
mencapai database
Pearson Education 2009
113
Deferred Update
Dalam hal ini digunakan log file untuk perlindungan dari kesalahan
sistem dengan cara :

Ketika mulai transaksi, tuliskan record transaction start pada log file
ketika operasi penulisan dilaksanakan , tuliskan record log berisikan
seluruh data log yang telah dispesifikasikan sebelumnya. Tidak menuliskan
update pada buffer database atau database itu sendiri.
Ketika transaksi commit, tuliskan transaction commit pada record log,
tulis seluruh record log transaksi ke disk, kemudian selesaikan transaksi.
Gunakan record log untuk menjalankan update pada database.
Jika transaksi gagal, abaikan record log transaksi dan jangan melakukan
penulisan.

Pearson Education 2009
114
Immediate Update
Dengan menggunakan protocol recovery immediate
update, Update di aplikasikan pada data base ketika
dijalankan tanpa harus menunggu titik commit.
Perlu melakukan redo update dari transaksi
committed jika terjadi kesalahan, menjadi penting
untuk mengulang (undo) akibat dari transaksi yang
belum committed pada saat terjadi kesalahan.
Pearson Education 2009
115
Immediate Update
Dalam kasus ini digunakan log file untuk perlindungan terhadap
kesalahan sistem dengan cara :

Jika transaksi dimulai, tuliskan record transaction start pada log file.
Ketika operasi penulisan dilaksanakan, tuliskan record berisikan data-
data yang dianggap perlu kedalam log file.
Ketika log file sudah ditulis, tuliskan update pada buffer database.
Update terhadap database itu sendiri dilakukan ketika buffer dikirimkan
kemudian ke penyimpanan sekunder.
Ketika transaksi commit, tuliskan record transaction commit di log file.

Pearson Education 2009
116
Immediate Update
Pada dasarnya record log dituliskan sebelum
penulisan yang sesuai pada database, dikenal
dengan Write-ahead log protocol. Jika tidak
terdapat record transaction commit dalam log,
kemudian transaksi tersebut aktif pada saat terjadi
kesalahan daka harus digagalkan.
Jika transaksi gagal, log dapat digunakan untuk
melakukan undo (melaksanakan in reverse order)
dimana telah dituliskan dalam log file.
Pearson Education 2009
117
Shadow Paging
Mengatur/memelihara dua table selama transaksi
berlangsung yaitu : tabel current page dan shadow
page.
Ketika transaksi dimulai, kedua tabel tersebut sama.
tabel shadow page tidak akan diubah sesudah itu dan
digunakan untuk mengembalikan database pada saat
terjadi kesalahan.
Selama transaksi berlangsung tabel current page
digunakan untuk mencatat seluruh update terhadap
database.
Ketika transakti selesai, tabel current page menjadi
tabel shadow page.

Pearson Education 2009
118
Advanced Transaction Models
Protocols considered so far are suitable for types
of transactions that arise in traditional business
applications, characterized by:
Data has many types, each with small number
of instances.
Designs may be very large.
Design is not static but evolves through time.
Updates are far-reaching.
Cooperative engineering.
Pearson Education 2009
119
Advanced Transaction Models
May result in transactions of long duration,
giving rise to following problems:
More susceptible to failure - need to minimize
amount of work lost.
May access large number of data items -
concurrency limited if data inaccessible for
long periods.
Deadlock more likely.
Cooperation through use of shared data items
restricted by traditional concurrency
protocols.
Pearson Education 2009
120
Advanced Transaction Models
Look at five advanced transaction models:

Nested Transaction Model
Sagas
Multi-level Transaction Model
Dynamic Restructuring
Workflow Models
Pearson Education 2009
121
Nested Transaction Model
Transaction viewed as hierarchy of subtransactions.
Top-level transaction can have number of child
transactions.
Each child can also have nested transactions.
In Mosss proposal, only leaf-level subtransactions
allowed to perform database operations.
Transactions have to commit from bottom upwards.
However, transaction abort at one level does not have
to affect transaction in progress at higher level.
Pearson Education 2009
122
Nested Transaction Model
Parent allowed to perform its own recovery:
Retry subtransaction.
Ignore failure, in which case subtransaction
non-vital.
Run contingency subtransaction.
Abort.
Updates of committed subtransactions at
intermediate levels are visible only within scope
of their immediate parents.
Pearson Education 2009
123
Nested Transaction Model
Further, commit of subtransaction is
conditionally subject to commit or abort of its
superiors.
Using this model, top-level transactions
conform to traditional ACID properties of flat
transaction.
Pearson Education 2009
124
Example of Nested Transactions
Pearson Education 2009
125
Nested Transaction Model - Advantages
Modularity - transaction can be decomposed
into number of subtransactions for purposes of
concurrency and recovery.
Finer level of granularity for concurrency
control and recovery.
Intra-transaction parallelism.
Intra-transaction recovery control.
Pearson Education 2009
126
Emulating Nested Transactions using Savepoints
An identifiable point in flat transaction
representing some partially consistent state.

Can be used as restart point for transaction if
subsequent problem detected.
During execution of transaction, user can
establish savepoint, which user can use to roll
transaction back to.
Unlike nested transactions, savepoints do not
support any form of intra-transaction
parallelism.
Pearson Education 2009
127
Sagas
A sequence of (flat) transactions that can be
interleaved with other transactions.

DBMS guarantees that either all transactions in
saga are successfully completed or compensating
transactions are run to undo partial execution.
Saga has only one level of nesting.
For every subtransaction defined, there is
corresponding compensating transaction that
will semantically undo subtransactions effect.
Pearson Education 2009
128
Sagas
Relax property of isolation by allowing saga to
reveal its partial results to other concurrently
executing transactions before it completes.
Useful when subtransactions are relatively
independent and compensating transactions can
be produced.
May be difficult sometimes to define
compensating transaction in advance, and DBMS
may need to interact with user to determine
compensation.
Pearson Education 2009
129
Multi-level Transaction Model
Closed nested transaction - atomicity enforced at the
top-level.
Open nested transactions - allow partial results of
subtransactions to be seen outside transaction.

Saga model is example of open nested transaction.
So is multi-level transaction model where tree of
subtransactions is balanced.
Nodes at same depth of tree correspond to
operations of same level of abstraction in DBMS.
Pearson Education 2009
130
Multi-level Transaction Model
Edges represent implementation of an operation
by sequence of operations at next lower level.
Traditional flat transaction ensures no conflicts
at lowest level (L0).
In multi-level model two operations at level Li
may not conflict even though their
implementations at next lower level Li-1 do.
Pearson Education 2009
131
Example - Multi-level Transaction Model
Pearson Education 2009
132
Example - Multi-level Transaction Model
T
7
: T
71
, which increases bal
x
by 5
T
72
, which subtracts 5 from bal
y

T
8
: T
81
, which increases bal
y
by 10
T
82
, which subtracts 2 from bal
x

As addition and subtraction commute, can
execute these subtransactions in any order, and
correct result will always be generated.
Pearson Education 2009
133
Dynamic Restructuring
To address constraints imposed by ACID
properties of flat transactions, two new
operations proposed: split_transaction and
join_transaction.
split-transaction - splits transaction into two
serializable transactions and divides its actions
and resources (for example, locked data items)
between new transactions.
Resulting transactions proceed independently.
Pearson Education 2009
134
Dynamic Restructuring
Allows partial results of transaction to be shared,
while still preserving its semantics.
Can be applied only when it is possible to
generate two transactions that are serializable
with each other and with all other concurrently
executing transactions.
Pearson Education 2009
135
Dynamic Restructuring
Conditions that permit transaction to be split into
A and B are:
.AWriteSet BWriteSet BWriteLast.
If both A and B write to same object, Bs write
operations must follow As write operations.
.AReadSet BWriteSet = .
A cannot see any results from B.
.BReadSet AWriteSet = ShareSet.
B may see results of A.
Pearson Education 2009
136
Dynamic Restructuring
These guarantee that A is serialized before B.
However, if A aborts, B must also abort.
If both BWriteLast and ShareSet are empty,
then A and B can be serialized in any order and
both can be committed independently.
Pearson Education 2009
137
Dynamic Restructuring
join-transaction - performs reverse operation,
merging ongoing work of two or more
independent transactions, as though they had
always been single transaction.
Pearson Education 2009
138
Dynamic Restructuring
Main advantages of dynamic restructuring are:

Adaptive recovery.
Reducing isolation.
Pearson Education 2009
139
Workflow Models
Has been argued that above models are still not
powerful to model some business activities.
More complex models have been proposed that are
combinations of open and nested transactions.
However, as they hardly conform to any of ACID
properties, called workflow model used instead.
Workflow is activity involving coordinated
execution of multiple tasks performed by different
processing entities (people or software systems).
Pearson Education 2009
140
Workflow Models
Two general problems involved in workflow
systems:
specification of the workflow,
execution of the workflow.
Both problems complicated by fact that many
organizations use multiple, independently
managed systems to automate different parts of
the process.
Pearson Education 2009

Anda mungkin juga menyukai