A method, an apparatus, and a system for configuring, designing, and/or implementing common metadata and common data is detailed as a new type of data relationship, within and between databases.
|
0. 16. A computing system, comprising:
a computer processor;
a computer memory having stored therein:
a first data entity with a first unique key, which serves as a unique key in the first data entity;
a second data entity with the first unique key, which serves as a unique key in the second data entity;
a first common entity relationship set relating the first unique key of the first data entity with the first unique key of the second data entity; and
wherein the computer memory includes instructions stored therein for programing the computer processor to:
database instantiate a first database table from the first data entity and a first unique index in the first database table from the first unique key in the first data entity;
database instantiate a second database table from the second data entity and the first unique index in the second database table from the first unique key in the second data entity;
populate the first database table with data records;
declare the data records of the first database table as a first single common set of master data records;
populate the second database table with data records from the first single common set of master data records;
wherein the second database table is a dependent table which is dependent on the first database table;
wherein the computer processor limits the data records permitted in the second database table, such that all data records permitted in the second database table must be in the first database table; and
wherein the computer processor is programmed to permit creation of one or more data records in the first database table by adding a corresponding one or more rows to the first database table without consideration for data records of the second database table.
0. 22. An apparatus comprising,
one or more computer processors; and
one or more computer memories having stored therein:
a first data entity with a first unique key therein, wherein the first unique key in the first data entity is not a foreign key in the first data entity;
a second data entity with the first unique key therein, wherein the first unique key in the second data entity is not a foreign key in the second data entity;
a third data entity with the first unique key therein, wherein the first unique key in the third data entity is not a foreign key in the third data entity; and
wherein the one or more computer memories have instructions stored therein for programming the one or more computer processors to perform a method to create a common entity relationship set comprising:
forming a first common entity relationship set in the one or more computer memories that includes a first common entity relationship to the first unique key of the first data entity and includes a second common entity relationship to the first unique key of the second data entity and includes a third common entity relationship to the first unique key of the third data entity; and
wherein the first common entity relationship is a peer-to-peer type of relationship that relates common unique key attributes that are neither donated by the first data entity nor inherited by the first data entity;
wherein the second common entity relationship is a peer-to-peer type of relationship that relates common unique key attributes that are neither donated by the second data entity nor inherited by the second data entity; and
wherein the third common entity relationship is a peer-to-peer type of relationship that relates common unique key attributes that are neither donated by the third data entity nor inherited by the third data entity.
9. A method comprising
using a computer processor to store a first database in a computer memory;
wherein the first database includes a plurality of database tables and a plurality of database foreign key constraints, such that each of the plurality of database foreign key constraints links one of the plurality of database tables with only one of the plurality of database tables;
wherein each of the plurality of database tables relates to one of a plurality of overall topics;
wherein the first database includes a first database table of the plurality of database tables relating to a first database table overall topic of the plurality of overall topics;
wherein the first database table includes a first database table column relating to a sub topic of the first database table overall topic; and
the method further comprising using a computer processor to database instantiate the first database table column with a first plurality of data values;
using a computer processor to use the first plurality of data values of the first database table column as a source of data values for a first unique index for the first database table;
using a computer processor to the enforce the first unique index of the first database table, where the first unique index is programmed to reject the storage in the first database table of any duplicate data values of the first plurality of data values;
wherein the first database table is comprised of a plurality of data records, and each data value of the first plurality of data values in the first database table column uniquely identifies each of the plurality of data records of the first database table;
wherein the first database includes a second database table of the plurality of database tables relating to a second database table overall topic of the plurality of overall topics;
wherein the second database table includes a second database table column relating to a sub topic of the second database table overall topic; and
the method further comprising using a computer processor to database instantiate the second database table column with of a second plurality of data values;
using a computer processor to use the second plurality of data values of the second database column as a source of data values for a second unique index for the second database table;
using a computer processor to reject the storage in the second database table of any duplicate data values in the second plurality of data values, so that each of the second plurality of data values is different from each of the other of the second plurality of data values;
wherein the second database table is comprised of a plurality of data records, and each data value of the second plurality of data values in the second database table column uniquely identifies each of the plurality of data records in the second database table;
using the computer processor to ensure that each of the plurality of data records of the second database table is one of the plurality of data records of the first database table;
using the computer processor to ensure that each data record of the plurality of data records of the second database table may only be modified to match one of the data records of the plurality data records of the first database table; and
using the computer processor to ensure that each data record of the plurality of data records from the first database table may not be changed if the same data record is in the plurality of data records of the second database table;
using the computer processor to ensure that each data record of the plurality of data records of the first database table cannot be deleted from the first database table if that same data record is in the plurality of data records of the second database table.
11. A method comprising
using a computer processor to store a first database in a computer memory;
wherein the first database includes a plurality of database tables and a plurality of database foreign key constraints, such that each of the plurality of database foreign key constraints links one of the plurality of database tables with only one of the plurality of database tables;
wherein each of the plurality of database tables relates to one of a plurality of overall topics;
wherein the first database includes a first database table of the plurality of database tables relating to a first database table overall topic of the plurality of overall topics;
wherein the first database table includes a first database table column relating to a sub topic of the first database table overall topic; and
the method further comprising using a computer processor to database instantiate the first database table column with a first plurality of data values;
using a computer processor to use the first plurality of data values of the first database table column as a source of data values for a first unique index for the first database table;
using a computer processor to reject the storage in the first database table of any duplicate data values in the first plurality of data values, so that each of the first plurality of data values is different from each of the other of the first plurality of data values;
wherein the first database table is comprised of a plurality of data records, and each data value of the first plurality of data values stored in the first database table column uniquely identifies each of the plurality of data records of the first database table;
using a computer processor to store a second database in a computer memory;
wherein the second database includes a further plurality of database tables and a further plurality of database foreign key constraints, such that each of the further plurality of database foreign key constraints links one of the further plurality of database tables with only one of the further plurality of database tables;
wherein each of the plurality of database tables relates to one of a further plurality of overall topics;
wherein the second database includes a second database table of the further plurality of database tables relating to a second database table overall topic of the further plurality of overall topics;
wherein the second database table includes a second database table column relating to a sub topic of the second database table overall topic; and
the method further comprising using a computer processor to database instantiate the second database table column with a second plurality of data values;
using a computer processor to reject the storage in the second database table of any duplicate data values in the second plurality of data values, so that each of the second plurality of data values is different from each of the other of the second plurality of data values;
wherein the second database table is comprised of a plurality of data records, and each data value of the second plurality of data values stored in the second database table column uniquely identifies each of the plurality of data records of the second database table;
using the computer processor to ensure that each of the plurality of data records of the second database table stored in the second database is one of the plurality of data records of the first database table stored in the first database;
using the computer processor to ensure that each data record of the plurality of data records of the second database table stored in the second database may only be modified to match one of the data records of the plurality data records of the first database table stored in the first database; and
using the computer processor to ensure that each data record of the plurality of data records from the first database table stored in the first database may not be changed if the same data record is in the plurality of data records of the second database table stored in the second database;
using the computer processor to ensure that each data record of the plurality of data records of the first database table stored in the first database cannot be deleted from the first database table if that same data record is in the plurality of data records of the second database table stored in the second database.
1. A method comprising
using a computer processor to access a first repository of metadata in a computer memory;
using a computer processor to store a first data entity-relationship diagram in the first repository of metadata, wherein the first data entity-relationship diagram includes a plurality of data entities and a plurality of data entity relationships stored in the computer memory, such that each of the plurality of data entity relationships links one of the plurality of data entities with only one of the plurality of data entities;
wherein each of the plurality of data entities relates to one of a plurality of overall topics;
wherein the first data entity-relationship diagram includes a first data entity of the plurality of data entities relating to a first data entity overall topic of the plurality of overall topics;
wherein the first data entity includes a first data attribute relating to a sub topic of the first data entity overall topic; and
the method further comprising using a computer processor to declare the first data attribute to be a first unique key for the first data entity by storing a first unique key indicator in the computer memory to indicate that the first data attribute is a first unique key for the first data entity;
using a computer processor to determine that the first data attribute is a first unique key for the first data entity, wherein the first data entity is comprised of a plurality of instances, and the first data attribute uniquely identifies each of the plurality of instances of the first data entity;
wherein the first data entity-relationship diagram includes a second data entity of the plurality of data entities relating to a second data entity overall topic of the plurality of overall topics;
wherein the second data entity includes a second data attribute relating to a sub topic of the second data entity overall topic; and
the method further comprising using a computer processor to declare the second data attribute to be a second unique key for the second data entity by storing a second unique key indicator in the computer memory to indicate that the second data attribute is a second unique key of the second data entity;
using a computer processor to determine that the second data attribute is a second unique key for the second data entity; wherein the second data entity is comprised of a plurality of instances, and the second data attribute uniquely identifies each of the plurality of instances of the second data entity;
using a computer processor to add a first common entity relationship set as data to the first repository of metadata; wherein the first common entity relationship set groups together a plurality of common group unique keys wherein each of the plurality of common group unique keys is the same as each of the other of the plurality of common group unique keys, except that each of the plurality of common group unique keys includes a data entity link stored in the computer memory which specifies a data entity of the plurality of data entities to which each of the common group unique keys is related, such that each of the plurality of common group unique keys is related to a different data entity of the plurality of data entities;
wherein the plurality of common group keys includes the first data attribute and the second data attribute;
and the method further comprising using a computer processor to add a first common entity relationship indicator to computer memory to indicate that the first data attribute is a member of the first common entity relationship set in the first repository of metadata; and
using a computer processor to add a second common entity relationship indicator to the computer memory to indicate that the second data attribute is a member of the first common entity relationship set in the first repository of metadata; and
using a computer processor to store a common entity relationship link in the first data entity-relationship diagram in the computer memory, wherein the common entity relationship link links the first data attribute of the first data entity and the second data attribute of the second data entity,
wherein the common entity relationship link is a peer-to-peer type of link; and wherein the first data entity-relationship diagram, including the first data entity, the second data entity, the first data attribute and the second data attribute are stored in the first repository of metadata prior to adding the first common entity relationship set as data to the first repository of metadata.
12. A method comprising
using a computer processor to access a first repository of metadata in a computer memory;
using a computer processor to store a first data entity-relationship diagram in the first repository of metadata, wherein the first data entity-relationship diagram includes a first plurality of data entities and a first plurality of data entity relationships stored in the computer memory, such that each of the first plurality of data entity relationships links one of the first plurality of data entities with only one of the first plurality of data entities;
wherein each of the first plurality of data entities relates to one of a first plurality of overall topics;
wherein the first data entity-relationship diagram includes a first data entity of the first plurality of data entities relating to a first data entity overall topic of the first plurality of overall topics;
wherein the first data entity includes a first data attribute relating to a sub topic of the first data entity overall topic; and
the method further comprising using a computer processor to declare the first data attribute to be a first unique key for the first data entity by storing a first unique key indicator in the computer memory to indicate that the first data attribute is a first unique key for the first data entity;
using a computer processor to determine that the first data attribute is a first unique key for the first data entity, wherein the first data entity is comprised of a first plurality of instances, and the first data attribute uniquely identifies each of the first plurality of instances of the first data entity;
using a computer processor to access a second repository of metadata in the computer memory;
using a computer processor to store a second data entity-relationship diagram in the second repository of metadata, wherein the second data entity-relationship diagram includes a second plurality of data entities and a second plurality of data entity relationships stored in the computer memory, such that each of the second plurality of data entity relationships links one of the second plurality of data entities with only one of the second plurality of data entities;
wherein each of the second plurality of data entities relates to one of a second plurality of overall topics;
wherein the second data entity-relationship diagram includes a second data entity of the second plurality of data entities relating to a second data entity overall topic of the second plurality of overall topics;
wherein the second data entity includes a second data attribute relating to a sub topic of the second data entity overall topic; and
the method further comprising using a computer processor to declare the second data attribute to be a second unique key for the second data entity by storing a second unique key indicator in the computer memory to indicate that the second data attribute is a second unique key for the second data entity;
using a computer processor to determine that the second data attribute is a second unique key for the second data entity, wherein the second data entity is comprised of a second plurality of instances, and the second data attribute uniquely identifies each of the second plurality of instances of the second data entity;
using a computer processor to add a first common entity relationship set as data to the first repository of metadata and to the second repository of metadata;
wherein the first common entity relationship set groups together a plurality of common group unique keys wherein each of the plurality of common group unique keys is the same as each of the other of the plurality of common group unique keys, except that each of the plurality of common group unique keys includes a data entity link stored in the computer memory which specifies a data entity of the plurality of data entities to which each of the common group unique keys is related, such that each of the plurality of common group unique keys is related to a different data entity of the plurality of data entities;
wherein the plurality of common group keys includes the first data attribute of the first data entity of the first entity-relationship diagram;
wherein the plurality of common group keys includes the second data attribute of the second data entity of the second entity-relationship diagram;
and the method further comprising using a computer processor to add a first common entity relationship indicator to computer memory to indicate that the first data attribute is a member of the first common entity relationship set in the first repository of metadata; and
using a computer processor to add a second common entity relationship indicator to the computer memory to indicate that the second data attribute is a member of the first common entity relationship set in the second repository of metadata; and
using a computer processor to store a first common entity relationship link in the first data entity-relationship diagram in the computer memory, wherein the first common entity relationship link links the first data attribute of the first data entity to the first common entity relationship set;
using a computer processor to store a second common entity relationship link in the second data entity-relationship diagram in the computer memory, wherein the second common entity relationship link links the second data attribute of the second data entity to the first common entity relationship set.
2. The method of
using a computer processor to store a first common set of master data indicator in the first repository of metadata;
wherein each of the plurality of data entities has a plurality of instances;
wherein two or more of the plurality of data entities are linked to the first common entity relationship set by one or more of the plurality of common group unique keys;
wherein the first common set of master data indicator indicates that the first data entity manages the plurality of instances of the two or more data entities which are linked to the first common entity relationship set by one or more of the plurality of common group unique keys;
using a computer processor to retrieve the first common set of master data indicator from the first repository of metadata;
using a computer processor to modify the plurality of instances of the two or more data entities which are linked to the first common entity relationship set based on the first common set of master data indicator;
wherein the first data entity includes a plurality of instances;
wherein the second data entity includes a plurality of instances;
wherein the plurality of instances for the first common entity relationship set includes the plurality of instances of the first data entity and the plurality of instances of the second data entity and the first data entity and the second data entity are members of the first common entity relationship set;
using a computer processor to configure the plurality of instances of the first common entity relationship set in the computer memory by using the first data attribute of the first data entity in a manner which ensures that each of the plurality of instances of the first common entity relationship set is uniquely identified in the computer memory by the first data attribute;
using the computer processor to ensure that each of the plurality of instances of the second data entity is one of the plurality of instances of the first data entity.
3. The method of
using a computer processor to add a first data model database to the first data entity-relationship diagram in the first repository of metadata;
using a computer processor to add a second data model database to the first data entity-relationship diagram in the first repository of metadata;
using a computer processor to add a first further plurality of data entities and a first further plurality of data entity relationships to the first data model database in the first data entity-relationship diagram in the first repository of metadata;
using a computer processor to add a second further plurality of data entities and a second further plurality of data entity relationships to the second data model database in the first data entity-relationship diagram in the first repository of metadata;
using a computer processor to database instantiate the
first data model database and the second data model database as two different physical databases;
where the first data entity is a member of the first data model database and the second data entity is a member of the second data model database.
4. The method of
using a computer processor to store a second data entity-relationship diagram in the first repository of metadata;
wherein the second data entity-relationship diagram includes a third further plurality of data entities and a third further plurality of data entity relationships stored in a computer memory, such that each of the third further plurality of data entity relationships links one of the third further plurality of data entities with only one of the third further plurality of data entities;
wherein each of the third further plurality of data entities relates to one of a first further plurality of overall topics;
using a computer processor to store a third data model database in the first repository of metadata;
using a computer processor to add the third data model database to the second data entity-relationship diagram in the first repository of metadata;
using a computer processor to store a third data entity in the third data model database in the second data entity-relationship diagram;
where the third data entity relates to one of a second further plurality of overall topics;
where the third data entity includes a third data attribute relating to a sub topic of a third data entity overall topic of the second further plurality of overall topics;
the method further comprising using a computer processor to declare the third data attribute to be a third unique key for the third data entity by storing a third unique key indicator in the computer memory to indicate that the third data attribute is a third unique key;
using a computer processor to determine that the third data attribute is a third unique key and is a unique key for the third data entity, wherein the third data entity is comprised of a plurality of instances, and the third data attribute uniquely identifies each of the plurality of instances of the third data entity;
the method further comprises using the computer processor to add a third common entity relationship indicator to the computer memory to indicate that the third data attribute is a member of the first common entity relationship set in the first repository of metadata; and
using a computer processor to store a common entity relationship link in the second entity-relationship diagram in the computer memory, wherein the common entity relationship link links the first data attribute of the first data entity, the second data attribute of the second data entity, the third data attribute of the third data entity;
wherein the common entity relationship link is a peer-to-peer type of link;
and wherein the first data entity-relationship diagram including the first data entity, the second data entity, the first data attribute and the second data attribute and the second entity-relationship diagram including the third data entity, the third data attribute are stored in the first repository of metadata prior to adding the first common entity relationship set as data to the first repository of metadata;
using a computer processor to retrieve the first common set of master data indicator from the first repository of metadata;
using a computer processor to modify the plurality of instances of the two or more data entities which are linked to the first common entity relationship set based on the first common set of master data indicator;
wherein the plurality of instances for the first common entity relationship set includes the plurality of instances of the first data entity, the plurality of instances of the second data entity, the plurality of the third data entity;
wherein the first data entity, the second data entity, the third data entity are members of the first common entity relationship set;
using a computer processor to configure the plurality of instances of the first common entity relationship set in the computer memory by using the first data attribute of the first data entity in a manner which ensures that each of the plurality of instances of the first common entity relationship set is uniquely identified in the computer memory by the first data attribute;
using the computer processor to ensure that each of the plurality of instances of the second data entity is one of the plurality of instances of the first data entity;
using the computer processor to ensure that each of the plurality of instances of the third data entity is one of the plurality of instances of the first data entity.
5. The method of
using a computer processor to add a third data attribute to the first data entity in the first repository of metadata;
wherein the third data attribute relates to a sub topic of the first data entity overall topic;
using a computer processor to add a fourth data attribute to the second data entity in the first repository of metadata;
where the fourth data attribute relates to a sub topic of the second data entity overall topic;
wherein the third data attribute and the fourth data attribute are the same.
6. The method of
using a computer processor to add a third data entity to the first data model database in the first repository of metadata;
using a computer processor to add a fourth data entity to the second data model database in the first repository of metadata;
using a computer processor to add a third data attribute and a fourth data attribute to the third data entity;
the method further comprising using a computer processor to declare the third data attribute and the fourth data attribute to be a first composite unique key for the third data entity by storing a third unique key indicator in the computer memory to indicate that the composite of the third data attribute and the fourth data attribute is a first composite unique key;
using a computer processor to add a fifth data attribute and a sixth data attribute to the fourth data entity;
the method further comprising using a computer processor to declare the fifth data attribute and the sixth data attribute to be a second composite unique key for the third data entity by storing a third unique key indicator in the computer memory to indicate that the composite of the fifth data attribute and the sixth data attribute is a second composite unique key;
using a computer processor to add a second common entity relationship set as data to the first repository of metadata; wherein the second common entity relationship set groups together a further plurality of common group unique keys wherein each of the further plurality of common group unique keys is the same as each of the other of the further plurality of common group unique keys, except that each of the further plurality of common group unique keys includes a data entity link stored in the computer memory which specifies a data entity of the plurality of data entities to which each of the further plurality of common group unique keys is related, such that each of the further plurality of common group unique keys is related to a different data entity of the plurality of data entities;
wherein the further plurality of common group keys includes the first composite unique key and the second composite unique key;
and the method further comprising using a computer processor to add a third common entity relationship indicator to computer memory to indicate that the first composite unique key is a member of the second common entity relationship set in the first repository of metadata; and
using a computer processor to add a fourth common entity relationship indicator to the computer memory to indicate that the second composite unique key is a member of the second common entity relationship set in the first repository of metadata; and
using a computer processor to store a common entity relationship link in the first data entity-relationship diagram in the computer memory, wherein the common entity relationship link links the first composite unique key of the third data entity and the second composite unique key of the fourth data entity,
wherein the common entity relationship link is a peer-to-peer type of link;
wherein the computer processor adds the third data attribute and the fourth data attribute to the third data entity and declares the third data attribute and the fourth data attribute to be a first composite unique key for the third data entity prior to adding the second common entity relationship set as data to the first repository of metadata; and
wherein the computer processor adds the fifth data attribute and the sixth data attribute to the fourth data entity and declares the fifth data attribute and the sixth data attribute to be a second composite unique key for the fourth data entity prior to adding the second common entity relationship set as data to the first repository of metadata.
7. The method of
using a computer processor to store a second common set of master data indicator in the first repository of metadata;
wherein the second common set of master data indicator indicates that the third data entity manages the plurality of instances of the two or more data entities which are linked to the second common entity relationship set by one or more of the plurality of common group unique keys;
using a computer processor to retrieve the second common set of master data indicator from the first repository of metadata;
using a computer processor to modify the plurality of instances of the two or more data entities which are linked to the second common entity relationship set based on the second common set of master data indicator;
wherein the third data entity includes a plurality of instances;
wherein the fourth data entity includes a plurality of instances;
wherein the plurality of instances for the second common entity relationship set includes the plurality of instances of the third data entity and the plurality of instances of the fourth data entity and the third data entity and the fourth data entity are members of the second common entity relationship set;
using a computer processor to configure the plurality of instances of the second common entity relationship set in the computer memory by using the first composite unique key of the third data entity in a manner which ensures that each of the plurality of instances of the second common entity relationship set is uniquely identified in the computer memory by the first composite unique key;
using the computer processor to ensure that each of the plurality of instances of the fourth data entity is one of the plurality of instances of the third data entity.
8. The method of
using a computer processor to add a seventh data attribute to the third data entity in the first repository of metadata;
wherein the seventh data attribute relates to a sub topic of a third data entity overall topic of the plurality of overall topics;
using a computer processor to add an eighth data attribute to the fourth data entity in the first repository of metadata;
where the eighth data attribute relates to a sub topic of a fourth data entity overall topic of the plurality of overall topics; and
where the seventh data attribute and the eighth data attribute are the same.
10. The method of
using a computer processor to add a third database table column to the first database table in the first database;
wherein the third database table column relates to a sub topic of the first database table overall topic;
using a computer processor to add a fourth database table column to the second database table in the first database;
where the fourth database column relates to a sub topic of the second database table overall topic;
where the third database table column and the fourth database table column include the same data attributes.
13. The method of
using a computer processor to store a first database in a computer memory;
wherein the first database includes a first plurality of database tables database instantiated from the first plurality of data entities and a first plurality of database foreign key constraints database instantiated from the first plurality of data entity relationships, such that each of the first plurality of database foreign key constraints links one of the first plurality of database tables with only one of the first plurality of database tables;
wherein the first database includes a first database table of the first plurality of database tables database instantiated from the first data entity;
wherein the first database table includes a first database table column that is database instantiated from the first data attribute;
the method further comprising using a computer processor to database instantiate a first unique index from the first unique key of the first data entity for the first database table;
using a computer processor to determine that the first database table column of the first database table is the first unique index for the first database table,
wherein the first database table is comprised of a first plurality of data records, and the first database table column uniquely identifies each of the first plurality of data records for the first database table;
using a computer processor to read metadata from the second repository of metadata;
using a computer processor to store a second database in a computer memory;
wherein the second database includes a second plurality of database tables database instantiated from the second plurality of data entities and a second plurality of database foreign key constraints database instantiated from the second plurality of data entity relationships, such that each of the second plurality of database foreign key constraints links one of the second plurality of database tables with only one of the second plurality of database tables;
wherein the second database includes a second database table of the second plurality of database tables database instantiated from the second data entity;
wherein the second database table includes a second database table column that is database instantiated from the second data attribute; and
the method further comprising using a computer processor to database instantiate a second unique index from a second unique key of the second data entity for the second database table;
using a computer processor to determine that the second database table column of the second database table is the second unique index for the second database table,
wherein the second database table is comprised of a second plurality of data records, and the second database table column uniquely identifies each of the second plurality of data records for the second database table;
using a computer processor to store a first computer program in a predefined location in the computer memory;
using a computer processor to store data referring to the predefined location in the first common entity relationship set in the first repository of metadata; and
using a computer processor to store the predefined location in the first common entity relationship set in the second repository of metadata;
using a computer processor implementing the first computer program, to add a first plurality of data records to the first database table in the first database;
using a computer processor implementing the first computer program, to add a second plurality of data records to second database table in the second database;
wherein the first plurality of data records and the second plurality of data records are the same.
14. The method of
using a computer processor to add a first common set of master data indicator to the first common entity relationship set in the first repository of metadata and to the second repository of metadata;
wherein the first common set of master data indicator indicates that the first data entity of the first entity-relationship diagram is used by a computer processor to manage the plurality of instances of the two or more data entities which are linked to the first common entity relationship set by one or more of the plurality of common group unique keys;
using a computer processor to retrieve the first common set of master data indicator from the first repository of metadata;
using a computer processor to modify the plurality of instances of the two or more data entities which are linked to the first common entity relationship set based on the first common set of master data indicator;
wherein the first data entity includes a plurality of instances;
wherein the second data entity includes a plurality of instances;
wherein the plurality of instances for the first common entity relationship set includes the plurality of instances of the first data entity and the plurality of instances of the second data entity and the first data entity and the second data entity are members of the first common entity relationship set;
using a computer processor to configure the plurality of instances of the first common entity relationship set in the computer memory by using the first unique key of the first data entity in a manner which ensures that each of the plurality of instances of the first common entity relationship set is uniquely identified in the computer memory by the first unique key;
using the computer processor to ensure that each of the plurality of instances of the second data entity is one of the plurality of instances of the first data entity.
15. The method of
using a computer processor to store a first database in a computer memory;
wherein the first database includes a first plurality of database tables database instantiated from the first plurality of data entities and a first plurality of database foreign key constraints database instantiated from the first plurality of data entity relationships, such that each of the first plurality of database foreign key constraints links one of the first plurality of database tables with only one of the first plurality of database tables;
wherein the first database includes a first database table of the first plurality of database tables database instantiated from the first data entity;
wherein the first database table includes a first database table column that is database instantiated from the first data attribute;
the method further comprising using a computer processor to database instantiate a first unique index from the first unique key of the first data entity for the first database table;
using a computer processor to determine that the first database table column of the first database table is the first unique index for the first database table,
wherein the first database table is comprised of a first plurality of data records, and the first database table column uniquely identifies each of the first plurality of data records for the first database table;
using a computer processor to read metadata from the second repository of metadata;
using a computer processor to store a second database in a computer memory;
wherein the second database includes a second plurality of database tables database instantiated from the second plurality of data entities and a second plurality of database foreign key constraints database instantiated from the second plurality of data entity relationships, such that each of the second plurality of database foreign key constraints links one of the second plurality of database tables with only one of the second plurality of database tables;
wherein the second database includes a second database table of the second plurality of database tables database instantiated from the second data entity;
wherein the second database table includes a second database table column that is database instantiated from the second data attribute; and
the method further comprising using a computer processor to database instantiate a second unique index from a second unique key of the second data entity for the second database table;
using a computer processor to determine that the second database table column of the second database table is the second unique index for the second database table,
wherein the second database table is comprised of a second plurality of data records, and the second database table column uniquely identifies each of the second plurality of data records for the second database table;
using the computer processor to ensure that each of the plurality of data records of the second database table is one of the plurality of data records of the first database table;
using the computer processor to ensure that each data record of the plurality of data records of the second database table may only be modified to match one of the data records of the plurality data records of the first database table; and
using the computer processor to ensure that each data record of the plurality of data records from the first database table may not be changed if the same data record is in the plurality of data records of the second database table; and
using the computer processor to ensure that each data record of the plurality of data records of the first database table cannot be deleted from the first database table if that same data record is in the plurality of data records of the second database table.
0. 17. The computing system of claim 16:
wherein the first unique key of the first data entity is a first alternate key;
wherein the first unique key of the second data entity is the first alternate key;
wherein the first unique index in the first database table is not a primary index in the first database table; and
wherein the first unique index in the second database table is not a primary index for the second database table.
0. 18. The computing system of claim 16
wherein the first unique key of the first data entity is a first composite alternate key;
wherein the first unique key of the second data entity is the first composite alternate key;
wherein the first unique index in the first database table is the first composite unique index in the first database table; and
wherein the first unique index in the second database table is the first composite unique index in the second database table.
0. 19. The computing system of claim 16
wherein the computer processor is programmed to add a first data model database to designate a first database to be database instantiated;
wherein the computer processor is programmed to add a second data model database to designate a second database to be database instantiated;
wherein the first data entity is contained within the first data model database and the second data entity is contained within the second data model database;
wherein the computer memory has instructions stored therein to database instantiate the first data model database as a first physical database within a database management system and the second data model database as a second physical database within a database management system; and
wherein the first physical database contains the first database table and the second physical database contains the second database table.
0. 20. The computing system of claim 16
wherein the computer processor is programmed to add a third data entity with the first unique key, which serves as a unique key in the third data entity;
wherein the first common entity relationship set also relates the first unique key of the third data entity with the first unique key of the first data entity and with the first unique key of the second data entity;
wherein the computer memory also includes instructions stored therein for programming the computer processor to:
database instantiate a third database table from the third data entity and the first unique index in the third database table from the first unique key in the third data entity;
populate the third database table with data records from the first single common set of master data records;
wherein the computer processor limits the data records permitted in the third database table, such that all data records permitted in the third database table must be in the first database table; and
wherein the computer processor is programmed to permit data records in the first database table which are not in the third database table.
0. 21. The computing system of claim 20
wherein the computer processor is programmed to add a first data model database to designate a first database to be database instantiated and a second data model database to designate a second database to be database instantiated and a third data model database to designate a third database to be database instantiated;
wherein the first data entity is contained within the first data model database and the second data entity is contained within the second data model database and the third data entity is contained within the third data model database; and
wherein the computer memory has instructions stored therein to database instantiate the first data model database as a first physical database within a database management system and the second data model database as a second physical database within a database management system and the third data model database as a third physical database within a database management system; and
wherein the first physical database contains the first database table database instantiated from the first data entity and the second physical database contains the second database table database instantiated from the second data entity and the third physical database contains the third database table database instantiated from the third data entity.
0. 23. The apparatus of claim 22
wherein the one or more computer memories have instructions stored therein to database instantiate one or more data model objects into database objects in the one or more computer memories.
0. 24. The apparatus of claim 22
wherein the first data entity resides in a first data model database in the one or more computer memories;
wherein the second data entity resides in a second data model database in the one or more computer memories; and
wherein the third data entity resides in a third data model database in the one or more computer memories.
0. 25. The apparatus of claim 24
wherein the first data model database and the second data model database and the third data model database reside in a first data model in the one or more computer memories.
0. 26. The apparatus of claim 22
wherein the first unique key of the first data entity is a first alternate key;
wherein the first unique key of the second data entity is the first alternate key; and
wherein the first unique key of the third data entity is the first alternate key.
0. 27. The apparatus of claim 22
wherein the first unique key of the first data entity is a primary key of the first data entity;
wherein the first unique key of the second data entity is a primary key of the second data entity; and
wherein the first unique key of the third data entity is a primary key of the third data entity.
|
The present application is a continuation in part of and claims the priority of U.S. patent application Ser. No. 13/152,683, filed on Jun. 3, 2011 titled “METHOD AND APPARATUS FOR CONVERTING HETEROGENEOUS DATABASES INTO STANDARDIZED HOMOGENEOUS DATABASES”, inventor and applicant Robert Mack, such that Jun. 3, 2011 is the earliest priority date for the present application.
This invention relates to improved methods and apparatus concerning the design and development of data models and their associated databases.
In 1976, the concept of entity-relationship diagramming and data modeling was developed. Data entities and data entity relationships are the major components of prior art entity-relationship diagrams. One function of data models is to design database structures such as database tables, database table columns, and database table indexes.
Data entity relationships are the only prior art data relationships recognized by this methodology. These data entity relationships are used to link data entities together to form designed data access paths between the resultant instantiated database tables. These data access paths are used to join data from two or more database tables to form a coherent set of extended data records. These data entity relationships of data models and their associated database instantiated data access paths are essential to the fundamental function of all relational databases.
One or more embodiments of the present invention includes a method of enhancing data models to declare common data attributes that function as common unique keys in multiple data entities in a computer memory. Common entity relationships, which are a new type of data entity relationship, may also be added to the data model to designate these multiple data entities, which contain a common unique key, as common data entities. A set of common data values may also be used to populate the common database tables that are database instantiated from these related common data entities. A computer processor may be programmed by computer software stored in computer memory, to define common data attributes, automatically or in response to a computer user's inputs through a computer interactive device, such as a computer keyboard, a touch screen monitor, or a computer mouse.
A method in accordance with one or more embodiments of the present invention, may further include the declaration of multiple databases within a single data model, in a computer memory, for the purposes of designing multiple databases within this single data model, in a computer memory, as implemented for example by a computer processor programmed by computer software, stored in a computer memory.
In the present application the following terms have the following definitions:
Alternate key—In an entity-relationship diagram (ERD), a data entity's alternate key is a unique key, stored in one or more computer memories, such as computer memory 8 in
Common database table—A common database table is a database table stored in one or more computer memories by the database management system that contains a common unique index that is populated in one or more computer memories by the database management system with data values from a common set of master data values stored in one or more computer memories.
Common database table set—A common database table set is a group of common database tables stored in one or more computer memories by the database management system that share a common unique index where the common unique indexes are each populated in one or more computer memories by the database management system from a common set of master data values stored in one or more computer memories.
Common database table master—A common database table master is a computer user selected common database table from a common database table set in one or more computer memories that is populated in one or more computer memories by the database management system with the common set of master data values that is used as the source of data values for the other common database tables of that common database table set in one or more computer memories.
Common data entity—A common data entity is a data entity stored in one or more computer memories using a data modeling program that contains a unique key that has been declared by the computer user to be a common unique key. When the common data entity undergoes database instantiation in one or more computer memories using the database management system, the result is a common database table in one or more computer memories.
Common data entity set—A common data entity set is a group of data entities defined using a data modeling program in one or more computer memories that share a common unique key where the common unique key of each common data entity each contain the same grouping of data attributes as defined by the computer user. In addition, the common unique key is declared to have a common set of master data values by the computer user using a data modeling program.
Common entity relationship—A common entity relationship is a peer-to-peer type of entity relationship, defined by the computer user using a data modeling program in one or more computer memories, wherein each common entity relationship is associated with a common data entity that includes a declared common unique key as defined within the data model using a data modeling program, where the common unique key exists in the common data entity prior to adding the common entity relationship.
Common entity relationship set—A common entity relationship set is a collection of common entity relationships, defined by a computer user using a data modeling program stored in one or more computer memories, wherein each common entity relationship is defined using the same common unique key of a common data entity.
Common entity master relationship—A common entity master relationship is a single common entity relationship from a common entity relationship set, selected by a computer user executing a data modeling program, wherein the common entity master relationship denotes the common data entity selected, in one or more computer memories, as the source of the common set of master data values.
Common index integrity rules—Common index integrity rules are defined in a data model and associated with each common entity relationship. These common index integrity rules define restrictions associated with creating, updating, and deleting data records from a common set of master data values in related common database tables from a single common database table set.
Common index master constraint—A common index master constraint is a set of common unique index integrity restrictions, stored in one or more computer memories, used to enforce the common index integrity rules, also stored in one or more computer memories, between the common database table master and the other common database tables of the common database table set. The common database table master is populated with the common set of master data values in one or more computer memories by the database management system. In at least one embodiment of the present invention, the other common database tables of the common database table set will be populated with the data values from the common database table master using the database management system in one or more computer memories.
Common set of master data values—A common set of master data values is a set of data values, stored in one or more computer memories, used to populate multiple common database tables by one or more database management system, and to enforce common index integrity rules between common database tables of the common database table set, wherein the common index integrity rules are stored in one or more computer memories and are enforced by the one or more database management system in one or more computer memories.
Common unique index—A common unique index is a database table unique index, maintained by the database management system and stored in one or more computer memories, wherein a common unique index is common to a common database table set, which is designed to uniquely identify each data record of a common database table from that common database table set. A common unique index is database instantiated using the database management system from a common unique key that is defined in a data model or a data architecture diagram by a computer user using a data modeling program, wherein the data model or the data architecture diagram is stored in one or more computer memories.
Common unique index set—A common unique index set is a group of related common unique indexes as defined by a computer user using a data modeling program and stored in one or more computer memories, wherein each common unique index is associated with a common database table from the same defined common database table set in one or more computer memories by the database management system.
Common unique key—A common unique key is a unique key declared by a computer user using a data modeling program for a set of data attributes contained within a common data entity stored in one or more computer memories. Within a data modeling program, each data entity that contains a common unique key becomes a common data entity in one or more computer memories in at least one embodiment of the present invention. Within a data modeling program executing on a computer processor such as computer processor 4 of
Data architecture—A data architecture, for the purposes of the present patent application, is defined as a group of databases stored in one or more computer memories by one or more database management systems that share at least one common unique index set stored in one or more computer memories and at least one common database table set stored in one or more computer memories by one or more database management systems. In at least one embodiment of the present invention, a data architecture is database instantiation in one or more computer memories from a data architecture diagram stored in one or more computer memories using a data modeling program.
Data architecture diagram—A data architecture diagram, for the purposes of the present patent application, is an entity-relationship diagram or a group of entity-relationship diagrams stored in one or more computer memories using a data modeling program, wherein the data architecture diagram contains multiple data model databases stored in one or more computer memories. A data architecture diagram would normally include one or more common data entity sets and one or more common entity relationship sets stored in one or more computer memories and defined by a computer user using a data modeling program.
Database—A database is generally a grouping of data values typically stored in a computer memory and organized for convenient data value access by a database management system. More specific to the present patent application, a database is a defined data structure, generally stored in a computer memory, comprised of database tables, common database tables, database columns, database indexes, common unique indexes, foreign key constraints, common index master constraints and other database objects defined using a computer-based database management system.
Database management system—A database management system is a computer software application or software program stored in one or more computer memories, such as one or more of computer memory 8, and executed by a computer processor such as processor 4 of
Database access path—A database access path is a designed linkage between two database tables where the set of data records from a first database table may be joined to the set of data records of a second database table to form a single concatenated set of data records, in one or more computer memories using the database management system. A joining the first set of data records to the second set of data records is based upon common data values in each set of data record. Each database access paths is database instantiated, in one or more computer memories using the database management system, from a single data entity relationship or a single common entity relationship of a data model. The joined sets of data records are formed into a single result set of metadata and data values that can be displayed on the display device 6 of the apparatus 1 of
Database index—A database index is a type of database object associated to a database table stored in computer memory using a database management system. A database index may be comprised of a single database table column of data values or be comprised of multiple database table columns of data values from the same database table. A database index may be configured to be a unique database index in the sense that the database index uses a key data value only once per database table, or designed as a non-unique database index, which may repeat key data values in that database table. The database management system is used to maintain the integrity of all database indexes which are stored in one or more computer memories. Database indexes are used to maintain the data value integrity of the database table data records as well as to aid in the rapid retrieval of specific data records from an indexed database table.
Database instantiation—The process of database instantiation is used to construct database objects, in one or more computer memories using a database management system that are available within a database through use of, for example, interactive device 2 and computer processor 4 shown in
Database table—A database table is a database object used to store sets of data values, in one or more computer memories. Each set of data values represents a horizontal row of the database table often referred to as a database table's data record. Each data value of these data records is represented as a labeled vertical column of the database table. Each data value, of a specific data record, may be addressed, in one or more computer memories by using the label of said vertical column.
Data entity—A data entity is a basic component of an entity-relationship diagram that can be displayed on the display device 6 of the apparatus 1 of
Data entity, supertype and subtype groups—A supertype and subtype group of data entities are a group of three or more closely related data entities from a single overall topic. In a supertype and subtype group of data entities, only one data entity of the group is the supertype data entity and the rest of the data entities of the group are the subtype data entities. The overall topic of the group of data entities is shared among them. For example, the overall topic for the supertype and for the subtype data entities could be employees. The supertype data entity would only contain data attributes that are common to all employees. The sub type data entities would be established for each subtype of employee such as hourly employees and salaried employees. The hourly employee subtype data entity contains data attributes that are specific only to hourly employees. The salary employee subtype data entity contains data attributes that are specific only to salaried employees. The supertype data entity has a single entity relationship to each of the subtype data entities where the super-type data entity is the parent data entity that contributes its primary key data attributes. Each of the subtype data entities are child data entities that inherit the primary key data attributes from the parent data entity as the foreign primary key data attributes of each subtype data entity.
Data entity relationship—A data entity relationship is a connector or link, which is stored in one or more computer memories, such as in computer memory 8, between one or two data entities in a data entity-relationship diagram. A data entity linking a data entity with itself is often referred to as a recursive data entity relationship. A data entity relationship provides a means of joining data attributes of one data entity with data attributes of another data entity. The data entity relationships are depicted graphically in entity-relationship diagrams as lines that begin attached to a first data entity and end with a filled circle on the dependent data entity. A data entity relationship causes the data modeling program to duplicate the primary key data attributes or to duplicate an alternate key data attribute from a first data entity into the data entity that is dependent on the first data entity. These duplicated key data attributes do not exist in the dependent data entity prior to adding the data entity relationship. The computer processor 4 may be programmed by data modeling computer software to permit a user via interactive device 2 to make relationships between data entities. The user, via interactive device 2, may select which of a first data entity's key data attributes will be duplicated by the data modeling computer software. These duplicated key data attributes are referred to as a foreign key data attributes in the dependent data entity. Upon database instantiation, a data entity relationship from the entity-relationship diagram is instantiated as a foreign key constraint, in one or more computer memories, such as computer memory 8.
Data model—A data model is a computer implemented repository of metadata, including entity-relationship diagrams, which may contain data model databases, data entities, common data entities, data attributes, common entity relationships, and data entity relationships that can be displayed on the display device 6 of the apparatus 1 of
Data model database—A data model database, for the purposes of this patent, is a data model object that is used to partition a data model into segments where each data model database segment of the data model may be database instantiated into a physical database within the database management system. Each data model database will contain data model objects such as data entities, common data entities, common entity relationships and data entity relationships. Only the common entity relationships may cross from one data model database to another.
Data modeling program—A data modeling program is a computer program, executing on a computer processor such as computer processor 4 in
Data record—A data record is a single row of data values in a database table stored in a computer memory, such as computer memory 8. Each data record will usually include a primary key value for uniquely identifying that data record. In addition, a data record may include alternate key values to provide alternative methods for finding unique data records in a computer memory, such as computer memory 8 in
Data value—A data value is an alphanumeric string stored in a specific location in a computer memory such as a named data field. For example, a data value may be stored in a data field of a data entry form in a computer memory or in a specific cell of a spreadsheet or in a specific data column of a specific data record of a database table in computer memory. The interpretation of the actual value of the alphanumeric string is dependent upon the data type of the data field. For example, if the data type of a data field is numeric, only valid numeric values will be accepted into the data field.
Entity-Relationship diagram—An entity-relationship diagram (ERD) is a graphical depiction of a database design that includes data entities, common data entities, common entity relationships, and data entity relationships that can be displayed on the display device 6 of the apparatus 1 of
Foreign key—A foreign key provides a link, via a data entity relationship between two data entities in an entity-relationship diagram that is stored in computer memory. The data attributes from the primary key or a selected alternate key of a first data entity are duplicated into a second data entity which is now dependent upon the first data entity. These duplicated data attributes are referred to as foreign key data attributes. This link or data entity relationship, when database instantiated, instantiates a foreign key constraint that enforces referential integrity between the two database tables that result from the first data entity and from the dependent second data entity. Foreign key data attributes, when database instantiated, become foreign key database columns.
Foreign key constraint—A foreign key constraint is declared in a database management system as a means of implementing and maintaining database referential integrity between two data sets each of which is most often contained within two different database tables. A foreign key constraint is normally designed in an entity-relationship diagram as a data entity relationship usually between two data entities. The first data entity, often referred to as the parent data entity, contributes one or more key data attributes to the second data entity, which is often referred to as the dependent data entity. In the parent data entity, a unique key, such as the primary key or an alternate key, has its data attributes copied into the dependent data entity's set of data attributes. These copied data attributes are referred to as the foreign key data attributes in the dependent data entity. When the entity-relationship diagram is instantiated into a database, the parent data entity becomes the parent database table, the dependent data entity becomes the dependent database table and the data entity relationship becomes the foreign key constraint. The foreign key data attributes, in the dependent data entity, are instantiated as foreign key database columns in the dependent database table. Foreign key constraints are stored in computer memory and are used by the database management system to enforce database referential integrity rules for creating, updating and deleting data records. Foreign key constraints are extremely important within a database because only data record sets with enforced referential integrity may be joined to form a consistent, combined set of data records. Each foreign key constraint in a database provides a bidirectional database access path between two database tables.
Primary key—A primary key is comprised of one or more data attributes within a data entity that are declared in a data model by data modeling software executing on computer processor 4 which is programmed to store the declared primary key in computer memory, such as computer memory 8 of
Referential integrity—Referential integrity is a process, often managed by the database management system, which is used to insure the consistency and integrity of data values stored within a computer memory as a database. Database referential integrity is related to joining data records stored in a database table to the data records stored in another database table such as two database table related by a foreign key constraint.
Referential integrity rules—Referential integrity rules are defined in a data model and associated with each data entity relationship. These referential integrity rules define restrictions associated with creating, updating, and deleting data records in related database tables such as related by foreign key constraints.
Repository of metadata—a repository of metadata is an area of computer memory used to store various metadata and information about data systems including data models, entity-relationship diagrams, and other such metadata.
Unique Key—A unique key is declared in an entity-relationship diagram on one or more data attributes of a data entity. This unique key is declared to indicate that, upon database instantiation, a unique index will be formed for the database table instantiated from the data entity.
Unique Index—A unique index is a database object used to constrain the set of data values for a database table stored in one or more computer memories using a database management system, wherein no duplicate data values are allowed in the unique index. For each unique index, the combination of indexed data values for each data record must form a unique index entry for that database table. Any attempts to form a duplicate combination of data values for any unique index will be rejected by the database management system, such as executed by the computer processor 4.
In accordance with at least one embodiment of the present invention, a method is provided, which can be called a “method of defining common data relationships” in computer memory, such as in computer memory 8. This method is utilized for configuring, designing, and/or implementing database tables and data models in one or more computer memories, such as computer memory 8 of
Data entity relationship 206, shown in
Beyond the database tables, foreign key constraints are another important type of database object that is database instantiated into any relational database. Foreign key constraint 306 of database 300, shown in
In any relational database, the foreign key constraints are very important. Foreign key constraints are used within a database management system to maintain both the database referential integrity of the data records and to provide bidirectional database access paths between database tables. It is important to note that prior art database referential integrity and prior art database access paths are only maintained within a single database by a database management system. Prior art data modeling programs do not allow for the declaration of data entity relationships between two data entities where each data entity is located in a different data model database. Prior art database management systems do not enforce database referential integrity between two or more databases and do not support database access paths between two or more databases.
Spreadsheet column 410 of spreadsheet 400 contains the database actions that may be programmed in computer memory, such as computer memory 8, and executed by computer processor 4 using a database management system, for a pair of database tables constrained by a foreign key constraint. Spreadsheet column 412 denotes the parent table of the foreign key constraint, such as database table 302 of
Row 416 of spreadsheet 400 represents the referential integrity rules for creating database data records, such as data record 314 in the parent database table 302, and creating database data records, such as data record 326 in the child database table 304 of database 300, where these database tables are associated with a database foreign key constraint, such as foreign key constraint 306 of database 300. As noted in spreadsheet 400, row 416 and column 412, a data record for the parent database table, such as data record 314 for the parent database table 302 shown in
Row 418 of spreadsheet 400 represents the referential integrity rules for updating the data records of the parent database table and for updating the data records of the child database table associated with a database foreign key constraint. As noted in spreadsheet 400, row 418 and column 412, a first set of data values of the unique index database table column of data records in the parent database table may not be updated if one or more data records from the child database table's foreign key columns contain the same data values as that first set of data values. Again, these referential integrity rules are normally enforced by the database management system computer program executing by computer processor 4 where the referential integrity rules and the data values are stored in one or more memories 8 of
Row 418 column 414 of spreadsheet 400 represents the referential integrity rule for updating the foreign key data value of the child database table's data records. For this referential integrity rule, the foreign key data values of the child database table may be updated, to any of the existing unique key data values of the parent database table. For example, the data value “USA” of foreign key child database table column 320 of data record 326 of database 300 is restricted to the unique index column data values by the computer processor 4, such as unique index column 310 of the parent database table 302. In this case, the data value “USA” of database table column 320 of database record 326 may be updated in computer memory 8 to a data value of “CAN” since that data value exists in the unique index column 310 of data record 316 of parent database table 302, in computer memory 8.
Row 420 of spreadsheet 400 represents the referential integrity rules, stored in computer memory 8 and implemented by computer processor 4, for deleting data records from related database tables constrained by a foreign key constraint. Row 420 column 412 is the referential integrity rule for deleting data records from the parent database table such as data record 314 of parent database table 302 from database 300. Data records from a parent database table, such as database table 302 of database 300, may not be deleted, as directed by the computer processor 4, as programmed by referential rules stored in computer memory 8, if data records from the child database table, such as database table 304, have the same foreign key column data values. For example, data record 314 from parent database table 302 with a unique index database table column 310 has a data value of “USA” and may not be deleted, as directed by the computer processor 4, as programmed by referential rules stored in computer memory 8, because, data record 326 of child database table 304, has the same foreign key database table column 320 data value of “USA”. If data record 314 of parent database table 302 were to be deleted, then, data record 326 of child database table 304 would become an “orphan” data record; that is a “parentless child” data record, in computer memory 8. Therefore, the database management system implemented by computer processor 4 in accordance with programming stored in computer memory 8 does not allow data record 314 to be deleted from database table 302 of database 300 because of foreign key constraint 306. However, data record 316 of parent database table 302 with unique index column 310 and a data value of “CAN” may be deleted, as directed by the computer processor 4, since none of the data values of foreign key column 320 of child database table 304 contain a data value of “CAN”.
Row 420 column 414 of spreadsheet 400 shown in
Common entity relationship set 538 is a composite of common data entity 502 that is related by common entity master relationship 532, common data entity 512 that is related by common entity relationship 534 and common data entity 522 that is related by common entity relationship 536. Common entity master relationship 532 is a common entity master relationship as indicated by the arrow head at the end of the common entity relationship line in the data architecture diagram 500 stored in computer memory 8. Each common entity relationship set, such as common entity master relationship set 538, may contain only one common entity master relationship, such as common entity relationship 532. This common entity master relationship indicates that data entity 502 is declared as the designed source of the single common set of master data records, where this declaration may be established by a computer user using an enhanced data modeling program and storing the data architecture diagram in one or more computer memories, such as computer memory 8. Not all common entity relationships, such as common entity relationship set 538, have a common master relationship. In some cases, the common set of master data records may be sourced from a data provider external to the organization. The common set of master data records may also be provided from an SQL (Structured Query Language—a special purpose computer programming language used in conjunction with a database management system) script executed by the computer processor 4, and stored in the computer memory 8, wherein this SQL script is a computer program used to populate common database tables from a common database table set using one or more database management systems. Therefore, the common entity relationship master is optional for a common entity relationship set. However, each common entity relationship set must have a single common set of master data values declared for the purposes of enforcing common index integrity rules within the common unique index set that results from the database instantiation of the common entity relationship set. The declaration of a common set of master data values for a specific common database table set would normally be established by a computer user using an enhanced data modeling program executing on computer processor 4 and stored in computer memory 8 of
Prior art data entity relationships in prior art data models do not address sources of data for their related data entities. Prior art data models do not address common sets of master data values. While common entity relationship sets support any number of related data entities, prior art data models do not allow for more than two data entities in a data entity relationship. While common entity relationships may relate data entities from multiple data model databases, prior art data entity relationships are only allowed within one database. In one or more embodiments of the current invention, data models need to support the declaration of multiple data model databases within each data model. In one or more embodiments of the current invention, data entities need to be assigned, in computer memory 8, to a specific declared database such as data entity 502 labeled Country 506 assigned to the Master Database 504.
A common entity relationship, stored in one or more computer memories, such as computer memory 8, is used in data models to denote a peer-to-peer type of relationship where each related common data entity contains a declared common unique key that is the same common unique key in each related common data entity, stored in one or more computer memories, such as computer memory 8. Common entity relationships are peer-to-peer type relationships wherein the common unique key data attributes exist prior to adding the common entity relationship. Also, peer-to-peer type relationships have common unique key data attributes that are neither donated nor inherited unlike data entity relationships where foreign key data attributes are donated by the parent data entity and inherited by the child data entity. Since the common entity relationships are peer-to-peer type relationships, the number of common data entities participating in the common entity relationship set is not limited.
Some entity-relationship diagrams may include supertype and subtype groups of closely related data entities. These supertype and subtype data entities are normally transformed into a cluster of related data entities linked by data entity relationships where these existing foreign key links and are not candidates for common entity relationships.
The three databases are database instantiated, in computer memory, such as computer memory 8, from data architecture diagram 500 where database 604 is derived from data model database 504 and database 624 is derived from data model database 514, and database 644 is derived from data model database 524. The three common database tables, 602, 622, and 642, are database instantiated, in computer memory, such as computer memory 8, into their respective databases as derived from common data entities 502, 512, and 522 of
Each of the three common database tables 602, 622, and 642 also contain a common unique index that is database instantiated, in computer memory 8 by the computer processor 4, as derived from common unique keys (CK) 508, 518, and 528, which are the declared primary keys (PK), as shown in
Common index master constraint set 668 shown in
A common unique index, such as common unique indexes 628 and 648 depicted in
Not every common entity relationship will have a common entity master relationship declared to support the common set of master data values. In some cases, the common set of master data values could be database instantiated in computer memory 8 by the computer processor 4 in accordance with computer programming or software stored in computer memory 8, into each common database table of a single set of common database tables using a computer program. In these cases, the common set of master data values would be a static set of data values. The computer program, implemented by the computer processor 4, to populate each common database table could be written using a SQL script of database table data record insert statements. Also, the common set of master data values may be provided from a third party. For example, a common database table of postal addresses may be verified against a master set of postal address data values provided as a service by a third party usually for a fee. However, it is important that a common set of master data values be available in computer memory 8, for each common database table set stored in computer memory 8, as a method to ensure common unique index integrity between the common database tables of the common database table set.
As determined from spreadsheet 702 and column 706, for database action “create” shown in spreadsheet row 710, the creation of common database table master data records is unrestricted. For example, any data records for common database table master 602 of
As determined from spreadsheet 702 and column 708, for the database action “create” shown in spreadsheet row 710, the creation of dependent common database table data records, in the computer memory 8, by the computer processor 4, in at least one embodiment in accordance with an embodiment of the present invention, are restricted to the data records of the common database table master data records, stored in computer memory 8. For example, data records 632, 634, and 636 of common database table 622 as well as data records 652, 654, 656, and 658 of common database table 642 must already exist in common database table master 602. Common database table 622 data records 632, 634, and 636 are individually restricted by the computer processor 4 by data records 612, 614, and 620 of common database table master 602 respectively. Common database table 642 data records 652, 654, 656, and 658 are individually restricted by the computer processor 4 by data records 612, 614, 618, and 616 of common database table master 602 respectively.
As determined from spreadsheet 702 and column 706, for database action “update” shown in spreadsheet row 712, updating the common database table master data record's common unique index data values are restricted by the computer processor 4, implementing software stored in the computer memory 8 in accordance with an embodiment of the present invention. Any common database master data record that has its common unique index data values referenced by one or more dependent data records from any dependent common database table of that common database table set, may not have its common unique index data values updated, by the computer processor 4, implementing computer software stored in the computer memory 8 in accordance with an embodiment of the present invention. For example, any data records for common database table master 602 of
As determined from spreadsheet 702 and column 708, for database action “update” shown in spreadsheet row 712, updating the common unique index data values of any dependent common database table is restricted, by computer software implemented by the computer processor 4, and stored in the computer memory 8, in accordance with one or more embodiments of the present invention. The common unique index data values of a dependent common database table must always be equal to a common unique index data value from the common database table master, in accordance with at least one embodiment of the present invention and as implemented by computer software implemented by computer processor 4 and stored in the computer memory 8. For example, one would be restricted to update the dependent common unique index data value “USA” to “US” for database table column 628 of data record 632 in dependent common database table 622. Since, the data value “US” does not exist as a data value in the common unique index column 608 of common database table master 602, the database management system or some other executing computer software program stored in computer memory 8 and implemented by computer processor 4 rejects the proposed data value update.
As determined from spreadsheet 702 and column 706, for database action “delete” shown in spreadsheet row 714, deletion of a common database table master's data record is restricted, by the computer processor 4 implementing computer software stored in computer memory 8, in accordance with one or more embodiments of the present invention, if the data record is referenced by a data record in any of the dependent common database tables, stored in the computer memory 8. For example, the computer processor 4, as programmed by computer software stored in the computer memory 8 will not allow the data value of “USA” of data record 612 of the common database table master 602 of
As determined from spreadsheet 702 and column 708, for database action “delete” shown in spreadsheet row 714, deletion of dependent common database table data records is unrestricted, as directed by the computer processor 4, in accordance with computer software stored in the computer memory 8, in accordance with one or more embodiments of the present invention, by data records of common database table master of that common database table set. For example, any data records for common database table 622 of
In analysis of the common index integrity rules, stored in the computer memory 8, and detailed in spreadsheet 702, it becomes apparent that each of the dependent common database tables, such as common database tables 622 and 642 of
Another method to insure that common index integrity rules are not violated is to develop a data load script or data load program for a common database table set. The data load program is used to insert the entire common set of master data values into each of the common database tables for that common database table set. A computer processor may be programmed by computer software stored in computer memory, to ensure that once the common set of master data values is loaded into each common database table, data records may not be created, may not be updated, or may not be deleted from any of the common database tables for the common database table set unless a data record modification script or a data record modification computer program is applied to all the common database tables for that common database table set.
Spreadsheet 802 of
Common database tables in a common database table set are peer database tables in that their database actions are independent within that common database table set. In at least one embodiment, there are no common index integrity restrictions between common database tables of the same common database table set. The only common index integrity requirement is that every common database table from a single common database table set is each populated from a common set of master data values. It is only the single common database table master that may be declared for each common database table set that restricts the database actions of the dependent common database tables to enforce common index integrity within a common unique index set.
Flow chart 900 of
Flow chart 900 depicts a process of defining common data entities, such as common data entities 502, 512, and 522, along with the declaration of common unique keys such as common unique keys 508, 518, and 528 as shown in data architecture diagram 500 shown in
Flow chart 900 begins at terminal 902. From terminal 902, the computer processor 4, executing computer software stored in computer memory 8, initiates process flow 904 which initiates flow chart process 906. Flow chart process 906 represents the process of selecting or creating a data entity within a data model, such as data entity 202 of ERD 200 from
Once the data entity has been selected or created by the computer processor 4, process flow 908 is followed by the computer processor 4 to flow chart decision 910. Flow chart decision 910 is used by the computer processor 4 to determine whether a unique key, such as primary key 208 of data entity 202, has been established as the basis for a common entity relationship set such as common entity relationship set 538 of
When process flow 912 is followed by the computer processor 4 from flow chart decision 910, flow chart process 916 is executed. First, the selected unique key of the selected or created data entity, such as data entity 202 of
When process flow 914 is followed by the computer processor 4 from flow chart decision 910, flow chart process 920 is executed by the computer processor 4 to establish and store in computer memory 8, the selected unique key from the selected data entity as a common unique key of the now common data entity. First, in the appropriate data model, such as data model 200 shown in
In flow chart process 922, a common set of master data values for the newly formed common entity relationship set is defined by a computer user using a data modeling program executing on computer processor 4, in the computer memory 8. A common set of master data values may come from several sources including from a designated common database table in computer memory 8, from a third-party reference data provider in one or more computer memories, such as computer memory 8, or from a computer program script, implemented by computer processor 4, that is used to populate in computer memory 8, all of the common database tables with data values from a single common database table set in computer memory 8. In any event, the common set of master data values must be defined and associated to the newly formed common entity relationship set and stored in data storage area 944, in computer memory 8, by the computer processor 4 in accordance with at least one embodiment of the present invention. If the source of the common set of master data values is a designated common database table, that common database table's representative common data entity may be updated by the computer processor 4, in its data model by adding a common entity relationship master, such as common entity relationship master 532 of data architecture diagram 500 shown in
Flow chart decision 928 is used by the computer processor 4 to determine if the data modeling portion of the process flow has been completed. If more data entities need to be converted to common data entities, process flow 930 is followed by the computer processor 4 to return to flow chart process 906. If the data modeling portion of the process flow has been completed, that is, there are no more data entities to be converted into common data entities, process flow 932 is followed by the computer processor 4 to flow chart process 934.
During flow chart process 934, the computer processor 4 reads the data models from data storage area 942 of the computer memory 8 that have been changed since the last database instantiation of their associated physical databases in computer memory 8 into their respective database management systems in computer memory 8. The new and the updated data model objects in these data models in computer memory 8, are used by the computer processor 4 to generate data definition language scripts (programs) that are then submitted to the database management system executing on computer processor 4 or the new and the updated data model objects are database instantiated directly by the computer processor 4 into their respective databases of computer memory 8 using the database management systems implemented by computer processor 4. Once all of the new and the updated data model objects have been database instantiated by computer processor 4 into data storage area 948 of computer memory 8, flow chart process flow 936 is followed by computer processor 4 to flow chart process 938.
The computer processor 4 uses flow chart process 938 to populate common database tables in computer memory 8 with the common set of master data values needed to support the common unique index integrity of the common unique indexes, such as common unique index 628 shown in
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
5369761, | Mar 30 1990 | Computer Associates Think, Inc | Automatic and transparent denormalization support, wherein denormalization is achieved through appending of fields to base relations of a normalized database |
5907846, | Jun 07 1996 | Hewlett Packard Enterprise Development LP | Method and system for accessing relational databases using objects |
6212530, | May 12 1998 | Hewlett Packard Enterprise Development LP | Method and apparatus based on relational database design techniques supporting modeling, analysis and automatic hypertext generation for structured document collections |
6438591, | Sep 13 1988 | COMPAQ INFORMATION TECHNOLOGIES GROUP, L P | Entity management system |
6453325, | May 24 1995 | International Business Machines Corporation | Method and means for backup and restoration of a database system linked to a system for filing data |
6460043, | Feb 04 1998 | Microsoft Technology Licensing, LLC | Method and apparatus for operating on data with a conceptual data manipulation language |
6529921, | Jun 29 1999 | Microsoft Technology Licensing, LLC | Dynamic synchronization of tables |
6836777, | Nov 15 2001 | WHOWHATWARE, LLC | System and method for constructing generic analytical database applications |
6847979, | Feb 25 2000 | POPPET INTERNATIONAL, INC | Conceptual factoring and unification of graphs representing semantic models |
7024414, | Aug 06 2001 | IGNITE ANALYTICS, INC | Storage of row-column data |
7024417, | Nov 14 2002 | Oracle International Corporation | Data mining framework using a signature associated with an algorithm |
7546226, | Mar 12 2003 | ServiceNow, Inc | Architecture for automating analytical view of business applications |
7603378, | Dec 27 2004 | SAP SE | System and method for common object/relational mapping |
7617136, | Jul 15 2003 | TERADATA US, INC | System and method for capturing, storing and analyzing revenue management information for the travel and transportation industries |
7676493, | Sep 07 2005 | Microsoft Technology Licensing, LLC | Incremental approach to an object-relational solution |
20020103793, | |||
20030149934, | |||
20040181440, | |||
20050004902, | |||
20050160091, | |||
20050240621, | |||
20060173873, | |||
20060179055, | |||
20070255730, | |||
20070266041, | |||
20110178974, | |||
20110231449, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Date | Maintenance Fee Events |
Apr 04 2022 | M2552: Payment of Maintenance Fee, 8th Yr, Small Entity. |
Date | Maintenance Schedule |
Nov 17 2023 | 4 years fee payment window open |
May 17 2024 | 6 months grace period start (w surcharge) |
Nov 17 2024 | patent expiry (for year 4) |
Nov 17 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 17 2027 | 8 years fee payment window open |
May 17 2028 | 6 months grace period start (w surcharge) |
Nov 17 2028 | patent expiry (for year 8) |
Nov 17 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 17 2031 | 12 years fee payment window open |
May 17 2032 | 6 months grace period start (w surcharge) |
Nov 17 2032 | patent expiry (for year 12) |
Nov 17 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |