Rabu, 29 April 2020


Postest masalah Konkurensi


a. Jelaskan 2 metode untuk menjamin SERIALIZABILITY
b. Pada Metode Locking  untuk transaksi terus menahan suatu kunci sampai dilepaskan secara eksplisit selama eksekusi atau telah selesai, aturannya menggunakan matriks locking. Jelas kerja dari matriks Locking

Serializability adalah suatu aturan untuk menjadwalkan proses-proses transaksi yang dijalankan hampir bersamaan dengan tetap menjaga konsistensi data seolah-olah proses dari transaksi-transaksi tersebut dijalankan secara serial.  Metode untuk menjamin Seriability adalah Locking dan Timestamping.



1.METODE 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 ). Ada dua macam lock, yaitu shared lock dan exclusive lock yang harus digunakan sebelum melakukan akses membaca ataupun menulis terhadap database. Penggunaan lock ini adalah untuk menjaga konsistensi data didalam database.
>Jika sebuah transaksi mempunyai sebuah shared lock pada sebuah item data, transaksi tersebut dapat membaca item tapi tidak dapat mengubah datanya ( Connolly, 2005, p588 ). >Jika sebuah transaksi mempunyai sebuah exclusive lock pada sebuah item data, transaksi tersebut dapat membaca dan mengubah item data ( Connolly, 2005, p588 ).

- Bersama (Shared). Jika sebuah transaksi Ti  dapat melakukan penguncian dengan mode ini (dilambangkan dengan S) terhadap item data Q, maka Ti  dapat membaca, tapi tidak dapat mengubah nilai Q tersebut.
Tunggal (Exclusive). Jika sebuah transaksi Ti dapat melakukan penguncian dengan mode ini (dilambangkan dengan X) terhadap item data Q, maka Ti dapat membaca maupun mengubah nilai tersebut.
TAHAPAN PENGUNCIAN {matriks locking}
Phase 1: Fase bertumbuh (Growing Phase)
Transaksi dapat melakukan sejumlah penguncian, tetapi belum melepaskan satupun penguncian .
Phase 2: Fase pelepasan (Shrinking Phase)
Transaksi mungkin melepas kunci & Transaksi belum melakukan penguncian yang baru.

Titik dalam schedule dimana transaksi tersebut telah mendapatkan penguncian akhir disebut lockpoint transaksi.Locking dua fase tidak menjamin terjadinya deadlock.
Atran 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 transaksi apapun, maka kunci diperkenankan.
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 sampai dilepaskan secara eksplisit selama eksekusi atau telah selesai.

Strict Two-Phase Locking. Dengan mekanisme ini dikehendaki bahwa semua penguncian dengan mode exclusive dari sebuah transakasi harus tetap dipegang hingga transaksi berada dalam status berhasil sempurna (commiteed).
Rigorous two-phase locking yang menghendaki semua penguncian (exclusive maupun share) tetap diterapkan hingga transksaksi committed.


2.METODE TIMSTAMPING
Timestamp, merupakan suatu identifikasi unik dibuat DBMS yg mengindikasikan waktu mulai relatif dari suatu transaksi.Dengan waktu sistem atau penambahan pada kounter logik setiap waktu transaksi mulai. Suatu protokol yg menyusun transaksi2 secara global, dimana transaksi yg tertua, transaksi dg timestamp terkecil, mendapat prioritas utama dari konflik transaksi tsb.


Pretest masalah Konkurensi


  • Lost update problem (Masalah hilangnya data yang diupdate).
  • Uncommited dependency problem / dirty real (Masalah kebergantungan terhadap transaksi yang belum commit).
  • Inconsistent anaisys problem (masalah analisa yang tidak konsisten).
jelasakan secara singkat :

1.  Lost update problemketika dua user mengupdate dua buah data yang sama



Dari contoh diatas, maka transaksi A tidak akan dianggap dan data update pada transaksi A akan di overwrite oleh transaksi B Ini akan menimbulkan lost update problem pada transaksi A.

2.  Uncommited dependency problem, ketika user yang satu me-retrieve data dan user yang lain me-rollback data tersebut



Dari contoh diatas, maka transaksi A akan menerima data yang salah karena pada transaksi B saat di update terjadi kesalahan kemudian di rollback

3.  Inconsistent analysis problemketika user yang satu meretrieve data dan user yang lain mengupdate data tersebut


Dari contoh diatas, maka transaksi A akan menghasilkan data yang salah dan tidak sesuai database karena saat analisis di transaksi A terjadi update data pada salah satu datanya.

Pertanyaan Pengontrolan Kokurensi

a.     Jelaskan outcome dari transaksi dan berikan contoh nya

Hasil dari transaksi adalah Commit dan Rollback.

Untuk memastikan properti ACID dari suatu transaksi, setiap perubahan yang dilakukan pada data selama transaksi harus dilakukan atau dibatalkan. Ketika transaksi selesai secara normal, sistem pemrosesan transaksi melakukan perubahan yang dilakukan pada data; yaitu, itu membuat mereka permanen dan terlihat oleh transaksi lainnya. Ketika transaksi tidak selesai secara normal, sistem memutar kembali (atau mundur) perubahan; yaitu, mengembalikan data ke kondisi konsisten terakhirnya.


b.    Properti Transaksi yaitu ACID, jelaskan dan berikan contoh

