This application claims priority to Japanese Patent Application No. 2010-246299, filed Nov. 2, 2010, and all the benefits accruing therefrom under 35 U.S.C. §119, the contents of which in its entirety are herein incorporated by reference.
As one form of OLAP (On-line Analytical Processing) systems for analyzing a database, attention has been paid to MOLAP (Multi-dimensional On-line Analytical Processing) for analyzing a multi-dimensional database especially in companies. In the MOLAP, summary information generated from accumulated data is stored in a multi-dimensional database on the server side, and data is sliced and sent out in response to a processing request from a client.
The MOLAP enables high-speed aggregation calculation/multi-dimensional analysis of numerical data. For example, IBM Cognos TM1™ and IBM CognosExpress™ are known as products used for solutions for budget planning and the like. While being good at numerical aggregation, the MOLAP has a disadvantage that it is not possible to aggregately display character strings.
A technique for operating a natural language in a multi-dimensional database is disclosed in Japanese Patent Laid-Open No. 2004-46394 with a title of “MULTI-DIMENSIONAL DATABASE SYSTEM USING NATURAL LANGUAGE, AND OPERATION INSTRUCTION TRANSLATION METHOD”. In the multi-dimensional database, an operation instruction described in a natural language is interpreted at a part-of-speech level. However, a technique for performing character string aggregation on the multi-dimensional database is not disclosed.
A technique for performing character analysis in a multi-dimensional database is disclosed in Japanese Patent Laid-Open No. 2004-252797 with a title of “METHOD AND SYSTEM FOR PREPARING ANALYSIS INFORMATION ABOUT MULTI-DIMENSIONAL ANALYSIS”. In this technique, axis information used for analysis by the first analyzer is kept together with a keyword input for the analysis so that the next and subsequent analyzers can input the keyword to use the analysis axis information on the basis thereof. However, a technique for performing character string aggregation on a multi-dimensional database is not disclosed.
According to one embodiment of the present invention, a method for aggregating character strings using numerical aggregation calculation of MOLAP by computer processing, includes preparing a character string management table for managing character strings, and a character string field and a numerical field corresponding to the character string field in hierarchy structure data of the MOLAP, generating, in response to character string data being input into the character string field, a unique character string ID for a character string of the character string data and storing the character string ID into the numerical field, storing the character string ID and the character string data into the character string management table, calculating an aggregated value of the numerical fields by the numerical aggregation calculation of the MOLAP at a higher hierarchy layer of the hierarchy structure data, resolving the aggregated value into separate character string IDs at the higher hierarchy layer, and referring to the character string management table to obtain and display character string data corresponding to the resolved character string IDs.
According to another embodiment of the present invention, a system for aggregating character strings using numerical aggregation calculation of Multi-dimensional On-line Analytical Processing (MOLAP) by computer processing, the system includes a display, and a processor unit operative to prepare, a character string management table for managing character strings, and a character string field and a numerical field corresponding to the character string field in hierarchy structure data of the MOLAP, generate, in response to character string data being input into the character string field, a unique character string ID for a character string of the character string data and storing the character string ID into the numerical field, store the character string ID and the character string data into the character string management table, calculate an aggregated value of the numerical fields by the numerical aggregation calculation of the MOLAP at a higher hierarchy layer of the hierarchy structure data, resolve the aggregated value into separate character string IDs at the higher hierarchy layer, and refer to the character string management table to obtain character string data corresponding to the resolved character string IDs, and output the character string data corresponding to the resolved character string IDs to the display.
According to yet another embodiment of the present invention, a computer program product for causing a computer to aggregate character strings using numerical aggregation calculation of Multi-dimensional On-line Analytical Processing (MOLAP), the computer program product includes a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code comprising computer readable program code to prepare a character string management table for managing character strings, and a character string field and a numerical field corresponding to the character string field in hierarchy structure data of the MOLAP, computer readable program code to generate, in response to character string data being input into the character string field, a unique character string ID for a character string of the character string data and storing the character string ID into the numerical field, computer readable program code to store the character string ID and the character string data into the character string management table, computer readable program code to calculate an aggregated value of the numerical fields by the numerical aggregation calculation of the MOLAP at a higher hierarchy layer of the hierarchy structure data, computer readable program code to resolve the aggregated value into separate character string IDs at the higher hierarchy layer, and computer readable program code to refer to the character string management table to obtain and display character string data corresponding to the resolved character string IDs.
Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention. For a better understanding of the invention with the advantages and the features, refer to the description and to the drawings.
MOLAP is a technique for performing high-speed aggregation calculation/multi-dimensional analysis of numerical data. Since the structure of the MOLAP is well known, description thereof will be omitted.
For example, when it is assumed that there is provided a MOLAP description column at a lower hierarchy layer, and an explanation is input in the description column, as in
Therefore, in the present invention, character string data held by the lower hierarchy layer are dynamically aggregated and displayed by using numerical calculation of the MOLAP.
The summary of a main process is as follows:
(1) Replacement with numerical values is performed with the use of a character string management table, and numerical aggregation calculation of the MOLAP is used.
(2) Character string information are arranged in order of the degree of importance to narrow down the character string information to the top N pieces of character string information and display them.
(3) The degree of importance of the character string information is calculated on the basis of numerical data included in the view. (Here, an indicator is selectable.)
(4) The number of character strings which cannot be displayed is displayed as “Other x character strings”. (x: the number of character strings)
(5) Related information obtained from a view of the MOLAP is added to the character strings (so that a user can understand the context of the character strings).
Next, at step 1620, after setting a character string field on the MOLAP, a numerical field corresponding to this character string field is prepared. Preferably, the numerical field is set to have an invisible attribute.
Next, at step 1630, a character string ID is given to character string data in response to the data being input into the character string field. This character string ID is a value unique to the character string. The value is recorded in the numerical field. In the case of the present invention, this value is calculated by exponentiation with 2 as the base and an integer value as the exponent. For example, the integer value begins with 0 and is incremented by 1 each time a character string is input. Thereby, subsequent resolution into character string IDs can be easily performed. Exponentiation of 2 is merely one aspect, and the calculation method is not limited thereto. Other calculation methods are also possible if an aggregated character string can be resolved into original multiple character strings.
Then, at step 1640, the character string data and the character string ID are stored in the character string management table. The above steps 1620 to 1640 are a process performed at the lower hierarchy layer of the MOLAP.
Next, at step 1650, an aggregated value of the numerical fields is calculated by the numerical aggregation calculation of the MOLAP, and the aggregated value is recorded in a numerical field at the higher hierarchy layer. For example, in the case of
Then, at step 1660, the aggregated value is resolved into separate character string IDs. By resolving the value in the numerical field of the higher hierarchy layer by exponentiation of 2, the value is resolved into the original multiple character string data. In the case of the above example, the value is resolved into character string IDs of 8, 4, 2 and 1 because of 15=8+4+2+1.
Lastly, at step 1670, the character string management table is referred to, and character string data corresponding to the resolved character string IDs are obtained and displayed. In this case, sorting may be performed in order of the degree of importance so that the character string data is narrowed down to the top N character string data (N: integer) and displayed. As the degree of importance in this case, indicators other than sales data can be selected appropriately. That is, an indicator which is important to a reviewer may be selectable. Related information may be displayed beside a character string. Thereby, the user can understand the context of the character string data.
Resolution of the character string ID value: 31=16+8+4+2+1
Furthermore, sorting is performed in order of the degree of importance to character strings to the top N character strings, the N character strings are displayed, added with related information.
Resolution of the character string ID value: 30=16+8+4+2
Thus, the relevant character string is not displayed. That is, it is possible to dynamically update character string display in response to a change in character string data.
As another aspect of the present invention, an example of dynamic aggregate display of alerts will be described. The procedure is as follows:
(1) When numerical data is input at the lower hierarchy layer, it is judged whether the numerical value does not exceed a threshold, and alert character string data is automatically input (
(2) A character string ID is calculated for the alert character string and recorded in the numerical field. The alert character string and related information are recorded in the character string management table (
In the example of
(3) Numerical aggregation calculation of IDs is dynamically performed by the MOLAP.
(4) A character string ID is resolved at the higher hierarchy layer.
(5) Corresponding character strings and their related information are added and displayed (
In the example of
<Block Diagram of Computer Hardware>
To the bus (1704), a display (1706), such as an LCD monitor, is connected via a display controller (1705). The display (1706) is used to input character string data, select an indicator for importance degree information and display the result of MOLAP calculation. To the bus (1704), a hard disk or a silicon disk (1708) and a CD-ROM, DVD or Blur-ray drive (1709) are also connected via an IDE or SATA controller (1707). The program according to the present invention and data may be stored in these storage devices. The program of the present invention, a character string management table and the MOLAP program are stored in the hard disk (1708) or the main memory (1703) and executed by the CPU (1702) to perform desired calculation. The result of MOLAP calculation is displayed on the display (1706). Though the program of the present invention functions using the numerical calculation of the MOLAP program, it is also possible to cause the function to work by hardware.
The CD-ROM, DVD or Blu-ray drive (1709) is used to install programs including the MOLAP program into the hard disk or read data from a CD-ROM, DVD or Blu-ray disk, which is a computer-readable medium as needed. Furthermore, a keyboard (1711) and a mouse (1712) are connected to the bus (1704) via a keyboard/mouse controller (1710).
A communication interface (1714) is in accordance with, for example, the Ethernet™ protocol. The communication interface (1714) is connected to the bus (1704) via a communication controller (1713) and is in charge of physically connecting the computer system and a communication line (1715). The communication interface (1714) provides a network interface layer for the TCP/IP communication protocol, a communication function of the operating system of the computer system. It is also possible to request calculation processing to be performed by external MOLAP, via the communication line.
The character string aggregation method of the present invention can be realized by an object-oriented programming language, such as C++, Java™, JavaBeans™, Java™ Applet, JavaScript™, Perl, Ruby, and an apparatus executable program which is described in a database language such as SQL, and the like. The program can be distributed being stored in a computer-readable recording medium or can be distributed by being transmitted.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon. Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The present invention has been described with a particular embodiment and examples. However, the present invention is not limited to the particular embodiment or examples and can be varied within a range that those skilled in the art can conceive. For example, other embodiments, addition, change, deletion and the like are included. Any of the aspects is included in the scope of the present invention as far as the operation and advantages of the present invention are realized thereby.
Number | Date | Country | Kind |
---|---|---|---|
2010-246299 | Nov 2010 | JP | national |