Data management device, data management system and data management method
The data management device and method address the challenge of query violations by generating compliant alternative queries, reducing effort and ensuring data alignment with user intent and regulatory compliance.
Patent Information
- Application Number
- JP2022111468
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-07-11
- Publication Date
- 2026-01-16
- Estimated Expiration
- 2042-07-11
AI Technical Summary
Data manipulation commands that violate data handling rules in databases require trial and error to comply with anonymization requirements, leading to increased work time and effort, and may result in missing useful data or data that does not align with the user's intended use.
A data management device and method that generates alternative queries to replace queries that violate data handling rules, ensuring compliance with database regulations and aligning with the user's data usage intent.
Enables the generation of useful alternative queries that comply with data handling rules, reducing work time and effort, and ensuring the data meets the user's requirements.
Smart Images

Figure 0007801059000001 
Figure 0007801059000002 
Figure 0007801059000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a data management device, a data management system, and a data management method. [Background technology]
[0002] In recent years, in order to realize a new society (Society 5.0), the free exchange of data, including sensitive data (such as sensitive personal information), has been promoted by both the public and private sectors, resulting in an increase in the distribution of sensitive data between the public and private sectors.Furthermore, the use of sensitive data is being promoted in the medical field, such as in projects to prevent the worsening of illness.
[0003] In order to utilize sensitive data, various rules governing the handling of data in databases exist for each region and organization. For example, there are rules to enhance the anonymity of data. Rules to enhance the anonymity of data include "prohibiting comparison with other information," "prohibiting the publication of data that can identify specific individuals, medical institutions, etc. in the case of disaggregated values," and "when referencing personal age information, grouping people aged 90 and over together."
[0004] Patent Document 1 discloses, as a related technology, a technique for obtaining information from a data user regarding the conditions for use of the data to be used (for example, the anonymization method and importance of each attribute), creating candidates for processed data based on the obtained information, and providing the group of processed data as a group for which processed data can be provided if the matching results of any multiple candidates from the group of processed data satisfy the conditions for use. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] JP 2021-197064 A Summary of the Invention [Problem to be solved by the invention]
[0006] If data to be generated by a data manipulation command (input query) to a database of a database management system for a certain purpose (e.g., k-anonymization) violates data handling rules, data users must use trial and error to avoid the problem. In particular, if rules related to multiple tables and multiple columns are violated, in order to satisfy the anonymization requirements for these rules, there are various descriptions that manipulate columns, and it is necessary to combine them to avoid the rule violation.
[0007] This results in an increase in work time and effort (the amount of work required for data users to obtain the desired data). Furthermore, even if rule violations are avoided, useful data may be missing or the data may not be in line with the data user's intended use of the data. This is because it is not possible to create alternative data manipulation commands (input queries) that are useful (to the data user) and that are in line with the database characteristics and the data user's intended use of the data, as well as complying with data handling rules.
[0008] The present invention has been made to solve the above-mentioned problems. That is, one of the objects of the present invention is to provide a data management device, a data management system, and a data management method that can create a useful alternative query when a query for operating a database violates the data handling rules of the database. [Means for solving the problem]
[0009] In order to solve the above problem, a data management device of the present invention is a data management device that includes an information processing device that receives an input of a query for operating a database and generates data from the database using the query, wherein the information processing device is configured to: generate an alternative query candidate that is a candidate for an alternative query to replace the query, if data generated from the database by the query violates a rule that is a data handling specification for the database; determine whether the alternative query candidate violates the rule by determining whether the data generated from the database by the alternative query candidate complies with the rule; and, if the alternative query candidate does not violate the rule, generate data from the database using the alternative query candidate as the alternative query.
[0010] A data management system of the present invention is a data management system including an information processing device that receives a query for operating a database from a client terminal and generates data from the database using the query, wherein the information processing device is configured to: generate an alternative query candidate that is a candidate for an alternative query to replace the query, if data generated from the database by the query violates a rule that is a data handling specification for the database; determine whether the alternative query candidate violates the rule by determining whether the data generated from the database by the alternative query candidate complies with the rule; and, if the alternative query candidate does not violate the rule, generate data from the database using the alternative query candidate as the alternative query.
[0011] A data management method of the present invention is a data management method using an information processing device that receives an input of a query for operating a database and generates data from the database using the query, wherein if data generated from the database by the query violates a rule that is a data handling specification for the database, the information processing device generates an alternative query candidate that is a candidate for an alternative query to replace the query, determines whether the data generated from the database by the alternative query candidate complies with the rule, and determines whether the alternative query candidate violates the rule, and if the alternative query candidate does not violate the rule, generates data from the database using the alternative query candidate as the alternative query. [Effects of the Invention]
[0012] According to the present invention, when a query for manipulating a database violates the data handling rules of the database, useful alternative queries can be generated. [Brief explanation of the drawings]
[0013] [Figure 1] FIG. 1 is a schematic diagram showing an example of the configuration of an information processing system including a data management device (data processing server) according to a first embodiment of the present invention. [Figure 2A] FIG. 2A is a schematic diagram showing an example of the hardware configuration of a data processing server, a client terminal, and a database management server. [Figure 2B] FIG. 2B is a diagram illustrating an example of the database. [Figure 3] FIG. 3 is a diagram for explaining the rule management table. [Figure 4] FIG. 4 is a diagram for explaining the column operation history management table. [Figure 5A] FIG. 5A is a diagram for explaining the column operation management table. [Figure 5B] FIG. 5B is a diagram for explaining the formula used to calculate entropy. [Figure 6]FIG. 6 is a diagram for explaining the column operation table. [Figure 7] FIG. 7 is a diagram for explaining the operation trial list. [Figure 8A] FIG. 8A is a flowchart showing the process flow executed by the update proposing unit and the rule compliance determining unit. [Figure 8B] FIG. 8B is a diagram illustrating the query input screen. [Figure 9A] FIG. 9A is a flowchart showing a processing flow executed by the update proposing unit. [Figure 9B] FIG. 9B is a diagram illustrating an alternative query display screen. [Figure 9C] FIG. 9C is a diagram illustrating the alternative query basis screen. [Figure 10A] FIG. 10A is a flowchart showing a processing flow executed by the update proposing unit. [Figure 10B] FIG. 10B is a diagram for explaining the information. [Figure 10C] FIG. 10C is a diagram for explaining the information. [Figure 10D] FIG. 10D is a diagram for explaining a method for calculating the weight. [Figure 10E] FIG. 10E is a diagram for explaining a method for calculating the weight. [Figure 11] FIG. 11 is a diagram for explaining the concept of the weight calculation method. [Figure 12A] FIG. 12A is a flowchart showing a processing flow executed by the update proposing unit. [Figure 12B] FIG. 12B is a diagram for explaining the information. [Figure 12C] FIG. 12C is a diagram for explaining the information. [Figure 13] FIG. 13 is a flowchart showing the processing flow executed by the update proposing unit. [Figure 14A] FIG. 14A is a flowchart showing a processing flow executed by the update proposing unit. [Figure 14B] FIG. 14B is a diagram for explaining the weight specification screen. [Figure 15] FIG. 15 is a flowchart showing the processing flow executed by the update proposing unit. DETAILED DESCRIPTION OF THE INVENTION
[0014] Hereinafter, embodiments of the present invention will be described with reference to the drawings. In all drawings of the embodiments, the same or corresponding parts may be designated by the same reference numerals.
[0015] In this specification, "data manipulation" refers to a command statement, such as a "query," that extracts, references, or searches data written in a database manipulation language such as "SQL." Note that a command using a query may also be referred to as a "data manipulation."
[0016] A "data item" generally refers to a "row" or "column" in a data table. "Column operations" refer to the processing performed on each column (data item). Examples of "column operations" include "rounding to the nearest 5 years" or "rounding to the nearest 10 years" for an age column, and "displaying in AXX-X format" or "displaying in AXX format" for an injury / illness column (sometimes called the "injury / illness code column").
[0017] "Data handling regulations," also called "rules," refer to the rules regarding data handling established for each database.
[0018] "Provenance" is also called "lineage" and refers to the history of data manipulation (record of information about data manipulation).
[0019] "Data operation attributes" refers to information about the data user who creates the data operation (query) and information about the data user's use of data, such as the data user's purpose, the project in which the data user is participating, and the data user (data user's identification information).
[0020] "A query violates the rules" means that at least one of the results expected if the query is executed and the results obtained when the query is executed does not comply with the data handling rules of the database that the query is operating on.
[0021] In at least one of the following cases (1) and (2), it can be determined that the query violates the rule. (1) The data to be generated from the database by the query does not comply with the database's data handling rules. (2) The data actually generated from the database by the query does not comply with the database's data handling rules.
[0022] In the following description, various types of information may be described using expressions such as "table" and "record," but the various types of information may be expressed using data structures other than these. Furthermore, when describing identification information, expressions such as "identification information" and "name" are used, but these are interchangeable. Furthermore, in the following description, processing may be described using a functional block as the subject, but the subject of the processing may be a processor, an information processing device, etc., instead of a functional block.
[0023] <<First Embodiment>> <Configuration> FIG. 1 is a schematic diagram showing an example of the configuration of an information processing system 1 including a data management device according to a first embodiment of the present invention.
[0024] As shown in FIG. 1, the information processing system 1 includes a data processing server 2, a client terminal 3, and a database management server 4. These are connected via a network 5 so as to be able to communicate with each other (to be able to send and receive information). For convenience, the information processing system 1 may also be referred to as a "data management system." The data processing server 2 may also be referred to as a "data management device." The data processing server 2 is the data management device according to the first embodiment of the present invention.
[0025] The data processing server 2 includes a column operation table / operation attempt list update and alternative query proposal unit 21 (hereinafter referred to as the update proposal unit 21), a rule compliance determination unit 22, a data handling regulations (rules) management table 23 (hereinafter referred to as the rule management table 23), a column operation history (lineage) management table 24 (hereinafter referred to as the column operation history management table 24), a column operation management table 25, and a column operation table and operation attempt list 26.
[0026] The client terminal 3 includes a data operation (query) input unit 31 (hereinafter referred to as the "query input unit 31").
[0027] The database management server 4 includes a database management system 41 , a database 42 , and DB statistical information 43 .
[0028] FIG. 2A is a schematic diagram showing an example of the hardware configuration of the data processing server 2, the client terminal 3, and the database management server 4.
[0029] 2A, the data processing server 2 includes a processor 201, a main storage device 202 (memory), a secondary storage device 203, a network interface 204, and a bus 205. The device including the processor 201, the main storage device 202, the secondary storage device 203, the network interface 204, and the bus 205 may also be referred to as an "information processing device." The information processing device may be a plurality of information processing devices or a virtual information processing device built on a cloud.
[0030] A main memory device 202 , a secondary memory device 203 , and a network interface 204 are connected to the processor 201 via a bus 205 .
[0031] Processor 201 loads a program (not shown) stored in secondary storage device 203 into main storage device 202. Main storage device 202 includes update proposal unit 21 and rule compliance determination unit 22 as programs loaded by processor 201. Processor 201 realizes the functions of update proposal unit 21 and rule compliance determination unit 22 by executing the program loaded into main storage device 202.
[0032] As described above, the programs executed by the processor 201 are loaded into the main memory device 202, and data used when the processor 201 executes the programs is temporarily stored therein.
[0033] The secondary storage device 203 holds (memorizes, stores) a program, a rule management table 23, a column operation history management table 24, a column operation management table 25, and a column operation table / trial list 26. The column operation table / trial list 26 includes a column operation table 26a and an operation trial list 26b.
[0034] The network interface 204 is an interface for connecting the data processing server 2 to the network 5 .
[0035] The client terminal 3 includes a processor 301 , a main storage device 302 (memory), a secondary storage device 303 , a network interface 304 , a bus 305 , and a connection interface 306 .
[0036] A main memory device 302 , a secondary memory device 303 , a network interface 304 and a connection interface 306 are connected to the processor 301 via a bus 305 .
[0037] The processor 301 loads a program (not shown) stored in the secondary storage device 303 into the primary storage device 302. The primary storage device 302 includes a query submission unit 31 as a program loaded by the processor 301. The processor 301 executes the program loaded into the primary storage device 302 to realize the function of the query submission unit 31.
[0038] As described above, the programs executed by the processor 301 are loaded into the main memory 302, and data used when the processor 301 executes the programs is temporarily stored therein.
[0039] The secondary storage device 303 holds (memorizes, stores) programs.
[0040] The network interface 304 is an interface for connecting the client terminal 3 to the network 5 .
[0041] The connection interface 306 is an interface for connecting an input device 307 and an output device 308. The input device 307 is, for example, an operating device such as a keyboard and a mouse, and the output device 308 is, for example, a display device. A device including the processor 301, the main memory device 302, the secondary memory device 303, the network interface 304, the bus 305, the connection interface 306, the input device 307, and the output device 308 may also be called a "terminal" or an "information processing terminal."
[0042] The database management server 4 includes a processor 401, a main storage device 402 (memory), a secondary storage device 403, and a network interface 404. A device including the processor 401, the main storage device 402, the secondary storage device 403, and the network interface 404 may also be referred to as an "information processing device." The information processing device may be a plurality of information processing devices or a virtual information processing device built on a cloud.
[0043] A main memory device 402 , a secondary memory device 403 , and a network interface 404 are connected to the processor 401 via a bus 405 .
[0044] The processor 401 loads a program (not shown) stored in the secondary storage device 403 into the primary storage device 402. The primary storage device 402 includes the database management system 41 as a program loaded by the processor 401. The processor 401 executes the program loaded into the primary storage device 402 to realize the functions of the database management system 41.
[0045] As described above, the programs executed by the processor 401 are loaded into the main memory 402, and data used when the processor 401 executes the programs is temporarily stored therein.
[0046] The secondary storage device 403 holds (stores, holds) a program, a database 42, and DB statistical information 43. The database 42 includes a database (DB). An example of the database 42 includes a tabular database DB1 (table) shown in FIG. 2B. As shown in FIG. 2B, the database DB1 includes, as columns for storing information (values), for example, an age column, a gender column, and an injury / illness column (injury / illness code column). In the database DB1, information corresponding to each column is associated with each other and stored as row-based information (records). The DB statistical information 43 stores statistical information of the databases included in the database 42.
[0047] The network interface 404 is an interface for connecting the database management server 4 to the network 5 .
[0048] Fig. 3 is a diagram for explaining the rule management table 23. The rule management table 23 is stored in the secondary storage device 203 of the data processing server 2. As shown in Fig. 3, the rule management table 23 includes, as columns for storing information (values), an ID 23a, a database 23b, and data handling regulations (rules) 23c (hereinafter referred to as "data handling regulations 23c").
[0049] In the rule management table 23, information corresponding to each column regarding the data handling rules of the database is stored as information (records) on a row-by-row basis in association with each other.
[0050] Specifically, ID 23a stores identification information for identifying the data handling rules. Database 23b stores identification information for the database to which the data handling rules apply. Data handling regulations 23c stores the contents of the data handling rules.
[0051] The contents of the data handling rules are stored, for example, as follows: · Prohibition of access to data that does not satisfy k value ≥ 2.
[0052] The k value indicates the number of data items with the same attribute; the larger this value, the more difficult it is to identify an individual, and the smaller this value, the easier it is to identify an individual. ·People aged 90 and over will be grouped together. · Prohibition of access to data containing personal identifiers.
[0053] 4 is a diagram illustrating the column operation history management table 24. The column operation history management table 24 is stored in the secondary storage device 203 of the data processing server 2. As shown in FIG. 4, the column operation history management table 24 includes, as columns for storing information (values), a source 24a, a table 24b, a column 24c, a column operation 24d, a data user 24e, a project 24f, an objective / KPI 24g, and a query execution time 24h.
[0054] The column operation history management table 24 associates information corresponding to each column regarding the column operation history (lineage) with each other and stores it as row-based information (records). For convenience, the column operation history management table 24 may also be referred to as "history information regarding past query executions."
[0055] Specifically, the source 24a stores identification information for the database that is the target of the column operation. The table 24b stores the name of the table that is the target of the column operation. The column 24c stores the name of the column (data item). The column operation 24d stores the content of the column operation. The data user 24e stores identification information for identifying the data user (user). The project 24f stores information indicating the project of the data operation. The objective / KPI 24g stores information indicating the objective / KPI (objective of the data user) of the data operation. The query execution time 24h stores the execution time (date and time) of the data operation.
[0056] FIG. 5A is a diagram illustrating the column operation management table 25. The column operation management table 25 is held (memorized, stored) in the secondary storage device 203 of the data processing server 2. As shown in FIG. 5A, the column operation management table 25 includes an age column operation tree 25a, an injury / illness code column operation tree 25b, and a gender column operation tree 25c. The column operation management table 25 stores information (elements) corresponding to each tree related to column operations as hierarchically associated tree-structured information. In this tree-structured information, elements (column operations) at lower levels in the same branch encompass elements (column operations) at higher levels. Elements (column operations) that do not have an inclusive relationship are separated into different branches. For example, the age column operation "rounding by 10 years" encompasses "rounding by 5 years" as an operation (rounding age information by 10 years increments in this case encompasses the operation of rounding by 5 years increments, resulting in a larger amount of information being trimmed). Therefore, the age column operation "rounding to increments of 10 years" is stored in the age column operation tree 25a so that it is at a lower level than the age column operation "rounding to increments of 5 years" on the same branch. For example, the age column operation "grouping people 90 years and older into the same group" is an operation on the same age, but it is separated into a different branch from the age column operation "rounding to increments of XX years" because there is no inclusion relationship between them.
[0057] Specifically, in the age column operation tree 25a, for each column operation on the age column, the "contents of the column operation on the age column" and the "entropy value due to the column operation" are stored as elements, with the smaller the entropy value, the higher the hierarchy. Entropy is a parameter that represents the amount of information change per column due to a column operation (the amount of information lost due to a column operation). The larger the entropy value, the greater the amount of information change per column. In other words, the larger the inverse of entropy, the smaller the amount of information change per column. The method of calculating entropy will be described in detail later with reference to FIG. 5B. In the age column operation tree 25a, elements that are in an inclusive relationship are stored in the same branch, and elements that are not in an inclusive relationship are stored in different branches.
[0058] In the age column operation tree 25a, for column operations (rounding to age increments), the elements "rounding to 5-year increments: 0.52", "rounding to 10-year increments: 1.32", and "rounding to ... years increments: ..." are stored in descending order of entropy from the highest to the lowest hierarchy.
[0059] In the age column operation tree 25a, for column operations (grouping together people of a standard age or older), elements such as "90 years or older in the same group: 0.17" and "80 years or older in the same group: 0.34" are stored in descending order of entropy from the highest to the lowest hierarchical level. In addition, for each column operation (not shown), the column operation content and the entropy value are stored in a similar structure as elements.
[0060] In the injury / illness code column operation tree 25b, for column operations (extraction in XXX format), elements such as "extraction in AXX-X format: 0.65" and "extraction in AXX format: 2.23" are stored in ascending order of entropy from the highest level to the lowest level. For each column operation (not shown), elements such as operation content and entropy values are stored in a similar structure. In the injury / illness code column operation tree 25b, elements that are in a containment relationship are stored in the same branch, and elements that are not in a containment relationship are stored in different branches.
[0061] In the gender column operation tree 25c, for column operations (gender extraction), elements such as "extract only females and males: 0.08" and "extract only females: 0.12" are stored in descending order of entropy from the highest level to the lowest level. For each column operation (not shown), elements such as operation content and entropy values are stored in a similar structure. In the gender column operation tree 25c, elements in an inclusive relationship are stored in the same branch, and elements that are not in an inclusive relationship are stored in different branches.
[0062] FIG. 5B is a diagram illustrating the formula used to calculate entropy. The entropy of a column operation D (element) stored in the column operation management table 25 can be calculated as follows. That is, the entropy of column operation D is calculated by applying formulas (1) and (2) to the column before and after the execution of column operation D when column operation D is executed (assuming that it has been executed) on a database included in the database 42 provided in the database management server 4. This calculates the entropy of a column operation D (element). This calculation is performed in advance for all elements (all column operations D), thereby calculating the entropy of all elements. Note that the entropy calculation is an example. The entropy calculation may be performed using statistical information of the database. The entropy calculation may be performed when statistical information is updated or when a new record is inserted into the database, and the entropy value may be updated based on the calculated value. The entropy value may be set to an arbitrary value by input from the data user.
[0063] FIG. 6 is a diagram illustrating the column operation table 26a included in the column operation table / operation attempt list 26. The column operation table 26a is held (memorized, stored) in the secondary storage device 203 of the data processing server 2. As shown in FIG. 6, the column operation table 26a includes an intra-column order 26a1, a gender 26a2, an injury / illness 26a3, and an age 26a4 as columns for storing information (values). The intra-column order 26a1 stores a numerical value indicating the order. The gender 26a2 stores information (column operation content) indicating the content of the column operation for the gender column of database DB1. The injury / illness 26a3 stores the column operation content for the injury / illness column (injury / illness code column) of database DB1. The age 26a4 stores the column operation content for the age column of database DB1.
[0064] This column operation table 26a is created based on the column operation history management table 24 and the column operation management table 25. 3 and age 26a 4 are arranged from the left in descending order of the number of column operations for each of these. For example, if 120 queries have been executed in the past for database DB1, and 100 of those queries included a column operation on the gender column, 80 included a column operation on the injury / illness column, and 50 included a column operation on the age column, then the columns are arranged from the left in descending order of the number of references: gender 26a2, injury / illness 26a3, and age 26a4.
[0065] Furthermore, column operation details are arranged from top to bottom in descending order of reference frequency according to the number of column operations for each of the gender column, injury / illness column, and age column in database DB1. For example, if, out of 100 column operations for the gender column in database DB1, there are 80 extractions of female / male only, 20 column drops, and 10 As is (extracting the column information stored in the table as is), then from top to bottom, Extract female / male only, Column drop, and As is are arranged in that order. Similarly, column operation details are arranged for injury / illness 26a3 and age 26a4.
[0066] Fig. 7 is a diagram for explaining the operation attempt list 26b included in the column operation table / operation attempt list 26. The operation attempt list 26b is held (memorized, stored) in the secondary storage device 203 of the data processing server 2. As shown in Fig. 7, the operation attempt list 26b includes an attempt sequence 26b1 and a column operation 26b2 as columns for storing information (values).
[0067] In the operation trial list 26b, information corresponding to each column of the operation trial list 26b is stored as information (records) in row units in association with each other.
[0068] Specifically, the trial order 26b1 stores a number indicating the trial order of the column operation, and the column operation 26b2 stores the content of the column operation.
[0069] The operation trial list 26b includes the column operation table 26a and the weight W calculated for each cell (element (column operation)) of the column operation table 26a. ij The operation trial list 26b is created based on the weight W ij The calculation of will be described in detail later.
[0070] <Outline of operation> The following describes an overview of the operation of the information processing system 1. The query submission unit 31 of the client terminal 3 submits (inputs) a data operation (query) for operating the database 42 to the database management server 4 via the data processing server 2.
[0071] The query input unit 31 transmits a data operation (query) created by a data user by inputting information from the input device 307 to the data processing server 2 via the network 5.
[0072] The data processing server 2 determines whether the data operation (query) complies with the data handling rules of the database 42 (whether it violates the rules).
[0073] For example, the data processing server 2 estimates statistical information values (e.g., k values) of data (extracted and / or processed data) to be generated from the database 42 by data manipulation (query) based on the DB statistical information 43. The data processing server 2 determines whether the data to be generated complies with the data handling rules of the database 42 based on the estimated statistical information values. If the data to be generated does not comply with the data handling rules of the database 42, the data processing server 2 automatically creates an alternative query that complies with the rules and proposes (sends, outputs) it to the client terminal 3.
[0074] When the client terminal 3 instructs execution of the proposed alternative query, the data processing server 2 transmits (submits (inputs)) the alternative query to the database management server 4 and requests the database management server 4 to perform an operation in accordance with the alternative query. The alternative query may also be transmitted from the client terminal 3 to the database management server 4.
[0075] The database management server 4 generates data from the database 42 by performing operations in accordance with the alternative query, and transmits (outputs) the generated data to the client terminal 3. The client terminal 3 receives (acquires) the data transmitted from the database management server 4. The database management server 4 may transmit (output) the generated data to the data processing server 2. In this case, the data processing server 2 may transmit (output) the received data to the client terminal 3.
[0076] As will be described in more detail later, an alternative query is proposed based on the column operation history management table 24, which is one that is likely to generate data that complies with the database's data handling rules and is in line with the purpose (purpose of data use) of the data user who created the data operation (query).
[0077] As a result, if the data generated by a data operation (query) does not comply with the data handling rules of the database, the data processing server 2 can automatically create an alternative query that complies with the data handling rules and is likely to be in line with the data user's data usage purpose based on the data user's past data operation history (data operation performance), and propose it to the client terminal 3 (propose it to the data user via the client terminal 3). The above is an overview of how it works.
[0078] <Specific operation> The following describes the specific operation of the data processing server 2. Fig. 8A is a flowchart showing the processing flow executed by the update proposing unit 21 and the rule compliance determining unit 22. The rule compliance determining unit 22 starts processing from step 800, and after sequentially executing the processing of steps 801 to 805 described below, proceeds to step 806.
[0079] Step 801 : The rule compliance determination unit 22 acquires database information about the database 42 from the database management server 4 .
[0080] Step 802: The rule compliance determination unit 22 determines whether the database conformance is correct based on the acquired database information. Ta The handling rules are registered in the rule management table 23.
[0081] Step 803: The rule compliance determination unit 22 acquires a data operation (query) from the client terminal 3. Note that, for example, a query input screen 820 shown in FIG. 8B constituting a GUI (Graphical User Interface) is displayed on the client terminal 3. FIG. 8B is a diagram showing an example of a screen (image) displayed on a display device (output device 308) connected to the client terminal 3. As shown in FIG. 8B, the query input screen 820 includes a query input field 821 and an execute button 822. The query to be input is input and displayed in the query input field 821. The execute button 822 is a button formed by an image. When the execute button 822 is operated, the query input in the query input field 821 is input (input) to the data processing server 2. The rule compliance determination unit 22 acquires the query input (input) from the client terminal 3.
[0082] Step 804: The rule compliance determination unit 22 estimates the statistical information value of the data to be generated by the data operation (query). The rule compliance determination unit 22 estimates the statistical information value of the data to be generated by referring to the DB statistical information 43 of the database management server 4. A specific example of the statistical information value estimated here is the k value, for example.
[0083] Step 805: The rule compliance determination unit 22 performs a process of determining whether the data to be generated complies with the rules. For example, if the k value, which is the statistical information value of the data to be generated estimated in step 804, is 1, the data does not comply with the data handling rule that "access to data that does not satisfy k value ≧ 2 is prohibited." In this case, the rule compliance determination unit 22 determines that the data to be generated does not comply with the rules. For example, if the k value, which is the statistical information value of the data to be generated, is 2 or more, the data complies with the data handling rule that "access to data that does not satisfy k value ≧ 2 is prohibited." In this case, the rule compliance determination unit 22 determines that the data to be generated complies with the rules.
[0084] When the rule compliance determination unit 22 proceeds to step 806, it branches the process depending on the determination result of step 805. That is, if the determination result indicates non-compliance with the rules, the rule compliance determination unit 22 determines "NO" in step 806 and proceeds to step 807, where the update proposal unit 21 sequentially executes the processes of steps 807 and 808 described below, after which the rule compliance determination unit 22 executes step 809 on the actually generated data, and after the update proposal unit 21 performs step 810, the process proceeds to step 895 and temporarily ends this processing flow.
[0085] Step 807: The update proposing unit 21 executes the processing in Fig. 9A to automatically select a method (alternative query) that complies with the rules and propose the alternative query to the client terminal 3. The processing in Fig. 9A will be described in detail later.
[0086] Step 808: The update proposing unit 21 executes the alternative query proposed to the client terminal 3 in step 807. Specifically, when the update proposing unit 21 receives from the client terminal 3 an instruction to execute the alternative query proposed to the client terminal 3, the update proposing unit 21 executes the alternative query. That is, the update proposing unit 21 sends (inputs) the alternative query to the database management server 4 and causes the database management server 4 to execute the alternative query. The data processing server 2 obtains the data generated by the execution of the alternative query from the database management server 4.
[0087] Step 809: The rule compliance determination unit 22 rechecks whether the data actually generated from the database in accordance with the alternative query in step 808 complies with the data handling rules by referring to the rule management table 23. If the actually generated data does not comply with the data handling rules at this time, the processes of steps 807, 808, and 809 are executed again.
[0088] Step 810: The update proposing unit 21 updates the column operation history management table 24 based on information about the executed query (alternative query).
[0089] On the other hand, if the determination result in step 806 is that the data conforms to the rules, the rule compliance determination unit 22 determines "YES" in step 806 and proceeds directly to step 808, where the update proposal unit 21 directly executes the data operation (query) acquired in step 803. Thereafter, the data processing server 2 executes the processes of steps 809 and 810 described above, and then proceeds to step 895, where the process flow temporarily ends.
[0090] Fig. 9A is a flowchart showing the processing flow executed by the update proposing unit 21. When the update proposing unit 21 proceeds to step 807 in Fig. 8A, it starts processing from step 900, and after sequentially executing the processing of steps 901 to 907 described below, proceeds to step 908.
[0091] Step 901: The update proposal unit 21 acquires a query that does not comply with the data handling rules (a query in which data to be generated by the query does not comply with the data handling rules) and a relevant rule (a data handling rule that the query does not comply with).
[0092] Step 902: The update proposing unit 21 identifies operation locations that do not conform to the rules of the query. Specifically, the update proposing unit 21 acquires the rule management table 23, column information, and parsed tokens (words in the query). Furthermore, the update proposing unit 21 extracts tables and columns related to the violating rules from the rule management table 23 and column information, and identifies the operation description tokens for those tables and columns as operation locations that do not conform to the rules of the query.
[0093] Step 903: The update proposing unit 21 executes the process of Fig. 10A to create a column operation table 26a according to the number of column references and the number of times the column operation is applied (number of operations) from the column operation history management table 24. The process of Fig. 10A will be described in detail later.
[0094] Step 904: The update proposing unit 21 selects one column operation with a high trial order from the column operation table 26a, and adds the selected column operation and the trial order to the operation trial list 26b as row-by-row information (record). Note that the initial operation trial list 26b is in a state where no records exist, and each time step 904 is executed, one row-by-row information corresponding to the trial order and the selected column operation to be tried is added to the operation trial list 26b. The trial order is calculated based on a weight W calculated for each column operation in the column operation table 26a (to be described later). ij corresponds to the order of magnitude of the weights W ij The order of magnitude is the same as that of the
[0095] Step 905: The update suggestion unit 21 updates the query based on the operation trial list 26b. Specifically, the update suggestion unit 21 updates (edits (changes, additions, deletions, etc.)) the query that does not comply with the data handling rules acquired in step 901 (the update query if the query has been updated at least once) to include a description (query) indicating the column operation added in step 904, thereby creating an update query including the description (query) indicating the column operation added in step 904. For convenience, this update query may also be referred to as an "alternative query candidate." An alternative query candidate can also be said to be a query that includes a description of a past query with a relatively large number of operation records.
[0096] Step 906: The update proposing unit 21 sends the update query created in step 905 to the rule compliance determining unit 22 to determine whether the update query complies with the data handling rules. Based on the DB statistical information 43, the rule compliance determining unit 22 estimates the statistical information value of the data that is to be generated from the database by the created update query.
[0097] Step 907: The rule compliance determination unit 22 determines whether the data to be generated by the update query complies with the data handling rules using a method similar to that described in step 805 (i.e., verifies whether the update query violates the rules).
[0098] When the rule compliance determination unit 22 proceeds to step 908, it branches the process depending on the determination result of step 907. That is, if the determination result is that the rule is not in compliance with the rule, the rule compliance determination unit 22 determines "NO" in step 908, returns to step 904, and selects the next test item from the column operation table 26a based on the column operation table 26a. line The column operation with the highest ranking is newly added to the operation trial list 26b, and the processes of steps 905 to 907 described above are executed in order, and then the process proceeds to step 908.
[0099] On the other hand, if the determination result indicates that the rule is in compliance with the rule, the rule compliance determination unit 22 determines "YES" in step 908, sends the determination result to the update proposing unit 21, and proceeds to step 909.
[0100] When the update proposal unit 21 proceeds to step 909, it sends (outputs) the update query to the client terminal 3 as an alternative query and proposes the alternative query to the client terminal 3 (proposes it to the data user via the client terminal 3).
[0101] The update suggestion unit 21 suggests an alternative query to a data user, for example, by displaying an alternative query display screen 920 shown in FIG. 9B including the alternative query on a display device (for example, a display device connected to the client terminal 3). FIG. 9B shows an example of the alternative query display screen. The alternative query display screen 920 includes an alternative query input field 921, a check box 922, and an execute button 923.
[0102] The alternative query input field 921 is used to input and display a proposed alternative query. At this time, the changes from the original query may be highlighted so that they are easily recognizable. For example, the changes may be displayed in a manner that makes them more visible than other parts (i.e., highlighted) by drawing a strikethrough or underline on the changes. The check box 922 is displayed so that the check mark on the check box 922 can be displayed or hidden depending on the operation.
[0103] The execute button 923 is a button configured as an image. When the execute button 923 is operated while the check box 922 is checked (a check mark is displayed), the alternative query entered in the alternative query input field 921 is submitted (input, sent) to the database management server 4.
[0104] The update proposing unit 21 may display an alternative query proposing basis screen 930 shown in FIG. 9C on a display device (e.g., a display device connected to the client terminal 3). As shown in FIG. 9C, the alternative query proposing basis screen 930 includes a column operation table 931, an operation attempt list 932, and a violated rule 933. The column operation table 931 displays an image showing the column operation table 26a created in step 903. The operation attempt list 932 displays an image showing the operation attempt list 26b created at the time of proposing an alternative query. The violated rule 933 displays an image showing a data handling rule with which the query acquired in step 901 does not comply. The update proposing unit 21 can show the basis for proposing an alternative query by displaying the alternative query proposing basis screen 930. This allows the update proposing unit 21 to help the data user understand the operation of the system and to assist the data user in creating a query the next time. The alternative query proposing basis screen 930 may be displayed independently or simultaneously with the alternative query display screen 920.
[0105] Thereafter, the update proposing unit 21 proceeds to step 995 and temporarily ends this processing flow, and then returns to FIG. 8A and proceeds to step 808 in FIG. 8A.
[0106] Fig. 10A is a flowchart showing the processing flow executed by the update proposing unit 21. When the update proposing unit 21 proceeds to step 903 in Fig. 9A, it starts processing from step 1000 in Fig. 10A, and after sequentially executing the processing of steps 1001 to 1009 described below, it proceeds to step 1095 and temporarily ends this processing flow. Thereafter, the update proposing unit 21 returns to Fig. 9A and proceeds to step 904.
[0107] Step 1001: The update proposing unit 21 acquires column information indicating a column or columns related to a query that does not comply with the rules.
[0108] Step 1002: The update proposing part 21 acquires, based on the column operation management table 25, column operation information indicating the column operation content for each column related to the query that does not comply with the rules.
[0109] Step 1003: The update proposing unit 21 creates a column operation table 26a based on the column information and column operation information acquired in steps 1001 and 1002 and the past query execution history in the column operation history management table 24.
[0110] The creation of the column operation table 26a will be described with an example. For example, if the columns indicated by the column information are "age," "injury / illness," and "gender," the update proposing unit 21 creates the column operation table 26a as follows.
[0111] That is, the update proposing unit 21 creates "age 26a4," "injury / illness 26a3," and "gender 26a2" as columns for storing information in the column operation table 26a.
[0112] The update proposing unit 21 stores each column operation of the age column operation tree 25a in each row of the age column for the age 26a4 (age column) in the column operation table 26a.
[0113] The update proposing unit 21 stores each column operation of the injury / illness code column operation tree 25b in each row of the injury / illness column for the injury / illness 26a3 (injury / illness column) in the column operation table 26a.
[0114] The update proposing unit 21 stores each column operation 25c of the gender column operation tree in each row of the gender column for the gender 26a2 (gender column) in the column operation table 26a.
[0115] Step 1004: The update proposal unit 21 refers to the column operation history management table 24 and acquires the number of times that the columns related to the non-compliant rules are referenced. That is, the update proposal unit 21 refers to the column operation history management table 24 and acquires the number of times that each column in the column operation table 26a created in step 1003 is referenced (total number of times that each column is referenced). An example of the information that is acquired (the number of times that each column is referenced) is shown in FIG. 10B. In this example, XX n ,XX s , ··· respectively represent the number of times each column was referenced in past queries.
[0116] Step 1005: The update proposal unit 21 refers to the column operation history management table 24 to acquire the number of column operations (number of operations) for each column. That is, the update proposal unit 21 refers to the column operation history management table 24 to acquire the number of column operations (total number of operations) for each column in the column operation table 26a created in step 1003. An example of the acquired information (number of operations for each column operation) is shown in FIG. 10C. In this example, XX n1 ,XX n2 , ··· respectively represent the number of times each column operation on the age column was executed in past queries.
[0117] Step 1006: The update proposing unit 21 edits the column operation table 26a based on the number of times the columns are referenced and the number of times the column operations are performed. That is, as described above, the update proposing unit 21 edits the column operation table 26a so that the columns are arranged from the left in descending order of the number of times they are referenced, and the column operations (column operation contents) are arranged from the top in descending order of the number of times they are operated.
[0118] Step 1007: The update proposing unit 21 calculates the column weight w from the number of references to each column in all past queries (the number of references acquired in step 1004) in the column operation table 26a. j Calculate the column weight w j For convenience, it may also be referred to as the "first weight."
[0119] For example, the weight of a column, wj is calculated by dividing the number of references to a column by the total number of references to all columns. j are normalized so that the sum of all weights is "1" as shown in legend St1 in Figure 10D. j The "j" in the column indicates the integer n (n≧1) corresponding to the order of the columns from the left. Therefore, the column weight w j indicates a weight for the j-th column from the left, counting from the column adjacent to the intra-column order 26a1 in the column operation table 26a. Note that Fig. 10D shows the column operation table 26a in which the intra-column order 26a1 is omitted.
[0120] Step 1008: The update proposing unit 21 calculates the weight w of each column operation from the number of operations of each column operation. ij Calculate the weight of the column operation w ij For convenience, it may also be referred to as the "second weight."
[0121] As shown in legend St2 in Figure 10D, the weight of the column operation w ij The weight of a column operation is calculated for each row of each column in the column operation table 26a. ij is calculated by dividing the number of column operations by the total number of references to the same column as the target column of the column operation. ij As shown in legend St3 in Figure 10D, all weights w ij are normalized so that the sum is "1".
[0122] Column operation weight w ij The "j" in the above is the same as above, and "i" indicates an integer m (m≧1) corresponding to the arrangement order from the top of the column. Therefore, the weight of the column operation w ij indicates the weight for the i-th column operation from the top of the j-th column from the left.
[0123] Step 1009: The update proposing unit 21 calculates the column weight w calculated in step 1007. jand the weight of each column operation calculated in step 1008, w ij In this way, the update proposing unit 21 calculates the weight (trial order) of each column operation in the entire column operation table 26a. That is, as shown in FIG. 10E, the update proposing unit 21 calculates the weight W ij (=w j ×w ij ) is calculated. ij The "j" and "i" in are the same as above. Therefore, the weight W ij indicates the weight of the j-th column operation (cell (element)) from the left and the i-th column operation (cell (element)) from the top of the column operation table 26a. This weight W ij The order of magnitude of the weights W is used as the trial order for the column operation in step 904. ij The column operations in the column operation table 26a are added to the operation trial list 26b in descending order of the number of columns, and are tried as candidates for alternative queries (steps 905 to 908). ij " is the weight W obtained as a result of the calculation. ij For convenience of explanation, the weight W obtained as a result of the calculation is ij The numerical value indicating "a ij " Weight W ij As an example of the calculation result, a 11 >a 13 >a 12 >a 22 >a 21 If a numerical relationship such that >··· is obtained, the operation trial list 26 takes the trial order shown in FIG.
[0124] In this way, the relatively larger the number of column references and column operation counts in past data operations, the earlier the order in which alternative queries including the column operations are tried (i.e., the order in which rule compliance determination (step 907) is performed on candidates for alternative queries). Therefore, an alternative query that conforms to past data usage trends and does not violate the rules is more likely to be proposed earlier.
[0125] As a result, if a query created by a data user is determined to violate the rules, the data processing server 2 can efficiently suggest a query (alternative query) that is beneficial to the data user to the data user via the client terminal 3.
[0126] <Effects> As described above, the data management device according to the first embodiment of the present invention can automatically create and propose useful alternative queries. This allows the data management device and data users using the device to reduce their work time and man-hours. Furthermore, the data management device can propose rule violation locations in queries where rule violations have occurred, along with the rules, to the data user who created the query via the client terminal 3. The data management device can calculate the trial order of column operations based on the execution history of past queries, thereby more quickly (efficiently) proposing alternative queries that conform to past data usage trends and do not violate rules.
[0127] <<Second embodiment>> A data management device (data processing server 2) according to a second embodiment of the present invention will be described below. The data processing server 2 differs from the data processing server 2 according to the first embodiment only in the following points. The data processing server 2 calculates the column weight w of the column operation table 26a. j and the weight of the column operation w ij is calculated so that the newer the data operation, the more important it is for each group with common data operation attributes (for example, the purpose of the data user who created the data operation (query), the project in which the data user participates, and the group to which all data users belong). This calculation is based on the following idea.
[0128] It is preferable to consider that the number of column references and the number of column operations (one each) do not have equal data value when considering the data value as a criterion for determining the trial order of column operations. The reason is that, for example, as shown in Fig. 11, the purpose of the data user who created the data operation (query), the project in which the data user participates, and the data operation (query) that is common to all data users, the later in time (closer to the present) the query is created or executed, the more likely it is to satisfy the rules, and the more appropriate the data user's data usage purpose and the information granularity of the data generated by the query are in many cases.
[0129] Therefore, the data processing server 2 according to the second embodiment uses the weight (w j and w ij ) is calculated.
[0130] <Specific operation> The following description will focus on the above differences.
[0131] Fig. 12A is a flowchart showing a processing flow executed by the update proposal unit 21 of the data processing server 2 according to the second embodiment. The update proposal unit 21 executes the processing flow shown in the flowchart of Fig. 12A instead of the processing flow shown in the flowchart of Fig. 10A. Therefore, when the update proposal unit 21 proceeds to step 903 of Fig. 9A, it starts processing from step 1200 of Fig. 12A, executes the processing of steps 1001 to 1003 described above in order, and then executes the processing of steps 1211 to 1215 described below.
[0132] Step 1211: The update proposal unit 21 refers to the column operation history management table 24 and acquires the referenced column, reference time (reference date and time), and reference count for each group for each column in the column operation table 26a. Here, a group is a group that all shares common data operation attributes (for example, a group that shares the purpose of the data user who created the data operation, the project in which the data user participates, and all data users). An example of the acquired information IG1 for each group (information per group) is shown in FIG. 12B. For ease of explanation, in FIG. 12B, numerical values are expressed as xx, yy, zz, XX, YY, ZZ, etc. (the same applies to FIG. 12C).
[0133] Step 1212: The update proposal unit 21 refers to the column operation history management table 24 and acquires, for each column operation in the column operation table 26a, the column operation, operation time (operation date and time), and number of operations for each group. Note that an example of the acquired information IG2 for each group (information per group) is shown in FIG. 12C.
[0134] Step 1213: The update proposing unit 21 assigns weights w to each column so that the number of references to the column included in the new query history is given more importance in each group. j Calculate.
[0135] Specifically, first, the update proposing unit 21 calculates the weight w of each column. j Calculate (correct) the total number of references to each column required to calculate the above as follows:
[0136] The update proposing unit 21 corrects the reference count (total) of each column for each piece of information IG1 in FIG. 12B by calculating (re-calculating) the reference count (total) of each column using the weighted reference count. That is, the update proposing unit 21 calculates the reference count (total) of each column using the weighted reference count (1 × weight (times)) obtained by multiplying one reference to the column by the weight. The weight at this time is set, for example, based on the reference date and time of columns in the same group (for example, the weight is set so that the later the reference date and time of columns in the same group, the larger the weight).
[0137] Furthermore, the update proposing unit 21 calculates the total number of references for each column by adding up the (total) number of references for each column in each group, calculated for each piece of information IG1. The update proposing unit 21 calculates the weight w of each column using the total number of references for each column. j That is, the update proposing unit 21 calculates the weight w of each column in the same manner as in the first embodiment. j Calculate.
[0138] Step 1214: The update proposing unit 21 assigns a weight w of each column operation to each group so that the number of column operations included in the new query history is given more importance. ij Calculate.
[0139] Specifically, first, the update proposing unit 21 calculates the weight w of each column operation. ij The total number of operations for each column required to calculate is calculated (corrected) as follows:
[0140] The update proposal unit 21 corrects the (total) number of operations of each column operation by calculating (re-calculating) the (total) number of operations of each column operation for each piece of information IG2 in Fig. 12C using the weighted number of operations. That is, the update proposal unit 21 calculates the (total) number of operations of each column operation using the weighted number of operations (1 x weight (times)) obtained by multiplying one column operation by the weight. The weight at this time is set, for example, based on the operation date and time of the column operation in the same group (for example, the weight is set so that it becomes larger as the operation date and time of the column operation in the same group becomes later).
[0141] Furthermore, the update proposing unit 21 calculates the total number of operations for each column operation by adding up the operation count (total) of each column operation for each group calculated for each piece of information IG2. The update proposing unit 21 calculates the weight w of each column operation using the total number of operations for each column operation. ij That is, the update proposing unit 21 calculates the weight w of each column operation in the same manner as in the first embodiment. ij Calculate.
[0142] Step 1215: The update proposing unit 21 calculates the weights w of each column. j and the weight of each column operation w ij That is, the update proposing unit 21 edits the column operation table 26a based on the weights w j The column operations are arranged in descending order of weight w ij Edit the files so that they are arranged in descending order of size.
[0143] Thereafter, the update proposing unit 21 proceeds to step 1009, executes the process of step 1009, and calculates the weight W ij Calculate the weight W ij is calculated taking into account the purpose of the data user, the project, and the recency of the data operation in the group that all data users share. This weight W ijis calculated so that the newer the column operation, the more importance is attached to it in the group unit where all of the data user's purpose, project, and data user are common. ij The order of magnitude of the scalars is adopted as the trial order of the column operations in the above-mentioned step 904. Therefore, when a query created by a data user is determined to violate a rule, an alternative query that conforms to the past data usage trends, is more in line with the data user's data usage purpose, and does not violate a rule is more likely to be suggested more quickly (more efficiently).
[0144] Thereafter, the update proposing unit 21 proceeds to step 1295 and temporarily ends this processing flow. Thereafter, the update proposing unit 21 returns to Fig. 9A and proceeds to step 904 in Fig. 9A.
[0145] <Effects> As described above, the data management device according to the second embodiment of the present invention considers the difference in value of past query histories in time series, and calculates the column weight w j and the weight of the column operation w ij This allows the data management device to more efficiently propose alternative queries that are more in line with the data user's purpose of using data and that do not violate the rules.
[0146] <<Third Embodiment>> A data management device (data processing server 2) according to a third embodiment of the present invention will be described. The data processing server 2 differs from the data processing server 2 according to the first embodiment only in the following points. The data processing server 2 calculates the column weight w of the column operation table 26a. j and the weight of the column operation w ij is calculated using the attributes of the data operation (e.g., the purpose of the data user, the project, and the data user). Specifically, the data processing server 2 calculates the weight (w j and w ijThe only difference from the data processing server 2 of the first embodiment is that when calculating the similarity, the more importance is placed on the attributes of the data operation (for example, the purpose, project, and data user of the data user) of the query (data operation) that is determined to be a rule violation and is to be replaced.
[0147] This calculation is based on the following idea. As mentioned above, it is preferable to think that the number of column references and the number of column operation operations (one each) do not have equal data value when considering the data value as a criterion for determining the trial order of column operations. The reason for this is that queries about the data user's purpose, project, and data user that are more closely related to the data user's purpose, project, and data user for the query that violates the rules and is to be replaced are often more in line with the data user's purpose of data use.
[0148] Therefore, the data processing server 2 according to the third embodiment uses the weight (w j and w ij ) is calculated.
[0149] <Specific operation> The following description will focus on this difference.
[0150] Fig. 13 is a flowchart showing a processing flow executed by the update proposal unit 21 of the data processing server 2 according to the third embodiment. The update proposal unit 21 executes the processing flow shown in the flowchart of Fig. 13 instead of the processing flow shown in the flowchart of Fig. 10A. Therefore, when the update proposal unit 21 proceeds to step 903 of Fig. 9A, it starts processing from step 1300 of Fig. 13 and sequentially executes the processing of steps 1001 to 1003 described above, as well as the processing of steps 1211 and 1212 described above. Thereafter, the update proposal unit 21 sequentially executes the processing of steps 1311 and 1312 described below, as well as the processing of steps 1215 and 1009 described above.
[0151] Step 1311: The update proposing unit 21 assigns a weight w to the column so that the more important it is to reference a column included in the information IG1 (see FIG. 12B) of the group that has a high similarity to the attributes (purpose, project, and data user (identification information)) of the data operation (query) that does not comply with the rules, the more important it is to the number of times the column is referenced. j Calculate.
[0152] That is, the update proposing unit 21 acquires the attributes (purpose, project, and data user (identification information)) of the data operation (query) that does not comply with the rules. Note that, for convenience of explanation, hereinafter, the attributes (purpose, project, and data user (identification information)) of the data operation (query) that does not comply with the rules may also be referred to as "calculation basis attributes."
[0153] For each piece of information IG1 organized into groups, the update suggestion unit 21 calculates the similarity of the group of information IG1 to the calculation basis attribute based on the attribute (calculation basis attribute) of the data operation (query) that does not comply with the rules and the attribute of the group of information IG1.
[0154] In this example, the similarity of the attributes (objective, project and data user of the data user) of the group of information IG1 to the calculation criterion attributes (objective, project and data user of the data user) is calculated.
[0155] An example of similarity calculation is performed by referring to a similarity management table (not shown). The similarity management table includes a tree-structured table that manages the inclusion and correlation (similarity) of objectives / KPIs, a tree-structured table that manages the inclusion and correlation (similarity) of projects, and a tree-structured table that manages the inclusion and correlation (similarity) of data users.
[0156] The similarity of a group to a calculation criterion attribute of a certain piece of information IG1 is calculated as follows.
[0157] The update suggestion unit 21 calculates a numerical value (hereinafter referred to as the "first relationship value") indicating the strength of the relationship between the data user's objective of the calculation basis attribute and the data user's objective of the attribute of the group of information IG1, based on a tree-structured table that manages the inclusion and correlation of objectives / KPIs. The first relationship value is, for example, a continuous value from 0 to 1. Note that the first relationship value may also be a discrete value between 0 and 1 (the same applies to the second and third relationship values described below).
[0158] For example, in a tree-structured table, the first relationship value is calculated so that the stronger the relationship between the data user purpose of the calculation basis attribute and the data user purpose of the group attribute of information IG1, the larger the first relationship value. For example, if the data user purpose of the group attribute of information IG1 is the same as the data user purpose of the calculation basis attribute, the maximum value "1" is calculated. On the other hand, if the data user purpose of the group attribute of information IG1 exists in a location in the tree structure that cannot be reached without tracing back from the data user purpose of the calculation basis attribute to the root, the "minimum value" "0" is calculated. Even if the data user purpose of the group attribute of information IG1 exists in a location in the tree structure with a different root from the root of the tree structure to which the data user purpose of the calculation basis attribute belongs, the "minimum value" "0" is calculated. In addition, the first relationship value is calculated as a numerical value (a numerical value between 0 and 1 that increases as the relationship becomes stronger) that corresponds to the relationship between the data user purpose, which is an attribute of the group of information IG1, and the data user purpose of the calculation basis attribute based on the tree structure.
[0159] In the same manner as above, a numerical value (hereinafter referred to as the "second relationship value") indicating the strength of the relationship between the project of the calculation basis attribute and the project of the attribute of the group of information IG1 is calculated based on a tree-structured table that manages the inclusion and correlation of projects.
[0160] In the same manner as above, a numerical value (hereinafter referred to as the "third relationship value") indicating the strength of the relationship between the data user of the calculation basis attribute and the data user of the attribute of the group of information IG1 is calculated based on a tree-structured table that manages the inclusion and correlation of data users.
[0161] The sum of these calculated values (the sum of the first relation value, the second relation value, and the third relation value) is set as the similarity (distance) of the group of a certain piece of information IG1 to the calculation reference attribute. Note that the product of these calculated values (the product of the first relation value, the second relation value, and the third relation value) may also be set as the similarity (distance) of the group of a certain piece of information IG1 to the calculation reference attribute.
[0162] Similarly, the similarity (distance) of the group is calculated for each of the other information IG1 other than the one information IG1.
[0163] Then, the update proposing unit 21 calculates (corrects) the total number of references for each column by summing up the reference counts for each column weighted so that the reference count for information IG1 in the group with the greater similarity (distance) is given more importance. The update proposing unit 21 calculates (corrects) the total number of references for each column using the corrected total number of references for each column in the same manner as in the first embodiment. j Calculate.
[0164] Step 1312: In the same manner as in step 1311, the update proposing unit 21 calculates the weight w of each column operation so that the more important the number of column operations with higher similarity in the group unit, the more important the number of column operations. ij That is, the update proposing unit 21 calculates (corrects) the total number of column operations by summing up the number of column operations weighted so as to increase the number of column operations for information IG2 (see FIG. 12C) of the group that has a larger similarity (distance) to the attribute (calculation reference attribute) of the data operation (query) that does not comply with the rules. The update proposing unit 21 calculates (corrects) the total number of column operations weighted by the same method as in the first embodiment, using the total number of column operations. ij Calculate.
[0165] Thereafter, the update proposing unit 21 executes the process of step 1215 described above, and then proceeds to step 1009, executes the process of step 1009 described above, and calculates the weight W ij Calculate the weight W ij is calculated so that the greater the purpose of the data user who created the data operation (query), the project in which the data user is participating, and the degree of similarity (relationship) between the data user and the data user, the more important it is. ij The order of magnitude of the scalars is adopted as the trial order of the column operations in step 904. Therefore, when a query created by a data user is determined to violate a rule, an alternative query that conforms to the past data usage trends, is more in line with the data user's data usage objectives, and does not violate a rule is more likely to be suggested more quickly (efficiently).
[0166] Thereafter, the update proposing unit 21 proceeds to step 1395 and temporarily ends this processing flow. Thereafter, the update proposing unit 21 returns to FIG. 9A and proceeds to step 904.
[0167] <Effects> As described above, the data management device according to the third embodiment of the present invention takes into account the similarity (distance) of the attributes of data operations and calculates the column weight w j and the weight of the column operation w ij This allows the data management device to more efficiently propose alternative queries that are more in line with the data user's purpose of using data and that do not violate the rules.
[0168] <<Fourth Embodiment>> A data management device (data processing server 2) according to a fourth embodiment of the present invention will be described. The data processing server 2 differs from the data processing server 2 according to the first embodiment only in the following points.
[0169] The data processing server 2 calculates the column weight w based on the information input from the input device 307 by the data user operating the input device 307.j Specify.
[0170] <Specific operation> The following description will focus on this difference.
[0171] Fig. 14A is a flowchart showing a processing flow executed by the update proposal unit 21 of the data processing server 2 according to the fourth embodiment. The update proposal unit 21 executes the processing flow shown in the flowchart of Fig. 14A instead of the processing flow shown in the flowchart of Fig. 9A.
[0172] Therefore, when the update proposing unit 21 proceeds to step 807 in FIG. 8A, it starts the process from step 1400 in FIG. 14A, and after sequentially executing the processes of steps 901 and 902 described above, proceeds to step 1411.
[0173] When the update proposing unit 21 proceeds to step 1411, it executes the process of FIG. 15 to obtain the column weight w j and the amount of information change due to the column operation, a column operation table 26a is created. The processing of FIG. 15 will be described in detail later. The column weight specification OP1 is executed based on information input by the data user from the input device 307. For example, the column weight specification OP1 is executed as follows. The weight specification screen 1420 shown in FIG. 14B, which constitutes a GUI, is displayed on the client terminal 3. FIG. 14B is a diagram showing an example of a screen (image) displayed on the output device 308 (display device) connected to the client terminal 3. As shown in FIG. 14B, the column weight input field 1421 and an execute button 1422 are included. In the column weight input field 1421, weights (numeric values indicating weights) for each column are input from the input device 307 by the user operating the input device 307. The execute button 1422 is a button constituted by an image. When the execute button 1422 is operated, the weights for each column input in the column weight input field 1421 are specified.
[0174] Thereafter, the update proposing unit 21 executes the processes of steps 904 to 909 described above, and then proceeds to step 1495 to temporarily end this processing flow, after which the process returns to Fig. 8A and proceeds to step 808 in Fig. 8A.
[0175] Fig. 15 is a flowchart showing the processing flow executed by the update proposing unit 21. When the update proposing unit 21 proceeds to step 1411 in Fig. 14, it starts processing from step 1500 in Fig. 15 and sequentially executes the processing of steps 1001 to 1003 described above. Thereafter, the update proposing unit 21 sequentially executes the processing of steps 1511 to 1514 described below and the processing of step 1009 described above, and then proceeds to step 1595 to temporarily end this processing flow. Thereafter, the process returns to Fig. 14A and proceeds to step 904.
[0176] Step 1511: The update proposing part 21 obtains the weight of the column specified by the column weight specification OP1.
[0177] Step 1512: The update proposing unit 21 refers to the column operation management table 25 and acquires the entropy (amount of change in information) due to the column operation.
[0178] Step 1513: The update proposing unit 21 calculates the inverse of the entropy due to each column operation, and determines the weight w of the column operation so that the larger the calculated inverse of the entropy, the larger the weight w of the column operation. ij Calculate.
[0179] Step 1514: The update proposing unit 21 edits the column operation table 26a. That is, the update proposing unit 21 edits the columns of the column operation table 26a from the left in the order of column weights w j Edit the columns so that they are arranged in descending order of entropy reciprocal from top to bottom.
[0180] Thereafter, the update proposing unit 21 proceeds to step 1009, executes the process of step 1009, and calculates the weight W ij Calculate the weight W ijis calculated so that the larger the inverse of the entropy is (i.e., the smaller the amount of information change due to the column operation) in the column operation, the more importance is attached to it. ij The order of magnitude of the scalars is adopted as the trial order for the column operations in the above-mentioned step 904. Therefore, when a query created by a data user is determined to violate a rule, an alternative query that loses less information through data operations and does not violate the rule is more likely to be proposed more quickly (efficiently).
[0181] <Effects> As described above, the data management device according to the fourth embodiment of the present invention can more quickly (efficiently) propose alternative queries that are in line with the data user's intentions for using data, that result in minimal information loss due to data manipulation, and that do not violate the rules.
[0182] <<Modifications>> The present invention is not limited to the above-described embodiments, and various modifications can be adopted within the scope of the present invention. Furthermore, the above-described embodiments can be combined with each other without departing from the scope of the present invention.
[0183] For example, in the information processing system 1 of each of the above embodiments, the device having the functions of the data processing server 2 and the database management server 4 may be configured with one or more information processing devices. In the information processing system 1 of each of the above embodiments, the device having the functions of the data processing server 2 and the client terminal 3 may be configured with one or more information processing devices. In the information processing system 1 of each of the above embodiments, the device having the functions of the client terminal 3 and the database management server 4 may be configured with one or more information processing devices. In the information processing system 1 of each of the above embodiments, the device having the functions of the data processing server 2, the client terminal 3, and the database management server 4 may be configured with one or more information processing devices.
[0184] Furthermore, for example, in each of the first to third embodiments, the weight w of a specific columnj , the weight of the column operation w ij and weight W ij Each of the above items may be modified by a user's operation input.
[0185] Furthermore, in each of the above embodiments, the update suggestion unit 21 created the operation trial list 26b by sequentially adding column operations, but the operation trial list 26b may also be created in a single process. In this case, for example, instead of the processes of steps 904 and 905 in FIG. 9A, the following process may be executed.
[0186] Step A: The update proposing unit 21 determines from the column operation table 26a whether a plurality of column operations have their weights W ij The operation trial list 26b is created in one process so that the larger the number, the higher the trial order.
[0187] Step B: The update proposing unit 21 selects column operations from the operation trial list 26b in descending order of trial order, and updates the query by including a description indicating the selected column operation in the query determined to be in violation of the rule. Note that in this case, if the determination result in step 908 is that the query does not comply with the rule, the update proposing unit 21 determines "NO" in step 908 and returns to step B.
[0188] Furthermore, in each of the above embodiments, the rule compliance determination unit 22 may perform processing to determine whether or not the data actually generated by the query complies with the rules, instead of steps 804 and 805 in FIG. 8A.
[0189] Furthermore, in each of the above embodiments, step 809 in FIG. 8A may be omitted.
[0190] Furthermore, in each of the above embodiments, the following determination process may be added between step 905 and step 906 in each of FIGS. 9A and 14A.
[0191] Determination process: The update proposal unit 21 calculates the total entropy value of the column operations of the update query by referring to the operation trial list 26b and the column operation management table 25. The update proposal unit 21 determines whether the calculated total entropy value is smaller than a preset threshold entropy.
[0192] If the calculated total entropy value is equal to or greater than the threshold entropy in the determination process, it is possible that the amount of information change when an update query is executed may exceed the range intended by the original query. Therefore, in this case, the update proposal unit 21 determines "NO" in the determination process, proceeds to step 995, and temporarily ends the processing flow of Figure 9A (Figure 14A).
[0193] On the other hand, if the calculated total entropy value is smaller than the threshold entropy in the determination process, the update proposing unit 21 determines “YES” in the determination process and proceeds to step 906 .
[0194] In addition, if the calculated total entropy value is equal to or greater than the threshold entropy in the determination process, the following process may be executed instead of the above process. As a result, even if the calculated total entropy value is equal to or greater than the threshold entropy, the update proposing unit 21 can verify other alternative query candidates in which the total entropy value of the column operations is smaller than the threshold entropy.
[0195] The update proposing unit 21 deletes the last line of the currently created operation trial list 26b, rearranges the trial order (for example, the weight W ij The update proposing unit 21 then executes the process of step B1, which is the same as step B described above, and then executes the processes of steps 906 and 907 in order, before proceeding to step 908. If the determination result in step 908 is that the rule is not complied with, the update proposing unit 21 determines "NO" in step 908 and returns to step B1.
[0196] Furthermore, in each of the second and third embodiments, the attributes of the data operation are the purpose of the data user, the project in which the data user is participating, and the data user, but the attributes of the data operation may be any one or two of these attributes. Furthermore, the attributes of the data operation may be attributes obtained by adding another attribute to these attributes. The attributes of the data operation may be attributes obtained by replacing at least one of these attributes with another attribute. [Explanation of symbols]
[0197] 1...information processing system, 2...data processing server, 3...client terminal, 4...database management server, 21...column operation table / operation trial list update and alternative query suggestion unit, 22...rule compliance determination unit, 23...data handling (rule) management table, 24...column operation history (lineage) management table, 25...column operation management table, 26...column operation table and operation trial list, 31...data operation (query) input unit, 41...database management system, 42...database, 43...DB statistical information
Claims
1. A data management device including an information processing device to which a query for operating a database is input and which generates data from the database using the query, The information processing device includes: If data generated from the database by the query violates a rule that is a data handling specification of the database, an alternative query candidate is generated as a candidate for an alternative query to replace the query, and by determining whether the data generated from the database by the alternative query candidate complies with the rule, it is determined whether the alternative query candidate violates a rule; If the alternative query candidate is not determined to violate a rule, generating data from the database using the alternative query candidate as the alternative query. It was configured as follows: Data management device.
2. 2. The data management device according to claim 1, a storage device storing historical information about past executions of queries; The information processing device includes: If the alternative query candidate violates a rule, generating a new alternative query candidate including a description of the past query based on operation results using the history information, and determining whether the generated new alternative query candidate violates a rule. It was configured as follows: Data management device.
3. 2. The data management device according to claim 1, a storage device storing an operation trial list in which column operations, which are data operations on a column basis for the database, are associated with trial orders; The information processing device includes: each time it is determined that the alternative query candidate violates a rule, a description indicating a column operation associated with the trial order is included in the alternative query candidate determined to violate a rule in the order of the trial orders in the operation trial list, thereby generating a new alternative query candidate, and determining whether the generated new alternative query candidate violates a rule. It was configured as follows: Data management device.
4. 4. The data management device according to claim 3, the storage device stores column operation management information in which columns and column operations are associated with each other; The information processing device includes: When data generated from the database by the query violates the rule, a column of the database related to the rule violation is identified, and the identified column is applied to the column operation management information to obtain one or more column operations corresponding to the identified column; generating a column operation table that is tabular information storing the one or more acquired column operations in a column of the identified column as a column item; calculating a weight for each of the column operations that is an element of the column operation table, and creating the operation trial list such that the larger the weight of a column operation, the higher the trial order corresponding to that column operation; It was configured as follows: Data management device.
5. 5. The data management device according to claim 4, the storage device stores history information related to past query executions, the history information including the number of references to columns of the database referenced by the past column operations and the number of column operation operations, which is the number of times the past column operations were applied to the database; The information processing device includes: calculating the weight by multiplying a first weight for the column in the column operation table by a second weight for the column operation in the column operation table; calculating the first weight for a column in the column operation table so that it becomes larger as the number of references to the history information corresponding to the column increases, and calculating the second weight for a column operation in the column operation table so that it becomes larger as the number of operations of the column operation in the history information corresponding to the column operation increases; It was configured as follows: Data management device.
6. 6. The data management device according to claim 5, the history information further includes information including attributes of the past column operations, The information processing device includes: correcting the number of references to the column and the number of operations of the column operation using the attributes of the column operation; Calculating the first weight based on the corrected number of references to the column, and calculating the second weight based on the corrected number of operations on the column. It was configured as follows: Data management device.
7. 7. The data management device according to claim 6, The information processing device includes: correcting the number of times the column is referenced by calculating a weighted number of times the column is referenced, the weighted number being greater the later the reference time when compared within a group having a common attribute of the past column operations; correcting the number of column operations by calculating the number of column operations included in the history information based on a weighted number of times such that the later the operation time is, the greater the weighted number of times is, when compared within a group having a common attribute of the past column operations; It was configured as follows: Data management device.
8. 7. The data management device according to claim 6, The information processing device includes: based on a similarity between an attribute of a column operation corresponding to the query in which the generated data violates the rule and an attribute of the past column operation, correcting the number of references to the column by calculating the number of references to the column included in the history information in units of attributes of the past column operations that are common, with the number of references to the column being weighted so that the number of references to the column is greater as the degree of similarity is higher; and correcting the number of operations to the column operation by calculating the number of operations to the column included in the history information in units of attributes of the past column operations that are common, with the number of references to the column being weighted so that the number of references to the column is greater as the degree of similarity is higher; It was configured as follows: Data management device.
9. 5. The data management device according to claim 4, an information input device that can input information to the information processing device by being operated by a user; The information processing device includes: the weight is calculated by multiplying a first weight for the column in the column operation table input from the information input device by a second weight for the column operation in the column operation table, the second weight being calculated based on a predetermined information change amount for each column in the database due to the column operation so as to be larger as the information change amount is smaller; It was configured as follows: Data management device.
10. 2. The data management device according to claim 1, The information processing device includes: displaying, on a display device, an alternative query display screen that includes an image showing the alternative query in which changes from the query are highlighted, and that constitutes a GUI screen for allowing a user to decide whether to execute the alternative query; It was configured as follows: Data management device.
11. 5. The data management device according to claim 4, The information processing device includes: displaying on a display device an image including the column operation table, the operation trial list, and the rule that the data to be generated from the database by the query violates; It was configured as follows: Data management device.
12. 2. The data management device according to claim 1, The information processing device includes: estimating a statistical information value of data to be generated from the database by the alternative query candidate, and determining whether or not the data to be generated from the database by the alternative query candidate complies with the rule based on the estimated statistical information value; It was configured as follows: Data management device.
13. 3. The data management device according to claim 2, The information processing device includes: When the query is executed, updating the historical information regarding the execution of the past query with information regarding the execution of the query, and when the alternative query is executed, updating the historical information regarding the execution of the past query with information regarding the alternative query. It was configured as follows: Data management device.
14. A data management system including a data management device that includes an information processing device that receives a query for operating a database from a client terminal and generates data from the database using the query, The information processing device includes: If data generated from the database by the query violates a rule that is a data handling specification of the database, an alternative query candidate is generated as a candidate for an alternative query to replace the query, and by determining whether the data generated from the database by the alternative query candidate complies with the rule, it is determined whether the alternative query candidate violates a rule; If the alternative query candidate is not determined to violate a rule, generating data from the database using the alternative query candidate as the alternative query. It was configured as follows: Data management system.
15. 1. A data management method using an information processing device in which a query for operating a database is input and data is generated from the database using the query, By the information processing device, If data generated from the database by the query violates a rule that is a data handling specification of the database, an alternative query candidate is generated as a candidate for an alternative query to replace the query, and by determining whether the data generated from the database by the alternative query candidate complies with the rule, it is determined whether the alternative query candidate violates a rule; If the alternative query candidate is not determined to violate a rule, generating data from the database using the alternative query candidate as the alternative query. Data management methods.
Citation Information
Patent Citations
JP1970000064Y1
Query correction support system, search system, and program
JP2021068063A