Sistem Basis Data

Sabtu, 20 November 2010.
1. Tahapan Optimasi query:
a.Memasukkan query ke dalam representasi internal berdasarkan ekspresi aljabar yang sesuai.
b.Mengkonversikannya ke dalam bentuk canonical dengan cara mula-mula dengan menggunakan cartesian product dari klausa FROM, setelah itu menggabungkan dan memilih kondisi-kondisi dari klausa WHERE dan melakukan proyeksi-proyeksi dari klausa SELECT.
c.Memilih calon-calon prosedur low level, yaitu mempertimbangkan index-index atau jalan akses lainnya, membagi nilai-nilai penyimpanan data dari record-record untuk memilih satu atau lebih calon-calon prosedur untuk mengimplementasikan tiap-tiap operasi low level dalam query.
d.Menghasilkan rencana-rencana query dan memilih yang termurah, yaitu membuat sekumpulan calon rencana-rencana query dan kemudian memilih yang termurah.

2. Assertion&Trigger
Assertions merupakan sebuah aturan yang diterapkan untuk membuat agar database tetap pada kondisi yang diinginkan. Contoh :
Dalam sistem perbankan terdapat aturan : jumlah semua pinjaman pada setiap kantor cabang tidak boleh melebihi jumlah semua simpanan pada cabang tersebut. Perintah SQL nya :
create assertion constr_jml check
(not exist
(select * from cabang
where (select sum(jumlah) from pinjaman
where pinjaman.nama_cab = cabang.nama_cab)
>=(select sum(saldo) from simpanan
where simpanan.nama_cab = cabang.nama_cab)))
Trigger merupakan aturan yang akan mengeksekusi perintah secara otomatis sebagai akibat sampingan dari proses modifikasi (insert / delete / update) dalam database. Contoh :
Menambah data stok barang :
CREATE OR REPLACE TRIGGER tr_insert_pasok
AFTER insert ON pasok
FOR EACH ROW
BEGIN
update stok_barang
set jum_stok= jum_stok + :new.jum_pasok ;
END

3.Manajemen transaksi
Transaksi Atomik : Dimana semua operasi-operasi dalam transaksi dapat bekerja secara utuh atau tidak sama sekali. Contoh : Transaksi pengiriman 50 dari rekening A ke rekening B:
1.read(A)
2.A := A – 50
3.write(A)
4.read(B)
5.B := B + 50
6.write(B)
Keatomikan yang diperlukan: jika transaksi terhenti setelah tahap ke 3 sebelum tahap ke 6, sistem harus menjamin bahwa perubahan pada database tidak terjadi samasekali, sebab jika tidak maka ketidak konsistenan akan terjadi.

4. Penjadwalan
Serializability : Kemampuan untuk mengupayakan terjadinya kesamaan antara schedule yang konkuren dengan schedule yang serial. Contoh penyederhanaan schedule :
T1=========|T2=========
1.read (A) | ---
2.write (A)| ---
3. --------| read (A)
4. --------| write (A)
5.read (B) | ---
6.write (B)| ---
7. --------| read(B)
8. --------| write (B)

6.Konkurensi
Lost update/kehilangan modifikasi : Permasalahan timbul pada saat operasi update berjalan sukses kemudian ditindih oleh operasi update lain yang dilakukan oleh pemakai lain.
Uncommited dependency / ketergantungan pada saat belum commit : Permasalahan timbul pada saat transaksi dibiarkan melihat hasil dari transasksi lain yang belum commit. Jika transaksi membaca suatu record yang sudah dimodifikasi oleh transaksi lain tetapi belum terselesaikan (uncommited), terdapat kemungkinan kalau transaksi tersebut dibatalkan (rollback).
Inconsistent analysis / analisis yang tidak konsisten : Permasalahan timbul apabila suatu transaksi membaca beberapa nilai tetapi transasksi berikutnya memodifikasi salah satu nilai.

Komentar:

Posting Komentar

 
AyoBaca ! © Copyright 2010 | Design By DwiKaendji |