IP Library Granted Patent US 7,617,223
Granted Patent B1
US 7,617,223 · App. 10/716,287 · Granted Nov 10, 2009

Converting physical aspects of common warehouse model to elements of relational database

Assignee: Unisys 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 7,617,223
App. No.
10/716,287
Granted
Nov 10, 2009
Kind
B1
Abstract

A method and a system for converting physical aspects of a common warehouse model (CWM) to corresponding database management system (DBMS) items in a relational database by processing in a hierarchical manner the physical aspects and creating the corresponding DBMS items. The physical aspects comprise relational catalogs. The relational catalogs comprise relational schemas. The corresponding DBMS items comprise DBMS catalogs. The DBMS catalogs comprise DBMS schemas.

Claims (182)

1. A method comprising:

converting physical aspects of a common warehouse model (CWM) to corresponding database management system (DBMS) items in a relational database by processing in a hierarchical manner the physical aspects and creating the corresponding DBMS items, the physical aspects comprising relational catalogs, the relational catalogs comprising relational schemas, the corresponding DBMS items comprising DBMS catalogs, the DBMS catalogs comprising DBMS schemas, wherein converting comprises the operations of:

(a) scanning through the relational catalogs;

(b) for a first of the relational catalogs, creating a corresponding first DBMS catalog in the relational database;

(c) for each of the relational schemas in the first relational catalog, creating a corresponding DBMS schema in the corresponding DBMS catalog to hold corresponding information; and

(d) processing each of the relational schemas to produce corresponding information for the corresponding DBMS schema.

2. The method of claim 1 wherein, in operation (d), each of the relational schemas is processed independently.

3. The method of claim 1 wherein operation (d) comprises:

(1) processing CWM data types included in a first of the relational schemas;

(2) creating DBMS data types corresponding to the CWM data types;

(3) processing relational tables included in the first relational schema;

(4) processing relational foreign key relationships for each of the relational tables;

(5) processing relational checkconstraints for the first relational schema;

(6) creating DBMS tables corresponding to the relational tables;

(7) processing relational views for the first relational schema;

(8) processing relational indices for the first relational schema;

(9) processing relational triggers for the first relational schema; and

(10) processing relational procedures for the first relational schema.

4. The method of claim 3 wherein (1) processing CWM data types included in a first of the relational schemas comprises:

for one of the CWM data types, determining whether the CWM data type is user-defined;

if the CWM data type is user-defined, obtaining base type and constraint of the CWM data type; and

if the CWM data type is text, obtaining a character set, name of language and collation sets associated with the CWM data type.

5. The method of claim 4 wherein (2) creating DBMS data types corresponding to the CWM data types comprises:

for a first of the CWM data types that is user-defined,

creating a corresponding DBMS data type in the corresponding DBMS schema;

setting physical type for the DBMS data type, based on the obtained base type of the first CWM data type; and

binding a constraint to the DBMS data type, based on the obtained constraint of the first CWM data type.

6. The method of claim 5 wherein (3) processing relational tables included in the first relational schema comprises:

determining whether there is a first relational table in the first relational schema;

if there is a first relational table in the first relational schema, then:

determining relational columns in the first relational table, the first relational table having a relational primary key; and, for each of the relational columns:

obtaining column properties including type, precision, scale, length, IsNullable, CollationName, and CharacterisetName;

verifying that the obtained type matches one of the DBMS data types;

determining whether the relational column is part of the relational primary key; and

flagging the relational column if the relational column is part of the relational primary key.

7. The method of claim 3 wherein (4) processing relational foreign key relationships for each of the relational tables comprises:

for a first of the relational tables, enumerating child relational tables having foreign key relationships with the first relational table;

for each of the foreign key relationships,

determining relational columns imported from the respective child relational table to the first relational table; and

obtaining properties of each of the imported relational columns, including “update” and “delete” referential integrity rules and deferability type.

8. The method of claim 3 wherein (5) processing relational checkconstraints for the first relational schema comprises:

determining relational checkconstraints associated with the first relational schema;

obtaining parameters associated with a first of the relational checkconstraints; and

enumerating relational columns having references to the first relational checkconstraint.

9. The method of claim 3 wherein (6) creating DBMS tables corresponding to the relational tables comprises:

selecting from the relational tables included in the first relational schema first tables having no dependencies on any other of the relational tables; and

creating a corresponding DBMS table for each of the first selected tables.

10. The method of claim 9 further comprising:

selecting from the relational tables included in the first relational schema a second table having dependency on at least one of the first selected tables; and

creating a corresponding DBMS table for the second selected table.

11. The method of claim 10 further comprising:

selecting from the relational tables included in the first relational schema a third table having dependency on at least one of the second and the first selected tables; and

creating a corresponding DBMS table for the third selected table.

12. The method of claim 9 further comprising:

creating a corresponding DBMS table for each of mutually dependent tables from the relational tables using forward references or ALTER TABLE commands.

13. The method of claim 9 wherein creating a corresponding DBMS table comprises:

creating DBMS columns corresponding to columns of the corresponding relational table;

setting properties including precision, scale, length, data type, IsNullable, CollationName, and CharacterisetName for each of the DBMS columns based on respective properties of the corresponding relational column;

if one of the DBMS columns is the only one of the DBMS columns that represents a primary key or a foreign key, adding property of primary key or foreign key to the one DBMS column; and

if there is a checkconstraint associated with one of the DBMS columns and not involving any of the remaining DBMS columns, specifying the checkconstraint as column-level constraint.

14. The method of claim 13 further comprising:

if there is a multi-column primary key or a multi-column foreign key in the relational table, specifying the multi-column primary key or a multi-column foreign key in the DBMS table at table-level and identifying the DBMS columns that represent the multi-column primary key or a multi-column foreign key; and

if there is a checkconstraint involving multiple DBMS columns, specifying the constraint in the DBMS table at table-level and identifying the involved DBMS columns.

15. The method of claim 13 further comprising:

specifying a foreign key in the DBMS table, including:

identifying a child DBMS table and DBMS columns being imported from the child DBMS table; and

specifying properties of the foreign key, the properties including “update” and “delete” referential integrity rules and deferability type.

16. The method of claim 3 wherein (7) processing relational views for the first relational schema comprises:

determining relational views associated with the first relational schema;

for each of the relational views:

creating a corresponding DBMS view;

specifying updatability of the corresponding DBMS view; and

specifying query expression defining the corresponding DBMS view.

17. The method of claim 3 wherein (8) processing relational indices for the first relational schema comprises:

determining relational indices associated with a first of the relational schemas;

for each of the relational indices:

creating a corresponding DBMS index to represent the relational index;

specifying DBMS columns used by the corresponding DBMS index; and

setting properties of the specified DBMS columns including IsNullable, FilterCondition, and AutoUpdate.

18. The method of claim 3 wherein (9) processing relational triggers for the first relational schema comprises:

determining relational triggers associated with the first relational schema;

for each of the relational triggers:

creating a corresponding DBMS trigger;

setting properties of the corresponding DBMS trigger based on properties of the relational trigger, the relational trigger monitoring a relational table; and

setting a monitored DBMS table corresponding to the monitored relational table.

19. The method of claim 3 wherein (10) processing relational procedures for the first relational schema comprises:

determining relational procedures associated with the first relational schema;

for each of the relational procedures:

creating a corresponding DBMS procedure; and

setting arguments for the corresponding DBMS procedure based on arguments of the relational procedure.

20. A system comprising:

a processor; and

a memory coupled to the processor, the memory containing program code that, when executed by the processor, causes the processor to perform the operation of:

converting physical aspects of a common warehouse model (CWM) to corresponding database management system (DBMS) items in a relational database by processing in a hierarchical manner the physical aspects and creating the corresponding DBMS items, the physical aspects comprising relational catalogs, the relational catalogs comprising relational schemas, the corresponding DBMS items comprising DBMS catalogs, the DBMS catalogs comprising DBMS schemas, wherein the operation of converting comprises the operations of:

