260 likes | 688 Views
Triggers and Active Databases. Alexandra Klenova Meghan Russ Josh Sunshine Abe Weinograd. Timeline. 1:40-3:05 Trigger History and Application Josh and Abe 3:05-3:15 Break 3:15-4:00 Scalable Trigger Processing Sasha and Meghan 4:00-4:30 Discussion.
E N D
Triggers and Active Databases Alexandra Klenova Meghan Russ Josh Sunshine Abe Weinograd
Timeline • 1:40-3:05 Trigger History and Application • Josh and Abe • 3:05-3:15 Break • 3:15-4:00 Scalable Trigger Processing • Sasha and Meghan • 4:00-4:30 Discussion
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
References • S. Ceri, R.J. Cochrane, and J. Widom. Practical Applications of the Twenty-Sixth International Conference on Very Large Data Bases, pages 285-296, Cairo, Egypt, September 2000. Invited Paper • U. Dayal, E. Hanson, and J.Widom. “Active Database Systems. In: Modern Database Systems: The Object Model, Iteroperability and Beyone, Addison-Wesley, Reading, Massachusetts, Sep 1994 • N. Paton, O. Diaz “Active Database Systems” • S. Ceri, J. Widom. “Deriving Production Rules for Constraint Maintenance” In Proceedings of the Six-teenth International Conference on Very Large Data Bases, pages 566-577, Brisbane, Australia, August 1990
What are Triggers and where do they come from? • Idea of triggers were developed from data constraints • Triggers make a passive database active and allows it to react to situation • Example: Relation of baseball players and salary. If new player is added/old player is updated, trigger will check to see if team is over salary cap and will impose a penalty to team. • Event Condition Action rule • On event insert/update/delete, if condition C is true then do action
Outline • How does this relate to Streaming Databases? • Issues and Advantages • Generated Triggers • Handcrafted Triggers • Further Classification
So How Does This Relate to Streams? • Triggers are the foundation for continuous queries • New data, or updated data can cause a reaction • Transforms old passive database, into an active one that waits on data in order to react to it.
Based on traditional DBMS Uses continuous queries Extending DBMS to become Active Triggers are like continuous queries STREAM and TriggersSimilarities
STREAM and TriggerDifferences • Triggers are simple but have no sense of order of evaluation • Triggers aren’t scalable • Many triggers cause confusion • Trigger cycle
Issues • Expressive Events • Events that can be triggered are limited to insert, delete, and update • No support for time actions • Example: At 4am copy essential tables and send alert to DBA • No sophisticated trigger processor to handle complex triggers
Issues cont’d • Limitations • Limit to prioritization and optimization when multiple triggers are opened • Language is low-level and more difficult to deal with • Uniformity • Each DBMS has subtle differences in language • Subtle Behavior • Triggers only execute after data is finished modifying • External actions do not know if the trigger that executed it committed causing possible inconsistency.
Issues cont’d • Development Support • No support for handcrafted triggers, which result more generated triggers and trigger “wizards” • Performance • Increasing problems when there are many triggers on one table
Advantages • To move application logic and business rules into database • This allow much more functionality for DBAs to establish vital constraints and rules that apply to their applications
Types of Triggers • Two types of Triggers • Generated: • Handcrafted: usually specific to application • Three types of uses • Kernel DBMS: hard coded into kernel • DBMS services: enhances database functionality • External applications: creating triggers specific to app.
Generated Triggers • DBMS Kernel • Referential integrity • If foreign key in a table is deleted or updated, it causes an action usually specified by user: set null/cascade • Materialized View • Set of triggers that keep data consistent • Either re-computes view or changes view each time base data is changed
Generated Triggers cont’d • DBMS Services • Alerter • When data changes, message can be sent to user • Example: A sensor will notice that only one milk carton is left on the shelf in a market, and a message could be send to manager. • Replication • If a table is copied, a trigger will notice updates to table and will change copied table.
Handcrafted Triggers • External Applications • Straightforward use of triggers • Application Specific • May compute derived columns (remember that this was a shortcoming of the relational model) • Use trigger wizard to let developer specify trigger in higher level language
Generated Constraint preserving Constraint restoring Invalidating Materializing Metadata Replication Extenders Alerters Handcrafted Ad hoc Further Classifications
What to Take Away • Triggers are foundation to Sreams • Triggers are limited in expression and performance • Two Types of Triggers:Generate and Handcrafted