Penyebab dari kegagalan (failure)
adalah :
- Disk Crash
Informasi yang
ada di disk akan hilang
- Power Failure
Informasi yang
disimpan pada memori utama dan register akan hilang
- Software Error
Output yang
dihasilkan tidak betul dan system databasenya sendiri akan memasuki suatu
kondisi tidak konsisten (inconsistent state)
Selain hal-hal diatas, masih ada
penyebab kegagalan lain yaitu kebakaran ruang komputer dan sabotase yang
menyebabkan hilangnya informasi yang berkenaan dengan system database.
à Tipe Storage
- Volatile Storage
Data akan hilang
jika terjadi gangguan
Contoh : main
storage dan chace
- Non Volatile Storage
Data tidak mudah
hilang jika ada gangguan
Contoh : disk
dan tape
- Stable Storage
Data yang ada
tidak akan hilang
à Jenis Gangguan
- Logical Error
Program tidak
dapat melanjutkan eksekusinya secara normal karena kondisi internal, seperti
kesalahan input (bad input), data tidak ditemukan (data not found), overflow.
- System Error
Sistem masuk ke
dalam keadaan yang tidak diinginkan, seperti terjadi deadlock sehingga program
tidak dapat melanjutkan eksekusi secara normal untuk sementara waktu
- System Crash
Informasi yang
ada dalam memory hilang karena kegagalan fungsi hardware, seperti power failure
- Disk Failure
Terjadi kerusakan head kesalahan pengoperasian
transfer data yang menyebabkan hilangnya sebagian isi dari disk atau semua
rusak.
à Pengoperasian dan
struktur storage
Sistem database
yang tersimpan dalam non volatile storage dipart ke dalam unit penyimpanan
dengan panjang tetap yang biasanya disebut block. Block merupakan unit
dari alokasi penyimpanan dan transfer data. Program menjalankan berbagai
aplikasi database, membaca informasi dari disk ke main memory dan menuliskannya
kembali ke disk. Operasi pembacaan dan penulisan dilakukan dalam unit block.
Block yang terdapat di dalam disk disebut block fisik. Sedangkan block
yang terdapat dalam main memori disebut block buffer.
à Pemindahan block
antara disk dan main memory :
·
INPUT (X)
Memindahkan block fisik dimana item data X berada
di dalam main memori
·
OUTPUT (X)
Memindahkan block buffer dimana item data X
berada di dalam disk dan
menggantikan block fisik yang terjadi.
Interaksi antara program aplikasi dan system database
melalui operasi berikut :
· READ (X,Xj)
Memberikan nilai item data X ke dalam variable Xj operasi ini dilakukan
melalui
operasi berikut :
-
Jika block dimana X berada bukan di dalam main memori
maka lakukan INPUT (X)
-
Pindahkan nilai X dari blok buffer ke Xj
· WRITE (X,Xj)
Memberikan nilai dari variable local Xj ke item data X di dalam block
buffer operasi
ini dilaksanakan sbb:
-
Jika block dimana X berada bukan di dalam main memori
maka lakukan INPUT (X)
-
Pindahkan nilai X dari blok buffer ke Xj
-
Pindahkan nilai Xj ke X yang terdapat dalam block
buffer
Kedua operasi di atas hanya
membutuhkan pemindahan data dari disk ke main memori. Penulisan dari block
buffer ke disk biasanya dilakukan jika buffer manager memerlukan ruangan pada
memori untuk menyelesaikan masalah lain atau jika system database-nya
menginginkan perubahan nilai X disimpan ke disk. Hal ini disebut “Force
Outputs” karena block buffer melakukan operasi OUTPUT(X).
à Transaksi
Sebagai unit program yang
pelaksanaannya menjaga kestabilan (konsistensi) database, yang artinya sebelum
transaksi dilaksanakan ataupun sesudahnya keberadaan database harus konsisten.
Untuk itu maka setiap transaksi harus bersifat atomic, yakni seluruh
yang terkait dilaksanakan hingga selesai atau tidak dilaksanakan samasekali.
Tugas ini dikerjakan oleh Schema Recovery untuk menjamin sifat atomic.
Sedangkan tugas seorang programmer adalah membuat program sedemikian rupa
sehingga konsistensi database tetap terjaga.
Transaksi juga harus dapat
mengakses dan meng-update berbagai item data. Kadang-kadang pelaksanaan
transaksi tidak dapat diselesaikan keadaan ini disebut aborted. Untuk
menjamin sifat atomic maka pembatalan transaksi tidak akan mempengaruhi
konsistensi database. Dengan demikian keberadaan database harus dapat
dipulihkan ke keadaan sebelum transaksi dilakukan. Kita katakan transaksi tsb
dalam rollback. Transaksi yang berhasil dilaksanakan disebut committed.
Suatu transakasi committed melakukan peng-update-an dan mentransformasikan
database ke dalam keadaan konsisten yang baru.
Transaksi harus berada dalam salah satu keadaan berikut :
1. Active
Keadaan awal
2. Partially
Committed
Setelah perintah akhir dicapai
3. Failed
Setelah pelaksanaan normal tidak
dapat dilanjutkan
4. Aborted
Setelah transaksi di rolled-back
dan database dikembalikan dipulihkan pada keadaan sebelum transaksi
5. Committed
Program dilaksanakan dengan baik
0 komentar:
Posting Komentar