Stored
Subprograms
Subprogram-subprogram
dapat di-compile secara terpisah dan disimpan secara permanen di dalam database
Oracle, dan siap untuk dieksekusi. Subprogram secara eksplisit di-CREATE dengan
menggunakan tool yang disebut dengan stored subprogram. Sekali
di-compile dan disimpan di dalam data dictionary, ia merupakan schema object,
yang mana dapat direferensi atau digunakan oleh aplikasi-aplikasi yang
terhubung dengan database.
Stored
subprogram (subprogram yang tersimpan di database) yang didefinisikan di dalam
package disebut packaged subprograms. Jika subprogram didefinisikan
secara bebas atau berdiri sendiri, maka dinamakan standalone subprograms.
Dan jika subprogram didefinisikan di dalam subprogram yang lain atau di dalam
blok PL/SQL, maka dinamakan local subprograms, yang mana tidak dapat
digunakan oleh aplikasi-aplikasi lain serta ia ada hanya untuk melengkapi blok
yang menyertainya.
Stored
subprograms menawarkan produktifitas lebih, performa yang lebih baik,
penghematan memori, keutuhan aplikasi, dan keamanan yang lebih ketat. Sebagai
contoh, dengan mendesain aplikasi-aplikasi diantara banyaknya stored procedures
dan functions, kita dapat meniadakan kejadian dimana kita menulis kode program
yang sama berkali-kali, karena dengan subprogram kita hanya perlu menulis
sekali dan meletakkannya di database, sehingga seluruh aplikasi dapat saling
berbagi menggunakannya, dan pada akhirnya hal ini akan meningkatkan
produktifitas kita.
Kita dapat
memanggil stored subprograms dari database trigger, stored program lainnya,
aplikasi Oracle Precompiler, aplikasi OCI, atau secara interaktif melalui
SQL*Plus atau Enterprise Manager. Sebagai contoh, kita dapat memanggil
procedure create_dept dari SQL*Plus dengan cara:
SQL>
CALL create_dept('FINANCE', 'NEW YORK');
Subprograms disimpan dalam keadaan terkompilasi.
Sehingga, ketika dipanggil, mereka akan di-load dan segera dilewatkan ke engine
PL/SQL. Juga, mereka memiliki keuntungan dalam hal pembagian memory. Sehingga,
hanya satu copy dari subprogram saja yang perlu di-load ke memori untuk
dieksekusi oleh banyak user secara bersamaan.
Database
Triggers
Database
trigger adalah stored subprogram yang terkait dengan database table, view, atau
sebuah event (kejadian). Kita dapat memerintahkan Oracle untuk mengeksekusi
trigger secara otomatis sebelum atau sesudah perintah INSERT, UPDATE, atau
DELETE berpengaruh terhadap table. Satu dari banyak penggunaan trigger adalah
untuk meng-audit modifikasi data. Sebagai contoh, trigger pada level table
berikut ini dieksekusi kapanpun gaji pada table emp di-update.
CREATE
TRIGGER audit_sal
AFTER
UPDATE OF sal ON emp
FOR EACH
ROW
BEGIN
INSERT
INTO emp_audit VALUES ...
END;
/
Bagian
executable dari trigger dapat mengandung perintah-perintah prosedural dan juga
perintah-perintah Data Manipulation Language dari SQL. Disamping
trigger-trigger pada level table, terdapat pula trigger-trigger instead-of untuk
view dan trigger-trigger system-event untuk schema-schema.
No comments:
Post a Comment