• Tidak ada hasil yang ditemukan

Sistem Manajemen Basis Data (Teknik Konkurensi)

N/A
N/A
Protected

Academic year: 2018

Membagikan "Sistem Manajemen Basis Data (Teknik Konkurensi)"

Copied!
44
0
0

Teks penuh

(1)

Sistem Manajemen Basis Data

(Teknik Konkurensi)

(2)

Materi

Konsep Transaksi

Status transaksi

Penerapan Atomisitas dan Durabilitas

Eksekusi konkuren

Serializability

Recoverability

Penerapan Isolasi

(3)

Konsep Transaksi

Sebuah

transaksi

adalah

sebuah

unit

dari eksekusi

program yang mampu

mengakses dan mengupdate

berbagai data.

Sebuah transaksi akan

(4)

Konsep Transaksi

Selama eksekusi transaksi

database mungkin dalam

kondisi inkonsisten.

Setelah transaksi selesai,

(5)

Properti AKID

Atomik

Dimana semua operasi-operasi dalam transaksi dapat bekerja secara utuh atau tidak sama sekali.

Konsisten

Eksekusi transaksi dapat menjamin konsistensi database.

Isolasi/Independent

Pada sejumlah transaksi yang terjadi secara

bersamaan, setiap transaksi tidak boleh terpengaruh dengan transaksi yang lain. Hasil transaksi sementara harus terlindung dari eksekusi transaksi yang lain.

(6)

Properti AKID

Maksudnya, untuk setiap pasangan

transaksi

T

i

dan

T

j

,

menunjukkan kepada

T

i

bahwa transaksi lain

T

j

menyelesaikan

eksekusi sebelum

T

i

mulai, atau

T

j

mulai

eksekusi setelah

T

i

selesai.

Durabel (bertahan/permanen)

.

Setelah sebuah transaksi berakhir

dengan sukses, perubahan yang terjadi

pada sebuah database harus tetap

(7)

Contoh pada transfer uang

Transaksi pengiriman 50 dari rekening

A

ke

rekening

B

:

1. read(A)

2. A := A – 50 3. write(A) 4. read(B)

5. B := B + 50 6. write(B)

Konsistensi yang dibutuhkan – jumlah A dan

(8)

Contoh pada transfer uang

Keatomikan yang diperlukan — jika

transaksi terhenti setelah tahap ke 3

sebelum tahap ke 6, sistem harus

menjamin bahwa perubahan pada

database tidak terjadi samasekali,

sebab jika tidak maka ketidak

(9)

Kebutuhan akan daya tahan — seorang user dapat

menyelesaikan sebuah transaksi secara lengkap (mis., transfer 50 telah diterima), perubahan nilai pada database harus tetap bertahan, bahkan jika kemudian terjadi crash.

Kebutuhan akan keterisolasian — jika diantara

langkah ke 3 dan 6, ada transaksi lain mengakses database yang akan diubah, maka akan terjadi

ketidak konsistenan data (jumlah A + B akan lebih sedikit dari yang seharusnya).

(10)

Contoh pada transfer uang

Dapat dijamin bila transaksi akan terjadi

secara

serial

,

dimana yang satu

berjalan setelah yang lainnya.

Bagaimanapun juga eksekusi transaksi

secara bersamaan tetap lebih

(11)

Status Transaksi

Aktif,

adalah status awal; sebuah

transksi akan ada dalam status ini

selama eksekusi berlangsung

Selesai sebagian,

keadaan yang

dicapai transaksi tepat setelah

instruksi terakhir dalam transksi

selesai dikerjakan.

Gagal,

kedaan dimana eksekusi

(12)

Status Transaksi

Batal,

setelah transaksi batal terjadi

dan database dikembalikan

nilai-nilainya seperti sebelum transaksi.

Dua pilihan setelah pembatalan:

Memulai kembali transaksi – hanya

jika tidak ada kesalahan lojik

Hentikan transaksi

(13)
(14)

Eksekusi Konkuren

Banyak transaksi dapat dijalankan secara bersamaan dalam

sebuah sistem. Keuntungannya:

Meningkatkan kinerja prosesor dan disk

penyimpanan, untuk melakukan transaksi yang lebih

baik: suatu transaksi dapat menggunakan CPU sementara yang lain membaca atau menulis dalam penyimpan

Mengurangi rata-rata waktu tunggu transaksi:

transaksi yang singkat tidak perlu menunggu transaksi lain yang lebih panjang.

Skema pengendalian konkurensi – mekanisme untuk

(15)

15

DEF. PENGONTROLAN

KONKURENSI

Proses pengelolaan operasi pada

basis data secara simultan tanpa

saling berinterferensi satu sama lain

Pengaksesan konkuren yg hanya

membaca data, tidak akan saling

