Sorting

Database managing system

6493725

Abstract

Information processing devices each creates a dirty bit indicative of the presence or absence of update per tip in a sharing region, and updates the dirty bit in accordance with an operation on the tip. A synchronize processing section compares dirty bits of corresponding tips in a synchronous process so as to judge whether the tips have been updated in the both parties. When there is an update in the both parties, a priority side is decided in accordance with a predetermined rule, for example, such as the promoting side of the synchronous process before transmitting the entire contents of the tips. Further, the synchronous processing section sends the contents of the tip on the priority side to the information processing device on the non-priority side so as to replace the contents of the tip on the non-priority side, thereby realizing a database managing device capable of carrying out the synchronous process with a small effort and a small amount of communications data without increasing the size of the database even when plural data corresponding to each other are independently updated.


Claims

What is claimed is:

1. A database managing device for constituting a database system which includes a plurality of database managing devices and synchronous process means for making a coincidence of corresponding data between databases respectively stored in the plurality of database managing devices which are ready to communicate,

said database managing device comprising:

at least one database;

state information storing means for storing state information indicative of a change in data which occurs in a non-synchronous period between a previous synchronous process and a next synchronous process, said state information storing means storing the state information per data corresponding to data of a database of another party;

collision detecting means for detecting in a synchronous process whether data changed in a pair of the corresponding data are plural based on state information of each data of the pair; and

priority side deciding means for deciding, when data changed are plural, which of the data should be given a priority before transmitting all contents of the plural data changed so that data contents on a non-priority side are replaced with data contents on a priority side by the synchronous process means.

2. The database managing device as set forth in claim 1, wherein said priority side deciding means decides the priority side by comparing respective partial contents of the plural data changed.

3. The database managing device as set forth in claim 1, wherein, when data changed are plural, said priority side deciding means makes an inquiry as to which of the data should be given a priority.

4. The database managing device as set forth in claim 3, wherein, when data changed are plural, said priority side deciding means decides the priority side by making an inquiry as to which of the data should be given a priority so as to instruct the priority side to the synchronous process means based on the priority side decided and a priority side specified by the another party, and

said priority side deciding means disconnects communications with the another party between the inquiry and the instruction of the priority side.

5. The database managing device as set forth in claim 1, comprising:

priority side information storing means for storing priority side information indicative of which of the data should be given a priority when data changed are plural,

wherein said priority side deciding means decides the priority side based on the priority side information.

6. The database managing device as set forth in claim 1, comprising:

detecting means for detecting a non-coincidence between the priority side decided by said priority side deciding means and a priority side specified by the another party.

7. The database managing device as set forth in claim 1, comprising:

sub set setting means for setting a sub set in said at least one database,

wherein said state information storing means stores the state information with respect to data which had been contained, at a time of the previous synchronous process, in the sub set which was shared with the database of the another party.

8. The database managing device as set forth in claim 1, wherein the synchronous process means carries out the synchronous process with respect to data contained in a sharing region of each of the databases,

said database managing device including sharing setting means for making a correspondence of sharing regions between said at least one database and the database of the another party.

9. The database managing device as set forth in claim 1, wherein the synchronous process means carries out the synchronous process with respect to data contained in a sharing region of each of the databases,

said database managing device including sharing releasing means for cancelling a correspondence between sharing regions which are made corresponded to each other.

10. The database managing device as set forth in claim 1, comprising:

sharing setting means for specifying before a synchronous process a sharing region which stores the corresponding data between the databases,

wherein said sharing setting means newly creates a sub set to be a sharing region in at least one of the databases to which sharing was instructed.

11. The database managing device as set forth in claim 1, comprising:

sharing setting means for specifying a sharing region, which stores the corresponding data, between the databases at a time before a synchronous process,

wherein said sharing setting means instructs, after sharing setting, the synchronous process means to carry out a synchronous process between sharing regions made corresponded to each other.

12. The database managing device as set forth in claim 1, wherein said database system includes sharing setting means for specifying sharing regions, which store the corresponding data, between databases based on instructions of the plurality of database managing devices before a synchronous process, and wherein said database managing device comprises:

sharing releasing means for canceling a correspondence between the sharing regions specified by said sharing setting means,

wherein said sharing releasing means instructs, before sharing release, the synchronous process means to carry out a synchronous process between the sharing regions made corresponded to each other.

13. The database managing device as set forth in claim 1, wherein said database system includes sharing setting means for specifying sharing regions, which store the corresponding data, between databases before a synchronous process, and wherein said database managing device comprises:

at least one sharing releasing means for cancelling a correspondence between the sharing regions specified by the sharing setting means,

wherein one of said at least one sharing releasing means deletes data contained in at least one of the sharing regions.

14. The database managing device as set forth in claim 13, wherein said at least one sharing releasing means deletes no data in one of the sharing regions whose correspondence is to be cancelled, and deletes data in the other of the sharing regions.

15. The database managing device as set forth in claim 13, wherein:

said at least one sharing releasing means is plural, and

said database managing device further includes selecting means for making, at a time of sharing setting, a selection as to which of said at least one sharing releasing means should be used.

16. The database managing device as set forth in claim 1, wherein said database system includes sharing setting means for specifying sharing regions, which store the corresponding data, between databases based on instructions of the plurality of database managing devices before a synchronous process, and wherein said database managing device comprises:

at least one sharing releasing means for cancelling a correspondence of the sharing regions specified by the sharing setting means,

wherein one of said at least one sharing releasing means deletes at least one of sub sets to be the sharing regions.

17. The database managing device as set forth in claim 16, wherein:

said at least one sharing releasing means is plural, and

said database managing device further includes selecting means for making a selection, at a time of sharing setting, as to which of said at least one sharing releasing means should be used.

18. A recording medium recording a program for managing and making a coincidence of contents of corresponding data between a plurality of databases,

said recording medium recording a program for operating a computer, the program being recorded in a form of:

at least one database;

state information storing means for storing state information indicative of a change in data which occurs in a non-synchronous period between a previous synchronous process and a next synchronous process, said state information storing means storing the state information per data corresponding to data of a database of another party, the synchronous process for making a coincidence of corresponding data between a plurality of databases respectively stored in a plurality of database managing devices which are ready to communicate;

collision detecting means for detecting in the synchronous process whether data changed in a pair of the corresponding data are plural based on state information of each data of the pair; and

priority side deciding means for deciding, when data changed are plural, which of the data should be given a priority before transmitting all contents of the plural data changed so that data contents on a non-priority side are replaced with data contents on a priority side by the synchronous process means.

19. A method for managing a database, comprising the steps of:

(1) managing and making a coincidence of contents of corresponding data between databases respectively stored in a plurality of database managing devices which are ready to communicate; and

(2) updating state information indicative of a change in data, in which each of the plurality of database managing devices individually monitors a change in data in a non-synchronous period between a previous said step (1) and a next said step (1) per data corresponding to data of a database of another party,

said step (1) including the steps of:

(i) detecting whether data changed in a pair of the corresponding data are plural based on state information of each data of the pair; and

(ii) deciding, when data changed are plural, which of the data should be given a priority before transmitting all contents of the plural data changed so that data contents on a non-priority side are replaced with data contents on a priority side.

20. A database managing device for constituting a database system which includes a plurality of database managing devices and synchronous process means for making a coincidence of corresponding data between databases respectively stored in the plurality of database managing devices which are ready to communicate,

said database managing device comprising:

at least one database;

sub set setting means for setting a sub set in said at least one database, the sub set being set as a sharing region with a database of another party;

state information storing means for storing state information with respect to data which had been contained in the sub set at least at a time when a previous synchronous process was finished, the state information including (a) update information indicative of whether the data had been updated in a non-synchronous period between the previous synchronous process and a next synchronous process and (b) movement information indicative of whether the data had been moved in and out of the sub set in the non-synchronous period; and

state information update means for monitoring data whose corresponding state information is stored in said state information storing means so as to update respective state information of the data in the non-synchronous period.

21. The database managing device as set forth in claim 20, comprising the synchronous process means,

said synchronous process means including:

correspond means for making a correspondence of data between the sharing region and a sharing region of the another party; and

judging means for judging, with respect to each pair of data made corresponded to each other, whether it is required to transmit contents of the data based on the state information stored in said state information storing means and information received from a database managing device of the another party.

22. The database managing device as set forth in claim 21, wherein said judging means includes inside-outside judge synchronize means for setting the state information inside and outside of the sub set with respect to the each pair of data made corresponded to each other, said inside-outside judge synchronize means setting the state information inside the sub set when state information indicating that the data had been moved into and have been currently existing in the sub set is stored in at least one of the plurality of database managing devices, and when the state information of said database managing device indicates that the data are inside the sub set and the database managing device of the another party notifies that the data making up the each pair of data are inside the sharing region of the another party, and said inside-outside judge synchronize means setting the state information outside the sub set when otherwise.

23. The database managing device as set forth in claim 22, wherein said judging means includes:

priority side judging means for judging which data should be given a priority with respect to data pairs which exist inside the sharing region and the sharing region of the another party after the synchronous process, said priority side judging means carrying out the judgement by identifying the data pairs based on setting by said inside-outside judge synchronize means, when state information respectively corresponding to the data pairs indicate update, and when the database managing device of the another party notifies update of data making up the data pairs; and

data contents synchronize means for replacing, when data to be given a priority is decided by said priority side judging means, contents of data on a non-priority side with contents of the data given a priority.

24. The database managing device as set forth in claim 22, comprising:

corresponded data information storing means for storing in the non-synchronous period whether data placed outside of the sub set and the state information correspond to each other;

correspondence cancelling means for cancelling a correspondence between data judged to be unnecessary in each of the plurality of the database managing devices and the state information so as to store resultant information in said corresponded data information storing means, said correspondence cancelling means cancelling the correspondence in the non-synchronous period with respect to the data placed outside of the sub set; and

data deleting means for deleting contents of data which are not made corresponded to the state information,

wherein said synchronous process means, when a correspondence between state information which has been set inside the sub set by said inside-outside judge synchronize means and data is not stored in said corresponded data information storing means, receives contents of data corresponding to the data from the database managing device of the another party.

25. The database managing device as set forth in claim 21, wherein said judging means includes:

priority side judging means for judging which of each pair of corresponding data should be given a priority with respect to data which exist inside the sharing region and the sharing region of the another party at least after the synchronous process, said priority side judging means carrying out the judgement when state information respectively corresponding to the each pair of corresponding data indicate update, and when the database managing device of the another party notifies update of data making up the each pair of corresponding data; and

data contents synchronize means for replacing, when data to be given a priority is decided by said priority side judging means, contents of data on a non-priority side with contents of the data given a priority.

