Main Idea
Rectangle(x, y) :- x >= 0, x <= 10, y >= 0, y <= 20.
Each constraint tuple is a conjunction of inequalities using the same set of variables. In the rectangle example the spatial variables are x and y. The Rectangle(x, y) constraint tuple means the set of (x, y) points that satisfy all the four inequalities. There are an infinite number of such points. A constraint relation is a finite set of constraint tuples. A constraint database is a finite set of constraint relations. In 1990, Kanellakis, Kuper, and Revesz introduced constraint query languages that accept constraint databases as input and give constraint databases as output. This constraint data model is a natural generalization of the relational data model in which relational query languages accept relational databases as input and give relational databases as output.
When writing constraint database queries, one needs to keep in mind only the schemes of the relations and not the actual constraints within the relations. At query time the constraint relations can be viewed as only an infinite size relation. Hence it is as simple to write constraint database queries as to write relational database queries. Nevertheless, one can do more with SQL and constraint databases than with SQL and relational databases because the infinite size relations are more expressive than finite size relations. It seems a little magic to be able to do more without actually doing more effort in writing queries. However, there is some extra work needed inside by the constraint query evaluation engine. In general, the constraint query evaluation engine needs to work harder and smarter than a relational query evaluation engine. The constraint database systems listed below are only a start of implementation efforts. Interested in contributing to this area? Learn more about constraint databases from the references below and contact us in email. |
|
Bibliography
|
Contact
· Shasha Wu swu AT arbor.edu |
Conferences
on Constraint Databases
|
Constraint Database
Systems
|
Books
|