1. Automicity
semua perubahan dilakukan, atau tidak ada yang dilakukan. Misalnya, dalam aplikasi yang mentransfer dana dari satu akun ke akun lain, properti atomicity memastikan bahwa, jika debit berhasil dibuat dari satu akun, kredit yang sesuai dibuat ke akun lain.
2. Consistency
Data dalam keadaan konsisten ketika transaksi dimulai dan berakhir. Misalnya, dalam aplikasi yang mentransfer dana dari satu akun ke akun lain, properti konsistensi memastikan bahwa nilai total dana di kedua akun sama pada awal dan akhir setiap transaksi.
3. Isolation
Keadaan tengah dari suatu transaksi tidak terlihat oleh transaksi lain. Akibatnya, transaksi yang berjalan secara bersamaan tampak bersambung. Misalnya, dalam aplikasi yang mentransfer dana dari satu akun ke akun lain, properti isolasi memastikan bahwa transaksi lain melihat dana yang ditransfer dalam satu akun atau yang lain, tetapi tidak di keduanya, atau di keduanya.
4.Durability
Setelah transaksi berhasil diselesaikan, perubahan pada data tetap ada dan tidak dibatalkan, bahkan jika terjadi kegagalan sistem. Misalnya, dalam aplikasi yang mentransfer dana dari satu akun ke akun lain, memastikan bahwa perubahan yang dilakukan untuk setiap akun tidak akan dibatalkan.



KONKURENSI

Konkurensi merupakan landasan umum perancangan sistem operasi. ... Dikatakan sebagai landasan umum perancangan sistem operasi karena dalam menciptakan suatu sistem operasi, sistem operasi tersebut umumnya harus bisa menjalankan beberapa proses (lebih dari satu proses) pada saat yang bersamaan

Mengapa penting
Untuk menjamin transaksi-transaksi yang dilakukan bersamaan berjalan sukses tanpa adanya tumpang tindih maka dibutuhkan mekanisme pengontrolan konkurensi
fungsinya
Mengelola pemrosesan transaksi secara bersamaan.
Memastikan integritas data.
Mengatur prioritas pelaksanaan transaksi.


Pertanyaan Integritas Data



a. Apa kegunaan integritas basis data 
Integritas sering disebut sebagai Database Integrity (Integritas Basis Data). Integritas basis data bertujuan untuk menjamin validitas data yang terekam dalam RDBMS. Sebagaimana diketahui bahwa dalam RDBMS sebuah data yang akan entry harus mengikuti karakteristik data sesuai dengan ketentuan yang ditentukan.

b. Jelaskan jenis-jenis integritas basis data
1. Integritas Entity
>Mendefinisikan sebuah baris sebagai sebuah entitas unik dari suaatu table
>Memaksa integritas dari column atau primary key dari suatu table melalui index,unique,constraints,primary key dimana primary key tidak boleh null.
>Tidak ada baris duplikat dalam satu table.
>penerapan proses validasi pada program pemasukan data.

2. Integritas Domain
>Merujuk pada batas nilai yang diperbolehkan untuk setiap atribut
>Memiliki jenis jangkauan yaitu (karakter bebas,numerik,alphabet,alphanumerik)
>pemeliharaan domain dengan : pendefinisian skema,pemanfaatan properti field,penerapan proses validasi pada proses pemasukan data.
>Menentukan tipe dan panjang atribut yang akan menentukan kebutuhan ruang fisik penyimpanan data.

3. Integritas Referential
>Dasar relasi antar table yaitu primary dan foreign key.
>Memastikan bahwa seluruh nilai dari foreign key cocok dengan nilai primary key yang dihubungkannya.
>Penerapan pembuatan prosedur basis data.
>Pemeliharaan melalui program manipulasi data.

c. Buatlah contoh untuk Integritas Entitas
4. Integritas data antar tabel
>Menjamin nilai baris data di suatu tabel yang lain.
>Untuk efisiensi ruang penyimpanan dan konsistensi basis data.
>Beberapa pilihan untuk menjamin integritas data antara lain : Membedakan nilai kolom untuk tabel yang berbeda,menggabungkan table yang sejenis, membuat tabel baru untuk nilai kolom yang sama.

d. Buatlah contoh untuk Integritas Domain
5. Integritas Aturan nyata
>Data di suatu tabel harus memiliki nilai yang layak dan dapat diterima ditempat sistem basis data itu diterapkan. Integritas jenis ini bersifat kasuistis, artinya sangat bergantung pada jenis data, lokasi, lingkungan, dan waktu penerapan basis data.




Mengapa penting integritas data



Integritas basis data bertujuan untuk menjamin validitas data yang terekam sesuai denga peraturan yang sudah ditentukan. Integritas data sendiri merupakan proses menggabungkan dua atau lebih sebuah data dari berbagai sumber database yang berbeda dalam sebuah penyimpanan.

Mengapa penting integritas data
Integritas data sendiri dilakukan dengan tujuan seperti:
-Mempermudah proses menganalisa sehingga memudahkan pengambilan keputusan.
-Mempermudah sharing data antar ruang lingkup perusahaan.
-Terhindar dari adanya duplikat data.
-Mempermudah orang-orang awam dalam melihat kumpulan data.
-Mempersingkat waktu karna data tidak perlu disuplikasi kembali , bisa diambil dari sumber yang sudah ada.
-Menjaga konsistensi data perusahaan.



3 Masalah akibat Concurrency:


Masalah kehilangan modifikasi (Lost Updates 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.

Masalah modifikasi sementara (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.
>>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



Masalah analisa yang tidak konsisten (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.

Masalah tersebut dapat dihindari dengan mencegah transaksi T6 membaca balx dan balz sebelum transaksi T5 lengkap di-update.