part 15 triggerr
TRANSCRIPT
![Page 1: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/1.jpg)
TriggerTrigger
www.rahmadani.net 1
TriggerTriggerPertemuan ke-15
![Page 2: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/2.jpg)
Pengenalan TriggerPengenalan Trigger
Microsoft SQL Server 2005 menyediakan duamekanisme untuk menjaga integritas data,yaitu: Constraint dan Trigger.
Trigger merupakan tipe khusus dari storeprocedure yang secara otomatis akanberpengaruh pada saat sebuah perintahdijalankan.
www.rahmadani.net 2
Microsoft SQL Server 2005 menyediakan duamekanisme untuk menjaga integritas data,yaitu: Constraint dan Trigger.
Trigger merupakan tipe khusus dari storeprocedure yang secara otomatis akanberpengaruh pada saat sebuah perintahdijalankan.
![Page 3: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/3.jpg)
Konsep Dasar TriggerKonsep Dasar Trigger
Trigger SQL yaitu pernyataan SQL atausatu set pernyataan SQL yang disimpandalam database dan harus diaktifkan ataudijalankan ketika suatu event terjadi padasuatu tabel database. Event ini berupa DML (INSERT, UPDATE
dan DELETE), DDL (CREATE, DROP,ALTER) serta operasi database.
www.rahmadani.net 3
Trigger SQL yaitu pernyataan SQL atausatu set pernyataan SQL yang disimpandalam database dan harus diaktifkan ataudijalankan ketika suatu event terjadi padasuatu tabel database. Event ini berupa DML (INSERT, UPDATE
dan DELETE), DDL (CREATE, DROP,ALTER) serta operasi database.
![Page 4: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/4.jpg)
Trigger vs Store ProcedureTrigger vs Store Procedure
Terkadang Trigger disebut sebagaibentuk khusus dari stored procedure.
Perbedaan antara Trigger dan StoredProcedure:
1. Trigger diaktifkan atau dipanggil secaraimplisit saat sebuah event yang terjadi ditabel database
2. Stored Procedure harus dipanggil secaraeksplisit.
www.rahmadani.net 4
Terkadang Trigger disebut sebagaibentuk khusus dari stored procedure.
Perbedaan antara Trigger dan StoredProcedure:
1. Trigger diaktifkan atau dipanggil secaraimplisit saat sebuah event yang terjadi ditabel database
2. Stored Procedure harus dipanggil secaraeksplisit.
![Page 5: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/5.jpg)
Manfaat Trigger Secara UmumManfaat Trigger Secara Umum
Meng-generate nilai kolom turunan (derivedcolumn value) Mencegah transaksi yang tidak valid Mengerjakan otorisasi keamanan yg kompleks Mengerjakan aturan bisnis (business rule) yang
kompleks Menyediakan pencatatan event (event logging)
secara transparan Menyediakan audit
www.rahmadani.net 5
Meng-generate nilai kolom turunan (derivedcolumn value) Mencegah transaksi yang tidak valid Mengerjakan otorisasi keamanan yg kompleks Mengerjakan aturan bisnis (business rule) yang
kompleks Menyediakan pencatatan event (event logging)
secara transparan Menyediakan audit
![Page 6: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/6.jpg)
Manfaat Trigger Secara UmumManfaat Trigger Secara Umum (2)(2)
Mengerjakan referential integrity ke seluruhnode dalam sebuah basis data terdistribusi Menjaga replikasi tabel secara synchronous Mengumpulkan statistik dari pengaksesan tabel Mempublikasikan informasi ketika ada database
event, user event, dan pernyataan SQL untuksuatu aplikasi (yang berlangganan/subcsribe)
www.rahmadani.net 6
Mengerjakan referential integrity ke seluruhnode dalam sebuah basis data terdistribusi Menjaga replikasi tabel secara synchronous Mengumpulkan statistik dari pengaksesan tabel Mempublikasikan informasi ketika ada database
event, user event, dan pernyataan SQL untuksuatu aplikasi (yang berlangganan/subcsribe)
![Page 7: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/7.jpg)
Kelebihan TriggerKelebihan Trigger• Trigger menyediakan cara alternatif untuk
memeriksa integritas.• Trigger bisa menangkap kesalahan dalam business
logic pada tingkat database.• Trigger menyediakan cara alternatif untuk
menjalankan tugas-tugas yang dijadwalkan.– tidak harus menunggu untuk menjalankan tugas-tugas
yang dijadwalkan.– dapat menangani tugas-tugas sebelum atau setelah
perubahan yang dibuat untuk tabel database.• Trigger sangat berguna untuk mengaudit
perubahan data dalam tabel database.
www.rahmadani.net 7
• Trigger menyediakan cara alternatif untukmemeriksa integritas.
• Trigger bisa menangkap kesalahan dalam businesslogic pada tingkat database.
• Trigger menyediakan cara alternatif untukmenjalankan tugas-tugas yang dijadwalkan.– tidak harus menunggu untuk menjalankan tugas-tugas
yang dijadwalkan.– dapat menangani tugas-tugas sebelum atau setelah
perubahan yang dibuat untuk tabel database.• Trigger sangat berguna untuk mengaudit
perubahan data dalam tabel database.
![Page 8: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/8.jpg)
Kelemahan TriggerKelemahan Trigger Trigger hanya bisa menyediakan validasi
tambahan tapi tidak dapat menggantikan semuavalidasi. Beberapa validasi sederhana dapat dilakukan di
level aplikasi. Trigger mengeksekusi secara tak terlihat dari klien-
aplikasi yang terhubung ke database serversehingga sulit untuk mencari tahu apa yang terjadidi level database. Trigger berjalan setiap update yang dibuat ke table
sehingga menambah beban kerja ke database danmenyebabkan sistem berjalan lebih lambat.
www.rahmadani.net 8
Trigger hanya bisa menyediakan validasitambahan tapi tidak dapat menggantikan semuavalidasi. Beberapa validasi sederhana dapat dilakukan di
level aplikasi. Trigger mengeksekusi secara tak terlihat dari klien-
aplikasi yang terhubung ke database serversehingga sulit untuk mencari tahu apa yang terjadidi level database. Trigger berjalan setiap update yang dibuat ke table
sehingga menambah beban kerja ke database danmenyebabkan sistem berjalan lebih lambat.
![Page 9: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/9.jpg)
Bentuk Umum TriggerBentuk Umum Trigger
SQL Server memiliki dua tipe umum dariTrigger, yaitu:1. DML Trigger2. DDL Trigger
www.rahmadani.net 9
SQL Server memiliki dua tipe umum dariTrigger, yaitu:1. DML Trigger2. DDL Trigger
![Page 10: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/10.jpg)
DML TriggerDML TriggerDML Trigger adalah program yang akandipanggil pada saat perintah DML (DataManipulation Language) yang dijalankan padaserver database.
Perintah-perintah DML;UPDATE, INSERT dan DELETE
www.rahmadani.net 10
DML Trigger adalah program yang akandipanggil pada saat perintah DML (DataManipulation Language) yang dijalankan padaserver database.
Perintah-perintah DML;UPDATE, INSERT dan DELETE
![Page 11: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/11.jpg)
Fungsi DML TriggerFungsi DML Trigger1. Menjaga dari kesalahan operasi INSERT,
UPDATE dan DELETE dan menjaga dengan lebihkompleks dari pada penggunaan constraint check.
2. Mengevaluasi keadaan dari tabel apakah sebelumatau sesudah modifikasi data dan mengambiltindakan pada perbedaaan tersebut.
3. Dapat menambah beberapa tipe Trigger yangsama pada tabel INSERT, UPDATE atau DELETEdengan statement modifikasi yang sama untukmendapatkan beberapa hasil yang berbeda.
www.rahmadani.net 11
1. Menjaga dari kesalahan operasi INSERT,UPDATE dan DELETE dan menjaga dengan lebihkompleks dari pada penggunaan constraint check.
2. Mengevaluasi keadaan dari tabel apakah sebelumatau sesudah modifikasi data dan mengambiltindakan pada perbedaaan tersebut.
3. Dapat menambah beberapa tipe Trigger yangsama pada tabel INSERT, UPDATE atau DELETEdengan statement modifikasi yang sama untukmendapatkan beberapa hasil yang berbeda.
![Page 12: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/12.jpg)
JenisJenis--jenis DML Triggerjenis DML Trigger
Pada saat membuat Trigger di SQL Server2005 terdapat dua pilihan Trigger yangdapat digunakan;
1.Trigger INSTEAD OF2.Trigger AFTER
www.rahmadani.net 12
Pada saat membuat Trigger di SQL Server2005 terdapat dua pilihan Trigger yangdapat digunakan;
1.Trigger INSTEAD OF2.Trigger AFTER
![Page 13: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/13.jpg)
1. Trigger INSTEAD OF1. Trigger INSTEAD OF
Jenis Trigger ini dijalankan sebelum prosesConstraint, diletakkan pada aksi Trigger yaitu:INSERT, UPDATE atau DELETE.
Juga dapat didefinisikan pada view atau tabel.Masing-masing tabel hanya dapat memilikisebuah Trigger INSTEAD OF untuk masing-masing aksi Trigger.
www.rahmadani.net 13
Jenis Trigger ini dijalankan sebelum prosesConstraint, diletakkan pada aksi Trigger yaitu:INSERT, UPDATE atau DELETE.
Juga dapat didefinisikan pada view atau tabel.Masing-masing tabel hanya dapat memilikisebuah Trigger INSTEAD OF untuk masing-masing aksi Trigger.
![Page 14: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/14.jpg)
2. Trigger AFTER2. Trigger AFTER
Trigger ini akan dieksekusi sesudahmenjalankan perintah INSERT, UPDATE atauDELETE.
Trigger AFTER hanya dapat didefinisikan padaTabel. Sebuah tabel dapat memiliki beberapaTrigger AFTER untuk masing-masing aksiTrigger.
www.rahmadani.net 14
Trigger ini akan dieksekusi sesudahmenjalankan perintah INSERT, UPDATE atauDELETE.
Trigger AFTER hanya dapat didefinisikan padaTabel. Sebuah tabel dapat memiliki beberapaTrigger AFTER untuk masing-masing aksiTrigger.
![Page 15: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/15.jpg)
DDL TriggerDDL Trigger
DDL Trigger adalah fasilitas yang baru padaSQL Server 2005. Trigger ini akan dipanggilpada saat perintah DDL (Data DefinitionLanguage) dijalankan pada server ataudatabase.
Perintah DDL;CREATE, ALTER dan DROP
www.rahmadani.net 15
DDL Trigger adalah fasilitas yang baru padaSQL Server 2005. Trigger ini akan dipanggilpada saat perintah DDL (Data DefinitionLanguage) dijalankan pada server ataudatabase.
Perintah DDL;CREATE, ALTER dan DROP
![Page 16: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/16.jpg)
Fungsi DDL TriggerFungsi DDL Trigger
1. Mencegah terjadinya perubahan padaskema database.
2. Menerima rekasi pada saat terjadiperubahan skema dalam database.
3. Untuk merekam perubahan kejadiandalam skema database.
www.rahmadani.net 16
1. Mencegah terjadinya perubahan padaskema database.
2. Menerima rekasi pada saat terjadiperubahan skema dalam database.
3. Untuk merekam perubahan kejadiandalam skema database.
![Page 17: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/17.jpg)
Fungsi Khusus DDL TriggerFungsi Khusus DDL TriggerAda dua jangkauan kerja DDL Trigger yaitu pada
Server dan Database.1. Trigger yang diletakkan pada Server seperti,
CREATE Database, ALTER Database, DROPDatabase, CREATE Login, ALTER Login, DROPLogin dan lainnya.
2. Trigger yang diletakkan pada Database yaitu;CREATE Table, ALTER Table, DROP Table,CREATE Procedure, ALTER Procedure, DROPProcedure dan lainnya.
www.rahmadani.net 17
Ada dua jangkauan kerja DDL Trigger yaitu padaServer dan Database.
1. Trigger yang diletakkan pada Server seperti,CREATE Database, ALTER Database, DROPDatabase, CREATE Login, ALTER Login, DROPLogin dan lainnya.
2. Trigger yang diletakkan pada Database yaitu;CREATE Table, ALTER Table, DROP Table,CREATE Procedure, ALTER Procedure, DROPProcedure dan lainnya.
![Page 18: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/18.jpg)
www.rahmadani.net 18
Deklarasi TRIGGERDeklarasi TRIGGER
![Page 19: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/19.jpg)
Syntax Umum TriggerSyntax Umum Trigger
CREATE TRIGGER <nama_trigger> ON<nama_table>|<nama_view> FOR |AFTER | INSTEAD OF [INSERT][UPDATE] [DELETE]
AST-SQL /SQL STATEMENT
www.rahmadani.net 19
CREATE TRIGGER <nama_trigger> ON<nama_table>|<nama_view> FOR |AFTER | INSTEAD OF [INSERT][UPDATE] [DELETE]
AST-SQL /SQL STATEMENT
![Page 20: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/20.jpg)
Syntax; ALTER TriggerSyntax; ALTER Trigger
ALTER TRIGGER <nama_trigger> ON<nama_table>|<nama_view> FOR |AFTER | INSTEAD OF [INSERT][UPDATE] [DELETE]
AST-SQL /SQL STATEMENT
www.rahmadani.net 20
ALTER TRIGGER <nama_trigger> ON<nama_table>|<nama_view> FOR |AFTER | INSTEAD OF [INSERT][UPDATE] [DELETE]
AST-SQL /SQL STATEMENT
![Page 21: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/21.jpg)
Syntax; Hapus TriggerSyntax; Hapus Trigger
DROP TRIGGER <nama_trigger>
www.rahmadani.net 21
DROP TRIGGER <nama_trigger>
![Page 22: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/22.jpg)
Syntax; Menonaktifkan TriggerSyntax; Menonaktifkan Trigger
DISABLE TRIGGER <nama_trigger> on Table | View
ENABLE TRIGGER <nama_trigger> on Table | View
www.rahmadani.net 22
![Page 23: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/23.jpg)
Syntax; Melihat Trigger pada Table
Sp_helptrigger View | Table
www.rahmadani.net 23
![Page 24: Part 15 triggerr](https://reader030.vdocuments.pub/reader030/viewer/2022020203/58747cf21a28ab4a758b89b3/html5/thumbnails/24.jpg)
www.rahmadani.net 24