Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

BAB ENHANCED DATA MODELS FOR ADVANCED APPLICATIONS

Presentasi serupa


Presentasi berjudul: "BAB ENHANCED DATA MODELS FOR ADVANCED APPLICATIONS"— Transcript presentasi:

1 BAB ENHANCED DATA MODELS FOR ADVANCED APPLICATIONS

2 materi active database temporal database multimedia database.

3 I. Konsep Active Database
Rule menentukan action secara otomatis dipicu oleh event tertentu dengan mempertimbangkan pentingnya peningkatan sistem database untuk beberapa waktu. Konsep Trigger adalah sebuah teknik untuk menentukan jenis-jenis active rule tertentu yang ada di versi awal SQL pada database relasional

4 1. Model Umum active database dan oracle trigger
Model untuk menentukan rule active database didasarkan pada model ECA (Event Condition Action) mempunyai 3 komponen : Event Trigger rule : Event adalah Operasi update database yang secara eksplisit digunakan ke database. Pada model yang umum bisa juga event temporal atau jenis external event yang lain. Condition untuk menentukan apakah rule action dapat dijalankan : Sekali event trigger terjadi, kondisi optional akan di evaluasi. Jika tidak ada kondisi yang ditentukan, action akan dijalankan sekali pada event yang terjadi. Jika kondisi ditentukan, maka kondisi dievaluasi pertama dan jika dievaluasi benar maka rule action dijalankan. Action dapat diambil : Action adalah sebuah urutan statemen SQL, tetapi dapat juga sebuah transaksi database atau sebuah program external yang otomatis dijalankan.

5 Syntax Trigger <trigger>::= CREATE TRIGGER <trigger name>
(AFTER|BEFORE) <triggering events> ON <tablename> {FOR EACH ROW} {WHEN <condition>} <trigger actions> ; <triggering events> ::= <trigger event> {OR <trigger event>} <trigger event> ::= INSERT | DELETE | UPDATE {OF <column name> {,<column name>}} <trigger action> ::= <PL/SQL block>

6 example Employee Departement Name SSN Salary Dno SuperSsn DName DNo
Total_Sal MgrSsn

7 Menentukan event sebab-sebab terjadinya perubahan nilai Total_Sal, sebagai berikut:
Penyisipan (satu atau lebih) tuple employee baru Perubahan gaji (satu atau lebih) pegawai yang ada Perubahan penugasan employee yang ada dari satu departemen ke yang lain Penghapusan (satu atau lebih) tuple employee

8 R1: CREATE TRIGGER TOTALSAL1
AFTER INSERT ON EMPLOYEE FOR EACH ROW WHEN (NEW.DNO IS NOT NULL) UPDATE DEPARTMENT SET TOTAL_SAL = TOTAL_SAL + NEW.SALARY WHERE DNO = NEW.DNO; R2: CREATE TRIGGER TOTALSAL2 AFTER UPDATE OF SALARY ON EMPLOYEE SET TOTAL_SAL = TOTAL_SAL + NEW.SALARY OLD.SALARY

9 R3: CREATE TRIGGER TOTALSAL3
AFTER UPDATE OF DNO ON EMPLOYEE FOR EACH ROW BEGIN UPDATE DEPARTMENT SET TOTAL_SAL = TOTAL_SAL + NEW.SALARY WHERE DNO = NEW.DNO SET TOTAL_SAL = TOTAL_SAL – OLD.SALARY WHERE DNO = OLD.DNO; END; R4: CREATE TRIGGER TOTALSAL4 AFTER DELETE ON EMPLOYEE WHEN (OLD.DNO IS NOT NULL) SET TOTAL_SAL = TOTAL_SAL - OLD.SALARY

10 Pengecekan apakah salary employee lebih besar dari salary supervisornya.
R5: CREATE TRIGGER INFORM_SUPERVISOR1 BEFORE INSERT OR UPDATE OF SALARY, SUPERVISOR_SSN ON EMPLOYEE FOR EACH ROW WHEN (NEW.SALARY > ( SELECT SALARY FROM EMPLOYEE WHERE SSN = NEW.SUPERVISOR_SSN)) INFORM_SUPERVISOR (NEW.SUPERVISOR_SSN,NEW.SSN);

11 2. Desain dan Implementasi Active Database
Ada tiga kemungkinan utama untuk rule considerations : Immediate consideration : Kondisi dievaluasi sebagai bagian dari transaksi yang sama sebagai event trigger, dan dievaluasi segera. Kasus ini dapat dikategorikan kedalam tiga option : - Evaluasi kondisi sebelum (before) menjalankan event trigger - Evaluasi kondisi setelah (after) menjalankan event trigger - Evaluasi kondisi pada saat (instead) menjalankan event trigger deferred consideration : Kondisi dievaluasi pada saat transaksi berakhir termasuk event trigger. Pada kasus ini, konsiderasi beberapa rule trigger akan menunggu sampai kondisi dievaluasi Detached consideration : Kondisi dievaluasi sebagai transaksi terpisah, terjadi karena transaksi trigger

12 R1S: CREATE RULE TOTALSAL1 ON EMPLOYEE
WHEN INSERTED IF EXISTS ( SELECT * FROM INSERTED WHERE DNO IS NOT NULL) THEN UPDATE DEPARTMENT AS D SET D.TOTAL_SAL = D.TOTAL_SAL+ (SELECT SUM(I.SALARY)FROM INSERTED AS I WHERE D.DNO=I.DNO) WHERE D.DNO IN (SELECT DNO FROM INSERTED); R2S: CREATE RULE TOTALSAL2 ON EMPLOYEE WHEN UPDATED (SALARY) IF EXISTS ( SELECT * FROM NEW-UPDATE WHERE DNO IS NOT NULL) OR EXISTS(SELECT * FROM OLD-UPDATE WHERE DNO IS NOT NULL) THEN UPDATE DEPARTMENT AS D (SELECT SUM(N.SALARY)FROM NEW-UPDATE AS N WHERE D.DNO= N.DNO)- (SELECT SUM(O.SALARY) FROM OLD UPDATE AS O WHERE D.DNO = O.DNO) WHERE D.DNO IN (SELECT DNO FROM NEW-UPDATE ) OR D.DNO IN (SELECT DNO FROM OLD_UPDATE)

13 R3S: CREATE RULE TOTALSAL3 ON EMPLOYEE
WHEN UPADATED(DNO) THEN UPDATE DEPARTMENT AS D SET D.TOTAL_SAL = D.TOTAL_SAL + (SELECT SUM(N.SALARY) FROM NEW-UPDATE AS N WHERE D.DNO= N.DNO WHERE D.DNO IN (SELECT DNO FROM NEW-UPDATE); UPDATE DEPARTMENT AS D SET D.TOTAL_SAL = D.TOTAL_SAL - (SELECT SUM(O.SALARY) FROM OLD-UPDATE AS O WHERE D.DNO = O.DNO) WHERE D.DNO IN (SELECT DNO FROM OLD-UPDATED);


Download ppt "BAB ENHANCED DATA MODELS FOR ADVANCED APPLICATIONS"

Presentasi serupa


Iklan oleh Google