WO2018110908A1 - 집계질의를 처리하기 위한 장치 및 그 방법 - Google Patents

집계질의를 처리하기 위한 장치 및 그 방법 Download PDF

Info

Publication number
WO2018110908A1
WO2018110908A1 PCT/KR2017/014367 KR2017014367W WO2018110908A1 WO 2018110908 A1 WO2018110908 A1 WO 2018110908A1 KR 2017014367 W KR2017014367 W KR 2017014367W WO 2018110908 A1 WO2018110908 A1 WO 2018110908A1
Authority
WO
WIPO (PCT)
Prior art keywords
aggregate
attribute
value
row
query
Prior art date
Application number
PCT/KR2017/014367
Other languages
English (en)
French (fr)
Inventor
엄정호
박경석
이용
문봉기
김보경
Original Assignee
한국과학기술정보연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술정보연구원 filed Critical 한국과학기술정보연구원
Publication of WO2018110908A1 publication Critical patent/WO2018110908A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Definitions

  • the present invention relates to a technique for processing aggregates based on a multi-dimensional database, and more particularly, to a novel aggregate processing method for an attribute of multidimensional data.
  • the multidimensional database is a database that manages data including a large number of attribute items to model a large amount of multidimensional data such as scientific information and medical information, and to support query processing and operation.
  • Such a multidimensional database replaces several attribute items to retrieve and aggregate multidimensional data.
  • relational database does not model data with multidimensional data, but models and expresses data with one-dimensional data having various properties like a relational database. .
  • the user wants to model data, manipulate queries, and perform operations similarly in a multidimensional database, as in a relational database, in which a user operates various attributes of one-dimensional data.
  • the aggregation operation is supported only for the dimension, which causes a problem that does not satisfy the needs of the user as described above.
  • the present invention has been made in view of the above circumstances, and an object of the present invention is to efficiently perform an aggregation process for attributes of multi-dimensional data based on a hash-tree index technique. In other words, new aggregate processing based on existing multidimensional database is realized.
  • an apparatus for processing an aggregate query comprising: a receiver configured to receive an aggregation query from a user terminal; A confirmation unit that checks aggregate related information related to the aggregate query based on a result of analyzing the aggregate query; And a generation unit for generating a query processing result for the aggregate query using a hash-tree generated based on the aggregate related information.
  • the verification unit parses the aggregate query to analyze a query syntax corresponding to the aggregate query and performs an aggregate function from the query syntax to perform an aggregate function and an attribute. And identifying the aggregation related information including at least one.
  • the generation unit checks the first attribute used for the operation by the aggregation operation function and the second attribute not used in the operation by the aggregation operation function based on the aggregation related information, but to be included in the query processing result. Based on the result, it is characterized in that to generate the hattry including at least one tree branch.
  • the generation unit When the first row of the array is input, the generation unit forms a first parent node based on the value of the second attribute included in the first row, and the value of the first attribute included in the first row. Forming a first leaf node based on the to generate a first tree branch.
  • the generation unit is based on a result of comparing the value of the second attribute included in the second row with the value of the second attribute of the first parent node. It is characterized by determining whether to generate.
  • the generation unit if the value of the second attribute included in the second row and the value of the second attribute of the first parent node are different, based on the value of the second attribute included in the second row A second tree branch is generated by forming a parent node and forming a second leaf node based on the value of the first attribute included in the second row.
  • the generation unit when a value of the second attribute included in the second row and a value of the second attribute of the first parent node are the same, based on the value of the second attribute other than the same value, And generating a subtree branch connected to one tree branch.
  • the subtree branch is formed based on the value of the remaining second attribute and is formed based on the value of the first parent included in the second row and the third parent node connected to a part of the first parent node. It characterized in that it comprises three leaf nodes.
  • the generation unit when the value of the second attribute included in the second row and the value of the second attribute of the first parent node are the same, the first attribute included in the second row based on the aggregation operation function.
  • the value of the first leaf node is updated by calculating a value of and a value of the first attribute of the first leaf node.
  • the generation unit may generate the query processing result by back-tracking the parent node corresponding to the leaf node included in each tree branch when the generation of the hash tree is completed.
  • the generation unit may search the third parent node and the part of the first parent node corresponding to the third leaf node to generate the query processing result. It features.
  • an operating method of an aggregate query processing apparatus includes: a receiving step of receiving an aggregation query from a user terminal; A checking step of checking aggregate related information related to the aggregate query based on a result of analyzing the aggregate query; And a generation step of generating a query processing result for the aggregate query using a hash-tree generated based on the aggregate related information.
  • the checking may include: parsing the aggregate query to analyze a query syntax corresponding to the aggregate query and performing an aggregate function from the query syntax, an array, an aggregate operation function, and an attribute It characterized in that to check the aggregation-related information including at least one of.
  • the generating step may include a first attribute used for the operation by the aggregation operation function and a second attribute not used in the operation by the aggregation operation function based on the aggregation related information but included in the query processing result. Based on the result of the check, the hatchery including at least one tree branch is generated.
  • a first parent node is formed based on the value of the second attribute included in the first row, and the first attribute of the first attribute included in the first row is generated.
  • Generating a first tree branch by forming a first leaf node based on the value;
  • a second row of the array is input, whether a tree branch is newly created based on a result of comparing the value of the second attribute included in the second row with the value of the second attribute of the first parent node. Characterized in that it comprises the step of determining.
  • the determining may be performed based on a value of the second attribute included in the second row if both the value of the second attribute included in the second row and the value of the second attribute of the first parent node are different. Forming a second parent node, and forming a second leaf node based on a value of a first attribute included in the second row to generate a second tree branch; If the value of the second attribute included in the second row and the value of the second attribute of the first parent node are the same, the first tree branch is based on the value of the second attribute except for the same value.
  • the subtree branch is formed based on the value of the remaining second attribute and is formed based on the value of the first parent included in the second row and the third parent node connected to a part of the first parent node. It characterized in that it comprises three leaf nodes.
  • the query processing result is generated by back-tracking the parent node corresponding to the leaf node included in each tree branch.
  • the process of processing the aggregate for the attributes of the multi-dimensional data based on the hash-tree index technique is performed efficiently, different from the existing It can provide a new aggregate processing method based on multidimensional database.
  • FIG. 1 is a diagram illustrating a communication environment to which an apparatus for processing aggregate quality according to an embodiment of the present invention is applied.
  • FIG. 2 is a diagram showing a schematic configuration of an apparatus for processing aggregate quality according to an embodiment of the present invention.
  • FIG. 3 is a diagram illustrating an example of generating a hash-tree according to an embodiment of the present invention.
  • FIG. 4 is a diagram illustrating an example of searching a hash-tree according to an embodiment of the present invention.
  • FIG. 5 is a diagram illustrating a flow for providing a processing service based on Hactree according to an embodiment of the present invention.
  • the communication environment to which the present invention is applied may have a configuration including an aggregate query processing apparatus 100, a user terminal 200, and a multi-dimensional database 300.
  • Aggregate query processing apparatus 100 is an apparatus for performing an aggregation query processing on an attribute (hereinafter, referred to as an attribute) of multidimensional data through interworking with the multidimensional database 300, and particularly provided by the present invention.
  • the processing of aggregates is performed based on the hash-tree indexing technique so that even if a plurality of attributes of the desired service, ie, multidimensional data, are manipulated so that the aggregates can be processed.
  • It is a device for providing a service providing a query processing result (hereinafter referred to as a hash-based aggregate processing service).
  • aggregate processing apparatus 100 may be implemented in the multi-dimensional database 300, or may be implemented separately in a separate device. In the embodiment of the present invention will be described by referring to the aggregate processing apparatus 100 is separate from the multi-dimensional database 300 to exist independently.
  • the apparatus 100 for processing the aggregate quality generates a query processing result according to the processing algorithm of the aggregate in association with the multidimensional database 300 and provides it to the user terminal 200.
  • the user terminal 200 may be a terminal used by a user to receive a hash-based aggregate quality processing service, and transmits an aggregate query input from the user to the aggregate query processing apparatus 100 to request generation of a query processing result. Can be.
  • Such a user terminal 200 may be a terminal of an institution / organization that wants to receive a data processing service based on Hactree, or may be a terminal used by an individual.
  • the multidimensional database 300 is a database for modeling a large amount of multidimensional data (for example, scientific information, medical information, etc.) and managing data having a plurality of attribute items in order to support query processing and operation.
  • multidimensional data for example, scientific information, medical information, etc.
  • Such a multi-dimensional database 300 in conjunction with the aggregate processing apparatus 100 to perform the processing of the aggregate-based aggregate quality to perform the aggregate processing algorithm.
  • the aggregate processing apparatus 100 and the multidimensional database 300 are linked to each other, but the processing algorithm of the aggregate is performed.
  • the present invention is not limited thereto, and the processing apparatus for processing the aggregate within the multidimensional database 300 ( When the function of 100 is implemented, the multidimensional database 300 alone may provide a service by performing an aggregate processing algorithm.
  • the apparatus 100 for processing an aggregate query includes a receiver 110 receiving an aggregate query from a user terminal 200 based on a result of analyzing the aggregate query.
  • the apparatus 100 for processing the aggregate quality stores all the information (eg, aggregate quality, datasheet, query processing result, etc.) generated and transmitted and received in order to provide a processing service based on the Hacitri-based aggregate, It may have a configuration that further includes a storage unit 140 provided on request.
  • information eg, aggregate quality, datasheet, query processing result, etc.
  • the apparatus 100 for processing an aggregate query provides a query screen for inputting an aggregate query of interest to the user, and is based on a result of analyzing the aggregate query input through the user terminal 200.
  • it may have a configuration that further includes an interface unit 150 for processing all interfaces until the query processing result is provided.
  • the whole or at least part of the configuration of the aggregate query processing apparatus 100 including the receiver 110, the confirmation unit 120, the generation unit 130, the storage unit 140, and the interface unit 150 is determined by a processor. It may be implemented in the form of a software module or a hardware module to be executed, or may be implemented in a combination of a software module and a hardware module.
  • the apparatus 100 for processing an aggregate quality efficiently performs an aggregate process on attributes of multi-dimensional data based on a hash-tree indexing technique, thereby multi-dimensional different from the conventional method.
  • a method of processing new aggregates based on a database is provided.
  • each configuration in the aggregate processing apparatus 100 for this purpose will be described in detail.
  • the receiver 110 receives an aggregate query from the user terminal 200.
  • the reception unit 110 when a user who wants to use the data processing service based on the aggregate, the query screen through the interface unit 150 so that the aggregate query can be input to the user terminal 200 to provide.
  • the receiver 110 receives the aggregate query from the user terminal 200 through the interface unit 150.
  • the receiver 110 transmits the aggregate query to the confirmation unit 120 to inform that the aggregate query has been received from the user terminal 200.
  • the confirmation unit 120 confirms the aggregation related information related to the aggregate query based on the result of analyzing the aggregate query.
  • the verification unit 120 parses the aggregate query and detects the aggregate related information from the query syntax corresponding to the aggregate query.
  • the aggregate query is input in the form of an attribute aggregation algorithm.
  • Attribute Aggregation algorithm query syntax is defined as follows to provide a hash-based aggregate processing service.
  • the array ARRAY represents array information for performing an aggregate operation.
  • Aggregate_function indicates the call type of an aggregate operation function for the aggregate operation.
  • the query grammar includes an array for performing an aggregate operation, at least one aggregate operation function, and at least one attribute.
  • Such a query grammar may have a form of a list in which an aggregate operation function is successively called for an aggregate operation.
  • the aggregate calculation function utilized in the aggregate operation of the present invention is intended for all calculation functions that can be provided by the processing service of hash-based aggregates such as average, maximum / minimum, total, standard deviation, and the like. It would be desirable.
  • attribute_Name which is a parameter of an aggregate operation function
  • a plurality of attributes [attribute_1, ... attribute_n]) may be called in succession.
  • attributes which are not used for the operation by the corresponding aggregation operation function but should be included in the query processing result may be specified in advance.
  • the checking unit 120 performs an aggregation operation function for the aggregation operation on the multidimensional data included in Array1.
  • Avg (attr1) and sum (attr2) are called, and the attributes (attr1 and attr2) used for the operation by the aggregate operation functions avg (attr1) and sum (attr2) are not used for the operation but Aggregation related information is generated by checking attributes (attr3 and attr4) to be included.
  • the verification unit 120 analyzes the query syntax corresponding to the aggregate query by using various parsers and aggregates the query syntax. Aggregation related information including at least one of an array for performing an operation, an aggregation operation function, and an attribute may be checked.
  • the generation unit 130 generates a query processing result based on the aggregate related information.
  • the generation unit 130 generates a query processing result for the aggregate query using a hash-tree generated based on the aggregate related information.
  • the generation unit 130 checks the corresponding array, the aggregation operation function, and the attribute for performing the aggregation operation from the aggregation related information.
  • the generation unit 130 may include the first attribute used in the operation by the aggregation operation function among the attributes detected from the aggregation related information, and the second attribute not included in the operation by the aggregation operation function but included in the query processing result. Generates a hash-tree based on the result of checking the property.
  • the operation is performed on the first attribute called by the aggregate operation function to generate the query processing result, and the same attribute is among the second attributes not called by the aggregate operation function.
  • the algorithm follows the aggregation of the rows of the array.
  • the generation unit 130 generates a hash-tree in order to efficiently manage attributes aggregated with each other in such an aggregation operation, and based on this, an index for a second attribute that is a non-aggregate attribute and Perform deduplication
  • FIG. 3 shows an example of generating a hash-tree.
  • the query syntax identified from the aggregate query is Aggregate (1, Sum (attr4), count (attr5), attr1, attr2, attr3), and Array1 has seven rows (L1-L7) and five attributes. Assume that it contains multidimensional data represented by (attr1, attr2, attr3, attr4, attr5).
  • the generation unit 130 confirms that the summation calculation functions Sum (attr4) and count (attr5) have been called for the aggregation operation on the multidimensional data included in the array Array1. Subsequently, the generation unit 130 calculates the first attributes attr4 and attr5 used for the calculation of the aggregate calculation functions Sum (attr4) and count (attr5), and the calculation of the aggregate calculation functions Sum (attr4) and count (attr5). Generates aggregate related information based on the result of checking the second attributes (attr1, attr2, attr3) that are not used in the query processing but should be included in the query processing result.
  • the generation unit 130 performs a process Step1 according to the input of the first row L1. That is, the generation unit 130 forms the parent node PN1 based on the values 1, 0, and 2 of the second attributes attr1, attr2, and attr3 included in the first row L1. The generation unit 130 applies the values 4 and 5 of the first attributes attr4 and attr5 included in the first row L1 to the corresponding aggregate calculation functions Sum (attr4) and count (attr5), respectively. Create leaf node LN1. Accordingly, as the process Step1 is performed, the tree branch T11 including the values 1, 0, 2 of the parent node PN1 and the values 4, 1 of the leaf node LN1 is generated.
  • the generation unit 130 performs a process Step2 according to the input of the second row L2. That is, the generation unit 130 forms the parent node PN2 based on the values 3, 2, and 3 of the second attributes attr1, attr2, and attr3 included in the second row L2. The generation unit 130 applies the values 1 and 3 of the first attributes attr4 and attr5 included in the second row L2 to the corresponding aggregate calculation functions Sum (attr4) and count (attr5), respectively. Create leaf node LN2. Accordingly, as the process Step2 is performed, a tree branch T12 including the values 3, 2, and 3 of the parent node PN2 and the values 1 and 1 of the leaf node LN2 is generated.
  • the generation unit 130 Since attr3 is different from the values 1, 0, and 2, the generation unit 130 generates a new tree branch T12 different from the tree branch T11.
  • the generation unit 130 performs a process Step3 according to the input of the three rows L3. That is, the generation unit 130, the values (3, 2, 3) of the second attributes (attr1, attr2, attr3) included in the third row (L3) is the value of the parent node (PN2) of the tree branch (T12) Since all the same as (3, 2, 3), instead of creating a new tree branch, the value (2, 8) of the first attribute (attr4, attr5) included in the third row (L3) is replaced with the corresponding aggregate calculation function Sum ( attr4) and count (attr5), respectively, to update the value (1, 1) of the leaf node LN2 of the tree branch T12 to (3, 2).
  • the generation unit 130 performs a process Step4 according to the input of the four rows L4. That is, the generation unit 130 includes a tree branch T11 in which the values 1, 1, and 2 of the second attributes attr1, attr2, and attr3 included in the fourth row L4 are generated in the previous step Step1. Some of the values (1, 0, 2) of the parent node (PN1), that is, "1" of attr1 are the same, so that the second attributes (attr2, attr3) of the second attribute (attr2) except for the same second attribute (attr1) are the same. A subtree branch T11a connected to the tree branch T11 is generated based on the value.
  • the generation unit 130 newly connects the second attributes atr3 and attr3 of the fourth row L4 to the second attributes attr1 of the parent node PN1 of the tree branch T11 to newly establish the parent node ( PN1a) is generated.
  • the generation unit 130 applies the values 4 and 3 of the first attributes attr4 and attr5 included in the fourth row L4 to the corresponding aggregate calculation functions Sum (attr4) and count (attr5), respectively.
  • the leaf node LN1a is generated. Accordingly, as the process Step 4 is performed, a subtree branch T11a including the values 1, 1 and 2 of the parent node PN1a and the values 4 and 1 of the leaf node LN1a is generated. It is connected to the branch T11.
  • the generation unit 130 performs a process Step5 according to the input of the fifth row L5. That is, the generation unit 130 includes a tree branch T12 in which the values 3, 2, and 3 of the second attributes attr1, attr2, and attr3 included in the fifth row L5 are updated in the previous step Step3.
  • the value (3, 2) of the leaf node (LN2) of the tree branch (T12) updated in step (3) that is, in the case of attr4, "3" is summed with "1" in 5 rows (L5).
  • "2" is updated by "3” in 5 rows (L5), and is updated to "3". Accordingly, as the process Step5 is performed, the values 3 and 2 of the leaf node LN2 of the tree branch T12 updated in the previous process Step3 are updated to (4, 3).
  • the generation unit 130 performs a process Step6 according to the sixth row L6. That is, the generation unit 130 may include the subtree branches T11a in which the values 1, 1, and 3 of the second attributes attr1, attr2, and attr3 included in the sixth row L6 are generated in the previous step Step4. Some of the values (1, 1, 2) of the parent node (PN1a) of (), i.e., "1, 1" of attr1, attr2, are the same, so that the second other than the value of the same second attribute (attr1, attr2) A subtree branch T11b connected to the subtree branch T11a is generated based on the value of the attribute attr3.
  • the generation unit 130 newly connects the second attributes attr2 of the sixth row L4 to the second attributes attr2 of the parent node PN1a of the subtree branch T11a to newly connect the parent nodes.
  • (LN1b) is generated. Accordingly, as the process Step 6 is performed, a subtree branch T11b including the values 1, 1, 3 of the parent node PN1b and the values 4, 1 of the leaf node LN1b is generated. It is connected to the subtree branch T11a.
  • the generation unit 130 performs a process Step7 according to the seventh row L7 input. That is, the generation unit 130 includes a tree branch T12 in which the values 3, 2, and 4 of the second attributes attr1, attr2, and attr3 included in the seventh row L7 are updated in the previous step Step5. Some of the values (3, 2, 3) of the parent node (PN2) of, i.e., "3, 2" of attr1, attr2 are the same, so that the second property except the values of the same second property (attr1, attr2) A subtree branch T12a connected to the tree branch T12 is generated based on the value of atr3.
  • PN2 parent node
  • the generation unit 130 newly connects the remaining second attributes attr2 of the seventh row L7 to the second attributes attr2 and attr2 of the parent node PN2 of the tree branch T12 to newly establish the parent node ( PN2a) is generated and the leaf nodes (6, 7) of the first attributes (attr4, attr5) included in the seventh row (L7) are applied to the corresponding aggregate operation functions Sum (attr4) and count (attr5), respectively. LN2a). Accordingly, as the process Step7 is performed, a subtree branch T12a including the values 3, 2, and 4 of the parent node PN2a and the values 6 and 1 of the leaf node LN2a is generated. It is connected to the branch T12.
  • Step 1 when the first row of the array is input, the generation unit 130 first performs an aggregation operation as in Step 1.
  • the first parent node is formed based on the value of the second attribute of the first row not called by the function, and the first leaf node is formed based on the value of the first attribute of the first row called by the aggregate operation.
  • the generation unit 130 may generate a tree branch based on a result of comparing the value of the second attribute included in the second row with the value of the second attribute of the first parent node. Determine whether new is created.
  • the generation unit 130 includes the second included in the second row as in step Step2.
  • a second parent node is formed based on the value of the second attribute, and a second tree branch is newly created by forming a second leaf node based on the value of the first attribute included in the second row.
  • the generation unit 130 newly sets the tree branch as in steps Step 3 and Step 5. Instead of generating, the value of the first leaf node of the first tree branch is calculated by calculating the value of the first attribute included in the second row and the value of the attribute of the first leaf node of the first tree branch based on the aggregation operation function.
  • the generation unit 130 performs the second operation as in steps Step 4, Step 6, and Step 7.
  • a subtree branch connected to the first tree branch is generated based on the value of the second attribute except for the same value as the second attribute of the first parent node among the second attributes included in the row.
  • the subtree branch includes a third parent node formed on the basis of the value of the remaining second attribute different from the value of the second attribute of the first parent node and connected to a part of the first parent node, and included in the second row.
  • a third leaf node formed based on the value of the first attribute is included.
  • the result value of performing an aggregate query is stored in the leaf node included in each tree of the hash-tree, and the second attribute, which is a non-aggregate attribute, is stored in the parent node corresponding to the leaf node. do.
  • the generation unit 130 back-tracks the parent node corresponding to the corresponding leaf node included for each tree branch of the hash-tree. To generate the query processing result.
  • FIG. 4 shows an example of searching a hash-tree.
  • the process (Step 1-Step 7) shown in FIG. 3 will be described with reference.
  • the generation unit 130 performs reverse search from the tree branch T11 of the hash-tree. That is, since the tree branch T11 includes the values (1, 0, 2) of the parent node (PN1) and the values (4, 1) of the leaf node (LN1), the generation unit 130 generates an aggregate query. Starting from the leaf node LN1 in which the result value is stored, a process TR1 is performed to reversely search the corresponding parent node PN1 corresponding to the leaf node LN1. Output 4, 1).
  • the generation unit 130 performs the reverse search of the subtree branch T11a connected to the tree branch T11. That is, since the subtree branch T11a includes the values (1, 1, 2) of the parent node (PN1a) and the values (4, 1) of the leaf node (LN1a), the generation unit (130) has an aggregate quality.
  • the search result (1, 1, 2, 4, 1) is output by performing a process (TR2) of searching backwards through a partial attribute (attr1) of (PN1).
  • the generation unit 130 performs the reverse search of the subtree branch T11b connected to the subtree branch T11a. That is, since the subtree branch T11b includes the values (1, 1, 3) of the parent node (PN1b) and the values (4, 1) of the leaf node (LN1b), the generation unit (130) has an aggregate quality.
  • the search result (1, 1, 3, 4, 1) is output by performing a search (TR3) of the partial attributes attr2 of the T11a and the attr1 of the parent node PN1. do.
  • the generation unit 130 performs a process of sequentially searching backwards to the tree branch T12 and the subtree branch T12a connected to the tree branch T12, respectively (TR4 and TR5).
  • the search results 3, 2, 3, 4 and 3 corresponding to the tree branch T12 and the search results 3, 2, 4, 6 and 1 corresponding to the sub tree branch T12a are output.
  • the generation unit 130 when the output of the search result is completed by performing the reverse search for each tree branch of the hash-tree, the generation unit 130 generates a query processing result including all the search results.
  • the generation unit 130 provides the generated query processing result to the user terminal 200 through the interface unit 150.
  • the aggregate related information related to the aggregate query is checked based on the result of analyzing the aggregate query (S101 and S102).
  • the aggregate query processing apparatus 100 parses the aggregate query and detects the aggregate related information from the query syntax corresponding to the aggregate query.
  • the aggregate query is input in the form of an attribute aggregation algorithm.
  • Attribute Aggregation algorithm query syntax is defined as follows to provide a hash-based aggregate processing service.
  • the array ARRAY represents array information for performing an aggregate operation.
  • Aggregate_function indicates the call type of an aggregate operation function for the aggregate operation.
  • the query grammar includes an array for performing an aggregate operation, at least one aggregate operation function, and at least one attribute.
  • Such a query grammar may have a form of a list in which an aggregate operation function is successively called for an aggregate operation.
  • the aggregate query processing apparatus 100 generates a query processing result for the aggregate query using a hash-tree generated based on the aggregate related information.
  • the apparatus 100 for processing an aggregate quality checks a corresponding array, an aggregate operation function, and an attribute for performing an aggregate operation from the aggregate related information.
  • the apparatus 100 for processing the aggregate query may include the first attribute used in the operation by the aggregation operation function among the attributes detected from the aggregation related information, and should be included in the query processing result although not used in the operation by the aggregation operation function. Check the second attribute.
  • the operation is performed on the first attribute called by the aggregate operation function to generate the query processing result, and the same attribute is among the second attributes not called by the aggregate operation function.
  • the algorithm follows the aggregation of the rows of the array.
  • the aggregate query processing apparatus 100 generates a hash tree in order to efficiently manage attributes aggregated with each other in such an aggregation operation, and based on the non-aggregate attributes, the hash tree is generated. Perform indexing and deduplication
  • the query syntax identified from the aggregate query is Aggregate (1, Sum (attr4), count (attr5), attr1, attr2, attr3), and Array1 has seven rows (L1-L7)
  • the aggregate query processing apparatus 100 performs an aggregation operation for the aggregation operation on the multidimensional data included in the array Array1. It is confirmed that the functions Sum (attr4) and count (attr5) have been called. Then, the aggregate query processing apparatus 100 performs the first attribute (attr4) used for the calculation of the aggregate calculation functions Sum (attr4) and count (attr5).
  • Attr5 and aggregate related information based on the result of checking the second attributes (attr1, attr2, attr3) that are not used in the calculation operation functions Sum (attr4) and count (attr5) but should be included in the query processing result.
  • the aggregate query processing apparatus 100 is not called by the aggregation operation function as in step Step1.
  • the first tree is formed based on the value of the second attribute in the first row, and the first leaf node is formed based on the value of the first attribute in the first row called by the aggregate operation.
  • the aggregate query processing apparatus 100 compares the value of the second attribute included in the second row with the value of the second attribute of the first parent node. It is determined whether to generate a tree branch based on the (S105).
  • the apparatus 100 for processing the aggregate quality is the same as in step Step2.
  • the second tree branch is newly formed by forming a second parent node based on the value of the second attribute included in the second row, and forming a second leaf node based on the value of the first attribute included in the second row. It generates (S106).
  • the apparatus 100 for processing the aggregate quality is performed in steps (Step 3 and Step 5). Instead of creating a new tree branch as shown in the figure, the value of the first attribute included in the second row and the value of the attribute of the first leaf node of the first tree branch are calculated based on the aggregation operation function. The value of the first leaf node is updated (S107).
  • the apparatus for processing the aggregate quality 100 may perform steps (Step4, Step6, As in Step 7), a subtree branch connected to the first tree branch is generated based on the value of the second attribute except for the same value as the second attribute of the first parent node among the second attributes included in the second row. (S108).
  • the subtree branch includes a third parent node formed on the basis of the value of the remaining second attribute different from the value of the second attribute of the first parent node and connected to a part of the first parent node, and included in the second row.
  • a third leaf node formed based on the value of the first attribute is included.
  • the result value of performing an aggregate query is stored in the leaf node included in each tree of the hash-tree, and the second attribute, which is a non-aggregate attribute, is stored in the parent node corresponding to the leaf node. do.
  • the aggregate query processing apparatus 100 When the generation of the hash-tree is completed as described above (S109), the aggregate query processing apparatus 100 reverses the corresponding parent node corresponding to the corresponding leaf node included for each tree branch of the hash-tree. Searching (back-tracking) (S110).
  • the aggregate processing apparatus 100 when the generation of the hash-tree (Hash-tree) is completed, the aggregate processing apparatus 100, the reverse search from the tree branch (T11) of the hash-tree (Hash-tree) Do this. That is, since the tree branch T11 includes the values (1, 0, 2) of the parent node (PN1) and the values (4, 1) of the leaf node (LN1), the aggregate processing apparatus 100 aggregates. Starting from the leaf node LN1 where the result value of the query is stored, the process TR1 reversely searches the corresponding parent node PN1 corresponding to the leaf node LN1 and performs a search result (1, 0, Output 2, 4, 1).
  • the apparatus 100 for processing the aggregate quality performs a reverse search of the subtree branch T11a connected to the tree branch T11. That is, since the subtree branch T11a includes the values (1, 1, 2) of the parent node (PN1a) and the values (4, 1) of the leaf node (LN1a), the apparatus for processing aggregate quality 100
  • the search result (1, 1, 2, 4, 1) is output by performing a process (TR2) of searching backwards through a partial attribute (attr1) of the parent node (PN1).
  • the apparatus 100 for processing the aggregate quality performs a reverse search of the subtree branch T11b connected to the subtree branch T11a. That is, since the subtree branch T11b includes the values (1, 1, 3) of the parent node (PN1b) and the values (4, 1) of the leaf node (LN1b), the apparatus for processing aggregate quality 100
  • the second attribute attr3 connected to the corresponding parent node PN1b that is, the leaf node LN1b, starting from the leaf node LN1b in which the result of performing the aggregate query is stored, and the sub
  • the search result (1, 1, 3, 4, 1) is performed by performing a reverse search (TR3) of some attributes attr2 of the tree branch T11a and some attributes of attr1 of the parent node PN1.
  • the apparatus 100 for processing the aggregate quality is a step (TR4, TR5) of sequentially searching for the tree branch T12 and the sub tree branch T12a connected to the tree branch T12 sequentially.
  • the search results 3, 2, 3, 4, and 3 corresponding to the tree branch T12 and the search results 3, 2, 4, 6 and 1 corresponding to the sub tree branch T12a are output. .
  • the aggregate query processing apparatus 100 when the reverse search is performed for each tree branch of the hash-tree and the output of the search result is completed, the aggregate query processing apparatus 100 generates a query processing result including all the search results. Then, the aggregate query processing apparatus 100 provides the generated query processing result to the user terminal 200 through the interface unit 150 (S111).
  • the present invention by efficiently performing the process of processing the aggregate quality for the attributes of the multi-dimensional data based on the hash-tree index technique, the new aggregate processing based on the existing multidimensional database The effect of providing a solution is achieved.
  • Embodiments of the present invention can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

