Nothing Special   »   [go: up one dir, main page]

WO2019163610A1 - Information processing system and information processing method - Google Patents

Information processing system and information processing method Download PDF

Info

Publication number
WO2019163610A1
WO2019163610A1 PCT/JP2019/005141 JP2019005141W WO2019163610A1 WO 2019163610 A1 WO2019163610 A1 WO 2019163610A1 JP 2019005141 W JP2019005141 W JP 2019005141W WO 2019163610 A1 WO2019163610 A1 WO 2019163610A1
Authority
WO
WIPO (PCT)
Prior art keywords
record
records
value
array data
data
Prior art date
Application number
PCT/JP2019/005141
Other languages
French (fr)
Japanese (ja)
Inventor
古庄 晋二
Original Assignee
株式会社ターボデータラボラトリー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ターボデータラボラトリー filed Critical 株式会社ターボデータラボラトリー
Publication of WO2019163610A1 publication Critical patent/WO2019163610A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Definitions

  • the present invention relates to an information processing system and an information processing method.
  • Patent Documents 1 and 2 a technique for searching data stored in a database using an index such as B-Tree or hash and displaying the search result is known (for example, Patent Documents 1 and 2).
  • a search server for searching for desired data from big data generally needs to have high-performance hardware resources, and the installation cost is high. Furthermore, when a search server equipped with high-performance hardware resources is installed, its maintenance cost (for example, maintenance cost, power consumption, etc.) is also expensive.
  • the big data provider wants to use a simple file server that does not include expensive hardware and software related to search, and present big data as a file. In this case, the maintenance is easy and the cost is low.
  • the Big Data usage side is a general PC (personal computer), etc., and we want to be able to search by combining the Big Data provider's files freely and display the search results.
  • the present invention has been made in view of the above points, and enables a user of big data to freely combine a plurality of big data files distributed on a network such as the Internet and easily search and display desired data. To.
  • an embodiment of the present invention includes a table storing a plurality of records, first array data storing predetermined item values included in each of the plurality of records, Storage means for storing second array data in which a record number for identifying a record is stored, and third array data that associates the first array data with the second array data, and the item value or In response to the designation of the record number, the first array data, the second array data, and the third array data are used to specify the specified record among the plurality of records stored in the table.
  • Big data users can freely combine multiple big data files distributed over a network such as the Internet to easily search and display desired data.
  • FIG. 3 is a diagram (part 1) illustrating an example of an internal data structure; It is FIG. (2) which shows an example of an internal data structure. It is a figure for demonstrating an example of the production method of SVL, IND, and INV. 10 is a diagram for explaining an application example 1.
  • FIG. FIG. 10 is a diagram for explaining an application example 2;
  • FIG. 1 is a diagram showing an example of the overall configuration of a data management system 1 according to an embodiment of the present invention.
  • the data management system 1 includes one or more terminal devices 10 and one or more data management devices 20. Further, the terminal device 10 and the data management device 20 are communicably connected via a network N such as the Internet, a LAN (Local Area Network), or a telephone line network.
  • a network N such as the Internet, a LAN (Local Area Network), or a telephone line network.
  • the terminal device 10 is an information processing device (computer) such as a PC that is operated by a user who uses big data.
  • the user can display and search data managed by the data management device 20 by operating the terminal device 10.
  • the terminal device 10 includes a display processing unit 100 for displaying and retrieving data managed by the data management device 20.
  • the display processing unit 100 is realized by, for example, a process in which one or more programs installed in the terminal device 10 are executed by a CPU (Central Processing Unit).
  • the display processing unit 100 creates and displays a view of data managed by the data management apparatus 20 in accordance with a user operation. Further, the display processing unit 100 searches for desired data from a certain view and displays the search result.
  • a view is display information representing data arbitrarily selected from one or a plurality of tables (or other views).
  • a table (or table) is information composed of one or more data.
  • a record order view, a value order view, a record order UNION view, and a value order UNION view can be said to be views created by all the records constituting one or more tables 1000, while data
  • the search result of the search can be said to be a view in which some records of these views are displayed.
  • the terminal device 10 is not limited to a PC, and may be various information processing devices such as a smartphone and a tablet terminal.
  • the data management device 20 is an information processing device (computer) such as a database server on which the big data provider manages various data.
  • the data management device 20 includes a data processing unit 200 that manages various data, and a database 300 that stores various data.
  • the data processing unit 200 is realized, for example, by a process that the CPU executes by one or more programs installed in the data management device 20.
  • the database 300 can be realized by, for example, an auxiliary storage device.
  • the data processing unit 200 transmits the corresponding data among the data stored in the database 300 to the terminal device 10 in response to a request from the terminal device 10. Thereby, in the terminal device 10, a view is created and displayed, or a search result is displayed.
  • the database 300 includes a table 1000 composed of one or more data, an SVL (Sorted Value List) 1100, an IND (Indirect Record Index) 1200, and an INV (Inverted Record Index) used for view creation and data retrieval. ) 1300 is stored.
  • SVL 1100, IND 1200, and INV 1300 are internal data created with respect to a certain item of each record constituting table 1000. Details of these data will be described later.
  • the views displayed by the display processing unit 100 of the terminal device 10 include a record order view, a value order view, a record order UNION view, and a value order UNION view.
  • the record order view is a view that displays each data constituting the table 1000 (this data is also referred to as “record”) in order of record number.
  • the value order view is a view that displays the records constituting the table 1000 in the order of values of a specified item (this item is also referred to as “column”) of these records.
  • the record order UNION view is a view that displays the records constituting the plurality of tables 1000 in the order of records.
  • the value order UNION view is a view that displays each record constituting each of the plurality of tables 1000 in the order of values of a specified item of these records. Details of these views will be described later. Note that creating one view from a plurality of tables 1000 (or views) is also referred to as “UNION” or “virtual UNION”.
  • the record order UNION view and the value order UNION view may be created from the records constituting the table 1000 managed by the same data management apparatus 20, or are managed by different data management apparatuses 20, respectively. It may be created from records constituting the table 1000.
  • different data management devices 20 are distinguished from each other, they are represented as a data management device 20-1, a data management device 20-2, and the like.
  • different tables 1000 are distinguished, they are represented as table 1000-1, table 1000-2, and the like. The same applies when differentiating each different SVL 1100, each different IND 1200, and each different INV 1300.
  • the data management system 1 uses the SVL 1100, IND 1200, and INV 1300 when creating and displaying various views, so that even if the number of records constituting the table 1000 is enormous, Various views can be created and displayed at high speed.
  • the data management system 1 according to the present embodiment uses the SVL 1100, the IND 1200, and the INV 1300 when performing a data search, so that the search can be performed at a high speed and the search result can be obtained with a small data capacity. Will be able to hold.
  • the terminal device 10 and the data management device 20 are shown as different devices. However, the present embodiment is similarly applied even when these devices are integrally configured. Can be applied. Further, the data management device 20 may be realized by, for example, NAS (Network Attached Storage) or the like.
  • NAS Network Attached Storage
  • FIG. 2 is a diagram illustrating an example of a hardware configuration of the computer 500.
  • the computer 500 shown in FIG. 2 includes an input device 501, a display device 502, an external I / F 503, a RAM (Random Access Memory) 504, a ROM (Read Only Memory) 505, a CPU 506, and a communication I / F 507. And an auxiliary storage device 508.
  • Each of these hardware is connected via a bus B so as to be able to communicate.
  • the input device 501 is, for example, a keyboard, a mouse, a touch panel, or the like, and is used for a user to input various operations.
  • the display device 502 is a display, for example, and displays various processing results (for example, various views). Note that the data management device 20 may not include at least one of the input device 501 and the display device 502.
  • External I / F 503 is an interface with an external device.
  • the external device includes a recording medium 503a and the like.
  • the terminal device 10 and the data management device 20 can read and write the recording medium 503a and the like via the external I / F 503.
  • Examples of the recording medium 503a include a flexible disk, a CD (Compact Disc), a DVD (Digital Versatile Disk), an SD memory card (Secure Digital memory card), a USB (Universal Serial Bus) memory card, and the like.
  • the communication I / F 507 is an interface for connecting the computer 500 to the network N.
  • the terminal device 10 and the data management device 20 can perform data communication with other devices via the communication I / F 507.
  • the RAM 504 is a volatile semiconductor memory that temporarily stores programs and data.
  • the ROM 505 is a nonvolatile semiconductor memory that can retain programs and data even when the power is turned off.
  • the ROM 505 stores, for example, OS (Operating System) settings, network settings, and the like.
  • the CPU 506 is an arithmetic device that reads out programs and data from the ROM 505, the auxiliary storage device 508, and the like onto the RAM 504 and executes processing.
  • the auxiliary storage device 508 is, for example, a hard disk drive (HDD) or a solid state drive (SSD), and is a non-volatile storage device that stores programs and data. Examples of the programs and data stored in the auxiliary storage device 508 include an OS and application software that implements various functions on the OS. Note that one or more programs for realizing the display processing unit 100 are stored in the auxiliary storage device 508 of the computer 500 that realizes the terminal device 10. Similarly, the auxiliary storage device 508 of the computer 500 that implements the data management device 20 stores one or more programs that implement the data processing unit 200.
  • HDD hard disk drive
  • SSD solid state drive
  • the terminal device 10 and the data management device 20 according to the present embodiment can implement various processes according to the present embodiment by the hardware configuration of the computer 500 illustrated in FIG.
  • the table 1000 is an electronic file or data composed of one or more data (records).
  • the table number is identification information for identifying at least the table 1000 used for creating and displaying a view.
  • FIG. 3A is stored in, for example, the database 300 of the data management apparatus 20-1
  • the table 1000-2 illustrated in FIG. 3B is, for example, the data management apparatus. It is assumed that it is stored in the database 300 of 20-2. However, the table 1000-1 shown in FIG. 3A and the table 1000-2 shown in FIG. 3B may be stored in the database 300 of the same data management apparatus 20.
  • the table 1000-1 shown in FIG. 3A includes four records, and each record includes an item “Name” and an item “Age”.
  • the table 1000-2 illustrated in FIG. 3B includes four records, and each record includes an item “Name” and an item “Age”.
  • the position is a number indicating a relative position from the first record in each table 1000 (for example, an address (address) of a storage area in which each record is stored).
  • each of the table 1000-1 and the table 1000-2 shown in FIGS. 3A and 3B is composed of four records, but this is an example, and each table 1000-1
  • the number of records that make up is arbitrary.
  • the number of records constituting each table 1000 is generally tens of thousands to hundreds of millions or more.
  • Each record constituting the table 1000-1 and the table 1000-2 shown in FIGS. 3A and 3B has two items, but this is an example. The number of items included in is also arbitrary.
  • FIG. 4A shows a record order view VW1-1 of the table 1000-1 shown in FIG.
  • FIG. 4B is a record order view VW1-2 of the table 1000-2 shown in FIG.
  • the record order view is a view that displays the records constituting the table 1000 in order.
  • the record order view may display the records constituting the table 1000 in reverse order, for example.
  • each record displayed in the record order view VW1 shown in FIG. 4 includes all items of each record constituting the table 1000, but is not limited thereto.
  • the items of each record displayed in the record order view may be some items of each record constituting the table 1000.
  • Other views such as a value order view, a record order UNION view, and a value order UNION view.
  • FIG. 5A shows a value order view VW2-1 regarding the item “Name” of the table 1000-1 shown in FIG.
  • FIG. 5B is a value order view VW2-2 regarding the item “Name” of the table 1000-2 shown in FIG.
  • the item “RecNo” is added to each record of the value order views VW2-1 and VW2-2.
  • the value of the item “RecNo” is the position of the record in the table 1000.
  • the item “RecNo” is added to each record.
  • the position of the record in the table 1000 on which the value order view is based is also managed in the value order view. Therefore, for example, when a desired record is selected from the value order view by the user of the terminal device 10, the display processing unit 100 is based on the value order view based on the value of the item “RecNo” of the selected record.
  • the corresponding record can be acquired from the table 1000.
  • the value of the item “Name” is displayed in alphabetical order (ascending alphabetical order).
  • the value order view is a view that displays a specified item of each record constituting the table 1000 in the order of the value of the item (for example, ascending order (or descending order) or alphabetical order).
  • 5A and 5B show the value order view regarding the item “Name”, the value order view regarding the item “Age” can be considered in the same manner.
  • FIG. 6 shows a record order UNION view VW3 of each record constituting the table 1000-1 shown in FIG. 3A and each record constituting the table 1000-2 shown in FIG.
  • each record configuring the table 1000-2 is displayed after each record configuring the table 1000-1.
  • the position of each record constituting the table 1000-2 is reread.
  • the position of the record is “ m + N ”.
  • the records of positions “0” to “3” in the table 1000-2 shown in FIG. 3B are read as positions “4” to “7” in the record order UNI view VW3 shown in FIG. It has been.
  • each record constituting the table 1000-2 having the table number “1” is displayed after each record constituting the table 1000-1 having the table number “0”.
  • this order may be reversed.
  • the record order UNION view is a view that displays the records constituting each table 1000 in the order of the table number and in the order of the records.
  • FIG. 6 the record order UNION view of two tables 1000 is shown, but the record order UNION view of three or more tables 1000 can be considered in the same manner.
  • FIG. 7 shows a value order UNION view VW4 regarding the item “Name” of each record constituting the table 1000-1 shown in FIG. 3A and each record constituting the table 1000-2 shown in FIG. 3B. It is.
  • an item “RecNo” is added to each record of the value order UNION view VW4.
  • the item “RecNo” is as described above, but the position of each record constituting the table 1000-2 can be read. Specifically, in the same manner as described above, regarding the record constituting the table 1000-2, when the position of the record is m and the number of records constituting the table 1000-1 is N, the record order UNION view VW3 The position of the record is read as “m + N”.
  • the display processing unit 100 displays the value order UNION view based on the value of the item “RecNo” of the selected record.
  • the corresponding record can be acquired from the base table 1000. Details of this method will be described later.
  • the value of the item “Name” is displayed in alphabetical order (ascending alphabetical order). More specifically, in the value order UNION view VW4, items “Name” values, table numbers, and positions in the table 1000 are displayed in order from the highest priority.
  • the value order UNION view displays a specified item of each record constituting each of the plurality of tables 1000 in the order of the value of the item (for example, ascending order (or descending order) or alphabetical order). It is a view.
  • the value order UNION view regarding the item “Name” is shown, but the value order UNION view regarding the item “Age” can be considered similarly.
  • the database 300 stores SVL 1100, IND 1200, and INV 1300 as internal data created from the table 1000. Therefore, hereinafter, regarding the table 1000-1 and the table 1000-2 shown in FIGS. 3A and 3B, the SVL 1100, the IND 1200, and the INV 1300 created from these tables 1000 will be described.
  • FIG. 8A shows a table 1000-1 having a table number “0” and SVL1100-1, IND1200-1 and INV1300-1 created for the item “Name” of each record constituting the table 1000-1. Is shown.
  • FIG. 8B shows a table 1000-2 having a table number “1” and SVL1100-2, IND1200-2, and INV1300- created for the item “Name” of each record constituting the table 1000-2. 2.
  • the position of INV1300-2 is also reread. That is, for example, when the positions “0” to “3” of the table 1000-2 are replaced with the positions “4” to “7”, the positions “0” to “3” of the INV 1300-2 are also respectively illustrated as shown in the figure. It is read as “7”, “5”, “4”, “6”.
  • the SVL 1100 shown in FIG. 8A and FIG. 8B shows the maximum value at the end after setting the value of the item “Name” of each record constituting the table 1000 to unique and ascending order (ascending order of the alphabet). The value “ ⁇ ” is added.
  • IND 1200 shown in FIGS. 8A and 8B stores the start position of INV 1300 corresponding to each element of SVL 1100.
  • the position from the start position corresponding to the element to the one before the start position corresponding to the next element of the SVL 1100 indicates the corresponding position of the INV 1300 for the certain element.
  • the corresponding element of IND1200-1 is “1”.
  • the corresponding element of the IND 1200 is “3”. Therefore, for “Cathy” of the SVL 1100, the position of the corresponding element of the INV 1300-1 is “1” to “2”.
  • each element of IND1200 gives the number of appearances of a value smaller than SVL1100 corresponding to the element.
  • the element of IND1200-1 corresponding to “Emily” of IND1200-1 shown in FIG. 8A is “3”. This indicates that the number of records in which the value of the item “Name” is smaller than “Emily” is “3” in the table 1000-1.
  • INV1300 shown in FIGS. 8A and 8B is a transposed record number.
  • the element corresponding to “Emily” in the SVL 1100-1 is “2”. This indicates that in the table 1000-1, the record whose item “Name” is “Emily” is stored at the position “2”.
  • the elements corresponding to “Cathy” of the SVL 1100-1 are “0” and “3”. This indicates that in the table 1000-1, a record whose item “Name” is “Cathy” is stored at positions “0” and “3”.
  • SVL 1100, IND 1200, and INV 1300 are realized by array data, lists, vector data, and the like.
  • FIG. 8 shows SVL1100, IND1200, and INV1300 created for the item “Name”, but FIG. 9 shows SVL1100, IND1200, and INV1300 created for the item “Age” as another example.
  • FIG. 9A shows a table 1000-1 having a table number “0” and SVL1100-1, IND1200-1 and INV1300-1 created for the item “Age” of each record constituting the table 1000-1.
  • FIG. 9B shows the table 1000-2 with the table number “1” and the SVL1100-2, IND1200-2 and INV1300- created for the item “Age” of each record constituting the table 1000-2. 2. Note that, when the rereading of the position of the record occurs in FIG. 9B, the position of the INV 1300-2 is also reread as described above.
  • the data processing unit 200 extracts each element of the item “Name” from the table 1000-1 and adds an item “RecNo” having a record number as a value to each element. At this time, the record number may be given the same number as the position of each element.
  • Sort By Value The data processing unit 200 sorts by the value of the item “Name” (for example, sorts in ascending order).
  • the data processing unit 200 separates the item “Name” and the item “RecNo” for each element. Each element of the item “RecNo” after the separation becomes INV1300.
  • the data processing unit 200 creates an item “Count” whose value is the number of occurrences of each value of the item “Name” and eliminates the same value from the item “Name”.
  • the data processing unit 200 adds an element whose value is “0” to the head of the item “Count”, and then converts the number of appearances into a cumulative number. Further, the data processing unit 200 adds an element whose value is “ ⁇ ” to the end of the item “Name”. Each element of the item “Name” after performing these processes is SVL1100, and each element of the item “Count” is IND1200.
  • the SVL 1100, IND 1200, and INV 1300 related to the item “Name” are created.
  • the present invention is not limited to this. It may be executed by a device different from the device 20. In particular, after all the processing of S1 to S5 is executed by a device different from the data management device 20, the processing result of this device may be stored in the data management device 20.
  • ⁇ Search method> when the value order view or the value order UNION view is obtained, when searching for desired data from the value order view or the value order UNION view, the search is performed using the known bisection method (binary search method). can do.
  • desired data can be searched at a high speed from the value order view or the value order UNION view, and the search result can be held with a small data capacity.
  • the value order UNION view VW4 shown in FIG. 7 is virtual. Therefore, in order to retrieve each record from the value order UNI view VW4 shown in FIG. 7, it is necessary to call a routine for retrieving a specified row of the value order UNI view VW4. Since “RecNo” returned from this routine has been read, the table 1000 is specified by determining whether it is the table 1000-1 or the table 1000-2 from the value of RecNo, and the read is changed. Return RecNo as a result of It should be noted that the RecNo after the replacement is returned, the table 1000 is used to identify it, and the routine to return the RecNo before the replacement is performed, for example, without following the procedure of returning to the RecNo before the replacement. It may be used.
  • the view representing the search result may be a view in which the records in the hit area are displayed among the records displayed in the value order view or the value order UNION view.
  • a view representing the search result is displayed by the display processing unit 100.
  • the display processing unit 100 can display these views.
  • the display processing unit 100 may create and display a view by acquiring data from the data management device 20, or the data processing unit 200 may generate and create a view by acquiring data from the database 300.
  • the display processing unit 100 may display the view by transmitting the processed view to the display processing unit 100.
  • the display processing unit 100 preferably creates the view.
  • the records are acquired from the value order view VW2-1 shown in FIG. 5A and the value order view VW2-2 shown in FIG. 5B in the following order.
  • the data management system 1 uses the SVL 1100, the IND 1200, and the INV 1300 when creating and displaying various views, so that even if the number of records constituting the table 1000 is enormous. Various views can be created and displayed easily and quickly.
  • the data management system 1 according to the present embodiment uses the SVL 1100, the IND 1200, and the INV 1300 when performing a data search, so that the search can be performed at a high speed and the search result can be obtained with a small data capacity. Will be able to hold.
  • a view in which a plurality of tables 1000 are UNION has been described.
  • JOIN can be used instead of UNION.
  • S4 When calculating the number of occurrences of the value of the corresponding item in Unique & Count, the number of occurrences may be multiplied by the number of occurrences of the matching value in the table 1000 to be joined, to create IND1200 and INV1300.
  • Count_LT searches the SVL 1100 related to the item of the specified item name, and if there is an element that matches the specified value, the position of that element may be i and IND [i] may be acquired.
  • Count_LT searches SVL 1100 related to the item of the specified item name, and if there is no element that matches the specified value, the value of each element of SVL 1100 is larger than the specified value.
  • IND [i] may be obtained by setting i as the position of the element having the minimum value.
  • Count_LE searches the SVL 1100 related to the item of the specified item name, and if there is an element that matches the specified value, the position of the element may be i and IND [i + 1] may be acquired.
  • Count_LE searches SVL 1100 for the item of the specified item name, and if there is no element that matches the specified value, the value of each element of SVL 1100 is greater than the specified value.
  • IND [i] may be obtained by setting i as the position of the element having the minimum value.
  • ⁇ Pos (table number, item name, value) This is a function for obtaining the position where the specified value appears in the SVL 1100 for the item of the specified item name in the table of the specified table number.
  • Pos searches the SVL 1100 related to the item of the specified item name, and if there is an element that matches the specified value, the position of this element may be acquired.
  • Total_Count_LT may be ⁇ Count_LT (Table [i], item name, value), with the table number as Table [i].
  • Total_Count_LE may be ⁇ Count t_LE (Table [i], item name, value) with the table number as Table [i].
  • the table number j can be obtained by obtaining the minimum j satisfying the following expression 1.
  • Table 2 in which the table number j obtained by the above Equation 1 is added to the above Table 1 is shown below.
  • the record number r0 of the record order view is obtained from r, v and j.
  • the number of records 1 can be obtained by the following Expression 2.
  • the position of the table number j in the value order view regarding the table 1000 can be obtained. Therefore, the record number of this table 1000 can be acquired by INV [rj] of the table 1000 of the table number j.
  • the record number is the same as the relative position from the first record in the record order with respect to the table 1000.
  • the record number INV [rj] can be converted into the record number r0 of the value order UNIO view by the following method.
  • the record number INV [rj] of the j-th table 1000 (table 1000 with the table number j) that is the basis of the value order UNION view is the record number constituting the 0th to (j ⁇ 1) -th table 1000.
  • it can be converted into a record number (value of the item “RecNo”) in the value order UNION view.
  • the position (record number) of the record order view regarding the corresponding table 1000 can be obtained from the value (record number) of the item “RecNo” of the value order UNION view.
  • the selected record is acquired from the corresponding table 1000 (the table 1000 in which the selected record is stored). Will be able to.
  • a value-ordered UNION view related to the item “Name”, as shown in FIG. 11, in the value-ordered view of each table 1000, records other than one of the records having the same value of the item “Name” After deletion, a value-ordered UNION view may be created.
  • Count_LT searches the SVL 1100 related to the item of the specified item name, and if there is an element that matches the specified value, the position of the element is i and i can be obtained.
  • Count_LT for example, searches SVL 1100 related to the item of the specified item name, and if there is no element that matches the specified value, the value of each element of SVL 1100 is larger than the specified value.
  • the position of the element having the minimum value may be i and i may be acquired.
  • Count_LE searches the SVL 1100 related to the item of the specified item name, and if there is an element that matches the specified value, the position of the element is i and i + 1 may be acquired.
  • Count_LE searches the SVL 1100 related to the item of the specified item name, and if there is no element that matches the specified value, the value of each element of the SVL 1100 is larger than the specified value.
  • the position of the element having the minimum value may be i and i may be acquired.
  • Application example 2 is an example in which the present embodiment is applied to keyword search.
  • each record constituting the table 1000-1 and the table 1000-2 includes an item “Text”, an item “Keyword”, and an item “RecNo”. It shall have.
  • the item “Text” is a column in which text including a keyword to be searched is stored.
  • the item “Keyword” is a keyword extracted in advance from the text stored in the item “Text”.
  • the record with the record number “1”, the record with the record number “2”, and the record with the record number “3” can be acquired from the table 1000-1 as text including the designated keyword. .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

