database triggers

14
DATABASE TRIGGERS

Upload: shaharyar-nawaz

Post on 21-Jul-2015

57 views

Category:

Data & Analytics


2 download

TRANSCRIPT

Page 1: Database Triggers

DATABASE TRIGGERS

Page 2: Database Triggers

WHAT IS DATABASE TRIGGERS ?

Page 3: Database Triggers

ANSWER :• A DATRABASE TRIGGER IS PROCEDURAL CODE THAT IS AUTOMATICALLY EXECUTED IN

RESPONSE TO CERTAIN EVENTS ON A PARTICULAR TABLE OR VIEW IN A DATABASEE.

• THAT ARE THE PROCEDURES THAT IMPLICITLY EXECUTED WHEN AN EVENT OCCURS

AGAINST ASSOCIATED TABLE.

• TRIGGERS EXECUTES WHEN A USER TRIES TO MODIFY DATA BY DML , DDL EVENT.

• THAT TRIGGERS ARE STORED IN THE DATABASE SEPARATELY FROM THEIR ASSOCIATED

TABLES.

• TRIGGERS ARE EVENT-DRIVEN SPECIALIZED PROCEDURES, THEY ARE STORED IN AND

MANAGED BY THE DBMS

Page 4: Database Triggers

HOW AMANY TYPES OF TRIGGERS ?• THE FOUR MAIN TYPES OF TRIGGERS ARE:

1: ROW LEVEL TRIGGER:

THIS GETS EXECUTED BEFORE OR AFTER ANY COLUMN VALUE OF A ROW CHANGES

2: COLUMN LEVEL TRIGGER:

THIS GETS EXECUTED BEFORE OR AFTER THE SPECIFIED COLUMN CHANGES

Page 5: Database Triggers

3: FOR EACH ROW TYPE

THIS TRIGGER GETS EXECUTED ONCE FOR EACH ROW OF THE

RESULT SET AFFECTED BY AN INSERT/UPDATE/DELETE

4: FOR EACH STATEMENT TYPE:

THIS TRIGGER GETS EXECUTED ONLY ONCE FOR THE ENTIRE

RESULT SET, BUT FIRES EACH TIME THE STATEMENT IS

EXECUTED.

Page 6: Database Triggers

WHICH EVENTS ? ? ??

• EVENTS ARE DIFFERENT FOR DML & DDL

Page 7: Database Triggers

DML (DATA MODULATION LANGUAGE)TRIGGERS

• DML EVENTS ARE INSERT, UPDATE, OR DELETE STATEMENTS ON A TABLE OR VIEW.

• DML TIGGERS ARE ALSO CALLED STANDARD TRIGGERS.

• DML TRIGGERS ARE FREQUENTLY USED FOR ENFORCING BUSINESS RULES AND DATA INTEGRITY.

• THE CODE FOR CREATING DML TRIGGER IS ON NEXT SLIDE

Page 8: Database Triggers

CREATE TRIGGER [ SCHEMA_NAME . ]TRIGGER_NAME

ON { TABLE | VIEW }

[ WITH <DML_TRIGGER_OPTION> [ ,...N ] ]

{ FOR | AFTER | INSTEAD OF }

{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }

[ WITH APPEND ]

[ NOT FOR REPLICATION ]

AS { SQL_STATEMENT [ ; ] [ ,...N ] | EXTERNAL NAME <METHOD SPECIFIER [ ; ] > }

<DML_TRIGGER_OPTION> ::=

[ ENCRYPTION ]

[ EXECUTE AS CLAUSE ]

<METHOD_SPECIFIER> ::=

ASSEMBLY_NAME.CLASS_NAME.METHOD_NAME

Page 9: Database Triggers

DDL (DATA DEFINATION LANGUAGE)TRIGGERS

• DDL EVENTS ARE CREATE, ALTER, DROP STATEMENTS. GRANT, DENY, REVOKE, AND UPDATE STATISTICS

STATEMENT ARE DDL TRIGGERS.

• THE CODE FOR CREATING DDL TRIGGER IS ON NEXT SLIDE

Page 10: Database Triggers

CREATE TRIGGER TRIGGER_NAME

ON { ALL SERVER | DATABASE }

[ WITH <DDL_TRIGGER_OPTION> [ ,...N ] ]

{ FOR | AFTER } { EVENT_TYPE | EVENT_GROUP } [ ,...N ]

AS { SQL_STATEMENT [ ; ] [ ,...N ] | EXTERNAL NAME < METHOD SPECIFIER > [ ; ]

}

<DDL_TRIGGER_OPTION> ::=

[ ENCRYPTION ]

[ EXECUTE AS CLAUSE ]

TRIGGER ON A LOGON EVENT (LOGON TRIGGER)

CREATE TRIGGER TRIGGER_NAME

ON ALL SERVER

Page 11: Database Triggers

WHAT TYPES OF WORK TRIGGERS DO ?

Page 12: Database Triggers

ANSWERS :

• A TRIGGER CAN PERMIT DML OPERATIONS AGAINST A TABLE ONLY IF THEY ARE

ISSUED DURING REGULAR BUSINESS HOURS.

• THE TRIGGER FURTHER RESTRICTS DML OPERATIONS TO OCCUR ONLY AT CERTAIN

TIMES DURING WEEKDAYS.

• AUTOMATICALLY GENERATE DERIVED COLUMN VALUES

• PREVENT INVALID TRANSACTIONS

• ENFORCE COMPLEX SECURITY AUTHORIZATIONS

Page 13: Database Triggers

(CONTINUES . . . . .)

•ENFORCE COMPLEX BUSINESS RULES

•PROVIDE TRANSPARENT EVENT LOGGING

•PROVIDE SOPHISTICATED AUDITING

•MAINTAIN SYNCHRONOUS TABLE REPLICATES

•GATHER STATISTICS ON TABLE ACCESS

Page 14: Database Triggers

THANK YOU . . . . .