{"id":10546,"date":"2020-05-27T18:01:13","date_gmt":"2020-05-27T18:01:13","guid":{"rendered":"https:\/\/www.genrocket.com\/blog\/?p=10546"},"modified":"2026-06-10T14:37:38","modified_gmt":"2026-06-10T14:37:38","slug":"data-modeling-and-referential-integrity","status":"publish","type":"post","link":"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/","title":{"rendered":"Data Modeling and Referential Integrity"},"content":{"rendered":"<p><strong>Part 2 in the series: <em>Moving from Test Automation to Intelligent Automation<\/em><\/strong><\/p>\n<p>In part 1 of this series, we introduced the concept of <u><em><a href=\"https:\/\/www.genrocket.com\/blog\/moving-from-test-automation-to-intelligent-automation\/\" target=\"_blank\" rel=\"noopener noreferrer\">Intelligent Data Provisioning<\/a><\/em><\/u> &#8211; the ability to design and generate test data on-demand using a flexible self-service framework. It\u2019s the future of traditional <em><a href=\"https:\/\/www.genrocket.com\/test-data-management\/\">Test Data Management<\/a><\/em> and essential for ensuring <em>quality at speed<\/em> in DevOps and Agile environments.<br \/>\n<!--more--><\/p>\n<p>To ensure the validity of <a href=\"https:\/\/www.genrocket.com\/synthetic-data-generation\/\">synthetic data<\/a> designed to replicate a production database, it\u2019s crucial to maintain the integrity of its data structure. Data structure is defined by a database schema or Data Definition Language (DDL) and serves as the blueprint for generating real-time synthetic test data. With GenRocket\u2019s\u00a0<a href=\"https:\/\/www.genrocket.com\/test-data-automation-deployment-strategy\/\"><em>Test Data Automation<\/em>\u00a0(TDA)<\/a> platform, a QA team member imports the data model into the TDA platform. Then with the help of an intelligent wizard, all parent\/child\/sibling relationships are reviewed, refined and established as <a href=\"https:\/\/www.genrocket.com\/\">GenRocket<\/a>\u00a0<em>Domains<\/em>\u00a0for use with any\u00a0<em>Test Data Scenario.<\/em><\/p>\n<p><center><img decoding=\"async\" class=\"emailImage\" src=\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation_01.png\" alt=\"\" width=\"800\" \/><\/center>The data model defines the relationship between primary keys in a parent table and foreign keys in dependent tables. To ensure <em>referential integrity<\/em> of synthetic test data, all key fields that define data relationships must be properly linked and contain accurate values that are based on business rules. GenRocket holds the only awarded patent for generating test data with referential integrity.<\/p>\n<p>The concept of referential integrity is illustrated in the ER diagram below. An employee database with a <em>user<\/em> data table contains key pairs that relate the <em>department, role and security-level<\/em> tables. The parent table contains the primary key and its child or sibling tables contain foreign keys. Together, they define the relationships between data tables.<\/p>\n<p><center><img decoding=\"async\" class=\"emailImage\" src=\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation_02.png\" alt=\"\" width=\"800\" \/><\/center>Learn more about parent, child, sibling relationships and their role in test data generation by viewing this <u><a href=\"https:\/\/genrocket.helpjuice.com\/domains-overview\/parent-child-and-sibling-relationships\" target=\"_blank\" rel=\"noopener noreferrer\">knowledgebase article and embedded video.<\/a><\/u><\/p>\n<p><!--more--><br \/>\n<!--more--><\/p>\n<p><strong>Generating Model-Based Test Data<\/strong><\/p>\n<p>Once imported and validated, the data model allows QA teams to generate test data for any category of <a href=\"https:\/\/www.genrocket.com\/software-testing-solutions\/\">testing<\/a>. This allows rapid provisioning of data for both functional and non-functional tests by applying rules that define the volume and variety of data needed to meet test case objectives. GenRocket\u2019s component architecture and project dashboard make it easy to design and configure the precise test data needed for testing in a matter of minutes.<\/p>\n<p><center><img decoding=\"async\" class=\"emailImage\" src=\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation_03.png\" alt=\"\" width=\"800\" \/><\/center>This self-service approach fits perfectly within the Agile framework for breaking down large-scale application test requirements (at the <em>Epic<\/em> level) into manageable <em>Stories<\/em> and <em>Tasks<\/em> allowing the QA team to create test cases with specific objectives. By using GenRocket\u2019s TDA platform to control data patterns and permutations, a data-driven testing approach can be employed to maximize test coverage and code quality.<\/p>\n<p><!--more--><br \/>\n<!--more--><\/p>\n<p><center><img decoding=\"async\" class=\"emailImage\" src=\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation_04.png\" alt=\"\" width=\"800\" \/><\/center><!--more--><br \/>\n<!--more--><\/p>\n<p>GenRocket stores <em>Test Data Scenarios and Test Data Cases<\/em> in a repository that is shared by the QA team. <em>Scenarios and Cases<\/em> can be repurposed as needed and version-controlled for automated regression testing on multiple versions of code. Each time a <em>Test Data Scenario or Test Data Case<\/em> is invoked by a test procedure, a fresh copy of data is generated. This allows destructive testing procedures without altering the original state of the test dataset and eliminates the need for data refresh.<\/p>\n<p><u>Here is a summary of the steps followed in GenRocket\u2019s Test Data Automation process:<\/u><\/p>\n<ol>\n<li>Determine all data sources and formats for the application under test<\/li>\n<li>Import the data model or DDL for those data sources and validate referential integrity<\/li>\n<li>Define the test data requirements for each test case at the Agile Story level<\/li>\n<li>Create executable <em>Test Data Scenarios and Test Data Cases<\/em> using GenRocket\u2019s self-service dashboard<\/li>\n<li>Automate test procedures and invoke <em>Test Data Scenarios and Test Data Cases<\/em> during test execution<\/li>\n<li>Store, repurpose and manage <em>Test Data Scenarios and Test Data Cases<\/em> throughout the testing lifecycle<\/li>\n<\/ol>\n<p>GenRocket\u2019s intelligent test data provisioning platform elevates test automation to become <em>intelligent automation<\/em> enabling QA to keep pace with Agile and DevOps environments while improving the quality of code released to production.<\/p>\n<p><!--more--><br \/>\n<!--more--><\/p>\n<p><strong>Importing a Data Model into GenRocket<\/strong><\/p>\n<p>GenRocket has designed multiple ways to import a data model into the GenRocket TDA platform and control the referential integrity of data relationships. This is to accommodate QA teams that may not have access to database schema. Additionally, some databases are poorly normalized and lack good referential integrity. And in some cases, a data model simply does not exist before newly developed code is implemented.<\/p>\n<p><u>Here are four different methods to import a data model into GenRocket:<\/u><\/p>\n<ol>\n<li>DDL File Import<\/li>\n<li>Extract Table Schema (XTS)<\/li>\n<li>CSV File Import<\/li>\n<li>Manually with a Scratch Pad<\/li>\n<\/ol>\n<p>You can learn how to use each of these methods, by reading this <u><a href=\"https:\/\/genrocket.helpjuice.com\/importing-and-creating-domains\/how-do-i-import-my-data-model-into-genrocket\" target=\"_blank\" rel=\"noopener noreferrer\">knowledgebase article.<\/a><\/u><\/p>\n<p>In the GenRocket component architecture, each data table is represented as a <em>Domain.<\/em> Testers can quickly change <em>Domain<\/em> parent, child and sibling relationships to produce the type of data they need and to maintain the referential integrity of generated data.<\/p>\n<p>Database schemas are constantly evolving and GenRocket was designed with this in mind. Even when a schema is not finalized for testing a user story, testers can change their GenRocket <em>Domains<\/em> to reflect the latest version and the system will automatically restructure existing Scenarios to match re-defined Domain relationships. This process is referred to as Domain Auto-Refactoring.<\/p>\n<p>For a detailed description of how GenRocket can work with multiple database environments, read the knowledgebase article <u><em><a href=\"https:\/\/genrocket.helpjuice.com\/connecting-to-databases\/how-does-genrocket-work-with-databases\" target=\"_blank\" rel=\"noopener noreferrer\">How GenRocket Works with Databases.<\/a><\/em><\/u><\/p>\n<p><!--more--><br \/>\n<!--more--><\/p>\n<p><strong>Modeling a Database Environment &#8211; One Domain at a Time<br \/>\n<\/strong><\/p>\n<p>GenRocket allows testers, quality engineers and developers to import any data model and immediately begin to design and generate test data. While the process is streamlined by an intuitive user interface and assisted by intelligent automation, modeling a large-scale enterprise database with hundreds of tables can take time.<\/p>\n<p>It\u2019s important to understand that only those tables (i.e., <em>Domains<\/em>) needed for a given test case should be modeled and designed into a Test Data Scenario, not the entire database schema. The most efficient way to model a database is by defining one <em>Domain<\/em> at a time, based on test data requirements.<\/p>\n<p>Consider the following database schema diagram showing 60 tables. Now imagine an application that needs to access several databases of similar size and scope. It\u2019s not required, or even recommended, that the QA team define the hundreds of data tables potentially touched by this application prior to executing a test plan.<\/p>\n<p><center><img decoding=\"async\" class=\"emailImage\" src=\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation_05.png\" alt=\"\" width=\"800\" \/><\/center>Instead, it makes more sense to define and generate the test data <em>Domains<\/em> as they are needed \u2013 one <em>Domain<\/em> at a time. This allows testers to rapidly define test data for a given test case and generate that data on-demand. Then the process can be repeated for subsequent sprints until the entire test plan is complete. This is the best approach for conducting continuous integration and testing in a DevOps environment.<\/p>\n<p><center><img decoding=\"async\" class=\"emailImage\" src=\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation_06.png\" alt=\"\" width=\"800\" \/><\/center>Incrementally and over time, all data models for all databases will be fully defined and available for automated functional, non-functional and regression testing. When this happens, the QA organization will realize the maximum benefit of intelligent automation. There will be no requirement for copying, masking, modifying and refreshing production data for testing. Instead, the entire QA process will be transformed into an accelerated quality assurance environment where the speed of testing and the quality code are fully optimized.<\/p>\n<p>To see GenRocket\u2019s <em>Test Data Automation<\/em> technology in action, view a banking solutions video in which GenRocket CTO Hycel Taylor demonstrates the power of intelligent test data provisioning.<\/p>\n<p><!--more--><br \/>\n<!--more--><\/p>\n<div style=\"text-align: center;\"><a href=\"https:\/\/youtu.be\/j-2GWGG3EVI\" target=\"_blank\" rel=\"noopener noreferrer\"><button class=\"cta\">BANKING SOLUTIONS VIDEO<\/button><\/a><\/div>\n<style type=\"text\/css\">\n.cta {<br \/>  background: #a6d540;<br \/>  color: #ffffff;<br \/>  font-size: 20px;<br \/>  padding: 15px 25px 15px 25px;<br \/>  text-decoration: none;<br \/>}<br \/><\/style>\n<style type=\"text\/css\">\n.cta:hover {<br \/>  background: #27bff0;<br \/>  text-decoration: none;<br \/>}<br \/><\/style>\n<style type=\"text\/css\">\n    @media only screen and (max-width: 480px){<br \/>        .emailImage{<br \/>            height:auto !important;<br \/>            max-width:800px !important;<br \/>            width: 100% !important;<br \/>        }<br \/>    }<br \/><\/style>\n","protected":false},"excerpt":{"rendered":"<p>Part 2 in the series: Moving from Test Automation to Intelligent Automation In part 1 of this series, we introduced the concept of Intelligent Data Provisioning &#8211; the ability to design and generate test data on-demand using a flexible self-service [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":10559,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[347],"tags":[],"class_list":["post-10546","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-testing"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Data Modeling and Referential Integrity.<\/title>\n<meta name=\"description\" content=\"we introduced the concept of Intelligent Data Provisioning \u2013 the ability to design and generate test data on-demand using a flexible self-service framework\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Data Modeling and Referential Integrity.\" \/>\n<meta property=\"og:description\" content=\"we introduced the concept of Intelligent Data Provisioning \u2013 the ability to design and generate test data on-demand using a flexible self-service framework\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/\" \/>\n<meta property=\"og:site_name\" content=\"GenRocket Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-27T18:01:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-10T14:37:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"742\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/\"},\"author\":{\"name\":\"Admin\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/#\/schema\/person\/1b838157107284909483cf30fd85c567\"},\"headline\":\"Data Modeling and Referential Integrity\",\"datePublished\":\"2020-05-27T18:01:13+00:00\",\"dateModified\":\"2026-06-10T14:37:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/\"},\"wordCount\":1228,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation.png\",\"articleSection\":[\"Software Testing\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/\",\"url\":\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/\",\"name\":\"Data Modeling and Referential Integrity.\",\"isPartOf\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation.png\",\"datePublished\":\"2020-05-27T18:01:13+00:00\",\"dateModified\":\"2026-06-10T14:37:38+00:00\",\"description\":\"we introduced the concept of Intelligent Data Provisioning \u2013 the ability to design and generate test data on-demand using a flexible self-service framework\",\"breadcrumb\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#primaryimage\",\"url\":\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation.png\",\"contentUrl\":\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation.png\",\"width\":1200,\"height\":742,\"caption\":\"Moving from Test Automation to Intelligent Automation\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.genrocket.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data Modeling and Referential Integrity\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/#website\",\"url\":\"https:\/\/www.genrocket.com\/blog\/\",\"name\":\"GenRocket Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.genrocket.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/#organization\",\"name\":\"GenRocket Blog\",\"url\":\"https:\/\/www.genrocket.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2024\/03\/favicon.png\",\"contentUrl\":\"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2024\/03\/favicon.png\",\"width\":32,\"height\":32,\"caption\":\"GenRocket Blog\"},\"image\":{\"@id\":\"https:\/\/www.genrocket.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/#\/schema\/person\/1b838157107284909483cf30fd85c567\",\"name\":\"Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.genrocket.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/419ed0decd07e0b63253b6b46c497396?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/419ed0decd07e0b63253b6b46c497396?s=96&d=mm&r=g\",\"caption\":\"Admin\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Data Modeling and Referential Integrity.","description":"we introduced the concept of Intelligent Data Provisioning \u2013 the ability to design and generate test data on-demand using a flexible self-service framework","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:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/","og_locale":"en_US","og_type":"article","og_title":"Data Modeling and Referential Integrity.","og_description":"we introduced the concept of Intelligent Data Provisioning \u2013 the ability to design and generate test data on-demand using a flexible self-service framework","og_url":"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/","og_site_name":"GenRocket Blog","article_published_time":"2020-05-27T18:01:13+00:00","article_modified_time":"2026-06-10T14:37:38+00:00","og_image":[{"width":1200,"height":742,"url":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation.png","type":"image\/png"}],"author":"Admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Admin","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#article","isPartOf":{"@id":"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/"},"author":{"name":"Admin","@id":"https:\/\/www.genrocket.com\/blog\/#\/schema\/person\/1b838157107284909483cf30fd85c567"},"headline":"Data Modeling and Referential Integrity","datePublished":"2020-05-27T18:01:13+00:00","dateModified":"2026-06-10T14:37:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/"},"wordCount":1228,"commentCount":0,"publisher":{"@id":"https:\/\/www.genrocket.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#primaryimage"},"thumbnailUrl":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation.png","articleSection":["Software Testing"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/","url":"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/","name":"Data Modeling and Referential Integrity.","isPartOf":{"@id":"https:\/\/www.genrocket.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#primaryimage"},"image":{"@id":"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#primaryimage"},"thumbnailUrl":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation.png","datePublished":"2020-05-27T18:01:13+00:00","dateModified":"2026-06-10T14:37:38+00:00","description":"we introduced the concept of Intelligent Data Provisioning \u2013 the ability to design and generate test data on-demand using a flexible self-service framework","breadcrumb":{"@id":"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#primaryimage","url":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation.png","contentUrl":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2020\/05\/Moving-from-Test-Automation-to-Intelligent-Automation.png","width":1200,"height":742,"caption":"Moving from Test Automation to Intelligent Automation"},{"@type":"BreadcrumbList","@id":"https:\/\/www.genrocket.com\/blog\/data-modeling-and-referential-integrity\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.genrocket.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Data Modeling and Referential Integrity"}]},{"@type":"WebSite","@id":"https:\/\/www.genrocket.com\/blog\/#website","url":"https:\/\/www.genrocket.com\/blog\/","name":"GenRocket Blog","description":"","publisher":{"@id":"https:\/\/www.genrocket.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.genrocket.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.genrocket.com\/blog\/#organization","name":"GenRocket Blog","url":"https:\/\/www.genrocket.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.genrocket.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2024\/03\/favicon.png","contentUrl":"https:\/\/www.genrocket.com\/blog\/wp-content\/uploads\/2024\/03\/favicon.png","width":32,"height":32,"caption":"GenRocket Blog"},"image":{"@id":"https:\/\/www.genrocket.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.genrocket.com\/blog\/#\/schema\/person\/1b838157107284909483cf30fd85c567","name":"Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.genrocket.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/419ed0decd07e0b63253b6b46c497396?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/419ed0decd07e0b63253b6b46c497396?s=96&d=mm&r=g","caption":"Admin"}}]}},"_links":{"self":[{"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/posts\/10546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/comments?post=10546"}],"version-history":[{"count":16,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/posts\/10546\/revisions"}],"predecessor-version":[{"id":12127,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/posts\/10546\/revisions\/12127"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/media\/10559"}],"wp:attachment":[{"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/media?parent=10546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/categories?post=10546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.genrocket.com\/blog\/wp-json\/wp\/v2\/tags?post=10546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}