Abstract

본 발명은 해시트리(Hash-tree) 인덱스 기법을 기반으로 다차원 데이터의 속성에 대한 집계질의 처리과정이 효율적으로 수행되도록 함으로써, 기존과 다른 다차원 데이터베이스 기반의 새로운 집계질의 처리 방안을 실현하는 집계질의를 처리하기 위한 장치 및 그 방법을 제안한다.

Description

집계질의를 처리하기 위한 장치 및 그 방법
본 발명은 다차원 데이터베이스(Multi-dimensional database) 기반의 집계질의 처리 기술에 관한 것으로, 더욱 상세하게는, 다차원 데이터의 애트리뷰트(Attribute)에 대한 새로운 집계질의 처리 방안에 관한 것이다.
다차원 데이터베이스는 과학정보, 의료정보 등과 같은 대용량의 다차원 데이터를 모델링하고, 질의 처리 및 연산을 지원하기 위해 다수의 애트리뷰트(Attribute, 이하 속성) 항목이 포함된 자료를 관리하는 데이터베이스이다.
이러한 다차원 데이터베이스는, 여러 개의 속성 항목을 교체해서 다차원 데이터를 검색 및 집계처리 하게 된다.
하지만, 관계형 데이터베이스에 익숙해져 있는 일반적인 사용자는, 다차원 데이터베이스임에도 불구하고 다차원 데이터로 데이터를 모델링 하기 보다는, 관계형 데이터베이스와 같이 여러 속성을 가지는 1차원의 데이터로 모델링하고 데이터를 표현하는 경우가 발생하게 된다.
즉, 관계형 데이터베이스에서 1차원의 데이터의 여러 속성을 조작하여 집계 연산을 수행하던 것과 같이 사용자는 다차원 데이터베이스에서도 동일하게 여러 속성을 조작하여 데이터를 모델링하고, 질의 처리 및 연산을 수행하기를 원한다.
하지만, 기존의 다차원 데이터베이스에서는 차원(Dimension)에 대해서만 집계 연산을 지원하기 때문에 전술과 같은 사용자의 니즈(needs)를 만족시키지 못하는 문제가 발생하게 된다.
이에, 기존 다차원 데이터베이스에서 제공하지 못하던 다차원 데이터의 속성에 대한 새로운 집계질의 처리 기술이 요구된다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, 해시트리(Hash-tree) 인덱스 기법을 기반으로 다차원 데이터의 속성에 대한 집계질의 처리과정이 효율적으로 수행되도록 함으로써, 기존과 다른 다차원 데이터베이스 기반의 새로운 집계질의 처리 방안이 실현되도록 하는데 있다.
상기 목적을 달성하기 위한 본 발명에 따른 집계질의처리장치는, 사용자단말로부터 집계질의(Aggregation query)를 수신하는 수신부; 상기 집계질의를 분석한 결과에 기초하여 상기 집계질의와 관련되는 집계관련정보를 확인하는 확인부; 및 상기 집계관련정보를 기반으로 생성되는 해시트리(Hash-tree)를 이용하여 상기 집계질의에 대한 질의처리결과를 생성하는 생성부를 포함하는 것을 특징으로 한다.
상기 확인부는, 상기 집계질의를 파싱(Parsing)하여 상기 집계질의에 해당하는 질의문법을 분석하고, 상기 질의문법으로부터 집계연산(Aggregate function)을 수행하기 위한 어레이(Array), 집계연산함수 및 속성 중 적어도 하나를 포함하는 상기 집계관련정보를 확인하는 것을 특징으로 한다.
상기 생성부는, 상기 집계관련정보를 기반으로 상기 집계연산함수에 의해 연산에 이용되는 제1 속성과, 상기 집계연산함수에 의한 연산에 이용되지 않으나 상기 질의처리결과에 포함되어야 하는 제2 속성을 확인한 결과에 기초하여 적어도 하나의 트리가지를 포함하는 상기 해시트리를 생성하는 것을 특징으로 한다.
상기 생성부는, 상기 어레이의 제1행이 입력되는 경우, 상기 제1행에 포함되는 제2 속성의 값을 기반으로 제1 부모노드를 형성하며, 상기 제1행에 포함되는 제1 속성의 값을 기반으로 제1 리프노드를 형성하여 제1 트리가지를 생성하는 것을 특징으로 한다.
상기 생성부는, 상기 어레이의 제2행이 입력되는 경우, 상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값을 비교한 결과에 기초하여 트리가지의 신규생성 여부를 결정하는 것을 특징으로 한다.
상기 생성부는, 상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값이 모두 상이하면, 상기 제2행에 포함되는 제2 속성의 값을 기반으로 제2 부모노드를 형성하며, 상기 제2행에 포함되는 제1 속성의 값을 기반으로 제2 리프노드를 형성하여 제2 트리가지를 생성하는 것을 특징으로 한다.
상기 생성부는, 상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값 중 일부가 동일하면, 상기 동일한 값을 제외한 나머지 제2 속성의 값을 기반으로 상기 제1 트리가지에 연결되는 서브트리가지를 생성하는 것을 특징으로 한다.
상기 서브트리가지는, 상기 나머지 제2 속성의 값을 기반으로 형성되어 상기 제1 부모노드의 일부에 연결되는 제3 부모노드 및 상기 제2행에 포함되는 제1 속성의 값을 기반으로 형성되는 제3 리프노드를 포함하는 것을 특징으로 한다.
상기 생성부는, 상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값이 모두 동일하면, 상기 집계연산함수를 기반으로 상기 제2행에 포함되는 제1 속성의 값과 상기 제1 리프노드의 제1 속성의 값을 연산하여 상기 제1 리프노드의 값을 갱신하는 것을 특징으로 한다.
상기 생성부는, 상기 해시트리의 생성이 완료되면, 상기 트리가지 별로 포함되는 해당 리프노드에 대응하는 해당 부모노드를 역탐색(back-tracking)하여 상기 질의처리결과를 생성하는 것을 특징으로 한다.
상기 생성부는, 상기 해시트리에 상기 서브트리가지가 포함된 경우, 상기 제3 리프노드에 대응하는 상기 제3 부모노드와 상기 제1 부모노드의 일부를 역탐색하여 상기 질의처리결과를 생성하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명에 따른 집계질의처리장치의 동작방법은, 사용자단말로부터 집계질의(Aggregation query)를 수신하는 수신단계; 상기 집계질의를 분석한 결과에 기초하여 상기 집계질의와 관련되는 집계관련정보를 확인하는 확인단계; 및 상기 집계관련정보를 기반으로 생성되는 해시트리(Hash-tree)를 이용하여 상기 집계질의에 대한 질의처리결과를 생성하는 생성단계를 포함하는 것을 특징으로 한다.
상기 확인단계는, 상기 집계질의를 파싱(Parsing)하여 상기 집계질의에 해당하는 질의문법을 분석하고, 상기 질의문법으로부터 집계연산(Aggregate function)을 수행하기 위한 어레이(Array), 집계연산함수 및 속성 중 적어도 하나를 포함하는 상기 집계관련정보를 확인하는 것을 특징으로 한다.
상기 생성단계는, 상기 집계관련정보를 기반으로 상기 집계연산함수에 의해 연산에 이용되는 제1 속성과, 상기 집계연산함수에 의한 연산에 이용되지 않으나 상기 질의처리결과에 포함되어야 하는 제2 속성을 확인한 결과에 기초하여 적어도 하나의 트리가지를 포함하는 상기 해시트리를 생성하는 것을 특징으로 한다.
상기 생성단계는, 상기 어레이의 제1행이 입력되는 경우, 상기 제1행에 포함되는 제2 속성의 값을 기반으로 제1 부모노드를 형성하며, 상기 제1행에 포함되는 제1 속성의 값을 기반으로 제1 리프노드를 형성하여 제1 트리가지를 생성하는 단계; 및 상기 어레이의 제2행이 입력되는 경우, 상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값을 비교한 결과에 기초하여 트리가지의 신규생성 여부를 결정하는 단계를 포함하는 것을 특징으로 한다.
상기 결정하는 단계는, 상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값이 모두 상이하면, 상기 제2행에 포함되는 제2 속성의 값을 기반으로 제2 부모노드를 형성하며, 상기 제2행에 포함되는 제1 속성의 값을 기반으로 제2 리프노드를 형성하여 제2 트리가지를 생성하는 단계; 상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값 중 일부가 동일하면, 상기 동일한 값을 제외한 나머지 제2 속성의 값을 기반으로 상기 제1 트리가지에 연결되는 서브트리가지를 생성하는 단계; 및 상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값이 모두 동일하면, 상기 집계연산함수를 기반으로 상기 제2행에 포함되는 제1 속성의 값과 상기 제1 리프노드의 제1 속성의 값을 연산하여 상기 제1 리프노드의 값을 갱신하는 단계를 포함하는 것을 특징으로 한다.
상기 서브트리가지는, 상기 나머지 제2 속성의 값을 기반으로 형성되어 상기 제1 부모노드의 일부에 연결되는 제3 부모노드 및 상기 제2행에 포함되는 제1 속성의 값을 기반으로 형성되는 제3 리프노드를 포함하는 것을 특징으로 한다.
상기 생성단계는, 상기 해시트리의 생성이 완료되면, 상기 트리가지 별로 포함되는 해당 리프노드에 대응하는 해당 부모노드를 역탐색(back-tracking)하여 상기 질의처리결과를 생성하는 것을 특징으로 한다.
이에, 본 발명의 집계질의를 처리하기 위한 장치 및 그 방법에 의하면, 해시트리(Hash-tree) 인덱스 기법을 기반으로 다차원 데이터의 속성에 대한 집계질의 처리과정이 효율적으로 수행되도록 함으로써, 기존과 다른 다차원 데이터베이스 기반의 새로운 집계질의 처리 방안을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 집계질의처리장치가 적용될 통신 환경을 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 집계질의처리장치의 개략적인 구성도를 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 해시트리(Hash-tree)를 생성하는 일례를 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른 해시트리(Hash-tree)를 탐색하는 일례를 나타내는 도면이다.
도 5는 본 발명의 실시예에 따른 해시트리 기반 집계질의 처리 서비스를 제공하는 흐름을 나타내는 도면이다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니됨을 유의해야 한다. 본 발명의 사상은 첨부된 도면 외에 모든 변경, 균등물 내지 대체물에 까지도 확장되는 것으로 해석되어야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 설명한다.
먼저, 도 1을 참조하여 본 발명의 다차원 데이터베이스(Multi-dimensional database) 기반의 집계질의를 처리하기 위한 장치(이하, 집계질의처리장치)가 적용될 통신 환경을 설명하도록 하겠다.
도 1에 도시된 바와 같이, 본 발명이 적용될 통신 환경은, 집계질의처리장치(100), 사용자단말(200) 및 다차원 데이터베이스(Multi-dimensional database)(300)를 포함하는 구성을 가질 수 있다.
집계질의처리장치(100)는, 다차원 데이터베이스(300)와의 연동을 통해 다차원 데이터의 애트리뷰트(Attribute, 이하 속성)에 대한 집계질의(Aggregation query) 처리가 수행되도록 하기 위한 장치로서, 특히 본 발명에서 제공하고자 하는 서비스 즉, 다차원 데이터의 다수의 속성이 조작되어 집계질의가 요청되는 경우에도 집계질의 처리과정이 수행될 수 있도록, 해시트리(Hash-tree) 인덱스 기법을 기반으로 집계질의 처리과정을 수행하여 질의처리결과를 제공하는 서비스(이하, 해시트리 기반 집계질의 처리 서비스)를 제공하기 위한 장치이다.
이러한, 집계질의처리장치(100)는, 다차원 데이터베이스(300) 내에 구현되거나, 또는 별도의 장치로 분리되어 구현될 수 있다. 본 발명의 실시예에서는 집계질의처리장치(100)가 다차원 데이터베이스(300)와 별도로 분리되어 독립적으로 존재하는 것으로 언급하여 설명하도록 하겠다.
즉, 집계질의처리장치(100)는, 다차원 데이터베이스(300)와 연동하여 집계질의 처리 알고리즘에 따라 질의처리결과를 생성하고, 이를 사용자단말(200)로 제공한다.
사용자단말(200)은, 해시트리 기반 집계질의 처리 서비스를 제공받기 위해 사용자가 이용하는 단말일 수 있으며, 사용자로부터 입력되는 집계질의를 집계질의처리장치(100)로 전송하여 질의처리결과의 생성을 요청할 수 있다.
이러한, 사용자단말(200)은, 해시트리 기반 집계질의 처리 서비스를 제공받기 원하는 기관/조직의 단말이거나, 또는 일반개인이 이용하는 단말일 수 있다.
다차원 데이터베이스(300)는, 대용량의 다차원 데이터(예: 과학정보, 의료정보 등)를 모델링하고, 질의 처리 및 연산을 지원하기 위해 다수의 속성 항목을 가지고 있는 자료를 관리하는 데이터베이스이다.
이러한, 다차원 데이터베이스(300)는, 해시트리 기반 집계질의 처리 서비스가 제공될 수 있도록 집계질의처리장치(100)와 연동하여 집계질의 처리 알고리즘을 수행한다.
본 발명의 실시예에서는 집계질의처리장치(100)와 다차원 데이터베이스(300)가 연동하여 집계질의 처리 알고리즘이 수행되는 것으로 언급하였으나, 이에 한정되지 않으며, 다차원 데이터베이스(300) 내에서 집계질의처리장치(100)의 기능이 구현되는 경우에는 다차원 데이터베이스(300) 단독으로도 집계질의 처리 알고리즘을 수행하여 서비스를 제공할 수도 있다.
이하에서는, 도 2를 참조하여 본 발명의 실시예에 따른 집계질의처리장치의 구성을 구체적으로 설명하겠다.
도 2에 도시된 바와 같이, 본 발명에 따른 집계질의처리장치(100)는, 사용자단말(200)로부터 집계질의(Aggregation query)를 수신하는 수신부(110), 집계질의를 분석한 결과에 기초하여 집계질의와 관련되는 집계관련정보를 확인하는 확인부(120) 및 집계관련정보를 기반으로 생성되는 해시트리(Hash-tree)를 이용하여 집계질의에 대한 질의처리결과를 생성하는 생성부(130)를 포함하는 구성을 가질 수 있다.
또한, 본 발명에 따른 집계질의처리장치(100)는, 해시트리 기반 집계질의 처리 서비스를 제공하기 위해 생성 및 송수신되는 모든 정보(예: 집계질의, 해시트리, 질의처리결과 등)를 저장하고, 요청에 따라 제공하는 저장부(140)를 더 포함하는 구성을 가질 수 있다.
또한, 본 발명에 따른 집계질의처리장치(100)는, 사용자가 관심 있어하는 집계질의가 입력될 수 있도록 질의화면을 제공하며, 사용자단말(200)을 통해 입력되는 집계질의를 분석한 결과를 기반으로 질의처리결과가 제공되기까지의 모든 인터페이스를 처리하는 인터페이스부(150)를 더 포함하는 구성을 가질 수 있다.
이상의 수신부(110), 확인부(120), 생성부(130), 저장부(140) 및 인터페이스부(150)를 포함하는 집계질의처리장치(100)의 구성 전체 내지는 적어도 일부는, 프로세서에 의해 실행되는 소프트웨어 모듈 형태 또는 하드웨어 모듈 형태로 구현되거나, 소프트웨어 모듈과 하드웨어 모듈이 조합된 형태로도 구현될 수 있다.
결국, 본 발명의 실시예에 따른 집계질의처리장치(100)는, 해시트리(Hash-tree) 인덱스 기법을 기반으로 다차원 데이터의 속성에 대한 집계질의 처리과정을 효율적으로 수행함으로써, 기존과 다른 다차원 데이터베이스 기반의 새로운 집계질의 처리 방안을 제공하게 되는 데, 이하에서는 이를 위한 집계질의처리장치(100) 내 각 구성에 대해 구체적으로 설명하기로 한다.
수신부(110)는, 사용자단말(200)로부터 집계질의를 수신한다.
보다 구체적으로, 수신부(110)는, 해시트리 기반 집계질의 처리 서비스를 이용하기 원하는 사용자가 접속하는 경우, 집계질의가 입력될 수 있도록 인터페이스부(150)를 통해 질의화면을 사용자단말(200)로 제공한다.
이후, 사용자가 질의화면을 통해 집계질의를 입력하는 경우, 수신부(110)는, 인터페이스부(150)를 통해 사용자단말(200)로부터 집계질의를 수신한다.
이어서, 수신부(110)는, 사용자단말(200)로부터 집계질의가 수신되었음을 알리기 위해 집계질의를 확인부(120)로 전송한다.
확인부(120)는, 집계질의를 분석한 결과에 기초하여 집계질의와 관련되는 집계관련정보를 확인한다.
보다 구체적으로, 확인부(120)는, 수신부(110)로부터 집계질의가 수신되면, 집계질의를 파싱(Parsing)하여 집계질의에 해당하는 질의문법으로부터 집계관련정보를 검출한다.
여기서, 집계질의는, 속성집계(Attribute Aggregation) 알고리즘 형태로 입력된다. 속성집계(Attribute Aggregation) 알고리즘에는 해시트리 기반 집계질의 처리 서비스의 제공을 위해 질의문법이 다음과 같이 정의된다.
●질의문법: Aggregate(ARRAY, [aggregate_function_1, ... aggregate_function_n], [attribute_1, .... attribute_n])
여기서, 어레이(ARRAY)는, 집계연산(Aggregate function)을 수행하기 위한 어레이정보를 나타낸다. Aggregate_function(attribute_Name)은, 집계연산을 위한 집계연산함수의 호출형태를 나타낸다.
즉, 질의문법은, 집계연산을 수행하기 위한 어레이(Array), 적어도 하나의 집계연산함수 및 적어도 하나의 속성을 포함한다. 이러한, 질의문법은, 집계연산을 위해 연속으로 집계연산함수를 호출하는 리스트 형태를 가질 수도 있다.
본 발명의 집계연산에 활용되는 집계연산함수는, 평균(average), 최대/최소, 합계, 표준편차 등과 같이 해시트리 기반 집계질의 처리 서비스에서 제공 가능한 모든 연산 함수를 대상으로 하며, 미리 정의되어 있는 것이 바람직할 것이다.
한편, 집계연산함수의 파라미터인 속성(attribute_Name)의 경우, 다수 개의 속성([attribute_1,... attribute_n])이 연속으로 호출될 수 있다. 이때, 다수 개의 속성([attribute_1,... attribute_n]) 중 해당 집계연산함수에 의한 연산에 이용되지 않으나 질의처리결과에 포함되어야 하는 속성들을 미리 지정할 수 있다.
예를 들어, 질의문법이 Aggregate(Array1, avg(attr1), sum(attr2), attr3, attr4) 형태이면, 확인부(120)는, Array1에 포함되는 다차원 데이터에 대한 집계연산을 위해 집계연산함수인 avg(attr1), sum(attr2)가 호출되며, 집계연산함수인 avg(attr1), sum(attr2)에 의한 연산에 이용되는 속성들(attr1, attr2)과 연산에 이용되지 않으나 질의처리결과에 포함되어야 하는 속성들(attr3, attr4)을 확인하여 집계관련정보를 생성하게 된다.
즉, 확인부(120)는, 전술에서 언급한 바와 같이, 사용자단말(200)로부터 집계질의가 수신되면 다양한 파서(parser)를 활용하여 집계질의에 해당하는 질의문법을 분석하고, 질의문법으로부터 집계연산을 수행하기 위한 어레이(Array), 집계연산함수 및 속성 중 적어도 하나를 포함하는 집계관련정보를 확인할 수 있게 된다.
생성부(130)는, 집계관련정보를 기반으로 질의처리결과를 생성한다.
보다 구체적으로, 생성부(130)는, 집계관련정보를 기반으로 생성되는 해시트리(Hash-tree)를 이용하여 집계질의에 대한 질의처리결과를 생성한다.
즉, 생성부(130)는, 확인부(120)로부터 집계관련정보가 수신되면, 집계관련정보로부터 집계연산을 수행하기 위한 해당 어레이(Array), 집계연산함수 및 속성을 확인한다.
이후, 생성부(130)는, 집계관련정보로부터 검출된 속성 중 집계연산함수에 의해 연산에 이용되는 제1 속성과, 집계연산함수에 의한 연산에 이용되지 않으나 질의처리결과에 포함되어야 하는 제2 속성을 확인한 결과에 기초하여 해시트리(Hash-tree)를 생성한다.
즉, 본 발명의 집계연산의 경우, 질의처리결과의 생성을 위해 집계연산함수에 의해 호출되는 제1 속성을 대상으로 연산이 이루어지는 한편, 집계연산함수에 의해 호출되지 않는 제2 속성들 중에서 동일한 속성값을 갖는 어레이(Array)의 행(line)들에 대해서도 집계가 이루어지는 알고리즘을 따르게 된다.
이에, 생성부(130)는, 이러한 집계연산 과정에서 서로 집계되는 속성들을 효율적으로 관리하기 위하여 해시트리(Hash-tree)를 생성하고, 이를 기반으로 비-집계 속성인 제2 속성에 대한 색인 및 중복 제거를 수행한다.
이와 관련하여, 도 3에는 해시트리(Hash-tree)를 생성하는 일례가 도시되어 있다.
도 3에서는 집계질의로부터 확인된 질의문법이 Aggregate(1, Sum(attr4), count(attr5), attr1, attr2, attr3)이며, 어레이(Array1)가 7개의 행(L1-L7)과 5개의 속성(attr1, attr2, attr3, attr4, attr5)으로 표현되는 다차원 데이터를 포함하는 것으로 가정한다.
이 경우, 생성부(130)는, 어레이(Array1)에 포함되는 다차원 데이터에 대한 집계연산을 위해 집계연산함수인 Sum(attr4), count(attr5)가 호출되었음을 확인한다. 이후, 생성부(130)는, 집계연산함수 Sum(attr4), count(attr5)의 연산에 이용되는 제1 속성(attr4, attr5)과, 집계연산함수 Sum(attr4), count(attr5)의 연산에 이용되지 않으나 질의처리결과에 포함되어야 하는 제2 속성(attr1, attr2, attr3)을 확인한 결과를 기반으로 집계관련정보를 생성한다.
이처럼 집계관련정보의 확인이 완료된 후 어레이(Array1)의 1행(L1)이 입력되면, 생성부(130)는, 1행(L1)의 입력에 따른 과정(Step1)을 수행한다. 즉, 생성부(130)는, 1행(L1)에 포함되는 제2 속성(attr1, attr2, attr3)의 값(1, 0, 2)을 기반으로 부모노드(PN1)를 형성한다. 그리고, 생성부(130)는, 1행(L1)에 포함되는 제1 속성(attr4, attr5)의 값(4, 5)을 해당 집계연산함수 Sum(attr4), count(attr5)에 각각 적용하여 리프노드(LN1)를 생성한다. 이에, 과정(Step1)의 수행에 따라 부모노드(PN1)의 값(1, 0, 2)과 리프노드(LN1)의 값(4, 1)을 포함하는 트리가지(T11)이 생성되게 된다.
이후, 생성부(130)는, 어레이(Array1)의 2행(L2)이 입력되면, 2행(L2)의 입력에 따른 과정(Step2)을 수행한다. 즉, 생성부(130)는, 2행(L2)에 포함되는 제2 속성(attr1, attr2, attr3)의 값(3, 2, 3)을 기반으로 부모노드(PN2)를 형성한다. 그리고, 생성부(130)는, 2행(L2)에 포함되는 제1 속성(attr4, attr5)의 값(1, 3)을 해당 집계연산함수 Sum(attr4), count(attr5)에 각각 적용하여 리프노드(LN2)를 생성한다. 이에, 과정(Step2)의 수행에 따라 부모노드(PN2)의 값(3, 2, 3)과 리프노드(LN2)의 값(1, 1)을 포함하는 트리가지(T12)가 생성되게 된다.
즉, 어레이(Array1)의 2행(L2)에 포함되는 제2 속성(attr1, attr2, attr3)의 값(3, 2, 3)이 1행(L1)에 포함되는 제2 속성(attr1, attr2, attr3)의 값(1, 0, 2)과 모두 상이하기 때문에, 생성부(130)는, 트리가지(T11)와 다른 새로운 트리가지(T12)를 생성한다.
이후, 생성부(130)는, 어레이(Array1)의 3행(L3)이 입력되면, 3행(L3)의 입력에 따른 과정(Step3)을 수행한다. 즉, 생성부(130)는, 3행(L3)에 포함되는 제2 속성(attr1, attr2, attr3)의 값(3, 2, 3)이 트리가지(T12)의 부모노드(PN2)의 값(3, 2, 3)과 모두 동일하기 때문에 새로운 트리가지를 생성하는 대신, 3행(L3)에 포함되는 제1 속성(attr4, attr5)의 값(2, 8)을 해당 집계연산함수 Sum(attr4), count(attr5)에 각각 적용하여 트리가지(T12)의 리프노드(LN2)의 값(1, 1)을 (3, 2)로 갱신한다.
즉, 트리가지(T12)의 리프노드(LN2)의 값(1, 1), 즉 attr4의 경우 "1"이 3행(L3)의 "2"와 합계연산이 이루어지게 되어 "1"에서 "3"으로 업데이트가 되며, attr5의 경우 "1"이 3행(L3)의 "8"에 의해 카운트(count)가 하나 증가하게 되어 "2"로 업데이트 되게 된다. 이에, 과정(Step3)의 수행에 따라 이전 과정(Step2)에서 생성된 트리가지(T12)의 리프노드(LN2)의 값(1, 1)이 (3, 2)로 갱신되게 된다.
이후, 생성부(130)는, 어레이(Array1)의 4행(L4)이 입력되면, 4행(L4)의 입력에 따른 과정(Step4)을 수행한다. 즉, 생성부(130)는, 4행(L4)에 포함되는 제2 속성(attr1, attr2, attr3)의 값(1, 1, 2)이 이전 과정(Step1)에서 생성된 트리가지(T11)의 부모노드(PN1)의 값(1, 0, 2) 중 일부, 즉 attr1의 "1"이 동일하기 때문에, 동일한 제2 속성(attr1)의 값을 제외한 나머지 제2 속성(attr2, attr3)의 값을 기반으로 트리가지(T11)에 연결되는 서브트리가지(T11a)를 생성한다.
즉, 생성부(130)는, 트리가지(T11)의 부모노드(PN1)의 제2 속성(attr1)에 4행(L4)의 나머지 제2 속성(attr2, attr3)을 새롭게 연결하여 부모노드(PN1a)를 생성한다. 그리고, 생성부(130)는, 4행(L4)에 포함되는 제1 속성(attr4, attr5)의 값(4, 3)을 해당 집계연산함수 Sum(attr4), count(attr5)에 각각 적용하여 리프노드(LN1a)를 생성한다. 이에, 과정(Step4)의 수행에 따라 부모노드(PN1a)의 값(1, 1, 2)과 리프노드(LN1a)의 값(4, 1)을 포함하는 서브트리가지(T11a)가 생성되어 트리가지(T11)에 연결되게 된다.
이후, 생성부(130)는, 어레이(Array1)의 5행(L5)이 입력되면, 5행(L5)의 입력에 따른 과정(Step5)을 수행한다. 즉, 생성부(130)는, 5행(L5)에 포함되는 제2 속성(attr1, attr2, attr3)의 값(3, 2, 3)이 이전 과정(Step3)에서 갱신된 트리가지(T12)의 부모노드(PN2)의 값(3, 2, 3)과 모두 동일하기 때문에 새로운 트리가지를 생성하는 대신, 5행(L5)에 포함되는 제1 속성(attr4, attr5)의 값(1, 3)을 해당 집계연산함수 Sum(attr4), count(attr5)에 각각 적용하여 트리가지(T12)의 리프노드(LN2)의 값(3, 2)을 (4, 3)으로 갱신한다.
즉, 과정(Step3)에서 갱신된 트리가지(T12)의 리프노드(LN2)의 값(3, 2), 즉 attr4의 경우 "3"이 5행(L5)의 "1"과 합계연산이 이루어지게 되어 "3"에서 "4"으로 업데이트가 되며, attr5의 경우 "2"가 5행(L5)의 "3"에 의해 카운트(count)가 하나 증가하게 되어 "3"으로 업데이트 되게 된다. 이에, 과정(Step5)의 수행에 따라 이전 과정(Step3)에서 갱신된 트리가지(T12)의 리프노드(LN2)의 값(3, 2)이 (4, 3)으로 업데이트 되게 된다.
이후, 생성부(130)는, 어레이(Array1)의 6행(L6)이 입력되면, 6행(L6)의 입력에 따른 과정(Step6)을 수행한다. 즉, 생성부(130)는, 6행(L6)에 포함되는 제2 속성(attr1, attr2, attr3)의 값(1, 1, 3)이 이전 과정(Step4)에서 생성된 서브트리가지(T11a)의 부모노드(PN1a)의 값(1, 1, 2) 중 일부, 즉 attr1, attr2의 "1, 1"이 동일하기 때문에, 동일한 제2 속성(attr1, attr2)의 값을 제외한 나머지 제2 속성(attr3)의 값을 기반으로 서브트리가지(T11a)에 연결되는 서브트리가지(T11b)를 생성한다.
즉, 생성부(130)는, 서브트리가지(T11a)의 부모노드(PN1a)의 제2 속성(attr1, attr2)에 6행(L4)의 나머지 제2 속성(attr3)을 새롭게 연결하여 부모노드(PN1b)를 생성하고, 6행(L6)에 포함되는 제1 속성(attr4, attr5)의 값(4, 8)을 해당 집계연산함수 Sum(attr4), count(attr5)에 각각 적용하여 리프노드(LN1b)를 생성한다. 이에, 과정(Step6)의 수행에 따라 부모노드(PN1b)의 값(1, 1, 3)과 리프노드(LN1b)의 값(4, 1)을 포함하는 서브트리가지(T11b)가 생성되어, 서브트리가지(T11a)에 연결되게 된다.
이후, 생성부(130)는, 어레이(Array1)의 7행(L7)이 입력되면, 7행(L7)의 입력에 따른 과정(Step7)을 수행한다. 즉, 생성부(130)는, 7행(L7)에 포함되는 제2 속성(attr1, attr2, attr3)의 값(3, 2, 4)이 이전 과정(Step5)에서 갱신된 트리가지(T12)의 부모노드(PN2)의 값(3, 2, 3) 중 일부, 즉 attr1, attr2의 "3, 2"이 동일하기 때문에, 동일한 제2 속성(attr1, attr2)의 값을 제외한 나머지 제2 속성(attr3)의 값을 기반으로 트리가지(T12)에 연결되는 서브트리가지(T12a)를 생성한다.
즉, 생성부(130)는, 트리가지(T12)의 부모노드(PN2)의 제2 속성(attr1, attr2)에 7행(L7)의 나머지 제2 속성(attr3)을 새롭게 연결하여 부모노드(PN2a)를 생성하고, 7행(L7)에 포함되는 제1 속성(attr4, attr5)의 값(6, 7)을 해당 집계연산함수 Sum(attr4), count(attr5)에 각각 적용하여 리프노드(LN2a)를 생성한다. 이에, 과정(Step7)의 수행에 따라 부모노드(PN2a)의 값(3, 2, 4)과 리프노드(LN2a)의 값(6, 1)을 포함하는 서브트리가지(T12a)가 생성되어 트리가지(T12)에 연결되게 된다.
전술한 해시트리(Hash-tree)를 생성하는 과정(Step1-Step7)에서도 확인할 수 있듯이, 생성부(130)는, 어레이의 제1행이 입력되는 경우, 먼저 과정(Step1)에서와 같이 집계연산함수에 의해 호출되지 않는 제1행의 제2 속성의 값을 기반으로 제1 부모노드를 형성하며, 집계연산함수에 의해 호출되는 제1행의 제1 속성의 값을 기반으로 제1 리프노드를 형성하여 제1 트리가지를 생성한다.
이후, 어레이의 제2행이 입력되게 되면, 생성부(130)는, 제2행에 포함되는 제2 속성의 값과 제1 부모노드의 제2 속성의 값을 비교한 결과에 기초하여 트리가지의 신규생성 여부를 결정한다.
즉, 생성부(130)는, 제2행에 포함되는 제2 속성의 값과 제1 부모노드의 제2 속성의 값이 모두 상이하면, 과정(Step2)에서와 같이 제2행에 포함되는 제2 속성의 값을 기반으로 제2 부모노드를 형성하고, 제2행에 포함되는 제1 속성의 값을 기반으로 제2 리프노드를 형성하여 제2 트리가지를 신규로 생성한다.
한편, 제2행에 포함되는 제2 속성의 값과 제1 부모노드의 제2 속성의 값이 모두 동일하면, 생성부(130)는, 과정(Step3, Step5)에서와 같이 트리가지를 신규로 생성하는 대신, 집계연산함수를 기반으로 제2행에 포함되는 제1 속성의 값과 제1 트리가지의 제1 리프노드의 속성의 값을 연산하여 제1 트리가지의 제1 리프노드의 값을 갱신한다.
한편, 제2행에 포함되는 제2 속성의 값과 제1 부모노드의 제2 속성의 값 중 일부가 동일하면, 생성부(130)는, 과정(Step4, Step6, Step7)에서와 같이 제2행에 포함되는 제2 속성 중 제1 부모노드의 제2 속성과 동일한 값을 제외한 나머지 제2 속성의 값을 기반으로 제1 트리가지에 연결되는 서브트리가지를 생성한다.
이러한 서브트리가지에는, 제1 부모노드의 제2 속성의 값과 상이한 나머지 제2 속성의 값을 기반으로 형성되어 제1 부모노드의 일부에 연결되는 제3 부모노드와, 제2행에 포함되는 제1 속성의 값을 기반으로 형성되는 제3 리프노드가 포함된다.
결국, 해시트리(Hash-tree)의 트리가지 별로 포함되는 해당 리프노드에는 집계질의를 수행한 결과값이 저장되며, 해당 리프노드에 대응하는 부모노드에는 비-집계 속성인 제2 속성이 저장되게 된다.
이처럼 해시트리(Hash-tree)의 생성이 완료되면, 생성부(130)는, 해시트리(Hash-tree)의 트리가지 별로 포함되는 해당 리프노드에 대응하는 해당 부모노드를 역탐색(back-tracking)하여 질의처리결과를 생성한다.
이와 관련하여, 도 4에는 해시트리(Hash-tree)를 탐색하는 일례가 도시되어 있다. 도 4에서는 설명의 편의를 위해, 도 3에 도시된 과정(Step1-Step7)을 함께 참고하여 설명하도록 하겠다.
도 4에 도시된 바와 같이, 해시트리(Hash-tree)의 생성이 완료되면, 생성부(130)는, 해시트리(Hash-tree)의 트리가지(T11)부터 역탐색을 수행한다. 즉, 트리가지(T11)에는 부모노드(PN1)의 값(1, 0, 2)과 리프노드(LN1)의 값(4, 1)이 포함되어 있으므로, 생성부(130)는, 집계질의를 수행한 결과값이 저장된 리프노드(LN1)를 시작으로 리프노드(LN1)에 대응하는 해당 부모노드(PN1)를 역으로 탐색하는 과정(TR1)을 수행하여, 탐색결과(1, 0, 2, 4, 1)를 출력한다.
이후, 생성부(130)는, 트리가지(T11)에 연결되는 서브트리가지(T11a)의 역탐색을 수행한다. 즉, 서브트리가지(T11a)에는 부모노드(PN1a)의 값(1, 1, 2)과 리프노드(LN1a)의 값(4, 1)이 포함되어 있으므로, 생성부(130)는, 집계질의를 수행한 결과값이 저장된 리프노드(LN1a)를 시작으로 리프노드(LN1a)에 대응하는 해당 부모노드(PN1a), 즉 리프노드(LN1a)에 연결되는 제2 속성(attr2, attr3)과 부모노드(PN1)의 일부 속성(attr1)을 역으로 탐색하는 과정(TR2)을 수행하여, 탐색결과(1, 1, 2, 4, 1)를 출력한다.
이후, 생성부(130)는, 서브트리가지(T11a)에 연결되는 서브트리가지(T11b)의 역탐색을 수행한다. 즉, 서브트리가지(T11b)에는 부모노드(PN1b)의 값(1, 1, 3)과 리프노드(LN1b)의 값(4, 1)이 포함되어 있으므로, 생성부(130)는, 집계질의를 수행한 결과값이 저장된 리프노드(LN1b)를 시작으로 리프노드(LN1b)에 대응하는 해당 부모노드(PN1b), 즉 리프노드(LN1b)에 연결되는 제2 속성(attr3)과, 서브트리가지(T11a)의 일부 속성(attr2)과, 부모노드(PN1)의 일부 속성(attr1)을 역으로 탐색하는 과정(TR3)을 수행하여, 탐색결과(1, 1, 3, 4, 1)를 출력한다.
동일한 방식으로, 생성부(130)는, 트리가지(T12)와, 트리가지(T12)에 연결되는 서브트리가지(T12a)에 대해서도 순차적으로 역으로 탐색하는 과정(TR4, TR5)을 각각 수행하여, 트리가지(T12)에 해당하는 탐색결과(3, 2, 3, 4, 3)와 서브트리가지(T12a)에 해당하는 탐색결과(3, 2, 4, 6, 1)를 출력한다.
전술과 같이, 해시트리(Hash-tree)의 트리가지 별로 역탐색을 수행하여 탐색결과의 출력이 완료되면, 생성부(130)는, 모든 탐색결과를 포함하는 질의처리결과를 생성한다. 그리고, 생성부(130)는, 생성된 질의처리결과를 인터페이스부(150)를 통해 사용자단말(200)로 제공한다.
이하에서는, 도 5를 참조하여 본 발명의 실시예에 따른 해시트리 기반 집계질의 처리 서비스를 제공하는 흐름을 구체적으로 설명하도록 한다. 이하에서는 설명의 편의를 위해, 전술의 도 1 내지 도 4에서 언급한 참조번호를 언급하여 설명하도록 하겠다.
집계질의처리장치(100), 사용자단말(200)로부터 집계질의가 수신되면, 집계질의를 분석한 결과에 기초하여 집계질의와 관련되는 집계관련정보를 확인한다(S101, S102).
보다 구체적으로, 집계질의처리장치(100)는, 집계질의를 파싱(Parsing)하여 집계질의에 해당하는 질의문법으로부터 집계관련정보를 검출한다.
여기서, 집계질의는, 속성집계(Attribute Aggregation) 알고리즘 형태로 입력된다. 속성집계(Attribute Aggregation) 알고리즘에는 해시트리 기반 집계질의 처리 서비스의 제공을 위해 질의문법이 다음과 같이 정의된다.
●질의문법: Aggregate(ARRAY, [aggregate_function_1, ... aggregate_function_n], [attribute_1, .... attribute_n])
여기서, 어레이(ARRAY)는, 집계연산(Aggregate function)을 수행하기 위한 어레이정보를 나타낸다. Aggregate_function(attribute_Name)은, 집계연산을 위한 집계연산함수의 호출형태를 나타낸다.
즉, 질의문법은, 집계연산을 수행하기 위한 어레이(Array), 적어도 하나의 집계연산함수 및 적어도 하나의 속성을 포함한다. 이러한, 질의문법은, 집계연산을 위해 연속으로 집계연산함수를 호출하는 리스트 형태를 가질 수도 있다.
이후, 집계질의처리장치(100)는, 집계관련정보를 기반으로 생성되는 해시트리(Hash-tree)를 이용하여 집계질의에 대한 질의처리결과를 생성한다.
보다 구체적으로, 집계질의처리장치(100)는, 집계관련정보로부터 집계연산을 수행하기 위한 해당 어레이(Array), 집계연산함수 및 속성을 확인한다.
이후, 집계질의처리장치(100)는, 집계관련정보로부터 검출된 속성 중 집계연산함수에 의해 연산에 이용되는 제1 속성과, 집계연산함수에 의한 연산에 이용되지 않으나 질의처리결과에 포함되어야 하는 제2 속성을 확인한다.
즉, 본 발명의 집계연산의 경우, 질의처리결과의 생성을 위해 집계연산함수에 의해 호출되는 제1 속성을 대상으로 연산이 이루어지는 한편, 집계연산함수에 의해 호출되지 않는 제2 속성들 중에서 동일한 속성값을 갖는 어레이(Array)의 행(line)들에 대해서도 집계가 이루어지는 알고리즘을 따르게 된다.
이에, 집계질의처리장치(100)는, 이러한 집계연산 과정에서 서로 집계되는 속성들을 효율적으로 관리하기 위하여 해시트리(Hash-tree)를 생성하고, 이를 기반으로 비-집계 속성인 제2 속성에 대한 색인 및 중복 제거를 수행한다.
예를 들어 설명하면, 집계질의로부터 확인된 질의문법이 Aggregate(1, Sum(attr4), count(attr5), attr1, attr2, attr3)이며, 어레이(Array1)가 7개의 행(L1-L7)과 5개의 속성(attr1, attr2, attr3, attr4, attr5)으로 표현되는 다차원 데이터를 포함하는 경우, 집계질의처리장치(100)는, 어레이(Array1)에 포함되는 다차원 데이터에 대한 집계연산을 위해 집계연산함수인 Sum(attr4), count(attr5)가 호출되었음을 확인한다, 이후, 집계질의처리장치(100)는, 집계연산함수 Sum(attr4), count(attr5)의 연산에 이용되는 제1 속성(attr4, attr5)과, 집계연산함수 Sum(attr4), count(attr5)의 연산에 이용되지 않으나 질의처리결과에 포함되어야 하는 제2 속성(attr1, attr2, attr3)을 확인한 결과를 기반으로 집계관련정보를 생성한다.
이처럼 집계관련정보가 확인된 후, 도 3에 도시된 바와 같이, 어레이의 제1행이 입력되는 경우, 집계질의처리장치(100)는, 과정(Step1)에서와 같이 집계연산함수에 의해 호출되지 않는 제1행의 제2 속성의 값을 기반으로 제1 부모노드를 형성하며, 집계연산함수에 의해 호출되는 제1행의 제1 속성의 값을 기반으로 제1 리프노드를 형성하여 제1 트리가지를 생성한다(S103).
이후, 어레이의 제2행이 입력되게 되면(S104), 집계질의처리장치(100)는, 제2행에 포함되는 제2 속성의 값과 제1 부모노드의 제2 속성의 값을 비교한 결과에 기초하여 트리가지의 신규생성 여부를 결정한다(S105).
즉, 제2행에 포함되는 제2 속성의 값과 제1 부모노드의 제2 속성의 값이 모두 상이하면(S105의 NO), 집계질의처리장치(100)는, 과정(Step2)에서와 같이 제2행에 포함되는 제2 속성의 값을 기반으로 제2 부모노드를 형성하고, 제2행에 포함되는 제1 속성의 값을 기반으로 제2 리프노드를 형성하여 제2 트리가지를 신규로 생성한다(S106).
한편, 제2행에 포함되는 제2 속성의 값과 제1 부모노드의 제2 속성의 값이 모두 동일하면(S105의 YES1), 집계질의처리장치(100)는, 과정(Step3, Step5)에서와 같이 트리가지를 신규로 생성하는 대신, 집계연산함수를 기반으로 제2행에 포함되는 제1 속성의 값과 제1 트리가지의 제1 리프노드의 속성의 값을 연산하여 제1 트리가지의 제1 리프노드의 값을 갱신한다(S107).
한편, 제2행에 포함되는 제2 속성의 값과 제1 부모노드의 제2 속성의 값 중 일부가 동일하면(S105의 YES2), 집계질의처리장치(100)는, 과정(Step4, Step6, Step7)에서와 같이 제2행에 포함되는 제2 속성 중 제1 부모노드의 제2 속성과 동일한 값을 제외한 나머지 제2 속성의 값을 기반으로 제1 트리가지에 연결되는 서브트리가지를 생성한다(S108).
이러한 서브트리가지에는, 제1 부모노드의 제2 속성의 값과 상이한 나머지 제2 속성의 값을 기반으로 형성되어 제1 부모노드의 일부에 연결되는 제3 부모노드와, 제2행에 포함되는 제1 속성의 값을 기반으로 형성되는 제3 리프노드가 포함된다.
결국, 해시트리(Hash-tree)의 트리가지 별로 포함되는 해당 리프노드에는 집계질의를 수행한 결과값이 저장되며, 해당 리프노드에 대응하는 부모노드에는 비-집계 속성인 제2 속성이 저장되게 된다.
이처럼 해시트리(Hash-tree)의 생성이 완료되면(S109), 집계질의처리장치(100)는, 해시트리(Hash-tree)의 트리가지 별로 포함되는 해당 리프노드에 대응하는 해당 부모노드를 역탐색(back-tracking)한다(S110).
보다 구체적으로, 도 4에 도시된 바와 같이, 해시트리(Hash-tree)의 생성이 완료되면, 집계질의처리장치(100)는, 해시트리(Hash-tree)의 트리가지(T11)부터 역탐색을 수행한다. 즉, 트리가지(T11)에는 부모노드(PN1)의 값(1, 0, 2)과 리프노드(LN1)의 값(4, 1)이 포함되어 있으므로, 집계질의처리장치(100)는, 집계질의를 수행한 결과값이 저장된 리프노드(LN1)를 시작으로 리프노드(LN1)에 대응하는 해당 부모노드(PN1)를 역으로 탐색하는 과정(TR1)을 수행하여, 탐색결과(1, 0, 2, 4, 1)를 출력한다.
이후, 집계질의처리장치(100)는, 트리가지(T11)에 연결되는 서브트리가지(T11a)의 역탐색을 수행한다. 즉, 서브트리가지(T11a)에는 부모노드(PN1a)의 값(1, 1, 2)과 리프노드(LN1a)의 값(4, 1)이 포함되어 있으므로, 집계질의처리장치(100)는, 집계질의를 수행한 결과값이 저장된 리프노드(LN1a)를 시작으로 리프노드(LN1a)에 대응하는 해당 부모노드(PN1a), 즉 리프노드(LN1a)에 연결되는 제2 속성(attr2, attr3)과 부모노드(PN1)의 일부 속성(attr1)을 역으로 탐색하는 과정(TR2)을 수행하여, 탐색결과(1, 1, 2, 4, 1)를 출력한다.
이후, 집계질의처리장치(100)는, 서브트리가지(T11a)에 연결되는 서브트리가지(T11b)의 역탐색을 수행한다. 즉, 서브트리가지(T11b)에는 부모노드(PN1b)의 값(1, 1, 3)과 리프노드(LN1b)의 값(4, 1)이 포함되어 있으므로, 집계질의처리장치(100)는, 집계질의를 수행한 결과값이 저장된 리프노드(LN1b)를 시작으로 리프노드(LN1b)에 대응하는 해당 부모노드(PN1b), 즉 리프노드(LN1b)에 연결되는 제2 속성(attr3)과, 서브트리가지(T11a)의 일부 속성(attr2)과, 부모노드(PN1)의 일부 속성(attr1)을 역으로 탐색하는 과정(TR3)을 수행하여, 탐색결과(1, 1, 3, 4, 1)를 출력한다.
동일한 방식으로, 집계질의처리장치(100)는, 트리가지(T12)와, 트리가지(T12)에 연결되는 서브트리가지(T12a)에 대해서도 순차적으로 역으로 탐색하는 과정(TR4, TR5)을 각각 수행하여, 트리가지(T12)에 해당하는 탐색결과(3, 2, 3, 4, 3)와 서브트리가지(T12a)에 해당하는 탐색결과(3, 2, 4, 6, 1)를 출력한다.
전술과 같이, 해시트리(Hash-tree)의 트리가지 별로 역탐색을 수행하여 탐색결과의 출력이 완료되면, 집계질의처리장치(100)는, 모든 탐색결과를 포함하는 질의처리결과를 생성한다. 그리고, 집계질의처리장치(100)는, 생성된 질의처리결과를 인터페이스부(150)를 통해 사용자단말(200)로 제공하게 된다(S111).
이상에서 설명한 바와 같이, 본 발명에 따르면, 해시트리(Hash-tree) 인덱스 기법을 기반으로 다차원 데이터의 속성에 대한 집계질의 처리과정을 효율적으로 수행함으로써, 기존과 다른 다차원 데이터베이스 기반의 새로운 집계질의 처리 방안을 제공할 수 있는 효과가 성취된다.
본 발명의 실시예들은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.

