Keyword Search in Relational Databases: A Survey

The integration of DB and IR provides flexible ways for users to query information in the same platform [6, 2, 3, 7, 5, 28]. On one hand, the sophisticated DB facilities provided by RDBMSs assist users to query well-structured information using SQL. On the other hand, IR techniques allow users to search unstructured information using keywords based on scoring and ranking, and do not need users to understand any database schemas. We survey the developments on finding structural information among tuples in an RDB using an l-keyword query, Q, which is a set of keywords of size l, denoted as Q = {k1, k2, · · · , kl}. Here, an RDB is viewed as a data graph GD(V,E), where V represents a set of tuples, and E represents a set of edges between tuples. An edge exists between two tuples if at least there is a foreign key reference from one to the other. A tuple consists of attribute values and some of them are strings or full-text. The structural information to be returned for an l-keyword query is a set of connected structures, R, where a connected structure represents how the tuples, that contain the required keywords, are interconnected in a database GD. R can be either all trees or all subgraphs. When a function score(·) is given to score a structure, we can find the top-k structures instead of all structures in GD. Such a score(·) function can be based on either the text information maintained in tuples (node weights), or the connections among tuples (edge weights), or both. In Section 2, we focus on supporting keyword search in an RDBMS using SQL. Since this implies making use of the database schema information to issue SQL queries in order to find structures for an l-keyword query, it is called the schema-based approach. The two main steps in the schema-based approach are how to generate a set of SQL queries that can find all the structures among tuples in an RDB completely, and how to evaluate the generated set of SQL queries efficiently. Due to the nature of set operations used in SQL and the underneath relational algebra, a data graph GD is considered as an undirected graph by ignoring the direction of references between tuples, and therefore a returned structure is of undirected structure (either tree or subgraph). The existing algorithms use a parameter to control the maximum size of a structure allowed. Such a size control parameter limits the number of SQL queries to be executed. Otherwise, the number of SQL queries to be executed for finding all or even top-k structures is too large. The score(·) functions used to rank the structures are all based on the text information on tuples. In Section 3, we focus on supporting keyword search in an RDBMS from a different viewpoint, by materializing an RDB as a directed graph GD. Unlike an undirected graph, the fact that a tuple v can reach to another tuple u in a directed graph does not necessarily mean that the tuple v is reachable from u. In this context, a returned structure (either steiner tree, distinct rooted tree, r-radius steiner graph, or multi-center subgraph) is directed. Such direction handling provides users with more information on how the tuples are interconnected.