26. The database managing device as set forth in claim 21, wherein said judging means includes inside region priority means which gives a priority to contents of data of the each pair of data made corresponded to each other which exist inside respective sharing regions of said database managing device and the database managing device of the another party, rather than contents of data not existing in the sharing regions, irrespective of update information of the state information respectively corresponding to data of the each pair of data, said inside region priority means giving the priority when it is judged with respect to the each pair of data that the data exist in the respective sharing regions of said database managing device and the database managing device of the another party based on the state information stored in said state information storing means and the information received from the database managing device of the another party.

27. The database managing device as set forth in claim 26, wherein:

said judging means includes inside-outside judge synchronize means for setting the state information inside and outside of the sub set with respect to the each pair of data made corresponded to each other, said inside-outside judge synchronize means setting the state information inside the sub set when state information indicating that the data had been moved into and have been currently existing in the sub set is stored in at least one of the plurality of database managing devices, and when the state information of said database managing device indicates that the data are inside the sub set and the database managing device of the another party notifies that the data making up the each pair of data are inside the sharing region, and said inside-outside judge synchronize means setting the state information outside the sub set when otherwise, and

said inside region priority means changes update information of state information which was changed to be inside the sub set by said inside-outside judge synchronize means so that the update information indicates no update, and changes update information of state information which was not changed so that the update information indicates update.

28. The database managing device as set forth in claim 26, comprising:

priority selecting means for selecting whether to bring said inside region priority means into operation.

29. The database managing device as set forth in claim 20, comprising:

corresponded data information storing means for storing in the non-synchronous period whether data placed outside of the sub set and the state information correspond to each other;

correspondence cancelling means for cancelling a correspondence between data judged to be unnecessary in each of the plurality of the database managing devices and the state information so as to store resultant information in said corresponded data information storing means, said correspondence cancelling means cancelling the correspondence with respect to the data placed outside of the sub set in the non-synchronous period; and

data deleting means for deleting contents of data which are not made corresponded to the state information.

30. The database managing device as set forth in claim 29, wherein said correspondence cancelling means cancels the correspondence at a time when an amount of free memory space of said database managing device becomes not more than a predetermined threshold value.

31. The database managing device as set forth in claim 29, wherein said correspondence cancelling means estimates and compares a possibility that contents of data judged to be unnecessary will be transferred from the database managing device of the another party in the next synchronous process so as to cancel the correspondence in an order from data having a small possibility of being transferred.

32. The database managing device as set forth in claim 29, wherein said data deleting means deletes the contents of the data when the synchronous process is finished.

33. The database managing device as set forth in claim 32, comprising:

deletion selecting means for selecting whether data should be deleted by said data deleting means.

34. A database managing device, comprising:

at least one database;

communication means for communicating with another database managing device; and synchronous process means for making a coincidence of corresponding data between a database stored in the another database managing device and said at least one database,

said synchronous process means including:

correspond means for making a correspondence between data inside a sharing region of said database managing device and data inside a sharing region of the another database managing device; and

judging means for judging, with respect to each pair of data made corresponded to each other, whether it is required to transmit contents of the data based on state information stored in state information storing means of the another database managing device and information received from the another database managing device,

wherein the another database managing device is for constituting a database system which includes a plurality of database managing devices and synchronous process means for making a coincidence of corresponding data between databases respectively stored in the plurality of database managing devices which are ready to communicate, the another database managing device comprising:

at least one database;

sub set setting means for setting a sub set in said at least one database thereof, the sub set being set as a sharing region with a database of another party;

state information storing means for storing state information with respect to data which had been contained in the sub set at least at a time when a previous synchronous process was finished, the stare information including (a) update information indicative of whether the data had been updated in a non-synchronous period between the previous synchronous process and a next synchronous process and (b) movement information indicative of whether the data had been moved in and out of the sub set in the non-synchronous period; and

state information update means for monitoring data whose corresponding state information is stored in said state information storing means so as to update respective state information of the data in the non-synchronous period.

35. The database managing device as set forth in claim 20, wherein:

said sub set setting means specifies the sharing region before a synchronous process,

wherein said sub set setting means newly sets a sub set to be a sharing region in at least one of the databases to which sharing was instructed.

36. The database managing device as set forth in claim 20, wherein:

said sub set setting means specifies sharing regions, which store the corresponding data, between the databases at a time before a synchronous process,

wherein said sub set setting means instructs, after sharing setting, the synchronous process means to carry out a synchronous process between sharing regions made corresponded to each other.

37. The database managing device as set forth in claim 20, comprising:

sharing releasing means for canceling a correspondence between sharing regions,

wherein said sharing releasing means instructs, before sharing release, the synchronous process means to carry out a synchronous process between sharing regions made corresponded to each other.

38. The database managing device as set forth in claim 20, comprising:

at least one sharing releasing means for canceling a correspondence between sharing regions,

wherein one of said at least one sharing releasing means deletes data contained in at least one of the sharing regions.

39. The database managing device as set forth in claim 20, comprising:

at least one sharing releasing means for canceling a correspondence of sharing regions,

wherein one of said at least one sharing releasing means deletes at least one of sub sets to be the sharing regions.

40. A recording medium recording a program for managing and making a coincidence of contents of corresponding data between a plurality of databases,

said recording medium recording a program for operating a computer, the program being recorded in a form of:

at least one database;

sub set setting means for setting a sub set in said at least one database, the sub set being set as a sharing region with a database stored in a database managing device of another party;

state information storing means for storing state information with respect to data which had been contained in the sub set at least at a time when a previous synchronous process was finished, the synchronous process for making a coincidence of corresponding data between the plurality of databases respectively stored in a plurality of database managing devices which are ready to communicate, the state information including (a) update information indicative of whether the data had been updated in a non-synchronous period between the previous synchronous process and a next synchronous process and (b) movement information indicative of whether the data had been moved in and out of the sub set in the non-synchronous period; and

state information update means for monitoring data whose corresponding state information is stored in said state information storing means so as to update respective state information of the data in the non-synchronous period.

41. A recording medium recording a program for operating a computer, the program being recorded in a form of:

(1) at least one database;

(2) communications means for communicating with a database managing device which includes state information storing means storing state information with respect to data which had been contained in a sub set as a sharing region at least at a time when a previous synchronous process was finished, the state information including (a) update information indicative of whether the data had been updated in a non-synchronous period between the previous synchronous process and a next synchronous process and (b) movement information indicative of whether the data had been moved in and out of the sub set in the non-synchronous period; and

(3) synchronous process means for making a coincidence of contents of corresponding data between the sharing region of said at least one database and the sub set at a time when the database managing device and said computer are ready to communicate, said synchronous process means including correspond means for making a correspondence between data of the sharing region of said at least one database and data of the subset, and judging means for judging, with respect to each pair of data made corresponded to each other, whether it is required to transmit contents of the data based on the state information stored in the state information storing means.

42. A method for managing a database, comprising the steps of:

(1) managing and making a coincidence of contents of corresponding data between databases respectively stored in a plurality of database managing devices which are ready to communicate;

(2) setting a sub set in a database, the sub set being set as a sharing region with a database of another party; and

(3) monitoring a change in data in a non-synchronous period between a previous said step (1) and a next said step (2) with respect to data which had been contained in the sub set at least at a time when the previous said step (1) was finished, said step (3) being individually carried out by the plurality of database managing devices,

wherein said step (3) updates state information which includes (a) update information indicative of whether data had been updated in the non-synchronous period and (b) movement information indicative of whether the data had been moved in and out of the sub set in the non-synchronous period.

43. A database managing device for constituting a database system which includes a plurality of database managing devices and synchronous process means for making a coincidence of corresponding data between databases respectively stored in the plurality of database managing devices which are ready to communicate,

said database managing device comprising:

at least one database;

order storing means for storing an order of data which are contained at least in a sharing region of said database managing device and for setting a same order of data with that of another party in a previous synchronous process;

corresponded order storing means for storing a corresponded order indicative of a last position of the order in the previous synchronous process; and

order managing means for managing an order of data so that the corresponded order and an order before the corresponded order of the order stored in said order storing means are maintained in a non-synchronous period between the previous synchronous process and a next synchronous process, and data newly contained in the sharing region in the non-synchronous period are placed after the corresponded order.

44. The database managing device as set forth in claim 43, comprising the synchronous process means,

wherein said synchronous process means carries out a synchronous process by communicating with a database managing device of the another party storing a database, and

said synchronous process means includes:

data adding means for adding, with respect to data existing in the sharing region, data whose order stored in said order storing means is after the corresponded order to a sharing region of the another party;

added data correspond means for updating, with respect to data added to the sharing region of the another party, at least one of said order storing means and order storing means of the another party so that the order stored in said order storing means and an order stored in the order storing means of the another party are made coincided and are before respective orders of data which have not been made corresponded to each other between the both parties; and

corresponded order updating means for updating the corresponded order.

45. The database managing device as set forth in claim 43, comprising:

first order deleting means for deleting from said order storing means data whose order is after the corresponded order and which are not contained in the sharing region.

46. The database managing device as set forth in claim 43, comprising:

second deleting means for deleting in the synchronous process an order corresponding to data which are not contained in the sharing region and the sharing region of the another party, the order being deleted from the respective order storing means of the both parties.

47. The database managing device as set forth in claim 43, comprising:

state information storing means for storing state information with respect to data which had been contained in the sharing region at least at a time when the previous synchronous process was finished, the state information including update information indicative of whether the data had been updated in the non-synchronous period; and

state information update means for monitoring in the non-synchronous period data whose corresponding state information is stored in said state information storing means so as to update state information of the data,

wherein said order storing means stores an order of the data as an order of storing state information corresponding to the data.

48. The database managing device as set forth in claim 47, comprising:

sub set setting means for setting a sub set in said at least one database, the sub set being set as a sharing region with a database of another party,

wherein the state information includes movement information indicative of whether the corresponding data have been moved in and out of the sub set in the non-synchronous period.

49. The database managing device as set forth in claim 47, comprising the synchronous process means,

wherein said synchronous process means carries out a synchronous process by communicating with a database managing device of the another party storing the database, and

said synchronous process means transmits state information of the corresponding data in an order in accordance with the order stored in said order storing means.

50. The database managing device as set forth in claim 43, comprising:

sharing setting means for specifying sharing regions before a synchronous process,

wherein said sharing setting means newly creates a sub set to be a sharing region in at least one of the databases to which sharing was instructed.

51. The database managing device as set forth in claim 43, comprising:

sharing setting means for specifying sharing regions, which store the corresponding data, between the databases at a time before a synchronous process,

wherein said sharing setting means instructs, after sharing setting, the synchronous process means to carry out a synchronous process between sharing regions made corresponded to each other.

52. The database managing device as set forth in claim 43, wherein said database system includes sharing setting means for specifying sharing regions, which store the corresponding data, between databases based on instructions of the plurality of database managing devices before a synchronous process, and wherein said database managing device comprises:

sharing releasing means for canceling a correspondence between the sharing regions specified by said sharing setting means,

wherein said sharing releasing means instructs, before sharing release, the synchronous process means to carry out a synchronous process between the sharing regions made corresponded to each other.

53. The database managing device as set forth in claim 43, wherein said database system includes sharing setting means for specifying sharing regions, which store the corresponding data, between databases before a synchronous process, and wherein said database managing device comprises:

at least one sharing releasing means for canceling a correspondence between the sharing regions specified by the sharing setting means,

wherein one of said at least one sharing releasing means deletes data contained in at least one of the sharing regions.

54. The database managing device as set forth in claim 43, wherein said database system includes sharing setting means for specifying sharing regions, which store the corresponding data, between databases based on instructions of the plurality of database managing devices before a synchronous process, and wherein said database managing device comprises:

at least one sharing releasing means for canceling a correspondence of the sharing regions specified by the sharing setting means,

wherein one of said at least one sharing releasing means deletes at least one of sub sets to be the sharing regions.

55. A recording medium recording a program for managing and making a coincidence of corresponding data between a plurality of databases,

said recording medium recording a program for operating a computer, the program being recorded in a form of:

at least one database;

order storing means for storing an order of data which are contained at least in a sharing region of the computer and for setting a same order of data with that of another party in a previous synchronous process, the synchronous process for making a coincidence of corresponding data between the plurality of databases respectively stored in a plurality of database managing devices which are ready to communicate,

corresponded order storing means for storing a corresponded order indicative a last position of the order in the previous synchronous process; and

order managing means for managing an order of data so that the corresponded order and an order before the corresponded order of the order stored in said order storing means are maintained in a non-synchronous period between the previous synchronous process and a next synchronous process, and data newly contained in the sharing region in the non-synchronous period are placed after the corresponded order.

56. A method for managing a database, comprising the steps of:

(1) managing and making a coincidence of data which correspond to each other between databases respectively stored in a plurality of database managing devices which are ready to communicate;

(2) storing the correspondence of the data between the databases, the correspondence being stored as an order of the data,

wherein said step (2) includes the steps of:

(i) setting a same order of data as that of another party in a previous said step (1);

(ii) storing a corresponded order indicative of a last position of the order in the previous said step (1); and

(iii) managing order of data which are contained at least in a sharing region of a party to which the method is applied in a non-synchronous period between the previous said step (1) and a next said step (1) so that the corresponded order and an order before the corresponded order are maintained, and that data newly contained in the sharing region in the non-synchronous period are placed after the corresponded order.

57. A database managing device for constituting a database system which includes a plurality of database managing devices, sharing setting means for specifying sharing regions, which store corresponding data, between databases before a synchronous process, and synchronous process means for making a coincidence of contents of corresponding data between the databases respectively stored in the plurality of database managing devices which are ready to communicate,

said database managing device comprising:

a plurality of priority side deciding means for deciding a priority side when data changed in the corresponding data in a non-synchronous period between a previous synchronous process and a next synchronous process are plural, and for instructing the synchronous process means to replace data contents on a non-priority side with data contents on a priority side;

at least one database; and

selecting means for selecting, at a time of sharing setting, one of said plurality of priority side deciding means to be used.

58. The database managing device as set forth in claim 57, further comprising:

copying means for adding the data changed to other databases in the non-synchronous period when data changed in the corresponding data are plural,

wherein said selecting means selects one of (i) said plurality of priority side deciding means and (ii) said copying means.

59. The database managing device as set forth in claim 57, wherein one of said plurality of priority side deciding means decides a priority side to be instructed to the synchronous process means, based on the priority side decided and a priority side specified by another party.

60. The database managing device as set forth in claim 57, wherein one of said plurality of priority side deciding means instructs the priority side decided to the synchronous process means when data changed in the corresponding data are plural and a priority side is not specified by another party.

61. The database managing device as set forth in claim 57, wherein one of said plurality of priority side deciding means also decides the priority side when at least single data is changed in the corresponding data.

62. The database managing device as set forth in claim 57, wherein said sharing setting means newly creates a sub set to be a sharing region in at least one of the databases to which sharing was instructed.

63. The database managing device as set forth in claim 57, wherein said sharing setting means instructs, after sharing setting, the synchronous process means to carry out a synchronous process between sharing regions made corresponded to each other.

64. The database managing device as set forth in claim 57, wherein said sharing setting means specifies the sharing regions based on instructions of the plurality of database managing devices before a synchronous process, and wherein said database managing device comprises:

sharing releasing means for canceling a correspondence between the sharing regions specified by said sharing setting means,

wherein said sharing releasing means instructs, before sharing release, the synchronous process means to carry out a synchronous process between the sharing regions made corresponded to each other.

65. The database managing device as set forth in claim 57, comprising:

at least one sharing releasing means for canceling a correspondence between the sharing regions specified by the sharing setting means,

wherein one of said at least one sharing releasing means deletes data contained in at least one of the sharing regions.

66. The database managing device as set forth in claim 57, wherein said sharing setting means specifies the sharing regions based on instructions of the plurality of database managing devices before a synchronous process, and wherein said database managing device comprises:

at least one sharing releasing means for canceling a correspondence of the sharing regions specified by the sharing setting means,

wherein one of said at least one sharing releasing means deletes at least one of sub sets to be the sharing regions.

67. A recording medium recording a program for managing and making a coincidence of corresponding data between a plurality of databases,

said recording medium recording a program for operating a computer, the program being recorded in a form of:

at least one database;

a plurality of priority side deciding means for deciding, when data changed in the corresponding data in a non-synchronous period between a previous synchronous process and a next synchronous process are plural, a priority side to be used for replacing data contents on a non-priority side with data contents on a priority side, the synchronous process for making a coincidence of contents of corresponding data between databases respectively stored in database managing devices which are ready to communicate; and

selecting means for selecting one of said plurality of priority side deciding means to be used at a time, prior to the synchronous process, of sharing setting for specifying sharing regions which store corresponding data between databases.

68. A method for managing a database, comprising the steps of:

(1) managing same contents of data which correspond to each other between databases respectively stored in database managing devices which are ready to communicate;

(2) specifying, at a time before said step (1), sharing regions which store the corresponding data between the databases;

(3) selecting, at a time of said step (2), one of plural priority side selecting methods to be used; and

(4) deciding, when data changed in the corresponding data in a non-synchronous period between a previous said step (1) and a next said step (1) are plural, a priority side of the plural data in accordance with a priority side deciding method selected in said step (3) so as to replace data contents on a non-priority side with data contents on a priority side.

69. A database managing device for constituting a database system which includes a plurality of database managing devices and synchronous process means for making a coincidence of contents of corresponding data between the databases respectively stored in the plurality of databases which are ready to communicate, the synchronous process means making the correspondence based on instructions of the plurality of database managing devices,

said database managing device comprising:

at least one database; and

priority side deciding means for deciding, when data changed in the corresponding data in a non-synchronous period between a previous synchronous process and a next synchronous process are plural, a priority side based on a database managing device which instructed a start of the synchronous process, and said priority side deciding means for instructing the synchronous process means to replace data contents on a non-priority side with data contents on a priority side.

70. The database managing device as set forth in claim 69, wherein said priority side deciding means decides a priority side to be instructed to the synchronous process means based on the priority side decided and a priority side specified by another party.

71. The database managing device as set forth in claim 69, wherein said priority side deciding means instructs the priority side decided by said database managing device to the synchronous process means when data changed in the corresponding data are plural and when a priority side is not specified by another party.

72. The database managing device as set forth in claim 69, wherein said priority side deciding means also decides the priority side when at least single data is changed in the corresponding data.

73. The database managing device as set forth in claim 69, comprising:

sharing setting means for specifying before a synchronous process sharing regions which store the corresponding data between the databases,

wherein said sharing setting means newly creates a sub set to be a sharing region in at least one of the databases to which sharing was instructed.

74. The database managing device as set forth in claim 69, comprising:

sharing setting means for specifying sharing regions, which store the corresponding data, between the databases at a time before a synchronous process,

wherein said sharing setting means instructs, after sharing setting, the synchronous process means to carry out a synchronous process between sharing regions made corresponded to each other.

75. The database managing device as set forth in claim 69, wherein said database system includes sharing setting means for specifying sharing regions, which store the corresponding data, between databases based on instructions of the plurality of database managing devices before a synchronous process, and wherein said database managing device comprises:

sharing releasing means for canceling a correspondence between the sharing regions specified by said sharing setting means,

wherein said sharing releasing means instructs, before sharing release, the synchronous process means to carry out a synchronous process between the sharing regions made corresponded to each other.

76. The database managing device as set forth in claim 69, wherein said database system further includes sharing setting means for specifying sharing regions, which store the corresponding data, between databases before a synchronous process, and wherein said database managing device comprises:

at least one sharing releasing means for canceling a correspondence between the sharing regions specified by the sharing setting means,

wherein one of said at least one sharing releasing means deletes data contained in at least one of the sharing regions.

77. The database managing device as set forth in claim 69, wherein said database system includes sharing setting means for specifying sharing regions, which store the corresponding data, between databases based on instructions of the plurality of database managing devices before a synchronous process, and wherein said database managing device comprises:

at least one sharing releasing means for canceling a correspondence of the sharing regions specified by the sharing setting means,

wherein one of said at least one sharing releasing means deletes at least one of sub sets to be the sharing regions.

78. A recording medium recording a program for managing same contents of corresponding data between a plurality of databases,

said recording medium recording a program for operating a computer, the program being recorded in a form of:

at least one database;

priority side deciding means for deciding, when data changed in the corresponding data in a non-synchronous period between a previous synchronous process and a next synchronous process are plural, a priority side to be used for replacing data contents on a non-priority side with data contents on a priority side, the priority side being decided based on a party which instructed a start of the synchronous process, the synchronous process for making a coincidence of contents of corresponding data between databases respectively stored in database managing devices which are ready to communicate.

79. A method for managing a database, comprising the steps of:

(1) managing same contents of data which correspond to each other between databases respectively stored in database managing devices which are ready to communicate; and

(2) deciding, when data changed in the corresponding data in a non-synchronous period between a previous said step (1) and a next said step (1) are plural, a priority side of the plural data in accordance with a database managing device which instructed a start of the synchronous process so as to replace data contents on a non-priority side with data contents on a priority side.

80. A database managing device for constituting a database system which includes a plurality of database managing devices, sharing setting means for specifying sharing regions, which store corresponding data, between databases based on instructions of the plurality of database managing devices before a synchronous process, and synchronous process means for making a coincidence of the corresponding data between the databases respectively stored in the plurality of database managing devices which are ready to communicate,

said database managing device comprising:

at least one database;

priority side deciding means for deciding, when data changed in the corresponding data in a non-synchronous period between a previous synchronous process and a next synchronous process are plural, a priority side of the plural data in accordance with a database managing device which instructed sharing setting, and said priority side deciding means for instructing the synchronous process means to replace data contents on a non-priority side with data contents on a priority side.