ber-interferensi, tetapi apabila ada yg

(16)

16

1. Lost update (modifkasi yg hilang)

Masalah operasi update yg sukses dari seorang pengguna kemudian ditimpali oleh operasi update dari pengguna lain

2. Uncommited dependency (ketergantungan yg tidak

sukses/modifkasi sementara)

Masalah terjadi saat suatu transaksi membaca data dari transaksi lain yg belum dicommit

3. Inconsistent analysis

Masalah terjadi saat satu transaksi membaca beberapa nilai tetapi transaksi kedua pd waktu sama memodifkasi nilai tersebut.

(17)

Tiga masalah konkurensi

Lost update

 Transaksi A retrieve nilai t saat w1. Transaksi B retrieve nilai

t saat w2. Transaksi B mengubah nilai satu atau lebih record tanpa melihat efek transaksi A. Transaksi B overwrite nilai-nilai hasil transaksi A sehingga adalah mungkin transaksi A tidak melihat efek perubahan yang dilakukan B

Transaksi A

Transaksi A WaktuWaktu Transaksi BTransaksi B Select * from t;

Select * from t; w1w1 w2

w2 Select * from t;Select * from t; *update t set

*update t set

id=1

id=1

Where id = 2;

Where id = 2;

w3

w3

w4

w4 Update t set id Update t set id = 3 where id =

= 3 where id =

2;

2;

(18)

Uncommitted dependency

 Masalah muncul jika transaksi diijinkan retrieve record-record yang telah diubah nilainya oleh transaksi lain yang belum save. Karena belum save selalu ada

kemungkinan perubahan tersebut akan di-undo (redo)

Transaksi A

Transaksi A waktuwaktu Transaksi BTransaksi B w1

w1 Update t set dept_id=1;Update t set dept_id=1; Select * from t;

Select * from t; w2w2 w3

w3 rollback;rollback;

Transaksi A dependent ke uncommitted change saat w2

(19)

Transaksi A

Transaksi A waktuwaktu Transaksi BTransaksi B w1

w1 Update t set dept_id=1;Update t set dept_id=1; Update t set

Update t set

dept_id=11;

dept_id=11; w2w2

w3

w3 rollback;rollback;

A mengubah uncommitted change saat

w2, kehilangan saat w3,

(20)

20

Masalah Analisis yang tidak Konsisten

(21)

Penjadwalan

Penjadwalan

– urutan yang menunjukkan

kronologi transaksi yang mana dalam

transaksi konkuren di eksekusi

Sebuah jadwal untuk sekelompok

transaksi harus patuh pada semua

instruksi dari transaksi-transaksi tersebut

Harus menjaga urutan instruksi yang

(22)

22

OBJEKTIF PENGONTROLAN

KONKURENSI

Penjadualan transaksi untuk

mencegah adanya saling interferensi.

Hanya satu transaksi dieksekusi pada

satu waktu : satu transaksi di-

commit

sebelum transaksi lain diperkenankan

untuk mulai.

Transaksi dapat dilakukan pada

(23)

Contoh Penjadwalan

Transaksi T

1

transfer 50

dari

A ke

B

, dan

transaksi

T

2

transfer

10% dari saldo rekening

(24)

Transaksi

T

1

dan

T

2

dijalankan secara

berselang seling

.

Penjadwalan

berikut bukan

penjadwalan serial,

tetapi

equivalent

dengan Jadwal 1.

Baik di Skedul 1 dan 2 jumlah dari A dan B benar.

(25)

Berikut adalah

penjadwalan secara

konkuren yang tidak

menghasilkan jumlah

A dan B dengan

benar.

(26)

26

SERIALIZABILITY

Schedule atau jadual merupakan urutan dari operasi

read & write secara bersamaan pada sekumpulan transaksi yg konkuren.

Serial schedule merupakan jadual dimana operasi2

setiap transaksi dieksekusi secara berurutan tanpa terselip operasi dari transaksi lain

Nonserial schedule merupakan jadual dimana

operasi2 dari sekumpulan transaksi konkuren dapat saling menyelip.

Serializable berarti jika jadual (nonserial)

(27)

27

SERIALIZABILITY (lanj.)

Urutan operasi sangat penting

Jika 2 transaksi hanya melakukan operasi

read data, maka tidak terjadi konfik & urutan

operasi tidak penting

Jika 2 transaksi melakukan operasi read &

write pada data yg berbeda, maka tidak

terjadi konfik & urutan operasi tidak penting

Jika satu transaksi melakukan operasi write

(28)

28

METODE UNTUK MENJAMIN

SERIALIZABILITY

1. LOCKING

2. TIMESTAMPING

Keduanya konservatif (pesimistik) karena

transaksi ditunda untuk mencegah konfik dg

transaksi lain di waktu kemudian.