An information processing system is characterized by having: a storage means that stores a table in which a plurality of records are stored, first array data in which prescribed item values included in each of the plurality of records are stored, second array data in which a record number identifying the records is stored, and third array data associating the first array data and the second array data; and an acquisition means that, in response to a designation of an item value or a record number, uses the first array data, the second array data, and the third array data to acquire one or more records corresponding to the designated item value or record number among the plurality of records stored in the table.

Description

情報処理システム及び情報処理方法Information processing system and information processing method
 本発明は、情報処理システム及び情報処理方法に関する。 The present invention relates to an information processing system and an information processing method.
 B-Treeやハッシュ等のインデックスを用いて、データベースに格納されているデータを検索し、その検索結果を表示する技術が従来から知られている(例えば、特許文献1及び2)。 2. Description of the Related Art Conventionally, a technique for searching data stored in a database using an index such as B-Tree or hash and displaying the search result is known (for example, Patent Documents 1 and 2).
特開2007-25735号公報JP 2007-25735 A 特開平6-335165号公報JP-A-6-335165
 ところで、近年、各種センサ機器や観測機器等の発達により、センシング結果や観測結果等を表す大量のデータが得られるようになった。このため、これらの大量のデータ(いわゆる、ビッグデータ)から所望のデータを検索し、その検索結果を表示することが求められている。 By the way, in recent years, with the development of various sensor devices and observation devices, a large amount of data representing sensing results and observation results can be obtained. For this reason, it is required to search desired data from these large amounts of data (so-called big data) and display the search results.
 しかしながら、ビッグデータは、そのデータサイズのため、転送や集約が困難である。また、ビッグデータから所望のデータを検索するための検索サーバは、一般に、高性能なハードウェアリソースを備えている必要があり、その設置コストが高額になる。更に、高性能なハードウェアリソースを備えている検索サーバを設置した場合、その維持費(例えば、メンテナンスコストや消費電力等)も高額となる。 However, big data is difficult to transfer and aggregate because of its data size. In addition, a search server for searching for desired data from big data generally needs to have high-performance hardware resources, and the installation cost is high. Furthermore, when a search server equipped with high-performance hardware resources is installed, its maintenance cost (for example, maintenance cost, power consumption, etc.) is also expensive.
 このため、ビッグデータの提供側は、検索に関わる高価なハードウェア・ソフトウェアを搭載しない単なるファイルサーバとし、ビッグデータをファイルとして提示する形態にしたい。この場合、維持管理も簡単で、かつ、低コストとなる。 For this reason, the big data provider wants to use a simple file server that does not include expensive hardware and software related to search, and present big data as a file. In this case, the maintenance is easy and the cost is low.
 また、ビッグデータの利用側は、一般的なPC(パーソナルコンピュータ)等とし、ビッグデータ提供側のファイルを自由に組み合わせて検索し、その検索結果を表示することができるようにしたい。 Also, the Big Data usage side is a general PC (personal computer), etc., and we want to be able to search by combining the Big Data provider's files freely and display the search results.
 本発明は、上記の点に鑑みてなされたもので、ビッグデータの利用側がインターネット等のネットワーク上に分散した複数のビッグデータのファイルを自由に組み合わせ、所望のデータを容易に検索及び表示できるようにする。 The present invention has been made in view of the above points, and enables a user of big data to freely combine a plurality of big data files distributed on a network such as the Internet and easily search and display desired data. To.
 上記課題を解決するために、本発明の実施の形態は、複数のレコードが格納されたテーブルと、該複数のレコードそれぞれに含まれる所定の項目値が格納された第1の配列データと、前記レコードを識別するレコード番号が格納された第2の配列データと、前記第1の配列データと前記第2の配列データとを対応付ける第3の配列データとを記憶する記憶手段と、前記項目値又は前記レコード番号の指定に応じて、前記第1の配列データと前記第2の配列データと前記第3の配列データを用いて、前記テーブルに格納されている複数のレコードのうち、指定された前記項目値又は前記レコード番号に対応する1以上のレコードを取得する取得手段と、を有することを特徴とする。 In order to solve the above problems, an embodiment of the present invention includes a table storing a plurality of records, first array data storing predetermined item values included in each of the plurality of records, Storage means for storing second array data in which a record number for identifying a record is stored, and third array data that associates the first array data with the second array data, and the item value or In response to the designation of the record number, the first array data, the second array data, and the third array data are used to specify the specified record among the plurality of records stored in the table. Obtaining means for obtaining one or more records corresponding to the item value or the record number.
 ビッグデータの利用側がインターネット等のネットワーク上に分散した複数のビッグデータのファイルを自由に組み合わせ、所望のデータを容易に検索及び表示できる。 Big data users can freely combine multiple big data files distributed over a network such as the Internet to easily search and display desired data.
