Triggers and Active Databases .


24 views
Uploaded on:
Category: Funny / Jokes
Description
Triggers and Active Databases. CS561. Information in presentation based on VLDB’2000 “test-of-time” paper. Practical Applications of Triggers and Constraints: Successes and Lingering Issues. Stefano Ceri Roberta J. Cochrane
Transcripts
Slide 1

Triggers and Active Databases CS561

Slide 2

Information in presentation in light of VLDB\'2000 "trial of-time" paper Practical Applications of Triggers and Constraints: Successes and Lingering Issues Stefano Ceri Roberta J. Cochrane Politecnico di Milano IBM Almaden Research Center Jennifer Widom Stanford University

Slide 3

What are Triggers, and why ? Thought of triggers were created for "information requirements" Example: Relation of baseball players and compensation. On the off chance that new player included, trigger will verify whether group is over pay top and will force a punishment to group. Triggers make an aloof database "dynamic" Database responds to specific circumstances Event Condition Action manage : on occasion embed/redesign/erase, if condition C is genuine then do activity A

Slide 4

Brief History 1975: Idea of "uprightness limitations" Mid 1980-1990: inquire about in requirements & triggers Languages and calculations SQL-92: imperatives Key imperatives; referential trustworthiness, space requirements Declarative spec and procedural understanding SQL-99: triggers/ECA (constrained) Early acknowledgment; Widely-changing backing in items; "execution semantics" contrast, how far to go ? Presently : New "hot" incarnation in spilling …

Slide 5

Uses/Advantages To move application rationale and business rules into database This permits more usefulness for DBAs to build up essential limitations/tenets of utilizations Rules oversaw in some focal "place" Rules consequently authorized by DBMS, regardless of which applications later go ahead line

Slide 6

Active DB versus Rule Systems Expert Systems/AI: Focus principally on "thinking" (set up of algorithmic arrangement), e.g., <if A then B holds> Typically, no "dynamic move" can be taken Typically no thought of "activating" in view of "occasions", but instead anchoring of truths together Typically little information (all in principle memory) Typically, restricted execution (RETE organize) Typically no idea of simultaneous clients and exchanges

Slide 7

Classification of Triggers Two Types of Triggers Generated: in light of some larger amount determination Handcrafted: normally particular to some application

Slide 8

Theme : Generated Triggers (dynamic standards) are hard to compose accurately Idea: Trigger application indicated at more elevated amount (explanatory) Actual triggers to actualize the application created from detail Semi-programmed Correctness ensured

Slide 9

Example : Constraints Specify satisfactory database states <condition X must hold> Mapping: When <potentially discrediting operations> If <constraint violated> Then <fix it>

Slide 10

Example : Constraints Constraint : Predicate not to hang on table Example : Every worker\'s specialty must exist Emp: not exists (select * from dept where dno = emp.dno) System delivers as a rule: Create govern <name> on table When <invalidating ops> if exists (select * from <table> where <predicate>) Then <action> System produces for our case: Create control <name> on emp When embedded, , overhauled (dno) if exists (select * from emp where not exists (select * from dept where dno=emp.dno)) Then <Reject update> Similar manage made for dept table, and erase and redesigns on it.

Slide 11

Classification of Triggers Two Types of Triggers Generated: in light of some more elevated amount particular Handcrafted: normally particular to some application Three Classes of Usage Kernel DBMS: hard coded into portion DBMS administrations: upgrades database usefulness External application s: making triggers particular to application

Slide 12

Generated Triggers DBMS Kernel Referential honesty If outside key in a table is erased or overhauled, it causes an activity generally determined by client: set invalid/course Materialized sees Set of triggers that keep information predictable Either re-processes view, or Better changes see every time base information is changed

Slide 13

Generated Triggers DBMS Services Alerter When information changes , message can be sent to client Example: A sensor will see that stand out drain container is left on the rack, and a message could be send to director. Replication If a table is duplicated, a trigger will watch overhauls to that unique table and will change replicated table. Review Trails, Migration, Extenders, and so on. Huge Success Story : Services easy to determine; yet procedural semantics. Just reasonably configurable. Illustration: IBM DB2 has various such trigger-based administrations

Slide 14

Generated Triggers External Applications Workflow administration External instruments with support for era of "Process Rules/Models"

Slide 15

Handcrafted Triggers Embedded DBMS Kernel Metadata administration Internal review trails But: Triggers great for prototyping; however regularly supplanted by code specifically

Slide 16

