|Publication number||US5797137 A|
|Application number||US 08/624,722|
|Publication date||Aug 18, 1998|
|Filing date||Mar 26, 1996|
|Priority date||Mar 26, 1996|
|Publication number||08624722, 624722, US 5797137 A, US 5797137A, US-A-5797137, US5797137 A, US5797137A|
|Inventors||Forouzan Golshani, Oris D. Friesen, Thomas H. Howell|
|Original Assignee||Golshani; Forouzan, Friesen; Oris D., Howell; Thomas H.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (7), Referenced by (64), Classifications (12), Legal Events (5) |
|External Links: USPTO, USPTO Assignment, Espacenet|
Method for converting a database schema in relational form to a schema in object-oriented form
US 5797137 A
A method executed by a computer system for converting a database schema in relational form to a schema in object-oriented (00) form. The input is the schema of a database in relational form including all relations of the schema and the primary keys, reference keys, and attributes of each relation. A special data structure (SDS) is created for each primary key based on the number of attributes of the key. Each SDS becomes the basis of an object of the 00 schema produced. Attribute functions and cross-reference functions are created based on the SDSs and reference keys. SQL commands to map the relational input schema to the 00 output schema are identified.
What is claimed is:
1. A method residing in a computer system for converting a database schema in relational form including at least one relation, with each relation having attributes, one or more of said attributes functioning as a primary key of a given relation, and other attributes of the relation functioning as reference keys as needed, to an equivalent object-oriented schema in functional data model form; comprising the steps of:
a) receiving as an input the database schema in relational form including a list of the relations of the data base schema, and the attributes of each relation including its primary key and reference keys if any of said input database schema;
b) determining the maximum number of attributes comprising the primary key of each relation of the input schema;
c) creating a special data structure (SDS) for each primary key of each relation of the input schema based on the number of attributes of the primary key of each relation of the input schema, each SDS constituting an object in the equivalent schema;
d) converting each SDS to a complex object of the equivalent object-oriented schema;
e) identifying data types of each complex object of the equivalent schema;
f) producing for each complex object a set of functions that represent attributes of the complex object;
g) producing cross reference functions based on the SDS's produced in step c) for each relation and the reference keys thereof;
h) selecting appropriate SQL commands to provide a mapping between the input database schema in relational form to an equivalent object-oriented schema in functional data model form; and
i) producing as an output the equivalent object-oriented schema in functional data model form including names of objects and functions, and SQL commands.
2. The method of claim 1 in which the input database schema is in the "Third Normal Form".
3. The method of claim 2 in which the data types of each complex object of the equivalent schema include a string of alphanumeric characters and numbers.
CROSS-REFERENCE TO RELATED APPLICATIONS
U.S. Patent Application of Forouzan Golshani, et al entitled Method of Integrating Schemas of Distributed Heterogeneous Databases filed concurrently herewith which application is assigned to the assignee of the present invention.
BACKGROUND OF THE INVENTION
(1) Field of the Invention
This invention relates to distributed database management systems and more particularly to a method of converting a schema of a database in relational form to an equivalent schema in object-oriented (00) form.
(2) Description of the Related Art
Many enterprises have accumulated throughout the years a number of database management systems (DBMS)s. These systems are generally heterogeneous in that they differ from one another in many respects including form, data model, language for implementation, languages for querying and updating, and data types, and thus the schemas for each are in different forms. With the trend toward interoperability in enterprises, it has become more and more necessary for the existing database management systems to cooperate and to exchange data. Without a software tool, or method, for schema integration, a user must either manually retrieve the local schemas of other database systems of interest or guess what may be available on other desired database systems which reside at a remote site. Without a global (integrated) schema, any query involving retrieval from more than one database system must be broken down manually, and partial answers received from the participating database systems must be merged by a set of commands issued by the user. For a description of a method for schema integration, reference is made to the above identified cross-referenced patent application which is incorporated herein by reference and made a part hereof.
Schema Integration is the integration of a plurality of existing schemas into a single logical schema. However, to do so it is necessary to convert the schemas of each database management system to be integrated into a form that facilitates such integration.
While a method of converting a schema of a data base in relational form to an object-oriented form is particularly useful in the process of integrating schemas of distributed heterogeneous databases, this method also has utility in database normalization wherein a schema is converted to an 00 form and then back to a relational form again; the resulting relational schema will be in "Third Normal Form", a form that has many desirable characteristics. Another application of this method is in database reorganization for the purpose of migration. The object-oriented form provides an intermediary form as a midway step in database migration. Another potential application of this method is in data mining, where hidden characteristics of data are discovered through a deductive process.
SUMMARY OF THE INVENTION
The present invention is a software tool, or method, by which a computer system converts a database schema in relational form to an equivalent database schema in object-oriented form.
BRIEF DESCRIPTION OF THE DRAWINGS
Other objects, features and advantages of the invention will be readily apparent from the following description of a preferred embodiment thereof although variations and modifications may be affected without departing from the spirit and scope of the novel concepts of the disclosure, and in which:
FIG. 1 is a data flow diagram of the components and software modules of the schema integration tool;
FIG. 2 is a flow chart of the steps of the process for converting a database schema in relational form to one in object-oriented form;
FIG. 3 is an example of a data structure;
FIG. 4 is an example of a partial schema of a database of a "University" in relational form;
FIG. 5 is an equivalent schema in object-oriented form; and
FIG. 6 is a textual representation of a schema.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIGS. 1a and 1b, illustrate the flow of information among the modules of the cross-referenced patent application for a method of integrating schemas. The function of software module M3 of the method illustrated in FIGS. 1a and 1b is to convert a database schema in relational form to a schema in object-oriented form, the subject matter of the present application.
In FIG. 2, the steps of the method, or algorithm, 10 are illustrated. The input, block 12 is a schema of a relational data base system, preferably in "Third Normal Form", including all relations, all attributes, primary keys, and references that are made by attributes of one relation to the keys of other relations. The first step of program 10, block 14, lists the primary keys of all of the relations of the schema and finds the maximum length of the primary keys; where the length of a primary key is determined by the number of attributes of that primary key. In step 2, block 16, a special data structure (SDS) is created for each primary key based on the number of attributes comprising the primary key, as illustrated in FIG. 3 Each SDS becomes a domain of a function in the object oriented (00) schema produced by method 10.
In the third step, block 18, the basic data types that correspond to each attribute, such as string, integer, etc. are defined. In the fourth step, block 20 an object in the 00 schema is created for each member of the SDS. In step 5, block 22, functions that represent attributes of objects, are created as follows:
if the primary key is not complex (i.e. has only one attribute), the function created will be a simple function and will have only one argument.
if the primary key is complex (i.e., has n attributes, or has a length of n), the function created will have n arguments.
In step 6, block 24, cross-reference functions are created based on the special data structure and reference keys.
Appropriate SQL commands are identified, block 26, to provide a mapping from the relational schema input, block 12, to the 00 schema output, block 28. The output 00 schema 28 includes the data structure that method 10 generates, and thus, a history of the evolution of the output schema. The output schema 28 has a textual form as is illustrated in FIG. 6.
The method, or algorithm, of this invention converts a database schema in relational form to an equivalent schema in an object-oriented form. The object-oriented form is based on the functional data model in which objects are presented as sets and the attributes of each object are presented as functions mapping these sets to each other. For example in FIG. 4, a simplified schema of a university is presented in relational form, where primary keys are identified by underlining. The equivalent schema for the above database in object-oriented form is presented in FIG. 5. The rectangles in this figure represent objects, namely, "STUDENT" 32, "COURSE" 34, "DEPARTMENT" 36, and "STRING" 42. The arrows represent the relationships between objects and the attributes of the objects. For example, the arrow 38 labeled "takes" represents which "STUDENT" has registered for what "COURSE". On the other hand, the arrow 40 labeled "name" represents the name of each "STUDENT". The object "STRING" 42 is a string of alphanumeric characters such as a student's name, the title of a course, etc.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5317742 *||Jun 21, 1991||May 31, 1994||Racal-Datacom, Inc.||Dynamic translation of network management primitives to queries to a database|
|US5481703 *||Sep 29, 1993||Jan 2, 1996||Kabushiki Kaisha Toshiba||Database restructuring system for detecting functionally dependent relations and converting them into third normal form|
|US5499371 *||Mar 22, 1995||Mar 12, 1996||Persistence Software, Inc.||Method and apparatus for automatic generation of object oriented code for mapping relational data to objects|
|US5504885 *||Jun 29, 1993||Apr 2, 1996||Texas Instruments Incorporated||O-R gateway: a system for connecting object-oriented application programs and relational databases|
|US5548749 *||Oct 29, 1993||Aug 20, 1996||Wall Data Incorporated||Semantic orbject modeling system for creating relational database schemas|
|US5596746 *||Oct 26, 1994||Jan 21, 1997||General Electric Company||Method for transforming relational data base schemas into object models using ideal table meta models|
|US5659723 *||Dec 20, 1991||Aug 19, 1997||International Business Machines Corporation||Entity/relationship to object oriented logical model conversion method|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US5878411 *||Jun 27, 1997||Mar 2, 1999||International Business Machines Corporation||Dependent object class and subclass mapping to relational data store|
|US6047284 *||May 14, 1997||Apr 4, 2000||Portal Software, Inc.||Method and apparatus for object oriented storage and retrieval of data from a relational database|
|US6317748 *||May 8, 1998||Nov 13, 2001||Microsoft Corporation||Management information to object mapping and correlator|
|US6341289 *||May 6, 1999||Jan 22, 2002||International Business Machines Corporation||Object identity and partitioning for user defined extents|
|US6374256 *||Jun 29, 1998||Apr 16, 2002||Sun Microsystems, Inc.||Method and apparatus for creating indexes in a relational database corresponding to classes in an object-oriented application|
|US6529915 *||Dec 6, 1999||Mar 4, 2003||Portal Software, Inc.||Computer-implemented program product and method of deferring allocation of storage for array elements of objects|
|US6553380 *||Dec 15, 2000||Apr 22, 2003||International Business Machines Corporation||Encapsulating form and function in user data in a relational database in order to eliminate database schema changes|
|US6598052 *||Feb 19, 1999||Jul 22, 2003||Sun Microsystems, Inc.||Method and system for transforming a textual form of object-oriented database entries into an intermediate form configurable to populate an object-oriented database for sending to java program|
|US6611844 *||Feb 19, 1999||Aug 26, 2003||Sun Microsystems, Inc.||Method and system for java program storing database object entries in an intermediate form between textual form and an object-oriented form|
|US6799182 *||Nov 13, 2001||Sep 28, 2004||Quovadx, Inc.||System and method for data source flattening|
|US6901403||Sep 14, 2001||May 31, 2005||Quovadx, Inc.||XML presentation of general-purpose data sources|
|US7143156||Oct 9, 2001||Nov 28, 2006||Microsoft Corporation||Management information to object mapping|
|US7290049||Aug 31, 2004||Oct 30, 2007||Microsoft Corporation||Management information to object mapping and correlator|
|US7426516 *||Nov 24, 2003||Sep 16, 2008||Novell, Inc.||Mechanism for supporting indexed tagged content in a general purpose data store|
|US7526794||Sep 30, 2005||Apr 28, 2009||Rockwell Automation Technologies, Inc.||Data perspectives in controller system and production management systems|
|US7548789||Sep 29, 2005||Jun 16, 2009||Rockwell Automation Technologies, Inc.||Editing lifecycle and deployment of objects in an industrial automation environment|
|US7650405||Sep 29, 2005||Jan 19, 2010||Rockwell Automation Technologies, Inc.||Tracking and tracing across process boundaries in an industrial automation environment|
|US7660638||Sep 30, 2005||Feb 9, 2010||Rockwell Automation Technologies, Inc.||Business process execution engine|
|US7672737||Sep 30, 2005||Mar 2, 2010||Rockwell Automation Technologies, Inc.||Hierarchically structured data model for utilization in industrial automation environments|
|US7676281||Sep 29, 2005||Mar 9, 2010||Rockwell Automation Technologies, Inc.||Distributed database in an industrial automation environment|
|US7711675 *||Jul 22, 2002||May 4, 2010||Microsoft Corporation||Database simulation of data types|
|US7711676||Nov 12, 2004||May 4, 2010||Sap Aktiengesellschaft||Tracking usage of data elements in electronic business communications|
|US7734590||Sep 30, 2005||Jun 8, 2010||Rockwell Automation Technologies, Inc.||Incremental association of metadata to production data|
|US7801628||Sep 30, 2005||Sep 21, 2010||Rockwell Automation Technologies, Inc.||Industrial operator interfaces interacting with higher-level business workflow|
|US7809683||Sep 29, 2005||Oct 5, 2010||Rockwell Automation Technologies, Inc.||Library that includes modifiable industrial automation objects|
|US7809768||Apr 27, 2006||Oct 5, 2010||Oracle International Corporation||Method and apparatus for object oriented storage and retrieval of data from a relational database|
|US7818342||Nov 21, 2005||Oct 19, 2010||Sap Ag||Tracking usage of data elements in electronic business communications|
|US7865519||Nov 17, 2004||Jan 4, 2011||Sap Aktiengesellschaft||Using a controlled vocabulary library to generate business data component names|
|US7870146||Jan 8, 2002||Jan 11, 2011||International Business Machines Corporation||Data mapping between API and persistent multidimensional object|
|US7881812||Sep 29, 2005||Feb 1, 2011||Rockwell Automation Technologies, Inc.||Editing and configuring device|
|US7904488||Jul 21, 2004||Mar 8, 2011||Rockwell Automation Technologies, Inc.||Time stamp methods for unified plant model|
|US7921141||Jul 31, 2008||Apr 5, 2011||Novell, Inc.||Mechanism for supporting indexed tagged content in a general purpose data store|
|US8019796||Jun 7, 2010||Sep 13, 2011||Rockwell Automation Technologies, Inc.||Incremental association of metadata to production data|
|US8024701||Mar 27, 2007||Sep 20, 2011||Microsoft Corporation||Visual creation of object/relational constructs|
|US8060223||Jun 5, 2009||Nov 15, 2011||Rockwell Automation Technologies, Inc.||Editing lifecycle and deployment of objects in an industrial automation environment|
|US8086649||Jun 7, 2010||Dec 27, 2011||Rockwell Automation Technologies, Inc.||Incremental association of metadata to production data|
|US8102980||Jun 8, 2007||Jan 24, 2012||Oracle International Corporation||Revenue management systems and methods with bill and account suppression|
|US8116326||Jun 28, 2006||Feb 14, 2012||Oracle International Corporation||Revenue management system and method|
|US8117358||Jul 28, 2006||Feb 14, 2012||Oracle International Corporation||Revenue management system and method utilizing database backup|
|US8180806||Oct 31, 2007||May 15, 2012||Oracle International Corporation||Mechanism for supporting indexed tagged content in a general purpose data store|
|US8204609||Jun 27, 2008||Jun 19, 2012||Rockwell Automation Technologies, Inc.||Industrial operator interfaces interacting with higher-level business workflow|
|US8214797||Feb 1, 2007||Jul 3, 2012||Microsoft Corporation||Visual association creation for object relational class development|
|US8223777||Nov 15, 2006||Jul 17, 2012||Oracle International Corporation||Gateway for achieving low latency and high availability in a real time event processing system|
|US8223935||May 1, 2006||Jul 17, 2012||Oracle International Corporation||Revenue management systems and methods|
|US8255432||Oct 31, 2007||Aug 28, 2012||Oracle International Corporation||Mechanism for supporting indexed tagged content in a general purpose data store|
|US8275680||Sep 30, 2005||Sep 25, 2012||Rockwell Automation Technologies, Inc.||Enabling transactional mechanisms in an automated controller system|
|US8280537||Oct 7, 2011||Oct 2, 2012||Rockwell Automation Technologies, Inc.||Editing lifecycle and deployment of objects in an industrial automation environment|
|US8321478 *||Sep 2, 2008||Nov 27, 2012||Fong Joseph S P||System and method of translating a relational database into an XML document and vice versa|
|US8369500||Jun 8, 2007||Feb 5, 2013||Oracle International Corporation||Revenue management systems and methods with sponsored top-up options|
|US8422651||Jun 8, 2007||Apr 16, 2013||Oracle International Corporation||Revenue management systems and methods with re-rating and rebilling|
|US8438191||Aug 19, 2011||May 7, 2013||Rockwell Automation Technologies, Inc.||Incremental association of metadata to production data|
|US8462923||Jun 8, 2007||Jun 11, 2013||Oracle International Corporation||Revenue management systems and methods with payment suspense management|
|US8484250||Sep 30, 2005||Jul 9, 2013||Rockwell Automation Technologies, Inc.||Data federation with industrial control systems|
|US8484401||Apr 15, 2010||Jul 9, 2013||Rockwell Automation Technologies, Inc.||Systems and methods for conducting communications among components of multidomain industrial automation system|
|US8645434||Mar 18, 2008||Feb 4, 2014||Apple Inc.||Techniques for schema production and transformation|
|US8738591||Nov 23, 2011||May 27, 2014||Oracle International Corporation||Sorting transactions in a memory object store|
|US8798576||Jun 8, 2007||Aug 5, 2014||Oracle International Corporation||Revenue management systems and methods with enhanced rollover|
|US8799800||Sep 29, 2005||Aug 5, 2014||Rockwell Automation Technologies, Inc.||Automatic user interface generation|
|US8855791||Jun 1, 2012||Oct 7, 2014||Rockwell Automation Technologies, Inc.||Industrial operator interfaces interacting with higher-level business workflow|
|US8856178||Nov 23, 2011||Oct 7, 2014||Oracle International Corporation||Committing events where transaction threads have read-only access to shared memory|
|US8984533||Apr 15, 2010||Mar 17, 2015||Rockwell Automation Technologies, Inc.||Systems and methods for conducting communications among components of multidomain industrial automation system|
|US20080320023 *||Sep 2, 2008||Dec 25, 2008||Fong Joseph S P||System and method of translating a relational database into an xml document and vice versa|
|CN100535894C||Jun 4, 2004||Sep 2, 2009||微软公司||Database object script generation method and system|
|EP1247165A1 *||Oct 2, 2000||Oct 9, 2002||Infoglide Corporation||System and method for transforming a relational database to a hierarchical database|
|Feb 5, 2010||FPAY||Fee payment|
Year of fee payment: 12
|Jan 27, 2006||FPAY||Fee payment|
Year of fee payment: 8
|Mar 5, 2002||REMI||Maintenance fee reminder mailed|
|Feb 15, 2002||FPAY||Fee payment|
Year of fee payment: 4
|Mar 26, 1996||AS||Assignment|
Owner name: BULL HN INFORMATIONS SYSTEMS INC., MASSACHUSETTS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GOLSHANI, FOROUZAN;FRIESEN, ORIS D.;HOWELL, THOMAS H.;REEL/FRAME:008300/0471
Effective date: 19960326