本発明の実施の形態におけるデータ管理システムの全体構成の一例を示す図である。It is a figure which shows an example of the whole structure of the data management system in embodiment of this invention. コンピュータのハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware constitutions of a computer. テーブルの一例を示す図である。It is a figure which shows an example of a table. レコード順ビューの一例を示す図である。It is a figure which shows an example of a record order view. 値順ビューの一例を示す図である。It is a figure which shows an example of a value order view. レコード順UNIONビューの一例を示す図である。It is a figure which shows an example of a record order UNION view. 値順UNIONビューの一例を示す図である。It is a figure which shows an example of a value order UNION view. 内部的なデータ構造の一例を示す図(その1)である。FIG. 3 is a diagram (part 1) illustrating an example of an internal data structure; 内部的なデータ構造の一例を示す図(その2)である。It is FIG. (2) which shows an example of an internal data structure. SVL、IND及びINVの作成方法の一例を説明するための図である。It is a figure for demonstrating an example of the production method of SVL, IND, and INV. 応用例1を説明するための図である。10 is a diagram for explaining an application example 1. FIG. 応用例2を説明するための図である。FIG. 10 is a diagram for explaining an application example 2;
 以下、本発明の実施の形態(以降、「本実施形態」とも表す。)について説明する。以降では、データベースに格納されているデータを表示及び検索するデータ管理システム1について説明する。 Hereinafter, embodiments of the present invention (hereinafter also referred to as “present embodiments”) will be described. Hereinafter, the data management system 1 that displays and retrieves data stored in the database will be described.
 <全体構成>
 まず、本実施形態に係るデータ管理システム1の全体構成について、図1を参照しながら説明する。図1は、本発明の実施の形態におけるデータ管理システム1の全体構成の一例を示す図である。
<Overall configuration>
First, the overall configuration of the data management system 1 according to the present embodiment will be described with reference to FIG. FIG. 1 is a diagram showing an example of the overall configuration of a data management system 1 according to an embodiment of the present invention.
 図1に示すように、本実施形態に係るデータ管理システム1には、1以上の端末装置10と、1以上のデータ管理装置20とが含まれる。また、端末装置10とデータ管理装置20とは、例えばインターネットやLAN(Local Area Network)、電話回線網等のネットワークNを介して通信可能に接続される。 As shown in FIG. 1, the data management system 1 according to the present embodiment includes one or more terminal devices 10 and one or more data management devices 20. Further, the terminal device 10 and the data management device 20 are communicably connected via a network N such as the Internet, a LAN (Local Area Network), or a telephone line network.
 端末装置10は、ビッグデータの利用側であるユーザが操作するPC等の情報処理装置(コンピュータ)である。ユーザは、端末装置10を操作して、データ管理装置20が管理するデータの表示及び検索を行うことができる。 The terminal device 10 is an information processing device (computer) such as a PC that is operated by a user who uses big data. The user can display and search data managed by the data management device 20 by operating the terminal device 10.
 端末装置10は、データ管理装置20が管理するデータを表示及び検索するための表示処理部100を有する。表示処理部100は、例えば、端末装置10にインストールされた1以上のプログラムがCPU(Central Processing Unit)に実行させる処理により実現される。 The terminal device 10 includes a display processing unit 100 for displaying and retrieving data managed by the data management device 20. The display processing unit 100 is realized by, for example, a process in which one or more programs installed in the terminal device 10 are executed by a CPU (Central Processing Unit).
 表示処理部100は、ユーザの操作に応じて、データ管理装置20が管理するデータのビューを作成及び表示する。また、表示処理部100は、或るビューから所望のデータを検索し、この検索結果を表示する。ビューとは、1つ又は複数のテーブル(又は他のビュー)から任意に選択したデータを表す表示用の情報である。テーブル(又は表)とは、1以上のデータで構成される情報である。また、データ検索とは、或るビューを構成する各データの或る項目について、その項目の値の範囲(例えば、=、<、>、between等)を指定することで、当該ビューから所望のデータを抽出することである。したがって、或るビューからデータ検索を行った結果もビューとなる。このため、後述するレコード順ビューや値順ビュー、レコード順UNIONビュー、値順UNIONビューは、1つ以上のテーブル1000を構成する全てのレコードによって作成されるビューと言うことができる一方で、データ検索の検索結果は、これらのビューの一部のレコードが表示されたビューと言うことができる。 The display processing unit 100 creates and displays a view of data managed by the data management apparatus 20 in accordance with a user operation. Further, the display processing unit 100 searches for desired data from a certain view and displays the search result. A view is display information representing data arbitrarily selected from one or a plurality of tables (or other views). A table (or table) is information composed of one or more data. In addition, data search means that a certain item of each data constituting a certain view is designated from the view by specifying a range of values of the item (for example, =, <,>, between, etc.). Extracting data. Therefore, the result of data retrieval from a certain view is also a view. For this reason, a record order view, a value order view, a record order UNION view, and a value order UNION view, which will be described later, can be said to be views created by all the records constituting one or more tables 1000, while data The search result of the search can be said to be a view in which some records of these views are displayed.
 端末装置10は、PCに限られず、例えば、スマートフォンやタブレット端末等の種々の情報処理装置であっても良い。 The terminal device 10 is not limited to a PC, and may be various information processing devices such as a smartphone and a tablet terminal.
 データ管理装置20は、ビッグデータの提供側が種々のデータを管理するデータベースサーバ等の情報処理装置(コンピュータ)である。データ管理装置20は、各種データを管理するデータ処理部200と、各種データが格納されたデータベース300とを有する。データ処理部200は、例えば、データ管理装置20にインストールされた1以上のプログラムがCPUに実行させる処理により実現される。また、データベース300は、例えば、補助記憶装置等により実現可能である。 The data management device 20 is an information processing device (computer) such as a database server on which the big data provider manages various data. The data management device 20 includes a data processing unit 200 that manages various data, and a database 300 that stores various data. The data processing unit 200 is realized, for example, by a process that the CPU executes by one or more programs installed in the data management device 20. The database 300 can be realized by, for example, an auxiliary storage device.
 データ処理部200は、端末装置10からの要求に応じて、データベース300に格納されているデータのうち、該当のデータを当該端末装置10に送信する。これにより、端末装置10では、ビューが作成及び表示されたり、検索結果が表示されたりする。 The data processing unit 200 transmits the corresponding data among the data stored in the database 300 to the terminal device 10 in response to a request from the terminal device 10. Thereby, in the terminal device 10, a view is created and displayed, or a search result is displayed.
 ここで、データベース300には、1以上のデータで構成されるテーブル1000と、ビューの作成やデータ検索に用いられるSVL(Sorted Value List)1100、IND(Indirect Record Index)1200及びINV(Inverted Record Index)1300とが格納されている。SVL1100と、IND1200と、INV1300とは、テーブル1000を構成する各レコードの或る項目に関して作成される内部的なデータである。これらのデータの詳細については後述する。 Here, the database 300 includes a table 1000 composed of one or more data, an SVL (Sorted Value List) 1100, an IND (Indirect Record Index) 1200, and an INV (Inverted Record Index) used for view creation and data retrieval. ) 1300 is stored. SVL 1100, IND 1200, and INV 1300 are internal data created with respect to a certain item of each record constituting table 1000. Details of these data will be described later.
 本実施形態に係る端末装置10の表示処理部100が表示するビューには、レコード順ビューと、値順ビューと、レコード順UNIONビューと、値順UNIONビューとが存在する。レコード順ビューとは、テーブル1000を構成する各データ(このデータは「レコード」とも称される。)をレコード番号順に表示するビューである。値順ビューは、テーブル1000を構成する各レコードを、これらのレコードの或る指定された項目(この項目は「カラム」とも称される。)の値順に表示するビューである。レコード順UNIONビューは、複数のテーブル1000をそれぞれ構成する各レコードをレコード順に表示するビューである。値順UNIONビューは、複数のテーブル1000をそれぞれ構成する各レコードを、これらのレコードの或る指定された項目の値順に表示するビューである。これらのビューの詳細については後述する。なお、複数のテーブル1000(又はビュー)から1つのビューを作成することを「UNION」又は「仮想(Virtual)UNION」とも称する。 The views displayed by the display processing unit 100 of the terminal device 10 according to the present embodiment include a record order view, a value order view, a record order UNION view, and a value order UNION view. The record order view is a view that displays each data constituting the table 1000 (this data is also referred to as “record”) in order of record number. The value order view is a view that displays the records constituting the table 1000 in the order of values of a specified item (this item is also referred to as “column”) of these records. The record order UNION view is a view that displays the records constituting the plurality of tables 1000 in the order of records. The value order UNION view is a view that displays each record constituting each of the plurality of tables 1000 in the order of values of a specified item of these records. Details of these views will be described later. Note that creating one view from a plurality of tables 1000 (or views) is also referred to as “UNION” or “virtual UNION”.
 このとき、レコード順UNIONビュー及び値順UNIONビューは、同一のデータ管理装置20で管理されているテーブル1000を構成するレコードから作成されても良いし、異なるデータ管理装置20でそれぞれ管理されているテーブル1000を構成するレコードから作成されても良い。以降では、異なるデータ管理装置20の各々を区別するときは、データ管理装置20-1、データ管理装置20-2等と表す。同様に、異なるテーブル1000の各々を区別するときは、テーブル1000-1、テーブル1000-2等と表す。異なるSVL1100の各々、異なるIND1200の各々、異なるINV1300の各々を区別するときも同様である。 At this time, the record order UNION view and the value order UNION view may be created from the records constituting the table 1000 managed by the same data management apparatus 20, or are managed by different data management apparatuses 20, respectively. It may be created from records constituting the table 1000. Hereinafter, when different data management devices 20 are distinguished from each other, they are represented as a data management device 20-1, a data management device 20-2, and the like. Similarly, when different tables 1000 are distinguished, they are represented as table 1000-1, table 1000-2, and the like. The same applies when differentiating each different SVL 1100, each different IND 1200, and each different INV 1300.
 本実施形態に係るデータ管理システム1は、各種ビューを作成及び表示する際に、SVL1100と、IND1200と、INV1300とを用いることで、テーブル1000を構成するレコード数が膨大であっても、容易かつ高速に各種ビューを作成及び表示することができるようになる。また、本実施形態に係るデータ管理システム1は、データ検索を行う際に、SVL1100と、IND1200と、INV1300とを用いることで、高速に検索を行うことができると共に、検索結果を少ないデータ容量で保持することができるようになる。 The data management system 1 according to the present embodiment uses the SVL 1100, IND 1200, and INV 1300 when creating and displaying various views, so that even if the number of records constituting the table 1000 is enormous, Various views can be created and displayed at high speed. In addition, the data management system 1 according to the present embodiment uses the SVL 1100, the IND 1200, and the INV 1300 when performing a data search, so that the search can be performed at a high speed and the search result can be obtained with a small data capacity. Will be able to hold.
 なお、図1に示す例では、端末装置10とデータ管理装置20とが異なる装置である場合を示したが、これらの装置が一体で構成されている場合であっても本実施形態を同様に適用することができる。また、データ管理装置20は、例えば、NAS(Network Attached Storage)等により実現されていても良い。 In the example shown in FIG. 1, the terminal device 10 and the data management device 20 are shown as different devices. However, the present embodiment is similarly applied even when these devices are integrally configured. Can be applied. Further, the data management device 20 may be realized by, for example, NAS (Network Attached Storage) or the like.
 <ハードウェア構成>
 次に、本実施形態に係る端末装置10及びデータ管理装置20を実現する1台以上のコンピュータのハードウェア構成について、図2を参照しながら説明する。図2は、コンピュータ500のハードウェア構成の一例を示す図である。
<Hardware configuration>
Next, the hardware configuration of one or more computers that implement the terminal device 10 and the data management device 20 according to the present embodiment will be described with reference to FIG. FIG. 2 is a diagram illustrating an example of a hardware configuration of the computer 500.
 図2に示すコンピュータ500は、入力装置501と、表示装置502と、外部I/F503と、RAM(Random Access Memory)504と、ROM(Read Only Memory)505と、CPU506と、通信I/F507と、補助記憶装置508とを有する。これら各ハードウェアは、それぞれがバスBを介して通信可能に接続されている。 The computer 500 shown in FIG. 2 includes an input device 501, a display device 502, an external I / F 503, a RAM (Random Access Memory) 504, a ROM (Read Only Memory) 505, a CPU 506, and a communication I / F 507. And an auxiliary storage device 508. Each of these hardware is connected via a bus B so as to be able to communicate.
 入力装置501は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置502は、例えばディスプレイ等であり、各種の処理結果(例えば、各種ビュー等)を表示する。なお、データ管理装置20は、入力装置501及び表示装置502のうちの少なくとも一方を有していなくても良い。 The input device 501 is, for example, a keyboard, a mouse, a touch panel, or the like, and is used for a user to input various operations. The display device 502 is a display, for example, and displays various processing results (for example, various views). Note that the data management device 20 may not include at least one of the input device 501 and the display device 502.
 外部I/F503は、外部装置とのインタフェースである。外部装置には、記録媒体503a等がある。端末装置10及びデータ管理装置20は、外部I/F503を介して記録媒体503a等の読み取りや書き込み等を行うことができる。 External I / F 503 is an interface with an external device. The external device includes a recording medium 503a and the like. The terminal device 10 and the data management device 20 can read and write the recording medium 503a and the like via the external I / F 503.
 記録媒体503aには、例えば、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disk)、SDメモリカード(Secure Digital memory card)、USB(Universal Serial Bus)メモリカード等がある。 Examples of the recording medium 503a include a flexible disk, a CD (Compact Disc), a DVD (Digital Versatile Disk), an SD memory card (Secure Digital memory card), a USB (Universal Serial Bus) memory card, and the like.
 通信I/F507は、コンピュータ500をネットワークNに接続するためのインタフェースである。端末装置10及びデータ管理装置20は、通信I/F507を介して他の装置とデータ通信を行うことができる。 The communication I / F 507 is an interface for connecting the computer 500 to the network N. The terminal device 10 and the data management device 20 can perform data communication with other devices via the communication I / F 507.
 RAM504は、プログラムやデータを一時保持する揮発性の半導体メモリである。ROM505は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。ROM505には、例えば、OS(Operating System)設定やネットワーク設定等が格納されている。 The RAM 504 is a volatile semiconductor memory that temporarily stores programs and data. The ROM 505 is a nonvolatile semiconductor memory that can retain programs and data even when the power is turned off. The ROM 505 stores, for example, OS (Operating System) settings, network settings, and the like.
 CPU506は、ROM505や補助記憶装置508等からプログラムやデータをRAM504上に読み出して処理を実行する演算装置である。 The CPU 506 is an arithmetic device that reads out programs and data from the ROM 505, the auxiliary storage device 508, and the like onto the RAM 504 and executes processing.
 補助記憶装置508は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等であり、プログラムやデータを格納している不揮発性の記憶装置である。補助記憶装置508に格納されているプログラムやデータには、例えば、OS、当該OS上で各種機能を実現するアプリケーションソフトウェア等がある。なお、端末装置10を実現するコンピュータ500の補助記憶装置508には、上記の表示処理部100を実現する1以上のプログラムが格納されている。同様に、データ管理装置20を実現するコンピュータ500の補助記憶装置508には、上記のデータ処理部200を実現する1以上のプログラムが格納されている。 The auxiliary storage device 508 is, for example, a hard disk drive (HDD) or a solid state drive (SSD), and is a non-volatile storage device that stores programs and data. Examples of the programs and data stored in the auxiliary storage device 508 include an OS and application software that implements various functions on the OS. Note that one or more programs for realizing the display processing unit 100 are stored in the auxiliary storage device 508 of the computer 500 that realizes the terminal device 10. Similarly, the auxiliary storage device 508 of the computer 500 that implements the data management device 20 stores one or more programs that implement the data processing unit 200.
 本実施形態に係る端末装置10及びデータ管理装置20は、図2に示すコンピュータ500のハードウェア構成により、本実施形態に係る各種処理を実現することができる。 The terminal device 10 and the data management device 20 according to the present embodiment can implement various processes according to the present embodiment by the hardware configuration of the computer 500 illustrated in FIG.
 <テーブル>
 ここで、本実施形態では、図3(a)に示すテーブル1000-1と、図3(b)に示すテーブル1000-2とを用いて、各ビューを表示する場合について説明する。以降では、図3(a)に示すテーブル1000-1のテーブル番号を「0」、図3(b)に示すテーブル1000-2のテーブル番号を「1」とする。なお、テーブル1000とは、1以上のデータ(レコード)で構成される電子ファイル又はデータのことである。また、テーブル番号とは、少なくともビューの作成及び表示に用いられるテーブル1000を識別する識別情報である。
