Dictionary-Based Referential Relationships
In addition to discovering sensitive data by sensitive types, Data Discovery automatically searches the Oracle data dictionary to find relationships between primary key columns and foreign key columns. It then flags those related columns as sensitive.
For example, suppose that you have two tables. The first is called
CUSTOMERS, and it stores information like the customer’s first name, last name, and start date. The second table is called
LOCATIONS, and it stores information about all of your sales locations. The
LOCATION_ID in the
CUSTOMERS table is configured as a foreign key and references the primary key, which is
LOCATION_ID in the
LOCATIONS table. Data Discovery automatically finds this type of referential relationship. In this example, if there is a sensitive type for location,
LOCATION_ID in both tables would be captured as sensitive.
Non-Dictionary Referential Relationships
In Data Discovery, you can also choose to discover non-dictionary referential relationships to find sensitive columns. Non-dictionary referential relationships are relationships between database columns that are defined in applications, but not in the Oracle data dictionary. Data Discovery uses column name patterns and column data patterns from your selected sensitive types to discover potential relationships between columns.
For example, suppose that a parent table is called
CUSTOMER and a related table is called
PAYMENT_METHOD. The sensitive column is
CUST_NAME in the parent table and
CUST_NM in the related table. If the related table was created without showing a link in the data dictionary to the parent table (that is, no foreign key information was entered into the data dictionary), the relationship between the parent and related table is a “non-dictionary referential relationship.”