DATABASE CONTROL
1. TRANSAKSI
Transaksi adalah satu
atau beberapa aksi program aplikasi yang mengakses/mengubah isi basis data.
Transaksi merupakan
bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data
dan bahkan juga melakukan serangkaian perubahan data. DBMS yang kita
gunakan harus menjamin bahwa setiap transaksi harus dapat dikerjakan secara
utuh atau tidak sama sekali. Tidak boleh ada transaksi yang hanya
dikerjakan sebagian, karena dapat menyebabkan inkonsistensi basis data.
Untuk itu transaksi selalu merubah basis data dari satu kondisi konsisten ke
kondisi konsisten lain.
Sebuah transaksi
berpeluang untuk ‘mengganggu’ integritas basis data yang dapat membuat
kondisi/hubungan antar data tidak seperti seharusnya. Untuk menjamin agar
integritas dapat tetap terpelihara maka setiap transaksi harus memiliki
sifat-sifat:
1. Atomik, dimana semua operasi dalam
transaksi dapat dikerjakan seluruhnya atau tidak sama sekali.
2. Konsisten, dimana eksekusi transaksi secara
tunggal harus dapat menjamin data tetap konsisten setelah transaksi berakhir.
3. Terisolasi, jika pada sebuah sistem basis data
terdapat sejumlah transaksi yang dilaksanakan secara bersamaan, maka semua
transaksi yang dilaksanakan pada saat yang bersamaan tersebut harus dapat
dimulai dan bisa berakhir.
4. Bertahan, dimana perubahan data yang terjadi
setelah sebuah transaksi berakhir dengan baik, harus dapat bertahan bahkan jika
seandainya sistem menjadi mati.
Terhentinya suatu
transaksi tidak selalu diakibatkan oleh kegagalan insidental baik dari
perangkat keras (crash) ataupun kemacetan sistem operasi (hang). Tapi
lebih sering terjadi karena user sengaja menghentikan transaksi atau karena
penghentian transaksi oleh DBMS akibat adanya kondisi tak diinginkan, seperti
deadlock atau timeout.
Sebuah transaksi dapat
menghasilkan dua kemungkinan:
a. Jika dilaksanakan lengkap
seluruhnya, transaksi tersebut telah di commit
dan basis data mencapai keadaan konsisten baru.
b. Jika transaksi tidak sukses, maka
transaksi dibatalkan dan basis data dikembalikan ke keadaan konsisten
sebelumnya (rollback).
Transaksi yang sudah
di commit tidak dapat dibatalkan lagi. Jika ada kesalahan, maka harus
dilakukan transaksi lain yang membalik dampak transaksi sebelumnya.
Status-status yang
dapat dicapai oleh sebuah transaksi sejak mulai dilaksanakan hingga selesai
atau batal adalah:
1. Aktif (Active), yang merupakan status awal
(initial state) sebuah transaksi yang menunjukkan transaksi tersebut masih
dieksekusi.
2. Berhasil Sebagian (Partially
Committed), yaitu keadaan yang
dicapai transaksi tepat pada saat operasi terakhir dalam transaksi selesai
dikerjakan.
3. Gagal (Failed), yang merupakan keadaan dimana
sebuah transaksi terhenti pengeksekusiannya sebelum tuntas sama sekali.
4. Batal (Aborted), yaitu keadaan dimana sebuah
transaksi dianggap tidak/belum dikerjakan yang tentu dengan terlebih dahulu
diawali dengan mengembalikan semua data yang telah diubah ke nilai-nilai
semula. (yang menjadi tanggung jawab DBMS).
5. Berhasil Sempurna (Committed), keadaan dimana transaksi telah
dinyatakan berhasil dikerjakan seluruhnya dan basis data telah merefleksikan
perubahan-perubahan yang memang diinginkan transaksi.
2. Security Database
Authorization
Pemberian hak akses
yang mengizinkan sebuah subyek mempunyai akses secara legal terhadap sebuah
system atau obyek.
Subyek
user atau program
Obyek
database
table, view, application, rocedure.
Views (Subschemas)
Hasil yang dinamik
dari satu atau lebih operasi relasi yang beroperasi pada relasi dasar untuk
menghasilkan relasi lainnya. View mwerupakan virtual relation yang tidak secara
nyata ada di dalam sebuah database, tetapi dihasilkan atas permintaan user
secara khusus.
Backing Up
Proses yang secara
periodic menyalin database dan menjurnal (dan memprogram) ke dalam media
penyimpanan offline.
Journaling
Proses penyimpanan dan
pemeliharaan sebuah jurnal atau log seluruh perubahan terhadap database agar
dapat merecover secara efektif jika terjadi kegagalan.
Checkpointing
Titik temu
sinkronisasi antara database dan transaksi log file. Seluruh data yang disimpan
di tempat sementara akan disimpan di media penyimpanan kedua.
Integrity
Pengontrolan
integritas juga membantu memelihara system database yang aman dengan mencegah
data dari invalid.
Encryption
Penyediaan (encoding)
data dengan menggunakan algoritma khusus yang merubah data menjadi tidak dapat
dibaca oleh program apapun tanpa mendeskripsikannya.
3. Concurrency & Recovery
Concurrency
Tujuan dari mekanisme
ini adalah untuk menjamin bahwa transaksi-transaksi yang konkuren tidak saling
mengganggu operasinya masing-masing. Terdapat beberapa masalah yang akan timbul
dalam menjalankan transaksi-transaksi yang konkuren.
Tiga masalah yang umum
adalah:
1. Masalah kehilangan modifikasi
2. Masalah modifikasi sementara
3. Masalah analisis yang tidak
konsisten.
Recovery
Recovery berarti
pemulihan kembali basis data pada keadaan terakhir yang diyakini benar setelah
terjadi kesalahan (failure). Recovery dengan demikian mempunyai implikasi
penanganan suatu message.
Berbagai kemungkinan
kesalahan dalam basis data:
1. Error program (aplikasi/OS/DBMS)
2. Error hardware (peralatan,kanal,CPU)
3. Error operator
4. Fluktuasi tegangan
5. Kebakaran diruang computer
6. Sabotase
7. Suatu transaksi dilaksanakan satu
kali
8. Proses transaksi harus terpercaya
(reliable) tidak boleh hilang.
4. Deadlock, Commit, Rollback
Deadlock
Bertanggung jawab
terhadap pendeteksian kegagalan dan mengembalikan basis data ke keadaan
konsisten.
Yang harus dilakukan
sistem:
- mendapat informasi tentang pengalokasian data pada transaksi
- menggunakan algoritma yang menggunakan informasi tersebut untuk menentukan apakah sistem berada dalam keadaan deadlock.
- menghilangkan keadaan-keadaan deadlock jika algoritma mendeteksi adanya deadlock tersebut.
Deadlock dapat
digambarkan dengan memanfaatkan graph, yang disebut graph wait-for.
- Simpul untuk menyatakan transaksi.
- Busur berarah untuk menunjukkan suatu transaksi Ta sedang menunggu transaksi Tb untuk melepaskan penguncian data.
Commit
Commit adalah operasi
yang menyatakan bahwa suatu transaksi sudah terselesaikan/ sukses (succsessfull
end-of-transaction)
Rollback
Rollback adalah
operasi yang menyatakan bahwa suatu transaksi dibatalkan (unseccsessfull
end-of-transaction)
5. Concurrency Control
Locking
Locking adalah salah
satu mekanisme pengontrol konkuren. Konsep dasar, pada saat suatu transaksi
memerlukan jaminan kalau record yang diinginkan tidak akan berubah secara
mendadak, maka diperlukan kunci untuk record tersebut. Fungsi kunci (lock)
adalah menjaga record tersebut agar tidak dimodifikasi transaksi lain.
Timestamping
Timestamping adalah
salah satu alternative mekanisme pengawasan konkuren yang dapat menghilangkan
masalah deadlock. Dalam skema ini tidak ada kunci yang digunakan sehingga tidak
ada deadlock yang muncul. Timestamping untuk sebuah transaksi aksi merupakan
suatu tanda pengenal yang unik yang menunjuk waktu mulai relative dari
transaksi.
6. Fasilitas Recovery
Backup Mechanism
Melakukan backup
secara periodic terhadap database yang ada.
Logging Facility
Mencatat
transaksi-transaksi dan perubahan-perubahan yang terjadi terhadap database.
DBMS memelihara file khusus yang disebut Log (Journal) yang menyediakan
informasi mengenai seluruh perubahan yang terjadi pada database.
7. Teknik Recovery
Differed Updates
Update tidak
dituliskan ke database sampai sebuah transaksi dalam keadaan commit. Jika
transaksi gagal sebelum mencapai keadaan ini, transaksi ini tidak memodifikasi
database dan juga tidak ada perubahan-perubahan yang perlu dilakukan.
Immediate Update
Update diaplikasikan
terhadap database tanpa harus menunggu transaksi dalam keadaan commit. Update
dapat dilakukan terhadap database setiap saat setelah log record tertulis. Log
dapat digunakan untuk membatalkan dan mengulang kembali transaksi pada saat
terjadi kerusakan.
0 komentar:
Posting Komentar