<Table>
Here, in the present embodiment, a case where each view is displayed using the table 1000-1 shown in FIG. 3A and the table 1000-2 shown in FIG. 3B will be described. Hereinafter, it is assumed that the table number of the table 1000-1 shown in FIG. 3A is “0” and the table number of the table 1000-2 shown in FIG. 3B is “1”. The table 1000 is an electronic file or data composed of one or more data (records). The table number is identification information for identifying at least the table 1000 used for creating and displaying a view.
 図3(a)に示すテーブル1000-1は、例えば、データ管理装置20-1のデータベース300に格納されている一方で、図3(b)に示すテーブル1000-2は、例えば、データ管理装置20-2のデータベース300に格納されているものとする。ただし、図3(a)に示すテーブル1000-1と、図3(b)に示すテーブル1000-2とが同一のデータ管理装置20のデータベース300に格納されていても良い。 3A is stored in, for example, the database 300 of the data management apparatus 20-1, while the table 1000-2 illustrated in FIG. 3B is, for example, the data management apparatus. It is assumed that it is stored in the database 300 of 20-2. However, the table 1000-1 shown in FIG. 3A and the table 1000-2 shown in FIG. 3B may be stored in the database 300 of the same data management apparatus 20.
 図3(a)に示すテーブル1000-1は4件のレコードで構成されており、各レコードには項目「Name」と項目「Age」とが含まれる。同様に、図3(b)に示すテーブル1000-2は4件のレコードで構成されており、各レコードには項目「Name」と項目「Age」とが含まれる。位置は、各テーブル1000において、先頭レコードからの相対的な位置を示す番号(例えば、各レコードが記憶されている記憶領域の番地(アドレス)等)のことである。 The table 1000-1 shown in FIG. 3A includes four records, and each record includes an item “Name” and an item “Age”. Similarly, the table 1000-2 illustrated in FIG. 3B includes four records, and each record includes an item “Name” and an item “Age”. The position is a number indicating a relative position from the first record in each table 1000 (for example, an address (address) of a storage area in which each record is stored).
 なお、図3(a)及び図3(b)にそれぞれ示すテーブル1000-1及びテーブル1000-2は、いずれも4件のレコードで構成されているが、これは一例であって、各テーブル1000を構成するレコードの件数は任意である。ビッグデータを扱う場合には、各テーブル1000を構成するレコードの件数は、一般に、数万から数億以上となることが多い。また、図3(a)及び図3(b)にそれぞれ示すテーブル1000-1及びテーブル1000-2を構成する各レコードは2つの項目を有しているが、これは一例であって、各レコードが有する項目数も任意である。 Note that each of the table 1000-1 and the table 1000-2 shown in FIGS. 3A and 3B is composed of four records, but this is an example, and each table 1000-1 The number of records that make up is arbitrary. When handling big data, the number of records constituting each table 1000 is generally tens of thousands to hundreds of millions or more. Each record constituting the table 1000-1 and the table 1000-2 shown in FIGS. 3A and 3B has two items, but this is an example. The number of items included in is also arbitrary.
 <各ビュー>
 次に、図3(a)及び図3(b)にそれぞれ示すテーブル1000-1及びテーブル1000-2を用いた場合における各ビューについて説明する。
<Each view>
Next, each view in the case where the table 1000-1 and the table 1000-2 shown in FIGS. 3A and 3B are used will be described.
  ≪レコード順ビュー≫
 図4(a)は、図3(a)に示すテーブル1000-1のレコード順ビューVW1-1である。また、図4(b)は、図3(b)に示すテーブル1000-2のレコード順ビューVW1-2である。
≪Record order view≫
FIG. 4A shows a record order view VW1-1 of the table 1000-1 shown in FIG. FIG. 4B is a record order view VW1-2 of the table 1000-2 shown in FIG.
 このように、レコード順ビューは、テーブル1000を構成する各レコードの順で表示するビューである。ただし、レコード順ビューは、例えば、テーブル1000を構成する各レコードを逆順で表示するものであっても良い。 As described above, the record order view is a view that displays the records constituting the table 1000 in order. However, the record order view may display the records constituting the table 1000 in reverse order, for example.
 なお、図4に示すレコード順ビューVW1に表示されている各レコードでは、テーブル1000を構成する各レコードの全ての項目が含まれているが、これに限られない。レコード順ビューに表示される各レコードの項目は、テーブル1000を構成する各レコードの一部の項目であっても良い。このことは、値順ビューやレコード順UNIONビュー、値順UNIONビュー等の他のビューについても同様である。 It should be noted that each record displayed in the record order view VW1 shown in FIG. 4 includes all items of each record constituting the table 1000, but is not limited thereto. The items of each record displayed in the record order view may be some items of each record constituting the table 1000. The same applies to other views such as a value order view, a record order UNION view, and a value order UNION view.
  ≪値順ビュー≫
 図5(a)は、図3(a)に示すテーブル1000-1の項目「Name」に関する値順ビューVW2-1である。また、図5(b)は、図3(b)に示すテーブル1000-2の項目「Name」に関する値順ビューVW2-2である。
≪Value order view≫
FIG. 5A shows a value order view VW2-1 regarding the item “Name” of the table 1000-1 shown in FIG. FIG. 5B is a value order view VW2-2 regarding the item “Name” of the table 1000-2 shown in FIG.
 図5(a)及び図5(b)に示すように、値順ビューVW2-1及びVW2-2の各レコードには、項目「RecNo」が追加される。項目「RecNo」の値は、テーブル1000におけるレコードの位置である。このように、値順ビューでは、各レコードに対して項目「RecNo」を追加される。これにより、この値順ビューの基になったテーブル1000における当該レコードの位置が値順ビューでも管理される。したがって、例えば、端末装置10のユーザにより値順ビューから所望のレコードが選択された場合、表示処理部100は、選択されたレコードの項目「RecNo」の値に基づいて、値順ビューの基になったテーブル1000から該当のレコードを取得することができるようになる。 As shown in FIGS. 5A and 5B, the item “RecNo” is added to each record of the value order views VW2-1 and VW2-2. The value of the item “RecNo” is the position of the record in the table 1000. Thus, in the value order view, the item “RecNo” is added to each record. As a result, the position of the record in the table 1000 on which the value order view is based is also managed in the value order view. Therefore, for example, when a desired record is selected from the value order view by the user of the terminal device 10, the display processing unit 100 is based on the value order view based on the value of the item “RecNo” of the selected record. The corresponding record can be acquired from the table 1000.
 例えば、図5(a)に示す値順ビューVW2-1の位置「0」のレコードには、項目「RecNo」の値として、「1」が追加されている。これは、図5(a)に示す値順ビューVW2-1の位置「0」のレコードは、図3(a)に示すテーブル1000-1では位置「1」にあるレコードであることを示している。他のレコードの項目「RecNo」の値についても同様である。 For example, “1” is added as the value of the item “RecNo” to the record at position “0” in the value order view VW2-1 shown in FIG. This indicates that the record at position “0” in the value order view VW2-1 shown in FIG. 5A is the record at position “1” in the table 1000-1 shown in FIG. Yes. The same applies to the value of the item “RecNo” of other records.
 また、値順ビューVW2-1及び値順ビューVW2-2では、項目「Name」の値について、それぞれアルファベット順(アルファベットの昇順)で表示されている。 In the value order view VW2-1 and the value order view VW2-2, the value of the item “Name” is displayed in alphabetical order (ascending alphabetical order).
 このように、値順ビューは、テーブル1000を構成する各レコードの或る指定された項目について、当該項目の値順(例えば、昇順(又は降順)やアルファベット順等)で表示するビューである。なお、図5(a)及び図5(b)では、項目「Name」に関する値順ビューを示したが、項目「Age」に関する値順ビューも同様に考えることができる。 In this way, the value order view is a view that displays a specified item of each record constituting the table 1000 in the order of the value of the item (for example, ascending order (or descending order) or alphabetical order). 5A and 5B show the value order view regarding the item “Name”, the value order view regarding the item “Age” can be considered in the same manner.
  ≪レコード順UNIONビュー≫
 図6は、図3(a)に示すテーブル1000-1を構成する各レコードと、図3(b)に示すテーブル1000-2を構成する各レコードとのレコード順UNIONビューVW3である。
≪Record order UNION view≫
FIG. 6 shows a record order UNION view VW3 of each record constituting the table 1000-1 shown in FIG. 3A and each record constituting the table 1000-2 shown in FIG.
 図6に示すように、レコード順UNIONビューVW3では、テーブル1000-1を構成する各レコードの後に、テーブル1000-2を構成する各レコードが表示される。このとき、レコード順UNIONビューVW3では、テーブル1000-2を構成する各レコードの位置を読み替える。具体的には、テーブル1000-2を構成するレコードについて、当該レコードの位置をm、テーブル1000-1を構成するレコード数をNとした場合、レコード順UNIONビューVW3では、当該レコードの位置が「m+N」に読み替えられる。これにより、図3(b)に示すテーブル1000-2の位置「0」~「3」の各レコードは、図6に示すレコード順UNIONビューVW3では、位置「4」~位置「7」に読み替えられている。 As shown in FIG. 6, in the record order UNION view VW3, each record configuring the table 1000-2 is displayed after each record configuring the table 1000-1. At this time, in the record order UNION view VW3, the position of each record constituting the table 1000-2 is reread. Specifically, for a record constituting the table 1000-2, when the position of the record is m and the number of records constituting the table 1000-1 is N, in the record order UNI view VW3, the position of the record is “ m + N ”. As a result, the records of positions “0” to “3” in the table 1000-2 shown in FIG. 3B are read as positions “4” to “7” in the record order UNI view VW3 shown in FIG. It has been.
 なお、図6に示すレコード順UNIONビューVW3では、テーブル番号「0」のテーブル1000-1を構成する各レコードの後に、テーブル番号「1」のテーブル1000-2を構成する各レコードが表示されているが、この順は逆であっても良い。 In the record order UNI view VW3 shown in FIG. 6, each record constituting the table 1000-2 having the table number “1” is displayed after each record constituting the table 1000-1 having the table number “0”. However, this order may be reversed.
 このように、レコード順UNIONビューは、各テーブル1000をそれぞれ構成するレコードを、テーブル番号順かつレコード順に表示するビューである。なお、図6に示すでは、2つのテーブル1000のレコード順UNIONビューを示したが、3つ以上のテーブル1000のレコード順UNIONビューも同様に考えることができる。 As described above, the record order UNION view is a view that displays the records constituting each table 1000 in the order of the table number and in the order of the records. In FIG. 6, the record order UNION view of two tables 1000 is shown, but the record order UNION view of three or more tables 1000 can be considered in the same manner.
  ≪値順UNIONビュー≫
 図7は、図3(a)に示すテーブル1000-1を構成する各レコードと、図3(b)に示すテーブル1000-2を構成する各レコードとの項目「Name」に関する値順UNIONビューVW4である。
≪UNION view in order of value≫
FIG. 7 shows a value order UNION view VW4 regarding the item “Name” of each record constituting the table 1000-1 shown in FIG. 3A and each record constituting the table 1000-2 shown in FIG. 3B. It is.
 図7に示すように、値順UNIONビューVW4の各レコードには、項目「RecNo」が追加される。項目「RecNo」は、上述した通りであるが、テーブル1000-2を構成する各レコードの位置は読み替えられる。具体的には、上記と同様に、テーブル1000-2を構成するレコードについて、当該レコードの位置をm、テーブル1000-1を構成するレコード数をNとした場合、レコード順UNIONビューVW3では、当該レコードの位置が「m+N」に読み替えられる。 As shown in FIG. 7, an item “RecNo” is added to each record of the value order UNION view VW4. The item “RecNo” is as described above, but the position of each record constituting the table 1000-2 can be read. Specifically, in the same manner as described above, regarding the record constituting the table 1000-2, when the position of the record is m and the number of records constituting the table 1000-1 is N, the record order UNION view VW3 The position of the record is read as “m + N”.
 したがって、例えば、端末装置10のユーザにより値順UNIONビューから所望のレコードが選択された場合、表示処理部100は、選択されたレコードの項目「RecNo」の値に基づいて、値順UNIONビューの基になったテーブル1000から該当のレコードを取得することができるようになる。この方法の詳細については後述する。 Therefore, for example, when the user of the terminal device 10 selects a desired record from the value order UNION view, the display processing unit 100 displays the value order UNION view based on the value of the item “RecNo” of the selected record. The corresponding record can be acquired from the base table 1000. Details of this method will be described later.
 また、値順UNIONビューVW4では、項目「Name」の値について、それぞれアルファベット順(アルファベットの昇順)で表示されている。より詳細には、値順UNIONビューVW4では、優先順位の高い順に、項目「Name」の値、テーブル番号、テーブル1000の位置の順に表示されている。 Also, in the value order UNION view VW4, the value of the item “Name” is displayed in alphabetical order (ascending alphabetical order). More specifically, in the value order UNION view VW4, items “Name” values, table numbers, and positions in the table 1000 are displayed in order from the highest priority.
 このように、値順UNIONビューは、複数のテーブル1000をそれぞれ構成する各レコードの或る指定された項目について、当該項目の値順(例えば、昇順(又は降順)やアルファベット順等)で表示するビューである。なお、図7では、項目「Name」に関する値順UNIONビューを示したが、項目「Age」に関する値順UNIONビューも同様に考えることができる。 In this way, the value order UNION view displays a specified item of each record constituting each of the plurality of tables 1000 in the order of the value of the item (for example, ascending order (or descending order) or alphabetical order). It is a view. In FIG. 7, the value order UNION view regarding the item “Name” is shown, but the value order UNION view regarding the item “Age” can be considered similarly.
 <内部的なデータ構造>
 次に、データ管理装置20のデータベース300の内部的なデータ構造について説明する。上述したように、データベース300には、テーブル1000から作成される内部的なデータとして、SVL1100と、IND1200と、INV1300とが格納されている。そこで、以降では、図3(a)及び図3(b)にそれぞれ示すテーブル1000-1及びテーブル1000-2について、これらのテーブル1000から作成されたSVL1100と、IND1200と、INV1300とについて説明する。
