Method for accessing and updating data in a database using membership abstractions and logical representations

This is a computer-implemented method for accessing and updating data in a database that preserves relationships among data, including derived data. Data need not be stored in a tabular form. The method incorporates and integrates membership abstractions, relation predicates, and logical predicates of data with relationships among data so as too avoid update and other errors and to translate among logical representations, symbolic abstractions, and physical representations.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
CROSS REFERENCE TO RELATED APPLICATIONS

This application claims benefit of priority of, and is a division of, U.S. patent application Ser. No. 11/649,089, filed on Dec. 31, 2006, which is a continuation-in-part of Ser. No. 10/114,609, filed Apr. 2, 2002, now U.S. Pat. No. 7,263,512. This application is filed to continue the prosecution, separately, of the invention described in the claims 1-38 below, and expressly incorporates both below and by reference all of the original application's specification and drawings.

STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not Applicable

DESCRIPTION OF ATTACHED APPENDIX

Not Applicable

Claims

1. A computer implemented method for accessing and updating data in a database comprising:

accepting an expression comprising at least both an operation on the first derived data and a first data reference to a first derived data;
selecting a first derived membership abstraction associated with the first data reference;
decomposing the first derived membership abstraction into a decomposed derived membership abstraction, said decomposed derived membership abstraction comprising a set of source data references to source data, a set of operations on the source data, and a set of constraints;
forming a derived expression by modifying the expression according to, and incorporating elements of, the decomposed derived membership abstraction, said derived expression being logically equivalent to the expression;
and,
performing at least a first operation in the set of operations on the source data as specified by and according to the derived expression.

2. A method as in claim 1 wherein at least a portion of the source data has a tabular representation.

3. A method as in claim 1 wherein at least a portion of the source data is has a non-tabular representation.

4. A method as in claim 1 wherein the set of constraints comprises at least one multi-table constraint.

5. A method as in claim 1 wherein the set of constraints comprises at least one column constraint.

6. A method as in claim 1 wherein the set of constraints comprises at least one row constraint.

7. A method as in claim 1 wherein the set of constraints comprises at least one multi-row constraint.

8. A method as in claim 1 further comprising identifying at least one membership abstraction as corresponding to at least one data reference in the derived expression.

9. A method as in claim 1 further comprising identifying at least one table name as corresponding to at least one data reference in the derived expression.

10. A method as in claim 1 further comprising identifying at least one table metadata as corresponding to at least one data reference in the derived expression.

11. A method as in claim 1 further comprising identifying at least one relation predicate as corresponding to at least one data reference in the derived expression.

12. A method as in claim 1 further comprising identifying at least one logical predicate as corresponding to at least one data reference in the derived expression.

13. A method as in claim 1 further comprising identifying at least one data structure as corresponding to at least one data reference in the derived expression.

14. A method as in claim 1 wherein at least one membership abstraction denoted by a table name.

15. A method as in claim 1 wherein at least one membership abstraction comprises a plurality of membership abstractions.

16. A method as in claim 1 wherein at least member of a set consisting of the first derived membership abstraction and the decomposed derived membership abstraction is a logical predicate.

17. A method as in claim 1 wherein at least member of a set consisting of the first derived membership abstraction and the decomposed derived membership abstraction is a relation predicate.

18. A method as in claim 1 wherein the step of performing is determined to be logically consistent with each membership abstraction logically implied by the derived expression.

19. A method as in claim 1 further comprising:

applying each operation of the set of operations when that operation as specified by the derived expression is determined to be logically consistent with a membership abstraction associated with the data to which that operation is to be applied.

20. A method as in claim 1 wherein the physical representation of at least a portion of the source data is non-tabular.

21. A method as in claim 1 wherein at least one membership abstraction associated with at least one data reference is stored in and retrieved from a repository.

22. A method as in claim 1 wherein the said derived expression comprises a set of source membership abstractions and is logically equivalent to the expression.

23. A method as in claim 1 wherein the step of performing further comprises applying the set of operations on source data to a physical representation of source data according to and consistent with a logical representation of source data.

24. A method as in claim 1 further comprising:

