part 15 triggerr

24
Trigger Trigger www.rahmadani.net 1 Pertemuan ke-15

Upload: dennyyahya

Post on 10-Jan-2017

87 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Part 15  triggerr

TriggerTrigger

www.rahmadani.net 1

TriggerTriggerPertemuan ke-15

Page 2: Part 15  triggerr

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

www.rahmadani.net 18

Deklarasi TRIGGERDeklarasi TRIGGER

Page 19: Part 15  triggerr

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

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

Syntax; Hapus TriggerSyntax; Hapus Trigger

DROP TRIGGER <nama_trigger>

www.rahmadani.net 21

DROP TRIGGER <nama_trigger>

Page 22: Part 15  triggerr

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

Syntax; Melihat Trigger pada Table

Sp_helptrigger View | Table

www.rahmadani.net 23

Page 24: Part 15  triggerr

www.rahmadani.net 24