<Internal data structure>
Next, an internal data structure of the database 300 of the data management apparatus 20 will be described. As described above, the database 300 stores SVL 1100, IND 1200, and INV 1300 as internal data created from the table 1000. Therefore, hereinafter, regarding the table 1000-1 and the table 1000-2 shown in FIGS. 3A and 3B, the SVL 1100, the IND 1200, and the INV 1300 created from these tables 1000 will be described.
 図8(a)は、テーブル番号「0」のテーブル1000-1と、このテーブル1000-1を構成する各レコードの項目「Name」に関して作成されたSVL1100-1、IND1200-1及びINV1300-1とを示している。 FIG. 8A shows a table 1000-1 having a table number “0” and SVL1100-1, IND1200-1 and INV1300-1 created for the item “Name” of each record constituting the table 1000-1. Is shown.
 また、図8(b)は、テーブル番号「1」のテーブル1000-2と、このテーブル1000-2を構成する各レコードの項目「Name」に関して作成されたSVL1100-2、IND1200-2及びINV1300-2とを示している。ここで、レコードの位置の読み替えが発生する場合(すなわち、他のテーブル1000とUNIONする場合)には、INV1300-2の位置も読み替えられる。すなわち、例えば、テーブル1000-2の位置「0」~「3」がそれぞれ位置「4」~「7」に読み替えられる場合、INV1300-2の位置「0」~「3」も図示のようにそれぞれ「7」、「5」、「4」、「6」に読み替えられる。 FIG. 8B shows a table 1000-2 having a table number “1” and SVL1100-2, IND1200-2, and INV1300- created for the item “Name” of each record constituting the table 1000-2. 2. Here, when rereading of the position of the record occurs (that is, when unioning with another table 1000), the position of INV1300-2 is also reread. That is, for example, when the positions “0” to “3” of the table 1000-2 are replaced with the positions “4” to “7”, the positions “0” to “3” of the INV 1300-2 are also respectively illustrated as shown in the figure. It is read as “7”, “5”, “4”, “6”.
 図8(a)及び図8(b)に示すSVL1100は、テーブル1000を構成する各レコードの項目「Name」の値をユニーク及び昇順(アルファベットの昇順)にした上で、最後に最大値を示す値「∞」を追加したものである。 The SVL 1100 shown in FIG. 8A and FIG. 8B shows the maximum value at the end after setting the value of the item “Name” of each record constituting the table 1000 to unique and ascending order (ascending order of the alphabet). The value “∞” is added.
 図8(a)及び図8(b)に示すIND1200は、SVL1100の各要素に対応するINV1300の開始位置が格納されたものである。SVL1100の或る要素ついて、当該要素に対応する開始位置から、SVL1100の次の要素に対応する開始位置の1つ前までが、当該或る要素についてのINV1300の対応する位置を示している。例えば、SVL1100-1の「Cathy」については、IND1200-1の対応する要素は「1」である。一方で、SVL1100-1の「Cathy」の次の要素「Emily」については、IND1200の対応する要素は「3」である。したがって、SVL1100の「Cathy」については、INV1300-1の対応する要素の位置は「1」から「2」までとなる。 IND 1200 shown in FIGS. 8A and 8B stores the start position of INV 1300 corresponding to each element of SVL 1100. For a certain element of the SVL 1100, the position from the start position corresponding to the element to the one before the start position corresponding to the next element of the SVL 1100 indicates the corresponding position of the INV 1300 for the certain element. For example, for “Cathy” of SVL1100-1, the corresponding element of IND1200-1 is “1”. On the other hand, for the element “Emily” next to “Cathy” of the SVL 1100-1, the corresponding element of the IND 1200 is “3”. Therefore, for “Cathy” of the SVL 1100, the position of the corresponding element of the INV 1300-1 is “1” to “2”.
 また、IND1200の各要素は、当該要素に対応するSVL1100より小さい値の出現回数を与えている。例えば、図8(a)に示すIND1200-1の「Emily」に対応するIND1200-1の要素は「3」である。これは、テーブル1000-1において、項目「Name」の値が「Emily」よりも小さいレコードの数が「3」であることを示している。 Further, each element of IND1200 gives the number of appearances of a value smaller than SVL1100 corresponding to the element. For example, the element of IND1200-1 corresponding to “Emily” of IND1200-1 shown in FIG. 8A is “3”. This indicates that the number of records in which the value of the item “Name” is smaller than “Emily” is “3” in the table 1000-1.
 図8(a)及び図8(b)に示すINV1300は、転置レコード番号である。例えば、図8(a)に示すINV1300-1では、SVL1100-1の「Emily」に対応する要素は「2」である。これは、テーブル1000-1において、項目「Name」の値が「Emily」のレコードは位置「2」に格納されていることを示している。同様に、例えば、図8(a)に示すINV1300-1では、SVL1100-1の「Cathy」に対応する要素は「0」及び「3」である。これは、テーブル1000-1において、項目「Name」の値が「Cathy」のレコードは位置「0」と「3」とに格納されていることを示している。 INV1300 shown in FIGS. 8A and 8B is a transposed record number. For example, in the INV 1300-1 shown in FIG. 8A, the element corresponding to “Emily” in the SVL 1100-1 is “2”. This indicates that in the table 1000-1, the record whose item “Name” is “Emily” is stored at the position “2”. Similarly, for example, in the INV 1300-1 shown in FIG. 8A, the elements corresponding to “Cathy” of the SVL 1100-1 are “0” and “3”. This indicates that in the table 1000-1, a record whose item “Name” is “Cathy” is stored at positions “0” and “3”.
 図8に示すように、SVL1100、IND1200及びINV1300は、配列データやリスト、ベクトルデータ等により実現される。 As shown in FIG. 8, SVL 1100, IND 1200, and INV 1300 are realized by array data, lists, vector data, and the like.
 ここで、図8では、項目「Name」に関して作成されたSVL1100、IND1200及びINV1300を示したが、他の例として、項目「Age」に関して作成されたSVL1100、IND1200及びINV1300を図9に示す。 8 shows SVL1100, IND1200, and INV1300 created for the item “Name”, but FIG. 9 shows SVL1100, IND1200, and INV1300 created for the item “Age” as another example.
 図9(a)は、テーブル番号「0」のテーブル1000-1と、このテーブル1000-1を構成する各レコードの項目「Age」に関して作成されたSVL1100-1、IND1200-1及びINV1300-1とを示している。また、図9(b)は、テーブル番号「1」のテーブル1000-2と、このテーブル1000-2を構成する各レコードの項目「Age」に関して作成されたSVL1100-2、IND1200-2及びINV1300-2とを示している。なお、図9(b)でレコードの位置の読み替えが発生する場合には、上述したように、INV1300-2の位置も読み替えられる。すなわち、例えば、テーブル1000-2の位置「0」~「3」がそれぞれ位置「4」~「7」に読み替えられる場合、INV1300-2の位置「0」~「3」も図示のようにそれぞれ「5」、「7」、「4」、「6」に読み替えられる。 FIG. 9A shows a table 1000-1 having a table number “0” and SVL1100-1, IND1200-1 and INV1300-1 created for the item “Age” of each record constituting the table 1000-1. Is shown. FIG. 9B shows the table 1000-2 with the table number “1” and the SVL1100-2, IND1200-2 and INV1300- created for the item “Age” of each record constituting the table 1000-2. 2. Note that, when the rereading of the position of the record occurs in FIG. 9B, the position of the INV 1300-2 is also reread as described above. That is, for example, when the positions “0” to “3” of the table 1000-2 are replaced with the positions “4” to “7”, the positions “0” to “3” of the INV 1300-2 are also respectively illustrated as shown in the figure. It is read as "5", "7", "4", "6".
 図9では、SVL1100、IND1200及びINV1300の各要素の値が図8と異なっているが、これらのデータが表す意味は同じである。 In FIG. 9, the values of the elements of SVL 1100, IND 1200, and INV 1300 are different from those in FIG. 8, but the meanings represented by these data are the same.
 <SVL1100、IND1200及びINV1300の作成方法>
 次に、一例として、図3(a)に示すテーブル1000-1から、図8(a)に示すSVL1100-1、IND1200-1及びINV1300-1を作成する場合について、図10を参照しながら説明する。図10のS1~S5の各処理は、データ処理部200により行われる。
<Method for creating SVL1100, IND1200, and INV1300>
Next, as an example, the case where the SVL 1100-1, IND 1200-1, and INV 1300-1 shown in FIG. 8A are created from the table 1000-1 shown in FIG. 3A will be described with reference to FIG. To do. Each process of S1 to S5 in FIG. 10 is performed by the data processing unit 200.
 S1.Add RecNo:データ処理部200は、テーブル1000-1から項目「Name」の各要素を抜き出した上で、これら各要素に対してレコード番号を値とする項目「RecNo」を追加する。このとき、レコード番号は、各要素の位置と同じ番号を付与すれば良い。 S1. Add RecNo: The data processing unit 200 extracts each element of the item “Name” from the table 1000-1 and adds an item “RecNo” having a record number as a value to each element. At this time, the record number may be given the same number as the position of each element.
 S2.Sort By Value:データ処理部200は、項目「Name」の値でソート(例えば、昇順にソート)する。 S2. Sort By Value: The data processing unit 200 sorts by the value of the item “Name” (for example, sorts in ascending order).
 S3.Separate:データ処理部200は、各要素について、項目「Name」と項目「RecNo」とのを分離する。この分離後の項目「RecNo」の各要素がINV1300となる。 S3. Separate: The data processing unit 200 separates the item “Name” and the item “RecNo” for each element. Each element of the item “RecNo” after the separation becomes INV1300.
 S4.Unique&Count:データ処理部200は、項目「Name」の各値の出現数をその値とする項目「Count」を作成すると共に、項目「Name」から同一値を無くす。 S4. Unique & Count: The data processing unit 200 creates an item “Count” whose value is the number of occurrences of each value of the item “Name” and eliminates the same value from the item “Name”.
 S5.Aggregate:データ処理部200は、項目「Count」の先頭に値が「0」の要素を追加した上で、出現数を累計数に変換する。また、データ処理部200は、項目「Name」の最後に値が「∞」の要素を追加する。これらの処理を行った後の項目「Name」の各要素がSVL1100であり、項目「Count」の各要素がIND1200となる。 S5. Aggregate: The data processing unit 200 adds an element whose value is “0” to the head of the item “Count”, and then converts the number of appearances into a cumulative number. Further, the data processing unit 200 adds an element whose value is “∞” to the end of the item “Name”. Each element of the item “Name” after performing these processes is SVL1100, and each element of the item “Count” is IND1200.
 なお、出現数を類計数に変換するとは、項目「Count」の各要素をc[i](i==1,・・・,I)とした場合、j=2からj=Iまで順に、c[1]+・・・+c[j]を改めてc[j]とすることである。 Note that the number of occurrences is converted into a class count when each element of the item “Count” is c [i] (i = 1 = 1,..., I), in order from j = 2 to j = I. c [1] +... + c [j] is changed to c [j].
 図10に示す例では、一例として、項目「Name」に関するSVL1100、IND1200及びINV1300を作成したが、項目「Age」に関するSVL1100、IND1200及びINV1300についても上記と同様の方法で作成することができる。 In the example shown in FIG. 10, as an example, the SVL 1100, IND 1200, and INV 1300 related to the item “Name” are created.
 なお、上記のS1~S5の処理は、例えば、新たなテーブル1000がデータベース300に追加された場合や、既にSVL1100、IND1200及びINV1300が作成されているテーブル1000に対して新たにレコードが追加された場合等に行われる。 Note that, in the processing of S1 to S5, for example, when a new table 1000 is added to the database 300, or a new record is added to the table 1000 in which SVL1100, IND1200, and INV1300 have already been created. Done in some cases.
 また、本実施形態では、上記のS1~S5の処理を全てデータ処理部200で行うものとして説明したが、これに限られず、例えば、S1~S5の処理のうちの1以上の処理がデータ管理装置20とは異なる装置で実行されても良い。特に、S1~S5の全ての処理をデータ管理装置20とは異なる装置で実行した上で、この装置の処理結果をデータ管理装置20が格納するようにしても良い。 Further, in the present embodiment, it has been described that the above-described processes of S1 to S5 are all performed by the data processing unit 200. However, the present invention is not limited to this. It may be executed by a device different from the device 20. In particular, after all the processing of S1 to S5 is executed by a device different from the data management device 20, the processing result of this device may be stored in the data management device 20.
 <検索方法>
 ここで、値順ビュー又は値順UNIONビューが得られた場合に、値順ビュー又は値順UNIONビューから所望のデータを検索する場合は、既知のバイセクション法(二分探索法)を用いて検索することができる。データ検索は、例えば、端末装置10のユーザが検索条件(例えば、=、<、>、between、これらの否定等)を指定することで行うことができる。なお、データ検索は、表示処理部100により行われても良いし、データ処理部200により行われても良い。
