Patent Publication Number: US-7720842-B2

Title: Value-chained queries in analytic applications

Description:
TECHNICAL FIELD 
   The present invention relates to data management systems. More specifically, the present invention pertains to a method and system for navigating data generated by analytic applications. 
   BACKGROUND ART 
   Due to the increased amounts of data being generated, stored, and processed today, operational databases are constructed, categorized, and formatted for operational efficiency (e.g., throughput, processing speed, and storage capacity). The raw data found in these operational databases often exist as rows and columns of numbers and code that appear bewildering and incomprehensible to business analysts and decision makers. Furthermore, the scope and vastness of the raw data stored in modern databases render it harder locate usable information. Hence, “analytic applications” have been developed in an effort to help interpret, analyze, and compile the data so that it may be more readily understood by a business analyst. These applications map, sort, categorize, and summarize the raw data before it is presented for display, so that individuals can interpret data and use it as the basis for making decisions. However, for users not experienced in the nuances of constructing a query, the amount of effort required to get specific data may be burdensome to many users. 
   Given the many different types of source data available, and the many ways that the source data can be transformed and combined, large amounts of data are available that can be difficult for a user to navigate. An example is a user who has identified a problem area in business performance which requires further investigation. This user may need to go through a number of fields of data in order to identify exactly what has caused the problem. For a user who is skilled in constructing a query, this may be an easy task, but less skilled users may find it difficult to navigate the database and find the root cause of the problem. 
   Another user may spend a great deal of time searching through databases seeking particular items of information such as the business metrics that provide a concise measure of the performance or efficiency of a business (e.g., total sales revenue, margin, etc.). Because the information may change dramatically and/or frequently, a user may need to make such time-consuming searches on a regular basis. For a user who must access data regularly, these searches can take an inordinate amount of time. 
   Hence, it is desirable to facilitate access to pertinent information in the large databases defined by analytic applications, especially items of information of particular interest to a user. It is also desirable for the user to be able to reach a particular data field, or conduct multiple searches of related data fields, without having to recreate the entire search each time. The present invention provides a method and system that meet the above needs. 
   SUMMARY OF THE INVENTION 
   The present invention provides a method and system that can facilitate user access to information in the large databases defined by analytic applications, and that can allow the user to efficiently use his/her time to locate and access information of particular interest. The present invention also provides a method and system that can allow a user to access new information of particular interest in a timely manner. The present invention further provides a method and system that allow a user to reach a particular data field to conduct multiple searches of related data fields without having to recreate the entire search each time. 
   A method and system for facilitating access to information defined by an analytic application are described. In particular, a method of implementing query chains in analytic applications is described. In one embodiment, the information and data are stored in a repository. Navigation of a database is expedited by presenting to the user a series of query options based upon what data field currently is being displayed. This allows a guided analysis based upon anticipated useful queries or upon prior queries which accessed the current data field. These options can be generated from a static table of queries or a dynamic table which is updated by users. The table of options can be standardized or modified for each customer installation. The user can continue a query without having to choose the attributes, metrics, and filters of the next query. Or, if the user so desires, additional filters, metrics, and attributes can be added to one of the query options generated by the current data field. Or, the user can also choose to not use any of the query options and construct his/her own query. The user can save this newly constructed query chain and add it to the list of pre-defined queries for the preceding data field. 
   In another embodiment, the user designates a query chain. The user will be able to return to this field in subsequent searches without having to navigate the database. This will be useful in situations where the user may be conducting a search later and needs to return to that last field. In one step, the user will be able to access the needed data rather than having to recreate the steps performed in navigating the database. 
   Thus, in accordance with the present invention, navigating the vast amount of information defined by an analytic application is facilitated, and information of particular interest can be accessed in a timely manner. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments of the present invention and together with the description, serve to explain the principles of the invention. 
       FIG. 1  is a block diagram of an exemplary computer system upon which embodiments of the present invention may be practiced. 
       FIG. 2  is a block diagram of an exemplary system for implementing an analytic application upon which embodiments of the present invention may be practiced. 
       FIG. 3  illustrates an exemplary hierarchical organization of data created when an analytical application executes a query chain, in accordance with one embodiment of the present invention. 
       FIG. 4  is a flowchart showing the steps in a process for navigating an analytic application in accordance with one embodiment of the present invention. 
       FIG. 5  is a flowchart showing the steps in a process for creating a query chain, in accordance with one embodiment of the present invention. 
       FIGS. 6A-6F  illustrate a scenario in which a guided analysis assists a user in obtaining detailed information of business metrics in accordance with one embodiment of the current invention. 
   

   DETAILED DESCRIPTION OF THE INVENTION 
   A system and method for navigating data generated using an analytic application is described. While numerous details are set forth in order to provide a thorough understanding of the present invention, it should be understood that it is not intended to limit the invention to this particular embodiment alone. On the contrary, the invention is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the invention as defined by the appended claims. However, it will be obvious to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the present invention. 
   Some portions of the detailed descriptions that follow are presented in terms of procedures, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. In the present application, a procedure, logic block, process, etc., is conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. 
   It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “generating,” “receiving,” “executing,” “linking,” “recording,” and “duplicating” or the like, can refer to the actions and processes (e.g., processes  400  and  500  of  FIGS. 4 and 5 ) of a computer system or similar electronic computing device. The computer system, or similar electronic computing device, manipulates and transforms data represented as physical (electronic) quantities within the computer system&#39;s registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission, or display devices. 
   With reference to  FIG. 1 , portions of the present invention are comprised of computer-readable and computer-executable instructions that reside, for example, in computer system  100  which can be used as a part of a general purpose computer network. It is appreciated that computer system  100  of  FIG. 1  is exemplary only and that the present invention can operate within a number of different computer systems including general-purpose computer systems, embedded computer systems, laptop computer systems, hand-held computer systems, and stand-alone computer systems. 
   In the present embodiment, computer system  100  includes an address/data bus  101  for conveying digital information between the various components, a central processor unit (CPU)  102  for processing the digital information and instructions, a volatile main memory  103  comprised of volatile random access memory (RAM) for storing the digital information and instructions, and a non-volatile read only memory (ROM)  104  for storing information and instructions of a more permanent nature. In addition, computer system  100  may also include a data storage device  150  (e.g., a magnetic, optical, floppy, or tape drive or the like) for storing vast amounts of data. It should be noted that the software program for performing the query chaining process of the present invention can be stored either in volatile memory  103 , data storage device  105 , or in an external storage device (not shown). A computer storage medium includes a magnetic disk, optical disk, tape drive, RAM or ROM. 
   Devices which are optionally coupled to computer system  100  include a display device  106  for displaying information to a computer user, an alpha-numeric input device  107  (e.g., a keyboard), and a cursor control device  108  (e.g., mouse, trackball, light pen, etc.) for inputting data, selections, updates, etc. Computer system  100  can also include a mechanism for emitting an audible signal (not shown). 
   Referring still to  FIG. 1 , optional display device  106  of  FIG. 1  may be a liquid crystal device, cathode ray tube, or other display device suitable for creating graphic images and alpha-numeric characters recognizable to a user. Optional cursor control device  108  allows the computer user to dynamically signal the two dimensional movement of a visible symbol (cursor) on a display screen of display device  106 . Many implementations of cursor control device  108  are known in the art including a trackball, mouse, touch pad, joystick, or special keys on alpha-numeric input  107  capable of signaling movement of a given direction or manner of displacement. Alternatively, it will be appreciated that a cursor can be directed and/or activated via input from alpha-numeric input  107  using special keys and key sequence commands. Alternatively, the cursor may be directed and/or activated via input from a number of specially adapted cursor directing devices. 
   Furthermore, computer system  100  can include an input/output (I/O) signal unit (e.g., interface)  109  for interfacing with a peripheral device  110  (e.g., a computer network, modem, mass storage device, etc.). Accordingly, computer system  100  may be coupled in a network, such as a client/server environment, whereby a number of clients (e.g., personal computers, workstations, portable computers, minicomputers, terminals, etc.) are used to run processes for performing desired tasks (e.g., inventory control, payroll, billing, etc.). 
     FIG. 2  illustrates one embodiment of a system  200  for implementing an analytic application in accordance with the present invention. Data sources  201  includes one or more sources of operational data resulting from business and financial transactions, equipment performance logs, and the like. These data sources can be based on and formatted according to a Relational Database Management System (RDBMS) (such as from Oracle, Informix, Sybase, Microsoft, etc.), and Enterprise Resource Planning (ERP) system, Service Advertising Protocol (SAP), flat files, and other data transmission formats, either planned or envisioned including XML, WML, HDML, HTML, and I-mode HTML. 
   Data storage  202  is for storing operational data and the like from data sources  201 , typically using a high capacity mass storage device (such as hard disk drives, optical drives, tape drives, etc.). In one embodiment, data storage  202  is a data warehouse. Data storage  202  is coupled to a database management system (DBMS)  204  by analytic data interface  203 . DBMS  204  executes an analytic application such as a data mart application. A repository  205  is coupled to (or integrated with) DBMS  204  for storing information from the database management system. 
   In one embodiment, data are generated using a process such as the Transformation Definition Language (TDL) process described in U.S. Pat. No. 6,014,670, assigned to the assignee of the present invention and hereby incorporated by reference. There are at least three styles of calculating data (e.g., business metrics): periodic, on demand, and continuous (real time). In the periodic style, data are calculated at predetermined intervals (e.g., hourly, daily, weekly, etc.) and stored in repository  205 , and the most recent data are provided to the requester. In the on demand style, the data are calculated in response to a user request. These data may be cached or persisted in some manner (e.g., in repository  205 ), but do not exist or have value until they are initially requested. In the continuous (real time) style, data are updated as underlying data are updated. For example, a business metric describing the moving average for the inventory of a particular item gets updated as the inventory level for that item is updated. In each case, the requester gets the freshest data. 
   It is appreciated that business metrics can include any number of either the commonly used metrics for measuring business performance and efficiency, or unique business metrics defined by a user of an analytic application. Business metrics include, but are not limited to, measures of accounts receivable, accounts payable, general ledger, and cash flow. Metrics for accounts receivable can include, but are not limited to: accounts receivable balances, accounts receivable transactions, quality of sales, receivables-to-sales ratio, average collection period, customer credit reports, days outstanding, ratio of cash receipts to billed sales and payments in progress, ratio between ending accounts receivable balance and sum of billed sales, progress payments and beginning balances, ratio of ending receivables balance to cash receipts, accounts receivable turnover, average receivables amount, aging receivables by period, day of sales in receivables ratio, and current period collection rate. Metrics for accounts payable can include, but are not limited to: accounts payable balances, accounts payable transactions, quality of purchase, accounts payable turnover ratio, disbursements-to-payables ratio, days outstanding, payables-to-purchase ratio, average payment period, vendor credit analysis, ratio of cash disbursements to invoiced receipts, ratio between ending accounts payable balances and sum of incoming invoiced amounts, progress payments and beginning balances, ratio of ending payables balance to cash disbursements, payables-to-sales ratio, average payables amount, aging payables by period, day of purchase in payables ratio, and current period payment rate. General ledger metrics can include, but are not limited to: account balances, balance sheet plus profit/loss statement, revenues, costs, gross margins, and net profits. Cash flow metrics can include, but are not limited to: projected cash flow from receivables, cash flow from operations, and cash on hand. 
   Referring still to  FIG. 2 , in the present embodiment, an application server  206 , exemplified by computer system  100  in  FIG. 1 , is interposed between the DBMS  204  and a computer system  100  as exemplified in  FIG. 1 . Application server  206  may incorporate DBMS  204  and repository  205 , or these may be separate entities. 
     FIG. 3  exemplifies the type of information that may be contained in a repository  205 . The hierarchy shown indicates the types of paths that may be followed by a user navigating a database by executing a query chain. While  FIG. 3  implies that repository  205  itself may be based upon a hierarchical organization of data, this is not necessarily the case. One embodiment of the current invention is employed on a relational database. In a relational database, separate tables of information are joined in response to a query command to create usable information. 
   More specifically, while repository  205  is shown in  FIG. 3  as having one “parent” for each table in a level, in fact there may be multiple parents for a table. That is, “total sales” is shown as descending from “sales”; in actuality, “total sales” may descend from many other parents, and in turn may be the parent for multiple tables at a lower level in repository  205 . Thus, in accordance with the present invention, a user may operate further on information found through navigation of the database. That is, a user may reach a particular business metric by following one “path” through the database, but can leave that business metric by a different path, either back up the query chain or to a level deeper in the database. 
   In repository  205 , as users navigate the database, they are presented with a number of choices at each level. In this example, the user starts at the top level menu and can choose from purchasing or customer relations. After selecting customer relations, the user can then select the sales, or marketing tables. From sales, the user further navigates the database, accessing the total sales key, where the user is given the option of further investigating total sales for regions  1 ,  2 , and  3 . The user can navigate up or down this hierarchy, for example going back up to the sales key if necessary. Alternatively, the user could access additional information at any of these levels by executing a single properly formatted query. 
   In one embodiment of the present invention, lists of optional query chains are made available to a user as the user navigates the database. The particular list of optional query chains displayed depends on which table or field is currently being accessed by the user and are created when an analytic application such as DBMS  204  is installed. An example would be a user who navigates to the sales table and discovers that sales metrics are lower than expected. When the user reaches the sales table, a list of optional query chains is displayed. These optional query chains are listed in anticipation of what may be useful to a user who has navigated to the sales table in the database. In this particular case the optional queries could lead the user to tables listing inventory levels, number of customers, a breakdown of individual product sales, etc. The listed query chains will in essence provide a guided analysis for a user who may not be skilled in constructing query chains. The user has the option of using one of the query chains from the list, modifying one of the query chains from the list, or creating their own query chain. Thus the invention will enable less than skilled users to access usable data more reliably and quickly. 
   In another embodiment, the user can create his/her own query chain in repository  205  and which can be added to the pre-defined query chain list. The invention links all of the tables accessed by the user, creating a query chain. This query chain is stored and will be displayed as one option in the list of optional query chains. 
     FIG. 4  is a flowchart showing the steps in a process  400  for navigating and accessing data (including business metrics, processed data, and raw data) defined by an analytic application in accordance with one embodiment of the present invention.  FIG. 500  is a flowchart showing the steps in a process  500  for creating and executing a query chain defined by an analytic application in accordance with another embodiment of the present invention. Processes  400  and  500  can be implemented via computer-readable program instructions stored in a memory unit (e.g., volatile memory  103 , non-volatile memory  104 , and/or data storage device  105 ) and executed by processor  102  of computer system  100  ( FIG. 1 ). However, it is appreciated that portions of processes  400  and  500  can be implemented on different computer systems that are linked in a computer system network. In addition, it is understood that the steps in processes  400  and  500  can be repeated as necessary. 
   In step  410  of  FIG. 4 , operational data are received from a data source (e.g., data sources  201  of  FIG. 2 ). In step  420  of  FIG. 4 , metrics are generated using an analytic application such as the TDL process described in the above-referenced U.S. Pat. No. 6,014,670. In step  430  of  FIG. 4 , the user navigates the database to a particular metric. This can be any field within data repository  205  which contains data relevant to the present query. In step  440 , a query chain list is presented to the user. This is a list of pre-defined query chain commands which are expected to be of assistance to the user. The contents of the list of query chain commands is based upon which particular metric which is being accessed by the user. In step  450 , the user selects a query chain. The user has the option of selecting one of the query chains listed, modifying one of the query chains listed, or creating their own query chain. In step  460 , the query chain option exercised by the user in step  450  is executed. If the option exercised by the user is to create their own query chain, the user also has the option of saving that query chain and adding it to the list of pre-defined queries. By presenting a list of query chain commands to the user, it is possible to provide a guide for analyzing data based upon where the user is in the database. This provides less than skilled users a valuable tool which facilitates their analysis of database information. 
   Referring now to  FIG. 5 , in step  510  of the present embodiment, a first selection of a data field metric is received from the user. This is the first field in data repository  205  ( FIG. 2 ) accessed by the user. In step  520  of  FIG. 5 , the invention receives a subsequent selection from the user. It is appreciated that this subsequent selection may be one or more selections made by the user in the act of navigating repository  205 . Additionally, multiple query chains can be formed and uniquely identified. In step  530  of  FIG. 5 , the first selection and each subsequent selection are linked into a query chain and stored. It is this query chain which the invention uses to facilitate navigating repository  205 . In step  540  of  FIG. 5 , the query chain is executed in response to a command initiated by the user. In executing the query chain, the invention returns the user to a designated field, bypassing any intervening fields. 
     FIGS. 6A-6F  show a scenario in which a guided analysis assists a user in obtaining detailed information of business metrics in accordance with one embodiment of the current invention.  FIG. 6A , shows the variety of paths a user can follow when navigating a data generated by an analytic application. In  FIG. 6B , the user is reviewing a report summarizing bookings, billings, and backlogs. The user notices an increasing trend in backlogs over time. The user also notices that bookings and billings (Invoiced Amount) are not increasing proportionally. At this point, the present invention provides a menu of query options that the user may want to use. The menu is based upon the field that the user is currently accessing (BBB Analysis). In  FIG. 6C , the user has chosen a query option to access the financial analysis cell. The financial analysis cell provides an average order value report and suggestions for further reporting and analysis, based on different data scenarios. For example, because the report reveals a steady increase in average order value during this period, the user is guided back one step, then down the operational analysis path, instead of proceeding further down the financial analysis path. 
   In  FIG. 6D , the present invention navigates back up to the BBB Analysis field, then on to the Operational Analysis field. The first guided analysis report the user is lead to while moving down the operational analysis path contains the open order age report. This report confirms that backlogs have been steadily increasing for all products during the period under review. The user is now guided towards the Picking and Scheduling Analysis field. The Picking and Scheduling field of  FIG. 6E  contains the Monthly Average Pick Variance report that further assists the user in attempting to explain the increase in backlogs. This report shows an increase in the Monthly Average Pick Variance during the period under review. The present invention now suggests that the user drill down further by looking at this and other reports by product, region, channel, and customer segment. It then guides the user back a step to the Operational Analysis field.  FIG. 6F  shows that the user has chosen this option and stepped back to the Operational Analysis field. The user is now guided to the Cycle Time Performance cell. A report showing Monthly Average Shipped to Invoiced Cycle Time is generated. This report suggests that there may be additional inefficiencies in the organization&#39;s internal performance concerning shipping products to invoicing customers. The user can continue from this point down further logical query paths provided by the current invention, or create their own until a clear picture emerges of where company performance has lagged. 
   In summary, the present invention provides a method and system that can facilitate navigating large databases defined by analytic applications, and that can allow the user to efficiently use his/her time to locate and access information of particular interest. The present invention also provides a method and system that can allow a user to access new information of particular interest in a timely manner. 
   The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modification as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the Claims appended hereto and their equivalents.