Lyrebird · Realistic synthetic test databases, generated fully offline

Oracle · Human Resources (HR)

JOB_HISTORY

Source rows
10
Synthetic rows
10
Broken foreign keys
0
Rows equal to a source row
20%

References: DEPARTMENT_ID → DEPARTMENTSEMPLOYEE_ID → EMPLOYEESJOB_ID → JOBS

Rows

Both databases, first rows by primary key, in one table: scrolling sideways moves them together. Rows at the same position are unrelated, unless the table holds kept reference data. Long values are cut at 60 characters.

EMPLOYEE_ID keySTART_DATE keyEND_DATEJOB_IDDEPARTMENT_ID
Source database · 10 of 10 rows
1012007-09-21 00:00:002011-10-27 00:00:00AC_ACCOUNT110
1012011-10-28 00:00:002015-03-15 00:00:00AC_MGR110
1022011-01-13 00:00:002016-07-24 00:00:00IT_PROG60
1142016-03-24 00:00:002017-12-31 00:00:00ST_CLERK50
1222017-01-01 00:00:002017-12-31 00:00:00ST_CLERK50
1762016-03-24 00:00:002016-12-31 00:00:00SA_REP80
1762017-01-01 00:00:002017-12-31 00:00:00SA_MAN80
2002005-09-17 00:00:002011-06-17 00:00:00AD_ASST90
2002012-07-01 00:00:002016-12-31 00:00:00AC_ACCOUNT90
2012014-02-17 00:00:002017-12-19 00:00:00MK_REP20
Synthetic database · 10 of 10 rows
1102011-04-29 08:40:102017-12-31 00:00:00AC_ACCOUNT163
1232009-08-03 15:08:232014-02-16 11:03:52SA_REP181
1272007-04-27 04:12:272016-11-29 12:45:49AD_ASST226
1682006-08-16 06:09:082017-02-10 08:50:42SA_MAN163
1682009-06-12 06:09:082017-12-28 10:17:11ST_CLERK199
1852008-04-06 01:41:252013-11-30 05:59:30ST_CLERK199
1852011-02-01 01:41:252017-12-31 00:00:00AC_ACCOUNT19
1872007-02-16 08:13:272017-04-28 17:26:25MK_REP181
1872009-12-13 08:13:272017-12-30 18:00:12AC_MGR217
1922009-12-07 12:33:322015-01-25 23:51:26IT_PROG19

Column by column

Each figure is computed from all rows of both databases in the same way. S is the source, Y the synthetic copy. Difference runs from 0 (same distribution) to 1 (no overlap): Kolmogorov-Smirnov for numbers and times, total variation for columns with few values. Personal columns are meant to differ, so they show how many values also appear in the source instead. Lyrebird draws names from built-in lists, not from the source, so common names can match.

Column Model read it as How it was generated Empty Distinct Range or length Most common Difference
EMPLOYEE_IDNUMBER(6,0) record key Generated together with related columns S 0%
Y 0%
S 7
Y 7
S 101 → 201
Y 110 → 192
S 101 20% · 176 20% · 200 20% · 102 10% · 114 10% · 122 10%
Y 168 20% · 185 20% · 187 20% · 110 10% · 123 10% · 127 10%
—
START_DATEDATE lifecycle timestamp Generated together with related columns S 0%
Y 0%
S 8
Y 10
S 2005-09-17 00:00:00 → 2017-01-01 00:00:00
Y 2006-08-16 06:09:08 → 2011-04-29 08:40:10
S 2016-03-24 00:00:00 20% · 2017-01-01 00:00:00 20% · 2007-09-21 00:00:00 10% · 2011-10-28 00:00:00 10% · 2011-01-13 00:00:00 10% · 2005-09-17 00:00:00 10%
Y 2011-04-29 08:40:10 10% · 2009-08-03 15:08:23 10% · 2007-04-27 04:12:27 10% · 2006-08-16 06:09:08 10% · 2009-06-12 06:09:08 10% · 2008-04-06 01:41:25 10%
—
END_DATEDATE lifecycle timestamp Times from the measured distribution S 0%
Y 0%
S 7
Y 9
S 2011-06-17 00:00:00 → 2017-12-31 00:00:00
Y 2013-11-30 05:59:30 → 2017-12-31 00:00:00
S 2017-12-31 00:00:00 30% · 2016-12-31 00:00:00 20% · 2011-10-27 00:00:00 10% · 2015-03-15 00:00:00 10% · 2016-07-24 00:00:00 10% · 2011-06-17 00:00:00 10%
Y 2017-12-31 00:00:00 20% · 2014-02-16 11:03:52 10% · 2016-11-29 12:45:49 10% · 2017-02-10 08:50:42 10% · 2017-12-28 10:17:11 10% · 2013-11-30 05:59:30 10%
0.2 KS
JOB_IDVARCHAR2(10 BYTE) record key Foreign key, from the measured relationship S 0%
Y 0%
S 8
Y 8
S 7.4 chars avg
Y 7.4 chars avg
S AC_ACCOUNT 20% · ST_CLERK 20% · AC_MGR 10% · IT_PROG 10% · SA_REP 10% · SA_MAN 10%
Y AC_ACCOUNT 20% · ST_CLERK 20% · SA_REP 10% · AD_ASST 10% · SA_MAN 10% · MK_REP 10%
0 TVD
DEPARTMENT_IDNUMBER(4,0) record key Foreign key, from the measured relationship S 0%
Y 0%
S 6
Y 6
S 20 → 110
Y 19 → 226
S 110 20% · 50 20% · 80 20% · 90 20% · 60 10% · 20 10%
Y 163 20% · 181 20% · 199 20% · 19 20% · 226 10% · 217 10%
0.8 KS