Handcrafted Triggers DBMS Services Not for the most part utilized here

Slide 17

Handcrafted Triggers External Applications Straightforward utilization of triggers Application particular Additional types of "information uprightness" Could be utilized to figure inferred sections Or, authorize subjectively complex application-particular semantics Examples: Business rules, store network administration, web applications, and so on. Be that as it may, : Triggers are trying to use for complex applications Need wizard to give designer a chance to indicate trigger in larger amount dialect

Slide 18

Generated Constraint protecting Invalidating Materializing Metadata Replication Extenders Alerters Handcrafted Application particular Classification

Slide 19

Challenges

Slide 20

Challenge : Semantics ? What causes a lead to be activated? (states, operations, moves) At what granularity are tenets activated ? (after tuple change, set level change, exchange, and so forth). What happens when products guidelines are activated? (self-assertive request, numeric or needs recommended) Can rules trigger each other, or themselves? When all is said in done, numerous unpretentious outline decisions exist !

Slide 21

Support for Triggers in DBMS? DDL : Add/Disable triggers; scope DML : What can lead do Extra support for administer execution: e.g., "delta tables" Query advancement : additionally consider rules Query execution : interrelationship with limitations Indexing and principles Transaction administration and tenets (coupled or not)

Slide 22

Challenges – Triggers in Products No consistency among trigger support in items Triggers basic : ordinarily can\'t encode complex conditions (streamlining issue; poor execution) Typically, no time-based occasions Semantics: value-based; interrelationships; and so forth. Triggers aren\'t versatile (one for every table regularly, or something like that) Triggers hard to utilize (if a large portion of them) Trigger collaboration examination No amazing trigger outline instruments

Slide 23

Challenge: Rule Analysis Termination: delivers a last state Confluence : ends and creates a last express that does not rely on upon request of execution Observable Determinism : every single noticeable activity performed by standards are the same at all conditions of preparing Termination : Find cycles Examine controls in cycle for conduct Could discover that end now and again Data subordinate : regardless of the possibility that at accumulate time has cycle, still might be helpful all in all , undecidable ( ~ FOL with predicates and suggestion) by and by (Oracle) : Optimistic arrangement Terminate after 25 trigger summons, and rollback

Slide 24

Trigger Implementation Two techniques (Postgres): Tuple-level checking Query revamping Pros and Cons : Tuple-level stamping – functions admirably for loads of principles applying to few tuples Query reworking – functions admirably for few guidelines applying to bunches of tuples But: Semantics may vary

Slide 25

Implementation : Marking Place markers on all tuples for which rules apply : If markers experienced amid execution Call run processor Note: Markers must be kept up through changes Place stubs on tables with potential markers

Slide 26

Marking Example Define lead FredJoe On new to emp.sal Where emp.name = "Fred" Then do supplant emp (sal=new.sal) where emp.name = "Joe" Pace marker : on emp tuples with name = "Fred" Maintain marker : if name altered, then marker is dropped Place stub on emp table to get new "Fred\'s"

Slide 27

Query Rewriting : Example Inset modules amongst parser and question enhancer Query + Rules  Set of Queries Example: On supplant to emp.sal Then do affix to review (cur.sal, new.sal) + Replace emp (sal = sal * 1.1 )  add to review (emp.sal, 1.1 * emp.sal) supplant emp (sal = sal * 1.1 )

Slide 28

Transactions – Coupling Modes Specify exchange relationship of when tenets execute in respect to activating client activities Result: Nested Transaction Model Fore-runner : HIPAC at HP

Slide 29

Transactions – Coupling Modes Specify exchange relationship amongst: Event and Condition : E-C Coupling Condition and Action : C-A Coupling modes: Immediate Deferred : at end of exchange Separate : keep running as partitioned exchange

Slide 30

Transactions – Rule Processing 1. Occasion triggers set of guidelines R1 to Rn 2. For every run Ri in set, plan exchange to: Evaluate condition If genuine, plan exchange to execute activity Processing of exchange booking in light of coupling modes Notes: Rule-created operations in 2(a) and (b) may recursively summon 1/2 Multiple activated tenets yield simultaneous exchanges Recursive summons yield trees of settled exchanges

Slide 31

Conclusion on Triggers + DBMS A gigantic territory with testing Issues, both at semantics and execution level Potential for some down to earth uses Products have just joined a little subset of components; there is a SQL standard (SQL99), but then there is not 100% consistency Application of hypotheses and procedures are and will have affect past static databases and govern handling

Recommended
View more...