IP Library › Granted Patent US 8,458,226
Granted Patent B2
US 8,458,226 · App. 12/815,417 · Granted Jun 4, 2013

Automating evolution of schemas and mappings

Inventors: James F. Terwilliger (Redmond, WA); Philip A. Bernstein (Bellevue, WA); Aditya Unnithan (Seattle, WA)
Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,458,226
App. No.
12/815,417
Granted
Jun 4, 2013
Kind
B2
Abstract

Aspects of the subject matter described herein relate to automating evolution of schemas and mappings. In aspects, mappings between a conceptual model and a store model are updated automatically in response to a change that occurs to the conceptual model. For example, when a change occurs to the conceptual model, a local scope of the change is determined. The local scope indicates mappings that are most similar to the type(s) affected by the change. Based on the local scope, a pattern of mappings between the conceptual model and the store model is determined. Using this pattern and the nature of the change, the mappings are updated according to the pattern. In addition, the store model and data thereon may be updated in a manner to preserve existing data that is not to be deleted in response to the change.

Claims (26)

1. A computer storage medium having computer-executable instructions, which when executed perform actions, comprising:

obtaining a change to a first schema, the first schema being mapped to a second schema via a set of mappings, the first schema having a plurality of types arranged in a hierarchy, the change involving at least one affected type of the types;

analyzing the hierarchy to determine a mapping pattern by:

determining two or more of the types that are more similar to the at least one affected type than any other of the types, similarity being determined according to the following rules:

a type is most similar to its siblings,

a first type and a second type, neither a descendant of the other, are more similar to each other than to a least common ancestor of the first and second types, and

if a first type is a descendant of a second type, then the first type is more similar to any descendants of the second type than to the second type, but more similar to the second type than to any ancestors, siblings or descendents of siblings of the second type; and

determining a mapping pattern between the two or more types and elements in the second schema; and

based on the mapping pattern and the change, updating the set of mappings and the second schema.

2. The computer storage medium of claim 1 , wherein obtaining a change to the first schema comprises obtaining an indication that a new type was added to the first schema and, wherein determining a mapping pattern between the two or more types and elements in the second schema comprises determining whether the mapping pattern is table-per-type, table-per-concrete class, or table-per-hierarchy, and wherein updating the set of mappings comprises creating a new mapping for the new type, the new mapping following the mapping pattern.

3. The computer storage medium of claim 1 , further comprising determining how many new tables need to be created, what existing tables are to be re-used, and what derived properties need to be remapped based on the mapping pattern and the change.

4. The computer storage medium of claim 1 , further comprising updating one or more databases that conform to the second schema in a manner to preserve existing data that is not to be deleted in response to the change.

5. The computer storage medium of claim 4 , wherein updating the one or more databases that conform to the second schema comprises renaming an element in the one or more databases instead of dropping a first element and adding a second element in the one or more databases.

6. The computer storage medium of claim 1 , wherein determining two or more types that are more similar to the at least one affected type than any other of the types comprises creating a table that represents the mappings in a pivoted form wherein each row of the table represents a property-to-property mapping for a given set of conditions.

7. The computer storage medium of claim 1 , wherein determining two or more of the types that are more similar to the at least one affected type than any other of the types comprises performing a query on the mappings.

8. In a computing environment, a system, comprising:

at least one processor;

a change manager operable to indicate a change to a first schema, the first schema being mapped to a second schema via a set of mappings, the first schema having a plurality of types arranged in a hierarchy, the change involving an affected type of the types;

a similarity detector operable to determine two or more of the types that are more similar to the affected type than any other of the types, the similarity detector operable to follow the following rules in determining similarity:

a type is most similar to its siblings,

a first type and a second type, neither a descendant of the other, are more similar to each other than to a least common ancestor of the first and second types, and

if a first type is a descendant of a second type, then the first type is more similar to any descendants of the second type than to the second type, but more similar to the second type than to any ancestors, siblings or descendents of siblings of the second type; and

a pattern recognizer operable to determine a mapping pattern between the two or more types and elements in the second schema.

9. The system of claim 8 , further comprising a user interface operable to receive indications of changes to the first schema via user input hardware and a log manager operable to store information regarding changes to a log.

10. The system of claim 8 , wherein the pattern recognizer being operable to determine a mapping pattern between the two or more types and elements in the second schema comprises the pattern recognizer being operable to detect whether the two or more types are mapped to the elements via table-per-type, table-per-concrete class, or table-per-hierarchy.

11. The system of claim 10 , further comprising a mappings manager operable to update the mappings for a new type in accordance with the mapping pattern detected for the two or more types.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2010
From: TERWILLIGER, JAMES F.; BERNSTEIN, PHILIP A.; UNNITHAN, ADITYA
To: MICROSOFT CORPORATION
Reel/Frame 024533/0845 →
Continuity (1)
Related Publication 20110307501A1 · Dec 15, 2011