81. The database managing device as set forth in claim 80, wherein said priority side deciding means decides a priority side to be instructed to the synchronous process means based on the priority side decided and a priority side instructed from another party.

82. The database managing device as set forth in claim 80, wherein said priority side deciding means instructs the priority side decided to the synchronous process means when data changed in the corresponding data are plural and a priority side is not specified by a database managing device of another party.

83. The database managing device as set forth in claim 80, wherein said priority side deciding means also decides the priority side when at least single data is changed in the corresponding data.

84. The database managing device as set forth in claim 80, wherein said sharing setting means newly creates a sub set to be a sharing region in at least one of the databases to which sharing was instructed.

85. The database managing device as set forth in claim 80, wherein said sharing setting means instructs, after sharing setting, the synchronous process means to carry out a synchronous process between sharing regions made corresponded to each other.

86. The database managing device as set forth in claim 80, comprising:

sharing releasing means for canceling a correspondence between the sharing regions specified by said sharing setting means,

wherein said sharing releasing means instructs, before sharing release, the synchronous process means to carry out a synchronous process between the sharing regions made corresponded to each other.

87. The database managing device as set forth in claim 80, comprising:

at least one sharing releasing means for canceling a correspondence between the sharing regions specified by the sharing setting means,

wherein one of said at least one sharing releasing means deletes data contained in at least one of the sharing regions.

88. The database managing device as set forth in claim 80, comprising:

at least one sharing releasing means for canceling a correspondence of the sharing regions specified by the sharing setting means,

wherein one of said at least one sharing releasing means deletes at least one of sub sets to be the sharing regions.

89. A recording medium recording a program for managing same contents of corresponding data between a plurality of databases,

said recording medium recording a program for operating a computer, the program being recorded in a form of:

at least one database;

priority side deciding means for deciding, when data changed in the corresponding data in a non-synchronous period between a previous synchronous process and a next synchronous process are plural, a priority side to be used for replacing data contents on a non-priority side with data contents on a priority side based on a party which instructed sharing setting, the priority side being decided at a time, before a synchronous process, of sharing setting for specifying sharing regions which store the corresponding data between the plurality of databases, the synchronous process for making a coincidence of contents of corresponding data between the plurality of databases respectively stored in database managing devices which are ready to communicate.

90. A method for managing a database, comprising the steps of:

(1) managing same contents of data which correspond to each other between databases respectively stored in database managing devices which are ready to communicate;

(2) specifying, at a time before said step (1), sharing regions which store the corresponding data between the databases; and

(3) deciding, when data changed in the corresponding data in a non-synchronous period between a previous synchronous process and a next synchronous process are plural, a priority side in accordance with a database managing device which instructed sharing setting so as to replace data contents on a non-priority side with data contents on a priority side.

91. A database managing device for constituting a database system which includes a plurality of database managing devices and synchronous process means for making a coincidence of the corresponding data between the databases respectively stored in the plurality of database managing devices which are ready to communicate, the synchronous process means making the correspondence based on instructions of the plurality of database managing devices,

said database managing device comprising:

at least one database; and

priority side deciding means for deciding, when data changed in the corresponding data in a non-synchronous period between a previous synchronous process and a next synchronous process are plural, a priority side by making an inquiry, and said priority side deciding means for instructing the synchronous process means to replace data contents on a non-priority side with data contents on a priority side.

92. The database managing device as set forth in claim 91, wherein said priority side deciding means disconnects communications with a database managing device of another party between the inquiry of the priority side and the replacement of data contents.

93. The database managing device as set forth in claim 91, wherein said priority side deciding means decides a priority side to be instructed to the synchronous process means based on the priority side decided and a priority side specified by another party.

94. The database managing device as set forth in claim 91, wherein said priority side deciding means instructs the priority side decided to the synchronous process means when data changed in the corresponding data are plural and a priority side is not specified by a database managing device of another party.

95. The database managing device as set forth in claim 91, wherein said priority side deciding means also decides a priority side when at least single data is changed in the corresponding data.

96. The database managing device as set forth in claim 91, comprising:

sharing setting means for specifying before a synchronous process sharing regions which store the corresponding data between the databases,

wherein said sharing setting means newly creates a sub set to be a sharing region in at least one of the databases to which sharing was instructed.

97. The database managing device as set forth in claim 91, comprising:

sharing setting means for specifying sharing regions, which store the corresponding data, between the databases at a time before a synchronous process,

wherein said sharing setting means instructs, after sharing setting, the synchronous process means to carry out a synchronous process between sharing regions made corresponded to each other.

98. The database managing device as set forth in claim 91, wherein said database system includes sharing setting means for specifying sharing regions, which store the corresponding data, between databases based on instructions of the plurality of database managing devices before a synchronous process, and wherein said database managing device comprises:

sharing releasing means for canceling a correspondence between the sharing regions specified by said sharing setting means,

wherein said sharing releasing means instructs, before sharing release, the synchronous process means to carry out a synchronous process between the sharing regions made corresponded to each other.

99. The database managing device as set forth in claim 91, wherein said database system includes sharing setting means for specifying sharing regions, which store the corresponding data, between databases before a synchronous process, and wherein said database managing device comprises:

at least one sharing releasing means for canceling a correspondence between the sharing regions specified by the sharing setting means,

wherein one of said at least one sharing releasing means deletes data contained in at least one of the sharing regions.

100. The database managing device as set forth in claim 91, wherein said database system includes sharing setting means for specifying sharing regions, which store the corresponding data, between databases based on instructions of the plurality of database managing devices before a synchronous process, and wherein said database managing device comprises:

at least one sharing releasing means for canceling a correspondence of the sharing regions specified by the sharing setting means,

wherein one of said at least one sharing releasing means deletes at least one of sub sets to be the sharing regions.

101. A recording medium recording a program for managing same contents of corresponding data between a plurality of databases,

said recording medium recording a program for operating a computer, the program being recorded in a form of:

at least one database;

priority side deciding means for deciding, when data changed in the corresponding data in a non-synchronous period between a previous synchronous process and a next synchronous process are plural, a priority side to be used for replacing data contents on a non-priority side with data contents on a priority side, the priority side being decided by making an inquiry, and the synchronous process for making a coincidence of contents of corresponding data between the plurality of databases respectively stored in database managing devices which are ready to communicate.

102. A method for managing a database, comprising the steps of:

(1) managing same contents of data which correspond to each other between databases respectively stored in database managing devices which are ready to communicate; and

(2) deciding, when data changed in the corresponding data in a non-synchronous period between a previous synchronous process and a next synchronous process are plural, a priority side by making an inquiry so as to replace data contents on a non-priority side with data contents on a priority side.


Description

FIELD OF THE INVENTION

The present invention relates to a database managing system for making the same contents between parties which are ready to communicate, and particularly to a database managing system capable of reducing the amount of data transmitted or processed during a synchronous process.

BACKGROUND OF THE INVENTION

Conventionally, information processing devices have been in wide use, and it is not rare in recent years for one individual to own a plurality of information processing devices, for example, such as a high-performance information processing device like a desk-top personal computer and a portable information processing device like a portable information terminal. When personal information, for example, such as schedules and address book are to be managed by these plurality of information processing devices, there is a need to maintain the same contents of data in any of databases provided in these information processing devices. Thus, in the case of managing, for example, personal information between a personal computer and a portable information terminal, a master database is managed by the personal computer and the data of the master database are copied to the database (portable database) of the portable information processing device, thus carrying the personal information.

In this manner, when managing the same data between a plurality of database managing devices, when the data are changed in one database managing device, it is required to update the database of all the other database managing devices. Here, if each database managing device is in communications all the time, the change in data is immediately reflected in each one of these devices when the updated database managing device informs the other database managing devices that the data have been changed. However, it is not always the case that each database managing device is in communications all the time with the other devices, for example, as in the case where the database managing device is a portable information terminal. In such a case, a change in data in one device is not reflected in the databases of the other database managing devices at the time when the change is made. Thus, in order to maintain the same database, it is required to carry out a process for making the same contents of database between parties at the time when communications are made between the database managing devices; namely, a synchronous process is required.

In the case of the above example, when data are changed in the portable information terminal, a synchronous process is carried out at the time when the portable information terminal is brought back to home or office, in which the data become the same between the portable database of the portable information terminal and the master database of the computer.

As an example of a conventional synchronous process, upload and download are known. Specifically, when data are changed in the personal computer, the contents of the master database are copied to the portable information terminal (download). On the other hand, when data are changed in the portable information terminal, the contents of the portable database are copied to the personal computer (upload).

Another example is a synchronous process employing a sum of sets. In this synchronous process, the contents of the both databases are compared at the time when communications are made between the two database managing devices, and a sum of sets, which contains all the information added to each database is created as a new database. Thereafter, the database thus created is stored the both database managing devices.

For example, when the both databases initially contain data "A", and data "B" is added to one database managing device X, and data "C" is added to the other database managing device Y, the database managing device X sends its contents "A+B" to the database managing device Y. The database managing device Y creates a sum of sets "A+B+C" of the data "A+B" received and its contents "A+C" and stores the sum of sets as a database. The database managing device Y then sends the contents of the database "A+B+C" back to the database managing device X. As a result, the contents of the database of the database managing device X are updated to "A+B+C", which are the same as that of the database managing device Y.

However, the conventional database managing device carrying out the described synchronous process has a problem that the data amount (communications volume) transmitted between the database managing devices in the synchronous process and the data amount computed in each database managing device are extremely large.

Specifically, in download and upload, all the contents of one of the databases are transmitted to the other database managing device regardless of the number of data updated. For example, in the case of a database having the data of 1000 items, the data of all the 1000 items are sent even when only one item is changed. As a result, the communications volume transmitted between the database managing devices is increased. Further, in the database managing device on the receiving side, the contents of the database are replaced with the database on the sending side, and thus a change in data on the receiving side is lost.

Also, in the synchronous process employing a sum of sets, in order to create a sum of sets, a database of one party is sent to the other database, and the sum of sets created is sent back as a new database. Thus, in this synchronous process, all the contents of the database are required to be sent back and forth between the database managing devices, and this further increases the communications volume in the synchronous process.

Further, in the case where the data are deleted only in one of the devices, the data remain in the other device. Thus, the data are included again in a new database and are not deleted. As a result, the memory space required for storing the database is increased, and the communications volume in the synchronous process is further increased.

In order to solve these problems, another example of the synchronous process is disclosed, for example, in Japanese Unexamined Patent Publication No. 6693/1997 (Tokukaihei 9-6693), in which update information indicative of a change or no change in data is given to all the data contained in the database. Specifically, each database managing device stores, per each data stored in the database, ID information for identifying the data and update information indicative of no change/correction/addition/deletion, and when the data are changed, the update information corresponding to the data is updated. Also, in the synchronous process, one database managing device informs the other database managing device the ID information and update information of all data. The database managing device on the receiving side searches through its database data corresponding to the data of the sending side based on the ID information received so as to compare the update information of the both sides. When a change is made only on one side, unchanged data are replaced with the data changed. When there is a change on the both sides, the data of one party are added to the database of the other party, and vice versa. With this arrangement, in the case where there is no change of data in any of the database managing devices, sending of such data can be omitted, thus reducing the communications volume in the synchronous process.