Claims (18)

  1. 사용자단말로부터 집계질의(Aggregation query)를 수신하는 수신부;
    상기 집계질의를 분석한 결과에 기초하여 상기 집계질의와 관련되는 집계관련정보를 확인하는 확인부; 및
    상기 집계관련정보를 기반으로 생성되는 해시트리(Hash-tree)를 이용하여 상기 집계질의에 대한 질의처리결과를 생성하는 생성부
    를 포함하는 것을 특징으로 하는 집계질의처리장치.
  2. 제 1 항에 있어서,
    상기 확인부는,
    상기 집계질의를 파싱(Parsing)하여 상기 집계질의에 해당하는 질의문법을 분석하고, 상기 질의문법으로부터 집계연산(Aggregate function)을 수행하기 위한 어레이(Array), 집계연산함수 및 속성 중 적어도 하나를 포함하는 상기 집계관련정보를 확인하는 것을 특징으로 하는 집계질의처리장치.
  3. 제 2 항에 있어서,
    상기 생성부는,
    상기 집계관련정보를 기반으로 상기 집계연산함수에 의해 연산에 이용되는 제1 속성과, 상기 집계연산함수에 의한 연산에 이용되지 않으나 상기 질의처리결과에 포함되어야 하는 제2 속성을 확인한 결과에 기초하여 적어도 하나의 트리가지를 포함하는 상기 해시트리를 생성하는 것을 특징으로 하는 집계질의처리장치.
  4. 제 3 항에 있어서,
    상기 생성부는,
    상기 어레이의 제1행이 입력되는 경우, 상기 제1행에 포함되는 제2 속성의 값을 기반으로 제1 부모노드를 형성하며, 상기 제1행에 포함되는 제1 속성의 값을 기반으로 제1 리프노드를 형성하여 제1 트리가지를 생성하는 것을 특징으로 하는 집계질의처리장치.
  5. 제 4 항에 있어서,
    상기 생성부는,
    상기 어레이의 제2행이 입력되는 경우, 상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값을 비교한 결과에 기초하여 트리가지의 신규생성 여부를 결정하는 것을 특징으로 하는 집계질의처리장치.
  6. 제 5 항에 있어서,
    상기 생성부는,
    상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값이 모두 상이하면, 상기 제2행에 포함되는 제2 속성의 값을 기반으로 제2 부모노드를 형성하며, 상기 제2행에 포함되는 제1 속성의 값을 기반으로 제2 리프노드를 형성하여 제2 트리가지를 생성하는 것을 특징으로 하는 집계질의처리장치.
  7. 제 6 항에 있어서,
    상기 생성부는,
    상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값 중 일부가 동일하면, 상기 동일한 값을 제외한 나머지 제2 속성의 값을 기반으로 상기 제1 트리가지에 연결되는 서브트리가지를 생성하는 것을 특징으로 하는 집계질의처리장치.
  8. 제 7 항에 있어서,
    상기 서브트리가지는,
    상기 나머지 제2 속성의 값을 기반으로 형성되어 상기 제1 부모노드의 일부에 연결되는 제3 부모노드 및 상기 제2행에 포함되는 제1 속성의 값을 기반으로 형성되는 제3 리프노드를 포함하는 것을 특징으로 하는 집계질의처리장치.
  9. 제 8 항에 있어서,
    상기 생성부는,
    상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값이 모두 동일하면, 상기 집계연산함수를 기반으로 상기 제2행에 포함되는 제1 속성의 값과 상기 제1 리프노드의 제1 속성의 값을 연산하여 상기 제1 리프노드의 값을 갱신하는 것을 특징으로 하는 집계질의처리장치.
  10. 제 9 항에 있어서,
    상기 생성부는,
    상기 해시트리의 생성이 완료되면, 상기 트리가지 별로 포함되는 해당 리프노드에 대응하는 해당 부모노드를 역탐색(back-tracking)하여 상기 질의처리결과를 생성하는 것을 특징으로 하는 집계질의처리장치.
  11. 제 10 항에 있어서,
    상기 생성부는,
    상기 해시트리에 상기 서브트리가지가 포함된 경우, 상기 제3 리프노드에 대응하는 상기 제3 부모노드와 상기 제1 부모노드의 일부를 역탐색하여 상기 질의처리결과를 생성하는 것을 특징으로 하는 집계질의처리장치.
  12. 사용자단말로부터 집계질의(Aggregation query)를 수신하는 수신단계;
    상기 집계질의를 분석한 결과에 기초하여 상기 집계질의와 관련되는 집계관련정보를 확인하는 확인단계; 및
    상기 집계관련정보를 기반으로 생성되는 해시트리(Hash-tree)를 이용하여 상기 집계질의에 대한 질의처리결과를 생성하는 생성단계
    를 포함하는 것을 특징으로 하는 집계질의처리장치의 동작방법.
  13. 제 12 항에 있어서,
    상기 확인단계는,
    상기 집계질의를 파싱(Parsing)하여 상기 집계질의에 해당하는 질의문법을 분석하고, 상기 질의문법으로부터 집계연산(Aggregate function)을 수행하기 위한 어레이(Array), 집계연산함수 및 속성 중 적어도 하나를 포함하는 상기 집계관련정보를 확인하는 것을 특징으로 하는 집계질의처리장치의 동작방법.
  14. 제 13 항에 있어서,
    상기 생성단계는,
    상기 집계관련정보를 기반으로 상기 집계연산함수에 의해 연산에 이용되는 제1 속성과, 상기 집계연산함수에 의한 연산에 이용되지 않으나 상기 질의처리결과에 포함되어야 하는 제2 속성을 확인한 결과에 기초하여 적어도 하나의 트리가지를 포함하는 상기 해시트리를 생성하는 것을 특징으로 하는 집계질의처리장치의 동작방법.
  15. 제 14 항에 있어서,
    상기 생성단계는,
    상기 어레이의 제1행이 입력되는 경우, 상기 제1행에 포함되는 제2 속성의 값을 기반으로 제1 부모노드를 형성하며, 상기 제1행에 포함되는 제1 속성의 값을 기반으로 제1 리프노드를 형성하여 제1 트리가지를 생성하는 단계; 및
    상기 어레이의 제2행이 입력되는 경우, 상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값을 비교한 결과에 기초하여 트리가지의 신규생성 여부를 결정하는 단계를 포함하는 것을 특징으로 하는 집계질의처리장치의 동작방법.
  16. 제 15 항에 있어서,
    상기 결정하는 단계는,
    상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값이 모두 상이하면, 상기 제2행에 포함되는 제2 속성의 값을 기반으로 제2 부모노드를 형성하며, 상기 제2행에 포함되는 제1 속성의 값을 기반으로 제2 리프노드를 형성하여 제2 트리가지를 생성하는 단계;
    상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값 중 일부가 동일하면, 상기 동일한 값을 제외한 나머지 제2 속성의 값을 기반으로 상기 제1 트리가지에 연결되는 서브트리가지를 생성하는 단계; 및
    상기 제2행에 포함되는 제2 속성의 값과 상기 제1 부모노드의 제2 속성의 값이 모두 동일하면, 상기 집계연산함수를 기반으로 상기 제2행에 포함되는 제1 속성의 값과 상기 제1 리프노드의 제1 속성의 값을 연산하여 상기 제1 리프노드의 값을 갱신하는 단계를 포함하는 것을 특징으로 하는 집계질의처리장치의 동작방법.
  17. 제 16 항에 있어서,
    상기 서브트리가지는,
    상기 나머지 제2 속성의 값을 기반으로 형성되어 상기 제1 부모노드의 일부에 연결되는 제3 부모노드 및 상기 제2행에 포함되는 제1 속성의 값을 기반으로 형성되는 제3 리프노드를 포함하는 것을 특징으로 하는 집계질의처리장치의 동작방법.
  18. 제 17 항에 있어서,
    상기 생성단계는,
    상기 해시트리의 생성이 완료되면, 상기 트리가지 별로 포함되는 해당 리프노드에 대응하는 해당 부모노드를 역탐색(back-tracking)하여 상기 질의처리결과를 생성하는 것을 특징으로 하는 집계질의처리장치의 동작방법.
