Back to Latihan UAS IF3140

Problem Set: Concurrency Control (Paket A)

Mata Pelajaran: Sistem Basis Data

Estimasi Waktu: 120 Menit

Total Nilai: 100 Poin

Tujuan Pembelajaran

Setelah menyelesaikan problem set ini, mahasiswa diharapkan dapat:

  1. Melakukan tracing perolehan kunci (locks) pada protokol Two-Phase Locking (Basic, Strict, dan Rigorous).

  2. Mengimplementasikan Tree Protocol pada struktur data hirarkis.

  3. Menganalisis perolehan Intention Locks pada protokol Multiple Granularity.

  4. Menentukan validitas schedule berdasarkan Timestamp Ordering dan Validation-Based Protocol.

  5. Mengevaluasi nasib transaksi pada protokol Multiversion dan Snapshot Isolation (First-Committer Wins).

SOAL 1: Two-Phase Locking Protocols (20 Poin)

Diberikan urutan masuk instruksi dari 3 buah transaksi () ke DBMS sebagai berikut:

Schedule S:

Asumsikan:

  • dan adalah operasi read dan write transaksi terhadap data .

  • DBMS menggunakan automatic acquisition of locks.

  • Tidak ada skema pencegahan deadlock (jika terjadi deadlock, instruksi terhenti).

Pertanyaan:

Tuliskan schedule eksekusi lengkap dengan perolehan kunci (: Shared Lock, : Exclusive Lock, : Unlock) untuk protokol berikut:

a. Basic Two-Phase Locking (2PL).

b. Strict Two-Phase Locking (Strict 2PL).

c. Rigorous Two-Phase Locking (Rigorous 2PL).

Catatan: Tunjukkan pada langkah mana transaksi harus menunggu (WAIT) jika terjadi konflik.

SOAL 2: Tree Protocol (15 Poin)

Diberikan partial ordering item data dalam struktur pohon sebagai berikut:

graph TD
    DB[Database] --> TA[Table_A]
    DB --> TB[Table_B]
    TA --> PA1[Page_A1]
    TA --> PA2[Page_A2]
    TB --> PB1[Page_B1]
    PA1 --> R1[Rec_1]
    PA1 --> R2[Rec_2]
    PA2 --> R3[Rec_3]
    PB1 --> R4[Rec_4]

i. Prosedur Lock/Unlock:

Tuliskan urutan instruksi dan yang valid sesuai Tree Protocol untuk transaksi berikut:

  • T4: Mengubah nilai pada Rec_1 dan Rec_3.

  • T5: Membaca dan mengubah nilai pada Rec_2 dan Rec_4.

ii. Analisis Keamanan:

Jelaskan mengapa Tree Protocol menjamin sistem bebas dari deadlock meskipun tidak menggunakan skema pencegahan tambahan (seperti timestamping atau deadlock detection).

SOAL 3: Multiple Granularity Locking (15 Poin)

Sebuah sistem basis data menggunakan hirarki: Database (DB) Tabel (T) Blok (B) Record (R).

Tabel “Karyawan” terdiri dari 100 blok data. Transaksi ingin melakukan operasi sebagai berikut:

“Membaca seluruh record pada Tabel Karyawan, namun hanya mengubah nilai gaji pada record-record yang berada di Blok 15 dan Blok 50.”

Pertanyaan:

i. Sebutkan urutan perolehan lock () yang diminta oleh dari level tertinggi hingga terendah.

ii. Jika pada saat yang sama transaksi sedang memegang pada Blok 15, apakah dapat melanjutkan operasinya? Jelaskan menggunakan matriks kompatibilitas lock.

SOAL 4: Timestamp & Validation Protocols (25 Poin)

Diberikan schedule sebagai berikut:

Schedule S2:

Asumsikan dan . Sebelum eksekusi, semua dan item data adalah 0.

Pertanyaan:

i. Apakah schedule tersebut diizinkan oleh Basic Timestamp Ordering Protocol? Lakukan tracing langkah demi langkah.

ii. Apakah schedule tersebut diizinkan jika menggunakan Thomas’ Write Rule? Jelaskan perbedaannya.

iii. Lakukan tracing Validation-Based Protocol untuk schedule tersebut. Tentukan apakah berhasil melewati fase validasi setelah commit.

(Gunakan 3 fase: Read, Validation, Write).

SOAL 5: Multiversion & Snapshot Isolation (25 Poin)

Diberikan transaksi dan nilai awal data .

  • T8:

  • T9:

Eksekusi interleaved yang terjadi adalah:

  1. (T8)

  2. (T9)

Pertanyaan:

i. Jika menggunakan Multiversion Timestamp Ordering, tuliskan versi data yang dihasilkan (, dst) dan nilai serta pada setiap langkah.

ii. Jika menggunakan Snapshot Isolation dengan aturan First-Committer Wins, tentukan apakah berhasil commit. Berikan penjelasan mengenai Write Set dari kedua transaksi tersebut.

Tips Pengerjaan untuk Peserta

  1. Alokasikan 30 menit untuk Soal 1 karena tracing lock sangat rawan ketidaktelitian.

  2. Pada Multiple Granularity, selalu mulai dari level Database.

  3. Ingat: Pada Snapshot Isolation, transaksi membaca data yang sudah dicommit sebelum transaksi tersebut dimulai.