3. METODE OPTIMISTIC

(29)

29

METODE LOCKING

Prosedur untuk mengontrol

pengaksesan data secara konkuren.

Apabila satu transaksi mengakses

basis data, suatu lock (kunci) akan

menolak pengaksesan transaksi lain

utk mencegah modifkasi yg tidak

(30)

30

Dua Lock/KUNCI

1. Kunci READ / S (digunakan bersama)

Jika transaksi mempunyai kunci read terhadap suatu data, maka dia dapat melakukan operasi

read tetapi tidak dapat melakukan operasi update terhadap data tsb.

2. Kunci WRITE / X (eksklusif)

(31)

31

ATURAN LOCKING

Transaksi yg akan mengakses suatu

data harus terlebih dahulu menguncinya,

meminta kunci S jika hanya melakukan

read data saja atau kunci X jika untuk

melakukan operasi read & write.

Jika data tsb belum dikunci oleh

(32)

32

ATURAN LOCKING (lanj.)

Jika data tsb telah dikunci, maka DBMS

menentukan apakah kunci yg diminta

sesuai dg yg ada. Jika kunci read yg

diminta sama dengan kunci read yg telah

ada, maka permintaan diperkenankan,

selain itu maka transaksi harus menunggu

(wait) sampai kunci write dilepaskan.

Transaksi terus menahan suatu kunci

(33)

33

(34)

34

PROTOKOL TWO-PHASE

LOCKING (2PL)

Protokol untuk menjamin

serializability

Suatu transaksi mengikuti protokol

(35)

35

Phase 1: Growing Phase

Transaksi dapat memperoleh kunci

Transaksi tidak boleh melepaskan kunci

Phase 2: Shrinking Phase

Transaksi boleh melepaskan kunci

Transaksi tidak dapat memperoleh kunci

(36)

36

(37)

37

(38)

38

(39)

39

DEADLOCK

Suatu situasi dimana dua atau lebih transaksi

masing2 menunggu (wait) suatu kunci yg

ditahan oleh transaksi lain, untuk dilepaskan.

2 teknik menangani deadlock

1.

Deadlock prevention

, DBMS mengamati

transaksi apakah menimbulkan deadlock

& tidak akan membiarkan deadlock terjadi

2.

Deadlock prevention and recovery

, DBMS

membiarkan terjadi deadlock,

(40)

40

(41)

41

METODE TIMESTAMPING

Timestamp, merupakan suatu identifkasi unik

yang dibuat DBMS untuk mengindikasikan

waktu mulai relatif dari suatu transaksi.

Dengan waktu sistem atau penambahan pada

kounter logik setiap waktu transaksi mulai.

Suatu protokol yg menyusun transaksi2

(42)

42

METODE OPTIMISTIC

Berbasis pada asumsi bahwa pada

lingkungan tertentu, jarang terjadi

konfik, sehingga lebih efsien

membiarkan transaksi dieksekusi.

Kemudian pada saat akan di-commit,

diidentifkasi apakah akan timbul

(43)
(44)

Tugas

Buatlah tulisan mengenai fasilitas locking dan

recovery pada

salah satu

software DBMS

Referensi

Dokumen terkait

Restoran yang telah menjadi salah satu khas Kota Semarang ini memiliki 3 cabang di lokasi yang berbeda, antara lain : Jl. Sebagai suatu bentuk usaha, restoran Nglaras Rasa

kebun yang tergabung dalam Perkebunan Nusantara IV (PTPN IV) yang terdapat. di Sumatra Utara dan merupakan perkebunan teh terbesar yang dimiliki

Pemegang saham publik EXCL yang telah menyatakan tidak menyetujui rencana Penggabungan pada saat RUPSLB dan bermaksud untuk menjual saham - saham mereka wajib mengisi

dimana tempat duduk yang digunakan harus sesuai dengan postur tubuh siswa dan dapat diubah posisinya sesuai dengan kebutuhan dalam kegiatan belajar mengajar.. Berdasarkan

Secara umum proses sertifikasi mencakup : peserta yang telah memastikan diri kompetensinya sesuai dengan standar kompetensi untuk paket/okupasi Operator Kran Putar Tetap

Informasi dari pemetaan pit dan rekonsiliasi geology telah dimasukkan ke dalam sumber daya baru dan perkiraan cadangan untuk mencerminkan tren rekonsiliasi yang lebih baik untuk

Dengan demikian perlu dilakukan penelitian untuk mengkaji seberapa besar tingkat pemanfaatan bivalvia oleh masyarakat sehinggga hasilnya dapat digunakan untuk

Tabel 4.6 Hasil Uji Coba Menu Data Verifikasi Test Case ID Tujuan Input Output yang diharapkan Hasil Keluaran Sistem 10 Menampilkan informasi tentang data customer yang