<Search method>
Here, when the value order view or the value order UNION view is obtained, when searching for desired data from the value order view or the value order UNION view, the search is performed using the known bisection method (binary search method). can do. The data search can be performed, for example, by the user of the terminal device 10 specifying a search condition (for example, =, <,>, between, negation of these, etc.). Note that the data search may be performed by the display processing unit 100 or the data processing unit 200.
 このとき、本実施形態では、以下の2つの理由により、値順ビュー又は値順UNIONビューから所望のデータを高速に検索することができると共に、検索結果を少ないデータ容量で保持することができる。 At this time, in the present embodiment, for the following two reasons, desired data can be searched at a high speed from the value order view or the value order UNION view, and the search result can be held with a small data capacity.
 理由1:既知のバイセクション法等によってヒットした領域(ヒット領域)の先頭位置及び末尾位置を特定することができる。このため、先頭位置にあるレコード及び末尾位置あるレコード以外のレコードは、検索条件について評価する必要がない。 Reason 1: It is possible to specify the start position and end position of a hit area (hit area) by a known bisection method or the like. For this reason, it is not necessary to evaluate the search condition for records other than the record at the head position and the record at the tail position.
 理由2:ヒット数が膨大であった場合、従来の技術では検索結果としてヒット領域内の全てのレコードを保持する必要があったが、本実施形態では、検索結果としてヒット領域の先頭位置及び末尾位置だけで保持するだけで十分である。 Reason 2: When the number of hits is enormous, in the conventional technique, it is necessary to hold all records in the hit area as a search result. In this embodiment, the start position and the end of the hit area are included as a search result. It is sufficient to hold only the position.
 上記の理由2について、より詳しく説明すれば、例えば、図7に示す値順UNIONビューVW4において、項目「Name」の値が「Cathy」~「Dorothy」までのレコードを検索する場合、該当のレコードは、位置「2」~「6」のレコードとなる。このため、本実施形態では、ヒット領域の先頭位置「2」及び末尾位置「6」だけを保持しておくだけで十分となる。ここで、この場合、ヒット領域の長さは6-2+1=5であるため、ヒット件数は5となる、そこで、以下、5件の全てのレコードを取り出す場合について説明する。 The reason 2 described above will be described in more detail. For example, in the value-ordered UNION view VW4 shown in FIG. 7, when searching for records whose value of the item “Name” is “Cathy” to “Dorothy”, the corresponding record Are records at positions “2” to “6”. For this reason, in this embodiment, it is sufficient to hold only the head position “2” and the tail position “6” of the hit area. Here, since the length of the hit area is 6-2 + 1 = 5 in this case, the number of hits is 5. Therefore, hereinafter, a case where all five records are extracted will be described.
 この説明の前に、図7に示す値順UNIONビューVW4は仮想的なものであることに注意する。このため、図7に示す値順UNIONビューVW4から各レコードを取り出すには、この値順UNIONビューVW4の指定の行を取り出すルーチンを呼び出す必要がある。このルーチンから返される「RecNo」は読み替えをしたものであるため、RecNoの値から、テーブル1000-1又はテーブル1000-2のいずれであるのかを判別することでテーブル1000を特定し、かつ、読み替えをした結果のRecNoを読み替え前に戻す。なお、読み替えをした後のRecNoが返され、それを使ってテーブル1000を特定し、読み替え前のRecNoに戻すという手順を踏まずに、例えば、テーブル番号と読み替え前のRecNoを戻すようにルーチンを用いても良い。 Note that before this explanation, the value order UNION view VW4 shown in FIG. 7 is virtual. Therefore, in order to retrieve each record from the value order UNI view VW4 shown in FIG. 7, it is necessary to call a routine for retrieving a specified row of the value order UNI view VW4. Since “RecNo” returned from this routine has been read, the table 1000 is specified by determining whether it is the table 1000-1 or the table 1000-2 from the value of RecNo, and the read is changed. Return RecNo as a result of It should be noted that the RecNo after the replacement is returned, the table 1000 is used to identify it, and the routine to return the RecNo before the replacement is performed, for example, without following the procedure of returning to the RecNo before the replacement. It may be used.
 (1)ヒットした最初のレコードのRecNoは0である。RecNo=0は(4未満であるため)テーブル1000-1に属す。RecNo=0からテーブル1000-1のオフセット=0を差し引き、テーブル内のRecNo=0-0=0である。このため、テーブル1000-1の位置「0」のレコードを得る。 (1) The RecNo of the first record hit is 0. RecNo = 0 belongs to the table 1000-1 (because it is less than 4). The offset of table 1000-1 = 0 is subtracted from RecNo = 0, and RecNo = 0-0-0 = 0 in the table. Therefore, a record at position “0” in the table 1000-1 is obtained.
 (2)ヒットした2番目のレコードのRecNoは3である。RecNo=3は(4未満であるため)テーブル1000-1に属す。RecNo=3からテーブル1000-1のオフセット=0を差し引き、テーブル内のRecNo=3-0=3である。このため、テーブル1000-1の位置「3」のレコードを得る。 (2) The RecNo of the second record hit is 3. RecNo = 3 belongs to the table 1000-1 (because it is less than 4). The offset of table 1000-1 = 0 is subtracted from RecNo = 3, and RecNo = 3-0 = 3 in the table. Therefore, a record at position “3” in the table 1000-1 is obtained.
 (3)ヒットした3番目のレコードのRecNoは5である。RecNo=5は(4以上であるため)テーブル1000-2に属す。RecNo=5からテーブル1000-2のオフセット=4を差し引き、テーブル内のRecNo=5-4=1である。このため、テーブル1000-2の位置「1」のレコードを得る。 (3) The RecNo of the third record hit is 5. RecNo = 5 belongs to the table 1000-2 (because it is 4 or more). The offset of the table 1000-2 = 4 is subtracted from RecNo = 5, and RecNo = 5-4 = 1 in the table. Therefore, a record at position “1” in the table 1000-2 is obtained.
 (4)ヒットした4番目のレコードのRecNoは4である。RecNo=4は(4以上であるため)テーブル1000-2に属す。RecNo=4からテーブル1000-2のオフセット=4を差し引き、テーブル内のRecNo=4-4=0である。このため、テーブル1000-2の位置「0」のレコードを得る。 (4) The RecNo of the fourth record hit is 4. RecNo = 4 belongs to the table 1000-2 (because it is 4 or more). The offset of table 1000-2 = 4 is subtracted from RecNo = 4, and RecNo = 4-4 = 0 in the table. Therefore, a record at position “0” in the table 1000-2 is obtained.
 (5)ヒットした5番目のレコードのRecNoは6である。RecNo=6は(4以上であるため)テーブル1000-2に属す。RecNo=6からテーブル1000-2のオフセット=4を差し引き、テーブル内のRecNo=6-4=2である。このため、テーブル1000-2の位置「2」のレコードを得る。 (5) The RecNo of the fifth record hit is 6. RecNo = 6 belongs to the table 1000-2 (because it is 4 or more). The offset of table 1000-2 = 4 is subtracted from RecNo = 6, and RecNo = 6-4 = 2 in the table. Therefore, a record at position “2” in the table 1000-2 is obtained.
 なお、検索結果を表すビューとしては、値順ビュー又は値順UNIONビューに表示されているレコードのうち、ヒット領域内のレコードが表示されたビューとすれば良い。この検索結果を表すビューは、表示処理部100により表示される。 Note that the view representing the search result may be a view in which the records in the hit area are displayed among the records displayed in the value order view or the value order UNION view. A view representing the search result is displayed by the display processing unit 100.
 <各ビューの作成方法>
 次に、各ビューを作成する方法について説明する。各ビューが作成されることで、表示処理部100は、これらのビューを表示することができる。なお、表示処理部100がデータ管理装置20からデータを取得することでビューの作成及び表示を行っても良いし、データ処理部200がデータベース300からデータを取得することでビューを作成し、作成したビューを表示処理部100に送信することで、表示処理部100がビューを表示しても良い。ただし、例えば、異なるデータ管理装置20がそれぞれ管理しているテーブル1000をUNIONしたビューを作成する場合には、表示処理部100がビューの作成を行うことが好ましい。
<How to create each view>
Next, a method for creating each view will be described. By creating each view, the display processing unit 100 can display these views. The display processing unit 100 may create and display a view by acquiring data from the data management device 20, or the data processing unit 200 may generate and create a view by acquiring data from the database 300. The display processing unit 100 may display the view by transmitting the processed view to the display processing unit 100. However, for example, when creating a view in which the tables 1000 managed by different data management apparatuses 20 are unioned, the display processing unit 100 preferably creates the view.
  ≪レコード順ビューの作成方法≫
 例えば、テーブル番号「0」のレコード順ビューVW1-1を作成する場合、図8(a)に示すテーブル1000-1の位置「0」~「3」までのレコードを順に取得すれば良い。同様に、例えば、テーブル番号「1」のテーブル1000-2のレコード順ビューVW1-2を作成する場合、図8(b)に示すテーブル1000-2の位置「0」~「3」までのレコードを順に取得すれば良い。
≪How to create record order view≫
For example, when creating the record order view VW1-1 of the table number “0”, the records from the positions “0” to “3” of the table 1000-1 shown in FIG. Similarly, for example, when creating the record order view VW1-2 of the table 1000-2 with the table number “1”, the records from the positions “0” to “3” of the table 1000-2 shown in FIG. Should be acquired in order.
  ≪値順ビューの作成方法≫
 例えば、テーブル番号「0」のテーブル1000-1の項目「Name」に関する値順ビューVW2-1を作成する場合、図8(a)に示すINV1300-1の位置「0」~「3」の各要素の値をその位置とするレコードをレコード順ビューVW1-1から取得すれば良い。より具体的には、図8(a)に示すINV1300-1の位置「0」~「3」の各要素の値は、INV[0]=1、INV[1]=0、INV[2]=3、INV[3]=2である。したがって、図4(a)に示すレコード順ビューVW1-1から位置「1」、「0」、「3」、「2」のレコードを順に取得し、取得したレコードに対してこれらの値を項目「RecNo」の値としてそれぞれ追加する。これにより、図5(a)に示す値順ビューVW2-1が得られる。
≪How to create a value order view≫
For example, when creating the value order view VW2-1 for the item “Name” of the table 1000-1 with the table number “0”, each of the positions “0” to “3” of the INV 1300-1 shown in FIG. A record having the element value as its position may be acquired from the record order view VW1-1. More specifically, the value of each element at positions “0” to “3” of INV 1300-1 shown in FIG. 8A is INV [0] = 1, INV [1] = 0, INV [2]. = 3, INV [3] = 2. Therefore, the records at the positions “1”, “0”, “3”, “2” are obtained in order from the record order view VW1-1 shown in FIG. Each is added as a value of “RecNo”. As a result, the value order view VW2-1 shown in FIG. 5A is obtained.
 同様に、例えば、テーブル番号「1」のテーブル1000-2の項目「Name」に関する値順ビューVW2-2を作成する場合、図8(b)に示すINV1300-2の位置「0」~「3」の各要素の値をその位置とするレコードをレコード順ビューVW1-2から取得すれば良い。より具体的には、図8(b)に示すINV1300-2の位置「0」~「3」の各要素の値は、INV[0]=3、INV[1]=1、INV[2]=0、INV[3]=2である。したがって、図4(b)に示すレコード順ビューVW1-2から位置「3」、「1」、「0」、「2」のレコードを順に取得し、取得したレコードに対してこれらの値を項目「RecNo」の値としてそれぞれ追加する。これにより、図5(b)に示す値順ビューVW2-2が得られる。 Similarly, for example, when creating the value order view VW2-2 regarding the item “Name” of the table 1000-2 with the table number “1”, the positions “0” to “3” of the INV 1300-2 shown in FIG. It is only necessary to acquire a record having the position of each element value of “” from the record order view VW1-2. More specifically, the values of the elements at positions “0” to “3” of INV1300-2 shown in FIG. 8B are INV [0] = 3, INV [1] = 1, INV [2]. = 0 and INV [3] = 2. Therefore, the records at the positions “3”, “1”, “0”, “2” are sequentially acquired from the record order view VW1-2 shown in FIG. 4B, and these values are set as items for the acquired records. Each is added as a value of “RecNo”. As a result, the value order view VW2-2 shown in FIG. 5B is obtained.
  ≪レコード順UNIONビューの作成方法≫
 例えば、図6に示すレコード順UNIONビューVW3を作成する場合、図8(a)に示すテーブル1000-1の位置「0」~「3」までのレコードを順に取得した後、図8(b)に示すテーブル1000-2の位置「0」~「3」までのレコードを順に取得すれば良い。
≪How to create a record order UNION view≫
For example, when creating the record order UNION view VW3 shown in FIG. 6, the records from the positions “0” to “3” in the table 1000-1 shown in FIG. The records from position “0” to “3” in the table 1000-2 shown in FIG.
 ただし、図8(b)に示すテーブル1000-2の位置「0」~「3」のレコードが取得される際に読み替え後の位置「4」~「7」が指定される場合は、これらの位置「4」~「7」を読み替え前の位置「0」~「3」に変換する。 However, when the positions “4” to “7” after the replacement are designated when the records of the positions “0” to “3” in the table 1000-2 shown in FIG. The positions “4” to “7” are converted to the positions “0” to “3” before the replacement.
  ≪値順UNIONビューの作成方法≫
 例えば、図7に示す値順UNIONビューVW4を作成する場合、図5(a)及び図5(b)にそれぞれ示す値順ビューVW2-1及びVW2-2から、優先度の高い順に、項目「Name」の値、テーブル番号、テーブル内のレコード番号の順に取得すれば良い。
≪How to create a UNION view by value order≫
For example, when the value order UNION view VW4 shown in FIG. 7 is created, the items “" from the value order views VW2-1 and VW2-2 shown in FIG. 5A and FIG. The “Name” value, the table number, and the record number in the table may be acquired in this order.
 したがって、この場合、以下の順で、図5(a)に示す値順ビューVW2-1と図5(b)に示す値順ビューVW2-2から各レコードが取得される。 Therefore, in this case, the records are acquired from the value order view VW2-1 shown in FIG. 5A and the value order view VW2-2 shown in FIG. 5B in the following order.
 (1)図5(a)に示す値順ビューVW2-1の位置「0」のレコード
 (2)図5(b)に示す値順ビューVW2-2の位置「0」のレコード
 (3)図5(a)に示す値順ビューVW2-1の位置「1」のレコード
 (4)図5(a)に示す値順ビューVW2-1の位置「2」のレコード
 (5)図5(b)に示す値順ビューVW2-2の位置「1」のレコード
 (6)図5(b)に示す値順ビューVW2-2の位置「2」のレコード
 (7)図5(b)に示す値順ビューVW2-2の位置「3」のレコード
 (8)図5(a)に示す値順ビューVW2-1の位置「3」のレコード
 このとき、上記の(2)、(5)~(7)では項目「RecNo」の読み替えが行われる。
(1) Record at position “0” in the value order view VW2-1 shown in FIG. 5A (2) Record at position “0” in the value order view VW2-2 shown in FIG. 5B (3) FIG. Record of position “1” in the value order view VW2-1 shown in FIG. 5 (a) (4) Record of position “2” in the value order view VW2-1 shown in FIG. 5A (5) FIG. Record of position “1” in value order view VW2-2 shown in (6) Record of position “2” in value order view VW2-2 shown in FIG. 5B (7) Value order shown in FIG. 5B Record of position “3” in view VW2-2 (8) Record of position “3” in value order view VW2-1 shown in FIG. 5A At this time, (2), (5) to (7) above Then, the item “RecNo” is replaced.
 以上により、本実施形態に係るデータ管理システム1は、各種ビューを作成及び表示する際に、SVL1100と、IND1200と、INV1300とを用いることで、テーブル1000を構成するレコード数が膨大であっても、容易かつ高速に各種ビューを作成及び表示することができるようになる。また、本実施形態に係るデータ管理システム1は、データ検索を行う際に、SVL1100と、IND1200と、INV1300とを用いることで、高速に検索を行うことができると共に、検索結果を少ないデータ容量で保持することができるようになる。 As described above, the data management system 1 according to the present embodiment uses the SVL 1100, the IND 1200, and the INV 1300 when creating and displaying various views, so that even if the number of records constituting the table 1000 is enormous. Various views can be created and displayed easily and quickly. In addition, the data management system 1 according to the present embodiment uses the SVL 1100, the IND 1200, and the INV 1300 when performing a data search, so that the search can be performed at a high speed and the search result can be obtained with a small data capacity. Will be able to hold.
 なお、本実施形態では複数のテーブル1000をUNIONしたビューを説明したが、UNIONの代わりにJOINを用いることもできる。この場合、例えば、上記のS4.Unique&Countで、該当の項目の値を出現数を計算する際に、当該出現数を、JOINする対象のテーブル1000でマッチする値の出現数倍して、IND1200及びINV1300を作れば良い。 In the present embodiment, a view in which a plurality of tables 1000 are UNION has been described. However, JOIN can be used instead of UNION. In this case, for example, S4. When calculating the number of occurrences of the value of the corresponding item in Unique & Count, the number of occurrences may be multiplied by the number of occurrences of the matching value in the table 1000 to be joined, to create IND1200 and INV1300.
 <各種関数>
 ここで、上記のデータ構造を有するテーブル1000に対して定義された各種関数について説明する。