Even so, with the above arrangement, when correction of data is made on the both sides, the data corrected in one device are added to the other database, and vice versa, and the number of data contained in the database is increased. As a result, the memory space required for storing the database is increased, resulting in an increase in communications volume. Further, in order to suppress an increase in the number of data, it is required to delete unnecessary data after the synchronous process. However, this operation is troublesome because it is required to extract data to which correction was made in each party and compare the data of the both parties thus extracted, and the data to be deleted need to be specified. Further, this operation is usually made on one database managing device, and for this reason there is a need to reflect deletion of data in the other database managing device, and as a result the communications volume between the database managing devices are further increased.

Furthermore, in the case where whether to carry out the synchronous process is set in the database unit, it is also required to carry out the synchronous process with respect to data which do not require the synchronous process, or create a new database composed only by data which require the synchronous process. Also, in the case where whether to carry out the synchronous process is instructed per data, the process becomes very troublesome.

Furthermore, it is required to transmit ID information and update information with respect to the entire database. Also, when correction is made on the both sides, there is a need to add the data corrected in one device to the other database, and vice versa. Thus, in effect, the communications volume in the synchronous process is not actually reduced.

SUMMARY OF THE INVENTION

A first object of the present invention is to provide a database managing device which is capable of carrying out a synchronous process with a small effort and a small amount of communications data without resulting in an increase in size of a database even when plural data corresponding to each other are independently updated.

A second object of the present invention is to provide a database managing device in which a memory space required for storing the presence or absence of data change is small and the amount of data transmitted and processed in the synchronous process can be further reduced.

A third object of the present invention is to provide a database managing device which is capable of carrying out the synchronous process with a small amount of communications data without resulting in an increase in size of a database even when plural data corresponding to each other are independently updated, and which is also capable of operating the synchronous process, and sharing setting and sharing release before and after the synchronous process, respectively, with a small effort.

A database managing device of the present invention is for constituting a database system which includes a plurality of database managing devices and a synchronous process section for making a coincidence of corresponding data between databases respectively stored in the plurality of database managing devices which are ready to communicate, and in order to achieve the first object, the database managing device includes: at least one database; a state information storing section for storing state information indicative of a change in data which occurs in a non-synchronous period between a previous synchronous process and a next synchronous process, the state information storing section storing the state information per data corresponding to data of a database of another party; a collision detecting section for detecting in a synchronous process whether data changed in a pair of the corresponding data are plural based on state information of each data of the pair; and a priority side deciding section for deciding, when data changed are plural, which of the data should be given a priority before transmitting all contents of the plural data changed so that data contents on a non-priority side are replaced with data contents on a priority side by the synchronous process section.

With this arrangement, when a collision of data occurs, data to be given a priority is decided before transmitting the entire contents of the data, and the entire contents of data are transmitted in one direction from a database managing device on a priority side to a database managing device on a non-priority side. Thus, compared with the case where the contents of data are replaced by deciding the priority side after transmitting the entire contents of data, the amount of data transmitted and processed between database managing devices can be reduced. Further, because the priority side is decided at the time of the data collision, the number of data contained in the database of each database managing device does not increase even when the data are updated in a plurality of database managing devices. As a result, the memory space required for storing the database and the amount of data transmitted and processed in the synchronous process can be reduced.

Also, a database managing device in accordance with another preferable embodiment of the present invention is for constituting the database system, and in order to achieve the second object, includes: at least one database; a sub set setting section for setting a sub set in the at least one database, the sub set being set as a sharing region with a database of another party; a state information storing section for storing state information with respect to data which had been contained in the sub set at least at a time when a previous synchronous process was finished, the state information including (a) update information indicative of whether the data had been updated in a non-synchronous period and (b) movement information indicative of whether the data had been moved in and out of the sub set in the non-synchronous period; and a state information update section for monitoring data whose corresponding state information is stored in the state information storing section so as to update respective state information of the data in the non-synchronous period.

Thus, it is possible to identify with certainty data which exist both in the previous synchronous process and the next synchronous process, and whose contents are not changed (updated) between the both processes, even with respect to data which were moved in and out of the sub set. As a result, the amount of data transmitted to the database managing device of another party and the amount of data processed in the synchronous process can be reduced.

Also, a database managing device in accordance with still another preferable embodiment of the present invention is for constituting the database system, and in order to achieve the second object, includes: at least one database; an order storing section for storing an order of data which are contained at least in a sharing region of the database managing device and for setting a same order of data with that of another party in a previous synchronous process; a corresponded order storing section for storing a corresponded order indicative a last position of the order in the previous synchronous process; and an order managing section for managing an order of data so that the corresponded order and an order before the corresponded order of the order stored in the order storing section are maintained in a non-synchronous period, and data newly contained in the sharing region in the non-synchronous period are placed after the corresponded order.

With this arrangement, each database managing device stores the correspondence as an order of data which are stored therein. Thus, compared with the case of storing the correspondence as correspond information indicative of the data of another party, the memory space required for storing the correspondence and the arithmetic volume in the synchronous process can be reduced, and it is also possible to reduce the amount of data transmitted and processed in the synchronous process.

A database managing device in accordance with yet another preferable embodiment of the present invention is for constituting the database system, and in order to achieve the third object of the present invention, includes: a plurality of priority side deciding sections for deciding a priority side when data changed in the corresponding data are plural in a non-synchronous period, and for instructing the synchronous process section to replace data contents on a non-priority side with data contents on a priority side; and a selecting section for selecting one of the plurality of priority side deciding sections to be used, the selecting section making the selection at the time of sharing setting for specifying before the synchronous process the sharing regions, which store corresponding data, between the databases.

With this arrangement, when a collision of data occurs, the contents of data on the non-priority side are replaced with the contents of data on the priority side. Therefore, the number of data in the database and the amount of data transmitted and processed in the synchronous process can be reduced, and it is also possible to reduce the steps of the operation compared with the conventional technique in which individual data are deleted after the synchronous process. Also, because the priority side deciding section is selected at the time of the sharing setting, each database managing device can refuse the use of an undesirable priority side deciding section, thus realizing a safer database system.

A database managing device in accordance with still another preferable embodiment of the present invention is for constituting the database system, and in order to achieve the third object, includes: at least one database; and a priority side deciding section for deciding, when data changed in the corresponding data are plural in a non-synchronous period, a priority side based on a database managing device which instructed a start of the synchronous process or sharing setting, and the priority side deciding section for instructing the synchronous process section to replace data contents on a non-priority side with data contents on a priority side.

With this arrangement, when a collision of data occurs, the contents of data on the non-priority side are replaced with the contents of data on the priority side, thus reducing the number of data in the database and the amount of data transmitted and processed in the synchronous process. Also, because the start of the synchronous process and specifying of sharing setting can be instructed by the same operation as specifying of the priority side, the steps in the operation can be further reduced.

For a fuller understanding of the nature and advantages of the invention, reference should be made to the ensuing detailed description taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a main component of an information processing device in accordance with one embodiment of the present invention.

FIG. 2 is a block diagram showing an example of a database system constituted by using the information processing device.

FIG. 3 is an explanatory drawing showing a relationship between a tip indicative of single data and a bag which is a set of tips.

FIG. 4 is an explanatory drawing showing how tips are stored in the information processing device.

FIG. 5 is an explanatory drawing showing a relationship between tips, bags, and a database in the information processing device.

FIG. 6 is an explanatory drawing of a tree structure composed of tips, bags, and databases, showing how tips are stored.

FIG. 7 is an explanatory drawing showing a relationship between a sharing bag to be a sharing region of the information processing device and a sharing bag of another information processing device in the database system.

FIG. 8 is an explanatory drawing showing correspondence of tips and how the correspondence is stored in the database system.

FIG. 9 is an explanatory drawing showing a dirty bit list stored in each information processing device of the database system.

FIG. 10 is an explanatory drawing showing an example of how movement parameters of dirty bits making up the dirty bit list are stored.

FIG. 11 is an explanatory drawing showing correspondence of tips when sharing is made between one sharing bag and a plurality of sharing bags.

FIG. 12 is an explanatory drawing showing dirty bit lists with the correspondence of tips.

FIG. 13 is a flowchart schematically showing an operation of the database system.

FIG. 14 is an explanatory drawing showing sharing setting of a bag fused model in the database system.

FIG. 15 is an explanatory drawing showing a synchronous process in the database system.

FIG. 16 is a flowchart explaining in detail an operation in sharing setting in the database system.

FIG. 17 is an explanatory drawing showing sharing setting of a bag drawing model as a modification example of the database system.

FIG. 18 is an explanatory drawing showing sharing setting of a new bag creating model as another modification example of the database system.

FIG. 19 is an explanatory drawing showing a change in dirty bits in response to various operations in a non-synchronous period in the database system.

FIG. 20 is a flowchart showing a contents update process of a tip, explaining in detail an operation in the non-synchronous period in the database system.

FIG. 21 is a flowchart showing an insert process of a tip, explaining in detail an operation in the non-synchronous period in the database system.

FIG. 22 is a flowchart showing a removal process of a tip, explaining in detail an operation in the non-synchronous period in the database system.

FIG. 23 is an explanatory drawing showing correspondence of tips immediately after finishing of the synchronous process in the database system.

FIG. 24 is an explanatory drawing showing dirty bit lists immediately after the synchronous process in the database system.

FIG. 25 is an explanatory drawing showing dirty bit lists immediately before a next synchronous process in the database system.

FIG. 26 is a flowchart explaining in detail an operation in a synchronous process in the database system.

FIG. 27 is an explanatory drawing explaining a state of the synchronous process in the database system, showing dirty bit lists after compression.

FIG. 28 is an explanatory drawing explaining another state of the synchronous process in the database system, showing a state in which dirty bits added to one information processing device are added to another information processing device.

FIG. 29 is an explanatory drawing explaining yet another state of the synchronous process in the database system, showing a state in which dirty bits added to one information processing device are added to another information processing device.

FIG. 30 is an explanatory drawing showing a priority order of the movement parameters of the dirty bit, explaining the synchronous process of the database system.

FIG. 31 is an explanatory drawing showing a change in dirty bits, explaining the synchronous process of the database system.

FIG. 32 is an explanatory drawing showing dirty bit lists at the time when an inside-outside judge synchronous process is finished, explaining the synchronous process of the database system.

FIG. 33 is an explanatory drawing showing a priority order of the update parameters of the dirty bit, explaining the synchronous process of the database system.

