Synchronization of recurring records in incompatible databases
Abstract
A technique for synchronizing databases in which different techniques are used for storing a recurring event. A database in which the recurring event is, for example, stored as a single recurring record can be synchronized with a database in which the same recurring event is stored as a series of individual records. The individual records are processed to form a synthetic recurring record representing the set of individual records, and synchronization decisions are based on a comparison of the synthetic record to the recurring record of the other database. Following synchronization, the synthetic record can be “fanned” back into the individual records to update the database containing individual records, and the updated recurring record can be written back to the other database. In this way, the invention avoids the problems encountered with prior methods, in which synchronization resulted in a recurring record being transformed into a series of individual records.
Claims
exact text as granted — not AI-modified1. A computer implemented method of synchronizing at least a first and a second database, wherein the manner of storing a set of recurring date bearing instances differs between the first and second databases, and at least the first database uses a recurring record to store the set of recurring date bearing instances, the method comprising:
processing a plurality of non-recurring records in the second database to identify a set of non-recurring records storing a set of recurring date bearing instances in the second database;
performing a comparison of the set of non-recurring records of the first second database to a recurring record of the first database; and
completing synchronization based on the outcome of the comparison.
2. The method of claim 1 wherein the step of completing synchronization includes adding, modifying, or deleting one of the synthetic set of non-recurring record records and the recurring record.
3. The method of claim 1 further comprising, after completing synchronization, storing the set of recurring date bearing instances in the second database as a plurality of non-recurring records.
4. The method of claim 1 further comprising, after completing synchronization, storing the set of recurring date bearing instances in the second database as a recurring record having a different record structure than the recurring record of the first database.
5. The method of claim 1 further comprising storing a history file containing a record representative of one of the recurring record and the set of non-recurring instances records in a past synchronization.
6. The method of claim 5 further comprises performing a second comparison of one of the synthetic set of non-recurring record records and the recurring record to the record in the history file representative of the recurring record or the set of non-recurring instances records and completing synchronization based on the outcome of the second comparison.
7. The method of claim 1 wherein each recurring record and each non-recurring record includes a key field, and wherein the step of processing a plurality of non-recurring records in the second database further comprises:
performing a second comparison of the key fields of the recurring and non-recurring records; and
selecting a group of records from among the recurring and non-recurring records based on the outcome of the second comparison.
8. The method of claim 7 wherein the step of selecting a group of records comprises selecting the group based on identity of the content of the key fields of the recurring and non-recurring records.
9. The method of claim 7 wherein each recurring record and each non-recurring record includes at least one other field, and wherein the step of processing a plurality of non-recurring records in the second database further comprises:
performing a third comparison of the at least one other field of the non-recurring records in the group;
selecting a the set of non-recurring records based on the outcome of the third comparison; and
correlating the set of non-recurring records to the recurring record of the first database.
10. The method of claim 9 wherein selecting the set of non-recurring records based on the outcome of the third comparison is based on identity of content of the at least one other field of the non-recurring records in the group.
11. The method of claim 1 wherein processing the plurality of non-recurring records further includes processing the plurality of non-recurring records to generate a synthetic recurring record representing the set of recurring date bearing instances in the second database, and
wherein performing a comparison of the set of non-recurring records to a recurring record includes performing a comparison of the synthetic recurring record of the second database to the recurring record of the first database.
12. The method of claim 11 wherein, following the step of completing synchronization, one of the synthetic recurring record and recurring record is fanned back into a plurality of fanned non-recurring records.
13. The method of claim 11 wherein the synthetic recurring record has a list of excluded instances and the step of processing a plurality of non-recurring records in the second database to generate a synthetic recurring record further comprises generating a list of excluded instances representative of instances previously represented by the recurring record and currently represented by another record or deleted.
14. The method of claim 11 wherein the recurring record and the synthetic recurring record each contain a list of excluded date bearing instances, wherein the step of performing a comparison of the synthetic recurring record to the recurring record includes performing a comparison of the list of excluded date bearing instances of the recurring record with the list of excluded date bearing instances of the synthetic recurring record.
15. The method of claim 14 wherein the step of completing synchronization includes adding, modifying, or deleting the list of excluded date bearing instances of one of the recurring record and the synthetic recurring record.
16. The method of claim 14 wherein the step of completing synchronization includes adding, modifying, or deleting one of the synthetic recurring record and recurring record.
17. The method of claim 14 wherein, following the step of completing synchronization, one of the synthetic recurring record and recurring record is fanned into a plurality of fanned non-recurring records excluding the instances in the list of excluded date bearing instances of a corresponding one of the synthetic recurring record and recurring record.
18. The method of claim 11 further comprising storing a history file containing a record representative of one of the recurring record and synthetic recurring record in a past synchronization.
19. The method of claim 18 wherein the second database assigns a unique ID to each record, and wherein the method further comprises:
fanning one of the synthetic recurring record and the recurring record into a plurality of fanned non-recurring records;
storing records in the history file representative of the plurality of fanned non-recurring records;
storing in the history file the unique IDs assigned by the second database to the plurality of fanned non-recurring records; and
recording linkages among the records representative of the plurality of non-recurring records and the record representative of one of the recurring record and synthetic recurring record.
20. The method of claim 18 wherein the second database assigns unique IDs to each record, the history file further contains records representative of non-recurring records of the second database from a past synchronization and unique IDs assigned to the non-recurring records of the second database, and the step of processing a plurality of non-recurring records in the second database to generate a synthetic recurring record further comprises:
performing a comparison of the unique IDs stored in the history file with unique IDs of the plurality of non-recurring records in the second database; and
selecting a set of non-recurring records in the second database based on the comparison of the unique IDs and generating the synthetic recurring record using the set of non-recurring records.
21. The method of claim 20 wherein the step of selecting a set of non-recurring records further comprises selecting a set of non-recurring records in the second database having unique IDs matching a set of the unique IDs stored in the history file.
22. The method of claim 20 wherein one of the synthetic recurring record and the recurring record has an exclusion list and the step of selecting the set of non-recurring records comprises:
selecting a set of records in the history file having unique IDs failing to match any of the unique IDs of non-recurring records in the second database; and
adding, modifying, or deleting the exclusion list of at least one of the synthetic recurring record and the recurring record, using the set of records in the history file.
23. The method of claim 18 further comprises performing a second comparison of one of the synthetic recurring record and the recurring record to the history file record representative of the recurring record or the synthetic recurring record in the past synchronization, and completing synchronization based on the outcome of the second comparison.
24. A computer program, resident on a computer readable medium, for synchronizing at least a first and a second database, wherein the manner of storing a set of recurring date bearing instances differs between the first and second databases, and at least the first database uses a recurring record to store the set of recurring date bearing instances, comprising instructions for:
processing a plurality of non-recurring records in the second database to identify a set of non-recurring records storing the set of recurring date bearing instances in the second database;
performing a comparison of the set of non-recurring records of the first second database to a recurring record of the first database; and
completing synchronization based on the outcome of the comparison.
25. The computer program of claim 24 wherein the instruction for completing synchronization includes adding, modifying, or deleting one of the synthetic set of non-recurring record records and the recurring record.
26. The computer program of claim 24 further comprising instructions for, after completing synchronization, storing the set of recurring date bearing instances in the second database as a plurality of non-recurring records.
27. The computer program of claim 24 further comprising instructions for, after completing synchronization, storing the set of recurring date bearing instances in the second database as a recurring record having a different record structure than the recurring record of the first database.
28. The computer program of claim 24 further comprising instructions for storing a history file containing a record representative of one of the recurring record and the set of non-recurring instances records in a past synchronization.
29. The computer program of claim 28 further comprises instructions for performing a second comparison of one of the synthetic set of non-recurring record records and the recurring record to the record in the history file representative of the recurring record or the set of non-recurring instances records and completing synchronization based on the outcome of the second comparison.
30. The computer program of claim 24 wherein each recurring record and each non-recurring record includes a key field, and wherein the instruction for processing a plurality of non-recurring records in the second database further comprises instructions for:
performing a second comparison of the key fields of the recurring and non-recurring records; and
selecting a group of records from among the recurring and non-recurring records based on the outcome of the second comparison.
31. The computer program of claim 30 wherein the instruction for selecting a group of records comprises instructions for selecting the group based on identity of the content of the key fields of the recurring and non-recurring records.
32. The computer program of claim 30 wherein each recurring record and each non-recurring record includes at least one other field, and wherein the instruction for processing a plurality of non-recurring records in the second database further comprises instruction for:
performing a third comparison of the at least one other field of the non-recurring records in the group;
selecting a the set of non-recurring records based on the outcome of the third comparison; and
correlating the set of non-recurring records to the recurring record of the first database.
33. The computer program of claim 32 wherein selecting the set of non-recurring records based on the outcome of the third comparison is based on identity of content of the at least one other field of the non-recurring records in the group.
34. The computer program of claim 24 wherein processing the plurality of non-recurring records further includes processing the plurality of non-recurring records to generate a synthetic recurring record representing the set of recurring date bearing instances in the second database, and
wherein performing a comparison of the set of non-recurring records to a recurring record includes performing a comparison of the synthetic recurring record of the second database to the recurring record of the first database.
35. The computer program of claim 34 wherein further comprising, following the instruction for completing synchronization, instructions for fanning one of the synthetic recurring record and recurring record is fanned back into a plurality of fanned non-recurring records.
36. The computer program of claim 34 wherein the synthetic recurring record has a list of excluded instances and the instruction for processing a plurality of non-recurring records in the second database to generate a synthetic recurring record further comprises instructions for generating a list of excluded instances representative of instances previously represented by the recurring record and currently represented by another record or deleted.
37. The computer program of claim 34 wherein the recurring record and the synthetic recurring record each contain a list of excluded date bearing instances, wherein the instruction for performing a comparison of the synthetic recurring record to the recurring record includes instructions for performing a comparison of the list of excluded date bearing instances of the recurring record with the list of excluded date bearing instances of the synthetic recurring record.
38. The computer program of claim 37 wherein the instruction for completing synchronization includes instructions for adding, modifying, or deleting the list of excluded date bearing instances of one of the recurring record and the synthetic recurring record.
39. The computer program of claim 37 wherein the instruction for completing synchronization includes instructions for adding, modifying, or deleting one of the synthetic recurring record and recurring record.
40. The computer program of claim 37 wherein further comprising, following the instruction for completing synchronization, instructions for fanning one of the synthetic recurring record and recurring record is fanned into a plurality of fanned non-recurring records excluding the instances in the list of excluded date bearing instances of a corresponding one of the synthetic recurring record and recurring record.
41. The computer program of claim 34 further comprising instructions for storing a history file containing a record representative of one of the recurring record and synthetic recurring record in a past synchronization.
42. The computer program of claim 41 wherein the second database assigns a unique ID to each record, and wherein the computer program further comprises instructions for:
fanning one of the synthetic recurring record and the recurring record into a plurality of fanned non-recurring records;
storing records in the history file representative of the plurality of fanned non-recurring records;
storing in the history file the unique IDs assigned by the second database to the plurality of fanned non-recurring records; and
recording linkages among the records representative of the plurality of non-recurring records and the record representative of one of the recurring record and synthetic recurring record.
43. The computer program of claim 41 wherein the second database assigns unique IDs to each record, the history file further contains records representative of non-recurring records of the second database from a past synchronization and unique IDs assigned to the non-recurring records of the second database, and the instruction for processing a plurality of non-recurring records in the second database to generate a synthetic recurring record further comprises instructions for:
performing a comparison of the unique IDs stored in the history file with unique IDs of the plurality of non-recurring records in the second database; and
selecting a set of non-recurring records in the second database based on the comparison of the unique IDs and generating the synthetic recurring record using the set of non-recurring records.
44. The computer program of claim 43 wherein the instruction for selecting a set of non-recurring records further comprises instructions for selecting a set of non-recurring records in the second database having unique IDs matching a set of the unique IDs stored in the history file.
45. The computer program of claim 43 wherein one of the synthetic recurring record and the recurring record has an exclusion list and the instruction for selecting the set of non-recurring records comprises instructions for:
selecting a set of records in the history file having unique IDs failing to match any of the unique IDs of non-recurring records in the second database; and
adding, modifying, or deleting the exclusion list of at least one of the synthetic recurring record and the recurring record, using the set of records in the history file.
46. The computer program of claim 41 further comprises comprising instructions for performing a second comparison of one of the synthetic recurring record and the recurring record to the history file record representative of the recurring record or the synthetic recurring record in the past synchronization, and completing synchronization based on the outcome of the second comparison.
47. A computer implemented method of synchronizing at least a first and a second database, wherein records in the first and second databases include a key field, the method comprising:
performing a first comparison of the content of the key field of the records of the first database with the content of the key field of the records of the second database;
selecting a plurality of groups of records of the first and second databases based on the outcome of the first comparison;
performing a second comparison of the records in one of the plurality of groups of records to determine a correspondence between a record of the first database in the one of the plurality of groups and a record of the second database in the one of the plurality of groups;
performing a third comparison of the records in the determined correspondence; and
completing the synchronization based on the outcome of the third comparison.
48. The method of claim 47 , wherein the method further comprises selecting the plurality of groups of records based on identity of the contents of the key fields of the records of the first and second database.
49. The method of claim 47 further comprising storing a history file containing history records representative of records of the first and second databases in a past synchronization, wherein performing a second comparison includes performing a comparison of the records in the one of the plurality of groups to the history records and wherein performing the third comparison includes comparing a corresponding history record with the records in the determined correspondence.
50. The method of claim 49 wherein the step of completing synchronization further comprises:
performing a third comparison of the records of the corresponding item group; and
completing synchronization based on the third comparison.
51. The method of claim 47 wherein the key field is a date field.
52. The method of claim 47 wherein the key field is a text field.
53. A computer program, resident on a computer readable medium, for synchronizing at least a first and a second database, wherein records in the first and second databases include a key field, comprising instructions for:
performing a first comparison of the content of the key field of the records of the first database with the content of the key field of the records of the second database;
selecting a plurality of groups of records of the first and second databases based on the outcome of the first comparison;
performing a second comparison of the records in one of the plurality of groups of records to determine a correspondence between a record of the first database in the one of the plurality of groups and a record of the second database in the one of the plurality of groups;
performing a third comparison of the records in the determined correspondence; and
completing the synchronization based on the outcome of the third comparison.
54. The computer program of claim 53 , the computer program further comprises instructions for selecting the plurality of groups of records based on identity of the contents of the key fields of the records of the first and second database.
55. The computer program of claim 53 further comprising instructions for storing a history file containing history records representative of records of the first and second databases in a past synchronization, wherein performing a second comparison includes performing a comparison of the records in the one of the plurality of groups to the history records and wherein performing the third comparison includes comparing a corresponding history record with the records in the determined correspondence.
56. The computer program of claim 55 wherein the instruction for completing synchronization further comprises instructions for:
performing a third comparison of the records of the corresponding item group; and
completing synchronization based on the third comparison.
57. The computer program of claim 53 wherein the key field is a date field.
58. The computer program of claim 53 wherein the key field is a text field.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.