<Various functions>
Here, various functions defined for the table 1000 having the above data structure will be described.
 ・Count_LT(テーブル番号,項目名,値)
 指定されたテーブル番号のテーブルにおける指定された項目名の項目について、指定された値よりも小さい値のレコード数を得る関数である。
-Count_LT (table number, item name, value)
This function obtains the number of records having a value smaller than the specified value for the item with the specified item name in the table with the specified table number.
 Count_LTは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がある場合、その要素の位置をiとして、IND[i]を取得すれば良い。一方で、Count_LTは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がない場合、このSVL1100の各要素の値のうち、指定された値よりも大きく、かつ、最小の値の要素の位置をiとして、IND[i]を取得すれば良い。 Count_LT, for example, searches the SVL 1100 related to the item of the specified item name, and if there is an element that matches the specified value, the position of that element may be i and IND [i] may be acquired. On the other hand, Count_LT, for example, searches SVL 1100 related to the item of the specified item name, and if there is no element that matches the specified value, the value of each element of SVL 1100 is larger than the specified value. In addition, IND [i] may be obtained by setting i as the position of the element having the minimum value.
 ・Count_LE(テーブル番号,項目名,値)
 指定されたテーブル番号のテーブルにおける指定された項目名の項目について、指定された値以下の値のレコード数を得る関数である。
-Count_LE (table number, item name, value)
This function obtains the number of records with a value less than or equal to the specified value for the item with the specified item name in the table with the specified table number.
 Count_LEは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がある場合、その要素の位置をiとして、IND[i+1]を取得すれば良い。一方で、Count_LEは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がない場合、このSVL1100の各要素の値のうち、指定された値よりも大きく、かつ、最小の値の要素の位置をiとして、IND[i]を取得すれば良い。 Count_LE, for example, searches the SVL 1100 related to the item of the specified item name, and if there is an element that matches the specified value, the position of the element may be i and IND [i + 1] may be acquired. On the other hand, Count_LE, for example, searches SVL 1100 for the item of the specified item name, and if there is no element that matches the specified value, the value of each element of SVL 1100 is greater than the specified value. In addition, IND [i] may be obtained by setting i as the position of the element having the minimum value.
 ・Count_EQ(テーブル番号,項目名,値)
 指定されたテーブル番号のテーブルにおける指定された項目名の項目について、指定された値と等しい値のレコード数を得る関数である。
-Count_EQ (table number, item name, value)
This function obtains the number of records having a value equal to a specified value for an item having a specified item name in a table having a specified table number.
 Count_EQは、例えば、Count_EQ()=Count_LE()-Count_LT()とすれば良い。 Count_EQ may be, for example, Count_EQ () = Count_LE () −Count_LT ().
 ・Pos(テーブル番号,項目名,値)
 指定されたテーブル番号のテーブルにおける指定された項目名の項目について、指定された値がSVL1100に出現する位置を得る関数である。
・ Pos (table number, item name, value)
This is a function for obtaining the position where the specified value appears in the SVL 1100 for the item of the specified item name in the table of the specified table number.
 Posは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素があった場合は、この要素の位置を取得すれば良い。 For example, Pos searches the SVL 1100 related to the item of the specified item name, and if there is an element that matches the specified value, the position of this element may be acquired.
 ・Total_Count_LT(項目名,値)
 指定された項目名の項目について、指定された値よりも小さい値のレコード数の全てのテーブルに関する和を得る関数である。
・ Total_Count_LT (item name, value)
This function obtains the sum of all the tables having a record number smaller than the specified value for the item with the specified item name.
 Total_Count_LTは、テーブル番号をTable[i]として、ΣCount_LT(Table[i],項目名,値)とすれば良い。 Total_Count_LT may be ΣCount_LT (Table [i], item name, value), with the table number as Table [i].
 ・Total_Count_LE(項目名,値)
 指定された項目名の項目について、指定された値より以下の値のレコード数の全てのテーブルに関する和を得る関数である。
・ Total_Count_LE (item name, value)
This function obtains the sum of all the tables with the number of records below the specified value for the item with the specified item name.
 Total_Count_LEは、テーブル番号をTable[i]として、ΣCoun t_LE(Table[i],項目名,値)とすれば良い。 Total_Count_LE may be ΣCount t_LE (Table [i], item name, value) with the table number as Table [i].
 <値順UNIONビューからレコード順ビューのレコード番号を得る方法>
 上述したように、値順UNIONビューの各レコードには項目「RecNo」が追加されている。このため、端末装置10のユーザにより値順UNIONビューから所望のレコードが選択された場合、選択されたレコードの項目「RecNo」の値から該当のテーブル1000のレコード順ビューの位置(レコード番号)を得ることができれば、この位置(レコード番号)により当該テーブル1000から該当のレコードを取得することができる。
<Method of obtaining record number of record order view from value order UNION view>
As described above, the item “RecNo” is added to each record of the value order UNION view. Therefore, when the user of the terminal apparatus 10 selects a desired record from the value order UNION view, the position (record number) of the record order view of the corresponding table 1000 is determined from the value of the item “RecNo” of the selected record. If it can be obtained, a corresponding record can be acquired from the table 1000 by this position (record number).
 そこで、以降では、上記で定義した関数を用いて、値順UNIONビューのレコード番号(項目「RecNo」の値)から、テーブル番号と、このテーブル番号のテーブル1000に関するレコード順ビューのレコード番号(先頭レコードからの相対位置)とを得る方法について説明する。なお、以降で説明する方法は、値順UNIONビューにおけるレコード番号rが与えられた表示処理部100又はデータ処理部200のいずれが実行しても良い。また、以降では、SVL1100は、項目「Name」に関するものであるあるとする。したがって、以降では、上記の関数の引数「項目名」は「Name」であるものとして、その記載を省略するものとする。具体的には、例えば、項目「Name」の値をvとした場合、Total_Count_LT(Name,v)を、単に、Total_Count_LT(v)と表すものとする。 Henceforth, using the function defined above, from the record number of the value order UNION view (value of the item “RecNo”), the record number of the record order view regarding the table 1000 and the table 1000 of this table number (the head) A method for obtaining the relative position from the record will be described. Note that the method described below may be executed by either the display processing unit 100 or the data processing unit 200 to which the record number r in the value order UNION view is given. Hereinafter, it is assumed that the SVL 1100 relates to the item “Name”. Therefore, hereinafter, the argument “item name” of the above function is assumed to be “Name”, and the description thereof is omitted. Specifically, for example, when the value of the item “Name” is v, Total_Count_LT (Name, v) is simply expressed as Total_Count_LT (v).
 S11)rが所属するvを求める。 S11) Find v to which r belongs.
 これは、以下を満たすvを探索すれば良い。 This can be done by searching for v that satisfies the following.
 Total_Count_LT(v)≦r<Total_Count_LE(v)
 各SVL1100は昇順かつその値がユニークであるため、上記のvは、例えば、既知のバイセクション法(二分探索法)を用いて効率良く探索することができる。
Total_Count_LT (v) ≦ r <Total_Count_LE (v)
Since each SVL 1100 is in ascending order and its value is unique, the above v can be efficiently searched using, for example, a known bisection method (binary search method).
 一例として、図3(a)及び図3(b)にそれぞれ示すテーブル1000-1及びテーブル1000-2の項目「Name」について、各rに対するvの値を以下の表1に示す。 As an example, for the item “Name” in the tables 1000-1 and 1000-2 shown in FIGS. 3A and 3B, the values of v for each r are shown in Table 1 below.
Figure JPOXMLDOC01-appb-T000001
 S12)r及びvよりテーブル番号jを求める。
Figure JPOXMLDOC01-appb-T000001
S12) A table number j is obtained from r and v.
 上記の表1からもわかるように、Total_Count_LT(v)は、値順UNIONビュー内で値vが開始する位置を与えている。そこで、offset=r-Total_Count_LT(v)とすると、offsetは、値順UNIONビュー内において、値rのレコードが、値vの開始位置から何レコード下がっているかを示す。 As can be seen from Table 1 above, Total_Count_LT (v) gives the position where the value v starts in the value order UNION view. Therefore, when offset = r−Total_Count_LT (v), offset indicates how many records of the value r are lower than the start position of the value v in the value order UNION view.
 したがって、テーブル番号jは、以下の式1を満たす最小のjを求めることで、テーブル番号jを得ることができる。 Therefore, the table number j can be obtained by obtaining the minimum j satisfying the following expression 1.
Figure JPOXMLDOC01-appb-M000002
 一例として、上記の表1に対して上記の式1により求めたテーブル番号jを追加した表2を以下に示す。
Figure JPOXMLDOC01-appb-M000002
As an example, Table 2 in which the table number j obtained by the above Equation 1 is added to the above Table 1 is shown below.
Figure JPOXMLDOC01-appb-T000003
 S13)r、v及びjよりレコード順ビューのレコード番号r0を求める。
Figure JPOXMLDOC01-appb-T000003
S13) The record number r0 of the record order view is obtained from r, v and j.
 まず、i<jを満たす各テーブル番号iのテーブル1000の全てのレコード数を「レコード数1」とすると、レコード数1は、以下の式2で得ることができる。 First, assuming that the number of all records in the table 1000 of each table number i satisfying i <j is “number of records 1”, the number of records 1 can be obtained by the following Expression 2.
Figure JPOXMLDOC01-appb-M000004
 また、i>jを満たす各テーブル番号iのテーブル1000の全てのレコード数を「レコード数2」とすると、レコード数2は、以下の式3で得ることができる。
Figure JPOXMLDOC01-appb-M000004
Further, assuming that the number of all records in the table 1000 of each table number i satisfying i> j is “number of records 2”, the number of records 2 can be obtained by the following Expression 3.
Figure JPOXMLDOC01-appb-M000005
 したがって、rj=(r-レコード数1-レコード数2)を求めれば、テーブル番号jのテーブル1000に関する値順ビューにおける位置を得ることができる。したがって、テーブル番号jのテーブル1000のINV[rj]により、このテーブル1000のレコード番号を取得することができる。なお、このレコード番号は、このテーブル1000に関するレコード順の先頭レコードからの相対位置と同一である。
Figure JPOXMLDOC01-appb-M000005
Therefore, if rj = (r−number of records 1−number of records 2) is obtained, the position of the table number j in the value order view regarding the table 1000 can be obtained. Therefore, the record number of this table 1000 can be acquired by INV [rj] of the table 1000 of the table number j. The record number is the same as the relative position from the first record in the record order with respect to the table 1000.
 なお、必要に応じて、上記のレコード番号INV[rj]を、以下の方法により値順UNIOビューのレコード番号r0に変換することもできる。すなわち、値順UNIONビューの基となったj番目のテーブル1000(テーブル番号jのテーブル1000)のレコード番号INV[rj]は、0~(j-1)番目のテーブル1000をそれぞれ構成するレコードの数の総和を足すことで、値順UNIONビュー内のレコード番号(項目「RecNo」の値)に変換することができる。 If necessary, the record number INV [rj] can be converted into the record number r0 of the value order UNIO view by the following method. In other words, the record number INV [rj] of the j-th table 1000 (table 1000 with the table number j) that is the basis of the value order UNION view is the record number constituting the 0th to (j−1) -th table 1000. By adding the sum of the numbers, it can be converted into a record number (value of the item “RecNo”) in the value order UNION view.
 以上により、値順UNIONビューの項目「RecNo」の値(レコード番号)から、該当のテーブル1000に関するレコード順ビューの位置(レコード番号)を得ることができる。これにより、端末装置10のユーザにより値順UNIONビューから所望のレコードが選択された場合、この選択されたレコードを、該当のテーブル1000(選択されたレコードが格納されているテーブル1000)から取得することができるようになる。 As described above, the position (record number) of the record order view regarding the corresponding table 1000 can be obtained from the value (record number) of the item “RecNo” of the value order UNION view. Thereby, when a desired record is selected from the value order UNION view by the user of the terminal device 10, the selected record is acquired from the corresponding table 1000 (the table 1000 in which the selected record is stored). Will be able to.
 <応用例1>
 次に、本実施形態の応用例1について説明する。応用例1では、或る項目に関する値順UNIONビューを表示する際に、同一のテーブル1000内に当該項目の値が同一のレコードが存在する場合、テーブル1000毎に1つのレコードのみを表示する場合を説明する。
<Application example 1>
Next, application example 1 of the present embodiment will be described. In application example 1, when displaying a value-ordered UNION view for a certain item, if there is a record having the same value of the item in the same table 1000, only one record is displayed for each table 1000 Will be explained.
 例えば、項目「Name」に関する値順UNIONビューを表示する場合、図11に示すように、各テーブル1000の値順ビューで、項目「Name」の値が同一のレコードのうち、1つのレコード以外を削除した上で、値順UNIONビューを作成すれば良い。 For example, when displaying a value-ordered UNION view related to the item “Name”, as shown in FIG. 11, in the value-ordered view of each table 1000, records other than one of the records having the same value of the item “Name” After deletion, a value-ordered UNION view may be created.
 図11に示す例では、テーブル番号「0」のテーブル1000-1の値順ビューにおいて、項目「Name」が「Cathy」であるレコードが2つ存在する。このため、これら2つのレコードのうち、1つのレコード以外を削除する。 In the example shown in FIG. 11, there are two records whose item “Name” is “Cathy” in the value order view of the table 1000-1 with the table number “0”. For this reason, of these two records, other than one record is deleted.
 同様に、テーブル番号「1」のテーブル1000-2の値順ビューにおいて、項目「Name」が「Dorothy」であるレコードが2つ存在する。このため、これら2つのレコードのうち、1つのレコード以外を削除する。 Similarly, in the value order view of the table 1000-2 with the table number “1”, there are two records whose item “Name” is “Dorothy”. For this reason, of these two records, other than one record is deleted.
 ここで、同一の値のレコードのうち、どのレコードを削除せずに残しておくかは任意に決めることができる。例えば、同一の値のレコードのうち、値順ビューの位置が最も小さいレコードを残しておいても良いし、項目「RecNo」の値(レコード番号)が最も小さいレコードを残しておいても良い。 Here, it is possible to arbitrarily decide which records of the same value are left without being deleted. For example, among records having the same value, the record with the smallest position in the value order view may be left, or the record with the smallest value (record number) of the item “RecNo” may be left.
 なお、応用例1のように、テーブル1000毎に同一値のレコードのうちの1つのレコードのみを値順UNIONビューで表示する場合は、上記で定義したCount_LT及びCount_LEを以下のように修正する。 Note that, as shown in Application Example 1, when only one of the records having the same value for each table 1000 is displayed in the value order UNION view, the Count_LT and the Count_LE defined above are corrected as follows.
 ・Count_LT(テーブル番号,項目名,値)
 Count_LTは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がある場合、その要素の位置をiとして、iを取得すれば良い。一方で、Count_LTは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がない場合、このSVL1100の各要素の値のうち、指定された値よりも大きく、かつ、最小の値の要素の位置をiとして、iを取得すれば良い。