FIG. 34 is an explanatory drawing showing a change in update parameter of the dirty bit, explaining the synchronous process of the database system.

FIG. 35 is an explanatory drawing showing a priority side judgement by the dirty bits, explaining the synchronous process of the database system.

FIG. 36 is an explanatory drawing showing dirty bit lists after a data contents synchronous process, explaining the synchronous process of the database system.

FIG. 37 is an explanatory drawing showing dirty bit lists which were further compressed after the data contents synchronous process, explaining the synchronous process of the database system.

FIG. 38 is an explanatory drawing showing a talk model, explaining parties solving a tip collision in the database system.

FIG. 39 is an explanatory drawing showing a selection solution model, explaining parties solving a tip collision in the database system.

FIG. 40 is an explanatory drawing showing an automatic solution model, explaining parties solving a tip collision in the database system.

FIG. 41 is an explanatory drawing showing a relationship between a solution party and a solution timing of a tip collision in the database system.

FIG. 42 is a flowchart showing a negotiation solution model, explaining an operation when solving a tip collision in the database system.

FIG. 43 is a flowchart showing a client immediate model, explaining an operation when solving a tip collision in the database system.

FIG. 44 is a flowchart showing an application solution model, explaining an operation when solving a tip collision in the database system.

FIG. 45 is a flowchart explaining FIG. 44 in more detail.

FIG. 46 is a flowchart showing a client delay model, explaining an operation when solving a tip collision in the database system.

FIG. 47 is a flowchart showing the automatic solution model based on the last updated time, explaining an operation when solving a tip collision in the database system.

FIG. 48 is an explanatory drawing showing how each tip is updated in the database system.

FIG. 49 is a flowchart showing a one side selection model of the automatic solution model, explaining an operation when solving a tip collision in the database system.

FIG. 50 is an explanatory drawing showing a download in the database system.

FIG. 51 is a flowchart showing a download operation in the database system.

FIG. 52 is an explanatory drawing showing the case of changing a correspondence by copying when the tips collide in the database system.

FIG. 53 is a flowchart showing an operation when the correspondence is changed by copying in the database system.

FIG. 54 is an explanatory drawing showing the case of changing a correspondence by copying when the tips are changed in the database system.

FIG. 55 is a flowchart explaining in detail an operation of sharing release in the database system.

FIG. 56 is an explanatory drawing showing a sharing release of a tip copying model in the database system.

FIG. 57 is an explanatory drawing illustrating, as a modification example of the database system, a sharing release of a tip unbalanced model.

FIG. 58 is an explanatory drawing showing, as another modification example of the database system, a sharing release of a tip erased model.

FIG. 59 is an explanatory drawing showing, as another modification example of the database system, a sharing release of the tip unbalanced model in the case where an empty bag is deleted.

FIG. 60 is an explanatory drawing showing, as still another modification example of the database system, a sharing release of the tip erased model in the case where an empty bag is deleted.

FIG. 61 is a flowchart showing, as yet another modification example of the database system, an operation when the dirty bit list is compressed in the non-synchronous period.

FIG. 62 is an explanatory drawing showing a relationship between tip, bag, and database, which are shared between the information processing devices in the database system in accordance with another embodiment of the present invention.

FIG. 63 is an explanatory drawing showing a method of storing a tip in an information processing device which processes an entire database as a bag in the database system.

FIG. 64 is an explanatory drawing showing, as a modification example of the present invention, a change in dirty bit in response to various operations in the non-synchronous period in the database system.

FIG. 65 is a flowchart explaining in detail an operation in the non-synchronous period in the database system, showing a process in which a tip is removed from the sharing bag and a correspondence between an entity of the tip and the dirty bit is cancelled.

FIG. 66 is a flowchart explaining in detail an operation in the non-synchronous period in the database system, showing a process in which a correspondence between an entity of a tip outside of the sharing bag and the dirty bit is cancelled.

FIG. 67 is an explanatory drawing showing dirty bit lists immediately before a next synchronous process in the database system.

FIG. 68 is an explanatory drawing explaining a state of the synchronous process in the database system, showing dirty bit lists after compression.

FIG. 69 is an explanatory drawing explaining a state of the synchronous process in the database system, showing dirty bit lists at the time when all the dirty bits are made corresponded to each other.

FIG. 70 is an explanatory drawing explaining an operation of the synchronous process of the database system, showing dirty bit lists at the time when an inside-outside judge synchronous process is started.

FIG. 71 is an explanatory drawing explaining an operation of the synchronous process of the database system, showing dirty bit lists at the time when the inside-outside judge synchronous process is finished.

FIG. 72 is an explanatory drawing showing, as still another modification example of the present invention, a change in dirty bits in the inside-outside judge synchronous process.

DESCRIPTION OF THE EMBODIMENTS

[First Embodiment]

The following will describe one embodiment of the present invention referring to FIG. 1 through FIG. 61, and FIG. 64 through FIG. 72. Namely, a database system in accordance with the present embodiment is a system which is suitably adopted when there is a need to maintain the same contents of corresponding data between a plurality of databases, each of which can update its data independently, whose communications time is limited, for example, as in the case where personal information is managed by a plurality of database managing devices. The system structure may vary, and in the present embodiment, explanations will be given through the case where the system is composed of portable information terminals; namely, a database system which is composed of equivalent database managing devices.

Specifically, for example, as shown in FIG. 2, a database system 1 in accordance with the present embodiment includes information processing devices (database managing devices) 2 for storing databases, and each information processing device 2 is connected to a communications device (communications means) 3 for communicating with the other information processing device 2, and to a display device 4 and an input device 5 for performing input and output processes with the user.

The communications device 3, for example, is an interface such as a LAN interface or an RS232C interface, a modem, an IR ray transmitter, or a radio wave transmitter, and can communicate with the other communications device 3 via at least one of various communications media, such as a cable, a public telephone line network, an IR ray, and a radio wave in accordance with an instruction from the information processing device 2. The display device 4, for example, is a CRT display or a liquid crystal display, and can display various information such as database contents of the information processing device 2 and the results of operation on the database, in accordance with an instruction from the information processing device 2. The input device 5, for example, is a keyboard, a mouse, a pen, or a touch panel provided on the display device 4, and allows an input of user's instruction to the information processing device 2.

As shown in FIG. 1, the information processing device 2 in accordance with the present embodiment includes a communications section 21, connected to the communications device 3, for communicating with the other information processing device 2 via the communications device 3, a user operating section 22, connected to the display device 4 and the input device 5, constituting a user interface, a database managing section 23 storing database DB, a database processing section 24 for controlling the database managing section 23 in accordance with an instruction from the user operating section 22, and a synchronizing section 25 for controlling the communications section 21 and the database managing section 23 so as to perform a process associated with a synchronous operation with the other database DB. These members may be realized by hardware, or by functional blocks which are realized by execution of a predetermined program by a CPU. The latter is easier because it can realize the above members by providing a recording medium storing the predetermined program and only by running the recording medium on a computer which can read such a recording medium. Note that, the database managing section 23 corresponds to a database, state information storing means, order storing means, and corresponded order storing means of the claims, and the database processing section 24 corresponds to state information update means and order managing means of the claims.

In the present embodiment, as shown in FIG. 3, the database DB is managed in the unit of a tip T, indicative of single data, and a bag F, which is a set of tips T, and the database managing section 23 includes a tip managing section 31 and a bag managing section (subset setting means) 32 for storing a database. The database processing section 24 includes a tip update processing section 41, a tip addition processing section 42, and a tip deletion processing section 43 for updating, adding, and deleting the tip T, respectively. Note that, the database processing section 24 also includes members associated with other operations of the database DB, for example, such as searching and displaying of the tip T, and changing of the relationship of inclusion between the tip T and the bag F. As a result, it is possible to generate a bag F by searching a tip T which satisfies a predetermined condition, such as a tip T with predetermined contents, and select a predetermined tip T from displayed tips T and insert the tip T thus selected into a predetermined bag F.

The synchronizing section 25 includes a synchronize processing section 51 for subjecting tips T to a synchronous process, a sharing setting processing section 52 for carrying out sharing setting (mentioned later) prior to the synchronous process, and a sharing release processing section 53 for releasing the sharing setting, for example, when the synchronous process is no longer required. Note that, the synchronize processing section 51 corresponds to synchronous process means, correspond means, judging means, inside-outside synchronous process means, priority side judging means, data contents synchronizing means, data adding means, added data correspond means, corresponded order update means, and first and second order deleting means of claims. Also, the structures of the database processing section 24 and the synchronizing section 25 are closely associated with the data stored in the database managing section 23, and they are characterized by the operations which are heavily based on the data stored in the database managing section 23. Thus, the following explanations only deal with the structure of the database managing section 23, and the structures of the database processing section 24 and the synchronizing section 25 will be described in relation to their operations.

Specifically, the tip managing section 31 manages single data with a data structure called a "tip". Each tip T includes a tip ID for distinguishing itself from the other tips T in the database DB, and an attribute list LA containing single data. As shown in FIG. 4, the attribute list LA stores a list in a combination of attribute name NA indicative of a type of attribute A, and attribute value VA indicative of a value of attribute A in the data stored in the tip T.

For example, in the case of storing addresses in the database DB, each tip T corresponds to single address data. When the address data are composed of three kinds of data, indicative of name, address, and phone number, respectively, each tip T is defined as a set of three attributes A.sub.1 through A.sub.3 of the name, address, and phone number, and the attribute list LA of the tip T is represented by a list as shown in FIG. 4, in which combinations of attribute name NA and attribute value VA are listed in an orderly manner. For example, the attribute list LA of a first tip stores, as attribute Al, a combination of attribute NA.sub.1 "Name" and attribute value VA.sub.2 "Adam Smith". In the same manner, a combination of "Address" and "1-2-3, Tokyo City, Tokyo", and a combination of "Phone Number" and "0123-45-6789" are stored in the attribute list LA.

The bag managing section 32 stores bags F contained in the database DB and the relationship of inclusion between each tip T and the bags F. As shown in FIG. 5, for example, in the case where a single information processing device 2 contains a plurality of databases DB.sub.1, DB.sub.2, and DB.sub.3, a relationship of information processing device 2{character pullout}database DB{character pullout}bag F{character pullout}tip T is established. The bag managing section 32 stores this relationship in the form of tree structure S as shown in FIG. 6.

In the tree structure S, a tip T may be contained in a single bag F, as with the tip T.sub.2 contained in the single bag F.sub.1, or contained in a plurality of bags, as with the tip T.sub.1 in the bags F.sub.1 and F.sub.2. Thus, the tip T.sub.1 contained in a plurality of bags F.sub.1 and F.sub.2 can be represented as shown in FIG. 5.

