Background

Experts in a specific domain need to use built in queries or rely on IT professionals to create them, resulting in an inefficiency to create powerful and meaningful custom queries. Their main challenge is a lack of technical experience with structured query languages. Our main problem to address is creating the ability to generate visual queries using extended entity relationship (EER) diagrams. These constructed queries are in an extended version of regular Structured Query Language (SQL) known as SQL     (SQLP).

SQLP
SQLP was developed in order to simplify the syntax required to construct table joins. In doing so, it speeds up the construction of conjunctive queries. It does so by incorporating attribute paths as an extension to the base SQL. This is achieved by making use of abstract tables which use an abstract primary key of self [of datatype of OID (object identifier)]. Each abstract table has only one primary key, self, and makes use of a constraint pathfd where we can either specify concrete attributes in the current table or concrete attributes from other tables. This allows us to specify multiple foreign key joins using dot-notation to separate the attributes.

Visual Query Systems
Visual queries are carried out by using a Visual Query System (VQS). A VQS is a system comprised of:
(1) A visual querying environment containing the visual elements the user interacts with
(2) A Visual Query Language that dictate how the user will interact with query environment. The VQS will visually represent the data that can be queried and the actual requests for data.

path

Project Goals

The project goal was to develop a visual query system that will allow users to leverage their understanding of the data contained in the database while requiring minimal understanding of strcutured query languages. The basic goals of the project then are:

  • Allow users to load EER diagrams with custom data to query
  • Creating a querying interface that users can interact with to construct queries
  • Create an encoded grammar that can be used to check the validity of an SQLP query

Results

Figure 1: Overview of the web application

When a user select the “Load model” button as shown in the interface, the onClick() method of the button is called and brings up the choose file dialog, allowing a user to selected a JSON file. It should be noted that the assumption is that the user will choose a JSON file of the correct structure. Once the file is loaded, this triggers the loadModel(input) with the input JSON file being passed as an argument. The drawERGraph(graph, inputFile) is then also called and is used to draw the graph on the canvas.

Downloads

Final Paper

 Download

Literature Review

Download