- Query by Example
Query by Example (QBE) is a
database query language forrelational database s. It was devised byMoshè M. Zloof atIBM Research during the mid 1970s, in parallel to the development ofSQL . 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 QBEparser 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.Example
A simple example using the
Suppliers and Parts database is given here to illustrate how QBE works.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 peform 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 Query-by-Example have other comparison operator options, often via a pull-down menu, such as "Contains", "Starts With", "Greater-Than", and so forth.
See also
*
Microsoft Query by Example References
* M. Zloof. "Query by Example". AFIPS, 44, 1975.
*Raghu Ramakrishnan ,Johannes Gehrke . "Database Management Systems" 3rd edition. [http://www.cs.wisc.edu/~dbbook/openAccess/thirdEdition/qbe.pdf Chapter 6] .
*cite book | first=C.J. | last=Date | year=2004 | title=An Introduction to Database Systems | chapter=8 Relational Calculus | publisher=Pearson Education Inc. | editor=Maite Suarez-Rivas; Katherine Harutunian | id=ISBN 0-321-18956-6Sources
* 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.pdfExternal links
* [http://pgfoundry.org/projects/qbe Query by Example for PostgreSQL]
* [http://www.hibernate.org/hib_docs/reference/en/html/querycriteria.html#querycriteria-examples Query by Example in Java using Hibernate]
Wikimedia Foundation. 2010.