Anda di halaman 1dari 35

Active Databases

Pengantar
• DB menyediakan mekanisme yang andal, efisien, dan efektif untuk
menyimpan dan mengelola sejumlah besar informasi dalam
lingkungan multipengguna.
• Tren Penelitian dibidang Database:
• DB Temporal
• DB Spasial
• DB Multimedia
• Bahasa Pemrograman DB
• DB Aktif
• Dll
• DBMS tradisional bersifat pasif dalam arti bahwa perintah dijalankan
oleh DB (misalnya, query, update, delete).
• Dalam beberapa kasus, perubahan suatu entitas menyebabkan
perubahan entitas lain.
• Metode untuk melakukan ini tersedia dua opsi:
• Menambahkan fungsi untuk memantu perubahan data
• Mekanisme polling
• DB aktif akan mendukung aplikasi dengan memindahkan perilaku
reaktif dari aplikasi (atau mekanisme polling) ke dalam DBMS.
• Manfaat:
• Code Reusability
• Mengurangi lalu lintas jaringan
Contoh Kasus
Analisis
• Analisis mengacu pada proses mengidentifikasi dan menangkap
persyaratan aplikasi dari sudut pandang pengguna.
• DB trandisional hanya menyimpan data mentah
• DB Komersial à store procedures, packages, and triggers.
• Elisitasi Kebutuhan dari kebutuhan bisnis
• Type kebijakan:
• Recovering Business Policies
• Causal Business Policies
Recovering Business Policies
• DB fokus pada struktur domain khususnya integritas
• Pelanggaran integritas berpengaruh pada kualitas informasi
• Prosedur yang harus diikuti jika penggaran integritas data terjadi
• Kendala sering kali tersembunyi dan sulit dipastikan.
• Prosedur pemulihan antar depertemen tidak sama.
• Beberapa pelanggaran dapat dicegah karena batasan pada table lain.
Proses Recovery
• deskripsi kendala yang jelas
• apakah pelanggaran kendala selalu dibatasi
• kendala harus didukung secara deklaratif menggunakan konstruksi
pemeriksaan yang didukung SQL jika memungkinkan
• Jika tidak, pendekatan prosedural diikuti yang pada akhirnya akan
diimplementasikan sebagai pemicu
• Konteks dan tindakan kompensasi yang mengembalikan validitas
harus dinyatakan
Causal Business Policies
• Elitasi kebijakan sering melibatkan beberapa rekayasa ulang.
• Perlu melihat diagram transisi status (STD)
• STD adalah hasil akhir dari fase analisis perilaku yang mewakili urutan
kejadian yang diperbolehkan untuk setiap entitas.
• STD direpresentasikan sebagai jaringan di mana node mewakili status,
dan busur diberi label dengan peristiwa yang memungkinkan transisi
antar status.
• Transisi dapat dibatasi untuk memenuhi kondisi tertentu
STD dapat membantu analis menggali kebijakan bisnis tersembunyi.
Tiga pertanyaan dasar dapat diajukan untuk menemukan kebijakan
tersebut:
• Apakah salah satu peristiwa yang muncul di STD disebabkan oleh
peristiwa lain?
• Dapatkah suatu peristiwa menyebabkan peristiwa lain terjadi?
• Bagaimana jika suatu peristiwa tidak terjadi?
Design
Setelah kebijakan yang relevan telah diidentifikasi, langkah selanjutnya
adalah menggambarkannya menggunakan aturan aktif (active rules)
Active Rules
• Event definition. Definisi event menggambarkan kejadian yang
mungkin harus ditanggapi oleh aturan. Yang paling sering terjadi
adalah beberapa operasi dalam DB, seperti penyisipan, pembaruan,
atau penghapusan tuple.
• Condition. Kondisi adalah ekspresi boolean atau kueri yang
memeriksa konteks di mana peristiwa telah terjadi. Fakta bahwa
peristiwa itu telah terjadi mungkin tidak cukup dengan sendirinya
untuk mengharuskan tindakan itu dilakukan.
• Action. Tindakan adalah blok program yang menentukan respons
yang diperlukan untuk peristiwa yang telah terjadi, mengingat kondisi
telah dievaluasi menjadi benar.
Supporting Recovering Business Policies
Through Active Rules
• Memulihkan kebijakan bisnis mengungkapkan cara untuk mengatasi
tidak terpenuhinya batasan integritas.
• Adapun model relasional, itu berarti bahwa menyisipkan, menghapus,
dan memperbarui adalah operasi yang menggerakkan kebijakan bisnis
pemulihan.
• Sebagai contoh, penambahan batasan integritas yang menyatakan
bahwa tidak ada karyawan yang harus dibayar lebih dari atasannya.
Batasan integritas ini dapat dilanggar oleh peristiwa struktural yang
berbeda, yang mengarah ke kebijakan bisnis pemulihan yang berbeda
Supporting Causal Business Policies Through
Active Rules
Beberapa kondisi dimana kebijakan dapat merespon:
• Kondisi pada status DB (mis., Jumlah siswa di atas 20)
• Pemanggilan operasi struktural (misalnya, penugasan ruangan ke
kursus dapat direalisasikan sebagai penyisipan pada tabel distribusi)
• Pemanggilan operasi domain (misalnya, kursus dibatalkan);
• Riwayat kompleks dari operasi sebelumnya dalam suatu interval
(misalnya, kurang dari 20 pendaftaran dalam sebulan setelah kursus
disetujui)
Mari kembali ke kebijakan pembatalan, yang menyatakan bahwa sebelum
membatalkan kursus, jika sudah ada beberapa peserta yang terdaftar, mereka
harus dipindahkan ke kursus terkait (misalnya, kursus yang sama tetapi
diajarkan pada waktu yang berbeda).
Pertanyaannya adalah apakah kebijakan tersebut harus didukung sebagai
aturan aktif independen atau dalam prosedur tersimpan.
Jika kebijakan kemungkinan akan berkembang di masa depan, gunakan
pendekatan aturan aktif; jika tidak, pertimbangkan untuk
menyematkannya dalam prosedur.
Active Behavior
• perilaku run-time dari set aturan
• Perilaku run-time dari kumpulan aturan ditentukan oleh model
eksekusi dari sistem aturan yang mendukung aturan. Ada dua
masalah utama:
• kapan aturan diproses
• bagaimana beberapa event ditangani.
When Rules Are Processed
• Saat terjadi peristiwa yang cocok dengan definisi aturan.
• Ada kemungkinan bahwa segera setelah aturan dipicu, transaksi yang
memunculkan peristiwa ditangguhkan, dan kondisi aturan dan (jika
kondisinya benar) tindakan aturan dievaluasi hingga selesai segera.
• Namun, itu mungkin bukan perilaku yang diinginkan. Sebagai contoh,
perhatikan situasi berikut. Karyawan Tom memiliki gaji 1000 dengan
bos Sally. Karyawan Sally memiliki gaji 1050. Berikut program yang
dijalankan:
“update employee set salary = salary * 1.10”
• Berapa gaji yang dihasilkan Tom and Sally, berdasarkan aturan yang
didefinisikan sebelumnya?
• Jawabannya adalah tergantung pada urutan pembaruan tupel di tabel
karyawan.
• Jika Tom diproses sebelum Sally, maka kenaikan gaji Tom sebesar 10%
menjadi 1100 akan melanggar batasan integritas dan memicu aturan
yang memantau pembaruan gaji. Itu pada gilirannya akan
menyebabkan gaji Sally meningkat menjadi 1100, sehingga memenuhi
batasan. Namun, setelah itu program pembaruan akan melakukan
perubahan lebih lanjut pada gaji Sally, menjadikannya 1100 *1.10
atau 1210.
• Jika Sally diproses sebelum Tom, batasan tidak pernah dilanggar, tidak ada
tindakan aturan yang dijalankan, dan Sally dan Tom menerima kenaikan
gaji 10%.
• Gagasan tentang kapan aturan aktif dievaluasi relatif terhadap peristiwa
pemicunya ditangkap oleh mode kopling.
• Dua mode kopling yang paling umum adalah langsung dan ditangguhkan.
• Ketika aturan dengan mode kopling langsung dipicu, transaksi pemicu
ditangguhkan, dan kondisi aturan dan (jika perlu) tindakan dievaluasi
segera.
• Saat aturan dengan mode kopling yang ditangguhkan dipicu, aturan
tersebut ditambahkan ke antrean aturan yang dipicu.
• Dalam praktiknya, sistem berbeda dalam dukungannya untuk mode kopling
dan dalam cara mereka menghindari masalah.
How Multiple Event Occurrences Are Handled
• Dalam pemrosesan aturan langsung, aturan dipicu segera setelah satu
peristiwa yang sesuai dengan definisi peristiwa aturan terjadi.
• Ada dua cara untuk aturan yang tangguhkan:
• Ketika aturan datang untuk diproses, mungkin ada beberapa entri dalam
antrian yang sesuai dengan aturan yang sama, dan mereka dihapus untuk
diproses satu per satu.
• Ketika aturan datang untuk diproses, paling banyak ada satu entri dalam
antrian yang sesuai dengan satu aturan
Aturan berdasarkan jenis kejadiannya.
• transition granularity of tuple à Ketika sebuah aturan dievaluasi
dalam konteks event tunggal
• transition granularity of set à Ketika sebuah aturan dievaluasi dalam
konteks kumpulan event pemicu.
Implementation Issues
• Ekspresi Bahasa à Masing-masing sistem aturan berbeda dalam
mendefinisikan peristiwa, kondisi, dan tindakan aturan.
• Penyampaian informasi à Menghubungkan data lama dan data baru.
• Model eksekusi à Pengaturan waktu eksekusi
Tugas
• Simulasikan dan buat penjelasan dengan bahasa kalian dari contoh
penggunaan trigger yang dijelaskan pada website
https://phoenixnap.com/kb/mysql-trigger
• Gunakan data dummy yang terdiri 3 orang dimana salah satunya
adalah nama anda.
• Laporan berisi sintax yang digunakan dan output dari sintax tersebut
jika ada.

Anda mungkin juga menyukai