Mapping architecture with incremental view maintenance

Information

  • Patent Application
  • 20070226196
  • Publication Number
    20070226196
  • Date Filed
    March 16, 2007
    17 years ago
  • Date Published
    September 27, 2007
    16 years ago
Abstract
A data access architecture is provided that includes a mapping architecture for mapping data as may be used by an application to data as persisted in a database. The mapping architecture makes use of two types of mapping views—a query view that helps in translating queries and an update view that helps in translating updates. Incremental view maintenance can be used to translate data between the application and database.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

The systems and methods for mapping architecture with incremental view maintenance in accordance with the present invention are further described with reference to the accompanying drawings in which:



FIG. 1 illustrates an architecture of an exemplary Entity Framework as contemplated herein.



FIG. 2 illustrates an exemplary relational schema.



FIG. 3 illustrates an exemplary Entity Data Model (EDM) schema.



FIG. 4 illustrates a mapping between and entity schema (left) and a database schema (right).



FIG. 5 illustrates a mapping represented in terms of queries on an entity schema and a relational schema.



FIG. 6 illustrates bidirectional views—the query and update views—generated by the mapping compiler for the mapping in FIG. 5.



FIG. 7 illustrates a process for leveraging materialized view maintenance algorithms to propagate updates through bidirectional views.



FIG. 8 illustrates a mapping designer user interface.



FIG. 9 illustrates compiling a mapping specified in a Mapping Specification Language (MSL) to generate Query and Update Views.



FIG. 10 illustrates update processing.



FIG. 11 illustrates exemplary logical parts of an Object Relational (OR) mapper



FIG. 12 illustrates generating a Query and Update View by the Entity Data Platform (EDP) when processing a mapping specified in a MSL specification.



FIG. 13 illustrates using a QMView in a query translation.



FIG. 14 illustrates using a UMView in a update translation.



FIG. 15 illustrates compile-time and runtime handling of the mapping views.



FIG. 16 illustrates interaction of various components in a view compilation process.



FIG. 17 illustrates an EDP Query Translator (EQT) architecture. The EQT utilizes mapping meta-data to translate queries from object/EDM space into database space.



FIG. 18 illustrates composing a variety of delta expressions to obtain a delta expression for tables in terms of delta expressions for objects.


Claims
  • 1. A method for providing data services to an application, comprising: generating a query view that expresses at least a portion of an application schema associated with said application in terms of a database schema associated with a database;generating an update view that expresses at least a portion of said database schema in terms of said application schema;utilizing said query view to query said database on behalf of said requesting application;utilizing said update view to update said database on behalf of said requesting application.
  • 2. The method of claim 1, further comprising receiving, from said requesting application, an object in a programming language, said object in a programming language comprising data for use in updating said database.
  • 3. The method of claim 1, further comprising receiving, from said requesting application, a create, insert, update, or delete instruction, said create, insert, update, or delete instruction comprising data for use in updating said database.
  • 4. The method of claim 1, further comprising receiving, from said requesting application, an expression in a Data Manipulation Language (DML), said expression comprising data for use in updating said database.
  • 5. The method of claim 1, wherein utilizing said update view to compute an update to said database comprises applying a view maintenance algorithm to said update view.
  • 6. The method of claim 3, wherein applying a view maintenance algorithm to said update view produces a delta expression for said update view, and further comprising using view unfolding to combine said delta expression with a query view.
  • 7. The method of claim 1, wherein utilizing said update view to compute an update to said database comprises applying a view maintenance algorithm to data received for use in updating said database.
  • 8. The method of claim 1, wherein said application schema supports classes, relationships, inheritance, aggregation, and complex types.
  • 9. The method of claim 1, wherein said update view is generated using mapping that correlates said application schema to said database schema.
  • 10. The method of claim 9, wherein said query view and said update view are generated using said mapping.
  • 11. A data access system for providing data services to an application, comprising: a component for generating a query view that expresses at least a portion of an application schema associated with said application in terms of a database schema associated with a database;a component for generating an update view that expresses at least a portion of said database schema in terms of said application schema;a component for utilizing said query view to query said database on behalf of said requesting application;a component for utilizing said update view to update said database on behalf of said requesting application.
  • 12. The data access architecture of claim 11, further comprising a component for receiving, from said requesting application, an object in a programming language, said object in a programming language comprising data for use in updating said database.
  • 13. The data access architecture of claim 11, further comprising a component for receiving, from said requesting application, a create, insert, update, or delete instruction, said create, insert, update, or delete instruction comprising data for use in updating said database.
  • 14. The data access architecture of claim 11, further comprising a component for receiving, from said requesting application, an expression in a Data Manipulation Language (DML), said expression comprising data for use in updating said database.
  • 15. The data access architecture of claim 11, wherein said component for utilizing said update view to compute an update to said database applies a view maintenance algorithm to said update view.
  • 16. The data access architecture of claim 15, wherein applying a view maintenance algorithm to said update view produces a delta expression for said update view, and further comprising a component for using view unfolding to combine said delta expression with a query view.
  • 17. The data access architecture of claim 11, wherein said component for utilizing update view to compute an update to said database applies a view maintenance algorithm to data received for use in updating said database.
  • 18. The data access architecture of claim 11, wherein said application schema supports classes, relationships, inheritance, aggregation, and complex types.
  • 19. The data access architecture of claim 11, further comprising a component for generating a mapping that correlates said application schema to said database schema.
  • 20. The data access architecture of claim 19, wherein said query view and said update view are generated using said mapping.
Provisional Applications (1)
Number Date Country
60785672 Mar 2006 US