Abstract:
Computers duplicate all or part of the data in DB originals, hold the duplicates therein, and parallel edit the duplicates (alteration edit). Data defining the items of the data, in addition to the data recorded in DBs, is parallel edited. When the result of edit of an item table is judged to be effective through a process of parallel edit, the structure of the data is altered according to the contents. Although conventionally only “item designing before data input” or “item edit except inhibited parallel edit” is possible, the present invention enable parallel edit of items even after data input.

Description:
TECHNICAL FIELD 
       [0001]    The present invention relates to a method of parallel editing work to data item of database (hereinafter “DB”) by two or more computer (s) (hereinafter “PCs”). 
       BACKGROUND ART 
     &lt;General Operation Which Sets Up an Item Before Data Input&gt; 
       [0002]    At general DB operation, items are first specified, table is defined next and data will be input after that, as shown by non-patent literature 1. Non-patent literature 2, Non-patent literature 3 and Non-patent literature 4, which are general technical book for DB systems development, shows a procedure by which items of a table are first defined and data will be input after that. 
         [0003]    Patent document 1 first adds or deletes items of a template (paragraph 128) that has already been defined, alters names of these items (paragraph 150), and after that makes a (program utilizing) new table. Patent document 2 shows the same concept. Patent document 3 relates to a method creating new tables. These discussions on creating table items assume that table items have been created before data input. 
       &lt;SQL Language Prohibits Parallel Editing Work&gt; 
       [0004]    On the other hand, SQL language permits to change items after data input, by language specification. Non-patent literature 5 shows SQL commands. For example, there are “add new column” (P384), “change column type of table” (P389) and “delete a column of table” (P395), and so on. Non-patent literature 6 of p. 46-47 shows that columns can be added by command “ALTER, TABLE”. 
         [0005]    However, SQL language prohibits parallel editing work by permitting only one operation at a time. This is also described by chapter 5, “Updating, addition and deletion of data”, of Non-patent literature 5. Chapter 6, “Updating, addition and deletion of data”, of Non-patent literature 5 also describes advanced mechanisms, that prohibit parallel editing work by using a transaction consisting of plural related operations. One is “Roll back” that repeals all procedures of a transaction when an error such as interruption by another procedure occurs. Another is “Lock” that prohibits interruption to a procedure of a transaction by another procedure. 
       &lt;Parallel Editing Work Based on Cache Technology&gt; 
       [0006]    Cache technology, which creates duplication for working and performs procedure without the lock, is used for effective procedures and communications. ADO.NET of Microsoft makes a copy of data that is required for the present work from a server. Next it cut connection with the server and performs an editing work. After editing work, it makes a connection to the server again, and sends contents of editing work to the server. This “contents of editing work” will be repealed, if editing target has been already changed by other PCs. This is called as “Optimistic concurrency control” (Non-patent literature 7 and 8). This can be interpreted that; editing work is repealed when a lock goes wrong as a result. This is a kind of lock. 
       &lt;Limit of Conventional Technology&gt; 
       [0007]    Above are summarized as follow. Generally a change of an item is not made after data input. SQL forbids parallel editing work, though an item editing after an input of data is possible. Though, there is a method that performs temporal parallel editing work based on Cache, there is no consideration of changing items after data input. 
         [0008]    That is, there is no research that enables parallel editing work of items after input of data. This may come from that full-scale technology of parallel editing work to DB, which performs off-line editing work to DB for a long time and is different from temporal editing work such as cache, has not been established. There is a possibility that no one had imagined that it is possible to perform parallel editing work to data item that determines data structure of DB. 
         [0009]    Assuming that patent documents from 4 to 10 and non-patent literature 9 may relate with “cache” or “parallel editing work”, they were investigated. However, they only describe ways to resolve collisions of editing works. Patent documents 11 to 16 show a general level of technology and are different from the present invention.
   [Patent document 1] Patent application 2006-309697   [Patent document 2] WO/2008/043136   [Patent document 3] Patent application 2004-341770   [Patent document 4] Patent application H11-272533   [Patent document 5] Patent application S61-134853, A   [Patent document 6] Patent application 2005-216167, A   [Patent document 7] Patent application H9-91184, A   [Patent document 8] Patent application 2004-13867, A   [Patent document 9] Patent application 2004-86800, A   [Patent document 10] Patent application 2006-284998, A   [Patent document 11] Patent application 2000-194592   [Patent document 12] Patent application H11-161535, A   [Patent document 13] Patent application 2005-503606, A   [Patent document 14] Patent application 2005-508050, A   [Patent document 15] Patent application H8-16447, A   [Patent document 16] Patent application 2000-501532, A   [Patent document 17] PCT/JP2009/002491   [Non-patent literature 1] Takashi Shikii, “C++Builder database programming No 2” InsideWindows™, SoftBank, Vol. 3, No. 12, Dec. 1, 1997, p 71-77, TOKYO JAPAN (In Japanese)   [Non-patent literature 3] Wallace B. McClure, el at, Professional ADO.NET 2: Programming with SQL Server 2005, Oracle, and MySQL, Wiley Publishing, Inc. 2006 “Windows™ database programming”, ADO.NET Specialization lecture Volume VB.NET, and Apr. 4, 2003 &gt; (First Edition) SHOEISHA”   [Non-patent literature 6] Kevin Kline, Daniel Kline, Ishii and others (supervised translation), Idea Collaboration (translation), SQL Quick Reference, O&#39;Reilly Japan, Nov. 2, 2001 First Edition (In Japanese)   [Non-patent literature 7] MSDN subscriptions Library, “Outline of data concurrency control on ADO.NET”, January 2007, Disk File(URL: ms-help://MS.MSDNQTR.v80.ja/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_raddata/html/d5293098-4a88-4110-abd2-34d9e6661664.htm)   [Non-patent literature 8] MSDN subscriptions Library, “Tutorial: Processing exceptions of concurrent processes”, January 2007, Disk File (URL: ms-help://MS.MSDNQTR.v80.ja/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_raddata/html/73ee9759-0a90-48a9-bf7b-9d6fc17bff93.htm)   [Non-patent literature 9] KAWASHIMA, T., and HIROKAWA, H., YAMASHITA, M., “A World-wide Distributed File System SKINNY”, IPSJ SIG Notes 95-S-70-1, Academic Publication IPSJ SIG Notes Vol. 95, No. 79 ISSN 0919-6072   [Non-patent literature 10] “Major functions, and merits”, [online], Searched at Apr. 22, 2007 Internet(URL:http://www.sonicsoftware.co.jp/products/object_store/function.html)   [Non-patent literature 11] “MVCC (Multi Version Concurrency Control) 9.1. Introduction”, [online], Searched at Apr. 2, 2007 Internet (URL:http://www.postgreSQL.jp/document/pg721doc/user/mvcc.html #MVC C-INTRO)   [Non-patent literature 10] “.9.5. Data consistency check at application level”, [online], Searched at Apr., 22, 2007 Internet (http://www.postgreSQL.jp/document/pg721doc/user/applevel-consistency.html)   [Non-patent literature 12] “Cache Technology Guide”, [online], Searched at Apr. 22, 2007 Internet (URL:http://www.intersystems.co.jPCsache/technologyguide/technologyguide.html)   [Non-patent literature 13] “Major functions and merits”, [online], Searched at Apr. 22, 2007 Internet (URL:http://www.sonicsoftware.co.jp/products/object_store/function.html)   
 
       DESCRIPTION OF THE INVENTION 
     Problems to be Solved by the Invention 
       [0038]    The present invention shows mechanism that performs parallel editing work to data item by plural PCs. 
       Means for Solving the Problem 
     &lt;Parallel Editing Work&gt; 
       [0039]    Parallel editing work of this specification is holding duplications of whole or a part of DB original and performing duplications on these duplications. This DB original can exist really, or cannot exist really that means this original DB is imaginary. At latter case, duplicated DBs of PCs synchronize each other. By this synchronization, these duplicated DBs synchronize with the imaginary “original DB” (Patent document 17). Another method is that; duplicated DBs of PCs synchronize with all or a part of the original DB that is updated by server. Each duplicated DB can exist permanently or temporarily in each PC. 
       &lt;Separation of Item Definitions and Parallel Editing Work&gt; 
       [0040]    Foundation of the present invention is handling definitions of items of data of DB (hereinafter, “item definition”) as data of DB and treating them as objects of parallel editing work. For conventional relational DB (RDB), items of a table (hereinafter, a “data table”) are first defined, and after that, data entry and editing work will start. On the contrary, the present invention makes a table (hereinafter, “item table”) that defines items of the data table. This item table will be treated as an object of parallel editing works. When item table is edited, data table will be updated according to the item table, if necessary. 
         [0041]    Although “item table” is direct expression for RDB, “item definition” will be used in the claims for more general DBs. Instead of “data table”, data will be used for expressing more general concept. That is, methods described in this specification by item table and data table will be applied to more general DB. Non-patent literatures 10, 11, 12 and 13 show examples other than RDB, such as object-oriented DB and so on. 
         [0042]    Relations between “editing work to item table” and “editing work to data table” are classified into the following, according to contents of editing work to the item table; (A) Parallel editing work is permitted unconditionally. (B) Parallel editing work is permitted, if there is no logical inconsistency. (C) Parallel editing work is not permitted. Parallel editing work to item table and data table is described by these classifications. Parallel editing work is perfect, if it is possible to perform parallel editing work to item table, parallel editing work to data table, and further parallel editing work to both item table and data table. 
         [0043]    Even if other PCs perform editing work to data, there is no problem of editing work that only alters item name or style (numerical format or item width) of data item. This is “(A) Parallel editing work is permitted unconditionally”. 
         [0044]    While “data input” or “updating of data” are performed using item definitions, it was impossible to edit item definitions. Because that the definitions are recorded as fundamental information of database. The present invention separates item table and data table, and treats them as objects of parallel editing work, and enables to perform parallel editing work. If there is a technology of parallel editing work, this technology will be applied to item table and data table. 
         [0045]    If there is a possibility that data or data structure of data table maybe changed by a change of item table, this change will be permitted under restriction that the change does not cause logical inconsistency. This is “(B) Parallel editing work is permitted, if there is no logical inconsistency”. 
         [0046]    If new item of sex for name list has only choices of male or female and has no choice of default, a logical inconsistency may occur when the item is set to data that is already input. If the item has choices of male, female or “unknown” that is default, the inconsistency will not occur. This inconsistency will be resolved, if male or female is set as default, or if the item has choices of “male, female or unknown that is a default”. 
         [0047]    This example is simple. However, even if sufficient thinking is performed, there is a possibility that logical inconsistency will occur for unexpected data. Even if it is confirmed that there is no logical inconsistency against existing (inputted) data, there may be an error against newly input data or updated data during the confirmation. 
         [0048]    From these discussions, required is a process of verifying logical consistency certainly. This confirmation result should be same for all related PCs. If data table is updated by a change of item table, these results should be same for all PCs. Ways answering these requests will be shown later. 
         [0049]    Even if a case may be “(B) Parallel editing work is permitted if there is no logical inconsistency”, this case can be treated as (C) Parallel editing work is not permitted“. Though prohibition of parallel editing work makes editing inconvenient, it prevents competition of editing work and synchronizes duplicated DBs of PCs easily. Procedure to prohibit parallel editing work will be shown later. 
       &lt;Confirmation of Item Change and an Update Procedure of Data Table Structure&gt; 
       [0050]    All related PCs should have same results of confirmation that a change of item table has no logical inconsistency. Suppose that a logical inconsistency occurs in a certain PC, and this inconsistency does not occur in another PC. If so, it is impossible to synchronize duplicated DBs of these PCs. Data structure of these PCs should be same after updating. Actual procedure to implement them will depend on ways of parallel editing work. 
         [0051]    As one case, suppose that server updates the original DB. Further suppose that each of duplicated DB of each PC synchronizes with whole or a part of the original DB. Here, duplicated DBs of PCs are same. Because only the server performs confirmation of changing items of data and updates data table structure. 
         [0052]    As another case, suppose the following steps (Patent document 17). Each PC has a duplicated DB that synchronizes with (whole of or a part of) imaginary or existing original DB. Each PC performs editing work to each duplicated DB. PCs exchange their contents of editing work each other. And each PC updates each duplicated DB. For this case, important is the sequence of contents of editing work to item table and data table. Results of detecting logical inconsistency by item table or results of updating data table structure differ from each other, if PCs use different sequence of contents of editing work to update duplicated DBs. 
         [0053]    For preventing this trouble, the following steps will be used. Sequence number is assigned to each set of contents of editing work of parallel editing work, to data table and that to item table of the data table. Each PC should take out contents of editing work by this sequence (ordinal) number and should update each duplicated DB. Even if some contents of editing work make a error for a data item, all duplicated DB synchronizes each other because the contents of editing work make same error at every PC. 
         [0054]    There are several ways to assign ordinal numbers. One is consisting of the following steps. Contents of editing work of parallel editing work to a “data table” and “item table for the data table”, are sent up to server. The server sets them in a line in arriving order, which is single queue. Each duplicate DB synchronizes each other, if each PC receives contents of editing work and updates each duplicated DB by this order. 
         [0055]    Even if the server (or a specific PC) changed contents of editing work from PCs, or even if the server changed the sequence of them, each duplicate DB synchronizes each other because each PC updates each duplicated DB by same (changed) sequence of contents of editing work (of same changed contents). 
         [0056]    Another is consisting of the following steps. PC asks an ordinal number to a server (or PC) that manages ordinal numbers. PC sets this number to a set of contents of editing work created by this PC. Even if contents of editing work are exchanged among PCs directly, these ordinal numbers are unique. Instead of sequence number, time can be set to a set of contents of editing work. Time can be used as a substitute of sequence number as another ordinal number. In order to avoid confusion by time differences among PCs, we need another trick such that specific PC will be in charge of managing time. 
       &lt;Procedure Prohibiting Parallel Editing Work&gt; 
       [0057]    For the following explanations, we assume that there is an editing work (X) performed to certain item table and assume that competing parallel editing work is prohibited. That is, “period of prohibiting editing work” for other PCs is a period from the start of editing work X to completion time of editing work X and of getting ordinal number for X. The duplicated DB of the PC will be updated by a sequence of received contents of editing work including the contents of editing work X. After that, “period of prohibiting editing work” is canceled and further editing work to any duplicated DB is not prohibited. 
         [0058]    One method is that the server detects an editorial work during this edit prohibiting period and repeals it. For example, in case that “contents of editing work” are sent up to server, this PC also notifies “prohibition of parallel editing work before the editing work X” to server. By this notification, server repeals “contents of editing work”. Although this is a simple procedure, effort spent for the repealed “editing work” will be useless. 
         [0059]    Another method is that the prohibition is sent to PCs. The PC of editing work X directly notifies other PCs, or notifies server and server notifies other PCs. After receiving notification of prohibition of editing work, PC will not perform editing work to duplicated DB. But this PC can update the duplicated DB. After receiving the cancelation of prohibition of editing work, it can start editing works. 
         [0060]    One type of prohibition is a prohibition of editing work by other PCs, to same item table. Another is a prohibition of editing work by other PCs, to the data table of which items are defined by the item table. 
       &lt;Referring to Claims of the Original Submission&gt; 
       [0061]    Parallel editing work of this specification is to hold duplicate of whole or a part of DB original and to perform editing work to this copy. Foundations of the present invention consist of the following: this parallel editing mechanism, a process treating “item definitions for data contained in DB” as data of DB, and a process to reconstruct duplicated data by updated item definitions. This is claim  1 . Claim  2  is based on claim  1  and manages contents of editing work for duplicated data and duplicated item definition by a single queue. Claim  3 , beyond claim  2 , further contains a case that one set of contents of editing work has records of modifications to data and records of modifications to items (which is explained in paragraph 47 of this description for  FIG. 3 ). Claim  4  further contains a process to judge validity of said contents of editing work. 
         [0062]    Claim  5  consists of, a process to hold duplicated data and duplicated item definitions, a process to edit item definitions, and a process to manage contents of editing work for them by a single queue. Claim  6  further contains “judging validity of said contents of editing work”. Claim  7  consists of claim  5  and a process to halting editing work by other PCs during editing work to the item definitions. 
       Effect of the Invention 
       [0063]    There was no research that enables parallel editing work to items by plural PCs after starting data entry. The present invention enables the following. Each PC keeps duplications of whole or a part of the DB original. PCs perform parallel editing works to their duplications. And, PCs performs parallel editing works to items of their duplications. These are called “full-scale parallel editing works on DB”. 
     
    
     
       BRIEF EXPLANATION OF FIGURE 
         [0064]    [ FIG. 1 ] Overview of general example 
           [0065]    [ FIG. 2 ] Apparatus structure implementing the present invention 
           [0066]    [ FIG. 3 ] Procedure to make and synchronize initial duplicated TBL 
           [0067]    [ FIG. 4 ] Procedure to edit duplicated TBL and to send up contents of editing work to server 
           [0068]    [ FIG. 5 ] Procedure to reconstruct duplicated data TBL by the contents of duplicated item TBL 
           [0069]    [ FIG. 6 ] Procedure to show records of duplicated data TBL based on the contents of duplicated item TBL 
           [0070]    [ FIG. 7 ] Example of TBL contents 
           [0071]    [ FIG. 8 ] Figure explaining example procedures 
           [0072]    [ FIG. 9 ] Procedure to prohibit parallel editing work 
       
    
    
     DESCRIPTION OF NOTATIONS 
       [0000]    
       
           0101  PC-A 
           0102  PC-B 
           0103  Server 
           0104  Communications Network (Such as Internet or others) 
           0105  Memory Unit (of Server) 
           0106  Initial item TBL 
           0107  Initial data TBL 
           0108  Contents of editing work ( 1 ) 
           0108  Contents of editing work ( 2 ) 
           0201  PC (Computer) 
           0202  Communications Network (Such as Internet or others) 
           0203  Means for communication 
           0204  Means making initial duplicated TBL 
           0205  Means synchronizing duplicated TBL 
           0206  Means making contents of editing work to duplicated TBL 
           0207  Means sending up contents of editing work to server 
           0208  Means reconstructing duplicated data TBL by the contents of duplicated item TBL 
           0209  Means showing or printing records of duplicated data TBL by the contents of duplicated item TBL 
           0210  Server 
           0211  Duplicated item TBL 
           0212  Duplicated data TBL 
           0213  Contents of editing work 
           0214  Contents of editing work 
           0215  Contents of editing work 
           0216  Contents of editing work 
           0301  Investigate whether duplicated TBL is already created in the computer or not 
           0302  Procedure making duplicated TBL 
           0303  Check whether non-received “contents of editing work” exists in server or not 
           0304  Procedure receiving contents of editing work from server 
           0305  Takes out “contents of editing work” received, in order 
           0306  Confirm validity of contents of editing work 
           0307  Update duplicated item TBL 
           0308  Update duplicated data TBL 
           0401  Specify contents of editing work 
           0402  Set a version to duplicated TBL (or duplicated DB) that is a target of editing work by contents of editing work 
           0403  Send up contents of editing work to server 
           0501  Confirm whether addition, modification or (actual) deletion exists or not 
           0502  Make empty data TBL of new item structure 
           0503  Take out a record of old duplicated data TBL 
           0504  Copy it to duplicated data TBL 
           0505  Confirm assigned conversion procedure 
           0506  Execute conversion procedure 
           0601  Check each record of duplicated item TBL, in order of showing 
           0602  Confirm whether the item is to be shown or not 
           0603  Make item of duplicated data TBL to be shown 
           0604  Take out records of duplicated data TBL in order 
           0605  Show record value for corresponding item 
           0701  Duplicated item TBL 
           0702  Duplicated data TBL 
           0703  The first appearance 
           0704  Change to “Deletion=True” 
           0705  The next appearance 
           0801  Server 
           0802  PC-A (Computer A) 
           0803  PC-B (Computer B) 
           0804  Initial DB (Initial item TBL  0106  and Initial data TBL  0107 ) 
           0805  Duplicated DB of PC-A (duplicated item TBL  0211  and duplicated data TBL  0212 ) 
           0806  Duplicated DB of PC-B (duplicated item TBL  0211  and duplicated data TBL  0212 ) 
           0807  Initial DB acquisition by PC-A 
           0808  Initial DB acquisition by PC-B 
           0809  Confirmation and synchronization 
           0810  Editing work to duplicated item TBL 
           0811  Sending up “contents of editing work” 
           0812  Confirmation and synchronization 
           0813  Showing to an operator 
           0814  Result of structural reconstruction of duplicated data TBL (contents of editing work) 
           0815  Confirmation and synchronization 
           0816  Showing to an operator 
           0817  Confirmation and synchronization 
           0901  Notify other PCs to halt editing work 
           0902  Make contents of editing work to duplicated item TBL 
           0903  Send contents of editing work to other PCs 
           0904  Notify other PCs to release halting editing work 
       
     
       BEST MODE OF CARRYING OUT THE INVENTION 
       [0146]    A word “table” is abbreviated as “TBL” in the following descriptions and figures.  FIG. 1  shows the overview of general example. This consists of two PCs (PC-A  0101 , PC-B  0102 ) and a server  0103 , which are connected through a communications network such as Internet  0104 . There are “initial item TBL  0106 ” and “initial data TBL  0107 ” in memory Unit  0105  of the server. PCs (PC-A  0101  and PC-B  0102 ) copy them as initial of “duplicated item TBL  0211 ” and as initial of “duplicated data TBL  0212 ”. It is possible that each PC creates an empty table as an initial table. A phrase “duplicated TBL” means both of “duplicated item TBL” and “duplicated data TBL”. 
         [0147]    When a PC has performed editing work to duplicated TBL, it sends the “contents of editing work” to the server that records it to memory unit  0105 . In  FIG. 1 , contents of editing work to item. TBL and contents of editing work to data TBL  0108 ,  0109  are set in one line (single queue) by arrival order and are managed. 
         [0148]    Generally saying, PC is constructed from arithmetic unit, main memory unit, secondary memory, input/output unit, communication unit and monitor unit, which are connected each other by bus. PC-A  0101  and PC-B  0102  of  FIG. 1  read programs that are based on the present invention. Each PC acts as aggregate of memory unit  0210  and means shown in  FIG. 2 . PC  0201  connects to a communications network such as Internet  0202 , by means for communication  0203 . It communicates with server  0210  of the other side. 
         [0149]    It implements “means making initial duplicated TBL”  0204 , “means synchronizing duplicated TBL”  0205 , “means making contents of editing work to duplicated TBL”  0206 , “means sending up contents of editing work to server”  0207 , “means reconstructing duplicated data TBL by the contents of duplicated item TBL”  0208 , and “means showing or printing records of duplicated data TBL by the contents of duplicated item TBL”  0208 . 
         [0150]    Duplicated item TBL  0211  and duplicated data TBL  0212  exist in memory unit  0210 . Each “contents of editing work”  0213 ,  0214  was created for each editing work to each of them. PC receives “contents of editing work” of other PC from the server, and also receives ordinal numbers for this “contents of editing work” from the server. PC also receives ordinal numbers for “contents of editing work” made by this PC, from the server. And, “duplicated item TBL” and “duplicated data TBL” are updated by them. If “contents of editing work” for item TBL and “contents of editing work” for data TBL are set in a single line of the server, PC also makes a single line (contents of editing work  0215 ,  0216 ) and updates duplicated item TBL  0211  and duplicated data TBL  0212 . 
         [0151]    By “means making initial duplicated TBL”  0204 , initial TBLs (initial item TBL  0106  and initial data TBL  0107 ) in server are copied to PC. They are called initial duplicated TBLs (initial duplicated item TBL and initial data TBL  0212 ) of this PC. These jobs will be done when there is no initial duplicated TBL. If there is no initial TBL and if each PC understands that initial TBL is empty, each PC makes an empty duplicated TBL, which will be used as initial duplicated TBL. After operator of PC defines items to empty “duplicated item TBL”, empty data TBL can be created by these item definitions. 
         [0152]    “Means synchronizing duplicated TBL”  0205  receives “contents of editing work”  0106   0107 , performs “judging validity of contents of editing work”, updates contents of duplicated TBLs (duplicated item TBL  0211  and duplicated data TBL  0212 ) by (judged as) valid “contents of editing work”. 
         [0153]      FIG. 3  shows a process by “means making initial duplicated TBL”  0204  and “means synchronizing duplicated TBL”  0205 . 
         [0154]    At first, “Investigation whether duplicated TBL is already made in the computer or not”  0301  is performed. If not, PC makes initial duplicated TBLs by copying initial TBLs (initial item TBL  0211  and initial data TBL  0212 ). Or, PC makes empty “duplicated TBL” as initial  0302 . This is a process of “Means making initial duplicated TBL”  0204 . 
         [0155]    Next, PC confirms that the server  0103 ,  0210  has “contents of editing work” that are not yet received by this PC. If so, PC receives these “contents of editing work” from the server  0304 . And, PC takes out “contents of editing work” received, in order, performs “confirming validity of contents of editing work”  0306 . If valid, PC updates duplicated item TBL  0307  or updates duplicated data TBL according to each target of “contents of editing work”.  FIG. 3  shows a procedure for a case that one “contents of editing work” has editing work either of a duplicated item TBL or a duplicated data TBL. One “contents of editing work” can contain both types of “contents of editing work”. In this case, “updating duplicated item TBL”  0307  and “updating duplicated data TBL”  0308  will be performed in order, according to “contents of editing work”. This is a procedure of “means synchronizing duplicated TBL”  0205 . 
         [0156]    “Means making contents of editing work for duplicated TBL” performs editing work to duplicated item TBL  0211  and duplicated data TBL  0212 . These “contents of editing work” will be sending up to the server, by “means sending up contents of editing work to server”  0207 .  FIG. 4  shows this procedure. At first, “specify contents of editing work”  0401  is performed. Next, “set a version of duplicated TBL (or duplicated DB) that is a target of editing work by contents of editing work”  0402  is performed. And “sending up contents of editing work to server”  0403  is performed. 
         [0157]    Contents of editing work  0108 ,  0109  that are sent up to the server, will be received by other PCs, which use their “means synchronizing duplicated TBL”  0205 . And, “confirming validity of contents of editing work”  0306  is performed, and duplicated TBL of these PCs will be updated. “Means synchronizing duplicated TBL”  0205  will be performed also by the computer that sent up the “contents of editing work”. 
         [0158]    These means implement parallel DB access to an item TBL and a data TBL of the item TBL. Other means handles relations among an item table and an original table of the item table. 
         [0159]    “Means reconstructing duplicated data TBL by the contents of duplicated item TBL”  0208  creates an empty original table of new item structure, if records of item table are added or changed or (really) deleted. Old original data records will be copied and moved. When “deletion” only means not to show to operator, there is no need to reconstruct duplicated data TBL. 
         [0160]      FIG. 5  shows this procedure. At first, it confirms that records of item table are added or changed or (really) deleted. If so, empty data TBL of new item structure will be created  0502 . After that, “taking out records of old duplicated data TBL”  0503  is performed. Each record is copied to duplicated data TBL  0504 . If a item was (really) deleted, the value is not (cannot) moved to new original table. 
         [0161]    If DB software (to be used) has a function that edits item and performs related changes about table structure, this function may be used. In this case, “means reconstructing duplicated data TBL by the contents of duplicated item TBL”  0208  will be implemented by this function according to contents of duplicated item TBL. 
         [0162]    If conversion procedure, which sets value of new item from value of existing item, has been specified, the following steps will be performed. “Taking out a record of old duplicated data TBL”  0503  of  FIG. 5  is performed. After a procedure of “copying it to new duplicated data TBL”  0504 , “confirming assigned conversion procedure”  0505 , and “executing the conversion procedure”  0506  are performed. An example of conversion procedure is shown later. 
         [0163]    By “means showing or printing records of duplicated data TBL by the contents of duplicated item TBL”  0209 , items with flags to show will be shown in a sequence that is specified in a record of duplicated item TBL  0211 . And, records of duplicated data TBL  0212  will be shown (or printed). As for an item record with “Display=False”, values for this item will not be shown (or printed) at the duplicated data TBL  0212 . 
         [0164]      FIG. 6  shows this procedure. “Checking each record of duplicated item TBL, in order of showing” is performed. “Confirming whether an item is to be shown or not” is performed. If “Display=True”, “Making item of duplicated data TBL to be shown” is performed. “Taking our records of duplicated data TBL in order”  0604  and “showing record value for corresponding item”  0605  will be performed. 
       &lt;An Example of Conversion Procedure&gt; 
       [0165]    An example is explained using duplicated item TBL  0701  and duplicated data TBL  0702  of  FIG. 7 . Duplicated item TBL  0701  has records of “student name”, “evaluation” and “admission day”, which determine items of duplicated data TBL  0702 . Duplicated data TBL  0702  has two records. 
         [0166]    “The first appearance”  0703  is an appearance before the record with “ID=4” is added to duplicated item TBL  0701 . With this time, item with “ID=4” (addition (2)) does not exist in duplicated data TBL  0702 . Records of the duplicated data TBL have no value of the item. 
       [Conversion Procedure]: 
       [0167]    This converts the evaluation from 0-100 to success/failure. This conversion will be implemented by combining deletion and addition of items. 
         [0168]    At first, status of record ID=2, which defines a item of “evaluation”, is changed to deleted status, by changing value of “deletion” from “False” to “True”  0704 . Next, a new record (ID=4) for item of “evaluation” is created. This is “addition (1)”. 
         [0169]    Next, defined is a conversion procedure that changes old value of “evaluation” to new value of “evaluation”. For example, 0-59 will be “failure” and 60-100 will be “success”. Other numbers or strings that cannot be converted to numbers will be “unknown”. 
         [0170]    Results of the execution of the conversion procedure are values of item ID=4 (addition (2)) of each record of duplicated data TBL  0702 . By showing this, “the first appearance”  0703  will be changed to “the next appearance”  0705 . Item ID=2 of the old record is not shown and new item ID=4 is shown. And, an operator understands that item of “evaluation” is changed. 
       [Revival of Deletion]: 
       [0171]    Item with deletion flag can be revived by clearing the flag. Value of the item of old record will be shown. In above-mentioned example, “the first appearance” can be shown again, by the following steps. Item record of ID=4 is changed to “Deletion=True”  0704 . Item record of ID=2 is revived by changing to “Deletion=False” 
       [Order of Showing]: 
       [0172]    “The first appearance”  0703  and “the next appearance”  0705  show items of “student name”, “evaluation” and “admission day”, in a sequence of values of “display order” of item table. By changing values of “display order” of the item table, showing order of items of original table will be changed. 
       [Flow of Procedure]: 
       [0173]      FIG. 8  shows a procedure assuming that DB has a “duplicated item TBL” and a “duplicated data TBL”, and updating work to them are managed by versions of this DB. 
         [0174]    PC-A 0802  and PC-B 0803  receives  0807  initial DB  0804 , which has initial item TBL  0106  and initial data TBL  0107 , as duplicated DBs  0805 ,  0806  of them. These duplicated DBs have duplicated item TBLs  0211  and duplicated data TBLs  0212 . Their versions are zero, because they were copied from initial DB  0804  of version 0 in server  0801 . After that, “contents of editing work” 1-6 are sent up to the server. They are “contents of editing work” sent by PCs other than PC-A  0802  and PC-B  0803 . 
         [0175]    Before starting editing work to duplicated item TBL, PC-A  0802  performs synchronization  0809  as the first step. With this time, “contents of editing work” 1-6 are received from the server  0801 , version of duplicated DB  0805  will be set to 6. And, an editing work  0810  to duplicated item TBL  0211  in Duplicated DB  0805  is performed. The “contents of editing work” will be sent  0811  up to the server, and will be recorded as “contents of editing work” 7. 
         [0176]    Just after this, “contents of editing work”, that was previously sent  0811  up, is judged as valid. The “contents of editing work” is confirmed as “contents of editing work” 7. This result will be shown to an operator of computer A  0802 . 
         [0177]    If editing work  0810  to the duplicated item TBL  0211  requires reconstruction of corresponding duplicated data TBL, (program of) PC-A  0802  reconstructs the “duplicated data TBL” and sends the result to the server as “contents of editing work”  0814 . This “contents of editing work” will be “contents of editing work” 8 in the server. PC-A  0802  performs synchronization  0815 , and shows results by settled “contents of editing work” to an operator of PC-A  0802 . PC-B  0203  also performs synchronization  0817  of duplicated item TBL  0211  and duplicated data TBL  0212 . 
       &lt;Prohibition of Parallel Editing Work&gt; 
       [0178]    Procedure of  FIG. 9  will be used to stop editing work by other PCs during editing work to duplicated item TBL  0211  of a PC. At first, “notifying other PCs to halt editing work”  0910  is performed. Next, “making contents of editing work to ‘duplicated item TBL’”  0902  and “sending contents of editing work to other PCs”  0903  will be performed. And, “notifying other PCs to release halting editing work”  0904  will be performed. 
       INDUSTRIAL APPLICABILITY 
       [0179]    Most of traditional database operations are simple that: At first, items of table will be designed. After that, data is input to this table and is edited. “SQL Language specification” permits editing work to item definitions, even if data was already input. But parallel editing work is prohibited. Parallel editing work to items by plural PCs becomes possible by the present invention. This brings a great flexibility to database operation.