Note that, as long as the tree structure S is stored, the entire tree structure S may be stored, or the tree structure S may be stored in the form of a plurality of lists by dividing it into a list of databases DB contained in the information processing device 2, a list of bags F per each database DB, and a list of tips T per each bag F. In the present embodiment, as with the tip T, an ID is also given to each of the information processing device 2, the database DB, and the bag F to distinguish them from the others, and thus the lists of the information processing device 2, the database DB, and the bag F are stored as the lists of IDs. Note that, when the information processing device 2, the database DB, and the bag F are stored in the form of lists, while a tip T contained in a certain bag F can be found immediately by referring to the lists, a bag F containing the tip T results in the worst case and it is required to search all the lists. Thus, when a shorter search time is required, it is preferable to provide a list of bags F containing the tip T per each tip T, in addition to the lists as described above.

In the database system 1 in accordance with the present embodiment, as shown in FIG. 7, a region (sharing region) subject to the synchronous process is determined in the unit of a bag F, and whether or not a tip T is shared between databases DB is determined by whether the tip T belongs to a bag (sharing bag SF), to which sharing has been set beforehand.

As a rule, an access to the other information processing device 2 via a device such as the communications device 3 is considerably slow as compared with the case where an access is made internally within the information processing device 2, and for this reason the time required for the synchronous process tends to be long. Therefore, there is a need to reduce the time required and the amount of data transferred between the information processing devices 2a and 2b. Note that, an internal access within the information processing device 2 is relatively fast, and thus there is no large increase in processing time even when the volume of processes in a period (non-synchronous period) between a previous synchronous process and a next synchronous process is increased.

The bag managing section 32 in accordance with the present embodiment stores a dirty bit list LD composed of dirty bits D, each indicative of the state of each tip T in the non-synchronous period, so as to reduce the amount of data. The dirty bit list LD is managed such that the order of dirty bits D in one information processing device 2 is the same as that of the dirty bits D in the other information processing device 2 between corresponding tips T, and as will be described later, the dirty bit list LD also indicates a correspondence of tips T. The bag managing section 32 also stores a sink limit Lim indicative of the number of tips T which were made corresponded in the previous synchronous process, so that it is possible to judge whether the tips T corresponding to dirty bits D have already been made corresponded to the tips T of the sharing bag SF of the other information processing device 2.

For example, as shown in FIG. 8, in the case where three tips T (T.sub.1a through T.sub.3a) and (T.sub.1b through T.sub.3b) are made corresponded to each other between the sharing bags SF.sub.a and SF.sub.b, "3" is stored as a sink limit Lim in each of the information processing devices 2a and 2b. Also, as shown in FIG. 9, a dirty bit list LD.sub.a of the information processing device 2a stores dirty bits D.sub.1a through D.sub.6a, corresponding to tips T.sub.1a through T.sub.6a, respectively, in this order. Similarly, a dirty bit list LD.sub.b stores dirty bits D.sub.1b through D.sub.3b, corresponding to tips T.sub.1b through T.sub.3b, respectively, and also dirty bits D.sub.7b and D.sub.8b, corresponding to tips T.sub.7b and T.sub.8b, respectively, in this order. In this case, because the sink limit Lim is "3", tips T.sub.4a through T.sub.6a and tips T.sub.7b and T.sub.8b, whose dirty bits D are stored after the third position of the lists are not made corresponded to the tips T of the sharing bag SF of the other party. Note that, FIG. 9 only shows one example of the storing method of the dirty bit list LD, in which a combination of a dirty bit D and a corresponding tip ID is stored in succession.

Note that, in the following, for convenience, the position of a dirty bit D in the dirty bit list LD will be referred to as a sink tag and represented by the number in a bracket [ ]. Also, corresponding data such as a dirty bit D and a tip T will be represented by the same subscript, for example, as in dirty bit D.sub.1a and tip T.sub.1a. Further, the information stored in the information processing device 2a will be represented by the subscript "a", as in the tip T.sub.1a, so as to distinguish it from the information stored in the information processing device 2b, to which the subscript "b" is given. Note that, when there is no need to indicate a correspondence of information, or when referring to information in general, the subscripts are omitted.

The dirty bits D are created so that they correspond one by one to the tips T which have existed in a sharing bag SF even once during the non-synchronous period, and each dirty bit D includes an update parameter indicative of whether the corresponding tip T has been updated during the non-synchronous period, and a movement parameter indicative of whether the tip T has been moved in and out of the sharing bag SF during the non-synchronous period. The update parameter takes the value of either "m", which indicates update, or "p", which indicates maintain. The movement parameter takes the value of either "X", which indicates still, or "I", which indicates insert, or "O", which indicates remove. More specifically, "X" indicates that the tip T has been existing in the sharing bag SF since the last synchronous process, and "I" indicates that the tip T has been inserted or re-inserted into the sharing bag SF since the last synchronous process, and "O" indicates that the tip T has been removed or inserted once but later removed from the sharing bag SF since the last synchronous process. The movement parameter, for example, as shown in FIG. 10, is stored as a combination of an addition bit BI, which indicates that the tip T has been added to the sharing bag SF, and a deletion bit BO, which indicates that the tip T has been deleted from the sharing bag SF. Also, when there is no need to monitor the state of the tip T in the following processes, for example, as in the case where it is judged that the tip T exists outside of the sharing bag SF as a result of the synchronous process, the addition bit BI and the deletion bit BO are both set to the ON state. In the following, this state will be referred to as No Effect "K" regardless of the value of the update parameter. Thus, there are seven states of a tip T which can be identified from a dirty bit D: Still Maintain "Xp", Still Update "Xm", Insert Maintain "Ip", Insert Update "Im", Remove Maintain "Op", Remove Update "Om", and No Effect "K".

Incidentally, even when the sharing bags SF are the same in one party, if their respective corresponding sharing bags SF of the other party are different, the non-synchronous periods are usually different. Thus, in the present embodiment, the dirty bit list LD and the sink limit Lim are provided per each combination of the sharing bag SF of one party and the sharing bag SF of the other party.

For example, as shown in FIG. 11, when a sharing bag SF.sub.a corresponds to three different sharing bags SF.sub.b, SF.sub.c, and SF.sub.d, as shown in FIG. 12, dirty bit lists LD.sub.ab, LD.sub.ac, and LD.sub.ad, and sink limits Lim.sub.ab, Lim.sub.ac, and Lim.sub.ad respectively corresponding to each combination are provided. As shown in FIG. 11 and FIG. 12, as long as the orders of the dirty bit lists LD.sub.ab, LD.sub.ac, and LD.sub.ad are the same as the order of their corresponding dirty bit list LD, the order and value of the dirty bits D, or the sink limit Lim may be different among the dirty bit lists LD.sub.ab, LD.sub.ac, and LD.sub.ad. For example, in the dirty bit list LD.sub.ab, a dirty bit D.sub.2ab (having a value of Im) indicative of a tip T.sub.2a is stored in the second position, whereas in the dirty bit list LD.sub.ac, a dirty bit D.sub.2ac (having a value of Xp) is stored in the first position. However, note that in a dirty bit list LD.sub.b of the sharing bag SF.sub.b, a dirty bit D.sub.2b indicative of a tip T.sub.2b is stored in the second position, and a dirty bit D.sub.2c is stored in the first position in the dirty bit list LD.sub.c.

The bag managing section 32 in accordance with the present embodiment also includes, in addition to the dirty bit lists LD, a sharing party list LS indicative of a sharing party of the sharing bag SF, per each sharing bag SF. By referring to the sharing party list LS, it is possible to search all sharing parties of the sharing bag SF with ease. Therefore, when a change such as addition, deletion, or contents update is made, for example, with respect to a tip T of the sharing bag SF, all the dirty bits D corresponding to the tip T can be updated with a shorter time.

The following describes an operation of the database system 1 having the described structure referring to FIG. 13 through FIG. 61. As schematically shown in FIG. 13, sharing is set prior to the actual synchronous process, and various processes required for the synchronous process, such as setting of sharing bags SF of each party, and generation of dirty bit lists LD and sink limits Lim, are carried out (S1). Note that, at this stage, as shown in FIG. 14, it is only registered in the information processing devices 2a and 2b that the sharing bags SF.sub.a and SF.sub.b are in the sharing region, and the contents of the sharing bags SF.sub.a and SF.sub.b do not coincide until the synchronous process is carried out.

Thereafter, regardless of whether the information processing devices 2a and 2b are ready to communicate, the dirty bit list LD of each information processing device is updated based on an operation on the database DB during the non-synchronous period (S2). When the information processing devices 2a and 2b are ready to communicate, the synchronous process is carried out, and as shown in FIG. 15, the number and the contents of the tips T of the sharing bags SF of the both parties are arranged referring to the dirty bit lists LD and the sink limits Lim, and the dirty bit lists LD and the sink limits Lim are also updated (S3). The use of sharing bags whose order is maintained by an intentional synchronous process as in S3 is very effective in the case where the communications line of the information processing devices 2a and 2b is connected and disconnected intermittently.

Note that, because the tip T can be contained in a plurality of bags F, a synchronous process regarding any sharing setting might change a tip T which belongs to a bag F playing no part in the synchronous process. Nonetheless, regardless of whether the synchronous process being carried out is associated with which of the sharing setting, the tip T is not inserted into or removed from a bag F other than the sharing bag SF.

The processes of S2 and S3 are repeated as required, and when the synchronous process is no longer required, the sharing setting is released in S4. Note that, in FIG. 13, S2 is carried out following S1. However, as long as the steps S2 and S3 are carried out alternately, the order of S2 and S3 may be reversed.

Here, basically, a release of sharing merely releases the correspondence between the sharing bags SF, and here it is not necessarily the case that the contents of the sharing bags SF coincide with each other. Thus, when making a coincidence of the contents of the sharing bags SF, a synchronous process is carried out before sharing is released, either automatically or by an instruction of the user.

Note that, although setting of sharing and the synchronous process are described separately in the above explanation, they may be simultaneously carried out. In such a case, the contents of the sharing bags SF coincide at the time when, for example, setting of sharing is finished. However, in the present embodiment, the sharing setting and the synchronous process are separated from each other to save time required for sharing setting. Thus, in the case where the both information processing devices 2 confirm setting of sharing to their respective users at the time of sharing setting and only one of the information processing devices 2 is operated by the user at the time of synchronous process, the total operation time by the both users can be reduced, thereby improving safety and reducing the operation time.

The following describes sharing setting of a bag fused model as one example of the process in S1. As shown in FIG. 14, sharing setting of a bag fused-type is setting of sharing between bags F.sub.a and F.sub.b which have been existing already in the information processing devices 2a and 2b, respectively, and when the information processing devices 2a and 2b are ready to communicate, as shown in FIG. 16, the sharing setting processing section 52 of the information processing device 2a in S11 sends a sharing setting request to the information processing device 2b. The request includes a machine ID indicative of the information processing device 2a, a bag ID indicative of the bag F.sub.a of the information processing device 2a, and a bag ID indicative of the bag F.sub.b of the information processing device 2b to which the sharing is directed. Note that, in the following, the side which sends the sharing setting request will be referred to as a sharing setting promoting side, and the side which receives the sharing setting request will be referred to as a sharing setting receiving side.