-Count_LT (table number, item name, value)
For example, Count_LT searches the SVL 1100 related to the item of the specified item name, and if there is an element that matches the specified value, the position of the element is i and i can be obtained. On the other hand, Count_LT, for example, searches SVL 1100 related to the item of the specified item name, and if there is no element that matches the specified value, the value of each element of SVL 1100 is larger than the specified value. In addition, the position of the element having the minimum value may be i and i may be acquired.
 ・Count_LE(テーブル番号,項目名,値)
 Count_LEは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がある場合、その要素の位置をiとして、i+1を取得すれば良い。一方で、Count_LEは、例えば、指定された項目名の項目に関するSVL1100を探索し、指定された値と一致する要素がない場合、このSVL1100の各要素の値のうち、指定された値よりも大きく、かつ、最小の値の要素の位置をiとして、iを取得すれば良い。
-Count_LE (table number, item name, value)
For example, Count_LE searches the SVL 1100 related to the item of the specified item name, and if there is an element that matches the specified value, the position of the element is i and i + 1 may be acquired. On the other hand, Count_LE, for example, searches the SVL 1100 related to the item of the specified item name, and if there is no element that matches the specified value, the value of each element of the SVL 1100 is larger than the specified value. In addition, the position of the element having the minimum value may be i and i may be acquired.
 <応用例2>
 次に、本実施形態の応用例2について説明する。応用例2は、本実施形態をキーワード検索に応用した例である。
<Application example 2>
Next, application example 2 of the present embodiment will be described. Application example 2 is an example in which the present embodiment is applied to keyword search.
 例えば、図12(a)及び図12(b)に示すように、テーブル1000-1及びテーブル1000-2を構成する各レコードは、項目「Text」と、項目「Keyword」と、項目「RecNo」とを有するものとする。ここで、項目「Text」が検索対象のキーワードを含むテキストが格納されるカラムである。また、項目「Keyword」は、項目「Text」に格納されているテキストから予め抽出されたキーワードである。 For example, as shown in FIGS. 12A and 12B, each record constituting the table 1000-1 and the table 1000-2 includes an item “Text”, an item “Keyword”, and an item “RecNo”. It shall have. Here, the item “Text” is a column in which text including a keyword to be searched is stored. The item “Keyword” is a keyword extracted in advance from the text stored in the item “Text”.
 このとき、本実施形態で説明したように、項目「Keyword」に関してSVL1100と、IND1200と、INV1300とを作成することで、項目「Text」に格納されたテキストのうち、指定されたキーワードを含むテキストの検索を行うことができるようになる。しかも、例えば、テーブル1000-1及びテーブル1000-2の値順UNIONビュー等も表示させることができるため、複数のテーブル1000を用いたキーワード検索を容易かつ高速に行うことができるようになる。 At this time, as described in the present embodiment, by creating SVL 1100, IND 1200, and INV 1300 for the item “Keyword”, the text including the specified keyword among the texts stored in the item “Text”. You will be able to search. In addition, for example, since the value order UNION view of the table 1000-1 and the table 1000-2 can be displayed, the keyword search using the plurality of tables 1000 can be performed easily and at high speed.
 例えば、テーブル1000-1の値順ビューからキーワード「car」を含むテキストを検索したい場合、SVL1100-1と、IND1200-1と、INV1300-1とを用いて、INV[3]=1、INV[4]=2及びINV[5]=3が得られる。これにより、レコード番号「1」のレコードと、レコード番号「2」のレコードと、レコード番号「3」のレコードとを、指定されたキーワードを含むテキストとして、テーブル1000-1から取得することができる。テーブル1000-1及びテーブル1000-2の値順UNIONビューにおけるキーワード検索も同様である。 For example, when a text including the keyword “car” is to be searched from the value order view of the table 1000-1, INV [3] = 1, INV [1] is used using SVL1100-1, IND1200-1, and INV1300-1. 4] = 2 and INV [5] = 3 are obtained. As a result, the record with the record number “1”, the record with the record number “2”, and the record with the record number “3” can be acquired from the table 1000-1 as text including the designated keyword. . The same applies to the keyword search in the value order UNION view of the table 1000-1 and the table 1000-2.
 本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。 The present invention is not limited to the specifically disclosed embodiments, and various modifications and changes can be made without departing from the scope of the claims.
 本願は、日本特許庁に2018年2月21日に出願された基礎出願2018-028665号の優先権を主張するものであり、その全内容を参照によりここに援用する。 This application claims the priority of the basic application 2018-028665 filed on February 21, 2018 with the Japan Patent Office, the entire contents of which are incorporated herein by reference.
 1    データ管理システム
 10   端末装置
 20   データ管理装置
 100  表示処理部
 200  データ処理部
 1000 テーブル
 1100 SVL
 1200 IND
 1300 INV
 
DESCRIPTION OF SYMBOLS 1 Data management system 10 Terminal device 20 Data management apparatus 100 Display processing part 200 Data processing part 1000 Table 1100 SVL
1200 IND
1300 INV

Claims (9)

  1.  複数のレコードが格納されたテーブルと、該複数のレコードそれぞれに含まれる所定の項目値が格納された第1の配列データと、前記レコードを識別するレコード番号が格納された第2の配列データと、前記第1の配列データと前記第2の配列データとを対応付ける第3の配列データとを記憶する記憶手段と、
     前記項目値又は前記レコード番号の指定に応じて、前記第1の配列データと前記第2の配列データと前記第3の配列データを用いて、前記テーブルに格納されている複数のレコードのうち、指定された前記項目値又は前記レコード番号に対応する1以上のレコードを取得する取得手段と、
     を有することを特徴とする情報処理システム。
    A table storing a plurality of records; a first array data storing predetermined item values included in each of the plurality of records; a second array data storing a record number for identifying the records; Storage means for storing third array data for associating the first array data with the second array data;
    Of the plurality of records stored in the table, using the first array data, the second array data, and the third array data in accordance with the designation of the item value or the record number, Obtaining means for obtaining one or more records corresponding to the specified item value or the record number;
    An information processing system comprising:
  2.  前記第1の配列データは、前記複数のレコードそれぞれに含まれる所定の項目値を、該項目値の順に重複なく配列に格納したデータである、ことを特徴とする請求項1に記載の情報処理システム。 2. The information processing according to claim 1, wherein the first array data is data in which predetermined item values included in each of the plurality of records are stored in an array without duplication in the order of the item values. system.
  3.  前記第2の配列データは、前記レコード番号を、前記項目値の順に配列に格納したデータである、ことを特徴とする請求項1又は2に記載の情報処理システム。 The information processing system according to claim 1 or 2, wherein the second array data is data in which the record numbers are stored in the array in the order of the item values.
  4.  前記第3の配列データは、前記項目値の出現回数を、前記テーブルに格納されているレコード順に累計した累計数を配列に格納したデータである、ことを特徴とする請求項1又は2に記載の情報処理システム。 The third array data is data in which an accumulated number obtained by accumulating the number of appearances of the item value in the order of records stored in the table is stored in the array. Information processing system.
  5.  前記情報処理システムには、前記記憶手段をそれぞれ有する複数のデータ管理装置が含まれ、
     前記取得手段は、
     前記項目値又は前記レコード番号の指定に応じて、前記複数のデータ管理装置がそれぞれ有する前記記憶手段に記憶されている前記第1の配列データと前記第2の配列データと前記第3の配列データを用いて、前記複数のデータ管理装置がそれぞれ有する前記記憶手段に記憶されている前記テーブルに格納されている複数のレコードのうち、指定された前記項目値又は前記レコード番号に対応する1以上のレコードを取得する、ことを特徴とする請求項1又は2に記載の情報処理システム。
    The information processing system includes a plurality of data management devices each having the storage means,
    The acquisition means includes
    The first array data, the second array data, and the third array data stored in the storage unit respectively included in the plurality of data management devices according to the designation of the item value or the record number , Among the plurality of records stored in the table stored in the storage unit respectively included in the plurality of data management devices, one or more corresponding to the specified item value or the record number The information processing system according to claim 1, wherein a record is acquired.
  6.  前記取得手段は、
     第1のテーブルと第2のテーブルとを前記項目値の順に結合したビューにおける前記レコード番号の指定に応じて、前記第2のテーブルと対応する前記第1の配列データと前記第2の配列データと前記第3の配列データを用いて、前記レコード番号を読み替えることで、指定された前記レコード番号に対応する1以上のレコードを前記第2のテーブルから取得する、ことを特徴とする請求項5に記載の情報処理システム。
    The acquisition means includes
    The first array data and the second array data corresponding to the second table according to the designation of the record number in the view in which the first table and the second table are combined in the order of the item values. 6. One or more records corresponding to the designated record number are obtained from the second table by rereading the record number using the third array data and the third array data. Information processing system described in 1.
  7.  前記取得手段は、
     前記レコード番号から、前記第1のテーブルのレコード数を減じることで、該レコード番号を読み替える、ことを特徴とする請求項6に記載の情報処理システム。
    The acquisition means includes
    The information processing system according to claim 6, wherein the record number is reread by subtracting the number of records in the first table from the record number.
  8.  前記取得手段は、
     前記指定された前記項目値又は前記レコード番号に対応する1以上のレコードのうち、先頭のレコードを特定する第1の情報と、末尾のレコードを特定する第2の情報とを取得し、取得した前記第1の情報と前記第2の情報とを検索結果として所定の記憶領域に保持する、ことを特徴とする請求項1又は2に記載の情報処理システム。
    The acquisition means includes
    Of the one or more records corresponding to the specified item value or the record number, the first information specifying the first record and the second information specifying the last record are acquired and acquired. The information processing system according to claim 1, wherein the first information and the second information are stored in a predetermined storage area as a search result.
  9.  複数のレコードが格納されたテーブルと、該複数のレコードそれぞれに含まれる所定の項目値が格納された第1の配列データと、前記レコードを識別するレコード番号が格納された第2の配列データと、前記第1の配列データと前記第2の配列データとを対応付ける第3の配列データとを記憶する記憶手段を有する情報処理装置が、
     前記項目値又は前記レコード番号の指定に応じて、前記第1の配列データと前記第2の配列データと前記第3の配列データを用いて、前記テーブルに格納されている複数のレコードのうち、指定された前記項目値又は前記レコード番号に対応する1以上のレコードを取得する取得手順、
     を実行することを特徴とする情報処理方法。
     
    A table storing a plurality of records; a first array data storing predetermined item values included in each of the plurality of records; a second array data storing a record number for identifying the records; An information processing apparatus having storage means for storing third array data that associates the first array data with the second array data,
    Of the plurality of records stored in the table, using the first array data, the second array data, and the third array data in accordance with the designation of the item value or the record number, An acquisition procedure for acquiring one or more records corresponding to the specified item value or the record number;
    The information processing method characterized by performing.
PCT/JP2019/005141 2018-02-21 2019-02-13 Information processing system and information processing method WO2019163610A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-028665 2018-02-21
JP2018028665A JP2021067962A (en) 2018-02-21 2018-02-21 Information processing system and information processing method

Publications (1)

Publication Number Publication Date
WO2019163610A1 true WO2019163610A1 (en) 2019-08-29

Family

ID=67688098

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/005141 WO2019163610A1 (en) 2018-02-21 2019-02-13 Information processing system and information processing method

Country Status (2)

Country Link
JP (1) JP2021067962A (en)
WO (1) WO2019163610A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2023276162A1 (en) * 2021-07-02 2023-01-05

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091644A (en) * 1996-09-10 1998-04-10 Oki Electric Ind Co Ltd Method and device for processing data base query
WO2009095981A1 (en) * 2008-01-28 2009-08-06 Turbo Data Laboratories Inc. Method and device for building tree-structured data from table
JP2015207026A (en) * 2012-08-29 2015-11-19 株式会社ターボデータラボラトリー Information processor, record position information specification method and information processing program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091644A (en) * 1996-09-10 1998-04-10 Oki Electric Ind Co Ltd Method and device for processing data base query
WO2009095981A1 (en) * 2008-01-28 2009-08-06 Turbo Data Laboratories Inc. Method and device for building tree-structured data from table
JP2015207026A (en) * 2012-08-29 2015-11-19 株式会社ターボデータラボラトリー Information processor, record position information specification method and information processing program

Also Published As

Publication number Publication date
JP2021067962A (en) 2021-04-30

Similar Documents

Publication Publication Date Title
CN104123332B (en) The display methods and device of search result
JP5313337B2 (en) Providing search results for mobile computing devices
US7331517B2 (en) Article reader program, article management method and article reader
Vandic et al. Dynamic facet ordering for faceted product search engines
JP5083669B2 (en) Information extraction system, information extraction method, information extraction program, and information service system
JP4930153B2 (en) Document search system, document number subsequence acquisition apparatus, and document search method
JP2001043231A (en) File managing system, electronic filing system and hierarchical structure display method for file
US20070192305A1 (en) Search term suggestion method based on analysis of correlated data in three dimensions
US20110131211A1 (en) Methods and systems for visualizing topic location in a document redundancy graph
CN110222249B (en) Data storage method, device, computer equipment and storage medium
US20140032539A1 (en) Method and system to discover and recommend interesting documents
CN110546633A (en) Named entity based category tag addition for documents
US20120239657A1 (en) Category classification processing device and method
WO2014034383A1 (en) Information processing device, record location information specification method, and information processing program
US7756798B2 (en) Extensible mechanism for detecting duplicate search items
JP4973503B2 (en) File search program, method and apparatus
JP5512570B2 (en) Document processing apparatus, file server management support method, and file server management support program
JP4819628B2 (en) Method, server, and program for retrieving document data
JP5753056B2 (en) Search device, document management method, and document search system
US10762096B2 (en) Method for providing mail search result including at least one mail card, and mail service system for performing same
WO2019163610A1 (en) Information processing system and information processing method
JP5912949B2 (en) Business document processing system and program
CN105431841A (en) Cross-model filtering
JP5127553B2 (en) Information processing apparatus, information processing method, program, and recording medium
JP6520052B2 (en) INFORMATION PROCESSING APPARATUS AND INFORMATION PROCESSING PROGRAM

Legal Events

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

Ref document number: 19757041

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19757041

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP

NENP Non-entry into the national phase

Ref country code: JP