PCT/KR2017/014367 2016-12-12 2017-12-08 집계질의를 처리하기 위한 장치 및 그 방법 WO2018110908A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2016-0168574 2016-12-12
KR1020160168574A KR101757251B1 (ko) 2016-12-12 2016-12-12 집계질의를 처리하기 위한 장치 및 그 방법

Publications (1)

Publication Number Publication Date
WO2018110908A1 true WO2018110908A1 (ko) 2018-06-21

Family

ID=59358748

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/014367 WO2018110908A1 (ko) 2016-12-12 2017-12-08 집계질의를 처리하기 위한 장치 및 그 방법

Country Status (2)

Country Link
KR (1) KR101757251B1 (ko)
WO (1) WO2018110908A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010035263A (ko) * 2001-01-30 2001-05-07 안종선 웹 기반 다차원 정보 분석 서비스 방법 및 시스템
US20050192988A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Method and system for managing aggregation data structures
KR20070014571A (ko) * 2005-07-29 2007-02-01 인하대학교 산학협력단 공간 데이터 웨어하우스에서 시공간 데이터의 집계정보관리방법
KR20090130614A (ko) * 2008-06-16 2009-12-24 연세대학교 산학협력단 다차원 데이터 처리 방법 및 분석 방법과 다차원 데이터처리 장치
US20120109878A1 (en) * 2010-10-27 2012-05-03 Crazy Development Debugging system for multidimensional database query expressions on a processing server

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010035263A (ko) * 2001-01-30 2001-05-07 안종선 웹 기반 다차원 정보 분석 서비스 방법 및 시스템
US20050192988A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Method and system for managing aggregation data structures
KR20070014571A (ko) * 2005-07-29 2007-02-01 인하대학교 산학협력단 공간 데이터 웨어하우스에서 시공간 데이터의 집계정보관리방법
KR20090130614A (ko) * 2008-06-16 2009-12-24 연세대학교 산학협력단 다차원 데이터 처리 방법 및 분석 방법과 다차원 데이터처리 장치
US20120109878A1 (en) * 2010-10-27 2012-05-03 Crazy Development Debugging system for multidimensional database query expressions on a processing server

