Chase (algorithm): Difference between revisions

Content deleted Content added
No edit summary
added references to open source implementations of the chase
Line 9:
The chase can be done by drawing a tableau (which is the same formalism used in [[tableau query]]). Suppose ''R'' has [[attribute (computing)|attributes]] ''A, B, ...'' and components of ''t'' are ''a, b, ...''. For ''t<sub>i</sub>'' use the same letter as ''t'' in the components that are in S<sub>''i''</sub> but subscript the letter with ''i'' if the component is not in ''i''. Then, ''t<sub>i</sub>'' will agree with ''t'' if it is in S<sub>''i''</sub> and will have a unique value otherwise.
 
The chase process is [[confluence (rewriting system)|confluent]]. There exist implementations of the chase algorithm<ref>[[Michael Benedikt]], [[George Konstantinidis]], [[Giansalvatore Mecca]], [[Boris Motik]], [[Paolo Papotti]], [[Donatello Santoro]], [[Efthymia Tsamoura]]: ''Benchmarking the Chase''. In Proc. of PODS, 2017.</ref>, some of them are also open-source<ref>{{cite web |url=https://github.com/donatellosantoro/Llunatic |title=The Llunatic Mapping and Cleaning Chase Engine}}</ref>.
The chase process is [[confluence (rewriting system)|confluent]].
 
==Example==
Line 71:
* [[Jeffrey Ullman|J. D. Ullman]]: ''Principles of Database and Knowledge-Base Systems, Volume I''. Computer Science Press, New York, 1988.
* [[Jeffrey Ullman|J. D. Ullman]], [[Jennifer Widom|J. Widom]]: ''A First Course in Database Systems'' (3rd ed.). pp.&nbsp;96–99. Pearson Prentice Hall, 2008.
* [[Michael Benedikt]], [[George Konstantinidis]], [[Giansalvatore Mecca]], [[Boris Motik]], [[Paolo Papotti]], [[Donatello Santoro]], [[Efthymia Tsamoura]]: ''Benchmarking the Chase''. In Proc. of PODS, 2017.
 
== Further reading ==