Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
First Claim
1. A system, comprisingmeans for receiving a description of a user'"'"'s object database, said user'"'"'s object database having a set of classes and a set of relationships between pairs of said classes;
- means for creating a model of said user'"'"'s object database in response to said description, said model persisting after creation of a relational database and including a correspondence between said user'"'"'s object database and said relational database;
memory having space for storing said model;
means for creating said relational database in response to said model, said relational database having a set of tables, keys for said tables, and relationships between pairs of said tables implementing said classes, objects and relationships of said user'"'"'s object database;
means for receiving a set of data objects for said user'"'"'s object database after creation of said relational database;
means for translating said set of data objects for said user'"'"'s object database into a set of records for said relational database in response to said model, and for inserting said set of records into said relational database;
means for receiving updates to said description of a user'"'"'s object database after creation of said relational database;
means for updating said model in response to said updates to provide an updated model;
means for updating said relational database in response to said updated model; and
means for updating said set of records for said relational database in response to said means for updating said relational database.
15 Assignments
0 Petitions
Accused Products
Abstract
A method and system for modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon. The user may create, edit and manipulate a user'"'"'s object database (dynamically translated into a set of relational database structures), to create, edit and manipulate objects for that object database (dynamically translated into data for those relational database structures), and to create, edit and manipulate queries to be applied to that object database (dynamically translated into queries to be applied to those relational database structures). A meta-model of the user'"'"'s object database, which is itself an object database, and which has itself been translated into a set of relational database structures for manipulation by a relational database engine. The meta-model comprises a set of classes, objects, and relationships between classes which model the classes and relationships between classes of the system. Each of these classes may comprise a set of searchable properties, and each of these relationships may comprise an inheritance relationship (between a base class and a derived class) or a data-model relationship (such as a one-to-one, one-to-many, or many-to-many relationship). The data model of the user'"'"'s object database is modeled by actual objects in the meta-model, and editing or manipulating the user'"'"'s object database is modeled by creating, modifying, or deleting objects in the meta-model. The meta-model also models itself, in the same manner as it models the user'"'"'s object database, and may be manipulated in the same manner as the user'"'"'s object database.
697 Citations
36 Claims
-
1. A system, comprising
means for receiving a description of a user'"'"'s object database, said user'"'"'s object database having a set of classes and a set of relationships between pairs of said classes; -
means for creating a model of said user'"'"'s object database in response to said description, said model persisting after creation of a relational database and including a correspondence between said user'"'"'s object database and said relational database;
memory having space for storing said model;
means for creating said relational database in response to said model, said relational database having a set of tables, keys for said tables, and relationships between pairs of said tables implementing said classes, objects and relationships of said user'"'"'s object database;
means for receiving a set of data objects for said user'"'"'s object database after creation of said relational database;
means for translating said set of data objects for said user'"'"'s object database into a set of records for said relational database in response to said model, and for inserting said set of records into said relational database;
means for receiving updates to said description of a user'"'"'s object database after creation of said relational database;
means for updating said model in response to said updates to provide an updated model;
means for updating said relational database in response to said updated model; and
means for updating said set of records for said relational database in response to said means for updating said relational database. - View Dependent Claims (2, 3, 4, 5, 6)
a relational database server, said server comprising means for accepting a set of relational database commands; wherein said means for translating and for inserting comprises means for generating a set of relational database commands.
-
-
3. A system as in claim 1, wherein said means for inserting comprises
means for generating records for said tables; -
means for generating values for said keys for said records; and
means for causing said values for said keys for said records to correspond to said relationships between pairs of tables.
-
-
4. A system as in claim 1, wherein said means for inserting comprises means for maintaining said tables, keys for said tables, and said relationships between pairs of tables while inserting said set of records into said relational database.
-
5. A system as in claim 1, wherein said means for updating said model is operative to update said model after said relational database includes records corresponding to said data objects.
-
6. A system as in claim 1, wherein
said set of classes includes at least a first class and a second class, said second class being a subclass of said first class; -
said set of data objects including a data object in said second class;
said set of tables including a first table corresponding to said first class and a second table corresponding to said second class;
wherein said data object in said second class corresponds to a composite of a first record in said first table and to a second record in said second table.
-
-
7. A system, comprising
means for receiving a description of a user'"'"'s object database, said user'"'"'s object database having a set of classes and a set of relationships between pairs of said classes; -
means for creating a model of said user'"'"'s object database in response to said description, said model comprising an object database and a correspondence with a corresponding set of relational tables, said relational tables having a first class of objects corresponding to a first relational table for which each row represents a class in the user'"'"'s object database, an object of said first class corresponding to each said one class in said user'"'"'s object database and being represented by a row in said first relational table, a second class of objects corresponding to a second relational table for which each row represents a relationship in the user'"'"'s object database, and an object of said second class corresponding to each said one relationship in said user'"'"'s object database and being represented by a row in said second relational table; and
means for creating a relational database in response to said model, said relational database having a set of tables each one of which corresponds to one said class in said user'"'"'s object database, keys for said tables including a key for each said table representing a unique object identifier, and relationships between pairs of said tables implementing said classes, objects and relationships of said user'"'"'s object database. - View Dependent Claims (8, 9)
a relational database server, said server comprising means for accepting a set of relational database commands; wherein said means for creating a relational database comprises means for generating a set of relational database commands.
-
-
9. A system as in claim 7, wherein said server comprises means for accepting a set of relational database commands from a second source of said commands.
-
10. A system, comprising
means for receiving a description of a user'"'"'s object database, said user'"'"'s object database having a set of classes and a set of relationships between pairs of said classes; -
means for creating a model of said user'"'"'s object database in response to said description, said model persisting after creation of a relational database and including a correspondence between said user'"'"'s object database and said relational database;
means for creating said relational database in response to said model, said relational database having a set of tables, keys for said tables, and relationships between pairs of said tables implementing said classes, objects and relationships of said user'"'"'s object database; and
means for receiving updates to said description after creating said relational database, for updating said model in response to said updates to generate an updated model, and for updating said relational database in response to said updated model. - View Dependent Claims (11, 12, 13)
-
-
14. A system, comprising
means for receiving a description of a user'"'"'s object database, said user'"'"'s object database having a set of classes and a set of relationships between pairs of said classes; -
means for creating and storing a model of said user'"'"'s object database in response to said description, said model persisting after creation of a relational database and including a correspondence between said user'"'"'s object database and said relational database;
means for creating a relational database in response to said model, said relational database having a set of tables, keys for said tables, and relationships between pairs of said tables implementing said classes, objects and relationships of said user'"'"'s object database;
means for receiving a description of a query against said user'"'"'s object database after creation of said relational database; and
means for translating said query, responsive to said stored model, into a relational database query suitable for application to said relational database. - View Dependent Claims (15)
means for applying said relational database query to said relational database; - and
means for presenting an output of said means for applying.
-
-
16. A method for searching a database, said database having a plurality of classes, at least one searchable property associated with one of said classes, and at least one data-model relationship between a pair of said classes, said method, comprising the steps of
creating a meta-model of said database, said meta-model persisting after creation of a relational database, and relating at least one of said plurality of classes with a corresponding relational table of said relational database in a dynamic correspondence; -
specifying a query model in response to said meta-model, said query model comprising a first class and at least one searchable property associated with said first class, a second class related to said first class by a first said data-model relationship, and at least one searchable property for said second class;
translating said query model into a set of relational database commands in response to said meta-model;
applying said relational database commands to a relational database and retrieving a query result in response thereto; and
displaying said query result. - View Dependent Claims (17, 18, 19)
wherein said relational database comprises a set of relational tables; - and
wherein said step of translating comprises the steps of identifying a first relational table associated with said first class and a second relational table associated with said second class;
first generating at least one database command to join said first relational table and said second relational table to produce a relational join, responsive to a data-model relationship between said first class and said second class;
identifying a first column associated with said first searchable property; and
second generating at least one database command to test records of said relational join in said column, responsive to a test for said searchable property.
-
-
18. A method as in claim 16,
wherein said relational database comprises a set of relational tables; - and
wherein said step of translating comprises the steps of identifying a first relational table associated with said first class and a second relational table associated with a base class of said first class;
first generating at least one database command to join said first relational table and said second relational table to produce a relational join, responsive to an inheritance relationship between said first class and said base class of said first class;
identifying a first column associated with said first searchable property; and
second generating at least one database command to test records of said relational join in said column, responsive to a test for said searchable property.
- and
-
19. A method as in claim 16, wherein said step of translating comprises
generating a set of database commands to perform a query represented by said query model; - and
optimizing said set of database commands to perform a faster query of said relational database.
- and
-
20. A method for searching an object-oriented database, said database having a plurality of classes, at least one searchable property associated with one of said classes, and at least one data-model relationship between a pair of said classes, said classes searchable property, and data-model relationship being described in a meta-model of said object-oriented database, said meta-model persisting after creation of a corresponding relational database, said method, comprising the steps of
presenting a first list of said classes; -
receiving a selection of a first class from said first list;
receiving a selection of a searchable property associated with said first class;
presenting a second list of said classes, said second list comprising classes having a base class related to said first class by a said data-model relationship;
receiving a selection of a second class from said second list;
receiving a selection of a searchable property associated with said second class;
generating a set of relational database commands, said set of relational database commands being effective to present a query to said relational database corresponding to said object-oriented database, said query having the semantic effect of said selections of said first class, said first searchable property, said second class, and said second searchable property for both said object-oriented database and for said relational database;
applying said set of relational database commands to said relational database and retrieving a query result in response thereto; and
displaying said query result. - View Dependent Claims (21, 22, 23, 24)
said database comprises at least one searchable property associated with a first unit of measurement; - and
said set of relational database commands comprise at least one comparison responsive to a conversion of said first unit of measurement to a second unit of measurement.
-
-
24. A method as in claim 20, wherein said step of generating is responsive to a meta-model of said database, said meta-model comprising a first class of objects representative of classes of said database and a second class of objects representative of searchable properties of said database.
-
25. A system, including
a user interface disposed to receive information descriptive of an object-oriented database; -
a meta-model representative of a correspondence between said object-oriented database and a relational database, and persisting after creation of said relational database;
a translator, responsive to said meta-model, from said object-oriented database to said relational database;
wherein said user interface is capable of receiving searchable information for entry into said object-oriented database, and said translator is capable of translating, responsive to said meta-model, said searchable information into rows in said relational database;
wherein said user interface is capable of receiving information descriptive of changes to said object-oriented database after said rows have been included in said relational database; and
said translator is capable of translating, responsive to said meta-model, said changes into changes in said relational database; and
wherein said user interface is capable of receiving information descriptive of searches on said searchable information in said object-oriented database, and said translator is capable of translating, responsive to said meta-model, said searches into queries for application to said relational database. - View Dependent Claims (26, 27)
-
-
28. A system, including
a user interface disposed to interactively receive information descriptive of an object-oriented database; -
a meta-model representative of a correspondence between said object-oriented database and a relational database, and persisting after creation of said relational database;
a translator, responsive to said meta-model, from said object-oriented database to said relational database;
wherein said user interface is capable of interactively receiving searchable information for entry into said object-oriented database, and said translator is capable of dynamically translating, responsive to said meta-model, said searchable information into rows in said relational database. - View Dependent Claims (29, 30, 31, 32, 33, 34, 35)
a meta-model object database having a first class representative of classes in said object-oriented database, and a second class representative of relationships in said object-oriented database; a meta-model relational database corresponding to said meta-model object database, having a first table corresponding to said first class and having a row in said first table for each class in said object-oriented database, and having a second table corresponding to said second class and having a row in said second table for each relationship in said object-oriented database.
-
-
34. A system as in claim 33, wherein
said meta-model object database includes a third class representative of searchable properties in said object-oriented database; - and
said meta-model relational database includes a third table corresponding to said third class and having a row in said third table for each searchable property in said object-oriented database.
- and
-
35. A system as in claim 28, wherein
said relational database includes one table for each class in said object-oriented database; -
each said table includes an identifier column for a unique object identifier for each object in said table;
each inheritance relationship in said object-oriented database is represented by said unique object identifier appearing in said identifier column for a parent table and for a child table; and
each data-model relationship in said object-oriented database is represented by said unique object identifier appearing in said identifier column for a first table and in a column other than said identifier column for a second table.
-
-
36. A system as in claim 37, wherein
each searchable property of a class in said object-oriented database is represented by a column in said table for said class; - and
each object in a class in said object-oriented database is represented by a row in said table for said class.
- and
Specification