GenerateRealData logoGenerateRealData
Home › Relational data generator
Relational data generator

Relational data where every table agrees.

Generate a whole database, not a pile of separate CSV files. Customers, orders, items, payments and shipments that reference each other, with totals that add up and dates in order, from your SQL schema or a plain-English description.

Free trial for every new account. No credit card.

checks.sql
-- Rule: an order's subtotal is the sum of its line items
SELECT COUNT(*) FROM orders o
JOIN (SELECT order_id, SUM(line_total) s FROM order_items GROUP BY order_id) x USING (order_id)
WHERE ABS(o.subtotal - x.s) > 0.011;
-- Result on the e-commerce dataset: 0 broken rows

-- Rule: every payment equals its order's total
SELECT COUNT(*) FROM payments p JOIN orders o USING (order_id)
WHERE ABS(p.amount - o.total_amount) > 0.011;
-- Result: 0 broken rows

Two of the 48 checks published with the free e-commerce dataset. Each one counts the rows that break a rule.

Free datasets made with GenerateRealData, every rule checked
datasettablesrowsrules that holdget it
E-commerce database7499,38548 of 48Kaggle · GitHub
Dirty e-commerce data4250,00019 of 19Kaggle · GitHub
Card transactions with fraud labels5500,00029 of 29Kaggle · GitHub
SaaS subscriptions and churn6249,11331 of 31Kaggle · GitHub
Web analytics funnel events4425,91823 of 23Kaggle · GitHub
Hospital records6300,00032 of 32Kaggle · GitHub
App users with edge cases5200,00030 of 30Kaggle · GitHub
HR, workforce and attrition6155,18631 of 31Kaggle · GitHub
Smart meter readings3500,00020 of 20Kaggle · GitHub
Auto insurance policies and claims5192,84335 of 35Kaggle · GitHub
Fleet GPS tracking4404,05230 of 30Kaggle · GitHub
AI jobs and salaries3510,00026 of 26Kaggle · GitHub
Black Friday and Cyber Week sales1408,00023 of 23Kaggle · GitHub

13 free public datasets, 4.6 million rows, 377 SQL rule checks: every one returns 0 broken rows. Download any of them and run the checks yourself.

Why teams use it

Built for data that behaves like production

01

Keys that match across every table

Tables are generated in dependency order, so every foreign key points at a row that exists. Joins work, constraints load, and nothing is orphaned.

02

Totals that add up

An order's subtotal is the sum of its items, the payment equals the order total, and running balances follow the transactions. The numbers agree from table to table.

03

Business rules, kept on every row

Write rules in plain terms, such as "a cancelled order has no shipment" or "discharge comes after admission". The engine keeps them on every row, at any size.

04

One of the largest type libraries

232 data types and 222 built-in generators, one of the largest libraries of any test data generator, plus over 200 automatic links that keep fields in a row consistent: the city sits in the row's country, the email follows the name.

05

High-fidelity values

Real airport, ICD-10 and MCC codes; VINs, IBANs, card numbers and barcodes with valid check digits; real cities with matching postcodes and time zones; skewed prices and realistic status mixes instead of uniform noise.

06

Large and repeatable

Up to 500,000 rows in one run, with a fixed seed so the same plan gives the same data again. Download as a SQL script for PostgreSQL, MySQL, SQL Server or SQLite, or as CSV, Excel or JSON.

How it works

From schema to dataset in three steps

1

Describe or upload

Describe your data in plain English, or upload your SQL schema for PostgreSQL, MySQL / MariaDB, SQL Server and SQLite.

2

Review the plan

Check the tables, columns and rules the AI proposes, and adjust anything you like.

3

Generate and download

Choose how many rows you need and download a ready-to-run SQL script, CSV, Excel (one sheet per table) or JSON.

Questions

What is a relational data generator?

A tool that generates several related tables at once, so the foreign keys match and the values agree across tables. Many generators produce one table at a time, which leaves you to stitch the files together and fix the keys yourself.

How do I know the data is consistent?

Every rule in your plan is kept on every row. As public proof, our 13 free datasets on Kaggle and GitHub (4.6 million rows) each come with one SQL query per rule, 377 queries in all, and every one returns 0 broken rows.

How many data types are there?

232 data types, 222 of them with their own built-in generator. That is one of the largest built-in libraries of any test data generator.

What does high-fidelity mean here?

Values that look and behave like production data: real codes and places, identifiers that pass validation, realistic distributions, and business rules that hold across tables. The data is generated, not copied, so it is not a statistical twin of any real dataset and contains no real person.

Can I start from my own schema?

Yes. Upload CREATE TABLE statements for PostgreSQL, MySQL, SQL Server or SQLite and your structure is kept; or describe the database in plain English and review the plan before generating.

How many rows can I generate?

From a few hundred rows for a test fixture up to 500,000 rows in one run, within your plan's monthly records.

Get realistic data in minutes

Start with a free trial. No real data, no credit card.

Start free
Explore more
PostgreSQL Data Generator MySQL & MariaDB Data Generator SQL Server Data Generator SQLite Data Generator AI Synthetic Data Mock Data Generator Time Series Generator Buyer's Guide All capabilities