checking, after the step of performing, whether the result of performing at least the first operation is logically consistent with at least a first post-operation constraint;
guaranteeing that the first operation has no effect on the source data if the step of checking determines that the result of that first operation on the source data is not logically consistent with the first post-operation constraint; and,
completing the effect on the source data by the first operation if and only if the step of checking determines that the result of that operation is consistent with the first post-operation constraint.

25. A method as in claim 24 wherein the first post-operation constraint is among a plurality of source data;

26. A method as in claim 24 wherein the first post-operation constraint is on data having a plurality of data structures.

27. A method as in claim 24 wherein the step of guaranteeing has a result that is equivalent to the first operation having no effect on the source data and is independent of the result of other operations logically implied by the derived expression.

28. A computer implemented method for accessing and updating data in a database comprising:

specifying a plurality of membership abstractions, each corresponding to a member of a set of data types;
defining a derived data type as comprising at least a combination of at least two members of the set of data types;
deriving a derived membership abstraction for the derived data type as comprising both the plurality of membership abstractions, and a set of operators corresponding to the combination and comprising at least a first operator;
storing the derived membership abstraction in association with a first symbolic reference to the derived data type, and each of the plurality of membership abstractions in association with at least one symbolic reference to that membership abstraction's corresponding data type;
and,
modifying the derived membership abstraction responsive to a change in at least one of the set of data types, the plurality of membership abstractions, and the combination.

29. A method as in claim 28 wherein the first operator corresponds to one member of a set of operators consisting of a logical operator, a relational operator, and a set operator.

30. A method as in claim 28 wherein at least one of the derived data type and a member of the set of data types is a table column's type.

31. A method as in claim 28 wherein at least one of the derived data type and a member of the set of data types is one member of a set consisting of a table's type and a relation's type.

32. A method as in claim 28 wherein at least one of the derived data type and a member of the set of data types is a non-tabular type.

33. A method as in claim 28 wherein at least one of the plurality of membership abstractions and the derived membership abstraction is a member of a set consisting of a logical predicate and a relation predicate.

34. A method as in claim 28 wherein at least one of the plurality of membership abstractions and the derived membership abstraction is denoted by a symbolic name.

35. A method as in claim 28 wherein the first operator corresponds to a computational procedure.

36. A method as in claim 35 wherein the computational procedure produces at least one member of a set of results consisting of summarized data and aggregated data.

37. A data processing system comprising:

a processor for performing operations;
a storage means for storing any of expressions, operations, data, data references, membership abstractions, and metadata;
means for accepting a expression comprising at least a first data reference to a first derived data and an operation on the first derived data;
means for selecting a first derived membership abstraction associated with the first data reference;
means for decomposing the first derived membership abstraction into a decomposed derived membership abstraction, said decomposed derived membership abstraction comprising a set of source data references to source data, a set of operations on the source data, and a set of constraints;
means for forming a derived expression by modifying the expression according to and incorporating elements of the decomposed derived membership abstraction, and being logically equivalent to the expression;
and,
means for performing at least a first operation in the set of operations on the source data as specified by and according to the derived expression.

38. An apparatus comprising machine-readable program code recorded on recordable media, the program code comprising instructions for controlling the operation of at least a first data processing system on which it executes to perform the following steps:

accepting a expression comprising at least a first data reference to a first derived data and an operation on the first derived data;
selecting a first derived membership abstraction associated with the first data reference;
decomposing the first derived membership abstraction into a decomposed derived membership abstraction, said decomposed derived membership abstraction comprising a set of source data references to source data, a set of operations on the source data, and a set of constraints;
forming a derived expression by modifying the expression according to and incorporating elements of the decomposed derived membership abstraction, and being logically equivalent to the expression;
and,
performing at least a first operation in the set of operations on the source data as specified by and according to the derived expression.
Patent History
Publication number: 20100023551
Type: Application
Filed: Oct 3, 2009
Publication Date: Jan 28, 2010
Inventor: David O. McGoveran (Boulder Creek, CA)
Application Number: 12/587,209
Classifications
Current U.S. Class: 707/102; 707/200; In Structured Data Stores (epo) (707/E17.044); Accessing, Addressing Or Allocating Within Memory Systems Or Architectures (epo) (711/E12.001)
International Classification: G06F 7/00 (20060101); G06F 12/00 (20060101);