3.Serializability
merupakan pengontrolan secara konkurensi kepada kebenaran dari kriteria yang membutuhkan eksekusi konkuren dari transaksi dan harus ekuivalen terhadap efek dari eksekusi serial transaksi tersebut.
Sistem basis data harus dapat mengontrol eksekusi konkurensi dari suatu transaksi untuk memastikan database tetap terjaga konsistensinya
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.
Conflict Serializability
Instruksi Ii dan Ij masing – masing dari transaksi Ti dan Tj , konflik jika dan hanya jika ada beberapa item data yang sama (Q) diakses secara bersama – sama baik oleh Ii dan Ij , serta setidaknya salah satu dari instruksi melakukan operasi write (Q).
1. Jika Ii = read(Q) dan Ij = read(Q), maka Ii dan Ij tidak konflik
2. Jika Ii = read(Q) dan Ij = write(Q), maka Ii dan Ij konflik
3. Jika Ii = write(Q) dan Ij = read(Q), maka Ii dan Ij konflik
4. Jika Ii = write(Q) dan Ij = write(Q), maka Ii dan Ij konflik
Secara intuitif, konflik diantara Ii dan Ij memaksakan perintah logika temporal diantara keduanya
Jika Ii dan Ij merupakan instruksi dari transaksi berbeda dan tidak konflik, maka urutan instruksi Ii dan Ij dapat ditukar sehingga menghasilkan jadwal baru dengan hasil yang tetap sama
Jika jadwal S dapat ditransformasikan menjadi jadwalan S’oleh 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 :
Penjadwalan 3 di bawah bisa ditransformasikan ke penjadwalan 1, penjadwalan serial dimana T2 diikuti T1 , dengan serangkaian penukaran instruksi yang tidak konflik. Oleh karena itu penjadwalan di bawah ini conflict serializability :
View Serializability
Misalkan S dan S’ adalah dua jadwal dengan serangkaian transaksi yang sama. S dan S’ adalah view equivalent.
view serializability dilihat berdasarkan pada operasi read dan write saja.
Sebuah jadwal S adalah view seralizable , setara dengan penjadwalan serial.
Setiap penjadwalan conflict serializable, juga view seriable
Penjadwalan di bawah ini adalah penjadwalan yang view serializable tapi tidak conflict serializable.
Penjadwalan di bawah menghasilkan outcome yang sama sebagai jadwal serial (T1, T2)
Tidak ada komentar:
Posting Komentar