{"id":464,"date":"2023-11-23T01:32:08","date_gmt":"2023-11-23T01:32:08","guid":{"rendered":"https:\/\/ww2.topquadrant.com\/deriving-foreign-keys-with-topbraid-edg\/"},"modified":"2024-03-29T01:50:31","modified_gmt":"2024-03-29T01:50:31","slug":"deriving-foreign-keys-with-topbraid-edg","status":"publish","type":"epkb_post_type_1","link":"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg","title":{"rendered":"Deriving Foreign Keys with TopBraid EDG"},"content":{"rendered":"\r\n\t\t<div id=\"eckb-article-page-container-v2\" class=\"eckb-article-page-content-counter eckb_ap_active_theme_hello-elementor \" data-mobile_breakpoint=\"768\">    <div id=\"eckb-article-header\">\r\n\t\t<div id=\"epkb-ml__module-search\" class=\"epkb-ml__module\">   \r\n\t\t<!-- Classic Search Layout -->\r\n\t\t<div id=\"epkb-ml-search-classic-layout\">    \t\t<div class=\"epkb-ml-search-title\">Resource Hub<\/div>   \t\t\t<form id=\"epkb-ml-search-form\" method=\"get\" action=\"\/\">\r\n\t\t\t\t<input type=\"hidden\" id=\"epkb_kb_id\" value=\"1\" >\r\n\r\n\t\t\t\t<!-- Search Input Box -->\r\n\t\t\t\t<div id=\"epkb-ml-search-box\">\r\n\t\t\t\t\t<input class=\"epkb-ml-search-box__input\" type=\"text\" name=\"s\" value=\"\" aria-label=\"Search our resources...\" placeholder=\"Search our resources...\" aria-controls=\"epkb-ml-search-results\" >\r\n\t\t\t\t\t<button class=\"epkb-ml-search-box__btn\" type=\"submit\">\r\n                        <span class=\"epkb-ml-search-box__text\"> Search<\/span>\r\n                        <span class=\"epkbfa epkbfa-spinner epkbfa-ml-loading-icon\"><\/span>\r\n                    <\/button>\r\n\t\t\t\t<\/div>\r\n\r\n\t\t\t\t<!-- Search Results -->\r\n\t\t\t\t<div id=\"epkb-ml-search-results\" aria-live=\"polite\"><\/div>\r\n\t\t\t<\/form>\r\n\t\t<\/div>  \r\n\t\t<\/div>  <\/div>\r\n\t\t\t<div id=\"eckb-article-body\">  <div id=\"eckb-article-left-sidebar\">\r\n\t\t\t<div class=\"eckb-article-toc  eckb-article-toc--bmode-between eckb-article-toc-reset \"\t\t\t\t\r\n\t\t\t\tdata-offset=\"130\"\r\n\t\t\t\tdata-min=\"2\"\r\n\t\t\t\tdata-max=\"6\"\r\n\t\t\t\tdata-speed=\"300\"\r\n\t\t\t\tdata-exclude_class=\"\"\r\n\t\t\t\t><div class=\"eckb-article-toc__title\">Table of Contents<\/div><\/div>\r\n\t\t\t<\/div>\r\n\t\t        <article id=\"eckb-article-content\" data-article-id=\"464\" >                        <div id=\"eckb-article-content-header-v2\"><div id=\"eckb-article-content-header-row-1\"><div class=\"eckb-article-content-header-row-left-group\"><div id=\"eckb-article-back-navigation-container\"><div class=\"eckb-navigation-back  \"  style=\"margin-top: 4px; margin-right: 15px; margin-bottom: 4px; margin-left: 4px;\" ><div tabindex=\"0\" class=\"eckb-navigation-button\"  style=\"padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; color: #1e73be; background-color: #ffffff; font-size:14px;border-radius: 3px; border-style: solid; border-width: 1px; border-color: #b5b5b5;\"  onclick=\"history.go(-1);\" >&lt; All Topics<\/div><\/div><\/div><div id=\"eckb-article-content-breadcrumb-container\">\r\n<div class=\"eckb-breadcrumb\"  style=\"padding-top: 0px; padding-right: 4px; padding-bottom: 0px; padding-left: 4px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-size:14px;\" >\t\t<nav class=\"eckb-breadcrumb-outline\" aria-label=\"Breadcrumb\">\r\n\t\t<ul class=\"eckb-breadcrumb-nav\">       <li  style=\"font-size:14px;\" >\t<span class=\"eckb-breadcrumb-link\"><a tabindex=\"0\" href=\"https:\/\/mandalay.topquadrant.com\/?page_id=1484\"><span  style=\"color: #1e73be;\"  >Main<\/span><\/a><span class=\"eckb-breadcrumb-link-icon ep_font_icon_arrow_carrot_right\" aria-hidden=\"true\"><\/span>\t<\/span><\/li><li  style=\"font-size:14px;\" >\t<span class=\"eckb-breadcrumb-link\"><a tabindex=\"0\" href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=data-governance\"><span  style=\"color: #1e73be;\"  >Data Governance<\/span><\/a><span class=\"eckb-breadcrumb-link-icon ep_font_icon_arrow_carrot_right\" aria-hidden=\"true\"><\/span>\t<\/span><\/li><li  style=\"font-size:14px;\" >\t<span class=\"eckb-breadcrumb-link\"><span aria-current=\"page\" style=\"color: #1e73be;\"  >Deriving Foreign Keys with TopBraid EDG<\/span>\t<\/span><\/li>\t\t<\/ul>\r\n\t<\/nav>\r\n\r\n<\/div>          <\/div><\/div><div class=\"eckb-article-content-header-row-right-group\"><div id=\"eckb-article-content-toolbar-container\">\r\n\t\t<div class=\"eckb-article-content-toolbar-button-container\">\r\n\t\t\t<span class=\"eckb-print-button-container\">\t\t\t<span class=\"eckb-toolbar-button-text\">Print<\/span><span class=\"eckb-toolbar-button-icon epkbfa epkbfa-print\"><\/span>\t\t\t<\/span>\r\n\t\t<\/div> <\/div><\/div><\/div><div id=\"eckb-article-content-header-row-2\"><div class=\"eckb-article-content-header-row-left-group\"><div id=\"eckb-article-content-title-container\"><h1 class=\"eckb-article-title\">Deriving Foreign Keys with TopBraid EDG<\/h1><\/div><\/div><\/div><\/div><div id=\"eckb-article-content-body\"><p id=\"\">In this blog, we will explore approaches for post-processing a data source information to derive the foreign key relationships that are not readily available in a database schema.<\/p>\n<p id=\"\">Some organizations may not use FOREIGN keys in their SQL databases due to performance limitations and\/or the fact that they may have databases which prevent \u00a0effective use of the foreign key constraints. If this information is not captured in a database schema (i.e., system tables), TopBraid EDG will not be able to get it during the cataloging of a data source. Yet, it is often possible to post-process data source information to identify foreign keys with a high degree of certainty. Let\u2019s discuss how.<\/p>\n<h5 id=\"\">Capturing Foreign Key Information in EDG<\/h5>\n<p id=\"\">First, let\u2019s take a look at how foreign keys are stored in EDG. The diagram below shows a Foreign Key class.<\/p>\n<figure class=\"w-richtext-figure-type-image w-richtext-align-center\" data-rt-type=\"image\" data-rt-align=\"center\">\n<div><img decoding=\"async\" src=\"https:\/\/ww2.topquadrant.com\/wp-content\/uploads\/2023\/11\/632a5438c52cbd3fbd4d14d2_Foreign_keys_Model-1024x490.png\" \/><\/div>\n<\/figure>\n<p id=\"\">As you can see from the diagram, instances of a Foreign Key class are connected to a column that is a foreign key using the \u201cchild column\u201d relationship. Its QName is edg:childColumn. If a column is a foreign key, the value of its edg:isForeignKey property should be true. Similarly, a Foreign Key resource is connected to a primary key column using the \u201cparent column\u201d relationship. Its QName is edg:parentColumn. If a column is a primary key, the value of its edg:isPrimaryKey property should be true.<\/p>\n<p id=\"\">For example, the following snippet in Turtle captures the fact that a CUSTOMERID column in the ORDERS table of NORTHWIND database is a foreign key corresponding to the CUSTOMERID column in the CUSTOMERS table.<\/p>\n<blockquote id=\"\"><p><strong id=\"\">&lt;urn:x-evn-master:northwind\/ORDERSCUSTOMER&gt;<br \/>\na edg:ForeignKey ;<br \/>\nedg:childColumn &lt;urn:x-evn-master:northwind\/COL_NORTHWIND.DBO%2EORDERS.CUSTOMERID&gt; ;<br \/>\nedg:parentColumn &lt;urn:x-evn-master:northwind\/COL_NORTHWIND.DBO%2ECUSTOMERS.CUSTOMERID&gt; ;<br \/>\nrdfs:label \u201cORDERS_CUSTOMER\u201d ;<br \/>\n.<\/strong><\/p><\/blockquote>\n<p id=\"\">While the diagram shows the \u201cforeign key\u201d relationship from a Database Table to a Foreign Key, it does not need to be stored. It can be derived by following the inverse of the \u201cchild column\u201d\/\u201dcolumn of\u201d path.<\/p>\n<p id=\"\">You may note that the \u201cchild column\u201d, \u201cparent column\u201d and \u201cis primary key\u201d properties are reifiable by the Key Mapping. This is used only for composite keys. Key Mapping has a single property \u2013 \u201ckey order\u201d, defined as follows:<\/p>\n<blockquote id=\"\"><p><strong id=\"\">edg:KeyMapping-keyOrder<br \/>\na sh:PropertyShape ;<br \/>\nsh:path edg:keyOrder ;<br \/>\nrdfs:isDefinedBy &lt;<\/strong><a id=\"\" href=\"http:\/\/edg.topbraid.solutions\/1.0\/schema\/datamodels\" target=\"_blank\" rel=\"noopener\"><strong id=\"\">http:\/\/edg.topbraid.solutions\/1.0\/schema\/datamodels<\/strong><\/a><strong id=\"\">&gt; ;<br \/>\nsh:datatype xsd:integer ;<br \/>\nsh:maxCount 1;<br \/>\nsh:description \u201cThe order expresses the position of the column in the key.\u201d ;<br \/>\nsh:name \u201ckey order\u201d ;<br \/>\nsh:order \u201c10\u201d^^xsd:decimal ;<br \/>\n.<\/strong><\/p><\/blockquote>\n<p id=\"\">If a primary key (and corresponding foreign keys) is composed of multiple columns, then for each participating column there will be edg:keyOrder annotation to specify the order of a column in a key. This is accomplished using RDF* style reification. For more information, see <a id=\"\" href=\"https:\/\/doc.topquadrant.com\/6.4\/ontologies\/#Enabling_Reification_of_Property_Values\">this page<\/a> in the User Guide.<\/p>\n<p id=\"\">Now that we have described how to store foreign key information, let\u2019s discuss how to identify foreign keys.<\/p>\n<h5 id=\"\">Using Column Names to Identify Foreign Keys<\/h5>\n<p id=\"\">Often, foreign keys can be identified by examining column names. For example, as described above, CUSTOMERS table may have CUSTOMERID column as its primary key. ORDERS table may also have CUSTOMERID table and we know that it is not a primary key. In this situation, we can make a guess that the CUSOMERID column in the ORDERS table is actually a foreign key.<\/p>\n<p id=\"\">A query shown below looks for all columns that are primary keys and identifies columns in a different table that have exactly the same name and are not marked as a primary key. The query only looks for non-composite primary keys i.e., only one column is used to specify the primary key. This is accomplished using the first FILTER NOT EXISTS clause of the query.<\/p>\n<figure class=\"w-richtext-figure-type-image w-richtext-align-center\" data-rt-type=\"image\" data-rt-align=\"center\">\n<div><img decoding=\"async\" src=\"https:\/\/ww2.topquadrant.com\/wp-content\/uploads\/2023\/11\/632a5474e4ce4361cefd103e_Foreign_Keys_Query1-1024x605.png\" \/><\/div>\n<\/figure>\n<p id=\"\">Running this query on Northwind, identifies three tables that are likely to have foreign keys: ORDERS, PRODUCTS and TERRITORIES. For two of these tables we have identified two foreign keys. For ORDERS this is EMPLOYEEID as a foreign key to EMPLOYEES table and CUSTOMERID as a foreign key to the CUSTOMERS table. For PRODUCTS this is SUPPLIERID as a foreign key to the SUPPLIERS table and CATEGORYID as a foreign key to the CATEGORIES table.<\/p>\n<p id=\"\">We can now run a query to create instances of the Foreign Key class. To address the compound primary key situation we can define a slightly different query, but the idea is the same.<\/p>\n<p id=\"\">We could also further increase probability that our foreign key guesses are correct by using information gathered in data profiling. One of the statistics captured by EDG for each column is a number of unique data values. The number of unique data values in a foreign key column should be less or equal to the number of the unique data values in a primary key column. We could also look at the physical datatypes of each column to ensure that they are compatible.<\/p>\n<h5 id=\"\"><strong id=\"\">Using Data to Identify Foreign Keys<\/strong><\/h5>\n<p id=\"\">What if your column names are inconsistent? For example, CUSTOMERS tables may use CUSTOMERID column, but ORDERS table may use CUSTID as a column that stores IDs of customers who placed orders.<\/p>\n<p id=\"\">In such cases, the query shown above would not work as it relies on the consistent naming of columns. If your database does not use consistent column names, you may try using Problems and Suggestions algorithm that recommends <a id=\"\" href=\"https:\/\/stage.topquadrant.com\/resources\/mapping-data-elements-to-business-terms\/\">mapping of data elements to glossary terms<\/a>.<\/p>\n<p id=\"\">This algorithm relies on the data value rules that are specified for glossary terms. These rules are SHACL shapes that describe a shape of values matching a term. For example, a customer ID may follow a certain pattern e.g., be 11 characters long, have either AB or CD as the first two character, a dash as the third and have numbers in the 4th through 11th characters. With this, you can create a Customer Identifier glossary term in a Glossary and define such data value rule for it. If you include this Glossary in a Data Asset collection, Problems and Suggestions will look through the data samples and data statistics captured in a Data Asset collection and will identify data elements known to contain data matching a specified shape. If one of the data elements is known to be a primary key of a table, then other suggested data elements could be foreign keys provided they belong to different tables.<\/p>\n<p id=\"\">Yet another options is to use a glossary term to store commonly used alternative column names and abbreviations for the Customer Identifier term such as CUSTOMERID, CUSTID, C_ID and so on. You can build the list of names over time as you add more cataloged data sources.<\/p>\n<h5 id=\"\">When to Run Post-Processing to Derive Foreign Keys<\/h5>\n<p id=\"\">When you first catalog a new data source, you will probably do it using EDG UI by clicking on the Import Tab and then selecting Import Using JDBC.<\/p>\n<p id=\"\">Once import completes, you can try the alternatives described here to see which one gives you the best result. This will depend on your specific database and the naming conventions it uses.<\/p>\n<p id=\"\">After your initial ingest, \u00a0you will probably be running data cataloging on schedule to capture any changes in the cataloged sources. If so, you will be using workflows to store and review changes. In this case, it would make sense to define a workflow that would run the appropriate foreign key identification logic right after the cataloging and data profiling\/data sampling.<\/p>\n<p><strong>\u200d<\/strong><\/p>\n<\/div><div id=\"eckb-article-content-footer\"><\/div>\r\n\t\t        <\/article><!-- \/#eckb-article-content -->     <div id=\"eckb-article-right-sidebar\">\r\n\t\t<style>\r\n\t\t\t.eckb-acll__title {\r\n\t\t\t\tcolor:#666666;\r\n\t\t\t}\r\n\t\t\t.eckb-article-cat-layout-list {\r\n\t\t\t\tbackground-color:#fcfcfc;\r\n\t\t\t\tfont-size: 14px !important;\t\t\t}\r\n\t\t\t.eckb-article-cat-layout-list a {\r\n\t\t\t\tfont-size: 14px !important;\t\t\t}\r\n\t\t\tbody .eckb-acll__cat-item__name {\r\n\t\t\t\tcolor:#2b98e5;\r\n\t\t\t\tfont-size: 14px !important;\t\t\t}\r\n\t\t\t.eckb-acll__cat-item__count {\r\n\t\t\t\tcolor:#000000;\r\n\t\t\t\tbackground-color:#FFFFFF;\r\n\t\t\t\tborder:solid 1px #CCCCCC!important;\r\n\t\t\t}\r\n\t\t<\/style>    \r\n\t\t<div class=\"eckb-article-cat-layout-list eckb-article-cat-layout-list-reset\">\r\n\t\t\t<div class=\"eckb-article-cat-layout-list__inner\">\r\n\t\t\t\t<div class=\"eckb-acll__title\">Categories<\/div>\r\n\t\t\t\t<ul>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=tq-data-foundation\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tTQ Data Foundation\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t8\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item eckb--acll__cat-item--active\">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=data-governance\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tData Governance\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t69\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=vocabulary-management\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tVocabulary Management\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t9\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=knowledge-graphs\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tKnowledge Graphs\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t44\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=ontologies\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tOntologies\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t15\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=data-fabric\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tData Fabric\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t8\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=metadata-management\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tMetadata Management\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t21\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=business-glossaries\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tBusiness Glossaries\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t6\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=semantic-layer\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tSemantic Layer\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t12\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=reference-data-management\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tReference Data Management\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t10\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=uncategorized\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tUncategorized\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t2\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=data-catalogs\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tData Catalogs\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t16\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=datasets\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tDatasets\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t11\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=taxonomies\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tTaxonomies\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t4\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=news\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tNews\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t5\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=policy-and-compliance\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tPolicy and Compliance\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t6\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=life-sciences\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tLife Sciences\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t6\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=automated-operations\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tAutomated Operations\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t6\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=financial-services\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tFinancial Services\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t10\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=ai-readiness\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tAI Readiness\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t30\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t\t\t<li class=\"eckb--acll__cat-item \">\r\n\t\t\t\t\t\t\t<a href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1_category=podcasts\">\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__name\">\r\n\t\t\t\t\t\t\t\t\t\tPodcasts\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t\t<div>\r\n\t\t\t\t\t\t\t\t\t<span class=\"eckb-acll__cat-item__count\">\r\n\t\t\t\t\t\t\t\t\t\t1\t\t\t\t\t\t\t\t\t<\/span>\r\n\t\t\t\t\t\t\t\t<\/div>\r\n\t\t\t\t\t\t\t<\/a>\r\n\t\t\t\t\t\t<\/li>\t\t\t\t\t\t\r\n\t\t\t\t<\/ul>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\t\t\t<\/div>\r\n\t\t\t<\/div><!-- \/#eckb-article-body -->              <div id=\"eckb-article-footer\"><\/div>\r\n\t\t<\/div><!-- \/#eckb-article-page-container-v2 -->\r\n\r\n\t\t<style id=\"eckb-article-styles\" type=\"text\/css\"> #eckb-article-body .eckb-article-toc ul a.active{background-color:#1e73be;color:#ffffff;}#eckb-article-body .eckb-article-toc ul a:hover{background-color:#e1ecf7;color:#000000;}#eckb-article-body .eckb-article-toc__inner{border-color:#2b98e5;font-size:14px !important;background-color:#fcfcfc;}#eckb-article-body .eckb-article-toc__inner a{color:#2b98e5;font-size:14px !important;}#eckb-article-body .eckb-article-toc__title{color:#2b98e5;font-size:15px !important;}@media only screen and (min-width:768px){#eckb-article-page-container-v2 #eckb-article-body #eckb-article-content #eckb-article-content-header-v2 #eckb-article-content-header-row-1,#eckb-article-page-container-v2 #eckb-article-body #eckb-article-content #eckb-article-content-header-v2 #eckb-article-content-header-row-2,#eckb-article-page-container-v2 #eckb-article-body #eckb-article-content #eckb-article-content-header-v2 #eckb-article-content-header-row-3,#eckb-article-page-container-v2 #eckb-article-body #eckb-article-content #eckb-article-content-header-v2 #eckb-article-content-header-row-4,#eckb-article-page-container-v2 #eckb-article-body #eckb-article-content #eckb-article-content-header-v2 #eckb-article-content-header-row-5{flex-direction:row;}}#eckb-article-content-header-row-1{margin-bottom:8px;}#eckb-article-content-header-row-1 .eckb-article-content-header-row-left-group,#eckb-article-content-header-row-1 .eckb-article-content-header-row-right-group{align-items:center;}.eckb-article-content-toolbar-button-container{background-color:#ffffff;padding:10px 10px 10px 10px;margin:0px 0px 0px 0px;border-radius:0px;border-width:0px;border-color:#ffffff;border-style:solid;}.eckb-article-content-toolbar-button-container .eckb-toolbar-button-text{color:#000000;font-size:15px;}.eckb-article-content-toolbar-button-container .eckb-toolbar-button-icon{color:#000000;font-size:20px;}.eckb-article-content-toolbar-button-container:hover{background-color:#ffffff;}.eckb-article-content-toolbar-button-container:hover .eckb-toolbar-button-text{color:#000000;}.eckb-article-content-toolbar-button-container:hover .eckb-toolbar-button-icon{color:#000000;}#eckb-article-content-header-row-2{margin-bottom:0px;}#eckb-article-content-header-row-2 .eckb-article-content-header-row-left-group,#eckb-article-content-header-row-2 .eckb-article-content-header-row-right-group{align-items:flex-end;}<\/style>   ","protected":false},"excerpt":{"rendered":"<p>In this blog, we explore approaches for post-processing a data source information to derive the foreign key relationships.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","template":"","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"epkb_post_type_1_category":[88],"epkb_post_type_1_tag":[],"class_list":["post-464","epkb_post_type_1","type-epkb_post_type_1","status-publish","hentry","epkb_post_type_1_category-data-governance"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Deriving Foreign Keys with TopBraid EDG | TopQuadrant<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deriving Foreign Keys with TopBraid EDG | TopQuadrant\" \/>\n<meta property=\"og:description\" content=\"In this blog, we explore approaches for post-processing a data source information to derive the foreign key relationships.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg\" \/>\n<meta property=\"og:site_name\" content=\"TopQuadrant\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-29T01:50:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ww2.topquadrant.com\/wp-content\/uploads\/2023\/11\/632a5438c52cbd3fbd4d14d2_Foreign_keys_Model-1024x490.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg\",\"url\":\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg\",\"name\":\"Deriving Foreign Keys with TopBraid EDG | TopQuadrant\",\"isPartOf\":{\"@id\":\"https:\/\/stage.topquadrant.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg#primaryimage\"},\"image\":{\"@id\":\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ww2.topquadrant.com\/wp-content\/uploads\/2023\/11\/632a5438c52cbd3fbd4d14d2_Foreign_keys_Model-1024x490.png\",\"datePublished\":\"2023-11-23T01:32:08+00:00\",\"dateModified\":\"2024-03-29T01:50:31+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg#primaryimage\",\"url\":\"https:\/\/ww2.topquadrant.com\/wp-content\/uploads\/2023\/11\/632a5438c52cbd3fbd4d14d2_Foreign_keys_Model-1024x490.png\",\"contentUrl\":\"https:\/\/ww2.topquadrant.com\/wp-content\/uploads\/2023\/11\/632a5438c52cbd3fbd4d14d2_Foreign_keys_Model-1024x490.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/mandalay.topquadrant.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Resource Hub\",\"item\":\"https:\/\/mandalay.topquadrant.com\/?post_type=epkb_post_type_1\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Deriving Foreign Keys with TopBraid EDG\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/stage.topquadrant.com\/#website\",\"url\":\"https:\/\/stage.topquadrant.com\/\",\"name\":\"TopQuadrant\",\"description\":\"Making Sense of Your Data\",\"publisher\":{\"@id\":\"https:\/\/stage.topquadrant.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/stage.topquadrant.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/stage.topquadrant.com\/#organization\",\"name\":\"TopQuadrant\",\"url\":\"https:\/\/stage.topquadrant.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/stage.topquadrant.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/mandalay.topquadrant.com\/wp-content\/uploads\/2024\/01\/logo.svg\",\"contentUrl\":\"https:\/\/mandalay.topquadrant.com\/wp-content\/uploads\/2024\/01\/logo.svg\",\"width\":430,\"height\":101,\"caption\":\"TopQuadrant\"},\"image\":{\"@id\":\"https:\/\/stage.topquadrant.com\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deriving Foreign Keys with TopBraid EDG | TopQuadrant","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg","og_locale":"en_US","og_type":"article","og_title":"Deriving Foreign Keys with TopBraid EDG | TopQuadrant","og_description":"In this blog, we explore approaches for post-processing a data source information to derive the foreign key relationships.","og_url":"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg","og_site_name":"TopQuadrant","article_modified_time":"2024-03-29T01:50:31+00:00","og_image":[{"url":"https:\/\/ww2.topquadrant.com\/wp-content\/uploads\/2023\/11\/632a5438c52cbd3fbd4d14d2_Foreign_keys_Model-1024x490.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg","url":"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg","name":"Deriving Foreign Keys with TopBraid EDG | TopQuadrant","isPartOf":{"@id":"https:\/\/stage.topquadrant.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg#primaryimage"},"image":{"@id":"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg#primaryimage"},"thumbnailUrl":"https:\/\/ww2.topquadrant.com\/wp-content\/uploads\/2023\/11\/632a5438c52cbd3fbd4d14d2_Foreign_keys_Model-1024x490.png","datePublished":"2023-11-23T01:32:08+00:00","dateModified":"2024-03-29T01:50:31+00:00","breadcrumb":{"@id":"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg#primaryimage","url":"https:\/\/ww2.topquadrant.com\/wp-content\/uploads\/2023\/11\/632a5438c52cbd3fbd4d14d2_Foreign_keys_Model-1024x490.png","contentUrl":"https:\/\/ww2.topquadrant.com\/wp-content\/uploads\/2023\/11\/632a5438c52cbd3fbd4d14d2_Foreign_keys_Model-1024x490.png"},{"@type":"BreadcrumbList","@id":"https:\/\/mandalay.topquadrant.com\/?epkb_post_type_1=deriving-foreign-keys-with-topbraid-edg#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mandalay.topquadrant.com\/"},{"@type":"ListItem","position":2,"name":"Resource Hub","item":"https:\/\/mandalay.topquadrant.com\/?post_type=epkb_post_type_1"},{"@type":"ListItem","position":3,"name":"Deriving Foreign Keys with TopBraid EDG"}]},{"@type":"WebSite","@id":"https:\/\/stage.topquadrant.com\/#website","url":"https:\/\/stage.topquadrant.com\/","name":"TopQuadrant","description":"Making Sense of Your Data","publisher":{"@id":"https:\/\/stage.topquadrant.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/stage.topquadrant.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/stage.topquadrant.com\/#organization","name":"TopQuadrant","url":"https:\/\/stage.topquadrant.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/stage.topquadrant.com\/#\/schema\/logo\/image\/","url":"https:\/\/mandalay.topquadrant.com\/wp-content\/uploads\/2024\/01\/logo.svg","contentUrl":"https:\/\/mandalay.topquadrant.com\/wp-content\/uploads\/2024\/01\/logo.svg","width":430,"height":101,"caption":"TopQuadrant"},"image":{"@id":"https:\/\/stage.topquadrant.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/mandalay.topquadrant.com\/index.php?rest_route=\/wp\/v2\/epkb_post_type_1\/464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mandalay.topquadrant.com\/index.php?rest_route=\/wp\/v2\/epkb_post_type_1"}],"about":[{"href":"https:\/\/mandalay.topquadrant.com\/index.php?rest_route=\/wp\/v2\/types\/epkb_post_type_1"}],"author":[{"embeddable":true,"href":"https:\/\/mandalay.topquadrant.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mandalay.topquadrant.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=464"}],"version-history":[{"count":1,"href":"https:\/\/mandalay.topquadrant.com\/index.php?rest_route=\/wp\/v2\/epkb_post_type_1\/464\/revisions"}],"predecessor-version":[{"id":16294,"href":"https:\/\/mandalay.topquadrant.com\/index.php?rest_route=\/wp\/v2\/epkb_post_type_1\/464\/revisions\/16294"}],"wp:attachment":[{"href":"https:\/\/mandalay.topquadrant.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=464"}],"wp:term":[{"taxonomy":"epkb_post_type_1_category","embeddable":true,"href":"https:\/\/mandalay.topquadrant.com\/index.php?rest_route=%2Fwp%2Fv2%2Fepkb_post_type_1_category&post=464"},{"taxonomy":"epkb_post_type_1_tag","embeddable":true,"href":"https:\/\/mandalay.topquadrant.com\/index.php?rest_route=%2Fwp%2Fv2%2Fepkb_post_type_1_tag&post=464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}