Query by Example
From Wikipedia, the free encyclopedia
Query by Example (QBE) is a database query language for relational databases. It was devised by Moshé M. Zloof at IBM Research during the mid 1970s, in parallel to the development of SQL. It is the first graphical query language, using visual tables where the user would enter commands, example elements and conditions. Many graphical front-ends for databases use the ideas from QBE today.
Based on the notion of Domain relational calculus, QBE can be used as a search tool as well. A QBE parser parses the search query and looks for the keywords while eliminating words like a, an or the. A more formal query string, in languages such as SQL, is then generated, which is finally executed. However, when compared with a formal query, the results in the QBE system will be more variable. The user can also search for similar documents based on the text of a full document that he or she may have. This is accomplished by the user’s submission of documents (or numerous documents) to the QBE results template. The analysis of these document(s) the user has inputted via the QBE parser will generate the required query.
QBE is a seminal work in End-user development, frequently cited in research papers as an early example of this topic.
Currently, QBE is supported in different object-oriented databases (e.g. in db4o[1]).
Contents |
[edit] Example
A simple example using the Suppliers and Parts database is given here to illustrate how QBE works.
[edit] As a General Technique
The term also refers to a general technique influenced by Zloof's work whereby only items with search values are used to "filter" the results. It provides a way for a software user to perform queries without having to know a query language (such as SQL). The software can automatically generate the queries for the user (usually behind the scenes). Here are some examples:
Example Form B:
.....Name: Bob ..Address: .....City: ....State: TX ..Zipcode:
Resulting SQL:
SELECT * FROM Contacts WHERE Name='Bob' AND State='TX'
Note how blank items do not generate SQL terms. Since "Address" is blank, there is no clause generated for it.
Example Form C:
.....Name: ..Address: .....City: Sampleton ....State: ..Zipcode: 12345
Resulting SQL:
SELECT * FROM Contacts WHERE City='Sampleton' AND Zipcode=12345
More advanced versions of QBE have other comparison operator options, often via a pull-down menu, such as "Contains", "Starts With", "Greater-Than", and so forth.
[edit] See also
[edit] References
- M. Zloof. Query by Example. AFIPS, 44, 1975.
- Raghu Ramakrishnan, Johannes Gehrke. Database Management Systems 3rd edition. Chapter 6.
- Date, C.J. (2004). "8 Relational Calculus". in Maite Suarez-Rivas; Katherine Harutunian. An Introduction to Database Systems. Pearson Education Inc.. ISBN 0-321-18956-6.
[edit] Sources
- Oracle Definitions: http://searchoracle.techtarget.com/sDefinition/0,,sid41_gci214554,00.html
- http://www.cs.sfu.ca/CC/354/zaiane/material/notes/Chapter5/node2.html
- http://www.cs.wisc.edu/~dbbook/openAccess/thirdEdition/qbe.pdf