(a) scanning through the relational catalogs;

(b) for a first of the relational catalogs creating a corresponding first DBMS catalog in the relational database;

(c) for each of the relational schemas in the first relational catalog, creating a corresponding DBMS schema in the corresponding DBMS catalog to hold corresponding information; and

(d) processing each of the relational schemas to produce corresponding information for the corresponding DBMS schema.

21. The system of claim 20 wherein, in operation (d), each of the relational schemas is processed independently.

22. The system of claim 20 wherein operation (d) comprises:

(1) processing CWM data types included in a first of the relational schemas;

(2) creating DBMS data types corresponding to the CWM data types;

(3) processing relational tables included in the first relational schema;

(4) processing relational foreign key relationships for each of the relational tables;

(5) processing relational checkconstraints for the first relational schema;

(6) creating DBMS tables corresponding to the relational tables;

(7) processing relational views for the first relational schema;

(8) processing relational indices for the first relational schema;

(9) processing relational triggers for the first relational schema; and

(10) processing relational procedures for the first relational schema.

23. The system of claim 22 wherein the operation of (1) processing CWM data types included in a first of the relational schemas comprises:

for one of the CWM data types, determining whether the CWM data type is user-defined;

if the CWM data type is user-defined, obtaining base type and constraint of the CWM data type; and

if the CWM data type is text, obtaining a character set, name of language and collation sets associated with the CWM data type.

24. The system of claim 23 wherein the operation of (2) creating DBMS data types corresponding to the CWM data types comprises:

for a first of the CWM data types that is user-defined,

creating a corresponding DBMS data type in the corresponding DBMS schema;

setting physical type for the DBMS data type, based on the obtained base type of the first CWM data type; and

binding a constraint to the DBMS data type, based on the obtained constraint of the first CWM data type.

25. The system of claim 24 wherein the operation of (3) processing relational tables included in the first relational schema comprises:

determining whether there is a first relational table in the first relational schema;

if there is a first relational table in the first relational schema, then:

determining relational columns in the first relational table, the first relational table having a relational primary key; and, for each of the relational columns:

obtaining column properties including type, precision, scale, length, IsNullable, CollationName, and CharacterisetName;

verifying that the obtained type matches one of the DBMS data types;

determining whether the relational column is part of the relational primary key; and

flagging the relational column if the relational column is part of the relational primary key.

26. The system of claim 22 wherein the operation of (4) processing relational foreign key relationships for each of the relational tables comprises:

for a first of the relational tables, enumerating child relational tables having foreign key relationships with the first relational table;

for each of the foreign key relationships,

determining relational columns imported from the respective child relational table to the first relational table; and

obtaining properties of each of the imported relational columns, including “update” and “delete” referential integrity rules and deferability type.

27. The system of claim 22 wherein the operation of (5) processing relational checkconstraints for the first relational schema comprises:

determining relational checkconstraints associated with the first relational schema;

obtaining parameters associated with a first of the relational checkconstraints; and

enumerating relational columns having references to the first relational checkconstraint.

28. The system of claim 27 wherein the operation of (6) creating DBMS tables corresponding to the relational tables comprises:

selecting from the relational tables included in the first relational schema first tables having no dependencies on any other of the relational tables; and

creating a corresponding DBMS table for each of the first selected tables.

29. The system of claim 27 wherein operation (6) further comprises:

selecting from the relational tables included in the first relational schema a second table having dependency on at least one of the first selected tables; and

creating a corresponding DBMS table for the second selected table.

30. The system of claim 29 wherein operation (6) further comprises:

selecting from the relational tables included in the first relational schema a third table having dependency on at least one of the second and the first selected tables; and

creating a corresponding DBMS table for the third selected table.

31. The system of claim 28 wherein operation (6) further comprises:

