Result-Driven Database Recommendations


We have implemented a prototype system, called YmalDB, based on our ReDRIVE framework. YmalDB is implemented in Java on top of MySQL. Implementation on top of an existing database system has a number of advantages, such as portability. Our system architecture is shown in Figure 1. YmalDB can be accessed via a simple web browser using an intuitive GUI.

Check out this video demonstration of our prototype:

System architecture

Figure 1: System architecture.

Users can submit any query they wish and see recommendations. Users submit their queries via SQL or by employing available input forms (Figure 2). After executing the query, users are presented with the results of the query and also a list of interesting faSets of the query results (Figure 3). Interesting faSets are grouped in categories according to the attributes they contain. Longer faSets are presented higher in the list, since longer faSets are generally rarer in the database, so the fact that they have a high interestingness score is more important than in the case of shorter faSets. The faSets of each category are ranked in decreasing order of their interestingness score and the top-5 faSets of each category are displayed. In case there are more faSets, the user can click the ``More'' button to see them.

Next to each interesting faSet, an arrow button appears. When the user clicks on it, a set of YmalDB results (Figure 4), i.e., recommendations, appear in a separate window. An explanation is also provided along with each YmalDB result, i.e., how this specific recommendation is related to the original query result. These recommendations are retrieved by executing an exploratory query corresponding to the interesting faSet that the user has selected to click on. We present the top-10 recommendations for each faSet. If users wish to do so, they can request to see more recommendations from the result of this exploratory query as well.

Users can request the expansion of their original queries. When YmalDB is requested to expand a query, it does so based on a set of expansion rules defined by the system administrator. The results of the original user query are expanded towards a set of attributes indicated by the expansion rules. Users receive a list of interesting values and recommendations as before.

Figure 2: Submitting queries. Figure 3: Interesting faSets. Figure 4: Recommendations.

Administrators of the system can perform the following administrative tasks: (i) define expansion rules and (ii) see and tune the statistics maintained for the database. Concerning the first task, administrators are presented with three panels that assist them in defining expansion rules (Figure 5). To define a new rule A → B, administrators select from the left panel the attributes in A. Then, they can either let the system suggest a set of expansion attributes B based on maintained statistics, or select the attributes of B themselves. Afterwards, they can create the new expansion rule by clicking on the buttons shown in the figure. Concerning the second task, administrators can select any combination of attributes in the database and see the corresponding faSets for these attributes in the database and their frequencies. Finally, they can also set appropriate thresholds and press on a button to generate an ε-tolerance closed rare faSets summary (Figure 6).

Figure 5: Expansion rules. Figure 6: System statistics.