Patent Document ID: 9659051
Application ID: 14579436

Base Claim:
1. A method comprising: generating a first data definition language statement, based on a class defined in a referential integrity metadata framework, that creates a table in a relational database system to store an object data document, the table including: at least one column that corresponds to an identifying attribute in the object data document, at least one column that corresponds to a relationship attribute in the object data document, and a column that stores the object data document; generating a second data definition language statement, based on the referential integrity metadata framework, that creates a foreign key constraint on the at least one column that corresponds to the relationship attribute when the relationship is not polymorphic; and issuing the first data definition language statement and the second data definition language statement to generate relational database structures that persist object data documents and relationships between object in different object data documents.

---

Claim 7:
7. The method of claim 1 , wherein the class is a first class, the table is a first table, and the identifying attribute is a first identifying attribute, and the method further comprises: determining whether a relationship between the relationship attribute and a second identifying attribute for a second class is polymorphic; when the relationship is not polymorphic: generating the second data definition language statement and issuing the statement; and when the relationship is polymorphic, generating a database trigger invoked when a row is inserted into the first table, the row including a new object data document in its entirety and the trigger being configured to: extract a first value from the new object data document for the relationship attribute, determine a parent class for the relationship attribute from the object data document, determine a second table, using the referential integrity metadata framework, for the parent class, determine if the second table includes a row having a second value in a column corresponding to the second identifying attribute that matches the first value, and prevent the insertion of the row into the first table when the second table does not include the row having the second value.