creating a corresponding DBMS table for each of mutually dependent tables from the relational tables using forward references or ALTER TABLE commands.

32. The system of claim 28 wherein the operation of creating a corresponding DBMS table comprises:

creating DBMS columns corresponding to columns of the corresponding relational table;

setting properties including precision, scale, length, data type, IsNullable, CollationName, and CharacterisetName for each of the DBMS columns based on respective properties of the corresponding relational column;

if one of the DBMS columns is the only one of the DBMS columns that represents a primary key or a foreign key, adding property of primary key or foreign key to the one DBMS column; and

if there is a checkconstraint associated with one of the DBMS columns and not involving any of the remaining DBMS columns, specifying the checkconstraint as column-level constraint.

33. The system of claim 32 wherein the operation of creating a corresponding DBMS table further comprises:

if there is a multi-column primary key or a multi-column foreign key in the relational table, specifying the multi-column primary key or a multi-column foreign key in the DBMS table at table-level and identifying the DBMS columns that represent the multi-column primary key or a multi-column foreign key; and

if there is a checkconstraint involving multiple DBMS columns, specifying the constraint in the DBMS table at table-level and identifying the involved DBMS columns.

34. The system of claim 32 wherein the operation of creating a corresponding DBMS table further comprises:

specifying a foreign key in the DBMS table, including:

identifying a child DBMS table and DBMS columns being imported from the child DBMS table; and

specifying properties of the foreign key, the properties including “update” and “delete” referential integrity rules and deferability type.

35. The system of claim 22 wherein the operation of (7) processing relational views for the first relational schema comprises:

determining relational views associated with the first relational schema;

for each of the relational views:

creating a corresponding DBMS view;

specifying updatability of the corresponding DBMS view; and

specifying query expression defining the corresponding DBMS view.

36. The system of claim 22 wherein the operation of (8) processing relational indices for the first relational schema comprises:

determining relational indices associated with a first of the relational schemas;

for each of the relational indices:

creating a corresponding DBMS index to represent the relational index;

specifying DBMS columns used by the corresponding DBMS index; and

setting properties of the specified DBMS columns including IsNullable, FilterCondition, and AutoUpdate.

37. The system of claim 22 wherein the operation of (9) processing relational triggers for the first relational schema comprises:

determining relational triggers associated with the first relational schema;

for each of the relational triggers:

creating a corresponding DBMS trigger;

setting properties of the corresponding DBMS trigger based on properties of the relational trigger, the relational trigger monitoring a relational table; and

setting a monitored DBMS table corresponding to the monitored relational table.

38. The system of claim 22 wherein the operation of (10) processing relational procedures for the first relational schema comprises:

determining relational procedures associated with the first relational schema;

for each of the relational procedures:

creating a corresponding DBMS procedure; and

setting arguments for the corresponding DBMS procedure based on arguments of the relational procedure.

Assignments (14)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
SECURITY INTEREST Recorded Nov 19, 2020
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 054481/0865 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2013
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
To: UNISYS CORPORATION
Reel/Frame 030082/0545 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2013
From: DEUTSCHE BANK TRUST COMPANY
To: UNISYS CORPORATION
Reel/Frame 030004/0619 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
SECURITY AGREEMENT Recorded May 7, 2010
From: UNISYS CORPORATION
To: DEUTSCHE BANK
Reel/Frame 024351/0482 →
RELEASE BY SECURED PARTY Recorded Sep 14, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023263/0631 →
RELEASE BY SECURED PARTY Recorded Jul 31, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023312/0044 →
SECURITY AGREEMENT Recorded Jun 20, 2006
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
To: CITIBANK, N.A.
Reel/Frame 018003/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2003
From: DEVANATHAN, SRIRAM; MOORE, JEFFREY ALLEN; STEFANIAK, JOSEPH PETER; SULGROVE, LONNIE DALE
To: UNISYS CORPORATION
Reel/Frame 014750/0347 →