Part 15 triggerr

Post on 10-Jan-2017

81 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

Transcript

TriggerTrigger

www.rahmadani.net 1

TriggerTriggerPertemuan ke-15

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.

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.

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.

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

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)

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.

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.

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

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

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.

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

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.

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.

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

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.

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.

www.rahmadani.net 18

Deklarasi TRIGGERDeklarasi TRIGGER

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

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

Syntax; Hapus TriggerSyntax; Hapus Trigger

DROP TRIGGER <nama_trigger>

www.rahmadani.net 21

DROP TRIGGER <nama_trigger>

Syntax; Menonaktifkan TriggerSyntax; Menonaktifkan Trigger

DISABLE TRIGGER <nama_trigger> on Table | View

ENABLE TRIGGER <nama_trigger> on Table | View

www.rahmadani.net 22

Syntax; Melihat Trigger pada Table

Sp_helptrigger View | Table

www.rahmadani.net 23

www.rahmadani.net 24

top related