Boolean conjunctive query

In the theory of relational databases, a Boolean conjunctive query is a conjunctive query without distinguished predicates, i.e., a query in the form R_1(t_1) \wedge \cdots \wedge R_n(t_n), where each R_i is a relation symbol and each t_i is a tuple of variables and constants; the number of elements in t_i is equal to the arity of R_i. Such a query evaluates to either true or false depending on whether the relations in the database contain the appropriate tuples of values, i.e. the conjunction is valid according to the facts in the database.

As an example, if a database schema contains the relation symbols {{mvar|Father}} (binary, who's the father of whom) and {{mvar|Employed}} (unary, who is employed), a conjunctive query could be Father(\text{Mark}, x) \wedge Employed(x). This query evaluates to true if there exists an individual {{mvar|x}} who is a child of Mark and employed. In other words, this query expresses the question: "does Mark have an employed child?"

Complexity

{{Main|Conjunctive query#Complexity}}

See also

References

  • {{cite journal

|author1=G. Gottlob |author2=N. Leone |author3=F. Scarcello | title = The complexity of acyclic conjunctive queries

| journal = Journal of the ACM

| volume = 48

| issue = 3

| pages = 431–498

| year = 2001

| doi = 10.1145/382780.382783

}}

Category:Boolean algebra