Ini adalah salah satu tugas saya di mata kuliah Sistem Basis Data 2 semoga bermanfaat :)
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.
Dan semua yang saya dapat diambil dari berbagai macam sumber.
terima kasih informasinya
BalasHapusThanks kaka very useful:)
BalasHapusmantap
BalasHapusada yanng tau ngga, apa yg di maksud dengan log transaksi.
BalasHapusterimakasih