Then, in S12, the sharing setting processing section 52 on the sharing setting promoting side registers, as sharing information, information analogous to the sharing setting request. Also, the sharing setting processing section 52 creates a sharing party list LS corresponding to the bag F.sub.a so as to register the bag ID of the other party. As a result, the bag F.sub.a becomes a sharing bag SF.sub.a. Also, a dirty bit list LD and a sink limit Lim, corresponding to a combination of the sharing bag SF.sub.a and the bag F.sub.b of the other party are created.

The information processing device 2b on the sharing setting receiving side, upon receiving the sharing setting request by the sharing setting processing section 52 in S13, registers sharing information based on the sharing setting request in S14. The sharing information includes a machine ID indicative of the information processing device 2b, a bag ID to be subjected to sharing in the information processing device 2a, a bag ID to be subjected to sharing in the information processing device 2b, and an option which is decided in the sharing setting. The sharing setting processing section 52 of the information processing device 2b, as with the sharing setting promoting side, registers the bag ID of the other party to a sharing party list LS corresponding to the bag F.sub.b so as to generate a sharing bag SF.sub.b, and create a dirty bit list LD and a sink limit Lim, corresponding to a combination of the sharing bag SF.sub.b and the sharing bag SF.sub.a of the other party.

It is one of the characteristics of the database system 1 in accordance with the present embodiment that when the information processing device 2 can select various options, such as whether a priority determining rule or download process is needed, or copying is required when a collision occurs in the synchronous process in S3, or a model adopted in the sharing release in S4, these options are set in the sharing setting stage, and the sharing setting request includes information indicative of such options, allowing the options to be set only in the sharing setting stage.

Here, if the information processing device 2 can set an option at an arbitrary timing, there is a case where an option such as the priority determining rule is changed in accordance with an operation on one of the information processing devices 2, and undesirable setting is made for the user of the other information processing device 2. However, with the described arrangement, the option is changed only in the sharing setting stage when the information processing devices 2 are ready to communicate, thus avoiding such undesirable setting.

Note that, even though FIG. 16 does not show a step for verifying the sharing party, the sharing setting receiving side may decide whether to proceed with sharing setting in accordance with the contents of the sharing setting request, for example, such as an option for sharing setting. In such a case, the information processing device 2 on the sharing setting receiving side stores beforehand, for example, a sharing setting request which can be received, and decides whether to proceed with sharing setting based on the sharing setting request thus stored.

The initial values of the dirty bit list LD and the sink limit Lim vary according to the correspondence of the tips T contained in the sharing bags SF.sub.a and SF.sub.b. For example, in sharing setting, in the case of judgement in which the tips T contained in the sharing bags SF.sub.a and SF.sub.b are distinguished from each other, the initial value of the sink limit Lim becomes 0, and the dirty bit D corresponding to each tip T is set to Insert Update "Im". Also, for example, when making a correspondence of tips T referring to the contents thereof, the sink limit Lim takes the value of the number of tips T which were successfully made corresponded, and the dirty bits D corresponding to the tips T are stored such that their orders are the same in the both dirty bit lists LD. Note that, when the contents of the tips of the both parties are the same, the values of the dirty bits D become Still Maintain "Xp", and when it is unknown whether the contents are the same, the values are set to Still Update "Xm".

Also, the model of sharing setting is not just limited to the bag fused model so that, as shown by the bag drawing model in FIG. 17, one of the sharing bags may be newly created in the sharing setting, or as shown by the new bag creating model in FIG. 18, a new sharing bag SF may be newly created for the information processing devices 2a and 2b. In either case, the process substantially similar to that of FIG. 16 is carried out, and the sharing information, dirty bit list LD, sink limit Lim, and sharing information are registered in each of the information processing devices 2a and 2b. However, in the case where a new sharing bag SF is created on the sharing setting receiving side, the bag ID of the sharing bag SF is returned to the sharing setting promoting side when registering the sharing information, etc.

The following will describe in detail the process of S2 in FIG. 13, that is, the process during the non-synchronous period. In the non-synchronous period, the dirty bits D corresponding to the tips T are updated based on the operation on the tips T, and the dirty bit list LD and the sink limit Lim at the time of operation, as shown in FIG. 19.

Specifically, when the contents update of the tips T is instructed, in S21 of FIG. 20, the tip update processing section 41 (see FIG. 1) receives the instruction from the user operating section 22 and updates the contents of the tips T in accordance with the instruction. Then, in S22, the update parameter is set to "m" with respect to the dirty bits D corresponding to the tips T. Note that, the values of the movement parameter remain unchanged.

The tip T can belong to a plurality of sharing bags SF, and there is a case where the sharing bag SF is linked to a plurality of sharing bags SF. Therefore, in the information processing device as a whole, there may be a plurality of dirty bits D corresponding to the tip T. For this reason, all the dirty bits D corresponding to the tip T are searched and updated. Searching of corresponding dirty bits D may be carried out referring to all the dirty bit lists LD, or, in order to reduce the search time, by creating in advance and referring to a list of dirty bits D corresponding to the tip T.

In any case, in the present embodiment, the dirty bit D is created with respect to a tip T which has belonged even once to the sharing bag SF during the non-synchronous period, and the dirty bit D is updated by monitoring the operation on the tip T. Therefore, for example, even when the tip T has been moved and does not currently exist in the sharing bag SF, it is ensured that the dirty bit D is updated.

On the other hand, in the case where the tip T is inserted into the sharing bag SF by newly creating or by moving the tip T, as shown in FIG. 21, the tip addition processing section 42 (see FIG. 1) controls the bag managing section 32 in accordance with an instruction from the user operating section 22 so that the tip T belongs to the sharing bag SF (S31). Further, the tip addition processing section 42 in S32 judges whether the dirty bit list LD indicative of the sharing bag SF contains a dirty bit D corresponding to the tip T.

Here, when the dirty bit D is contained, it indicates that the contents update of the tip T has already been monitored, for example, as in the case where the tip T in the sharing bag SF has been moved in and out of it. Thus, the tip addition processing section 42 in S33 sets the movement parameter of the dirty bit D to "I". Meanwhile, when the dirty bit D is not contained, it means that, for example, the tip T has never been contained in the sharing bag SF or the tip T has been newly created, and it indicates that whether the contents of the tip T have been updated or not during the non-synchronous period cannot be confirmed. Thus, the tip addition processing section 42 in S34 adds a dirty bit D with the value of "Im" indicative of the tip T to the dirty bit list LD on the position after the sink limit Lim, for example, on the last position of the dirty bit list LD. Note that, in the case where there are plural dirty bit lists LD corresponding to the sharing bag SF, the processes from S32 to S34 are carried out with respect to all the dirty bit lists LD.

Further, in the case where the tip T is removed from the sharing bag SF, for example, by deleting or moving the tip T, as shown in FIG. 22, the tip deletion processing section 43 (see FIG. 1) controls the bag managing section 32 in accordance with an instruction from the user operating section 22 so that the tip T is removed from the sharing bag SF (S41). Here, in the present embodiment, the dirty bit D is maintained with respect to the tip T which has contained in the sharing bag SF even once during the non-synchronous period. Thus, the tip deletion processing section 43 in S42 updates the movement parameter of the dirty bit D corresponding to the tip T to "O" with respect to all the dirty bit lists LD indicative of the sharing bag SF. Note that, the update parameter remains unchanged.

For example, at the end of the synchronous process, as shown in FIG. 23, all the tips T in the sharing bags SF.sub.a and SF.sub.b are corresponding one to one with each other, and the contents of the corresponding tips T are set to be the same. Thus, as shown in FIG. 24, the sink limit Lim is the same as the length (number of dirty bits D) of the dirty bit list LD, and the corresponding dirty bits D.sub.a and D.sub.b are stored such that their orders are the same in their respective dirty bit lists LD. Also, the values of the dirty bits D are all set to "Xp".

During the non-synchronous process, when respective databases DB of the information processing devices 2 are independently operated, the tip update processing section 41, the tip addition processing section 42, and the tip deletion processing section 43 of each information processing device 2 update the dirty bit list LD. As a result, the values of the dirty bits D always indicate the states of the corresponding tips T during the non-synchronous period. Therefore, when the databases DB are independently updated, at the time immediately preceding a subsequent synchronous process, for example, as shown in FIG. 25, the dirty bit lists LD do not coincide with each other.

Nevertheless, in the dirty bit lists LD, the dirty bit D on the position indicated by the sink limit Lim, and the dirty bits D above the sink limit Lim are not deleted even when the corresponding tips T are deleted so that the same order is maintained during the non-synchronous period. As a result, the same order of the dirty bits D indicative of the corresponding tips T, such as dirty bits D.sub.3a and D.sub.3b, is maintained in the sharing bags SF.sub.a and SF.sub.b.

The dirty bits D after the sink limit Lim indicate tips T which were newly added to the sharing bag SF during the non-synchronous period, and even when the dirty bits D, for example, such as dirty bits D.sub.22 and D.sub.27, are stored on the same position, their respective tips T do not correspond to each other. Such dirty bits D after the sink limit Lim indicate either "Im" or "Om", wherein "Om" indicates that the newly inserted tip T into the sharing bag SF does not currently belong to the sharing bag SF. Also, in the case where the number of tips T added is different, the lengths of the dirty bit lists LD are also different.

When the synchronous process is instructed in this state by an instruction of the user or by a sensor for detecting that the information processing devices 2 are ready to communicate, the synchronous process of S3 in FIG. 13 is carried out. To explain in more detail, as shown in FIG. 26, in S51, the synchronize processing section 51 of each information processing device 2 deletes dirty bits D whose movement parameter is "O" from the dirty bits D after the sink limit Lim of the dirty bit list LD. As a result, as shown in FIG. 27, the dirty bits D after the sink limit Lim only take the value of "Im" in the both dirty bit lists LD.

The tips T corresponding to the dirty bits D with the movement parameter of "O" are not contained in the sharing bag SF in the preceding synchronous process and the current synchronous process. Therefore, it is not required to send the contents of these tips T to the other information processing device 2 regardless of the state of the sharing bag SF of the other party. As a result, by deleting these tips T, the number of dirty bits D transmitted between the information processing devices 2a and 2b can be reduced in the subsequent processes.

When compression of the dirty bit list D is finished in S51, the synchronize processing section 51 of one party in S52 receives the dirty bits D after the sink limit Lim of the other party so as to generate dirty bits D corresponding to the dirty bits D thus received. Specifically, the information processing device 2b sends the number Y.sub.b of dirty bits D after the sink limit Lim.sub.b of the dirty bit list LD.sub.b, an