Back to Latihan UAS IF3140

Problem Set: Concurrency Control (Paket C - Advanced)

Mata Pelajaran: Sistem Basis Data

Estimasi Waktu: 120 Menit

Total Nilai: 100 Poin

Petunjuk Umum

  • Jawablah soal teori dengan ringkas dan tepat.

  • Untuk soal studi kasus, sertakan tracing langkah demi langkah.

  • Gunakan matriks kompatibilitas dan aturan protokol yang sesuai dengan materi pendukung.

SOAL 1: Lock-Based & Compatibility Matrix (20 Poin)

A. Teori: Matriks Kompatibilitas (10 Poin)

Lengkapilah tabel matriks kompatibilitas berikut dengan memberikan tanda (v) jika kompatibel dan (x) jika tidak kompatibel. Berikan satu kalimat penjelasan mengapa kunci SIX memiliki sifat tersebut terhadap IX.

StatusISIXSSIXX
IS
IX
S
SIX
X

Penjelasan SIX vs IX: __________________________________________________________________

B. Studi Kasus: Rigorous 2PL dengan Upgrade Lock (10 Poin)

Diberikan urutan kedatangan instruksi: .

Gunakan protokol Rigorous 2PL dengan aturan Transaction Manager:

  • Transaksi meminta kunci saat read dan melakukan Upgrade ke saat write.

  • Jika terblokir, instruksi masuk Blocking Queue. Saat bebas, antrian diprioritaskan.

Pertanyaan: Tuliskan schedule eksekusi lengkap (Lock, Op, Unlock) dan status Blocking Queue.

SOAL 2: Tree Protocol & Path Analysis (20 Poin)

A. Teori: Isian Terstruktur (5 Poin)

Jelaskan perbedaan kondisi yang menyebabkan sebuah transaksi di-abort pada protokol Tree Protocol dibandingkan dengan Basic 2PL. Jika Tree Protocol tidak mengenal fase shrinking, apakah ia masih menjamin Conflict Serializability? Mengapa?

B. Studi Kasus: E-Learning Hierarchy (15 Poin)

Perhatikan struktur hirarki sistem E-Learning berikut:

graph TD
    DB[E-Learning_DB] --> C1[Course_SBD]
    DB --> C2[Course_Alpro]
    C1 --> M1[Modul_1]
    C1 --> M2[Modul_2]
    M1 --> Q1[Kuis_1]
    M1 --> Q2[Kuis_2]
    M2 --> Q3[Kuis_3]
    C2 --> M3[Modul_3]

Pertanyaan:

i. Transaksi T1 perlu mengubah Kuis_1 dan Kuis_3. Tuliskan urutan dan yang paling efisien agar T1 tidak mengunci seluruh database terlalu lama.

ii. Transaksi T2 mulai setelah T1 melakukan pada Course_SBD. T2 ingin membaca Kuis_2. Tunjukkan pada node mana T2 akan tertahan (wait).

SOAL 3: Multiple Granularity & Lock Escalation (20 Poin)

A. Teori: Analisis Trade-off (5 Poin)

Dalam konteks Multiple Granularity, jelaskan fenomena Lock Escalation. Kapan sebuah DBMS sebaiknya menaikkan granularitas kunci dari level Record ke level Table?

B. Studi Kasus: Operasi Batch vs Point (15 Poin)

Hirarki: DB Table Page Record.

T3: “Menghitung total nilai seluruh mahasiswa pada tabel Nilai (Read All) dan memberikan bonus 5 poin pada record mahasiswa dengan ID = 135.”

T4: “Mengubah alamat mahasiswa dengan ID = 140 pada tabel yang sama.”

Pertanyaan:

i. Tentukan daftar kunci niat () untuk T3 agar pengerjaan efisien.

ii. Jika T3 memegang kunci pada level tabel, apakah T4 dapat mengeksekusi operasinya secara paralel? Sertakan alasan berdasarkan jenis kunci yang dipegang.

SOAL 4: Non-Locking Protocols & Obsolete Writes (20 Poin)

A. Teori: Fase Validation (5 Poin)

Pada Validation-Based Protocol, jelaskan apa yang terjadi jika sebuah transaksi berada pada Validation Phase dan ditemukan bahwa sementara .

B. Studi Kasus: Thomas’ Write Rule Challenge (15 Poin)

Schedule: .

Asumsikan dan .

Pertanyaan:

i. Lakukan tracing menggunakan Basic Timestamp Ordering. Manakah transaksi yang gagal?

ii. Lakukan tracing menggunakan Thomas’ Write Rule.

SOAL 5: MVCC & Snapshot Isolation Anomaly (20 Poin)

A. Teori: Write Skew Analysis (5 Poin)

Jelaskan mengapa Snapshot Isolation (SI) yang menggunakan logika First-Committer Wins tidak dapat mencegah anomali Write Skew. Berikan satu contoh skenario dunia nyata di mana Write Skew merugikan konsistensi data.

B. Studi Kasus: Multiversion Tracing (15 Poin)

Data awal: . Transaksi:

Urutan Eksekusi:

Pertanyaan:

Tuliskan versi data yang tercipta, nilai dan setiap versi, serta transaksi mana yang harus abort menurut protokol Multiversion Timestamp Ordering.

Tips Advanced:

  • Hati-hati pada SIX lock, ia sering menjadi penjebak dalam soal paralelisme tabel.

  • Pada MVCC, selalu perhatikan pada versi yang spesifik dibaca oleh transaksi tersebut.