Also Published As

Publication number Publication date
KR101757251B1 (ko) 2017-07-14

Similar Documents

Publication Publication Date Title
US10621221B2 (en) System for organizing and fast searching of massive amounts of data
CN111522816B (zh) 基于数据库引擎的数据处理方法、装置、终端及介质
US10678669B2 (en) Field content based pattern generation for heterogeneous logs
US10606834B2 (en) Methods and apparatus of shared expression evaluation across RDBMS and storage layer
WO2018058959A1 (zh) Sql审核方法、装置、服务器及存储设备
WO2016047866A1 (ko) 데이터베이스 마이그레이션 방법 및 그 장치
US10380143B2 (en) Merging of distributed datasets
WO2010123168A1 (ko) 데이터베이스 관리 방법 및 시스템
CN103168300B (zh) 具有外连接的立即实体化视图的增量维护
WO2018014580A1 (zh) 数据接口测试方法、装置、服务器和存储介质
WO2014189190A1 (ko) 데이터 부재 태깅 기반의 정보 검색 시스템 및 방법
US20040243590A1 (en) Technique for using a current lookup for performing multiple merge operations using source data that is modified in between the merge operations
WO2015144012A1 (zh) 一种软件开发事务的实现方法及电子设备
WO2014069764A1 (ko) 염기 서열 정렬 시스템 및 방법
WO2016027992A1 (ko) 코드 커버리지 측정 방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
WO2020233089A1 (zh) 测试用例生成方法、装置、终端及计算机可读存储介质
US7899784B2 (en) Method and apparatus for performing multi-table merge operations in a database environment
WO2018110908A1 (ko) 집계질의를 처리하기 위한 장치 및 그 방법
WO2013008978A1 (ko) 개체 식별 결과 검색 시스템 및 방법
US7206784B2 (en) Method and apparatus for performing multiple merge operations using source data that is modified in between the merge operations
WO2017191877A1 (ko) 프로버넌스 관리를 위한 압축 장치 및 방법
WO2016093406A1 (en) Clinical knowledge validation system and method based on case base reasoning
WO2014069767A1 (ko) 염기 서열 정렬 시스템 및 방법
WO2017159906A1 (ko) 원문의 번역어순을 결정하는 데이터 구조, 상기 구조를 생성하는 프로그램 및 이를 저장하는 컴퓨터 판독가능 저장매체
US9946779B2 (en) Pipleline merge operations using source data and multiple destination data structures

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17881504

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17881504

Country of ref document: EP

Kind code of ref document: A1